Search in sources :

Example 46 with DOWN

use of android.support.v7.widget.helper.ItemTouchHelper.DOWN in project android-advancedrecyclerview by h6ah4i.

the class RecyclerViewDragDropManager method swapItems.

private void swapItems(RecyclerView rv, int draggingItemAdapterPosition, @Nullable RecyclerView.ViewHolder draggingItem, @NonNull RecyclerView.ViewHolder swapTargetHolder) {
    final Rect swapTargetMargins = CustomRecyclerViewUtils.getLayoutMargins(swapTargetHolder.itemView, mTmpRect1);
    @SuppressWarnings("UnnecessaryLocalVariable") final int fromPosition = draggingItemAdapterPosition;
    final int toPosition = getWrappedAdapterPosition(swapTargetHolder);
    final int diffPosition = Math.abs(fromPosition - toPosition);
    boolean performSwapping = false;
    if (fromPosition == RecyclerView.NO_POSITION || toPosition == RecyclerView.NO_POSITION) {
        return;
    }
    final long wrappedAdapterItemId = ItemIdComposer.extractWrappedIdPart(mWrapperAdapter.getItemId(fromPosition));
    final long wrappedItemId = ItemIdComposer.extractWrappedIdPart(mDraggingItemInfo.id);
    if (wrappedAdapterItemId != wrappedItemId) {
        if (LOCAL_LOGV) {
            Log.v(TAG, "RecyclerView state has not been synchronized to data yet");
        }
        return;
    }
    final boolean isLinearLayout = CustomRecyclerViewUtils.isLinearLayout(CustomRecyclerViewUtils.getLayoutType(rv));
    final boolean swapNextItemSmoothlyInLinearLayout = isLinearLayout && (!mCheckCanDrop);
    // noinspection StatementWithEmptyBody
    if (diffPosition == 0) {
    } else if ((diffPosition == 1) && (draggingItem != null) && swapNextItemSmoothlyInLinearLayout) {
        final View v1 = draggingItem.itemView;
        final View v2 = swapTargetHolder.itemView;
        final Rect m1 = mDraggingItemInfo.margins;
        // noinspection UnnecessaryLocalVariable
        final Rect m2 = swapTargetMargins;
        if (mCanDragH) {
            final int left = Math.min(v1.getLeft() - m1.left, v2.getLeft() - m2.left);
            final int right = Math.max(v1.getRight() + m1.right, v2.getRight() + m2.right);
            final float midPointOfTheItems = left + ((right - left) * 0.5f);
            final float midPointOfTheOverlaidItem = (getLastTouchX() - mDraggingItemInfo.grabbedPositionX) + (mDraggingItemInfo.width * 0.5f);
            if (toPosition < fromPosition) {
                if (midPointOfTheOverlaidItem < midPointOfTheItems) {
                    // swap (up direction)
                    performSwapping = true;
                }
            } else {
                // if (toPosition > fromPosition)
                if (midPointOfTheOverlaidItem > midPointOfTheItems) {
                    // swap (down direction)
                    performSwapping = true;
                }
            }
        }
        if (!performSwapping && mCanDragV) {
            final int top = Math.min(v1.getTop() - m1.top, v2.getTop() - m2.top);
            final int bottom = Math.max(v1.getBottom() + m1.bottom, v2.getBottom() + m2.bottom);
            final float midPointOfTheItems = top + ((bottom - top) * 0.5f);
            final float midPointOfTheOverlaidItem = (getLastTouchY() - mDraggingItemInfo.grabbedPositionY) + (mDraggingItemInfo.height * 0.5f);
            if (toPosition < fromPosition) {
                if (midPointOfTheOverlaidItem < midPointOfTheItems) {
                    // swap (up direction)
                    performSwapping = true;
                }
            } else {
                // if (toPosition > fromPosition)
                if (midPointOfTheOverlaidItem > midPointOfTheItems) {
                    // swap (down direction)
                    performSwapping = true;
                }
            }
        }
    } else {
        // diffPosition > 1
        performSwapping = true;
    }
    if (performSwapping) {
        performSwapItems(rv, draggingItem, swapTargetHolder, swapTargetMargins, fromPosition, toPosition);
    }
}
Also used : Rect(android.graphics.Rect) View(android.view.View) NestedScrollView(android.support.v4.widget.NestedScrollView) RecyclerView(android.support.v7.widget.RecyclerView)

Example 47 with DOWN

use of android.support.v7.widget.helper.ItemTouchHelper.DOWN in project android_packages_apps_Settings by DirtyUnicorns.

the class WifiDisplaySettings method buildCertificationMenu.

private void buildCertificationMenu(final PreferenceScreen preferenceScreen) {
    if (mCertCategory == null) {
        mCertCategory = new PreferenceCategory(getPrefContext());
        mCertCategory.setTitle(R.string.wifi_display_certification_heading);
        mCertCategory.setOrder(ORDER_CERTIFICATION);
    } else {
        mCertCategory.removeAll();
    }
    preferenceScreen.addPreference(mCertCategory);
    // display session info if there is an active p2p session
    if (!mWifiDisplayStatus.getSessionInfo().getGroupId().isEmpty()) {
        Preference p = new Preference(getPrefContext());
        p.setTitle(R.string.wifi_display_session_info);
        p.setSummary(mWifiDisplayStatus.getSessionInfo().toString());
        mCertCategory.addPreference(p);
        // show buttons for Pause/Resume when a WFD session is established
        if (mWifiDisplayStatus.getSessionInfo().getSessionId() != 0) {
            mCertCategory.addPreference(new Preference(getPrefContext()) {

                @Override
                public void onBindViewHolder(PreferenceViewHolder view) {
                    super.onBindViewHolder(view);
                    Button b = (Button) view.findViewById(R.id.left_button);
                    b.setText(R.string.wifi_display_pause);
                    b.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            mDisplayManager.pauseWifiDisplay();
                        }
                    });
                    b = (Button) view.findViewById(R.id.right_button);
                    b.setText(R.string.wifi_display_resume);
                    b.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            mDisplayManager.resumeWifiDisplay();
                        }
                    });
                }
            });
            mCertCategory.setLayoutResource(R.layout.two_buttons_panel);
        }
    }
    // switch for Listen Mode
    SwitchPreference pref = new SwitchPreference(getPrefContext()) {

        @Override
        protected void onClick() {
            mListen = !mListen;
            setListenMode(mListen);
            setChecked(mListen);
        }
    };
    pref.setTitle(R.string.wifi_display_listen_mode);
    pref.setChecked(mListen);
    mCertCategory.addPreference(pref);
    // switch for Autonomous GO
    pref = new SwitchPreference(getPrefContext()) {

        @Override
        protected void onClick() {
            mAutoGO = !mAutoGO;
            if (mAutoGO) {
                startAutoGO();
            } else {
                stopAutoGO();
            }
            setChecked(mAutoGO);
        }
    };
    pref.setTitle(R.string.wifi_display_autonomous_go);
    pref.setChecked(mAutoGO);
    mCertCategory.addPreference(pref);
    // Drop down list for choosing WPS method (PBC/KEYPAD/DISPLAY)
    ListPreference lp = new ListPreference(getPrefContext());
    lp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference, Object value) {
            int wpsConfig = Integer.parseInt((String) value);
            if (wpsConfig != mWpsConfig) {
                mWpsConfig = wpsConfig;
                getActivity().invalidateOptionsMenu();
                Settings.Global.putInt(getActivity().getContentResolver(), Settings.Global.WIFI_DISPLAY_WPS_CONFIG, mWpsConfig);
            }
            return true;
        }
    });
    mWpsConfig = Settings.Global.getInt(getActivity().getContentResolver(), Settings.Global.WIFI_DISPLAY_WPS_CONFIG, WpsInfo.INVALID);
    String[] wpsEntries = { "Default", "PBC", "KEYPAD", "DISPLAY" };
    String[] wpsValues = { "" + WpsInfo.INVALID, "" + WpsInfo.PBC, "" + WpsInfo.KEYPAD, "" + WpsInfo.DISPLAY };
    lp.setKey("wps");
    lp.setTitle(R.string.wifi_display_wps_config);
    lp.setEntries(wpsEntries);
    lp.setEntryValues(wpsValues);
    lp.setValue("" + mWpsConfig);
    lp.setSummary("%1$s");
    mCertCategory.addPreference(lp);
    // Drop down list for choosing listen channel
    lp = new ListPreference(getPrefContext());
    lp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference, Object value) {
            int channel = Integer.parseInt((String) value);
            if (channel != mListenChannel) {
                mListenChannel = channel;
                getActivity().invalidateOptionsMenu();
                setWifiP2pChannels(mListenChannel, mOperatingChannel);
            }
            return true;
        }
    });
    String[] lcEntries = { "Auto", "1", "6", "11" };
    String[] lcValues = { "0", "1", "6", "11" };
    lp.setKey("listening_channel");
    lp.setTitle(R.string.wifi_display_listen_channel);
    lp.setEntries(lcEntries);
    lp.setEntryValues(lcValues);
    lp.setValue("" + mListenChannel);
    lp.setSummary("%1$s");
    mCertCategory.addPreference(lp);
    // Drop down list for choosing operating channel
    lp = new ListPreference(getPrefContext());
    lp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference, Object value) {
            int channel = Integer.parseInt((String) value);
            if (channel != mOperatingChannel) {
                mOperatingChannel = channel;
                getActivity().invalidateOptionsMenu();
                setWifiP2pChannels(mListenChannel, mOperatingChannel);
            }
            return true;
        }
    });
    String[] ocEntries = { "Auto", "1", "6", "11", "36" };
    String[] ocValues = { "0", "1", "6", "11", "36" };
    lp.setKey("operating_channel");
    lp.setTitle(R.string.wifi_display_operating_channel);
    lp.setEntries(ocEntries);
    lp.setEntryValues(ocValues);
    lp.setValue("" + mOperatingChannel);
    lp.setSummary("%1$s");
    mCertCategory.addPreference(lp);
}
Also used : SwitchPreference(android.support.v14.preference.SwitchPreference) ListPreference(android.support.v7.preference.ListPreference) OnPreferenceChangeListener(android.support.v7.preference.Preference.OnPreferenceChangeListener) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) PreferenceCategory(android.support.v7.preference.PreferenceCategory) ListPreference(android.support.v7.preference.ListPreference) Preference(android.support.v7.preference.Preference) SwitchPreference(android.support.v14.preference.SwitchPreference) Button(android.widget.Button) OnClickListener(android.view.View.OnClickListener) PreferenceViewHolder(android.support.v7.preference.PreferenceViewHolder)

Example 48 with DOWN

use of android.support.v7.widget.helper.ItemTouchHelper.DOWN in project Tusky by tuskyapp.

the class TimelineFragment method onActivityCreated.

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    if (jumpToTopAllowed()) {
        TabLayout layout = getActivity().findViewById(R.id.tab_layout);
        if (layout != null) {
            onTabSelectedListener = new TabLayout.OnTabSelectedListener() {

                @Override
                public void onTabSelected(TabLayout.Tab tab) {
                }

                @Override
                public void onTabUnselected(TabLayout.Tab tab) {
                }

                @Override
                public void onTabReselected(TabLayout.Tab tab) {
                    jumpToTop();
                }
            };
            layout.addOnTabSelectedListener(onTabSelectedListener);
        }
    }
    /* This is delayed until onActivityCreated solely because MainActivity.composeButton isn't
         * guaranteed to be set until then. */
    if (actionButtonPresent()) {
        /* Use a modified scroll listener that both loads more statuses as it goes, and hides
             * the follow button on down-scroll. */
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
        hideFab = preferences.getBoolean("fabHide", false);
        scrollListener = new EndlessOnScrollListener(layoutManager) {

            @Override
            public void onScrolled(RecyclerView view, int dx, int dy) {
                super.onScrolled(view, dx, dy);
                ActionButtonActivity activity = (ActionButtonActivity) getActivity();
                FloatingActionButton composeButton = activity.getActionButton();
                if (composeButton != null) {
                    if (hideFab) {
                        if (dy > 0 && composeButton.isShown()) {
                            // hides the button if we're scrolling down
                            composeButton.hide();
                        } else if (dy < 0 && !composeButton.isShown()) {
                            // shows it if we are scrolling up
                            composeButton.show();
                        }
                    } else if (!composeButton.isShown()) {
                        composeButton.show();
                    }
                }
            }

            @Override
            public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
                TimelineFragment.this.onLoadMore();
            }
        };
    } else {
        // Just use the basic scroll listener to load more statuses.
        scrollListener = new EndlessOnScrollListener(layoutManager) {

            @Override
            public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
                TimelineFragment.this.onLoadMore();
            }
        };
    }
    recyclerView.addOnScrollListener(scrollListener);
}
Also used : EndlessOnScrollListener(com.keylesspalace.tusky.view.EndlessOnScrollListener) SharedPreferences(android.content.SharedPreferences) TabLayout(android.support.design.widget.TabLayout) ActionButtonActivity(com.keylesspalace.tusky.interfaces.ActionButtonActivity) FloatingActionButton(android.support.design.widget.FloatingActionButton) RecyclerView(android.support.v7.widget.RecyclerView)

Example 49 with DOWN

use of android.support.v7.widget.helper.ItemTouchHelper.DOWN in project Tusky by tuskyapp.

the class NotificationsFragment method onActivityCreated.

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    MainActivity activity = (MainActivity) getActivity();
    if (activity == null)
        throw new AssertionError("Activity is null");
    // MainActivity's layout is guaranteed to be inflated until onCreate returns.
    TabLayout layout = activity.findViewById(R.id.tab_layout);
    onTabSelectedListener = new TabLayout.OnTabSelectedListener() {

        @Override
        public void onTabSelected(TabLayout.Tab tab) {
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {
            jumpToTop();
        }
    };
    layout.addOnTabSelectedListener(onTabSelectedListener);
    /* This is delayed until onActivityCreated solely because MainActivity.composeButton isn't
         * guaranteed to be set until then.
         * Use a modified scroll listener that both loads more notificationsEnabled as it goes, and hides
         * the compose button on down-scroll. */
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
    preferences.registerOnSharedPreferenceChangeListener(this);
    hideFab = preferences.getBoolean("fabHide", false);
    scrollListener = new EndlessOnScrollListener(layoutManager) {

        @Override
        public void onScrolled(RecyclerView view, int dx, int dy) {
            super.onScrolled(view, dx, dy);
            ActionButtonActivity activity = (ActionButtonActivity) getActivity();
            FloatingActionButton composeButton = activity.getActionButton();
            if (composeButton != null) {
                if (hideFab) {
                    if (dy > 0 && composeButton.isShown()) {
                        // hides the button if we're scrolling down
                        composeButton.hide();
                    } else if (dy < 0 && !composeButton.isShown()) {
                        // shows it if we are scrolling up
                        composeButton.show();
                    }
                } else if (!composeButton.isShown()) {
                    composeButton.show();
                }
            }
        }

        @Override
        public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
            NotificationsFragment.this.onLoadMore();
        }
    };
    recyclerView.addOnScrollListener(scrollListener);
}
Also used : EndlessOnScrollListener(com.keylesspalace.tusky.view.EndlessOnScrollListener) SharedPreferences(android.content.SharedPreferences) TabLayout(android.support.design.widget.TabLayout) ActionButtonActivity(com.keylesspalace.tusky.interfaces.ActionButtonActivity) FloatingActionButton(android.support.design.widget.FloatingActionButton) RecyclerView(android.support.v7.widget.RecyclerView) MainActivity(com.keylesspalace.tusky.MainActivity)

Example 50 with DOWN

use of android.support.v7.widget.helper.ItemTouchHelper.DOWN in project Riksdagskollen by OAndell.

the class PartyListFragment method onCreateView.

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_party_list, null);
    loadingView = view.findViewById(R.id.loading_view);
    partyListAdapter = new PartyListViewholderAdapter(documentList, new PartyListViewholderAdapter.OnPartyDocumentClickListener() {

        @Override
        public void onPartyDocumentClickListener(PartyDocument document) {
            Intent intent;
            if (document.isMotion()) {
                intent = new Intent(getContext(), MotionActivity.class);
            } else {
                intent = new Intent(getContext(), DocumentReaderActivity.class);
            }
            intent.putExtra("document", document);
            startActivity(intent);
        }
    });
    recyclerView = view.findViewById(R.id.recycler_view);
    recyclerView.setAdapter(partyListAdapter);
    recyclerView.setNestedScrollingEnabled(true);
    final LinearLayoutManager mLayoutManager = new LinearLayoutManager(getContext());
    recyclerView.setLayoutManager(mLayoutManager);
    // Listener to determine when the scollview has reached the bottom. Then we load the next page
    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            if (// check for scroll down
            dy > 0) {
                int visibleItemCount = mLayoutManager.getChildCount();
                int totalItemCount = mLayoutManager.getItemCount();
                pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition();
                if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) {
                    if (!loading)
                        loadNextPage();
                }
            }
        }
    });
    itemsLoadingView = new ProgressBar(getContext());
    itemsLoadingView.getIndeterminateDrawable().setColorFilter(getResources().getColor(R.color.primaryColor), android.graphics.PorterDuff.Mode.MULTIPLY);
    loadNextPage();
    return view;
}
Also used : Intent(android.content.Intent) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) DocumentReaderActivity(oscar.riksdagskollen.Activities.DocumentReaderActivity) PartyListViewholderAdapter(oscar.riksdagskollen.Utilities.PartyListViewholderAdapter) PartyDocument(oscar.riksdagskollen.Utilities.JSONModels.PartyDocument) MotionActivity(oscar.riksdagskollen.Activities.MotionActivity) RecyclerView(android.support.v7.widget.RecyclerView) ProgressBar(android.widget.ProgressBar) Nullable(android.support.annotation.Nullable)

Aggregations

RecyclerView (android.support.v7.widget.RecyclerView)37 View (android.view.View)36 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)18 Intent (android.content.Intent)17 ImageView (android.widget.ImageView)15 TextView (android.widget.TextView)15 Preference (android.support.v7.preference.Preference)14 Context (android.content.Context)12 PreferenceCategory (android.support.v7.preference.PreferenceCategory)12 BroadcastReceiver (android.content.BroadcastReceiver)8 IntentFilter (android.content.IntentFilter)7 OnPreferenceChangeListener (android.support.v7.preference.Preference.OnPreferenceChangeListener)7 Button (android.widget.Button)7 DimmableIconPreference (com.android.settings.DimmableIconPreference)7 RestrictedSwitchPreference (com.android.settingslib.RestrictedSwitchPreference)7 OnClickListener (android.view.View.OnClickListener)6 FrameLayout (android.widget.FrameLayout)6 SharedPreferences (android.content.SharedPreferences)5 FloatingActionButton (android.support.design.widget.FloatingActionButton)5 SwitchPreference (android.support.v14.preference.SwitchPreference)5