summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java3
-rw-r--r--quickstep/src/com/android/launcher3/uioverrides/OverviewState.java7
-rw-r--r--quickstep/src/com/android/launcher3/uioverrides/UiFactory.java7
-rw-r--r--src/com/android/launcher3/LauncherState.java13
-rw-r--r--src/com/android/launcher3/WorkspaceStateTransitionAnimation.java22
-rw-r--r--src/com/android/launcher3/allapps/AllAppsTransitionController.java4
-rw-r--r--src/com/android/launcher3/anim/PropertySetter.java8
-rw-r--r--src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java6
8 files changed, 45 insertions, 25 deletions
diff --git a/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java b/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java
index 1fb3584a2..b580992c8 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java
@@ -24,7 +24,6 @@ import android.view.View;
import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherState;
-import com.android.launcher3.R;
import com.android.launcher3.allapps.AllAppsContainerView;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
@@ -86,7 +85,7 @@ public class AllAppsState extends LauncherState {
@Override
public int getVisibleElements(Launcher launcher) {
- return ALL_APPS_HEADER | ALL_APPS_CONTENT;
+ return ALL_APPS_HEADER | ALL_APPS_HEADER_EXTRA | ALL_APPS_CONTENT;
}
@Override
diff --git a/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java b/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java
index d123dce5a..0b69c582b 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java
@@ -111,16 +111,17 @@ public class OverviewState extends LauncherState {
public int getVisibleElements(Launcher launcher) {
if (launcher.getDeviceProfile().isVerticalBarLayout()) {
// TODO: Remove hotseat from overview
- return HOTSEAT;
+ return HOTSEAT_ICONS;
} else {
return launcher.getAppsView().getFloatingHeaderView().hasVisibleContent()
- ? ALL_APPS_HEADER : HOTSEAT;
+ ? HOTSEAT_EXTRA | ALL_APPS_HEADER_EXTRA : HOTSEAT_ICONS | HOTSEAT_EXTRA;
}
}
@Override
public float getVerticalProgress(Launcher launcher) {
- if (getVisibleElements(launcher) == HOTSEAT) {
+ if ((getVisibleElements(launcher) & ALL_APPS_HEADER_EXTRA) == 0) {
+ // We have no all apps content, so we're still at the fully down progress.
return super.getVerticalProgress(launcher);
}
return 1 - (getDefaultSwipeHeight(launcher)
diff --git a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java
index 5b5422148..13f9601ee 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/UiFactory.java
@@ -17,11 +17,14 @@
package com.android.launcher3.uioverrides;
import android.content.Context;
+import android.view.View;
import android.view.View.AccessibilityDelegate;
import com.android.launcher3.AbstractFloatingView;
+import com.android.launcher3.Hotseat;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherStateManager.StateHandler;
+import com.android.launcher3.R;
import com.android.launcher3.util.TouchController;
import com.android.quickstep.OverviewInteractionState;
import com.android.quickstep.RecentsModel;
@@ -84,4 +87,8 @@ public class UiFactory {
model.onTrimMemory(level);
}
}
+
+ public static View getHotseatExtraContent(Hotseat hotseat) {
+ return hotseat.findViewById(R.id.search_container_hotseat);
+ }
}
diff --git a/src/com/android/launcher3/LauncherState.java b/src/com/android/launcher3/LauncherState.java
index d5a212091..6185844cc 100644
--- a/src/com/android/launcher3/LauncherState.java
+++ b/src/com/android/launcher3/LauncherState.java
@@ -46,9 +46,11 @@ public class LauncherState {
* Note that workspace is not included here as in that case, we animate individual pages
*/
public static final int NONE = 0;
- public static final int HOTSEAT = 1 << 0;
- public static final int ALL_APPS_HEADER = 1 << 1;
- public static final int ALL_APPS_CONTENT = 1 << 2;
+ public static final int HOTSEAT_ICONS = 1 << 0;
+ public static final int HOTSEAT_EXTRA = 1 << 1; // e.g. a search box
+ public static final int ALL_APPS_HEADER = 1 << 2;
+ public static final int ALL_APPS_HEADER_EXTRA = 1 << 3; // e.g. app predictions
+ public static final int ALL_APPS_CONTENT = 1 << 4;
protected static final int FLAG_SHOW_SCRIM = 1 << 0;
protected static final int FLAG_MULTI_PAGE = 1 << 1;
@@ -193,7 +195,10 @@ public class LauncherState {
}
public int getVisibleElements(Launcher launcher) {
- return HOTSEAT;
+ if (launcher.getDeviceProfile().isVerticalBarLayout()) {
+ return HOTSEAT_ICONS;
+ }
+ return HOTSEAT_ICONS | HOTSEAT_EXTRA;
}
/**
diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
index 63c118125..66ea4d48b 100644
--- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
+++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
@@ -18,16 +18,10 @@ package com.android.launcher3;
import static com.android.launcher3.LauncherAnimUtils.DRAWABLE_ALPHA;
import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
-import static com.android.launcher3.LauncherState.HOTSEAT;
+import static com.android.launcher3.LauncherState.HOTSEAT_EXTRA;
+import static com.android.launcher3.LauncherState.HOTSEAT_ICONS;
import static com.android.launcher3.anim.PropertySetter.NO_ANIM_PROPERTY_SETTER;
-import static com.android.launcher3.compat.AccessibilityManagerCompat.isAccessibilityEnabled;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ObjectAnimator;
-import android.animation.TimeInterpolator;
-import android.animation.ValueAnimator;
-import android.util.Property;
+
import android.view.View;
import com.android.launcher3.LauncherState.PageAlphaProvider;
@@ -36,6 +30,7 @@ import com.android.launcher3.anim.AnimatorSetBuilder;
import com.android.launcher3.anim.Interpolators;
import com.android.launcher3.anim.PropertySetter;
import com.android.launcher3.graphics.ViewScrim;
+import com.android.launcher3.uioverrides.UiFactory;
/**
* Manages the animations between each of the workspace states.
@@ -85,11 +80,14 @@ public class WorkspaceStateTransitionAnimation {
scaleAndTranslation[2], Interpolators.ZOOM_IN);
int elements = state.getVisibleElements(mLauncher);
- float hotseatAlpha = (elements & HOTSEAT) != 0 ? 1 : 0;
- propertySetter.setViewAlpha(mLauncher.getHotseat(), hotseatAlpha,
+ float hotseatIconsAlpha = (elements & HOTSEAT_ICONS) != 0 ? 1 : 0;
+ float hotseatExtraAlpha = (elements & HOTSEAT_EXTRA) != 0 ? 1 : 0;
+ propertySetter.setViewAlpha(mLauncher.getHotseat().getLayout(), hotseatIconsAlpha,
pageAlphaProvider.interpolator);
+ propertySetter.setViewAlpha(UiFactory.getHotseatExtraContent(mLauncher.getHotseat()),
+ hotseatExtraAlpha, pageAlphaProvider.interpolator);
propertySetter.setViewAlpha(mLauncher.getWorkspace().getPageIndicator(),
- hotseatAlpha, pageAlphaProvider.interpolator);
+ hotseatIconsAlpha, pageAlphaProvider.interpolator);
// Set scrim
propertySetter.setFloat(ViewScrim.get(mWorkspace), ViewScrim.PROGRESS,
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
index bf8f531cc..fbd23d15a 100644
--- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java
+++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
@@ -2,6 +2,7 @@ package com.android.launcher3.allapps;
import static com.android.launcher3.LauncherState.ALL_APPS_CONTENT;
import static com.android.launcher3.LauncherState.ALL_APPS_HEADER;
+import static com.android.launcher3.LauncherState.ALL_APPS_HEADER_EXTRA;
import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
import static com.android.launcher3.anim.Interpolators.LINEAR;
import static com.android.launcher3.anim.PropertySetter.NO_ANIM_PROPERTY_SETTER;
@@ -179,12 +180,13 @@ public class AllAppsTransitionController
private void setAlphas(LauncherState toState, PropertySetter setter) {
int visibleElements = toState.getVisibleElements(mLauncher);
boolean hasHeader = (visibleElements & ALL_APPS_HEADER) != 0;
+ boolean hasHeaderExtra = (visibleElements & ALL_APPS_HEADER_EXTRA) != 0;
boolean hasContent = (visibleElements & ALL_APPS_CONTENT) != 0;
setter.setViewAlpha(mAppsView.getSearchView(), hasHeader ? 1 : 0, LINEAR);
setter.setViewAlpha(mAppsView.getContentView(), hasContent ? 1 : 0, LINEAR);
setter.setViewAlpha(mAppsView.getScrollBar(), hasContent ? 1 : 0, LINEAR);
- mAppsView.getFloatingHeaderView().setContentVisibility(hasHeader, hasContent, setter);
+ mAppsView.getFloatingHeaderView().setContentVisibility(hasHeaderExtra, hasContent, setter);
}
public AnimatorListenerAdapter getProgressAnimatorListener() {
diff --git a/src/com/android/launcher3/anim/PropertySetter.java b/src/com/android/launcher3/anim/PropertySetter.java
index 51580b1ea..1f11f7e63 100644
--- a/src/com/android/launcher3/anim/PropertySetter.java
+++ b/src/com/android/launcher3/anim/PropertySetter.java
@@ -32,8 +32,10 @@ public class PropertySetter {
public static final PropertySetter NO_ANIM_PROPERTY_SETTER = new PropertySetter();
public void setViewAlpha(View view, float alpha, TimeInterpolator interpolator) {
- view.setAlpha(alpha);
- AlphaUpdateListener.updateVisibility(view, isAccessibilityEnabled(view.getContext()));
+ if (view != null) {
+ view.setAlpha(alpha);
+ AlphaUpdateListener.updateVisibility(view, isAccessibilityEnabled(view.getContext()));
+ }
}
public <T> void setFloat(T target, Property<T, Float> property, float value,
@@ -58,7 +60,7 @@ public class PropertySetter {
@Override
public void setViewAlpha(View view, float alpha, TimeInterpolator interpolator) {
- if (view.getAlpha() == alpha) {
+ if (view == null || view.getAlpha() == alpha) {
return;
}
ObjectAnimator anim = ObjectAnimator.ofFloat(view, View.ALPHA, alpha);
diff --git a/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java b/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java
index 1227dfebf..c4b4a4585 100644
--- a/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java
+++ b/src_ui_overrides/com/android/launcher3/uioverrides/UiFactory.java
@@ -16,8 +16,10 @@
package com.android.launcher3.uioverrides;
+import android.view.View;
import android.view.View.AccessibilityDelegate;
+import com.android.launcher3.Hotseat;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherStateManager.StateHandler;
import com.android.launcher3.util.TouchController;
@@ -45,4 +47,8 @@ public class UiFactory {
public static void onStart(Launcher launcher) { }
public static void onTrimMemory(Launcher launcher, int level) { }
+
+ public static View getHotseatExtraContent(Hotseat hotseat) {
+ return null;
+ }
}