summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChris Wren <cwren@android.com>2012-10-12 19:03:26 -0400
committerChris Wren <cwren@android.com>2012-10-12 19:03:26 -0400
commite8f4d55d6895e1f2bc298ef8978e1aef43ff57c5 (patch)
tree1dabc4e73c7f33406ca260c67e2fe00358ffdeb7 /src
parent9163ae4a006ee336751ed1362d9877544e467015 (diff)
downloadandroid_packages_screensavers_PhotoTable-e8f4d55d6895e1f2bc298ef8978e1aef43ff57c5.tar.gz
android_packages_screensavers_PhotoTable-e8f4d55d6895e1f2bc298ef8978e1aef43ff57c5.tar.bz2
android_packages_screensavers_PhotoTable-e8f4d55d6895e1f2bc298ef8978e1aef43ff57c5.zip
Be miserly with metered data.
Bug: 7337804 Change-Id: I64d078396b112381b2971259c784ee6fdf5e5ca3
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dreams/phototable/PhotoCarousel.java1
-rw-r--r--src/com/android/dreams/phototable/PicasaSource.java33
2 files changed, 31 insertions, 3 deletions
diff --git a/src/com/android/dreams/phototable/PhotoCarousel.java b/src/com/android/dreams/phototable/PhotoCarousel.java
index d03dde0..0c957ab 100644
--- a/src/com/android/dreams/phototable/PhotoCarousel.java
+++ b/src/com/android/dreams/phototable/PhotoCarousel.java
@@ -232,7 +232,6 @@ public class PhotoCarousel extends FrameLayout {
mPanel[1] = findViewById(R.id.back);
new PhotoLoadTask(mPanel[0]).execute();
- new PhotoLoadTask(mPanel[1]).execute();
scheduleNext(mDropPeriod);
}
diff --git a/src/com/android/dreams/phototable/PicasaSource.java b/src/com/android/dreams/phototable/PicasaSource.java
index 8a3c751..3a7ca23 100644
--- a/src/com/android/dreams/phototable/PicasaSource.java
+++ b/src/com/android/dreams/phototable/PicasaSource.java
@@ -18,6 +18,7 @@ package com.android.dreams.phototable;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor;
+import android.net.ConnectivityManager;
import android.net.Uri;
import android.util.Log;
@@ -67,6 +68,9 @@ public class PicasaSource extends PhotoSource {
private final String mPostsAlbumName;
private final String mUploadsAlbumName;
private final String mUnknownAlbumName;
+ private final LinkedList<ImageData> mRecycleBin;
+ private final ConnectivityManager mConnectivityManager;
+ private final int mMaxRecycleSize;
private Set<String> mFoundAlbumIds;
private int mNextPosition;
@@ -79,6 +83,10 @@ public class PicasaSource extends PhotoSource {
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");
+ mMaxRecycleSize = mResources.getInteger(R.integer.recycle_image_pool_size);
+ mConnectivityManager =
+ (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ mRecycleBin = new LinkedList<ImageData>();
fillQueue();
}
@@ -86,6 +94,16 @@ public class PicasaSource extends PhotoSource {
protected Collection<ImageData> findImages(int howMany) {
log(TAG, "finding images");
LinkedList<ImageData> foundImages = new LinkedList<ImageData>();
+ if (mConnectivityManager.isActiveNetworkMetered()) {
+ howMany = Math.min(howMany, mMaxRecycleSize);
+ log(TAG, "METERED: " + howMany);
+ if (!mRecycleBin.isEmpty()) {
+ foundImages.addAll(mRecycleBin);
+ log(TAG, "recycled " + foundImages.size() + " items.");
+ return foundImages;
+ }
+ }
+
String[] projection = {PICASA_ID, PICASA_URL, PICASA_ROTATION, PICASA_ALBUM_ID};
boolean usePosts = false;
LinkedList<String> albumIds = new LinkedList<String>();
@@ -359,8 +377,12 @@ public class PicasaSource extends PhotoSource {
.scheme("content")
.authority(PICASA_AUTHORITY)
.appendPath(PICASA_PHOTO_PATH)
- .appendPath(data.id)
- .appendQueryParameter(PICASA_TYPE_KEY, PICASA_TYPE_FULL_VALUE);
+ .appendPath(data.id);
+ if (mConnectivityManager.isActiveNetworkMetered()) {
+ photoUriBuilder.appendQueryParameter(PICASA_TYPE_KEY, PICASA_TYPE_SCREEN_VALUE);
+ } else {
+ photoUriBuilder.appendQueryParameter(PICASA_TYPE_KEY, PICASA_TYPE_FULL_VALUE);
+ }
if (data.url != null) {
photoUriBuilder.appendQueryParameter(PICASA_URL_KEY, data.url);
}
@@ -373,6 +395,13 @@ public class PicasaSource extends PhotoSource {
is = null;
}
+ if (is != null) {
+ mRecycleBin.offer(data);
+ log(TAG, "RECYCLED");
+ while (mRecycleBin.size() > mMaxRecycleSize) {
+ mRecycleBin.poll();
+ }
+ }
return is;
}
}