diff options
author | Jorge Ruesga <jorge@ruesga.com> | 2013-08-08 22:42:11 +0200 |
---|---|---|
committer | Jorge Ruesga <jorge@ruesga.com> | 2013-08-08 22:42:11 +0200 |
commit | 3d007dc962dafc76437bba8f9df0ed2401e809b5 (patch) | |
tree | 3698fd421d090162a75bfc53e397a1e2b4d4e352 | |
parent | 7ae9b377e1dc2839cc4b0c660cc07fb232f93643 (diff) | |
download | android_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>
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"; |