diff options
-rw-r--r-- | packages/SystemUI/AndroidManifest.xml | 13 | ||||
-rw-r--r-- | packages/SystemUI/res/mipmap-hdpi/ic_dreams.png | bin | 0 -> 3572 bytes | |||
-rw-r--r-- | packages/SystemUI/res/mipmap-mdpi/ic_dreams.png | bin | 0 -> 2366 bytes | |||
-rw-r--r-- | packages/SystemUI/res/mipmap-xhdpi/ic_dreams.png | bin | 0 -> 4996 bytes | |||
-rw-r--r-- | packages/SystemUI/res/values/strings.xml | 7 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/Somnambulator.java | 61 |
6 files changed, 78 insertions, 3 deletions
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 7176f32..13800a6 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -193,5 +193,18 @@ <category android:name="android.intent.category.DREAM" /> </intent-filter> </service> + + <activity android:name=".Somnambulator" + android:label="@string/start_dreams" + android:icon="@mipmap/ic_dreams" + android:theme="@android:style/Theme.Wallpaper.NoTitleBar" + android:exported="true" + android:excludeFromRecents="true" + > + <intent-filter> + <action android:name="android.intent.action.CREATE_SHORTCUT" /> + <category android:name="android.intent.category.DEFAULT" /> + </intent-filter> + </activity> </application> </manifest> diff --git a/packages/SystemUI/res/mipmap-hdpi/ic_dreams.png b/packages/SystemUI/res/mipmap-hdpi/ic_dreams.png Binary files differnew file mode 100644 index 0000000..56cbac1 --- /dev/null +++ b/packages/SystemUI/res/mipmap-hdpi/ic_dreams.png diff --git a/packages/SystemUI/res/mipmap-mdpi/ic_dreams.png b/packages/SystemUI/res/mipmap-mdpi/ic_dreams.png Binary files differnew file mode 100644 index 0000000..ea3d991 --- /dev/null +++ b/packages/SystemUI/res/mipmap-mdpi/ic_dreams.png diff --git a/packages/SystemUI/res/mipmap-xhdpi/ic_dreams.png b/packages/SystemUI/res/mipmap-xhdpi/ic_dreams.png Binary files differnew file mode 100644 index 0000000..ddc7f66 --- /dev/null +++ b/packages/SystemUI/res/mipmap-xhdpi/ic_dreams.png diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 609d63b..43070c6 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -372,9 +372,6 @@ <!-- Content description of the clear button in the notification panel for accessibility (not shown on the screen). [CHAR LIMIT=NONE] --> <string name="accessibility_clear_all">Clear all notifications.</string> - <!-- Description of the desk dock action that invokes the Android Dreams screen saver feature --> - <string name="dreams_dock_launcher">Activate screen saver</string> - <!-- Title shown in notification popup for inspecting the responsible application --> <string name="status_bar_notification_inspect_item_title">App info</string> @@ -400,4 +397,8 @@ <!-- Name of the Jelly Bean platlogo screensaver --> <string name="jelly_bean_dream_name">BeanFlinger</string> + + <!-- Name of the launcher shortcut icon that allows dreams to be started immediately [CHAR LIMIT=20] --> + <string name="start_dreams">Start dreams</string> + </resources> diff --git a/packages/SystemUI/src/com/android/systemui/Somnambulator.java b/packages/SystemUI/src/com/android/systemui/Somnambulator.java new file mode 100644 index 0000000..89d4ef7 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/Somnambulator.java @@ -0,0 +1,61 @@ +/*); + * Copyright (C) 2012 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; + +import android.app.Activity; +import android.content.Intent; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.service.dreams.IDreamManager; +import android.util.Slog; + +public class Somnambulator extends Activity { + + public Somnambulator() { + } + + @Override + public void onStart() { + super.onStart(); + final Intent launchIntent = getIntent(); + final String action = launchIntent.getAction(); + if (Intent.ACTION_CREATE_SHORTCUT.equals(action)) { + Intent shortcutIntent = new Intent(this, Somnambulator.class); + shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS + | Intent.FLAG_ACTIVITY_NEW_TASK); + Intent resultIntent = new Intent(); + resultIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, + Intent.ShortcutIconResource.fromContext(this, R.mipmap.ic_dreams)); + resultIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); + resultIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.start_dreams)); + setResult(RESULT_OK, resultIntent); + } else { + IDreamManager somnambulist = IDreamManager.Stub.asInterface( + ServiceManager.checkService("dreams")); + if (somnambulist != null) { + try { + Slog.v("Somnambulator", "Dreaming by user request."); + somnambulist.dream(); + } catch (RemoteException e) { + // fine, stay asleep then + } + } + } + finish(); + } + +} |