summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAngus Kong <shkong@google.com>2011-08-22 22:51:46 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-08-22 22:51:46 -0700
commitcc3238fae72d6579288e0cdc03c7d09539ebb734 (patch)
tree620a55d9feddf19992f3a2f201e0a313d1d9edff
parent84afaa29e27c0df338f79154c4c90090cbb7c414 (diff)
parent5fde6d5259fccaed4bc517697a4930d3b69ae860 (diff)
downloadLegacyCamera-cc3238fae72d6579288e0cdc03c7d09539ebb734.zip
LegacyCamera-cc3238fae72d6579288e0cdc03c7d09539ebb734.tar.gz
LegacyCamera-cc3238fae72d6579288e0cdc03c7d09539ebb734.tar.bz2
Merge "Show spinner dialog when generating mosaic."
-rw-r--r--res/values/strings.xml6
-rw-r--r--src/com/android/camera/panorama/PanoramaActivity.java38
2 files changed, 34 insertions, 10 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 05a479f..77c5513 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -274,6 +274,12 @@
<!-- The text shown when the panorama panning speed is to fast [CHAR LIMIT=12] -->
<string name="pano_too_fast_prompt">Too Fast</string>
+ <!-- The text shown in the progress dialog when panorama preview is generating in the background [CHAR LIMIT=30] -->
+ <string name="pano_dialog_prepare_preview">Preparing preview...</string>
+
+ <!-- The text shown in the progress dialog when generating the final panorama result in the background [CHAR LIMIT=30] -->
+ <string name="pano_dialog_generate_panorama">Generating panorama...</string>
+
<!-- Toast telling users tapping on the viewfinder will trigger autofocus [CHAR LIMIT=24] -->
<string name="tap_to_focus">Tap to focus</string>
</resources>
diff --git a/src/com/android/camera/panorama/PanoramaActivity.java b/src/com/android/camera/panorama/PanoramaActivity.java
index facf7d9..f58b34d 100644
--- a/src/com/android/camera/panorama/PanoramaActivity.java
+++ b/src/com/android/camera/panorama/PanoramaActivity.java
@@ -26,6 +26,7 @@ import com.android.camera.Storage;
import com.android.camera.Util;
import android.app.Activity;
+import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -91,6 +92,10 @@ public class PanoramaActivity extends Activity implements
private MosaicRendererSurfaceView mMosaicView;
private TextView mTooFastPrompt;
+ private ProgressDialog mProgressDialog;
+ private String mPreparePreviewString;
+ private String mGeneratePanoramaString;
+
private int mPreviewWidth;
private int mPreviewHeight;
private Camera mCameraDevice;
@@ -126,16 +131,21 @@ public class PanoramaActivity extends Activity implements
mTransformMatrix = new float[16];
+ mPreparePreviewString =
+ getResources().getString(R.string.pano_dialog_prepare_preview);
+ mGeneratePanoramaString =
+ getResources().getString(R.string.pano_dialog_generate_panorama);
+
mMainHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_FINAL_MOSAIC_READY:
- mThreadRunning = false;
+ onBackgroundThreadFinished();
showFinalMosaic((Bitmap) msg.obj);
break;
case MSG_RESET_TO_PREVIEW:
- mThreadRunning = false;
+ onBackgroundThreadFinished();
resetToPreview();
break;
}
@@ -349,8 +359,7 @@ public class PanoramaActivity extends Activity implements
// TODO: show some dialog for long computation.
if (!mThreadRunning) {
- mThreadRunning = true;
- Thread t = new Thread() {
+ runBackgroundThread(mPreparePreviewString, new Thread() {
@Override
public void run() {
byte[] jpegData = generateFinalMosaic(false);
@@ -361,8 +370,7 @@ public class PanoramaActivity extends Activity implements
mMainHandler.sendMessage(mMainHandler.obtainMessage(
MSG_FINAL_MOSAIC_READY, bitmap));
}
- };
- t.start();
+ });
}
}
@@ -429,16 +437,26 @@ public class PanoramaActivity extends Activity implements
@OnClickAttr
public void onOkButtonClicked(View v) {
if (mPausing || mThreadRunning || mSurfaceTexture == null) return;
- mThreadRunning = true;
- Thread t = new Thread() {
+ runBackgroundThread(mGeneratePanoramaString, new Thread() {
@Override
public void run() {
byte[] jpegData = generateFinalMosaic(true);
savePanorama(jpegData);
mMainHandler.sendMessage(mMainHandler.obtainMessage(MSG_RESET_TO_PREVIEW));
}
- };
- t.start();
+ });
+ }
+
+ private void runBackgroundThread(String str, Thread thread) {
+ mThreadRunning = true;
+ mProgressDialog = ProgressDialog.show(this, "", str);
+ thread.start();
+ }
+
+ private void onBackgroundThreadFinished() {
+ mThreadRunning = false;
+ mProgressDialog.dismiss();
+ mProgressDialog = null;
}
@OnClickAttr