diff options
15 files changed, 205 insertions, 105 deletions
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index d5f9557ea56a..00b10a1191f9 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 59801089d1bd..c36cab8c3c5a 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 3657cf27a6a9..9d9877237a04 100644 --- a/packages/SystemUI/src/com/android/systemui/Prefs.java +++ b/packages/SystemUI/src/com/android/systemui/Prefs.java @@ -30,7 +30,8 @@ public final class Prefs { @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 @@ public final class Prefs { 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 a429447e18e7..c08fb0522b9b 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 class Constants { 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 95f1eb22255e..3806b4682e7a 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 @@ public class Recents extends SystemUI 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 @@ public class Recents extends SystemUI 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 @@ public class Recents extends SystemUI // 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 1e46e6f54245..b4bb392f930f 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.AppWidgetProviderChangedEven 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 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView 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 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView 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 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView 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 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView 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 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView 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 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView 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 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView // 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 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView 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 01ffd2a5afdc..7f7dbce0abfd 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 @@ public class RecentsActivityLaunchState { * 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 000000000000..6c74a4e9200d --- /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 b491f943734d..85a2edab6437 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 @@ public class RecentsImpl extends IRecentsNonSystemUserCallbacks.Stub implements 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 @@ public class RecentsImpl extends IRecentsNonSystemUserCallbacks.Stub implements // 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 @@ public class RecentsImpl extends IRecentsNonSystemUserCallbacks.Stub implements 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 @@ public class RecentsImpl extends IRecentsNonSystemUserCallbacks.Stub implements 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 000000000000..fe3bf26334b9 --- /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 0432ac99de2f..16d692921da4 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.app.AssistUtils; 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 @@ public class SystemServicesProxy { /** 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 @@ public class SystemServicesProxy { 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 @@ public class SystemServicesProxy { // 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 @@ public class SystemServicesProxy { 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 @@ public class SystemServicesProxy { 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 @@ public class SystemServicesProxy { /** 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 @@ public class SystemServicesProxy { /** 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 class SystemServicesProxy { */ 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 class SystemServicesProxy { */ 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 @@ public class SystemServicesProxy { 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 @@ public class SystemServicesProxy { 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 @@ public class SystemServicesProxy { 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 @@ public class SystemServicesProxy { /** 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 @@ public class SystemServicesProxy { * 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 @@ public class SystemServicesProxy { 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 bba453a09172..fe67fd94fff9 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.os.HandlerThread; 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 @@ public class RecentsTaskLoader { 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 6734012c4e3d..f26dcdea1dfd 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.Rect; 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 @@ public class TaskStack { * 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 @@ public class TaskStack { 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 @@ public class TaskStack { 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 b2f716d2add5..4ecb80a22f36 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.internal.annotations.GuardedBy; 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 @@ public class RecentsTransitionHelper { 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 cb7465d12918..2c8f3168f272 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.Recents; 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 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks, 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 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks, @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 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks, clearAccessibilityFocus(); } } - if (Constants.DebugFlags.App.EnableFastToggleRecents) { + RecentsDebugFlags flags = Recents.getDebugFlags(); + if (flags.isFastToggleRecentsEnabled()) { invalidate(); } } |