diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2018-03-28 21:29:07 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-03-28 21:29:07 +0000 |
commit | 599b4940105251e3a2488787d9b9b5b783418b7c (patch) | |
tree | 2933d86004726ed390bc4748b0b56666f5700185 | |
parent | 591e3608035da57b6839d09e588be02dab6b5eae (diff) | |
parent | 8c1a935a45fe434a3afca3d88a2cbc10403a59fd (diff) | |
download | android_packages_apps_Trebuchet-599b4940105251e3a2488787d9b9b5b783418b7c.tar.gz android_packages_apps_Trebuchet-599b4940105251e3a2488787d9b9b5b783418b7c.tar.bz2 android_packages_apps_Trebuchet-599b4940105251e3a2488787d9b9b5b783418b7c.zip |
Merge "Don't wait until layout to calculate the scroll range" into ub-launcher3-master
3 files changed, 22 insertions, 58 deletions
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index aafae1097..8788db445 100644 --- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java +++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java @@ -23,7 +23,6 @@ import com.android.launcher3.LauncherState; import com.android.launcher3.LauncherStateManager.AnimationConfig; import com.android.launcher3.LauncherStateManager.StateHandler; import com.android.launcher3.R; -import com.android.launcher3.allapps.SearchUiManager.OnScrollRangeChangeListener; import com.android.launcher3.anim.AnimationSuccessListener; import com.android.launcher3.anim.AnimatorSetBuilder; import com.android.launcher3.anim.PropertySetter; @@ -39,8 +38,7 @@ import com.android.launcher3.util.Themes; * If release velocity < THRES1, snap according to either top or bottom depending on whether it's * closer to top or closer to the page indicator. */ -public class AllAppsTransitionController - implements OnScrollRangeChangeListener, StateHandler, OnDeviceProfileChangeListener { +public class AllAppsTransitionController implements StateHandler, OnDeviceProfileChangeListener { public static final Property<AllAppsTransitionController, Float> ALL_APPS_PROGRESS = new Property<AllAppsTransitionController, Float>(Float.class, "allAppsProgress") { @@ -71,11 +69,11 @@ public class AllAppsTransitionController private float mShiftRange; // changes depending on the orientation private float mProgress; // [0, 1], mShiftRange * mProgress = shiftCurrent - private static final float DEFAULT_SHIFT_RANGE = 10; + private float mScrollRangeDelta = 0; public AllAppsTransitionController(Launcher l) { mLauncher = l; - mShiftRange = DEFAULT_SHIFT_RANGE; + mShiftRange = mLauncher.getDeviceProfile().heightPx; mProgress = 1f; mIsDarkTheme = Themes.getAttrBoolean(mLauncher, R.attr.isMainColorDark); @@ -95,6 +93,7 @@ public class AllAppsTransitionController @Override public void onDeviceProfileChanged(DeviceProfile dp) { mIsVerticalLayout = dp.isVerticalBarLayout(); + setScrollRangeDelta(mScrollRangeDelta); if (mIsVerticalLayout) { mAppsView.setAlpha(1); @@ -205,13 +204,14 @@ public class AllAppsTransitionController public void setupViews(AllAppsContainerView appsView) { mAppsView = appsView; - mAppsView.getSearchUiManager().addOnScrollRangeChangeListener(this); } - @Override - public void onScrollRangeChanged(int scrollRange) { - mShiftRange = scrollRange; - setProgress(mProgress); + /** + * Updates the total scroll range but does not update the UI. + */ + public void setScrollRangeDelta(float delta) { + mScrollRangeDelta = delta; + mShiftRange = mLauncher.getDeviceProfile().heightPx - mScrollRangeDelta; } /** diff --git a/src/com/android/launcher3/allapps/SearchUiManager.java b/src/com/android/launcher3/allapps/SearchUiManager.java index d8568f8ea..68193f5c1 100644 --- a/src/com/android/launcher3/allapps/SearchUiManager.java +++ b/src/com/android/launcher3/allapps/SearchUiManager.java @@ -15,8 +15,6 @@ */ package com.android.launcher3.allapps; -import android.support.animation.SpringAnimation; -import android.support.annotation.NonNull; import android.view.KeyEvent; /** @@ -30,11 +28,6 @@ public interface SearchUiManager { void initialize(AllAppsContainerView containerView); /** - * A {@link SpringAnimation} that will be used when the user flings. - */ - @NonNull SpringAnimation getSpringForFling(); - - /** * Notifies the search manager to close any active search session. */ void resetSearch(); @@ -44,14 +37,4 @@ public interface SearchUiManager { * some UI beforehand. */ void preDispatchKeyEvent(KeyEvent keyEvent); - - void addOnScrollRangeChangeListener(OnScrollRangeChangeListener listener); - - /** - * Callback for listening to changes in the vertical scroll range when opening all-apps. - */ - interface OnScrollRangeChangeListener { - - void onScrollRangeChanged(int scrollRange); - } } diff --git a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java index dd80dace3..ad61c55db 100644 --- a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java +++ b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java @@ -23,10 +23,6 @@ import static com.android.launcher3.graphics.IconNormalizer.ICON_VISIBLE_AREA_FA import android.content.Context; import android.graphics.Rect; -import android.support.animation.FloatValueHolder; -import android.support.animation.SpringAnimation; -import android.support.animation.SpringForce; -import android.support.annotation.NonNull; import android.text.Selection; import android.text.Spannable; import android.text.SpannableString; @@ -39,6 +35,7 @@ import android.view.ViewGroup.MarginLayoutParams; import com.android.launcher3.DeviceProfile; import com.android.launcher3.ExtendedEditText; +import com.android.launcher3.Insettable; import com.android.launcher3.Launcher; import com.android.launcher3.R; import com.android.launcher3.allapps.AllAppsContainerView; @@ -55,7 +52,7 @@ import java.util.ArrayList; */ public class AppsSearchContainerLayout extends ExtendedEditText implements SearchUiManager, AllAppsSearchBarController.Callbacks, - AllAppsStore.OnUpdateListener { + AllAppsStore.OnUpdateListener, Insettable { private final Launcher mLauncher; @@ -64,7 +61,6 @@ public class AppsSearchContainerLayout extends ExtendedEditText private AlphabeticalAppsList mApps; private AllAppsContainerView mAppsView; - private SpringAnimation mSpring; public AppsSearchContainerLayout(Context context) { this(context, null); @@ -91,9 +87,6 @@ public class AppsSearchContainerLayout extends ExtendedEditText spanned.setSpan(new TintedDrawableSpan(getContext(), R.drawable.ic_allapps_search), 0, 1, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); setHint(spanned); - - // Note: This spring does nothing. - mSpring = new SpringAnimation(new FloatValueHolder()).setSpring(new SpringForce(0)); } @Override @@ -146,11 +139,6 @@ public class AppsSearchContainerLayout extends ExtendedEditText } @Override - public @NonNull SpringAnimation getSpringForFling() { - return mSpring; - } - - @Override public void onAppsUpdated() { mSearchBarController.refreshSearchResult(); } @@ -206,22 +194,15 @@ public class AppsSearchContainerLayout extends ExtendedEditText } @Override - public void addOnScrollRangeChangeListener(final OnScrollRangeChangeListener listener) { - mLauncher.getHotseat().addOnLayoutChangeListener(new OnLayoutChangeListener() { - @Override - public void onLayoutChange(View v, int left, int top, int right, int bottom, - int oldLeft, int oldTop, int oldRight, int oldBottom) { - DeviceProfile dp = mLauncher.getDeviceProfile(); - if (!dp.isVerticalBarLayout()) { - Rect insets = dp.getInsets(); - int hotseatBottom = bottom - dp.hotseatBarBottomPaddingPx - insets.bottom; - MarginLayoutParams mlp = ((MarginLayoutParams) getLayoutParams()); - int myBot = mlp.topMargin + (int) getTranslationY() + mlp.height; - listener.onScrollRangeChanged(hotseatBottom - myBot); - } else { - listener.onScrollRangeChanged(bottom); - } - } - }); + public void setInsets(Rect insets) { + DeviceProfile dp = mLauncher.getDeviceProfile(); + if (dp.isVerticalBarLayout()) { + mLauncher.getAllAppsController().setScrollRangeDelta(0); + } else { + MarginLayoutParams mlp = ((MarginLayoutParams) getLayoutParams()); + int myBot = mlp.topMargin + (int) getTranslationY() + mlp.height; + mLauncher.getAllAppsController().setScrollRangeDelta( + dp.hotseatBarBottomPaddingPx + myBot); + } } } |