Search in sources :

Example 31 with END

use of android.support.v7.widget.helper.ItemTouchHelper.END in project instructure-android by instructure.

the class ExpandCollapseItemAnimator method endAnimation.

@Override
public void endAnimation(ViewHolder item) {
    final View view = item.itemView;
    // this will trigger end callback which should set properties to their target values.
    ViewCompat.animate(view).cancel();
    // TODO if some other animations are chained to end, how do we cancel them as well?
    for (int i = mPendingMoves.size() - 1; i >= 0; i--) {
        MoveInfo moveInfo = mPendingMoves.get(i);
        if (moveInfo.holder == item) {
            ViewCompat.setTranslationY(view, 0);
            ViewCompat.setTranslationX(view, 0);
            dispatchMoveFinished(item);
            mPendingMoves.remove(i);
        }
    }
    endChangeAnimation(mPendingChanges, item);
    if (mPendingRemovals.remove(item)) {
        ViewCompat.setAlpha(view, 1);
        dispatchRemoveFinished(item);
    }
    if (mPendingAdditions.remove(item)) {
        ViewCompat.setAlpha(view, 1);
        dispatchAddFinished(item);
    }
    for (int i = mChangesList.size() - 1; i >= 0; i--) {
        ArrayList<ChangeInfo> changes = mChangesList.get(i);
        endChangeAnimation(changes, item);
        if (changes.isEmpty()) {
            mChangesList.remove(i);
        }
    }
    for (int i = mMovesList.size() - 1; i >= 0; i--) {
        ArrayList<MoveInfo> moves = mMovesList.get(i);
        for (int j = moves.size() - 1; j >= 0; j--) {
            MoveInfo moveInfo = moves.get(j);
            if (moveInfo.holder == item) {
                ViewCompat.setTranslationY(view, 0);
                ViewCompat.setTranslationX(view, 0);
                dispatchMoveFinished(item);
                moves.remove(j);
                if (moves.isEmpty()) {
                    mMovesList.remove(i);
                }
                break;
            }
        }
    }
    for (int i = mAdditionsList.size() - 1; i >= 0; i--) {
        ArrayList<ViewHolder> additions = mAdditionsList.get(i);
        if (additions.remove(item)) {
            ViewCompat.setAlpha(view, 1);
            dispatchAddFinished(item);
            if (additions.isEmpty()) {
                mAdditionsList.remove(i);
            }
        }
    }
    // noinspection PointlessBooleanExpression,ConstantConditions
    if (mRemoveAnimations.remove(item) && DEBUG) {
        throw new IllegalStateException("after animation is cancelled, item should not be in " + "mRemoveAnimations list");
    }
    // noinspection PointlessBooleanExpression,ConstantConditions
    if (mAddAnimations.remove(item) && DEBUG) {
        throw new IllegalStateException("after animation is cancelled, item should not be in " + "mAddAnimations list");
    }
    // noinspection PointlessBooleanExpression,ConstantConditions
    if (mChangeAnimations.remove(item) && DEBUG) {
        throw new IllegalStateException("after animation is cancelled, item should not be in " + "mChangeAnimations list");
    }
    // noinspection PointlessBooleanExpression,ConstantConditions
    if (mMoveAnimations.remove(item) && DEBUG) {
        throw new IllegalStateException("after animation is cancelled, item should not be in " + "mMoveAnimations list");
    }
    dispatchFinishedWhenDone();
}
Also used : ViewHolder(android.support.v7.widget.RecyclerView.ViewHolder) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View)

Example 32 with END

use of android.support.v7.widget.helper.ItemTouchHelper.END in project android_packages_apps_Settings by LineageOS.

the class UserSettings method updateUserList.

private void updateUserList() {
    if (getActivity() == null)
        return;
    List<UserInfo> users = mUserManager.getUsers(true);
    final Context context = getActivity();
    final boolean voiceCapable = Utils.isVoiceCapable(context);
    final ArrayList<Integer> missingIcons = new ArrayList<>();
    final ArrayList<UserPreference> userPreferences = new ArrayList<>();
    int guestId = UserPreference.USERID_GUEST_DEFAULTS;
    userPreferences.add(mMePreference);
    for (UserInfo user : users) {
        if (!user.supportsSwitchToByUser()) {
            // e.g. Managed profiles appear under Accounts Settings instead
            continue;
        }
        UserPreference pref;
        if (user.id == UserHandle.myUserId()) {
            pref = mMePreference;
        } else if (user.isGuest()) {
            // Skip over Guest. We add generic Guest settings after this loop
            guestId = user.id;
            continue;
        } else {
            // With Telephony:
            // Secondary user: Settings
            // Guest: Settings
            // Restricted Profile: There is no Restricted Profile
            // Without Telephony:
            // Secondary user: Delete
            // Guest: Nothing
            // Restricted Profile: Settings
            final boolean showSettings = mUserCaps.mIsAdmin && (voiceCapable || user.isRestricted());
            final boolean showDelete = mUserCaps.mIsAdmin && (!voiceCapable && !user.isRestricted() && !user.isGuest());
            pref = new UserPreference(getPrefContext(), null, user.id, showSettings ? this : null, showDelete ? this : null);
            pref.setKey("id=" + user.id);
            userPreferences.add(pref);
            if (user.isAdmin()) {
                pref.setSummary(R.string.user_admin);
            }
            pref.setTitle(user.name);
            pref.setSelectable(false);
        }
        if (pref == null) {
            continue;
        }
        if (!isInitialized(user)) {
            if (user.isRestricted()) {
                pref.setSummary(R.string.user_summary_restricted_not_set_up);
            } else {
                pref.setSummary(R.string.user_summary_not_set_up);
            }
            pref.setOnPreferenceClickListener(this);
            pref.setSelectable(true);
        } else if (user.isRestricted()) {
            pref.setSummary(R.string.user_summary_restricted_profile);
        }
        if (user.iconPath != null) {
            if (mUserIcons.get(user.id) == null) {
                // Icon not loaded yet, print a placeholder
                missingIcons.add(user.id);
                pref.setIcon(getEncircledDefaultIcon());
            } else {
                setPhotoId(pref, user);
            }
        } else {
            // Icon not available yet, print a placeholder
            pref.setIcon(getEncircledDefaultIcon());
        }
    }
    // Add a temporary entry for the user being created
    if (mAddingUser) {
        UserPreference pref = new UserPreference(getPrefContext(), null, UserPreference.USERID_UNKNOWN, null, null);
        pref.setEnabled(false);
        pref.setTitle(mAddingUserName);
        pref.setIcon(getEncircledDefaultIcon());
        userPreferences.add(pref);
    }
    // Check if Guest tile should be added.
    if (!mUserCaps.mIsGuest && (mUserCaps.mCanAddGuest || mUserCaps.mDisallowAddUserSetByAdmin)) {
        // Add a virtual Guest user for guest defaults
        UserPreference pref = new UserPreference(getPrefContext(), null, UserPreference.USERID_GUEST_DEFAULTS, mUserCaps.mIsAdmin && voiceCapable ? this : null, /* settings icon handler */
        null);
        pref.setTitle(R.string.user_guest);
        pref.setIcon(getEncircledDefaultIcon());
        userPreferences.add(pref);
        pref.setDisabledByAdmin(mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
        int finalGuestId = guestId;
        pref.setOnPreferenceClickListener(preference -> {
            int id = finalGuestId;
            if (id == UserPreference.USERID_GUEST_DEFAULTS) {
                UserInfo guest = mUserManager.createGuest(getContext(), preference.getTitle().toString());
                if (guest != null) {
                    id = guest.id;
                }
            }
            try {
                ActivityManager.getService().switchUser(id);
            } catch (RemoteException e) {
                e.rethrowFromSystemServer();
            }
            return true;
        });
    }
    // Sort list of users by serialNum
    Collections.sort(userPreferences, UserPreference.SERIAL_NUMBER_COMPARATOR);
    getActivity().invalidateOptionsMenu();
    // Load the icons
    if (missingIcons.size() > 0) {
        loadIconsAsync(missingIcons);
    }
    PreferenceScreen preferenceScreen = getPreferenceScreen();
    preferenceScreen.removeAll();
    // If profiles are supported, userPreferences will be added to the category labeled
    // "User & Profiles", otherwise the category is skipped and elements are added directly
    // to preferenceScreen
    PreferenceGroup groupToAddUsers;
    if (mUserCaps.mCanAddRestrictedProfile) {
        mUserListCategory.removeAll();
        mUserListCategory.setOrder(Preference.DEFAULT_ORDER);
        preferenceScreen.addPreference(mUserListCategory);
        groupToAddUsers = mUserListCategory;
    } else {
        groupToAddUsers = preferenceScreen;
    }
    for (UserPreference userPreference : userPreferences) {
        userPreference.setOrder(Preference.DEFAULT_ORDER);
        groupToAddUsers.addPreference(userPreference);
    }
    // Append Add user to the end of the list
    if ((mUserCaps.mCanAddUser || mUserCaps.mDisallowAddUserSetByAdmin) && Utils.isDeviceProvisioned(getActivity())) {
        boolean moreUsers = mUserManager.canAddMoreUsers();
        mAddUser.setOrder(Preference.DEFAULT_ORDER);
        preferenceScreen.addPreference(mAddUser);
        mAddUser.setEnabled(moreUsers && !mAddingUser);
        if (!moreUsers) {
            mAddUser.setSummary(getString(R.string.user_add_max_count, getMaxRealUsers()));
        } else {
            mAddUser.setSummary(null);
        }
        if (mAddUser.isEnabled()) {
            mAddUser.setDisabledByAdmin(mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
        }
    }
}
Also used : Context(android.content.Context) PreferenceScreen(android.support.v7.preference.PreferenceScreen) ArrayList(java.util.ArrayList) UserInfo(android.content.pm.UserInfo) PreferenceGroup(android.support.v7.preference.PreferenceGroup) RemoteException(android.os.RemoteException)

Example 33 with END

use of android.support.v7.widget.helper.ItemTouchHelper.END in project NiceMusic by lizixian18.

the class BannerLayoutManager method layoutItems.

private void layoutItems(RecyclerView.Recycler recycler) {
    detachAndScrapAttachedViews(recycler);
    // make sure that current position start from 0 to 1
    final int currentPos = mReverseLayout ? -getCurrentPositionOffset() : getCurrentPositionOffset();
    int start = currentPos - mLeftItems;
    int end = currentPos + mRightItems;
    // handle max visible count
    if (useMaxVisibleCount()) {
        boolean isEven = mMaxVisibleItemCount % 2 == 0;
        if (isEven) {
            int offset = mMaxVisibleItemCount / 2;
            start = currentPos - offset + 1;
            end = currentPos + offset + 1;
        } else {
            int offset = (mMaxVisibleItemCount - 1) / 2;
            start = currentPos - offset;
            end = currentPos + offset + 1;
        }
    }
    final int itemCount = getItemCount();
    if (!mInfinite) {
        if (start < 0) {
            start = 0;
            if (useMaxVisibleCount())
                end = mMaxVisibleItemCount;
        }
        if (end > itemCount)
            end = itemCount;
    }
    float lastOrderWeight = Float.MIN_VALUE;
    for (int i = start; i < end; i++) {
        if (useMaxVisibleCount() || !removeCondition(getProperty(i) - mOffset)) {
            // start and end base on current position,
            // so we need to calculate the adapter position
            int adapterPosition = i;
            if (i >= itemCount) {
                adapterPosition %= itemCount;
            } else if (i < 0) {
                int delta = (-adapterPosition) % itemCount;
                if (delta == 0)
                    delta = itemCount;
                adapterPosition = itemCount - delta;
            }
            final View scrap = recycler.getViewForPosition(adapterPosition);
            measureChildWithMargins(scrap, 0, 0);
            resetViewProperty(scrap);
            // we need i to calculate the real offset of current view
            final float targetOffset = getProperty(i) - mOffset;
            layoutScrap(scrap, targetOffset);
            final float orderWeight = mEnableBringCenterToFront ? setViewElevation(scrap, targetOffset) : adapterPosition;
            if (orderWeight > lastOrderWeight) {
                addView(scrap);
            } else {
                addView(scrap, 0);
            }
            lastOrderWeight = orderWeight;
        }
    }
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View)

Example 34 with END

use of android.support.v7.widget.helper.ItemTouchHelper.END in project android_packages_apps_Settings by omnirom.

the class ZenModeScheduleRuleSettings method onCreateInternal.

@Override
protected void onCreateInternal() {
    addPreferencesFromResource(R.xml.zen_mode_schedule_rule_settings);
    final PreferenceScreen root = getPreferenceScreen();
    mDays = root.findPreference(KEY_DAYS);
    mDays.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            showDaysDialog();
            return true;
        }
    });
    final FragmentManager mgr = getFragmentManager();
    mStart = new TimePickerPreference(getPrefContext(), mgr);
    mStart.setKey(KEY_START_TIME);
    mStart.setTitle(R.string.zen_mode_start_time);
    mStart.setCallback(new TimePickerPreference.Callback() {

        @Override
        public boolean onSetTime(final int hour, final int minute) {
            if (mDisableListeners)
                return true;
            if (!ZenModeConfig.isValidHour(hour))
                return false;
            if (!ZenModeConfig.isValidMinute(minute))
                return false;
            if (hour == mSchedule.startHour && minute == mSchedule.startMinute) {
                return true;
            }
            if (DEBUG)
                Log.d(TAG, "onPrefChange start h=" + hour + " m=" + minute);
            mSchedule.startHour = hour;
            mSchedule.startMinute = minute;
            updateRule(ZenModeConfig.toScheduleConditionId(mSchedule));
            return true;
        }
    });
    root.addPreference(mStart);
    mStart.setDependency(mDays.getKey());
    mEnd = new TimePickerPreference(getPrefContext(), mgr);
    mEnd.setKey(KEY_END_TIME);
    mEnd.setTitle(R.string.zen_mode_end_time);
    mEnd.setCallback(new TimePickerPreference.Callback() {

        @Override
        public boolean onSetTime(final int hour, final int minute) {
            if (mDisableListeners)
                return true;
            if (!ZenModeConfig.isValidHour(hour))
                return false;
            if (!ZenModeConfig.isValidMinute(minute))
                return false;
            if (hour == mSchedule.endHour && minute == mSchedule.endMinute) {
                return true;
            }
            if (DEBUG)
                Log.d(TAG, "onPrefChange end h=" + hour + " m=" + minute);
            mSchedule.endHour = hour;
            mSchedule.endMinute = minute;
            updateRule(ZenModeConfig.toScheduleConditionId(mSchedule));
            return true;
        }
    });
    root.addPreference(mEnd);
    mEnd.setDependency(mDays.getKey());
    mExitAtAlarm = (SwitchPreference) root.findPreference(KEY_EXIT_AT_ALARM);
    mExitAtAlarm.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference, Object o) {
            mSchedule.exitAtAlarm = (Boolean) o;
            updateRule(ZenModeConfig.toScheduleConditionId(mSchedule));
            return true;
        }
    });
}
Also used : OnPreferenceClickListener(android.support.v7.preference.Preference.OnPreferenceClickListener) FragmentManager(android.app.FragmentManager) PreferenceScreen(android.support.v7.preference.PreferenceScreen) Preference(android.support.v7.preference.Preference) SwitchPreference(android.support.v14.preference.SwitchPreference)

Example 35 with END

use of android.support.v7.widget.helper.ItemTouchHelper.END in project android_packages_apps_Settings by crdroidandroid.

the class ZenModeScheduleRuleSettings method onCreateInternal.

@Override
protected void onCreateInternal() {
    addPreferencesFromResource(R.xml.zen_mode_schedule_rule_settings);
    final PreferenceScreen root = getPreferenceScreen();
    mDays = root.findPreference(KEY_DAYS);
    mDays.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            showDaysDialog();
            return true;
        }
    });
    final FragmentManager mgr = getFragmentManager();
    mStart = new TimePickerPreference(getPrefContext(), mgr);
    mStart.setKey(KEY_START_TIME);
    mStart.setTitle(R.string.zen_mode_start_time);
    mStart.setCallback(new TimePickerPreference.Callback() {

        @Override
        public boolean onSetTime(final int hour, final int minute) {
            if (mDisableListeners)
                return true;
            if (!ZenModeConfig.isValidHour(hour))
                return false;
            if (!ZenModeConfig.isValidMinute(minute))
                return false;
            if (hour == mSchedule.startHour && minute == mSchedule.startMinute) {
                return true;
            }
            if (DEBUG)
                Log.d(TAG, "onPrefChange start h=" + hour + " m=" + minute);
            mSchedule.startHour = hour;
            mSchedule.startMinute = minute;
            updateRule(ZenModeConfig.toScheduleConditionId(mSchedule));
            return true;
        }
    });
    root.addPreference(mStart);
    mStart.setDependency(mDays.getKey());
    mEnd = new TimePickerPreference(getPrefContext(), mgr);
    mEnd.setKey(KEY_END_TIME);
    mEnd.setTitle(R.string.zen_mode_end_time);
    mEnd.setCallback(new TimePickerPreference.Callback() {

        @Override
        public boolean onSetTime(final int hour, final int minute) {
            if (mDisableListeners)
                return true;
            if (!ZenModeConfig.isValidHour(hour))
                return false;
            if (!ZenModeConfig.isValidMinute(minute))
                return false;
            if (hour == mSchedule.endHour && minute == mSchedule.endMinute) {
                return true;
            }
            if (DEBUG)
                Log.d(TAG, "onPrefChange end h=" + hour + " m=" + minute);
            mSchedule.endHour = hour;
            mSchedule.endMinute = minute;
            updateRule(ZenModeConfig.toScheduleConditionId(mSchedule));
            return true;
        }
    });
    root.addPreference(mEnd);
    mEnd.setDependency(mDays.getKey());
    mExitAtAlarm = (SwitchPreference) root.findPreference(KEY_EXIT_AT_ALARM);
    mExitAtAlarm.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference, Object o) {
            mSchedule.exitAtAlarm = (Boolean) o;
            updateRule(ZenModeConfig.toScheduleConditionId(mSchedule));
            return true;
        }
    });
}
Also used : OnPreferenceClickListener(android.support.v7.preference.Preference.OnPreferenceClickListener) FragmentManager(android.app.FragmentManager) PreferenceScreen(android.support.v7.preference.PreferenceScreen) Preference(android.support.v7.preference.Preference) SwitchPreference(android.support.v14.preference.SwitchPreference)

Aggregations

View (android.view.View)129 RecyclerView (android.support.v7.widget.RecyclerView)113 TextView (android.widget.TextView)35 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)25 ImageView (android.widget.ImageView)20 ArrayList (java.util.ArrayList)19 SuppressLint (android.annotation.SuppressLint)15 Intent (android.content.Intent)15 ViewGroup (android.view.ViewGroup)13 DialogInterface (android.content.DialogInterface)12 PreferenceScreen (android.support.v7.preference.PreferenceScreen)11 Toolbar (android.support.v7.widget.Toolbar)11 AdapterView (android.widget.AdapterView)11 OrientationHelperEx (com.alibaba.android.vlayout.OrientationHelperEx)10 List (java.util.List)10 AlertDialog (android.support.v7.app.AlertDialog)9 Context (android.content.Context)8 ActionBar (android.support.v7.app.ActionBar)8 ListView (android.widget.ListView)8 VirtualLayoutManager (com.alibaba.android.vlayout.VirtualLayoutManager)8