From cc2f059ce62cbb04a605e6adda6f4b278210cd1a Mon Sep 17 00:00:00 2001 From: Wu-cheng Li Date: Wed, 26 Sep 2012 18:20:11 +0800 Subject: Show unlock image in secure album only when camera roll has items. bug:7192331 Change-Id: I8e0a9ea87181c2256632a4dc802cc0668fac1e0e --- src/com/android/gallery3d/data/SecureAlbum.java | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src/com/android/gallery3d/data/SecureAlbum.java') 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; -- cgit v1.2.3