From dbf4ba12afba115888493caa34937643257e2bb1 Mon Sep 17 00:00:00 2001 From: Ray Chen Date: Tue, 4 Oct 2011 15:19:44 +0800 Subject: Fix 5250813 Use new standardized no account screen on first launch This CL also fixes a bug in AlbumSetDataAdapter's ReloadTask, which causes empty screen after pause/resume. Change-Id: I7991d40a790384105ccb3021e1e51ba3e5ec8635 --- .../android/gallery3d/app/AlbumSetDataAdapter.java | 16 +++++++++------- src/com/android/gallery3d/app/AlbumSetPage.java | 15 +++++++-------- src/com/android/gallery3d/app/Gallery.java | 20 +++++++++++--------- .../gallery3d/ui/AlbumSetSlidingWindow.java | 22 +++++++++++----------- src/com/android/gallery3d/ui/AlbumSetView.java | 8 ++++---- src/com/android/gallery3d/ui/SlotView.java | 12 ++++++------ 6 files changed, 48 insertions(+), 45 deletions(-) (limited to 'src') diff --git a/src/com/android/gallery3d/app/AlbumSetDataAdapter.java b/src/com/android/gallery3d/app/AlbumSetDataAdapter.java index 8322d2b19..6a8e7022e 100644 --- a/src/com/android/gallery3d/app/AlbumSetDataAdapter.java +++ b/src/com/android/gallery3d/app/AlbumSetDataAdapter.java @@ -16,6 +16,9 @@ package com.android.gallery3d.app; +import android.os.Handler; +import android.os.Message; + import com.android.gallery3d.common.Utils; import com.android.gallery3d.data.ContentListener; import com.android.gallery3d.data.DataManager; @@ -25,9 +28,6 @@ import com.android.gallery3d.data.MediaSet; import com.android.gallery3d.ui.AlbumSetView; import com.android.gallery3d.ui.SynchronizedHandler; -import android.os.Handler; -import android.os.Message; - import java.util.ArrayList; import java.util.Arrays; import java.util.concurrent.Callable; @@ -70,7 +70,7 @@ public class AlbumSetDataAdapter implements AlbumSetView.Model { private final Handler mMainHandler; - private MySourceListener mSourceListener = new MySourceListener(); + private final MySourceListener mSourceListener = new MySourceListener(); public AlbumSetDataAdapter(GalleryActivity activity, MediaSet albumSet, int cacheSize) { mSource = Utils.checkNotNull(albumSet); @@ -260,8 +260,7 @@ public class AlbumSetDataAdapter implements AlbumSetView.Model { @Override public UpdateInfo call() throws Exception { int index = getInvalidIndex(mVersion); - if (index == INDEX_NONE - && mSourceVersion == mVersion) return null; + if (index == INDEX_NONE && mSourceVersion == mVersion) return null; UpdateInfo info = new UpdateInfo(); info.version = mSourceVersion; info.index = index; @@ -271,13 +270,16 @@ public class AlbumSetDataAdapter implements AlbumSetView.Model { } private class UpdateContent implements Callable { - private UpdateInfo mUpdateInfo; + private final UpdateInfo mUpdateInfo; public UpdateContent(UpdateInfo info) { mUpdateInfo = info; } public Void call() { + // Avoid notifying listeners of status change after pause + // Otherwise gallery will be in inconsistent state after resume. + if (mReloadTask == null) return null; UpdateInfo info = mUpdateInfo; mSourceVersion = info.version; if (mSize != info.size) { diff --git a/src/com/android/gallery3d/app/AlbumSetPage.java b/src/com/android/gallery3d/app/AlbumSetPage.java index 644d56578..74d60c402 100644 --- a/src/com/android/gallery3d/app/AlbumSetPage.java +++ b/src/com/android/gallery3d/app/AlbumSetPage.java @@ -43,6 +43,7 @@ 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; @@ -53,7 +54,6 @@ import com.android.gallery3d.ui.PositionRepository.Position; import com.android.gallery3d.ui.SelectionManager; import com.android.gallery3d.ui.SlotView; import com.android.gallery3d.ui.StaticBackground; -import com.android.gallery3d.util.GalleryUtils; public class AlbumSetPage extends ActivityState implements SelectionManager.SelectionListener, GalleryActionBar.ClusterRunner, @@ -100,8 +100,8 @@ public class AlbumSetPage extends ActivityState implements private float mY; private float mZ; - private GLView mRootPane = new GLView() { - private float mMatrix[] = new float[16]; + private final GLView mRootPane = new GLView() { + private final float mMatrix[] = new float[16]; @Override protected void onLayout( @@ -238,7 +238,6 @@ public class AlbumSetPage extends ActivityState implements } public void doCluster(int clusterType) { - Log.v(TAG, "doCluster: " + clusterType); String basePath = mMediaSet.getPath().toString(); String newPath = FilterUtils.switchClusterPath(basePath, clusterType); Bundle data = new Bundle(getData()); @@ -284,7 +283,6 @@ public class AlbumSetPage extends ActivityState implements @Override public void onPause() { super.onPause(); - Log.v(TAG, "onPause"); mIsActive = false; mActionModeHandler.pause(); mAlbumSetDataAdapter.pause(); @@ -298,7 +296,6 @@ public class AlbumSetPage extends ActivityState implements @Override public void onResume() { super.onResume(); - Log.v(TAG, "onResume"); mIsActive = true; setContentPane(mRootPane); mAlbumSetDataAdapter.resume(); @@ -306,7 +303,9 @@ public class AlbumSetPage extends ActivityState implements mEyePosition.resume(); mActionModeHandler.resume(); GalleryActionBar actionBar = mActivity.getGalleryActionBar(); - if (mShowClusterMenu && actionBar != null) actionBar.showClusterMenu(mSelectedAction, this); + if (mShowClusterMenu && actionBar != null) { + actionBar.showClusterMenu(mSelectedAction, this); + } } private void initializeData(Bundle data) { @@ -478,7 +477,7 @@ public class AlbumSetPage extends ActivityState implements final PositionRepository repository = PositionRepository.getInstance(mActivity); mAlbumSetView.startTransition(new PositionProvider() { - private Position mTempPosition = new Position(); + private final Position mTempPosition = new Position(); public Position getPosition(long identity, Position target) { Position p = repository.get(identity); if (p == null) { diff --git a/src/com/android/gallery3d/app/Gallery.java b/src/com/android/gallery3d/app/Gallery.java index 4408dbaef..15534bc08 100644 --- a/src/com/android/gallery3d/app/Gallery.java +++ b/src/com/android/gallery3d/app/Gallery.java @@ -16,15 +16,6 @@ package com.android.gallery3d.app; -import com.android.gallery3d.R; -import com.android.gallery3d.common.Utils; -import com.android.gallery3d.data.DataManager; -import com.android.gallery3d.data.MediaItem; -import com.android.gallery3d.data.MediaSet; -import com.android.gallery3d.data.Path; -import com.android.gallery3d.ui.GLRoot; -import com.android.gallery3d.util.GalleryUtils; - import android.content.ContentResolver; import android.content.Intent; import android.net.Uri; @@ -34,6 +25,16 @@ import android.view.MenuItem; import android.view.Window; import android.widget.Toast; +import com.android.gallery3d.R; +import com.android.gallery3d.common.Utils; +import com.android.gallery3d.data.DataManager; +import com.android.gallery3d.data.MediaItem; +import com.android.gallery3d.data.MediaSet; +import com.android.gallery3d.data.Path; +import com.android.gallery3d.picasasource.PicasaSource; +import com.android.gallery3d.ui.GLRoot; +import com.android.gallery3d.util.GalleryUtils; + public final class Gallery extends AbstractGalleryActivity { public static final String EXTRA_SLIDESHOW = "slideshow"; public static final String EXTRA_CROP = "crop"; @@ -90,6 +91,7 @@ public final class Gallery extends AbstractGalleryActivity { } public void startDefaultPage() { + PicasaSource.showSignInReminder(this); Bundle data = new Bundle(); data.putString(AlbumSetPage.KEY_MEDIA_PATH, getDataManager().getTopSetPath(DataManager.INCLUDE_ALL)); diff --git a/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java b/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java index bf6e1dfc3..5b01ce726 100644 --- a/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java +++ b/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java @@ -16,6 +16,10 @@ package com.android.gallery3d.ui; +import android.graphics.Bitmap; +import android.graphics.Color; +import android.os.Message; + import com.android.gallery3d.R; import com.android.gallery3d.app.GalleryActivity; import com.android.gallery3d.common.Utils; @@ -29,10 +33,6 @@ import com.android.gallery3d.util.GalleryUtils; import com.android.gallery3d.util.MediaSetUtils; import com.android.gallery3d.util.ThreadPool; -import android.graphics.Bitmap; -import android.graphics.Color; -import android.os.Message; - public class AlbumSetSlidingWindow implements AlbumSetView.ModelListener { private static final String TAG = "GallerySlidingWindow"; private static final int MSG_LOAD_BITMAP_DONE = 0; @@ -47,7 +47,7 @@ public class AlbumSetSlidingWindow implements AlbumSetView.ModelListener { private final AlbumSetView.Model mSource; private int mSize; - private AlbumSetView.LabelSpec mLabelSpec; + private final AlbumSetView.LabelSpec mLabelSpec; private int mContentStart = 0; private int mContentEnd = 0; @@ -61,11 +61,11 @@ public class AlbumSetSlidingWindow implements AlbumSetView.ModelListener { private SelectionDrawer mSelectionDrawer; private final ColorTexture mWaitLoadingTexture; - private SynchronizedHandler mHandler; - private ThreadPool mThreadPool; + private final SynchronizedHandler mHandler; + private final ThreadPool mThreadPool; private int mActiveRequestCount = 0; - private String mLoadingLabel; + private final String mLoadingLabel; private boolean mIsActive = false; private static class MyAlbumSetItem extends AlbumSetItem { @@ -339,7 +339,7 @@ public class AlbumSetSlidingWindow implements AlbumSetView.ModelListener { private final int mMediaType; private Texture mContent; private final long mDataVersion; - private boolean mIsPanorama; + private final boolean mIsPanorama; private boolean mWaitLoadingDisplayed; public GalleryDisplayItem(int slotIndex, int coverIndex, MediaItem item) { @@ -558,9 +558,9 @@ public class AlbumSetSlidingWindow implements AlbumSetView.ModelListener { } public void onSizeChanged(int size) { - if (mSize != size) { + if (mIsActive && mSize != size) { mSize = size; - if (mListener != null && mIsActive) mListener.onSizeChanged(mSize); + if (mListener != null) mListener.onSizeChanged(mSize); } } diff --git a/src/com/android/gallery3d/ui/AlbumSetView.java b/src/com/android/gallery3d/ui/AlbumSetView.java index 89dfe4a5c..d6202eff0 100644 --- a/src/com/android/gallery3d/ui/AlbumSetView.java +++ b/src/com/android/gallery3d/ui/AlbumSetView.java @@ -16,14 +16,14 @@ package com.android.gallery3d.ui; +import android.graphics.Rect; + import com.android.gallery3d.app.GalleryActivity; import com.android.gallery3d.common.Utils; import com.android.gallery3d.data.MediaItem; import com.android.gallery3d.data.MediaSet; import com.android.gallery3d.ui.PositionRepository.Position; -import android.graphics.Rect; - import java.util.Random; public class AlbumSetView extends SlotView { @@ -35,8 +35,8 @@ public class AlbumSetView extends SlotView { private int mVisibleStart; private int mVisibleEnd; - private Random mRandom = new Random(); - private long mSeed = mRandom.nextLong(); + private final Random mRandom = new Random(); + private final long mSeed = mRandom.nextLong(); private AlbumSetSlidingWindow mDataWindow; private final GalleryActivity mActivity; diff --git a/src/com/android/gallery3d/ui/SlotView.java b/src/com/android/gallery3d/ui/SlotView.java index 5d0922e93..cc34b2a4e 100644 --- a/src/com/android/gallery3d/ui/SlotView.java +++ b/src/com/android/gallery3d/ui/SlotView.java @@ -16,17 +16,17 @@ package com.android.gallery3d.ui; -import com.android.gallery3d.anim.Animation; -import com.android.gallery3d.common.Utils; -import com.android.gallery3d.ui.PositionRepository.Position; -import com.android.gallery3d.util.LinkedNode; - import android.content.Context; import android.graphics.Rect; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.animation.DecelerateInterpolator; +import com.android.gallery3d.anim.Animation; +import com.android.gallery3d.common.Utils; +import com.android.gallery3d.ui.PositionRepository.Position; +import com.android.gallery3d.util.LinkedNode; + import java.util.ArrayList; import java.util.HashMap; @@ -62,7 +62,7 @@ public class SlotView extends GLView { private UserInteractionListener mUIListener; // Use linked hash map to keep the rendering order - private HashMap mItems = + private final HashMap mItems = new HashMap(); public LinkedNode.List mItemList = LinkedNode.newList(); -- cgit v1.2.3