aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2013-08-08 22:42:11 +0200
committerJorge Ruesga <jorge@ruesga.com>2013-08-08 22:42:11 +0200
commit3d007dc962dafc76437bba8f9df0ed2401e809b5 (patch)
tree3698fd421d090162a75bfc53e397a1e2b4d4e352
parent7ae9b377e1dc2839cc4b0c660cc07fb232f93643 (diff)
downloadandroid_packages_wallpapers_PhotoPhase-3d007dc962dafc76437bba8f9df0ed2401e809b5.tar.gz
android_packages_wallpapers_PhotoPhase-3d007dc962dafc76437bba8f9df0ed2401e809b5.tar.bz2
android_packages_wallpapers_PhotoPhase-3d007dc962dafc76437bba8f9df0ed2401e809b5.zip
Show a toast when "Refresh now" action was completed (#15)
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
-rw-r--r--res/values/plurals.xml33
-rw-r--r--res/values/strings.xml6
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java18
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java5
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/TextureManager.java20
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/preferences/MediaPreferenceFragment.java1
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/preferences/PreferencesProvider.java8
7 files changed, 73 insertions, 18 deletions
diff --git a/res/values/plurals.xml b/res/values/plurals.xml
new file mode 100644
index 0000000..e78ea99
--- /dev/null
+++ b/res/values/plurals.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The CyanogenMod Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Number of pictures found in an album -->
+ <plurals name="album_number_of_pictures">
+ <item quantity="one">1 picture</item>
+ <item quantity="other"><xliff:g id="pictures" example="7">%d</xliff:g> pictures</item>
+ </plurals>
+
+ <!-- Total of pictures found after a media reload -->
+ <plurals name="msg_media_reload_complete">
+ <item quantity="one">Media reload complete. 1 picture found.</item>
+ <item quantity="other">Media reload complete. <xliff:g id="pictures" example="7">%d</xliff:g> pictures found.</item>
+ </plurals>
+
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 48185a1..be80054 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -83,12 +83,6 @@
<string name="pref_about">About</string>
<string name="pref_about_summary">PhotoPhase v<xliff:g id="version">%1$s</xliff:g>\nCopyright \u00A9 2013 The CyanogenMod Project</string>
- <!-- Plurals -->
- <plurals name="album_number_of_pictures">
- <item quantity="one">1 picture</item>
- <item quantity="other"><xliff:g id="number" example="7">%d</xliff:g> pictures</item>
- </plurals>
-
<!-- Refresh intervals -->
<string name="refresh_intervals_disabled">Disabled</string>
<string name="refresh_intervals_1h">1 hour</string>
diff --git a/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java b/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java
index b1b4d2d..2a84ffe 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java
@@ -49,8 +49,9 @@ public class MediaPictureDiscoverer {
*
* @param mpc The reference to the discoverer
* @param images All the images paths found
+ * @param userRequest If the user requested this media discover
*/
- void onMediaDiscovered(MediaPictureDiscoverer mpc, File[] images);
+ void onMediaDiscovered(MediaPictureDiscoverer mpc, File[] images, boolean userRequest);
}
/**
@@ -61,6 +62,7 @@ public class MediaPictureDiscoverer {
private final ContentResolver mFinalContentResolver;
private final OnMediaPictureDiscoveredListener mFinalCallback;
private final Set<String> mFilter;
+ private final boolean mUserRequest;
/**
* Constructor of <code>AsyncDiscoverTask</code>
@@ -68,13 +70,15 @@ public class MediaPictureDiscoverer {
* @param cr The {@link ContentResolver}
* @param filter The filter of pictures and albums to retrieve
* @param cb The {@link OnMediaPictureDiscoveredListener} listener
+ * @param userRequest If the request was generated by the user
*/
public AsyncDiscoverTask(ContentResolver cr, Set<String> filter,
- OnMediaPictureDiscoveredListener cb) {
+ OnMediaPictureDiscoveredListener cb, boolean userRequest) {
super();
mFinalContentResolver = cr;
mFinalCallback = cb;
mFilter = filter;
+ mUserRequest = userRequest;
}
/**
@@ -117,7 +121,8 @@ public class MediaPictureDiscoverer {
protected void onPostExecute(List<File> result) {
if (mFinalCallback != null) {
mFinalCallback.onMediaDiscovered(
- MediaPictureDiscoverer.this, result.toArray(new File[result.size()]));
+ MediaPictureDiscoverer.this, result.toArray(new File[result.size()]),
+ mUserRequest);
}
}
@@ -129,7 +134,7 @@ public class MediaPictureDiscoverer {
// Nothing found
if (mFinalCallback != null) {
mFinalCallback.onMediaDiscovered(
- MediaPictureDiscoverer.this, new File[]{});
+ MediaPictureDiscoverer.this, new File[]{}, mUserRequest);
}
}
@@ -218,12 +223,13 @@ public class MediaPictureDiscoverer {
* Method that request a new reload of the media store picture data.
*
* @param filter The filter of pictures and albums where to search images
+ * @param userRequest If the request was generated by the user
*/
- public synchronized void discover(Set<String> filter) {
+ public synchronized void discover(Set<String> filter, boolean userRequest) {
if (mTask != null && !mTask.isCancelled()) {
mTask.cancel(true);
}
- mTask = new AsyncDiscoverTask(mContext.getContentResolver(), filter, mCallback);
+ mTask = new AsyncDiscoverTask(mContext.getContentResolver(), filter, mCallback, userRequest);
mTask.execute();
}
diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java
index b056c6c..266606d 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java
@@ -98,7 +98,10 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer {
if (mediaReload) {
synchronized (mMediaSync) {
if (mTextureManager != null) {
- mTextureManager.reloadMedia();
+ boolean userReloadRequest =
+ intent.getBooleanExtra(
+ PreferencesProvider.EXTRA_ACTION_MEDIA_USER_RELOAD_REQUEST, false);
+ mTextureManager.reloadMedia(userReloadRequest);
scheduleOrCancelMediaScan();
}
}
diff --git a/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java b/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java
index ba605d7..93e0740 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java
@@ -21,6 +21,7 @@ import android.graphics.Rect;
import android.media.effect.EffectContext;
import android.opengl.GLES20;
import android.util.Log;
+import android.widget.Toast;
import org.cyanogenmod.wallpapers.photophase.FixedQueue.EmptyQueueException;
import org.cyanogenmod.wallpapers.photophase.GLESUtil.GLESTextureInfo;
@@ -134,7 +135,7 @@ public class TextureManager implements OnMediaPictureDiscoveredListener {
// Run the media discovery thread
mBackgroundTask = new BackgroundPictureLoaderThread();
mBackgroundTask.mTaskPaused = false;
- reloadMedia();
+ reloadMedia(false);
}
/**
@@ -180,11 +181,13 @@ public class TextureManager implements OnMediaPictureDiscoveredListener {
/**
* Method that reload the references of media pictures
+ *
+ * @param userRequest If the request was generated by the user
*/
- void reloadMedia() {
+ void reloadMedia(boolean userRequest) {
Log.d(TAG, "Reload media picture data");
// Discover new media
- mPictureDiscoverer.discover(Preferences.Media.getSelectedAlbums());
+ mPictureDiscoverer.discover(Preferences.Media.getSelectedAlbums(), userRequest);
}
/**
@@ -275,7 +278,8 @@ public class TextureManager implements OnMediaPictureDiscoveredListener {
* {@inheritDoc}
*/
@Override
- public void onMediaDiscovered(MediaPictureDiscoverer mpc, File[] images) {
+ @SuppressWarnings("boxing")
+ public void onMediaDiscovered(MediaPictureDiscoverer mpc, File[] images, boolean userRequest) {
// Now we have the paths of the images to use. Start a image loader
// thread to load pictures in background
mBackgroundTask.setAvailableImages(images);
@@ -288,6 +292,12 @@ public class TextureManager implements OnMediaPictureDiscoveredListener {
}
int found = images == null ? 0 : images.length;
Log.d(TAG, "Media picture data reloaded: " + found + " images found.");
+ if (userRequest) {
+ CharSequence msg =
+ String.format(mContext.getResources().getQuantityText(
+ R.plurals.msg_media_reload_complete, found).toString(), found);
+ Toast.makeText(mContext, msg, Toast.LENGTH_SHORT).show();
+ }
}
/**
@@ -375,7 +385,7 @@ public class TextureManager implements OnMediaPictureDiscoveredListener {
}
if (mNewImages.size() == 0) {
if (!mEmpty) {
- reloadMedia();
+ reloadMedia(false);
}
break;
}
diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/MediaPreferenceFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/MediaPreferenceFragment.java
index 8dd942d..5a13c4e 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/preferences/MediaPreferenceFragment.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/MediaPreferenceFragment.java
@@ -98,6 +98,7 @@ public class MediaPreferenceFragment extends PreferenceFragment {
// Request a refresh of the media data
Intent intent = new Intent(PreferencesProvider.ACTION_SETTINGS_CHANGED);
intent.putExtra(PreferencesProvider.EXTRA_FLAG_MEDIA_RELOAD, Boolean.TRUE);
+ intent.putExtra(PreferencesProvider.EXTRA_ACTION_MEDIA_USER_RELOAD_REQUEST, Boolean.TRUE);
getActivity().sendBroadcast(intent);
return true;
}
diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/PreferencesProvider.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/PreferencesProvider.java
index fd4b172..4d5be75 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/preferences/PreferencesProvider.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/PreferencesProvider.java
@@ -77,6 +77,14 @@ public final class PreferencesProvider {
public static final String EXTRA_FLAG_MEDIA_INTERVAL_CHANGED = "flag_media_interval_changed";
/**
+ * An extra setting that indicates that the media reload becomes from a user
+ *
+ * @see #EXTRA_FLAG_MEDIA_RELOAD
+ * {@hide}
+ */
+ public static final String EXTRA_ACTION_MEDIA_USER_RELOAD_REQUEST = "action_media_user_reload_req";
+
+ /**
* The shared preferences file
*/
public static final String PREFERENCES_FILE = "org.cyanogenmod.wallpapers.photophase";