Migrate ENABLE_CURSOR_HOVER_STATES to aconfig
- Keeping FeatureFlags.ENABLE_CURSOR_HOVER_STATES for local testing until aconfig is available in FlagFlipper
- Still reference ENABLE_CURSOR_HOVER_STATES in tests as aconfig still can't be mocked
Bug: 300054410
Test: manual
Change-Id: Id385e8ee32ccf8b920b9b7f9cc620af32def589f
diff --git a/aconfig/launcher.aconfig b/aconfig/launcher.aconfig
index 226d717..8f4bfe0 100644
--- a/aconfig/launcher.aconfig
+++ b/aconfig/launcher.aconfig
@@ -20,3 +20,10 @@
description: "Enable a grid-only overview without a focused task."
bug: "270397206"
}
+
+flag {
+ name: "enable_cursor_hover_states"
+ namespace: "launcher"
+ description: "Enables cursor hover states for certain elements."
+ bug: "243191650"
+}
diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
index 0e5ab71..9856d55 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java
@@ -19,7 +19,7 @@
import static android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED;
import static com.android.launcher3.config.FeatureFlags.ENABLE_ALL_APPS_SEARCH_IN_TASKBAR;
-import static com.android.launcher3.config.FeatureFlags.ENABLE_CURSOR_HOVER_STATES;
+import static com.android.launcher3.config.FeatureFlags.enableCursorHoverStates;
import static com.android.launcher3.icons.IconNormalizer.ICON_VISIBLE_AREA_FACTOR;
import android.content.Context;
@@ -347,7 +347,7 @@
}
}
setClickAndLongClickListenersForIcon(hotseatView);
- if (ENABLE_CURSOR_HOVER_STATES.get()) {
+ if (enableCursorHoverStates()) {
setHoverListenerForIcon(hotseatView);
}
nextViewIndex++;
diff --git a/quickstep/src/com/android/quickstep/inputconsumers/TaskbarUnstashInputConsumer.java b/quickstep/src/com/android/quickstep/inputconsumers/TaskbarUnstashInputConsumer.java
index 0e90e50..200b37d 100644
--- a/quickstep/src/com/android/quickstep/inputconsumers/TaskbarUnstashInputConsumer.java
+++ b/quickstep/src/com/android/quickstep/inputconsumers/TaskbarUnstashInputConsumer.java
@@ -19,7 +19,7 @@
import static com.android.launcher3.MotionEventsUtils.isTrackpadMotionEvent;
import static com.android.launcher3.Utilities.squaredHypot;
-import static com.android.launcher3.config.FeatureFlags.ENABLE_CURSOR_HOVER_STATES;
+import static com.android.launcher3.config.FeatureFlags.enableCursorHoverStates;
import static com.android.launcher3.taskbar.TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_TOUCHING;
import android.content.Context;
@@ -276,7 +276,7 @@
*/
@Override
public void onHoverEvent(MotionEvent ev) {
- if (!ENABLE_CURSOR_HOVER_STATES.get() || mTaskbarActivityContext == null
+ if (!enableCursorHoverStates() || mTaskbarActivityContext == null
|| !mTaskbarActivityContext.isTaskbarStashed()) {
return;
}
@@ -331,7 +331,7 @@
private boolean isStashedTaskbarHovered(int x, int y) {
if (!mTaskbarActivityContext.isTaskbarStashed()
|| mTaskbarActivityContext.isTaskbarAllAppsOpen()
- || !ENABLE_CURSOR_HOVER_STATES.get()) {
+ || !enableCursorHoverStates()) {
return false;
}
DeviceProfile dp = mTaskbarActivityContext.getDeviceProfile();
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index fcaa0d7..99852d2 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -444,7 +444,7 @@
|| DesktopTaskView.DESKTOP_MODE_SUPPORTED;
boolean willDrawBorder =
- keyboardFocusHighlightEnabled || FeatureFlags.ENABLE_CURSOR_HOVER_STATES.get();
+ keyboardFocusHighlightEnabled || FeatureFlags.enableCursorHoverStates();
setWillNotDraw(!willDrawBorder);
if (willDrawBorder) {
@@ -462,7 +462,7 @@
/* targetView= */ this)) : null;
mHoverBorderAnimator =
- FeatureFlags.ENABLE_CURSOR_HOVER_STATES.get() ? new BorderAnimator(
+ FeatureFlags.enableCursorHoverStates() ? new BorderAnimator(
/* borderRadiusPx= */ (int) mCurrentFullscreenParams.mCornerRadius,
/* borderColor= */ styledAttrs.getColor(
R.styleable.TaskView_hoverBorderColor, DEFAULT_BORDER_COLOR),
@@ -537,7 +537,7 @@
@Override
public boolean onHoverEvent(MotionEvent event) {
- if (FeatureFlags.ENABLE_CURSOR_HOVER_STATES.get()) {
+ if (FeatureFlags.enableCursorHoverStates()) {
switch (event.getAction()) {
case MotionEvent.ACTION_HOVER_ENTER:
mHoverBorderAnimator.buildAnimator(/* isAppearing= */ true).start();
@@ -554,7 +554,7 @@
@Override
public boolean onInterceptHoverEvent(MotionEvent event) {
- if (FeatureFlags.ENABLE_CURSOR_HOVER_STATES.get()) {
+ if (FeatureFlags.enableCursorHoverStates()) {
// avoid triggering hover event on child elements which would cause HOVER_EXIT for this
// task view
return true;
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java
index 347c7af..ae623bd 100644
--- a/src/com/android/launcher3/BubbleTextView.java
+++ b/src/com/android/launcher3/BubbleTextView.java
@@ -16,9 +16,9 @@
package com.android.launcher3;
-import static com.android.launcher3.config.FeatureFlags.ENABLE_CURSOR_HOVER_STATES;
import static com.android.launcher3.config.FeatureFlags.ENABLE_DOWNLOAD_APP_UX_V2;
import static com.android.launcher3.config.FeatureFlags.ENABLE_ICON_LABEL_AUTO_SCALING;
+import static com.android.launcher3.config.FeatureFlags.enableCursorHoverStates;
import static com.android.launcher3.graphics.PreloadIconDrawable.newPendingIcon;
import static com.android.launcher3.icons.BitmapInfo.FLAG_NO_BADGE;
import static com.android.launcher3.icons.BitmapInfo.FLAG_THEMED;
@@ -198,7 +198,7 @@
public BubbleTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mActivity = ActivityContext.lookupContext(context);
- FastBitmapDrawable.setFlagHoverEnabled(ENABLE_CURSOR_HOVER_STATES.get());
+ FastBitmapDrawable.setFlagHoverEnabled(enableCursorHoverStates());
TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.BubbleTextView, defStyle, 0);
diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java
index 1ade51a..914339a 100644
--- a/src/com/android/launcher3/config/FeatureFlags.java
+++ b/src/com/android/launcher3/config/FeatureFlags.java
@@ -325,9 +325,14 @@
return ENABLE_GRID_ONLY_OVERVIEW.get() || Flags.enableGridOnlyOverview();
}
+ // Aconfig migration complete for ENABLE_CURSOR_HOVER_STATES.
+ @VisibleForTesting
public static final BooleanFlag ENABLE_CURSOR_HOVER_STATES = getDebugFlag(243191650,
"ENABLE_CURSOR_HOVER_STATES", TEAMFOOD,
"Enables cursor hover states for certain elements.");
+ public static boolean enableCursorHoverStates() {
+ return ENABLE_CURSOR_HOVER_STATES.get() || Flags.enableCursorHoverStates();
+ }
// TODO(Block 24): Clean up flags
public static final BooleanFlag ENABLE_NEW_MIGRATION_LOGIC = getDebugFlag(270393455,
diff --git a/src/com/android/launcher3/folder/FolderIcon.java b/src/com/android/launcher3/folder/FolderIcon.java
index 53d0efb..d00d901 100644
--- a/src/com/android/launcher3/folder/FolderIcon.java
+++ b/src/com/android/launcher3/folder/FolderIcon.java
@@ -16,7 +16,7 @@
package com.android.launcher3.folder;
-import static com.android.launcher3.config.FeatureFlags.ENABLE_CURSOR_HOVER_STATES;
+import static com.android.launcher3.config.FeatureFlags.enableCursorHoverStates;
import static com.android.launcher3.folder.ClippedFolderIconLayoutRule.ICON_OVERLAP_FACTOR;
import static com.android.launcher3.folder.ClippedFolderIconLayoutRule.MAX_NUM_ITEMS_IN_PREVIEW;
import static com.android.launcher3.folder.PreviewItemManager.INITIAL_ITEM_ANIMATION_DURATION;
@@ -805,7 +805,7 @@
@Override
public void onHoverChanged(boolean hovered) {
super.onHoverChanged(hovered);
- if (ENABLE_CURSOR_HOVER_STATES.get()) {
+ if (enableCursorHoverStates()) {
mBackground.setHovered(hovered);
}
}