Adding tuner param to enable fast-toggling.
- Moving constants to a more explicit flags class, which also handles
tuner changes.
- Removing some unused flags
Change-Id: If370581d431784f606c4b8d0c0face5b9a4b9fad
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index d5f9557e..00b10a1 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -1067,6 +1067,9 @@
<!-- Name of status bar -->
<string name="status_bar">Status bar</string>
+ <!-- Name of overview -->
+ <string name="overview">Overview</string>
+
<!-- Name of demo mode (mode with preset icons for screenshots) -->
<string name="demo_mode">Demo mode</string>
@@ -1156,6 +1159,11 @@
<!-- Option to use new paging layout in quick settings [CHAR LIMIT=60] -->
<string name="qs_paging" translatable="false">Use the new Quick Settings</string>
+ <!-- Toggles fast-toggling recents via the recents button -->
+ <string name="overview_fast_toggle_via_button">Enable fast toggle</string>
+ <!-- Description for the toggle for fast-toggling recents via the recents button -->
+ <string name="overview_fast_toggle_via_button_desc">Enable paging via the Overview button</string>
+
<!-- Category in the System UI Tuner settings, where new/experimental
settings are -->
<string name="experimental">Experimental</string>
diff --git a/packages/SystemUI/res/xml/tuner_prefs.xml b/packages/SystemUI/res/xml/tuner_prefs.xml
index 5980108..c36cab8 100644
--- a/packages/SystemUI/res/xml/tuner_prefs.xml
+++ b/packages/SystemUI/res/xml/tuner_prefs.xml
@@ -87,6 +87,17 @@
</PreferenceScreen>
+
+ <PreferenceScreen
+ android:title="@string/overview" >
+
+ <com.android.systemui.tuner.TunerSwitch
+ android:key="overview_fast_toggle"
+ android:title="@string/overview_fast_toggle_via_button"
+ android:summary="@string/overview_fast_toggle_via_button_desc" />
+
+ </PreferenceScreen>
+
<SwitchPreference
android:key="battery_pct"
android:title="@string/show_battery_percentage"
diff --git a/packages/SystemUI/src/com/android/systemui/Prefs.java b/packages/SystemUI/src/com/android/systemui/Prefs.java
index 3657cf2..9d98772 100644
--- a/packages/SystemUI/src/com/android/systemui/Prefs.java
+++ b/packages/SystemUI/src/com/android/systemui/Prefs.java
@@ -30,7 +30,8 @@
@Retention(RetentionPolicy.SOURCE)
@StringDef({
- Key.SEARCH_APP_WIDGET_ID,
+ Key.OVERVIEW_SEARCH_APP_WIDGET_ID,
+ Key.OVERVIEW_SEARCH_APP_WIDGET_PACKAGE,
Key.DEBUG_MODE_ENABLED,
Key.HOTSPOT_TILE_LAST_USED,
Key.COLOR_INVERSION_TILE_LAST_USED,
@@ -43,8 +44,8 @@
Key.DND_FAVORITE_ZEN,
})
public @interface Key {
- String SEARCH_APP_WIDGET_ID = "searchAppWidgetId";
- String SEARCH_APP_WIDGET_PACKAGE = "searchAppWidgetPackage";
+ String OVERVIEW_SEARCH_APP_WIDGET_ID = "searchAppWidgetId";
+ String OVERVIEW_SEARCH_APP_WIDGET_PACKAGE = "searchAppWidgetPackage";
String DEBUG_MODE_ENABLED = "debugModeEnabled";
String HOTSPOT_TILE_LAST_USED = "HotspotTileLastUsed";
String COLOR_INVERSION_TILE_LAST_USED = "ColorInversionTileLastUsed";
diff --git a/packages/SystemUI/src/com/android/systemui/recents/Constants.java b/packages/SystemUI/src/com/android/systemui/recents/Constants.java
index a429447..c08fb05 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/Constants.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/Constants.java
@@ -29,34 +29,4 @@
public static final int DismissSourceHeaderButton = 2;
}
- // TODO: Move into RecentsDebugFlags
- public static class DebugFlags {
-
- public static class App {
- // Enables debug drawing for the transition thumbnail
- public static final boolean EnableTransitionThumbnailDebugMode = false;
- // Enables the filtering of tasks according to their grouping
- public static final boolean EnableTaskFiltering = false;
- // Enables dismiss-all
- public static final boolean EnableDismissAll = false;
- // Enables fast-toggling by just tapping on the recents button
- public static final boolean EnableFastToggleRecents = false;
- // Enables the thumbnail alpha on the front-most task
- public static final boolean EnableThumbnailAlphaOnFrontmost = false;
- // This disables the search bar integration
- public static final boolean DisableSearchBar = true;
- // This disables the bitmap and icon caches
- public static final boolean DisableBackgroundCache = false;
- // Enables the simulated task affiliations
- public static final boolean EnableSimulatedTaskGroups = false;
- // Defines the number of mock task affiliations per group
- public static final int TaskAffiliationsGroupCount = 12;
- // Enables us to create mock recents tasks
- public static final boolean EnableSystemServicesProxy = false;
- // Defines the number of mock recents packages to create
- public static final int SystemServicesProxyMockPackageCount = 3;
- // Defines the number of mock recents tasks to create
- public static final int SystemServicesProxyMockTaskCount = 100;
- }
- }
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java
index 95f1eb2..3806b46 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java
@@ -62,6 +62,7 @@
private final static String ACTION_TOGGLE_RECENTS = "com.android.systemui.recents.ACTION_TOGGLE";
private static SystemServicesProxy sSystemServicesProxy;
+ private static RecentsDebugFlags sDebugFlags;
private static RecentsTaskLoader sTaskLoader;
private static RecentsConfiguration sConfiguration;
@@ -148,8 +149,13 @@
return sConfiguration;
}
+ public static RecentsDebugFlags getDebugFlags() {
+ return sDebugFlags;
+ }
+
@Override
public void start() {
+ sDebugFlags = new RecentsDebugFlags(mContext);
sSystemServicesProxy = new SystemServicesProxy(mContext);
sTaskLoader = new RecentsTaskLoader(mContext);
sConfiguration = new RecentsConfiguration(mContext);
@@ -166,6 +172,7 @@
// Register with the event bus
EventBus.getDefault().register(this, EVENT_BUS_PRIORITY);
+ EventBus.getDefault().register(sSystemServicesProxy, EVENT_BUS_PRIORITY);
EventBus.getDefault().register(sTaskLoader, EVENT_BUS_PRIORITY);
// Due to the fact that RecentsActivity is per-user, we need to establish and interface for
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
index 1e46e6f..b4bb392 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
@@ -45,6 +45,7 @@
import com.android.systemui.recents.events.activity.CancelEnterRecentsWindowAnimationEvent;
import com.android.systemui.recents.events.activity.EnterRecentsWindowAnimationCompletedEvent;
import com.android.systemui.recents.events.activity.EnterRecentsWindowLastAnimationFrameEvent;
+import com.android.systemui.recents.events.activity.DebugFlagsChangedEvent;
import com.android.systemui.recents.events.activity.HideRecentsEvent;
import com.android.systemui.recents.events.activity.IterateRecentsEvent;
import com.android.systemui.recents.events.activity.LaunchTaskFailedEvent;
@@ -217,14 +218,14 @@
mEmptyView = mEmptyViewStub.inflate();
}
mEmptyView.setVisibility(View.VISIBLE);
- if (!Constants.DebugFlags.App.DisableSearchBar) {
+ if (!RecentsDebugFlags.Static.DisableSearchBar) {
mRecentsView.setSearchBarVisibility(View.GONE);
}
} else {
if (mEmptyView != null) {
mEmptyView.setVisibility(View.GONE);
}
- if (!Constants.DebugFlags.App.DisableSearchBar) {
+ if (!RecentsDebugFlags.Static.DisableSearchBar) {
if (mRecentsView.hasValidSearchBar()) {
mRecentsView.setSearchBarVisibility(View.VISIBLE);
} else {
@@ -338,7 +339,7 @@
EventBus.getDefault().register(this, EVENT_BUS_PRIORITY);
// Initialize the widget host (the host id is static and does not change)
- if (!Constants.DebugFlags.App.DisableSearchBar) {
+ if (!RecentsDebugFlags.Static.DisableSearchBar) {
mAppWidgetHost = new RecentsAppWidgetHost(this, RecentsAppWidgetHost.HOST_ID);
}
mPackageMonitor = new RecentsPackageMonitor();
@@ -364,14 +365,14 @@
mFinishLaunchHomeRunnable = new FinishRecentsRunnable(homeIntent);
// Bind the search app widget when we first start up
- if (!Constants.DebugFlags.App.DisableSearchBar) {
+ if (!RecentsDebugFlags.Static.DisableSearchBar) {
mSearchWidgetInfo = ssp.getOrBindSearchAppWidget(this, mAppWidgetHost);
}
// Register the broadcast receiver to handle messages when the screen is turned off
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
- if (!Constants.DebugFlags.App.DisableSearchBar) {
+ if (!RecentsDebugFlags.Static.DisableSearchBar) {
filter.addAction(SearchManager.INTENT_GLOBAL_SEARCH_ACTIVITY_CHANGED);
}
registerReceiver(mSystemBroadcastReceiver, filter);
@@ -433,12 +434,8 @@
protected void onPause() {
super.onPause();
- if (Constants.DebugFlags.App.EnableFastToggleRecents) {
- // Stop the fast-toggle dozer
- mIterateTrigger.stopDozing();
- }
-
- if (Constants.DebugFlags.App.EnableFastToggleRecents) {
+ RecentsDebugFlags flags = Recents.getDebugFlags();
+ if (flags.isFastToggleRecentsEnabled()) {
// Stop the fast-toggle dozer
mIterateTrigger.stopDozing();
}
@@ -483,7 +480,7 @@
mPackageMonitor.unregister();
// Stop listening for widget package changes if there was one bound
- if (!Constants.DebugFlags.App.DisableSearchBar) {
+ if (!RecentsDebugFlags.Static.DisableSearchBar) {
mAppWidgetHost.stopListening();
}
@@ -617,7 +614,7 @@
ViewAnimation.TaskViewEnterContext ctx = new ViewAnimation.TaskViewEnterContext(t);
ctx.postAnimationTrigger.increment();
if (mSearchWidgetInfo != null) {
- if (!Constants.DebugFlags.App.DisableSearchBar) {
+ if (!RecentsDebugFlags.Static.DisableSearchBar) {
ctx.postAnimationTrigger.addLastDecrementRunnable(new Runnable() {
@Override
public void run() {
@@ -636,8 +633,8 @@
// the dozer now
RecentsConfiguration config = Recents.getConfiguration();
RecentsActivityLaunchState launchState = config.getLaunchState();
- if (Constants.DebugFlags.App.EnableFastToggleRecents &&
- !launchState.launchedWithAltTab) {
+ RecentsDebugFlags flags = Recents.getDebugFlags();
+ if (flags.isFastToggleRecentsEnabled() && !launchState.launchedWithAltTab) {
mIterateTrigger.startDozing();
}
}
@@ -725,6 +722,11 @@
MetricsLogger.count(this, "overview_screen_pinned", 1);
}
+ public final void onBusEvent(DebugFlagsChangedEvent event) {
+ // Just finish recents so that we can reload the flags anew on the next instantiation
+ finish();
+ }
+
private void refreshSearchWidgetView() {
if (mSearchWidgetInfo != null) {
SystemServicesProxy ssp = Recents.getSystemServices();
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivityLaunchState.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivityLaunchState.java
index 01ffd2a..7f7dbce 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivityLaunchState.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivityLaunchState.java
@@ -74,7 +74,8 @@
* Returns the task to focus given the current launch state.
*/
public int getInitialFocusTaskIndex(int numTasks) {
- if (Constants.DebugFlags.App.EnableFastToggleRecents && !launchedWithAltTab) {
+ RecentsDebugFlags flags = Recents.getDebugFlags();
+ if (flags.isFastToggleRecentsEnabled() && !launchedWithAltTab) {
// If we are fast toggling, then focus the next task depending on when you are on home
// or coming in from another app
if (launchedFromHome) {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsDebugFlags.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsDebugFlags.java
new file mode 100644
index 0000000..6c74a4e
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsDebugFlags.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.recents;
+
+import android.content.Context;
+import com.android.systemui.recents.events.EventBus;
+import com.android.systemui.recents.events.activity.DebugFlagsChangedEvent;
+import com.android.systemui.tuner.TunerService;
+
+/**
+ * Tunable debug flags
+ */
+public class RecentsDebugFlags implements TunerService.Tunable {
+
+ private static final String KEY_FAST_TOGGLE = "overview_fast_toggle";
+
+ public static class Static {
+ // Enables debug drawing for the transition thumbnail
+ public static final boolean EnableTransitionThumbnailDebugMode = false;
+ // This disables the search bar integration
+ public static final boolean DisableSearchBar = true;
+ // This disables the bitmap and icon caches
+ public static final boolean DisableBackgroundCache = false;
+ // Enables the simulated task affiliations
+ public static final boolean EnableSimulatedTaskGroups = false;
+ // Defines the number of mock task affiliations per group
+ public static final int TaskAffiliationsGroupCount = 12;
+ // Enables us to create mock recents tasks
+ public static final boolean EnableSystemServicesProxy = false;
+ // Defines the number of mock recents packages to create
+ public static final int SystemServicesProxyMockPackageCount = 3;
+ // Defines the number of mock recents tasks to create
+ public static final int SystemServicesProxyMockTaskCount = 100;
+ }
+
+ private boolean mForceEnableFreeformWorkspace;
+ private boolean mEnableFastToggleRecents;
+
+ /**
+ * We read the prefs once when we start the activity, then update them as the tuner changes
+ * the flags.
+ */
+ public RecentsDebugFlags(Context context) {
+ // Register all our flags, this will also call onTuningChanged() for each key, which will
+ // initialize the current state of each flag
+ TunerService.get(context).addTunable(this, KEY_FAST_TOGGLE);
+ }
+
+ /**
+ * @return whether we are enabling fast toggling.
+ */
+ public boolean isFastToggleRecentsEnabled() {
+ return mEnableFastToggleRecents;
+ }
+
+ @Override
+ public void onTuningChanged(String key, String newValue) {
+ switch (key) {
+ case KEY_FAST_TOGGLE:
+ mEnableFastToggleRecents = (newValue != null) &&
+ (Integer.parseInt(newValue) != 0);
+ break;
+ }
+ EventBus.getDefault().send(new DebugFlagsChangedEvent());
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java
index b491f94..85a2eda 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java
@@ -324,8 +324,8 @@
if (topTask != null && ssp.isRecentsTopMost(topTask, isTopTaskHome)) {
RecentsConfiguration config = Recents.getConfiguration();
RecentsActivityLaunchState launchState = config.getLaunchState();
- if (Constants.DebugFlags.App.EnableFastToggleRecents &&
- !launchState.launchedWithAltTab) {
+ RecentsDebugFlags flags = Recents.getDebugFlags();
+ if (flags.isFastToggleRecentsEnabled() && !launchState.launchedWithAltTab) {
// Notify recents to move onto the next task
EventBus.getDefault().post(new IterateRecentsEvent());
} else {
@@ -555,7 +555,7 @@
// Update the configuration for the current state
config.update(mContext, ssp, ssp.getWindowRect());
- if (!Constants.DebugFlags.App.DisableSearchBar && tryAndBindSearchWidget) {
+ if (!RecentsDebugFlags.Static.DisableSearchBar && tryAndBindSearchWidget) {
// Try and pre-emptively bind the search widget on startup to ensure that we
// have the right thumbnail bounds to animate to.
// Note: We have to reload the widget id before we get the task stack bounds below
@@ -758,7 +758,7 @@
int toHeaderHeight = (int) (mHeaderBar.getMeasuredHeight() * toTransform.scale);
thumbnail = Bitmap.createBitmap(toHeaderWidth, toHeaderHeight,
Bitmap.Config.ARGB_8888);
- if (Constants.DebugFlags.App.EnableTransitionThumbnailDebugMode) {
+ if (RecentsDebugFlags.Static.EnableTransitionThumbnailDebugMode) {
thumbnail.eraseColor(0xFFff0000);
} else {
Canvas c = new Canvas(thumbnail);
@@ -816,11 +816,11 @@
if (!useThumbnailTransition) {
// If there is no thumbnail transition, but is launching from home into recents, then
// use a quick home transition and do the animation from home
- if (!Constants.DebugFlags.App.DisableSearchBar && hasRecentTasks) {
+ if (!RecentsDebugFlags.Static.DisableSearchBar && hasRecentTasks) {
SystemServicesProxy ssp = Recents.getSystemServices();
String homeActivityPackage = ssp.getHomeActivityPackageName();
String searchWidgetPackage = Prefs.getString(mContext,
- Prefs.Key.SEARCH_APP_WIDGET_PACKAGE, null);
+ Prefs.Key.OVERVIEW_SEARCH_APP_WIDGET_PACKAGE, null);
// Determine whether we are coming from a search owned home activity
boolean fromSearchHome = (homeActivityPackage != null) &&
diff --git a/packages/SystemUI/src/com/android/systemui/recents/events/activity/DebugFlagsChangedEvent.java b/packages/SystemUI/src/com/android/systemui/recents/events/activity/DebugFlagsChangedEvent.java
new file mode 100644
index 0000000..fe3bf26
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/recents/events/activity/DebugFlagsChangedEvent.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.recents.events.activity;
+
+import com.android.systemui.recents.events.EventBus;
+
+/**
+ * This is sent when the SystemUI tuner changes a flag.
+ */
+public class DebugFlagsChangedEvent extends EventBus.Event {
+ // Simple event
+}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
index 0432ac9..16d6929 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
@@ -63,7 +63,8 @@
import com.android.internal.os.BackgroundThread;
import com.android.systemui.Prefs;
import com.android.systemui.R;
-import com.android.systemui.recents.Constants;
+import com.android.systemui.recents.Recents;
+import com.android.systemui.recents.RecentsDebugFlags;
import com.android.systemui.recents.RecentsImpl;
import java.io.IOException;
@@ -113,6 +114,7 @@
/** Private constructor */
public SystemServicesProxy(Context context) {
+ RecentsDebugFlags flags = Recents.getDebugFlags();
mAccm = AccessibilityManager.getInstance(context);
mAm = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
mIam = ActivityManagerNative.getDefault();
@@ -124,8 +126,8 @@
mUm = UserManager.get(context);
mDisplay = mWm.getDefaultDisplay();
mRecentsPackage = context.getPackageName();
- mHasFreeformWorkspaceSupport = false && mPm.hasSystemFeature(
- PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT);
+ mHasFreeformWorkspaceSupport = false &&
+ mPm.hasSystemFeature(PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT);
// Get the dummy thumbnail width/heights
Resources res = context.getResources();
@@ -143,7 +145,7 @@
// Resolve the assist intent
mAssistComponent = mAssistUtils.getAssistComponentForUser(UserHandle.myUserId());
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) {
// Create a dummy icon
mDummyIcon = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
mDummyIcon.eraseColor(0xFF999999);
@@ -156,13 +158,13 @@
if (mAm == null) return null;
// If we are mocking, then create some recent tasks
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) {
ArrayList<ActivityManager.RecentTaskInfo> tasks =
new ArrayList<ActivityManager.RecentTaskInfo>();
- int count = Math.min(numLatestTasks, Constants.DebugFlags.App.SystemServicesProxyMockTaskCount);
+ int count = Math.min(numLatestTasks, RecentsDebugFlags.Static.SystemServicesProxyMockTaskCount);
for (int i = 0; i < count; i++) {
// Create a dummy component name
- int packageIndex = i % Constants.DebugFlags.App.SystemServicesProxyMockPackageCount;
+ int packageIndex = i % RecentsDebugFlags.Static.SystemServicesProxyMockPackageCount;
ComponentName cn = new ComponentName("com.android.test" + packageIndex,
"com.android.test" + i + ".Activity");
String description = "" + i + " - " +
@@ -381,7 +383,7 @@
if (mAm == null) return null;
// If we are mocking, then just return a dummy thumbnail
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) {
Bitmap thumbnail = Bitmap.createBitmap(mDummyThumbnailWidth, mDummyThumbnailHeight,
Bitmap.Config.ARGB_8888);
thumbnail.eraseColor(0xff333333);
@@ -443,7 +445,7 @@
/** Moves a task to the front with the specified activity options. */
public void moveTaskToFront(int taskId, ActivityOptions opts) {
if (mAm == null) return;
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) return;
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) return;
if (opts != null) {
mAm.moveTaskToFront(taskId, ActivityManager.MOVE_TASK_WITH_HOME,
@@ -456,7 +458,7 @@
/** Removes the task */
public void removeTask(final int taskId) {
if (mAm == null) return;
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) return;
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) return;
// Remove the task.
BackgroundThread.getHandler().post(new Runnable() {
@@ -475,7 +477,7 @@
*/
public ActivityInfo getActivityInfo(ComponentName cn, int userId) {
if (mIpm == null) return null;
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) return new ActivityInfo();
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) return new ActivityInfo();
try {
return mIpm.getActivityInfo(cn, PackageManager.GET_META_DATA, userId);
@@ -492,7 +494,7 @@
*/
public ActivityInfo getActivityInfo(ComponentName cn) {
if (mPm == null) return null;
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) return new ActivityInfo();
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) return new ActivityInfo();
try {
return mPm.getActivityInfo(cn, PackageManager.GET_META_DATA);
@@ -507,7 +509,7 @@
if (mPm == null) return null;
// If we are mocking, then return a mock label
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) {
return "Recent Task";
}
@@ -519,7 +521,7 @@
if (mPm == null) return null;
// If we are mocking, then return a mock label
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) {
return "Recent Task";
}
@@ -549,7 +551,7 @@
if (mPm == null) return null;
// If we are mocking, then return a mock label
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) {
return new ColorDrawable(0xFF666666);
}
@@ -580,7 +582,7 @@
/** Returns the package name of the home activity. */
public String getHomeActivityPackageName() {
if (mPm == null) return null;
- if (Constants.DebugFlags.App.EnableSystemServicesProxy) return null;
+ if (RecentsDebugFlags.Static.EnableSystemServicesProxy) return null;
ArrayList<ResolveInfo> homeActivities = new ArrayList<ResolveInfo>();
ComponentName defaultHomeActivity = mPm.getHomeActivities(homeActivities);
@@ -623,22 +625,22 @@
* Returns the current search widget id.
*/
public int getSearchAppWidgetId(Context context) {
- return Prefs.getInt(context, Prefs.Key.SEARCH_APP_WIDGET_ID, -1);
+ return Prefs.getInt(context, Prefs.Key.OVERVIEW_SEARCH_APP_WIDGET_ID, -1);
}
/**
* Returns the current search widget info, binding a new one if necessary.
*/
public AppWidgetProviderInfo getOrBindSearchAppWidget(Context context, AppWidgetHost host) {
- int searchWidgetId = Prefs.getInt(context, Prefs.Key.SEARCH_APP_WIDGET_ID, -1);
+ int searchWidgetId = Prefs.getInt(context, Prefs.Key.OVERVIEW_SEARCH_APP_WIDGET_ID, -1);
AppWidgetProviderInfo searchWidgetInfo = mAwm.getAppWidgetInfo(searchWidgetId);
AppWidgetProviderInfo resolvedSearchWidgetInfo = resolveSearchAppWidget();
// Return the search widget info if it hasn't changed
if (searchWidgetInfo != null && resolvedSearchWidgetInfo != null &&
searchWidgetInfo.provider.equals(resolvedSearchWidgetInfo.provider)) {
- if (Prefs.getString(context, Prefs.Key.SEARCH_APP_WIDGET_PACKAGE, null) == null) {
- Prefs.putString(context, Prefs.Key.SEARCH_APP_WIDGET_PACKAGE,
+ if (Prefs.getString(context, Prefs.Key.OVERVIEW_SEARCH_APP_WIDGET_PACKAGE, null) == null) {
+ Prefs.putString(context, Prefs.Key.OVERVIEW_SEARCH_APP_WIDGET_PACKAGE,
searchWidgetInfo.provider.getPackageName());
}
return searchWidgetInfo;
@@ -654,16 +656,16 @@
Pair<Integer, AppWidgetProviderInfo> widgetInfo = bindSearchAppWidget(host,
resolvedSearchWidgetInfo);
if (widgetInfo != null) {
- Prefs.putInt(context, Prefs.Key.SEARCH_APP_WIDGET_ID, widgetInfo.first);
- Prefs.putString(context, Prefs.Key.SEARCH_APP_WIDGET_PACKAGE,
+ Prefs.putInt(context, Prefs.Key.OVERVIEW_SEARCH_APP_WIDGET_ID, widgetInfo.first);
+ Prefs.putString(context, Prefs.Key.OVERVIEW_SEARCH_APP_WIDGET_PACKAGE,
widgetInfo.second.provider.getPackageName());
return widgetInfo.second;
}
}
// If we fall through here, then there is no resolved search widget, so clear the state
- Prefs.remove(context, Prefs.Key.SEARCH_APP_WIDGET_ID);
- Prefs.remove(context, Prefs.Key.SEARCH_APP_WIDGET_PACKAGE);
+ Prefs.remove(context, Prefs.Key.OVERVIEW_SEARCH_APP_WIDGET_ID);
+ Prefs.remove(context, Prefs.Key.OVERVIEW_SEARCH_APP_WIDGET_PACKAGE);
return null;
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
index bba453a..fe67fd9 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
@@ -30,9 +30,9 @@
import android.util.Log;
import android.util.LruCache;
import com.android.systemui.R;
-import com.android.systemui.recents.Constants;
import com.android.systemui.recents.Recents;
import com.android.systemui.recents.RecentsConfiguration;
+import com.android.systemui.recents.RecentsDebugFlags;
import com.android.systemui.recents.events.activity.PackagesChangedEvent;
import com.android.systemui.recents.misc.SystemServicesProxy;
@@ -283,9 +283,9 @@
res.getColor(R.color.recents_task_bar_default_background_color);
mMaxThumbnailCacheSize = res.getInteger(R.integer.config_recents_max_thumbnail_count);
mMaxIconCacheSize = res.getInteger(R.integer.config_recents_max_icon_count);
- int iconCacheSize = Constants.DebugFlags.App.DisableBackgroundCache ? 1 :
+ int iconCacheSize = RecentsDebugFlags.Static.DisableBackgroundCache ? 1 :
mMaxIconCacheSize;
- int thumbnailCacheSize = Constants.DebugFlags.App.DisableBackgroundCache ? 1 :
+ int thumbnailCacheSize = RecentsDebugFlags.Static.DisableBackgroundCache ? 1 :
mMaxThumbnailCacheSize;
// Create the default assets
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
index 6734012..f26dcde 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
@@ -24,8 +24,8 @@
import android.graphics.RectF;
import android.graphics.drawable.ColorDrawable;
import com.android.systemui.R;
-import com.android.systemui.recents.Constants;
import com.android.systemui.recents.Recents;
+import com.android.systemui.recents.RecentsDebugFlags;
import com.android.systemui.recents.misc.NamedCounter;
import com.android.systemui.recents.misc.SystemServicesProxy;
import com.android.systemui.recents.misc.Utilities;
@@ -543,7 +543,7 @@
* Temporary: This method will simulate affiliation groups by
*/
public void createAffiliatedGroupings(Context context) {
- if (Constants.DebugFlags.App.EnableSimulatedTaskGroups) {
+ if (RecentsDebugFlags.Static.EnableSimulatedTaskGroups) {
HashMap<Task.TaskKey, Task> taskMap = new HashMap<Task.TaskKey, Task>();
// Sort all tasks by increasing firstActiveTime of the task
ArrayList<Task> tasks = mTaskList.getTasks();
@@ -559,7 +559,7 @@
String prevPackage = "";
int prevAffiliation = -1;
Random r = new Random();
- int groupCountDown = Constants.DebugFlags.App.TaskAffiliationsGroupCount;
+ int groupCountDown = RecentsDebugFlags.Static.TaskAffiliationsGroupCount;
for (int i = 0; i < taskCount; i++) {
Task t = tasks.get(i);
String packageName = t.key.getComponent().getPackageName();
@@ -574,7 +574,7 @@
addGroup(group);
prevAffiliation = affiliation;
prevPackage = packageName;
- groupCountDown = Constants.DebugFlags.App.TaskAffiliationsGroupCount;
+ groupCountDown = RecentsDebugFlags.Static.TaskAffiliationsGroupCount;
}
group.addTask(t);
taskMap.put(t.key, t);
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsTransitionHelper.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsTransitionHelper.java
index b2f716d..4ecb80a 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsTransitionHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsTransitionHelper.java
@@ -34,6 +34,7 @@
import com.android.systemui.recents.Constants;
import com.android.systemui.recents.ExitRecentsWindowFirstAnimationFrameEvent;
import com.android.systemui.recents.Recents;
+import com.android.systemui.recents.RecentsDebugFlags;
import com.android.systemui.recents.events.EventBus;
import com.android.systemui.recents.events.activity.CancelEnterRecentsWindowAnimationEvent;
import com.android.systemui.recents.events.activity.LaunchTaskFailedEvent;
@@ -319,7 +320,7 @@
b = Bitmap.createBitmap(fromHeaderWidth, fromHeaderHeight,
Bitmap.Config.ARGB_8888);
- if (Constants.DebugFlags.App.EnableTransitionThumbnailDebugMode) {
+ if (RecentsDebugFlags.Static.EnableTransitionThumbnailDebugMode) {
b.eraseColor(0xFFff0000);
} else {
Canvas c = new Canvas(b);
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
index cb7465d..2c8f316 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
@@ -45,6 +45,7 @@
import com.android.systemui.recents.RecentsActivity;
import com.android.systemui.recents.RecentsActivityLaunchState;
import com.android.systemui.recents.RecentsConfiguration;
+import com.android.systemui.recents.RecentsDebugFlags;
import com.android.systemui.recents.events.EventBus;
import com.android.systemui.recents.events.ui.DismissTaskViewEvent;
import com.android.systemui.recents.events.ui.dragndrop.DragEndEvent;
@@ -324,22 +325,9 @@
if (launchState.launchedFromAppWithThumbnail) {
if (mTask.isLaunchTarget) {
- // Animate the dim/overlay
- if (Constants.DebugFlags.App.EnableThumbnailAlphaOnFrontmost) {
- // Animate the thumbnail alpha before the dim animation (to prevent updating the
- // hardware layer)
- mThumbnailView.startEnterRecentsAnimation(new Runnable() {
- @Override
- public void run() {
- animateDimToProgress(taskViewEnterFromAppDuration,
- ctx.postAnimationTrigger.decrementOnAnimationEnd());
- }
- });
- } else {
- // Immediately start the dim animation
- animateDimToProgress(taskViewEnterFromAppDuration,
- ctx.postAnimationTrigger.decrementOnAnimationEnd());
- }
+ // Immediately start the dim animation
+ animateDimToProgress(taskViewEnterFromAppDuration,
+ ctx.postAnimationTrigger.decrementOnAnimationEnd());
ctx.postAnimationTrigger.increment();
// Animate the action button in
@@ -635,7 +623,9 @@
@Override
protected void dispatchDraw(Canvas canvas) {
super.dispatchDraw(canvas);
- if (Constants.DebugFlags.App.EnableFastToggleRecents && mIsFocused) {
+
+ RecentsDebugFlags flags = Recents.getDebugFlags();
+ if (flags.isFastToggleRecentsEnabled() && mIsFocused) {
Paint tmpPaint = new Paint();
Rect tmpRect = new Rect();
tmpRect.set(0, 0, getWidth(), getHeight());
@@ -676,7 +666,8 @@
clearAccessibilityFocus();
}
}
- if (Constants.DebugFlags.App.EnableFastToggleRecents) {
+ RecentsDebugFlags flags = Recents.getDebugFlags();
+ if (flags.isFastToggleRecentsEnabled()) {
invalidate();
}
}