diff options
author | Daniel Sandler <dsandler@android.com> | 2011-11-02 23:30:58 -0400 |
---|---|---|
committer | Daniel Sandler <dsandler@android.com> | 2011-11-02 23:33:27 -0400 |
commit | e5f2cfeb229881601e81f9afca62bccbdc8e6485 (patch) | |
tree | 9333d5c42d88289420522a409e6af9e47b65f124 /policy | |
parent | b41d9f8a84a325241440b6e950dea6d240134823 (diff) | |
download | frameworks_base-e5f2cfeb229881601e81f9afca62bccbdc8e6485.zip frameworks_base-e5f2cfeb229881601e81f9afca62bccbdc8e6485.tar.gz frameworks_base-e5f2cfeb229881601e81f9afca62bccbdc8e6485.tar.bz2 |
Bring back Android Dreams.
Also fix bugs related to loading changes in dreams settings.
Bug: 5121105
Change-Id: I1527c3100d5219a678dd94ed5393bc478b1a1622
Diffstat (limited to 'policy')
-rwxr-xr-x | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 98 |
1 files changed, 43 insertions, 55 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 0a77654..7d97246 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -389,8 +389,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { boolean mLockScreenTimerActive; // visual screen saver support - int mScreenSaverTimeout; - boolean mScreenSaverEnabled = false; + int mScreenSaverTimeout = 0; + boolean mScreenSaverEnabled = true; // Behavior of ENDCALL Button. (See Settings.System.END_BUTTON_BEHAVIOR.) int mEndcallBehavior; @@ -454,7 +454,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { Settings.Secure.DEFAULT_INPUT_METHOD), false, this); resolver.registerContentObserver(Settings.System.getUriFor( "fancy_rotation_anim"), false, this); - resolver.registerContentObserver(Settings.System.getUriFor( + resolver.registerContentObserver(Settings.Secure.getUriFor( Settings.Secure.DREAM_TIMEOUT), false, this); updateSettings(); } @@ -909,9 +909,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { updateRotation = true; } - mScreenSaverTimeout = Settings.System.getInt(resolver, + mScreenSaverTimeout = Settings.Secure.getInt(resolver, Settings.Secure.DREAM_TIMEOUT, 0); - mScreenSaverEnabled = true; updateScreenSaverTimeoutLocked(); } if (updateRotation) { @@ -3417,70 +3416,59 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } - // Turn this off for now, screen savers not currently enabled. - if (false) { - synchronized (mLock) { - updateScreenSaverTimeoutLocked(); - } + synchronized (mLock) { + // Only posts messages; holds no additional locks. + updateScreenSaverTimeoutLocked(); } } - Runnable mScreenSaverActivator = null; - /*new Runnable() { + Runnable mScreenSaverActivator = new Runnable() { public void run() { - synchronized (this) { - if (!(mScreenSaverEnabled && mScreenOn)) { - Log.w(TAG, "mScreenSaverActivator ran, but the screensaver should not be showing. Who's driving this thing?"); - return; - } + if (!(mScreenSaverEnabled && mScreenOnEarly)) { + Log.w(TAG, "mScreenSaverActivator ran, but the screensaver should not be showing. Who's driving this thing?"); + return; + } - if (localLOGV) Log.v(TAG, "mScreenSaverActivator entering dreamland"); - try { - String component = Settings.System.getString( - mContext.getContentResolver(), Settings.Secure.DREAM_COMPONENT); - if (component != null) { - ComponentName cn = ComponentName.unflattenFromString(component); - Intent intent = new Intent(Intent.ACTION_MAIN) - .setComponent(cn) - .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK - | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS - | Intent.FLAG_ACTIVITY_NO_USER_ACTION - | Intent.FLAG_ACTIVITY_SINGLE_TOP); - mContext.startActivity(intent); - } else { - Log.e(TAG, "Couldn't start screen saver: none selected"); - } - } catch (android.content.ActivityNotFoundException exc) { - // no screensaver? give up - Log.e(TAG, "Couldn't start screen saver: none installed"); + if (localLOGV) Log.v(TAG, "mScreenSaverActivator entering dreamland"); + try { + String component = Settings.Secure.getString( + mContext.getContentResolver(), Settings.Secure.DREAM_COMPONENT); + if (component != null) { + ComponentName cn = ComponentName.unflattenFromString(component); + Intent intent = new Intent(Intent.ACTION_MAIN) + .setComponent(cn) + .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK + | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS + | Intent.FLAG_ACTIVITY_NO_USER_ACTION + ); + mContext.startActivity(intent); + } else { + Log.e(TAG, "Couldn't start screen saver: none selected"); } + } catch (android.content.ActivityNotFoundException exc) { + // no screensaver? give up + Log.e(TAG, "Couldn't start screen saver: none installed"); } } }; - */ // Must call while holding mLock private void updateScreenSaverTimeoutLocked() { if (mScreenSaverActivator == null) return; - // GAH... acquiring a lock within a lock? Please let's fix this. - // (Also note this is called from userActivity, with the power manager - // lock held. Not good.) - synchronized (mScreenSaverActivator) { - mHandler.removeCallbacks(mScreenSaverActivator); - if (mScreenSaverEnabled && mScreenOnEarly && mScreenSaverTimeout > 0) { - if (localLOGV) - Log.v(TAG, "scheduling screensaver for " + mScreenSaverTimeout + "ms from now"); - mHandler.postDelayed(mScreenSaverActivator, mScreenSaverTimeout); - } else { - if (localLOGV) { - if (mScreenSaverTimeout == 0) - Log.v(TAG, "screen saver disabled by user"); - else if (!mScreenOnEarly) - Log.v(TAG, "screen saver disabled while screen off"); - else - Log.v(TAG, "screen saver disabled by wakelock"); - } + mHandler.removeCallbacks(mScreenSaverActivator); + if (mScreenSaverEnabled && mScreenOnEarly && mScreenSaverTimeout > 0) { + if (localLOGV) + Log.v(TAG, "scheduling screensaver for " + mScreenSaverTimeout + "ms from now"); + mHandler.postDelayed(mScreenSaverActivator, mScreenSaverTimeout); + } else { + if (localLOGV) { + if (mScreenSaverTimeout == 0) + Log.v(TAG, "screen saver disabled by user"); + else if (!mScreenOnEarly) + Log.v(TAG, "screen saver disabled while screen off"); + else + Log.v(TAG, "screen saver disabled by wakelock"); } } } |