From ee969aa850437c7c9b4e6e016b6ff43267c73d91 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Thu, 26 Aug 2010 20:17:43 -0700 Subject: [PATCH] Fix 2797185: Show 3D Recents on xlarge device This fixes a bug where some xlarge devices weren't showing 3D recent apps. The cause was that the config wasn't guaranteed to be loaded by the time we reach init() in PhoneWindowManager. The fix looks at the property on-demand, which can't happen until after the user sees the home screen, which guarantees the configuration is loaded. Change-Id: Ic41196f7a15218033b831e6e9cf9d536e0712844 --- .../policy/impl/PhoneWindowManager.java | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 4d4c799bbd3ca..6e5db2bdf3065 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -270,7 +270,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { Intent mHomeIntent; Intent mCarDockIntent; Intent mDeskDockIntent; - Intent mRecentAppsIntent; boolean mSearchKeyPressed; boolean mConsumeSearchKeyUp; @@ -291,6 +290,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { // Nothing to see here, move along... int mFancyRotationAnimation; + + // Enable 3D recents based on config settings. + private Boolean mUse3dRecents; ShortcutManager mShortcutManager; PowerManager.WakeLock mBroadcastWakeLock; @@ -493,9 +495,20 @@ public class PhoneWindowManager implements WindowManagerPolicy { * Create (if necessary) and launch the recent apps dialog */ void showRecentAppsDialog() { - if (mRecentAppsIntent != null) { + // We can't initialize this in init() since the configuration hasn't been loaded yet. + if (mUse3dRecents == null) { + mUse3dRecents = mContext.getResources().getBoolean(R.bool.config_enableRecentApps3D); + } + + // Use 3d Recents dialog + if (mUse3dRecents) { try { - mContext.startActivity(mRecentAppsIntent); + Intent intent = new Intent(); + intent.setClassName("com.android.systemui", + "com.android.systemui.statusbar.RecentApplicationsActivity"); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK + | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); + mContext.startActivity(intent); return; } catch (ActivityNotFoundException e) { Log.e(TAG, "Failed to launch RecentAppsIntent", e); @@ -535,17 +548,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { mDeskDockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); - boolean use3dRecents = mContext.getResources().getBoolean(R.bool.config_enableRecentApps3D); - if (use3dRecents) { - mRecentAppsIntent = new Intent(); - mRecentAppsIntent.setClassName("com.android.systemui", - "com.android.systemui.statusbar.RecentApplicationsActivity"); - mRecentAppsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK - | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); - } else { - mRecentAppsIntent = null; - } - PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); mBroadcastWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "PhoneWindowManager.mBroadcastWakeLock");