diff options
author | Daniel Sandler <dsandler@android.com> | 2012-09-28 10:49:05 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-09-28 10:49:19 -0700 |
commit | f80ad90f0b269e31d9450b9fa33f4dc3e4a507c7 (patch) | |
tree | 0cfa388f0197490825372cd894c221ff0996c32d | |
parent | 6e061919f313f787c91047bebdfb95fdb756d6bb (diff) | |
parent | 3a12029a3bb6a6d59b3ab65fa923ce96f9f15c26 (diff) | |
download | frameworks_base-f80ad90f0b269e31d9450b9fa33f4dc3e4a507c7.zip frameworks_base-f80ad90f0b269e31d9450b9fa33f4dc3e4a507c7.tar.gz frameworks_base-f80ad90f0b269e31d9450b9fa33f4dc3e4a507c7.tar.bz2 |
Merge "Add the SystemUI's dream-starter as a DESK_DOCK app." into jb-mr1-dev
-rw-r--r-- | packages/SystemUI/AndroidManifest.xml | 5 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/Somnambulator.java | 42 |
2 files changed, 38 insertions, 9 deletions
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index a7294ec..3ef44d9 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -214,6 +214,11 @@ <action android:name="android.intent.action.CREATE_SHORTCUT" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.DEFAULT" /> + <category android:name="android.intent.category.DESK_DOCK" /> + </intent-filter> </activity> </application> </manifest> diff --git a/packages/SystemUI/src/com/android/systemui/Somnambulator.java b/packages/SystemUI/src/com/android/systemui/Somnambulator.java index bd87238..8e3ce3b 100644 --- a/packages/SystemUI/src/com/android/systemui/Somnambulator.java +++ b/packages/SystemUI/src/com/android/systemui/Somnambulator.java @@ -20,15 +20,33 @@ import android.app.Activity; import android.content.Intent; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.UserHandle; +import android.provider.Settings; import android.service.dreams.Dream; import android.service.dreams.IDreamManager; import android.util.Slog; public class Somnambulator extends Activity { + public static final String TAG = "Somnambulator"; + + public static final int DEFAULT_SCREENSAVER_ENABLED = 1; + public static final int DEFAULT_SCREENSAVER_ACTIVATED_ON_DOCK = 1; public Somnambulator() { } - + + private boolean isScreenSaverEnabled() { + return Settings.Secure.getIntForUser(getContentResolver(), + Settings.Secure.SCREENSAVER_ENABLED, DEFAULT_SCREENSAVER_ENABLED, + UserHandle.USER_CURRENT) != 0; + } + + private boolean isScreenSaverActivatedOnDock() { + return Settings.Secure.getIntForUser(getContentResolver(), + Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, + DEFAULT_SCREENSAVER_ACTIVATED_ON_DOCK, UserHandle.USER_CURRENT) != 0; + } + @Override public void onStart() { super.onStart(); @@ -45,14 +63,20 @@ public class Somnambulator extends Activity { resultIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.start_dreams)); setResult(RESULT_OK, resultIntent); } else { - IDreamManager somnambulist = IDreamManager.Stub.asInterface( - ServiceManager.checkService(Dream.DREAM_SERVICE)); - if (somnambulist != null) { - try { - Slog.v("Somnambulator", "Dreaming by user request."); - somnambulist.dream(); - } catch (RemoteException e) { - // fine, stay asleep then + boolean docked = launchIntent.hasCategory(Intent.CATEGORY_DESK_DOCK); + + if (docked && !(isScreenSaverEnabled() && isScreenSaverActivatedOnDock())) { + Slog.i(TAG, "Dreams currently disabled for docks."); + } else { + IDreamManager somnambulist = IDreamManager.Stub.asInterface( + ServiceManager.checkService(Dream.DREAM_SERVICE)); + if (somnambulist != null) { + try { + Slog.v(TAG, "Dreaming on " + (docked ? "dock insertion" : "user request")); + somnambulist.dream(); + } catch (RemoteException e) { + // fine, stay asleep then + } } } } |