summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Garnes <matt@cyngn.com>2015-02-23 11:28:23 -0800
committerMatt Garnes <matt@cyngn.com>2015-02-23 11:28:23 -0800
commit02c7a3fc42482cef3701900ab088029fd25323aa (patch)
treee76bed7f69dbc26fffe498a0584441382c829741
parent8e1ceb289dd38b4340afca2f869d485c959dfcd0 (diff)
parent12cf0d082018c504db4839b8b162e1d17960c3ff (diff)
downloadandroid_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.xml1
-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/PhotoDataAdapter.java7
-rwxr-xr-xsrc/com/android/gallery3d/app/SinglePhotoDataAdapter.java12
-rwxr-xr-xsrc/org/codeaurora/gallery3d/video/CodeauroraVideoView.java41
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;
}
}