diff options
author | Matt Garnes <matt@cyngn.com> | 2015-02-23 11:28:23 -0800 |
---|---|---|
committer | Matt Garnes <matt@cyngn.com> | 2015-02-23 11:28:23 -0800 |
commit | 02c7a3fc42482cef3701900ab088029fd25323aa (patch) | |
tree | e76bed7f69dbc26fffe498a0584441382c829741 | |
parent | 8e1ceb289dd38b4340afca2f869d485c959dfcd0 (diff) | |
parent | 12cf0d082018c504db4839b8b162e1d17960c3ff (diff) | |
download | android_packages_apps_Gallery2-02c7a3fc42482cef3701900ab088029fd25323aa.tar.gz android_packages_apps_Gallery2-02c7a3fc42482cef3701900ab088029fd25323aa.tar.bz2 android_packages_apps_Gallery2-02c7a3fc42482cef3701900ab088029fd25323aa.zip |
Merge CAF branch 'LA.BR.1.2.1_rb2.18' into caf/cm-12.0.
-rw-r--r-- | AndroidManifest.xml | 1 | ||||
-rw-r--r-- | src/com/android/gallery3d/app/AbstractGalleryActivity.java | 36 | ||||
-rw-r--r-- | src/com/android/gallery3d/app/MovieActivity.java | 11 | ||||
-rwxr-xr-x | src/com/android/gallery3d/app/PhotoDataAdapter.java | 7 | ||||
-rwxr-xr-x | src/com/android/gallery3d/app/SinglePhotoDataAdapter.java | 12 | ||||
-rwxr-xr-x | src/org/codeaurora/gallery3d/video/CodeauroraVideoView.java | 41 |
6 files changed, 62 insertions, 46 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index bfa9308d1..8b15d6cd0 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -20,7 +20,6 @@ <manifest android:versionCode="40030" android:versionName="1.1.40030" xmlns:android="http://schemas.android.com/apk/res/android" - android:sharedUserId="android.uid.system" package="com.android.gallery3d"> <original-package android:name="com.android.gallery3d" /> 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 6aa4ce46b..31370cbee 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/PhotoDataAdapter.java b/src/com/android/gallery3d/app/PhotoDataAdapter.java index 7be48ebeb..c7dd48b1e 100755 --- a/src/com/android/gallery3d/app/PhotoDataAdapter.java +++ b/src/com/android/gallery3d/app/PhotoDataAdapter.java @@ -72,6 +72,7 @@ public class PhotoDataAdapter implements PhotoPage.Model { private static final int BIT_SCREEN_NAIL = 1; private static final int BIT_FULL_IMAGE = 2; + private static final long NOTIFY_DIRTY_WAIT_TIME = 10; // sImageFetchSeq is the fetching sequence for images. // We want to fetch the current screennail first (offset = 0), the next // screennail (offset = +1), then the previous screennail (offset = -1) etc. @@ -1207,6 +1208,12 @@ public class PhotoDataAdapter implements PhotoPage.Model { } public synchronized void notifyDirty() { + while (mDirty) { + try { + wait(NOTIFY_DIRTY_WAIT_TIME); + } catch (Exception ex) { + } + } mDirty = true; notifyAll(); } 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; } } |