summaryrefslogtreecommitdiffstats
path: root/src/com/android/dreams/phototable/PicasaSource.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/dreams/phototable/PicasaSource.java')
-rw-r--r--src/com/android/dreams/phototable/PicasaSource.java49
1 files changed, 41 insertions, 8 deletions
diff --git a/src/com/android/dreams/phototable/PicasaSource.java b/src/com/android/dreams/phototable/PicasaSource.java
index af57fd1..cd5ddcd 100644
--- a/src/com/android/dreams/phototable/PicasaSource.java
+++ b/src/com/android/dreams/phototable/PicasaSource.java
@@ -38,6 +38,7 @@ public class PicasaSource extends PhotoSource {
private static final String PICASA_PHOTO_PATH = "photos";
private static final String PICASA_ALBUM_PATH = "albums";
+ private static final String PICASA_USER_PATH = "users";
private static final String PICASA_ID = "_id";
private static final String PICASA_URL = "content_url";
@@ -48,6 +49,7 @@ public class PicasaSource extends PhotoSource {
private static final String PICASA_ALBUM_TYPE = "album_type";
private static final String PICASA_ALBUM_USER = "user_id";
private static final String PICASA_ALBUM_UPDATED = "date_updated";
+ private static final String PICASA_ACCOUNT = "account";
private static final String PICASA_URL_KEY = "content_url";
private static final String PICASA_TYPE_KEY = "type";
@@ -59,6 +61,9 @@ public class PicasaSource extends PhotoSource {
private static final String PICASA_UPLOAD_TYPE = "InstantUpload";
private final int mMaxPostAblums;
+ private final String mPostsAlbumName;
+ private final String mUploadsAlbumName;
+ private final String mUnknownAlbumName;
private int mNextPosition;
@@ -67,6 +72,9 @@ public class PicasaSource extends PhotoSource {
mSourceName = TAG;
mNextPosition = -1;
mMaxPostAblums = mResources.getInteger(R.integer.max_post_albums);
+ mPostsAlbumName = mResources.getString(R.string.posts_album_name, "Posts");
+ mUploadsAlbumName = mResources.getString(R.string.uploads_album_name, "Instant Uploads");
+ mUnknownAlbumName = mResources.getString(R.string.unknown_album_name, "Unknown");
log(TAG, "mSettings: " + mSettings);
fillQueue();
}
@@ -157,6 +165,27 @@ public class PicasaSource extends PhotoSource {
return foundImages;
}
+ private String resolveAccount(String id) {
+ String displayName = "unknown";
+ String[] projection = {PICASA_ACCOUNT};
+ Uri.Builder picasaUriBuilder = new Uri.Builder()
+ .scheme("content")
+ .authority(PICASA_AUTHORITY)
+ .appendPath(PICASA_USER_PATH)
+ .appendPath(id);
+ Cursor cursor = mResolver.query(picasaUriBuilder.build(),
+ projection, null, null, null);
+ if (cursor != null) {
+ cursor.moveToFirst();
+ int accountIndex = cursor.getColumnIndex(PICASA_ACCOUNT);
+ if (accountIndex >= 0) {
+ displayName = cursor.getString(accountIndex);
+ }
+ cursor.close();
+ }
+ return displayName;
+ }
+
private Collection<String> resolveAlbumIds(String id) {
LinkedList<String> albumIds = new LinkedList<String>();
log(TAG, "resolving " + id);
@@ -169,7 +198,7 @@ public class PicasaSource extends PhotoSource {
String[] projection = {PICASA_ID, PICASA_ALBUM_TYPE, PICASA_ALBUM_UPDATED,
PICASA_ALBUM_USER};
String order = PICASA_ALBUM_UPDATED + " DESC";
- String selection = (PICASA_ALBUM_USER + " = '" + parts[2] + "' AND " +
+ String selection = (PICASA_ALBUM_USER + " = '" + parts[2] + "' AND " +
PICASA_ALBUM_TYPE + " = '" + parts[1] + "'");
Uri.Builder picasaUriBuilder = new Uri.Builder()
.scheme("content")
@@ -201,6 +230,7 @@ public class PicasaSource extends PhotoSource {
public Collection<AlbumData> findAlbums() {
log(TAG, "finding albums");
HashMap<String, AlbumData> foundAlbums = new HashMap<String, AlbumData>();
+ HashMap<String, String> accounts = new HashMap<String, String>();
String[] projection = {PICASA_ID, PICASA_TITLE, PICASA_THUMB, PICASA_ALBUM_TYPE,
PICASA_ALBUM_USER, PICASA_ALBUM_UPDATED};
Uri.Builder picasaUriBuilder = new Uri.Builder()
@@ -230,6 +260,12 @@ public class PicasaSource extends PhotoSource {
boolean isPosts = (typeIndex >= 0 && PICASA_POSTS_TYPE.equals(type));
boolean isUpload = (typeIndex >= 0 && PICASA_UPLOAD_TYPE.equals(type));
+ String account = accounts.get(user);
+ if (account == null) {
+ account = resolveAccount(user);
+ accounts.put(user, account);
+ }
+
if (isPosts) {
id = TAG + ":" + PICASA_POSTS_TYPE + ":" + user;
}
@@ -244,19 +280,16 @@ public class PicasaSource extends PhotoSource {
if (data == null) {
data = new AlbumData();
data.id = id;
+ data.account = account;
if (isPosts) {
- data.title =
- mResources.getString(R.string.posts_album_name, "Posts");
+ data.title = mPostsAlbumName;
} else if (isUpload) {
- data.title =
- mResources.getString(R.string.uploads_album_name,
- "Instant Uploads");
+ data.title = mUploadsAlbumName;
} else if (titleIndex >= 0) {
data.title = cursor.getString(titleIndex);
} else {
- data.title =
- mResources.getString(R.string.unknown_album_name, "Unknown");
+ data.title = mUnknownAlbumName;
}
if (thumbIndex >= 0) {