summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/app/AbstractGalleryActivity.java36
-rw-r--r--src/com/android/gallery3d/app/MovieActivity.java11
-rwxr-xr-xsrc/com/android/gallery3d/app/SinglePhotoDataAdapter.java12
-rwxr-xr-xsrc/org/codeaurora/gallery3d/video/CodeauroraVideoView.java41
4 files changed, 55 insertions, 45 deletions
diff --git a/src/com/android/gallery3d/app/AbstractGalleryActivity.java b/src/com/android/gallery3d/app/AbstractGalleryActivity.java
index ae30cb0aa..84a9b5753 100644
--- a/src/com/android/gallery3d/app/AbstractGalleryActivity.java
+++ b/src/com/android/gallery3d/app/AbstractGalleryActivity.java
@@ -37,6 +37,7 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;
+import android.os.Handler;
import com.android.gallery3d.R;
import com.android.gallery3d.common.ApiHelper;
@@ -60,6 +61,7 @@ public class AbstractGalleryActivity extends Activity implements GalleryContext
private TransitionStore mTransitionStore = new TransitionStore();
private boolean mDisableToggleStatusBar;
private PanoramaViewHelper mPanoramaViewHelper;
+ private static final int ONRESUME_DELAY = 50;
private AlertDialog mAlertDialog = null;
private BroadcastReceiver mMountReceiver = new BroadcastReceiver() {
@@ -212,15 +214,31 @@ public class AbstractGalleryActivity extends Activity implements GalleryContext
@Override
protected void onResume() {
super.onResume();
- mGLRootView.lockRenderThread();
- try {
- getStateManager().resume();
- getDataManager().resume();
- } finally {
- mGLRootView.unlockRenderThread();
- }
- mGLRootView.onResume();
- mOrientationManager.resume();
+ delayedOnResume(ONRESUME_DELAY);
+ }
+
+ private void delayedOnResume(final int delay){
+ final Handler handler = new Handler();
+ Runnable delayTask = new Runnable() {
+ @Override
+ public void run() {
+ handler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ mGLRootView.lockRenderThread();
+ try {
+ getStateManager().resume();
+ getDataManager().resume();
+ } finally {
+ mGLRootView.unlockRenderThread();
+ }
+ mGLRootView.onResume();
+ mOrientationManager.resume();
+ }}, delay);
+ }
+ };
+ Thread delayThread = new Thread(delayTask);
+ delayThread.start();
}
@Override
diff --git a/src/com/android/gallery3d/app/MovieActivity.java b/src/com/android/gallery3d/app/MovieActivity.java
index c6f670a0e..5c857d412 100644
--- a/src/com/android/gallery3d/app/MovieActivity.java
+++ b/src/com/android/gallery3d/app/MovieActivity.java
@@ -197,7 +197,7 @@ public class MovieActivity extends Activity {
@Override
public void onCompletion() {
if (mFinishOnCompletion) {
- finish();
+ finishActivity();
mControlResumed = false;
Bookmarker mBookmarker = new Bookmarker(MovieActivity.this);
mBookmarker.setBookmark(mMovieItem.getUri(), 0, 1);
@@ -801,4 +801,13 @@ public class MovieActivity extends Activity {
actionBar.setTitle(title);
}
}
+ @Override
+ public void onBackPressed() {
+ finishActivity();
+ }
+ private void finishActivity(){
+ MovieActivity.this.finish();
+ overridePendingTransition(0,0);
+ return;
+ }
}
diff --git a/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java b/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java
index fe39e4e3d..8134756f8 100755
--- a/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java
+++ b/src/com/android/gallery3d/app/SinglePhotoDataAdapter.java
@@ -89,7 +89,16 @@ public class SinglePhotoDataAdapter extends TileImageViewAdapter
@Override
public void onFutureDone(Future<BitmapRegionDecoder> future) {
BitmapRegionDecoder decoder = future.get();
- if (decoder == null) return;
+ // cannot get large bitmap, then try to get thumb bitmap
+ if (decoder == null) {
+ if (mTask != null && !mTask.isCancelled()) {
+ Log.w(TAG, "fail to get region decoder, try to request thumb image");
+ mHasFullImage = false;
+ pause();
+ resume();
+ }
+ return;
+ }
int width = decoder.getWidth();
int height = decoder.getHeight();
BitmapFactory.Options options = new BitmapFactory.Options();
@@ -136,7 +145,6 @@ public class SinglePhotoDataAdapter extends TileImageViewAdapter
Bitmap backup = future.get();
if (backup == null) {
mLoadingState = LOADING_FAIL;
- return;
} else {
mLoadingState = LOADING_COMPLETE;
}
diff --git a/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java b/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java
index e3f80f7b6..20d14f900 100755
--- a/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java
+++ b/src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java
@@ -370,7 +370,6 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
if (LOG) {
Log.v(TAG, "surfaceCreated(" + holder + ")");
}
- /*
if (mCurrentState == STATE_SUSPENDED) {
mSurfaceHolder = holder;
mMediaPlayer.setDisplay(mSurfaceHolder);
@@ -387,12 +386,6 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
release(false);
}
}
- */
- if (mCurrentState == STATE_SUSPENDED) {
- mSurfaceHolder = holder;
- mMediaPlayer.setDisplay(mSurfaceHolder);
- release(false);
- }
mSurfaceHolder = holder;
openVideo();
}
@@ -629,7 +622,9 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
}
public void surfaceCreated(SurfaceHolder holder) {
- /*
+ if (LOG) {
+ Log.v(TAG, "surfaceCreated(" + holder + ")");
+ }
if (mCurrentState == STATE_SUSPENDED) {
mSurfaceHolder = holder;
mMediaPlayer.setDisplay(mSurfaceHolder);
@@ -648,17 +643,6 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
}
mSurfaceHolder = holder;
openVideo();
- */
- if (LOG) {
- Log.v(TAG, "surfaceCreated(" + holder + ")");
- }
- if (mCurrentState == STATE_SUSPENDED) {
- mSurfaceHolder = holder;
- mMediaPlayer.setDisplay(mSurfaceHolder);
- release(false);
- }
- mSurfaceHolder = holder;
- openVideo();
}
public void surfaceDestroyed(SurfaceHolder holder) {
@@ -783,7 +767,6 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
}
public void suspend() {
- /*
// HTTP streaming will call mMediaPlayer->suspend(), others will call release()
if (isHTTPStreaming(mUri) && mCurrentState != STATE_PREPARING) {
if (mMediaPlayer != null) {
@@ -793,13 +776,13 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
return;
}
}
- }*/
+ }
release(false);
}
public void resume() {
- /*
- // HTTP streaming (with suspended status) will call mMediaPlayer->resume(), others will call openVideo()
+ // HTTP streaming (with suspended status) will call mMediaPlayer->resume(),
+ // others will call openVideo()
if (mCurrentState == STATE_SUSPENDED) {
if (mSurfaceHolder != null) {
// The surface hasn't been destroyed
@@ -817,16 +800,8 @@ public class CodeauroraVideoView extends SurfaceView implements MediaPlayerContr
release(false);
}
} else {
- // The surface has been destroyed, resume operation will be done after surface created
- return;
- }
- }*/
- // HTTP streaming (with suspended status) will call mMediaPlayer->resume(), others will call openVideo()
- if (mCurrentState == STATE_SUSPENDED) {
- if (mSurfaceHolder != null) {
- release(false);
- } else {
- // The surface has been destroyed, resume operation will be done after surface created
+ // The surface has been destroyed, resume operation will be done
+ // after surface created
return;
}
}