diff options
12 files changed, 158 insertions, 66 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index be80054..7b7a071 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -36,52 +36,54 @@ <!-- Preferences --> <string name="pref_general">General</string> - <string name="pref_general_summary">Access to general settings, effects and transitions</string> + <string name="pref_general_summary">Access to general settings, effects and transitions.</string> <string name="pref_general_settings">Settings</string> <string name="pref_general_settings_wallpaper_dim">Wallpaper dim</string> <string name="pref_general_settings_wallpaper_dim_format">%s%%</string> - <string name="pref_general_settings_wallpaper_dim_summary">Set the brightness of the wallpaper for a better visualization and battery performance</string> + <string name="pref_general_settings_wallpaper_dim_summary">Set the brightness of the wallpaper for a better visualization and battery performance.</string> <string name="pref_general_settings_background_color">Background color</string> - <string name="pref_general_settings_background_color_summary">Set the background color of the wallpaper</string> + <string name="pref_general_settings_background_color_summary">Set the background color of the wallpaper.</string> <string name="pref_general_touch_action">Touch action</string> - <string name="pref_general_touch_action_summary">Select the action to apply when touch a frame</string> + <string name="pref_general_touch_action_summary">Select the action to apply when touch a frame.</string> <string name="pref_general_aspect_ratio_correction">Aspect ratio correction</string> - <string name="pref_general_aspect_ratio_correction_summary">Select the aspect ratio correction to apply</string> + <string name="pref_general_aspect_ratio_correction_summary">Select the aspect ratio correction to apply.</string> <string name="pref_general_transitions">Transitions</string> <string name="pref_general_transitions_types">Types</string> - <string name="pref_general_transitions_types_summary">Select the types of transition effects to be applied</string> + <string name="pref_general_transitions_types_summary">Select the types of transition effects to be applied.</string> <string name="pref_general_transitions_interval">Interval</string> - <string name="pref_general_transitions_interval_summary">Set how often are triggered the picture transitions</string> + <string name="pref_general_transitions_interval_summary">Set how often are triggered the picture transitions.</string> <string name="pref_general_transitions_interval_format">%s sec.</string> <string name="pref_general_effects">Effects</string> <string name="pref_general_effects_types">Types</string> - <string name="pref_general_effects_types_summary">Select the types of image effects to be applied to the pictures</string> + <string name="pref_general_effects_types_summary">Select the types of image effects to be applied to the pictures.</string> <string name="pref_media">Media</string> - <string name="pref_media_summary">Set the pictures and albums to be displayed, the refresh interval and other media settings</string> + <string name="pref_media_summary">Set the pictures and albums to be displayed, the refresh interval and other media settings.</string> <string name="pref_media_settings">Settings</string> <string name="pref_media_settings_refresh_interval">Refresh interval</string> <string name="pref_media_settings_refresh_interval_disable">The search of new pictures is disabled</string> - <string name="pref_media_settings_refresh_interval_summary">Search for new pictures every <xliff:g id="interval">%1$s</xliff:g></string> + <string name="pref_media_settings_refresh_interval_summary">Search for new pictures every <xliff:g id="interval">%1$s</xliff:g>.</string> <string name="pref_media_settings_refresh_now">Refresh now</string> - <string name="pref_media_settings_refresh_now_summary">Refresh the pictures and albums database right now</string> + <string name="pref_media_settings_refresh_now_summary">Refresh the pictures and albums database right now.</string> <string name="pref_media_pictures">Pictures</string> <string name="pref_media_albums">Albums</string> - <string name="pref_media_albums_summary">Set the albums and pictures that will be displayed on the wallpaper</string> + <string name="pref_media_albums_summary">Set the albums and pictures that will be displayed on the wallpaper.</string> + <string name="pref_media_auto_select_new">Auto select albums</string> + <string name="pref_media_auto_select_new_summary">Select automatically new albums when media discovery occurs.</string> <string name="pref_layout">Layout</string> - <string name="pref_layout_summary">Select how pictures are disposed on the screen</string> + <string name="pref_layout_summary">Select how pictures are disposed on the screen.</string> <string name="pref_layout_disposition">Disposition</string> <string name="pref_disposition_portrait">Portrait disposition</string> - <string name="pref_disposition_portrait_summary">Select how pictures are disposed on a portrait screen</string> + <string name="pref_disposition_portrait_summary">Select how pictures are disposed on a portrait screen.</string> <string name="pref_disposition_landscape">Landscape disposition</string> - <string name="pref_disposition_landscape_summary">Select how pictures are disposed on a landscape screen</string> + <string name="pref_disposition_landscape_summary">Select how pictures are disposed on a landscape screen.</string> <string name="pref_disposition_description">Long tap a frame to select it. Then drag \u0026 drop the borders of the frame to resize it.</string> <string name="pref_disposition_unable_delete_advise">Unable to delete the selected frame</string> <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> + <string name="pref_about_summary">PhotoPhase v<xliff:g id="version">%1$s</xliff:g>\nCopyright \u00A9 2013 The CyanogenMod Project.</string> <!-- Refresh intervals --> <string name="refresh_intervals_disabled">Disabled</string> diff --git a/res/xml/preferences_media.xml b/res/xml/preferences_media.xml index 99bd1f9..c2d65ab 100644 --- a/res/xml/preferences_media.xml +++ b/res/xml/preferences_media.xml @@ -44,7 +44,7 @@ android:key="category_pictures" android:title="@string/pref_media_pictures"> - <!-- Refresh now --> + <!-- Albums --> <Preference android:key="ui_media_albums" android:title="@string/pref_media_albums" @@ -52,6 +52,13 @@ android:fragment="org.cyanogenmod.wallpapers.photophase.preferences.ChoosePicturesFragment" android:persistent="false" /> + <!-- Auto select new albums --> + <CheckBoxPreference + android:key="ui_media_auto_select_new" + android:title="@string/pref_media_auto_select_new" + android:summary="@string/pref_media_auto_select_new_summary" + android:defaultValue="true" /> + </PreferenceCategory> </PreferenceScreen> diff --git a/src/org/cyanogenmod/wallpapers/photophase/Colors.java b/src/org/cyanogenmod/wallpapers/photophase/Colors.java index 3c3ffb9..f422498 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/Colors.java +++ b/src/org/cyanogenmod/wallpapers/photophase/Colors.java @@ -20,7 +20,7 @@ import android.content.Context; import android.content.res.Resources; import org.cyanogenmod.wallpapers.photophase.GLESUtil.GLColor; -import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider; +import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; /** * A class that defines some wallpaper GLColor colors. @@ -35,7 +35,7 @@ public class Colors { */ public static void register(Context ctx) { Resources res = ctx.getResources(); - sBackground = PreferencesProvider.Preferences.General.getBackgroundColor(); + sBackground = Preferences.General.getBackgroundColor(); sOverlay = new GLColor(res.getColor(R.color.wallpaper_overlay_color)); } diff --git a/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java b/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java index 2a84ffe..afe699d 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java +++ b/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java @@ -24,8 +24,11 @@ import android.os.AsyncTask; import android.provider.MediaStore; import android.util.Log; +import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; + import java.io.File; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -49,7 +52,7 @@ 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 + * @param userRequest If the user requested this media discovery */ void onMediaDiscovered(MediaPictureDiscoverer mpc, File[] images, boolean userRequest); } @@ -62,22 +65,27 @@ public class MediaPictureDiscoverer { private final ContentResolver mFinalContentResolver; private final OnMediaPictureDiscoveredListener mFinalCallback; private final Set<String> mFilter; + private final Set<String> mLastAlbums; + private final Set<String> mNewAlbums; + private final boolean mIsAutoSelectNewAlbums; private final boolean mUserRequest; /** * Constructor of <code>AsyncDiscoverTask</code> * * @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, boolean userRequest) { + public AsyncDiscoverTask( + ContentResolver cr, OnMediaPictureDiscoveredListener cb, boolean userRequest) { super(); mFinalContentResolver = cr; mFinalCallback = cb; - mFilter = filter; + mFilter = Preferences.Media.getSelectedMedia(); + mLastAlbums = Preferences.Media.getLastDiscorevedAlbums(); + mIsAutoSelectNewAlbums = Preferences.Media.isAutoSelectNewAlbums(); + mNewAlbums = new HashSet<String>(); mUserRequest = userRequest; } @@ -111,6 +119,10 @@ public class MediaPictureDiscoverer { // Return and empty list return new ArrayList<File>(); + } finally { + // Save the filter (could have new albums) + Preferences.Media.setSelectedMedia(mContext, mFilter); + Preferences.Media.setLastDiscorevedAlbums(mContext, mNewAlbums); } } @@ -158,8 +170,14 @@ public class MediaPictureDiscoverer { String p = c.getString(0); if (p != null) { File f = new File(p); - if (f.isFile() && f.canRead() && matchFilter(f)) { - paths.add(f); + if (f.isFile() && f.canRead()) { + // Catalog the file + catalog(f); + + // Check if is a valid filter + if (matchFilter(f)) { + paths.add(f); + } } } } @@ -200,9 +218,32 @@ public class MediaPictureDiscoverer { } return noFilter; } + + /** + * Method that catalog the file (set its album and determine if is a new album) + * + * @param f The file to catalog + */ + private void catalog(File f) { + File parent = f.getParentFile(); + String album = parent.getName(); + String albumPath = parent.getAbsolutePath(); + + // Add to new albums + mNewAlbums.add(album); + + // Is a new album? + if (!mLastAlbums.contains(album)) { + // Is in the filter? + if (mIsAutoSelectNewAlbums && !mFilter.contains(albumPath)) { + // Add the album to the selected filter + mFilter.add(parent.getAbsolutePath()); + } + } + } } - private final Context mContext; + /*package*/ final Context mContext; private final OnMediaPictureDiscoveredListener mCallback; private AsyncDiscoverTask mTask; @@ -222,14 +263,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, boolean userRequest) { + public synchronized void discover(boolean userRequest) { if (mTask != null && !mTask.isCancelled()) { mTask.cancel(true); } - mTask = new AsyncDiscoverTask(mContext.getContentResolver(), filter, mCallback, userRequest); + mTask = new AsyncDiscoverTask(mContext.getContentResolver(), mCallback, userRequest); mTask.execute(); } diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java index 266606d..1ea7bec 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java +++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java @@ -38,6 +38,7 @@ import android.util.Log; import org.cyanogenmod.wallpapers.photophase.GLESUtil.GLColor; import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider; +import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; import org.cyanogenmod.wallpapers.photophase.preferences.TouchAction; import org.cyanogenmod.wallpapers.photophase.shapes.ColorShape; import org.cyanogenmod.wallpapers.photophase.transitions.Transition; @@ -206,8 +207,8 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { mContext.registerReceiver(mSettingsChangedReceiver, filter); // Check whether the media scan is active - int interval = PreferencesProvider.Preferences.Media.getRefreshFrecuency(); - if (interval != PreferencesProvider.Preferences.Media.MEDIA_RELOAD_DISABLED) { + int interval = Preferences.Media.getRefreshFrecuency(); + if (interval != Preferences.Media.MEDIA_RELOAD_DISABLED) { // Schedule a media scan scheduleMediaScan(interval); } @@ -260,7 +261,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { public void onTouch(float x , float y) { if (mWorld != null) { // Do user action - TouchAction touchAction = PreferencesProvider.Preferences.General.getTouchAction(); + TouchAction touchAction = Preferences.General.getTouchAction(); if (touchAction.compareTo(TouchAction.NONE) == 0) { //Ignore } else { @@ -330,8 +331,8 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { } void scheduleOrCancelMediaScan() { - int interval = PreferencesProvider.Preferences.Media.getRefreshFrecuency(); - if (interval != PreferencesProvider.Preferences.Media.MEDIA_RELOAD_DISABLED) { + int interval = Preferences.Media.getRefreshFrecuency(); + if (interval != Preferences.Media.MEDIA_RELOAD_DISABLED) { scheduleMediaScan(interval); } else { cancelMediaScan(); @@ -350,7 +351,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { i.putExtra(PreferencesProvider.EXTRA_FLAG_MEDIA_RELOAD, Boolean.TRUE); mMediaScanIntent = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_CANCEL_CURRENT); - long milliseconds = PreferencesProvider.Preferences.Media.getRefreshFrecuency() * 1000L; + long milliseconds = Preferences.Media.getRefreshFrecuency() * 1000L; am.set(AlarmManager.RTC, System.currentTimeMillis() + milliseconds, mMediaScanIntent); } @@ -428,8 +429,8 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { int mh = h - AndroidHelper.calculateStatusBarHeight(mContext); Rect dimensions = new Rect(0, 0, w, mh); int cc = (orientation == Configuration.ORIENTATION_PORTRAIT) - ? PreferencesProvider.Preferences.Layout.getPortraitDisposition().size() - : PreferencesProvider.Preferences.Layout.getLandscapeDisposition().size(); + ? Preferences.Layout.getPortraitDisposition().size() + : Preferences.Layout.getLandscapeDisposition().size(); // Recycle the current texture manager and create a new one recycle(); @@ -516,7 +517,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { mWorld.deselectTransition(mMVPMatrix); mLastRunningTransition = 0; mHandler.postDelayed(mTransitionThread, - PreferencesProvider.Preferences.General.Transitions.getTransitionInterval()); + Preferences.General.Transitions.getTransitionInterval()); } } @@ -552,7 +553,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { */ private void drawOverlay() { if (mOverlay != null) { - mOverlay.setAlpha(PreferencesProvider.Preferences.General.getWallpaperDim() / 100.0f); + mOverlay.setAlpha(Preferences.General.getWallpaperDim() / 100.0f); mOverlay.draw(mMVPMatrix); } } diff --git a/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java b/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java index 93e0740..c538199 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java +++ b/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java @@ -27,7 +27,6 @@ import org.cyanogenmod.wallpapers.photophase.FixedQueue.EmptyQueueException; import org.cyanogenmod.wallpapers.photophase.GLESUtil.GLESTextureInfo; import org.cyanogenmod.wallpapers.photophase.MediaPictureDiscoverer.OnMediaPictureDiscoveredListener; import org.cyanogenmod.wallpapers.photophase.effects.Effects; -import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; import java.io.File; import java.util.ArrayList; @@ -186,8 +185,8 @@ public class TextureManager implements OnMediaPictureDiscoveredListener { */ void reloadMedia(boolean userRequest) { Log.d(TAG, "Reload media picture data"); - // Discover new media - mPictureDiscoverer.discover(Preferences.Media.getSelectedAlbums(), userRequest); + // Discovery new media + mPictureDiscoverer.discover(userRequest); } /** @@ -290,6 +289,8 @@ public class TextureManager implements OnMediaPictureDiscoveredListener { mBackgroundTask.mLoadSync.notify(); } } + + // Audit int found = images == null ? 0 : images.length; Log.d(TAG, "Media picture data reloaded: " + found + " images found."); if (userRequest) { diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java index 30a7bb9..eb6128c 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java +++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java @@ -36,6 +36,7 @@ import android.view.ViewGroup; import org.cyanogenmod.wallpapers.photophase.R; import org.cyanogenmod.wallpapers.photophase.animations.AlbumsFlip3dAnimationController; import org.cyanogenmod.wallpapers.photophase.model.Album; +import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; import org.cyanogenmod.wallpapers.photophase.widgets.AlbumInfo; import org.cyanogenmod.wallpapers.photophase.widgets.AlbumPictures; import org.cyanogenmod.wallpapers.photophase.widgets.CardLayout; @@ -83,7 +84,7 @@ public class ChoosePicturesFragment extends PreferenceFragment { if (DEBUG) Log.v(TAG, "\t" + p); if (p != null) { File f = new File(p); - if (f.exists() && f.isFile() && f.canRead()) { + if (f.isFile() && f.canRead()) { File path = f.getParentFile(); String name = path.getName(); if (album == null || album.getPath().compareTo(path.getAbsolutePath()) != 0) { @@ -170,7 +171,7 @@ public class ChoosePicturesFragment extends PreferenceFragment { getPreferenceManager().setSharedPreferencesMode(Context.MODE_PRIVATE); // Load the albums user selection - mOriginalSelectedAlbums = PreferencesProvider.Preferences.Media.getSelectedAlbums(); + mOriginalSelectedAlbums = Preferences.Media.getSelectedMedia(); mSelectedAlbums = new HashSet<String>(mOriginalSelectedAlbums); mSelectionChanged = false; @@ -285,7 +286,7 @@ public class ChoosePicturesFragment extends PreferenceFragment { } // Restore the preference - PreferencesProvider.Preferences.Media.setSelectedAlbums(getActivity(), mSelectedAlbums); + Preferences.Media.setSelectedMedia(getActivity(), mSelectedAlbums); mSelectionChanged = true; // Restore all the animations states @@ -319,7 +320,7 @@ public class ChoosePicturesFragment extends PreferenceFragment { ref.setSelected(true); albumPictures.updateView(ref); - PreferencesProvider.Preferences.Media.setSelectedAlbums(getActivity(), mSelectedAlbums); + Preferences.Media.setSelectedMedia(getActivity(), mSelectedAlbums); mSelectionChanged = true; } @@ -330,7 +331,7 @@ public class ChoosePicturesFragment extends PreferenceFragment { ref.setSelected(false); albumPictures.updateView(ref); - PreferencesProvider.Preferences.Media.setSelectedAlbums(getActivity(), mSelectedAlbums); + Preferences.Media.setSelectedMedia(getActivity(), mSelectedAlbums); mSelectionChanged = true; } @@ -353,7 +354,7 @@ public class ChoosePicturesFragment extends PreferenceFragment { ref.setSelected(false); albumInfo.updateView(ref); - PreferencesProvider.Preferences.Media.setSelectedAlbums(getActivity(), mSelectedAlbums); + Preferences.Media.setSelectedMedia(getActivity(), mSelectedAlbums); mSelectionChanged = true; } }); diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java index b495757..bbce169 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java +++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java @@ -29,6 +29,7 @@ import android.util.Log; import org.cyanogenmod.wallpapers.photophase.Colors; import org.cyanogenmod.wallpapers.photophase.GLESUtil.GLColor; import org.cyanogenmod.wallpapers.photophase.R; +import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; import org.cyanogenmod.wallpapers.photophase.preferences.SeekBarProgressPreference.OnDisplayProgress; import org.cyanogenmod.wallpapers.photophase.widgets.ColorPickerPreference; @@ -136,8 +137,8 @@ public class GeneralPreferenceFragment extends PreferenceFragment { mTransitionsInterval = (SeekBarProgressPreference)findPreference("ui_transition_interval"); mTransitionsInterval.setFormat(getString(R.string.pref_general_transitions_interval_format)); - int max = PreferencesProvider.Preferences.General.Transitions.MAX_TRANSITION_INTERVAL; - int min = PreferencesProvider.Preferences.General.Transitions.MIN_TRANSITION_INTERVAL; + int max = Preferences.General.Transitions.MAX_TRANSITION_INTERVAL; + int min = Preferences.General.Transitions.MIN_TRANSITION_INTERVAL; final int MAX = ((max - min) / 1000) * 2; mTransitionsInterval.setMax(MAX); mTransitionsInterval.setOnDisplayProgress(new OnDisplayProgress() { diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/LandscapeDispositionFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/LandscapeDispositionFragment.java index f30e291..77267e6 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/preferences/LandscapeDispositionFragment.java +++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/LandscapeDispositionFragment.java @@ -19,6 +19,7 @@ package org.cyanogenmod.wallpapers.photophase.preferences; import android.content.pm.ActivityInfo; import android.os.Bundle; +import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; import org.cyanogenmod.wallpapers.photophase.model.Disposition; import org.cyanogenmod.wallpapers.photophase.utils.DispositionUtil; @@ -51,7 +52,7 @@ public class LandscapeDispositionFragment extends DispositionFragment { */ @Override public List<Disposition> getUserDispositions() { - return PreferencesProvider.Preferences.Layout.getLandscapeDisposition(); + return Preferences.Layout.getLandscapeDisposition(); } /** @@ -60,7 +61,7 @@ public class LandscapeDispositionFragment extends DispositionFragment { @Override public List<Disposition> getDefaultDispositions() { return DispositionUtil.toDispositions( - PreferencesProvider.Preferences.Layout.DEFAULT_LANDSCAPE_DISPOSITION); + Preferences.Layout.DEFAULT_LANDSCAPE_DISPOSITION); } /** @@ -68,7 +69,7 @@ public class LandscapeDispositionFragment extends DispositionFragment { */ @Override public void saveDispositions(List<Disposition> dispositions) { - PreferencesProvider.Preferences.Layout.setLandscapeDisposition(getActivity(), dispositions); + Preferences.Layout.setLandscapeDisposition(getActivity(), dispositions); } /** @@ -77,7 +78,7 @@ public class LandscapeDispositionFragment extends DispositionFragment { @Override public int getRows() { // inverted - return PreferencesProvider.Preferences.Layout.getCols(); + return Preferences.Layout.getCols(); } /** @@ -86,6 +87,6 @@ public class LandscapeDispositionFragment extends DispositionFragment { @Override public int getCols() { // inverted - return PreferencesProvider.Preferences.Layout.getRows(); + return Preferences.Layout.getRows(); } } diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/MediaPreferenceFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/MediaPreferenceFragment.java index 5a13c4e..f4348c6 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/preferences/MediaPreferenceFragment.java +++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/MediaPreferenceFragment.java @@ -27,6 +27,7 @@ import android.preference.PreferenceFragment; import android.util.Log; import org.cyanogenmod.wallpapers.photophase.R; +import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; /** * A fragment class with all the media settings @@ -88,7 +89,7 @@ public class MediaPreferenceFragment extends PreferenceFragment { addPreferencesFromResource(R.xml.preferences_media); mRefreshInterval = (ListPreference)findPreference("ui_media_refresh_interval"); - setRefreshIntervalSummary(PreferencesProvider.Preferences.Media.getRefreshFrecuency()); + setRefreshIntervalSummary(Preferences.Media.getRefreshFrecuency()); mRefreshInterval.setOnPreferenceChangeListener(mOnChangeListener); mRefreshNow = findPreference("ui_media_refresh_now"); diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/PortraitDispositionFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/PortraitDispositionFragment.java index 3942093..8763e1e 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/preferences/PortraitDispositionFragment.java +++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/PortraitDispositionFragment.java @@ -20,6 +20,7 @@ import android.content.pm.ActivityInfo; import android.os.Bundle; import org.cyanogenmod.wallpapers.photophase.model.Disposition; +import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; import org.cyanogenmod.wallpapers.photophase.utils.DispositionUtil; import java.util.List; @@ -51,7 +52,7 @@ public class PortraitDispositionFragment extends DispositionFragment { */ @Override public List<Disposition> getUserDispositions() { - return PreferencesProvider.Preferences.Layout.getPortraitDisposition(); + return Preferences.Layout.getPortraitDisposition(); } /** @@ -60,7 +61,7 @@ public class PortraitDispositionFragment extends DispositionFragment { @Override public List<Disposition> getDefaultDispositions() { return DispositionUtil.toDispositions( - PreferencesProvider.Preferences.Layout.DEFAULT_PORTRAIT_DISPOSITION); + Preferences.Layout.DEFAULT_PORTRAIT_DISPOSITION); } /** @@ -68,7 +69,7 @@ public class PortraitDispositionFragment extends DispositionFragment { */ @Override public void saveDispositions(List<Disposition> dispositions) { - PreferencesProvider.Preferences.Layout.setPortraitDisposition(getActivity(), dispositions); + Preferences.Layout.setPortraitDisposition(getActivity(), dispositions); } /** @@ -76,7 +77,7 @@ public class PortraitDispositionFragment extends DispositionFragment { */ @Override public int getRows() { - return PreferencesProvider.Preferences.Layout.getRows(); + return Preferences.Layout.getRows(); } /** @@ -84,6 +85,6 @@ public class PortraitDispositionFragment extends DispositionFragment { */ @Override public int getCols() { - return PreferencesProvider.Preferences.Layout.getCols(); + return Preferences.Layout.getCols(); } } diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/PreferencesProvider.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/PreferencesProvider.java index 4d5be75..c3f0736 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/preferences/PreferencesProvider.java +++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/PreferencesProvider.java @@ -307,12 +307,22 @@ public final class PreferencesProvider { } /** + * Method that returns if the app must be select new albums when they are discovered. + * + * @return boolean If the app must be select new albums when they are discovered. + */ + public static boolean isAutoSelectNewAlbums() { + return getBoolean("ui_media_auto_select_new", Boolean.TRUE); + } + + // Internal settings (non-UI) + /** * Method that returns the list of albums and pictures to be displayed * * @return Set<String> The list of albums and pictures to be displayed */ - public static Set<String> getSelectedAlbums() { - return getStringSet("ui_media_selected_albums", new HashSet<String>()); + public static Set<String> getSelectedMedia() { + return getStringSet("media_selected_media", new HashSet<String>()); } /** @@ -321,11 +331,37 @@ public final class PreferencesProvider { * @param context The current context * @param selection The new list of albums and pictures to be displayed */ - public static synchronized void setSelectedAlbums(Context context, Set<String> selection) { + public static synchronized void setSelectedMedia(Context context, Set<String> selection) { + SharedPreferences preferences = + context.getSharedPreferences(PREFERENCES_FILE, Context.MODE_PRIVATE); + Editor editor = preferences.edit(); + editor.putStringSet("media_selected_media", selection); + editor.commit(); + reload(context); + } + + /** + * Method that returns the list of the name of the albums seen by the + * last media discovery scan. + * + * @return Set<String> The list of albums and pictures to be displayed + */ + public static Set<String> getLastDiscorevedAlbums() { + return getStringSet("media_last_disvored_albums", new HashSet<String>()); + } + + /** + * Method that sets the list of the name of the albums seen by the + * last media discovery scan. + * + * @param context The current context + * @param albums The albums seen by the last media discovery scan + */ + public static synchronized void setLastDiscorevedAlbums(Context context, Set<String> albums) { SharedPreferences preferences = context.getSharedPreferences(PREFERENCES_FILE, Context.MODE_PRIVATE); Editor editor = preferences.edit(); - editor.putStringSet("ui_media_selected_albums", selection); + editor.putStringSet("media_last_disvored_albums", albums); editor.commit(); reload(context); } |