From a4b25ba430727beb07b6f75bb5edd8d57b8676e4 Mon Sep 17 00:00:00 2001 From: Bobby Georgescu Date: Wed, 8 Aug 2012 00:09:50 -0700 Subject: Hold WakeLock during MTP import Bug: 6680729 Bug: 6827858 Change-Id: Ida82db3288a429dacc5830b82ec6bbd954f75cf1 --- src/com/android/gallery3d/app/ManageCachePage.java | 4 ++++ src/com/android/gallery3d/app/PhotoPage.java | 3 +++ src/com/android/gallery3d/ui/ImportCompleteListener.java | 13 +++++++++++++ src/com/android/gallery3d/ui/MenuExecutor.java | 16 +++++++++++++++- 4 files changed, 35 insertions(+), 1 deletion(-) (limited to 'src/com/android') diff --git a/src/com/android/gallery3d/app/ManageCachePage.java b/src/com/android/gallery3d/app/ManageCachePage.java index 1f107285e..b02d129b0 100644 --- a/src/com/android/gallery3d/app/ManageCachePage.java +++ b/src/com/android/gallery3d/app/ManageCachePage.java @@ -407,4 +407,8 @@ public class ManageCachePage extends ActivityState implements @Override public void onConfirmDialogShown() { } + + @Override + public void onProgressStart() { + } } diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java index 36a3f876f..df648fdfd 100644 --- a/src/com/android/gallery3d/app/PhotoPage.java +++ b/src/com/android/gallery3d/app/PhotoPage.java @@ -576,6 +576,9 @@ public class PhotoPage extends ActivityState implements public void onConfirmDialogDismissed(boolean confirmed) { refreshHidingMessage(); } + + @Override + public void onProgressStart() {} }; @Override diff --git a/src/com/android/gallery3d/ui/ImportCompleteListener.java b/src/com/android/gallery3d/ui/ImportCompleteListener.java index 63d616751..5b6e0a17f 100644 --- a/src/com/android/gallery3d/ui/ImportCompleteListener.java +++ b/src/com/android/gallery3d/ui/ImportCompleteListener.java @@ -16,7 +16,10 @@ package com.android.gallery3d.ui; +import android.app.Activity; +import android.content.Context; import android.os.Bundle; +import android.os.PowerManager; import android.widget.Toast; import com.android.gallery3d.R; @@ -26,9 +29,13 @@ import com.android.gallery3d.util.MediaSetUtils; public class ImportCompleteListener implements MenuExecutor.ProgressListener { private GalleryActivity mActivity; + private PowerManager.WakeLock mWakeLock; public ImportCompleteListener(GalleryActivity galleryActivity) { mActivity = galleryActivity; + PowerManager pm = + (PowerManager) ((Activity) mActivity).getSystemService(Context.POWER_SERVICE); + mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "Gallery Album Import"); } @Override @@ -41,12 +48,18 @@ public class ImportCompleteListener implements MenuExecutor.ProgressListener { message = R.string.import_fail; } Toast.makeText(mActivity.getAndroidContext(), message, Toast.LENGTH_LONG).show(); + mWakeLock.release(); } @Override public void onProgressUpdate(int index) { } + @Override + public void onProgressStart() { + mWakeLock.acquire(); + } + private void goToImportedAlbum() { String pathOfImportedAlbum = "/local/all/" + MediaSetUtils.IMPORTED_BUCKET_ID; Bundle data = new Bundle(); diff --git a/src/com/android/gallery3d/ui/MenuExecutor.java b/src/com/android/gallery3d/ui/MenuExecutor.java index 2ff0327da..9a2377d8e 100644 --- a/src/com/android/gallery3d/ui/MenuExecutor.java +++ b/src/com/android/gallery3d/ui/MenuExecutor.java @@ -51,7 +51,8 @@ public class MenuExecutor { private static final int MSG_TASK_COMPLETE = 1; private static final int MSG_TASK_UPDATE = 2; - private static final int MSG_DO_SHARE = 3; + private static final int MSG_TASK_START = 3; + private static final int MSG_DO_SHARE = 4; public static final int EXECUTION_RESULT_SUCCESS = 1; public static final int EXECUTION_RESULT_FAIL = 2; @@ -83,6 +84,7 @@ public class MenuExecutor { public interface ProgressListener { public void onConfirmDialogShown(); public void onConfirmDialogDismissed(boolean confirmed); + public void onProgressStart(); public void onProgressUpdate(int index); public void onProgressComplete(int result); } @@ -95,6 +97,13 @@ public class MenuExecutor { @Override public void handleMessage(Message message) { switch (message.what) { + case MSG_TASK_START: { + if (message.obj != null) { + ProgressListener listener = (ProgressListener) message.obj; + listener.onProgressStart(); + } + break; + } case MSG_TASK_COMPLETE: { stopTaskAndDismissDialog(); if (message.obj != null) { @@ -140,6 +149,10 @@ public class MenuExecutor { mHandler.obtainMessage(MSG_TASK_UPDATE, index, 0, listener)); } + private void onProgressStart(ProgressListener listener) { + mHandler.sendMessage(mHandler.obtainMessage(MSG_TASK_START, listener)); + } + private void onProgressComplete(int result, ProgressListener listener) { mHandler.sendMessage(mHandler.obtainMessage(MSG_TASK_COMPLETE, result, 0, listener)); } @@ -400,6 +413,7 @@ public class MenuExecutor { DataManager manager = mActivity.getDataManager(); int result = EXECUTION_RESULT_SUCCESS; try { + onProgressStart(mListener); for (Path id : mItems) { if (jc.isCancelled()) { result = EXECUTION_RESULT_CANCEL; -- cgit v1.2.3