diff options
-rw-r--r-- | res/drawable-hdpi/ic_invert.png | bin | 0 -> 480 bytes | |||
-rw-r--r-- | res/drawable-mdpi/ic_invert.png | bin | 0 -> 365 bytes | |||
-rw-r--r-- | res/drawable-xhdpi/ic_invert.png | bin | 0 -> 571 bytes | |||
-rw-r--r-- | res/menu/albums.xml | 4 | ||||
-rw-r--r-- | res/values/strings.xml | 1 | ||||
-rw-r--r-- | src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java | 3 | ||||
-rw-r--r-- | src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java | 34 |
7 files changed, 41 insertions, 1 deletions
diff --git a/res/drawable-hdpi/ic_invert.png b/res/drawable-hdpi/ic_invert.png Binary files differnew file mode 100644 index 0000000..64853cb --- /dev/null +++ b/res/drawable-hdpi/ic_invert.png diff --git a/res/drawable-mdpi/ic_invert.png b/res/drawable-mdpi/ic_invert.png Binary files differnew file mode 100644 index 0000000..1690930 --- /dev/null +++ b/res/drawable-mdpi/ic_invert.png diff --git a/res/drawable-xhdpi/ic_invert.png b/res/drawable-xhdpi/ic_invert.png Binary files differnew file mode 100644 index 0000000..a192743 --- /dev/null +++ b/res/drawable-xhdpi/ic_invert.png diff --git a/res/menu/albums.xml b/res/menu/albums.xml index ec699a3..b2c5cb8 100644 --- a/res/menu/albums.xml +++ b/res/menu/albums.xml @@ -15,6 +15,10 @@ --> <menu xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:id="@+id/mnu_invert_all" + android:title="@string/mnu_invert_all" + android:icon="@drawable/ic_invert" + android:showAsAction="ifRoom|withText" /> <item android:id="@+id/mnu_restore" android:title="@string/mnu_restore" android:icon="@drawable/ic_restore" diff --git a/res/values/strings.xml b/res/values/strings.xml index e9708d3..13d0342 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -33,6 +33,7 @@ <string name="mnu_settings">Settings</string> <string name="mnu_select_all">Select all</string> <string name="mnu_deselect_all">Deselect all</string> + <string name="mnu_invert_all">Invert all</string> <string name="mnu_invert_selection">Invert selection</string> <string name="mnu_select_album">Select album</string> <string name="mnu_deselect_album">Deselect album</string> diff --git a/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java b/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java index 0c9ec0f..99f7f0a 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java +++ b/src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java @@ -111,6 +111,9 @@ public class MediaPictureDiscoverer { // Start progress publishProgress(new File[]{}); + // If no filters then do search for pictures + if (mFilter.isEmpty()) return new ArrayList<File>(); + // The columns to read final String[] projection = {MediaStore.MediaColumns.DATA}; diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java index 72a0fed..9d85ef9 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java +++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java @@ -121,7 +121,6 @@ public class ChoosePicturesFragment extends PreferenceFragment { c.close(); } } -//this.publishProgress(mAlbums.toArray(new Album[mAlbums.size()])); return null; } @@ -255,6 +254,9 @@ public class ChoosePicturesFragment extends PreferenceFragment { case R.id.mnu_restore: restoreData(); return true; + case R.id.mnu_invert_all: + invertAll(); + return true; default: return super.onOptionsItemSelected(item); } @@ -271,6 +273,36 @@ public class ChoosePicturesFragment extends PreferenceFragment { mAlbums.add((Album)album.clone()); } + // Update all the views + Preferences.Media.setSelectedMedia(getActivity(), mSelectedAlbums); + updateAll(); + } + + /** + * Method that inverts the selection of all the albums + */ + private void invertAll() { + // Restore and the albums the selection + mSelectedAlbums = new HashSet<String>(); + for (Album album : mAlbums) { + album.setSelected(!album.isSelected()); + album.setSelectedItems(new ArrayList<String>()); + if (album.isSelected()) { + mSelectedAlbums.add(album.getPath()); + } else { + mSelectedAlbums.addAll(album.getSelectedItems()); + } + } + + // Update all the views + Preferences.Media.setSelectedMedia(getActivity(), mSelectedAlbums); + updateAll(); + } + + /** + * Method that updates the current state of all the albums + */ + private void updateAll() { // Update every view (albums and views should have the same size) int count = mAlbumsPanel.getChildCount(); for (int i = 0; i < count; i++) { |