diff options
author | Yuli Huang <yuli@google.com> | 2012-05-28 23:39:27 +0800 |
---|---|---|
committer | Yuli Huang <yuli@google.com> | 2012-05-29 15:02:05 +0800 |
commit | 26eb4ed5239f59de7a7e212a03047f3e0afa3c74 (patch) | |
tree | 74b629181b74d895df7b3c1b296d9038497b762e /src | |
parent | b603e674b9e0bc7372fd535f7f3ac0b9b4e3a689 (diff) | |
download | android_packages_apps_Snap-26eb4ed5239f59de7a7e212a03047f3e0afa3c74.tar.gz android_packages_apps_Snap-26eb4ed5239f59de7a7e212a03047f3e0afa3c74.tar.bz2 android_packages_apps_Snap-26eb4ed5239f59de7a7e212a03047f3e0afa3c74.zip |
Keep screen on for user-initiated slideshow.
Change-Id: I3085398c663e2c38a31cfde5a07b23446bb7bd7f
b:6450305
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/gallery3d/app/ActivityState.java | 10 | ||||
-rw-r--r-- | src/com/android/gallery3d/app/Gallery.java | 4 | ||||
-rw-r--r-- | src/com/android/gallery3d/app/SlideshowDream.java | 1 | ||||
-rw-r--r-- | src/com/android/gallery3d/app/SlideshowPage.java | 10 |
4 files changed, 20 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/app/ActivityState.java b/src/com/android/gallery3d/app/ActivityState.java index 66b4a2279..867cda3e5 100644 --- a/src/com/android/gallery3d/app/ActivityState.java +++ b/src/com/android/gallery3d/app/ActivityState.java @@ -36,7 +36,8 @@ import com.android.gallery3d.ui.GLView; abstract public class ActivityState { protected static final int FLAG_HIDE_ACTION_BAR = 1; protected static final int FLAG_HIDE_STATUS_BAR = 2; - protected static final int FLAG_SCREEN_ON = 4; + protected static final int FLAG_SCREEN_ON_WHEN_PLUGGED = 4; + protected static final int FLAG_SCREEN_ON_ALWAYS = 8; private static final int SCREEN_ON_FLAGS = ( WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON @@ -117,7 +118,8 @@ abstract public class ActivityState { void setScreenOnFlags() { final Window win = ((Activity) mActivity).getWindow(); final WindowManager.LayoutParams params = win.getAttributes(); - if (mPlugged && 0 != (mFlags & FLAG_SCREEN_ON)) { + if ((0 != (mFlags & FLAG_SCREEN_ON_ALWAYS)) || + (mPlugged && 0 != (mFlags & FLAG_SCREEN_ON_WHEN_PLUGGED))) { params.flags |= SCREEN_ON_FLAGS; } else { params.flags &= ~SCREEN_ON_FLAGS; @@ -126,7 +128,7 @@ abstract public class ActivityState { } protected void onPause() { - if (0 != (mFlags & FLAG_SCREEN_ON)) { + if (0 != (mFlags & FLAG_SCREEN_ON_WHEN_PLUGGED)) { ((Activity) mActivity).unregisterReceiver(mPowerIntentReceiver); } } @@ -160,7 +162,7 @@ abstract public class ActivityState { onStateResult(entry.requestCode, entry.resultCode, entry.resultData); } - if (0 != (mFlags & FLAG_SCREEN_ON)) { + if (0 != (mFlags & FLAG_SCREEN_ON_WHEN_PLUGGED)) { // we need to know whether the device is plugged in to do this correctly final IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_BATTERY_CHANGED); diff --git a/src/com/android/gallery3d/app/Gallery.java b/src/com/android/gallery3d/app/Gallery.java index bdd4a0bc7..468d202d4 100644 --- a/src/com/android/gallery3d/app/Gallery.java +++ b/src/com/android/gallery3d/app/Gallery.java @@ -42,6 +42,7 @@ import com.android.gallery3d.util.GalleryUtils; public final class Gallery extends AbstractGalleryActivity implements OnCancelListener { public static final String EXTRA_SLIDESHOW = "slideshow"; + public static final String EXTRA_DREAM = "dream"; public static final String EXTRA_CROP = "crop"; public static final String ACTION_REVIEW = "com.android.camera.action.REVIEW"; @@ -145,6 +146,9 @@ public final class Gallery extends AbstractGalleryActivity implements OnCancelLi data.putString(SlideshowPage.KEY_SET_PATH, path.toString()); data.putBoolean(SlideshowPage.KEY_RANDOM_ORDER, true); data.putBoolean(SlideshowPage.KEY_REPEAT, true); + if (intent.getBooleanExtra(EXTRA_DREAM, false)) { + data.putBoolean(SlideshowPage.KEY_DREAM, true); + } getStateManager().startState(SlideshowPage.class, data); } else { Bundle data = new Bundle(); diff --git a/src/com/android/gallery3d/app/SlideshowDream.java b/src/com/android/gallery3d/app/SlideshowDream.java index c249467eb..9963da688 100644 --- a/src/com/android/gallery3d/app/SlideshowDream.java +++ b/src/com/android/gallery3d/app/SlideshowDream.java @@ -14,6 +14,7 @@ public class SlideshowDream extends BasicDream { // Uri.fromFile(Environment.getExternalStoragePublicDirectory( // Environment.DIRECTORY_PICTURES))) .putExtra(Gallery.EXTRA_SLIDESHOW, true) + .putExtra(Gallery.EXTRA_DREAM, true) .setFlags(getIntent().getFlags()); startActivity(i); finish(); diff --git a/src/com/android/gallery3d/app/SlideshowPage.java b/src/com/android/gallery3d/app/SlideshowPage.java index 5aa3985b2..a6ae52725 100644 --- a/src/com/android/gallery3d/app/SlideshowPage.java +++ b/src/com/android/gallery3d/app/SlideshowPage.java @@ -48,6 +48,7 @@ public class SlideshowPage extends ActivityState { public static final String KEY_PHOTO_INDEX = "photo-index"; public static final String KEY_RANDOM_ORDER = "random-order"; public static final String KEY_REPEAT = "repeat"; + public static final String KEY_DREAM = "dream"; private static final long SLIDESHOW_DELAY = 3000; // 3 seconds @@ -104,7 +105,14 @@ public class SlideshowPage extends ActivityState { @Override public void onCreate(Bundle data, Bundle restoreState) { - mFlags |= (FLAG_HIDE_ACTION_BAR | FLAG_HIDE_STATUS_BAR | FLAG_SCREEN_ON); + mFlags |= (FLAG_HIDE_ACTION_BAR | FLAG_HIDE_STATUS_BAR); + if (data.getBoolean(KEY_DREAM)) { + // Dream screensaver only keeps screen on for plugged devices. + mFlags |= FLAG_SCREEN_ON_WHEN_PLUGGED; + } else { + // User-initiated slideshow would always keep screen on. + mFlags |= FLAG_SCREEN_ON_ALWAYS; + } mHandler = new SynchronizedHandler(mActivity.getGLRoot()) { @Override |