summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKedi Xu <kedix@codeaurora.org>2016-08-04 18:21:04 +0800
committerKedi Xu <kedix@codeaurora.org>2016-08-04 18:21:04 +0800
commitde4bbef3381b556af6a9ad5f713a2031f1e7a1d2 (patch)
treef3cf687c053d9ed01b44c5f3614d7fccde4c53ce /src
parent7e593580a66b4750f2eb75b4e187bb178ee4b996 (diff)
downloadandroid_packages_apps_Gallery2-de4bbef3381b556af6a9ad5f713a2031f1e7a1d2.tar.gz
android_packages_apps_Gallery2-de4bbef3381b556af6a9ad5f713a2031f1e7a1d2.tar.bz2
android_packages_apps_Gallery2-de4bbef3381b556af6a9ad5f713a2031f1e7a1d2.zip
SnapdragonGallery: Fix select number show nagtive
When no items in gallery, then select all, screenshort, deselect the picture, shows -1 Change-Id: Ic3cffb4275af0aa20c8d2b326471979b74e10041 CRs-Fixed: 1049620
Diffstat (limited to 'src')
-rwxr-xr-x[-rw-r--r--]src/com/android/gallery3d/app/AlbumSetDataLoader.java18
-rwxr-xr-x[-rw-r--r--]src/com/android/gallery3d/app/AlbumSetPage.java1
-rwxr-xr-x[-rw-r--r--]src/com/android/gallery3d/app/TimeLineDataLoader.java17
-rwxr-xr-x[-rw-r--r--]src/com/android/gallery3d/app/TimeLinePage.java1
-rwxr-xr-x[-rw-r--r--]src/com/android/gallery3d/ui/SelectionManager.java45
5 files changed, 73 insertions, 9 deletions
diff --git a/src/com/android/gallery3d/app/AlbumSetDataLoader.java b/src/com/android/gallery3d/app/AlbumSetDataLoader.java
index 909d9109c..e52b433d4 100644..100755
--- a/src/com/android/gallery3d/app/AlbumSetDataLoader.java
+++ b/src/com/android/gallery3d/app/AlbumSetDataLoader.java
@@ -28,6 +28,7 @@ import com.android.gallery3d.data.MediaSet;
import com.android.gallery3d.data.Path;
import com.android.gallery3d.ui.SynchronizedHandler;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
@@ -66,7 +67,7 @@ public class AlbumSetDataLoader {
private long mSourceVersion = MediaObject.INVALID_DATA_VERSION;
private int mSize;
- private DataListener mDataListener;
+ private ArrayList<DataListener> mDataListener = new ArrayList<>();
private LoadingListener mLoadingListener;
private ReloadTask mReloadTask;
@@ -224,7 +225,11 @@ public class AlbumSetDataLoader {
}
public void setModelListener(DataListener listener) {
- mDataListener = listener;
+ mDataListener.add(listener);
+ }
+
+ public void removeModelListener(DataListener listener) {
+ mDataListener.remove(listener);
}
public void setLoadingListener(LoadingListener listener) {
@@ -287,7 +292,10 @@ public class AlbumSetDataLoader {
mSourceVersion = info.version;
if (mSize != info.size) {
mSize = info.size;
- if (mDataListener != null) mDataListener.onSizeChanged(mSize);
+ if (mDataListener != null)
+ for (DataListener l : mDataListener) {
+ l.onSizeChanged(mSize);
+ }
if (mContentEnd > mSize) mContentEnd = mSize;
if (mActiveEnd > mSize) mActiveEnd = mSize;
}
@@ -303,7 +311,9 @@ public class AlbumSetDataLoader {
mTotalCount[pos] = info.totalCount;
if (mDataListener != null
&& info.index >= mActiveStart && info.index < mActiveEnd) {
- mDataListener.onContentChanged(info.index);
+ for (DataListener l : mDataListener) {
+ l.onContentChanged(info.index);
+ }
}
}
return null;
diff --git a/src/com/android/gallery3d/app/AlbumSetPage.java b/src/com/android/gallery3d/app/AlbumSetPage.java
index ec75d2aa8..580cd0961 100644..100755
--- a/src/com/android/gallery3d/app/AlbumSetPage.java
+++ b/src/com/android/gallery3d/app/AlbumSetPage.java
@@ -523,6 +523,7 @@ public class AlbumSetPage extends ActivityState implements
mSelectionManager.setSourceMediaSet(mMediaSet);
mAlbumSetDataAdapter = new AlbumSetDataLoader(
mActivity, mMediaSet, DATA_CACHE_SIZE);
+ mSelectionManager.setAlbumSetDataLoader(mAlbumSetDataAdapter);
mAlbumSetDataAdapter.setLoadingListener(new MyLoadingListener());
mAlbumSetView.setModel(mAlbumSetDataAdapter);
}
diff --git a/src/com/android/gallery3d/app/TimeLineDataLoader.java b/src/com/android/gallery3d/app/TimeLineDataLoader.java
index 8fcc4dfde..590910375 100644..100755
--- a/src/com/android/gallery3d/app/TimeLineDataLoader.java
+++ b/src/com/android/gallery3d/app/TimeLineDataLoader.java
@@ -68,7 +68,7 @@ public class TimeLineDataLoader {
private final Handler mMainHandler;
private int mSize = 0;
- private DataListener mDataListener;
+ private ArrayList<DataListener> mDataListener = new ArrayList<>();
private MySourceListener mSourceListener = new MySourceListener();
private LoadingListener mLoadingListener;
@@ -240,7 +240,11 @@ public class TimeLineDataLoader {
}
public void setDataListener(DataListener listener) {
- mDataListener = listener;
+ mDataListener.add(listener);
+ }
+
+ public void removeDataListener(DataListener listener) {
+ mDataListener.remove(listener);
}
public void setLoadingListener(LoadingListener listener) {
@@ -313,7 +317,10 @@ public class TimeLineDataLoader {
mSourceVersion = info.version;
if (mSize != info.size) {
mSize = info.size;
- if (mDataListener != null) mDataListener.onSizeChanged();
+ if (mDataListener != null)
+ for (DataListener l : mDataListener) {
+ l.onSizeChanged();
+ }
if (mContentEnd > mSize) mContentEnd = mSize;
if (mActiveEnd > mSize) mActiveEnd = mSize;
}
@@ -341,7 +348,9 @@ public class TimeLineDataLoader {
mItemVersion[index] = itemVersion;
mData[index] = updateItem;
if (mDataListener != null && i >= mActiveStart && i < mActiveEnd) {
- mDataListener.onContentChanged(i);
+ for (DataListener l : mDataListener) {
+ l.onContentChanged(i);
+ }
}
}
}
diff --git a/src/com/android/gallery3d/app/TimeLinePage.java b/src/com/android/gallery3d/app/TimeLinePage.java
index 9da003eb9..978909849 100644..100755
--- a/src/com/android/gallery3d/app/TimeLinePage.java
+++ b/src/com/android/gallery3d/app/TimeLinePage.java
@@ -544,6 +544,7 @@ public class TimeLinePage extends ActivityState implements
}
mAlbumDataAdapter = new TimeLineDataLoader(mActivity, mMediaSet);
mSelectionManager.setSourceMediaSet(mMediaSet);
+ mSelectionManager.setTimeLineDataLoader(mAlbumDataAdapter);
//mSelectionManager.setAlbumDataAdapter(mAlbumDataAdapter);
mAlbumDataAdapter.setLoadingListener(new MyLoadingListener());
mAlbumView.setModel(mAlbumDataAdapter);
diff --git a/src/com/android/gallery3d/ui/SelectionManager.java b/src/com/android/gallery3d/ui/SelectionManager.java
index 85616263c..da61bf19c 100644..100755
--- a/src/com/android/gallery3d/ui/SelectionManager.java
+++ b/src/com/android/gallery3d/ui/SelectionManager.java
@@ -17,6 +17,9 @@
package com.android.gallery3d.ui;
import com.android.gallery3d.app.AbstractGalleryActivity;
+import com.android.gallery3d.app.AlbumSetDataLoader;
+import com.android.gallery3d.app.TimeLineDataLoader;
+import com.android.gallery3d.data.ContentListener;
import com.android.gallery3d.data.DataManager;
import com.android.gallery3d.data.MediaItem;
import com.android.gallery3d.data.MediaObject;
@@ -27,7 +30,7 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
-public class SelectionManager {
+public class SelectionManager implements TimeLineDataLoader.DataListener, AlbumSetDataLoader.DataListener{
@SuppressWarnings("unused")
private static final String TAG = "SelectionManager";
@@ -47,6 +50,26 @@ public class SelectionManager {
/** mTotalSelectable is the count of items
* exclude not selectable such as Title item in TimeLine. */
private int mTotalSelectable;
+ private TimeLineDataLoader mTimeLineDataLoader;
+ private AlbumSetDataLoader mAlbumSetDataLoader;
+
+ @Override
+ public void onContentChanged(int index) {
+ }
+
+ @Override
+ public void onSizeChanged(int size) {
+ if (mInverseSelection) {
+ selectAll();
+ }
+ }
+
+ @Override
+ public void onSizeChanged() {
+ if (mInverseSelection) {
+ selectAll();
+ }
+ }
public interface SelectionListener {
public void onSelectionModeChange(int mode);
@@ -99,6 +122,12 @@ public class SelectionManager {
mInSelectionMode = true;
if (mListener != null) mListener.onSelectionModeChange(ENTER_SELECTION_MODE);
+ if (mAlbumSetDataLoader != null) {
+ mAlbumSetDataLoader.setModelListener(this);
+ }
+ if (mTimeLineDataLoader != null) {
+ mTimeLineDataLoader.setDataListener(this);
+ }
}
public void leaveSelectionMode() {
@@ -108,6 +137,12 @@ public class SelectionManager {
mInverseSelection = false;
mClickedSet.clear();
if (mListener != null) mListener.onSelectionModeChange(LEAVE_SELECTION_MODE);
+ if (mAlbumSetDataLoader != null) {
+ mAlbumSetDataLoader.removeModelListener(this);
+ }
+ if (mTimeLineDataLoader != null) {
+ mTimeLineDataLoader.removeDataListener(this);
+ }
}
public boolean isItemSelected(Path itemId) {
@@ -293,4 +328,12 @@ public class SelectionManager {
mSourceMediaSet = set;
mTotal = -1;
}
+
+ public void setTimeLineDataLoader(TimeLineDataLoader loader) {
+ mTimeLineDataLoader = loader;
+ }
+
+ public void setAlbumSetDataLoader(AlbumSetDataLoader loader) {
+ mAlbumSetDataLoader = loader;
+ }
}