diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index aafae10976..8788db4454 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 ALL_APPS_PROGRESS = new Property(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 d8568f8eaf..68193f5c1c 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; /** @@ -29,11 +27,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. */ @@ -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 dd80dace34..ad61c55db7 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 @@ -145,11 +138,6 @@ public class AppsSearchContainerLayout extends ExtendedEditText new DefaultAppSearchAlgorithm(mApps.getApps()), this, mLauncher, this); } - @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); + } } }