Loading src/com/android/gallery3d/app/AlbumPage.java +38 −30 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.gallery3d.app; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.net.Uri; Loading Loading @@ -73,6 +72,9 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster private static final int REQUEST_PHOTO = 2; private static final int REQUEST_DO_ANIMATION = 3; private static final int BIT_LOADING_RELOAD = 1; private static final int BIT_LOADING_SYNC = 2; private static final float USER_DISTANCE_METER = 0.3f; private boolean mIsActive = false; Loading @@ -99,11 +101,11 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster private boolean mShowDetails; private float mUserDistance; // in pixel private ProgressDialog mProgressDialog; private Future<?> mPendingTask; private Future<Integer> mSyncTask = null; private int mLoadingBits = 0; private boolean mInitialSynced = false; private final GLView mRootPane = new GLView() { private final float mMatrix[] = new float[16]; Loading Loading @@ -326,6 +328,10 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster mAlbumDataAdapter.resume(); mAlbumView.resume(); mActionModeHandler.resume(); if (!mInitialSynced) { mSyncTask = mMediaSet.requestSync(this); setLoadingBit(BIT_LOADING_SYNC); } } @Override Loading @@ -335,16 +341,7 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster mAlbumDataAdapter.pause(); mAlbumView.pause(); DetailsHelper.pause(); Future<?> task = mPendingTask; if (task != null) { // cancel on going task task.cancel(); task.waitDone(); if (mProgressDialog != null) { mProgressDialog.dismiss(); mProgressDialog = null; } } if (mSyncTask != null) { mSyncTask.cancel(); mSyncTask = null; Loading Loading @@ -568,9 +565,11 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster ((Activity) mActivity).runOnUiThread(new Runnable() { @Override public void run() { if (resultCode == MediaSet.SYNC_RESULT_SUCCESS) { mInitialSynced = true; } if (!mIsActive) return; mediaSet.notifyContentChanged(); // force reload to handle spinner clearLoadingBit(BIT_LOADING_SYNC); if (resultCode == MediaSet.SYNC_RESULT_ERROR) { Toast.makeText((Context) mActivity, R.string.sync_album_error, Toast.LENGTH_LONG).show(); Loading @@ -579,33 +578,42 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster }); } private class MyLoadingListener implements LoadingListener { @Override public void onLoadingStarted() { private void setLoadingBit(int loadTaskBit) { if (mLoadingBits == 0) { GalleryUtils.setSpinnerVisibility((Activity) mActivity, true); } mLoadingBits |= loadTaskBit; } private void clearLoadingBit(int loadTaskBit) { mLoadingBits &= ~loadTaskBit; if (mLoadingBits == 0) { GalleryUtils.setSpinnerVisibility((Activity) mActivity, false); @Override public void onLoadingFinished() { if (!mIsActive) return; if (mAlbumDataAdapter.size() == 0) { if (mSyncTask == null) { mSyncTask = mMediaSet.requestSync(AlbumPage.this); } if (mSyncTask.isDone()){ Toast.makeText((Context) mActivity, R.string.empty_album, Toast.LENGTH_LONG).show(); mActivity.getStateManager().finishState(AlbumPage.this); } } if (mSyncTask == null || mSyncTask.isDone()) { GalleryUtils.setSpinnerVisibility((Activity) mActivity, false); } private class MyLoadingListener implements LoadingListener { @Override public void onLoadingStarted() { setLoadingBit(BIT_LOADING_RELOAD); } @Override public void onLoadingFinished() { if (!mIsActive) return; clearLoadingBit(BIT_LOADING_RELOAD); } } private class MyDetailsSource implements DetailsHelper.DetailsSource { private int mIndex; public int size() { return mAlbumDataAdapter.size(); } Loading src/com/android/gallery3d/app/AlbumSetPage.java +42 −22 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ import com.android.gallery3d.ui.ActionModeHandler.ActionModeListener; import com.android.gallery3d.ui.AlbumSetView; import com.android.gallery3d.ui.DetailsHelper; import com.android.gallery3d.ui.DetailsHelper.CloseListener; import com.android.gallery3d.util.GalleryUtils; import com.android.gallery3d.ui.GLCanvas; import com.android.gallery3d.ui.GLView; import com.android.gallery3d.ui.GridDrawer; Loading @@ -55,6 +54,7 @@ import com.android.gallery3d.ui.SelectionManager; import com.android.gallery3d.ui.SlotView; import com.android.gallery3d.ui.StaticBackground; import com.android.gallery3d.util.Future; import com.android.gallery3d.util.GalleryUtils; public class AlbumSetPage extends ActivityState implements SelectionManager.SelectionListener, GalleryActionBar.ClusterRunner, Loading @@ -70,6 +70,9 @@ public class AlbumSetPage extends ActivityState implements private static final int DATA_CACHE_SIZE = 256; private static final int REQUEST_DO_ANIMATION = 1; private static final int BIT_LOADING_RELOAD = 1; private static final int BIT_LOADING_SYNC = 2; private boolean mIsActive = false; private StaticBackground mStaticBackground; private AlbumSetView mAlbumSetView; Loading Loading @@ -103,6 +106,9 @@ public class AlbumSetPage extends ActivityState implements private Future<Integer> mSyncTask = null; private int mLoadingBits = 0; private boolean mInitialSynced = false; private final GLView mRootPane = new GLView() { private final float mMatrix[] = new float[16]; Loading Loading @@ -284,6 +290,30 @@ public class AlbumSetPage extends ActivityState implements startTransition(); } private void clearLoadingBit(int loadingBit) { mLoadingBits &= ~loadingBit; if (mLoadingBits == 0) { GalleryUtils.setSpinnerVisibility((Activity) mActivity, false); // Only show toast when there's no album and we are going to finish // the page. Toast is redundant if we are going to stay on this page. if ((mAlbumSetDataAdapter.size() == 0)) { Toast.makeText((Context) mActivity, R.string.empty_album, Toast.LENGTH_LONG).show(); if (mActivity.getStateManager().getStateCount() > 1) { mActivity.getStateManager().finishState(this); } } } } private void setLoadingBit(int loadingBit) { if (mLoadingBits == 0) { GalleryUtils.setSpinnerVisibility((Activity) mActivity, true); } mLoadingBits |= loadingBit; } @Override public void onPause() { super.onPause(); Loading @@ -298,6 +328,7 @@ public class AlbumSetPage extends ActivityState implements if (mSyncTask != null) { mSyncTask.cancel(); mSyncTask = null; clearLoadingBit(BIT_LOADING_SYNC); } } Loading @@ -314,6 +345,10 @@ public class AlbumSetPage extends ActivityState implements if (mShowClusterMenu && actionBar != null) { actionBar.showClusterMenu(mSelectedAction, this); } if (!mInitialSynced) { mSyncTask = mMediaSet.requestSync(AlbumSetPage.this); setLoadingBit(BIT_LOADING_SYNC); } } private void initializeData(Bundle data) { Loading Loading @@ -571,9 +606,11 @@ public class AlbumSetPage extends ActivityState implements ((Activity) mActivity).runOnUiThread(new Runnable() { @Override public void run() { if (resultCode == MediaSet.SYNC_RESULT_SUCCESS) { mInitialSynced = true; } if (!mIsActive) return; mediaSet.notifyContentChanged(); // force reload to handle spinner clearLoadingBit(BIT_LOADING_SYNC); if (resultCode == MediaSet.SYNC_RESULT_ERROR) { Toast.makeText((Context) mActivity, R.string.sync_album_set_error, Toast.LENGTH_LONG).show(); Loading @@ -584,29 +621,12 @@ public class AlbumSetPage extends ActivityState implements private class MyLoadingListener implements LoadingListener { public void onLoadingStarted() { GalleryUtils.setSpinnerVisibility((Activity) mActivity, true); setLoadingBit(BIT_LOADING_RELOAD); } public void onLoadingFinished() { if (!mIsActive) return; if (mSyncTask == null) { // Request sync in case the mediaSet hasn't been sync'ed before. mSyncTask = mMediaSet.requestSync(AlbumSetPage.this); } if (mSyncTask.isDone()){ // The mediaSet is in sync. Turn off the loading indicator. GalleryUtils.setSpinnerVisibility((Activity) mActivity, false); // Only show toast when there's no album and we are going to finish // the page. Toast is redundant if we are going to stay on this page. if ((mAlbumSetDataAdapter.size() == 0) && (mActivity.getStateManager().getStateCount() > 1)) { Toast.makeText((Context) mActivity, R.string.empty_album, Toast.LENGTH_LONG).show(); mActivity.getStateManager().finishState(AlbumSetPage.this); } } clearLoadingBit(BIT_LOADING_RELOAD); } } Loading Loading
src/com/android/gallery3d/app/AlbumPage.java +38 −30 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.gallery3d.app; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.net.Uri; Loading Loading @@ -73,6 +72,9 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster private static final int REQUEST_PHOTO = 2; private static final int REQUEST_DO_ANIMATION = 3; private static final int BIT_LOADING_RELOAD = 1; private static final int BIT_LOADING_SYNC = 2; private static final float USER_DISTANCE_METER = 0.3f; private boolean mIsActive = false; Loading @@ -99,11 +101,11 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster private boolean mShowDetails; private float mUserDistance; // in pixel private ProgressDialog mProgressDialog; private Future<?> mPendingTask; private Future<Integer> mSyncTask = null; private int mLoadingBits = 0; private boolean mInitialSynced = false; private final GLView mRootPane = new GLView() { private final float mMatrix[] = new float[16]; Loading Loading @@ -326,6 +328,10 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster mAlbumDataAdapter.resume(); mAlbumView.resume(); mActionModeHandler.resume(); if (!mInitialSynced) { mSyncTask = mMediaSet.requestSync(this); setLoadingBit(BIT_LOADING_SYNC); } } @Override Loading @@ -335,16 +341,7 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster mAlbumDataAdapter.pause(); mAlbumView.pause(); DetailsHelper.pause(); Future<?> task = mPendingTask; if (task != null) { // cancel on going task task.cancel(); task.waitDone(); if (mProgressDialog != null) { mProgressDialog.dismiss(); mProgressDialog = null; } } if (mSyncTask != null) { mSyncTask.cancel(); mSyncTask = null; Loading Loading @@ -568,9 +565,11 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster ((Activity) mActivity).runOnUiThread(new Runnable() { @Override public void run() { if (resultCode == MediaSet.SYNC_RESULT_SUCCESS) { mInitialSynced = true; } if (!mIsActive) return; mediaSet.notifyContentChanged(); // force reload to handle spinner clearLoadingBit(BIT_LOADING_SYNC); if (resultCode == MediaSet.SYNC_RESULT_ERROR) { Toast.makeText((Context) mActivity, R.string.sync_album_error, Toast.LENGTH_LONG).show(); Loading @@ -579,33 +578,42 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster }); } private class MyLoadingListener implements LoadingListener { @Override public void onLoadingStarted() { private void setLoadingBit(int loadTaskBit) { if (mLoadingBits == 0) { GalleryUtils.setSpinnerVisibility((Activity) mActivity, true); } mLoadingBits |= loadTaskBit; } private void clearLoadingBit(int loadTaskBit) { mLoadingBits &= ~loadTaskBit; if (mLoadingBits == 0) { GalleryUtils.setSpinnerVisibility((Activity) mActivity, false); @Override public void onLoadingFinished() { if (!mIsActive) return; if (mAlbumDataAdapter.size() == 0) { if (mSyncTask == null) { mSyncTask = mMediaSet.requestSync(AlbumPage.this); } if (mSyncTask.isDone()){ Toast.makeText((Context) mActivity, R.string.empty_album, Toast.LENGTH_LONG).show(); mActivity.getStateManager().finishState(AlbumPage.this); } } if (mSyncTask == null || mSyncTask.isDone()) { GalleryUtils.setSpinnerVisibility((Activity) mActivity, false); } private class MyLoadingListener implements LoadingListener { @Override public void onLoadingStarted() { setLoadingBit(BIT_LOADING_RELOAD); } @Override public void onLoadingFinished() { if (!mIsActive) return; clearLoadingBit(BIT_LOADING_RELOAD); } } private class MyDetailsSource implements DetailsHelper.DetailsSource { private int mIndex; public int size() { return mAlbumDataAdapter.size(); } Loading
src/com/android/gallery3d/app/AlbumSetPage.java +42 −22 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ import com.android.gallery3d.ui.ActionModeHandler.ActionModeListener; import com.android.gallery3d.ui.AlbumSetView; import com.android.gallery3d.ui.DetailsHelper; import com.android.gallery3d.ui.DetailsHelper.CloseListener; import com.android.gallery3d.util.GalleryUtils; import com.android.gallery3d.ui.GLCanvas; import com.android.gallery3d.ui.GLView; import com.android.gallery3d.ui.GridDrawer; Loading @@ -55,6 +54,7 @@ import com.android.gallery3d.ui.SelectionManager; import com.android.gallery3d.ui.SlotView; import com.android.gallery3d.ui.StaticBackground; import com.android.gallery3d.util.Future; import com.android.gallery3d.util.GalleryUtils; public class AlbumSetPage extends ActivityState implements SelectionManager.SelectionListener, GalleryActionBar.ClusterRunner, Loading @@ -70,6 +70,9 @@ public class AlbumSetPage extends ActivityState implements private static final int DATA_CACHE_SIZE = 256; private static final int REQUEST_DO_ANIMATION = 1; private static final int BIT_LOADING_RELOAD = 1; private static final int BIT_LOADING_SYNC = 2; private boolean mIsActive = false; private StaticBackground mStaticBackground; private AlbumSetView mAlbumSetView; Loading Loading @@ -103,6 +106,9 @@ public class AlbumSetPage extends ActivityState implements private Future<Integer> mSyncTask = null; private int mLoadingBits = 0; private boolean mInitialSynced = false; private final GLView mRootPane = new GLView() { private final float mMatrix[] = new float[16]; Loading Loading @@ -284,6 +290,30 @@ public class AlbumSetPage extends ActivityState implements startTransition(); } private void clearLoadingBit(int loadingBit) { mLoadingBits &= ~loadingBit; if (mLoadingBits == 0) { GalleryUtils.setSpinnerVisibility((Activity) mActivity, false); // Only show toast when there's no album and we are going to finish // the page. Toast is redundant if we are going to stay on this page. if ((mAlbumSetDataAdapter.size() == 0)) { Toast.makeText((Context) mActivity, R.string.empty_album, Toast.LENGTH_LONG).show(); if (mActivity.getStateManager().getStateCount() > 1) { mActivity.getStateManager().finishState(this); } } } } private void setLoadingBit(int loadingBit) { if (mLoadingBits == 0) { GalleryUtils.setSpinnerVisibility((Activity) mActivity, true); } mLoadingBits |= loadingBit; } @Override public void onPause() { super.onPause(); Loading @@ -298,6 +328,7 @@ public class AlbumSetPage extends ActivityState implements if (mSyncTask != null) { mSyncTask.cancel(); mSyncTask = null; clearLoadingBit(BIT_LOADING_SYNC); } } Loading @@ -314,6 +345,10 @@ public class AlbumSetPage extends ActivityState implements if (mShowClusterMenu && actionBar != null) { actionBar.showClusterMenu(mSelectedAction, this); } if (!mInitialSynced) { mSyncTask = mMediaSet.requestSync(AlbumSetPage.this); setLoadingBit(BIT_LOADING_SYNC); } } private void initializeData(Bundle data) { Loading Loading @@ -571,9 +606,11 @@ public class AlbumSetPage extends ActivityState implements ((Activity) mActivity).runOnUiThread(new Runnable() { @Override public void run() { if (resultCode == MediaSet.SYNC_RESULT_SUCCESS) { mInitialSynced = true; } if (!mIsActive) return; mediaSet.notifyContentChanged(); // force reload to handle spinner clearLoadingBit(BIT_LOADING_SYNC); if (resultCode == MediaSet.SYNC_RESULT_ERROR) { Toast.makeText((Context) mActivity, R.string.sync_album_set_error, Toast.LENGTH_LONG).show(); Loading @@ -584,29 +621,12 @@ public class AlbumSetPage extends ActivityState implements private class MyLoadingListener implements LoadingListener { public void onLoadingStarted() { GalleryUtils.setSpinnerVisibility((Activity) mActivity, true); setLoadingBit(BIT_LOADING_RELOAD); } public void onLoadingFinished() { if (!mIsActive) return; if (mSyncTask == null) { // Request sync in case the mediaSet hasn't been sync'ed before. mSyncTask = mMediaSet.requestSync(AlbumSetPage.this); } if (mSyncTask.isDone()){ // The mediaSet is in sync. Turn off the loading indicator. GalleryUtils.setSpinnerVisibility((Activity) mActivity, false); // Only show toast when there's no album and we are going to finish // the page. Toast is redundant if we are going to stay on this page. if ((mAlbumSetDataAdapter.size() == 0) && (mActivity.getStateManager().getStateCount() > 1)) { Toast.makeText((Context) mActivity, R.string.empty_album, Toast.LENGTH_LONG).show(); mActivity.getStateManager().finishState(AlbumSetPage.this); } } clearLoadingBit(BIT_LOADING_RELOAD); } } Loading