summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/data/SecureAlbum.java
diff options
context:
space:
mode:
authorWu-cheng Li <wuchengli@google.com>2012-09-26 18:20:11 +0800
committerWu-cheng Li <wuchengli@google.com>2012-09-26 19:12:59 +0800
commitcc2f059ce62cbb04a605e6adda6f4b278210cd1a (patch)
tree5d843c12b1830bfa37f51ed1b1abf8013d8c5f79 /src/com/android/gallery3d/data/SecureAlbum.java
parent9c3912a2dcea9131a63ddcb10e1df2a1f3ae8269 (diff)
downloadandroid_packages_apps_Gallery2-cc2f059ce62cbb04a605e6adda6f4b278210cd1a.tar.gz
android_packages_apps_Gallery2-cc2f059ce62cbb04a605e6adda6f4b278210cd1a.tar.bz2
android_packages_apps_Gallery2-cc2f059ce62cbb04a605e6adda6f4b278210cd1a.zip
Show unlock image in secure album only when camera roll has items.
bug:7192331 Change-Id: I8e0a9ea87181c2256632a4dc802cc0668fac1e0e
Diffstat (limited to 'src/com/android/gallery3d/data/SecureAlbum.java')
-rw-r--r--src/com/android/gallery3d/data/SecureAlbum.java22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/com/android/gallery3d/data/SecureAlbum.java b/src/com/android/gallery3d/data/SecureAlbum.java
index 42364b5e9..b841df7e3 100644
--- a/src/com/android/gallery3d/data/SecureAlbum.java
+++ b/src/com/android/gallery3d/data/SecureAlbum.java
@@ -24,6 +24,7 @@ import android.provider.MediaStore.Images;
import android.provider.MediaStore.Video;
import com.android.gallery3d.app.GalleryApp;
+import com.android.gallery3d.util.MediaSetUtils;
import java.util.ArrayList;
@@ -49,6 +50,7 @@ public class SecureAlbum extends MediaSet {
// A placeholder image in the end of secure album. When it is tapped, it
// will take the user to the lock screen.
private MediaItem mUnlockItem;
+ private boolean mShowUnlockItem;
public SecureAlbum(Path path, GalleryApp application, MediaItem unlock) {
super(path, nextVersionNumber());
@@ -56,6 +58,8 @@ public class SecureAlbum extends MediaSet {
mDataManager = application.getDataManager();
mNotifier = new ChangeNotifier(this, mWatchUris, application);
mUnlockItem = unlock;
+ mShowUnlockItem = (!isCameraBucketEmpty(Images.Media.EXTERNAL_CONTENT_URI)
+ || !isCameraBucketEmpty(Video.Media.EXTERNAL_CONTENT_URI));
}
public void addMediaItem(boolean isVideo, int id) {
@@ -92,13 +96,13 @@ public class SecureAlbum extends MediaSet {
for (int i = 0; i < buf.length; i++) {
result.add(buf[i]);
}
- result.add(mUnlockItem);
+ if (mShowUnlockItem) result.add(mUnlockItem);
return result;
}
@Override
public int getMediaItemCount() {
- return mExistingItems.size() + 1;
+ return mExistingItems.size() + (mShowUnlockItem ? 1 : 0);
}
@Override
@@ -133,6 +137,20 @@ public class SecureAlbum extends MediaSet {
return ids;
}
+ private boolean isCameraBucketEmpty(Uri baseUri) {
+ Uri uri = baseUri.buildUpon()
+ .appendQueryParameter("limit", "1").build();
+ String[] selection = {String.valueOf(MediaSetUtils.CAMERA_BUCKET_ID)};
+ Cursor cursor = mContext.getContentResolver().query(uri, PROJECTION,
+ "bucket_id = ?", selection, null);
+ if (cursor == null) return true;
+ try {
+ return (cursor.getCount() == 0);
+ } finally {
+ cursor.close();
+ }
+ }
+
private void updateExistingItems() {
if (mAllItems.size() == 0) return;