summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYuli Huang <yuli@google.com>2012-05-28 23:39:27 +0800
committerYuli Huang <yuli@google.com>2012-05-29 15:02:05 +0800
commit26eb4ed5239f59de7a7e212a03047f3e0afa3c74 (patch)
tree74b629181b74d895df7b3c1b296d9038497b762e /src
parentb603e674b9e0bc7372fd535f7f3ac0b9b4e3a689 (diff)
downloadandroid_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.java10
-rw-r--r--src/com/android/gallery3d/app/Gallery.java4
-rw-r--r--src/com/android/gallery3d/app/SlideshowDream.java1
-rw-r--r--src/com/android/gallery3d/app/SlideshowPage.java10
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