Merge "Add the SystemUI's dream-starter as a DESK_DOCK app." into jb-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f80ad90f0b
@@ -214,6 +214,11 @@
|
|||||||
<action android:name="android.intent.action.CREATE_SHORTCUT" />
|
<action android:name="android.intent.action.CREATE_SHORTCUT" />
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
</intent-filter>
|
</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>
|
</activity>
|
||||||
</application>
|
</application>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
@@ -20,15 +20,33 @@ import android.app.Activity;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
|
import android.os.UserHandle;
|
||||||
|
import android.provider.Settings;
|
||||||
import android.service.dreams.Dream;
|
import android.service.dreams.Dream;
|
||||||
import android.service.dreams.IDreamManager;
|
import android.service.dreams.IDreamManager;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
|
|
||||||
public class Somnambulator extends Activity {
|
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() {
|
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
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
@@ -45,14 +63,20 @@ public class Somnambulator extends Activity {
|
|||||||
resultIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.start_dreams));
|
resultIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.start_dreams));
|
||||||
setResult(RESULT_OK, resultIntent);
|
setResult(RESULT_OK, resultIntent);
|
||||||
} else {
|
} else {
|
||||||
IDreamManager somnambulist = IDreamManager.Stub.asInterface(
|
boolean docked = launchIntent.hasCategory(Intent.CATEGORY_DESK_DOCK);
|
||||||
ServiceManager.checkService(Dream.DREAM_SERVICE));
|
|
||||||
if (somnambulist != null) {
|
if (docked && !(isScreenSaverEnabled() && isScreenSaverActivatedOnDock())) {
|
||||||
try {
|
Slog.i(TAG, "Dreams currently disabled for docks.");
|
||||||
Slog.v("Somnambulator", "Dreaming by user request.");
|
} else {
|
||||||
somnambulist.dream();
|
IDreamManager somnambulist = IDreamManager.Stub.asInterface(
|
||||||
} catch (RemoteException e) {
|
ServiceManager.checkService(Dream.DREAM_SERVICE));
|
||||||
// fine, stay asleep then
|
if (somnambulist != null) {
|
||||||
|
try {
|
||||||
|
Slog.v(TAG, "Dreaming on " + (docked ? "dock insertion" : "user request"));
|
||||||
|
somnambulist.dream();
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
// fine, stay asleep then
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user