aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/drawable-hdpi/ic_invert.pngbin0 -> 480 bytes
-rw-r--r--res/drawable-mdpi/ic_invert.pngbin0 -> 365 bytes
-rw-r--r--res/drawable-xhdpi/ic_invert.pngbin0 -> 571 bytes
-rw-r--r--res/menu/albums.xml4
-rw-r--r--res/values/strings.xml1
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/MediaPictureDiscoverer.java3
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java34
7 files changed, 41 insertions, 1 deletions
diff --git a/res/drawable-hdpi/ic_invert.png b/res/drawable-hdpi/ic_invert.png
new file mode 100644
index 0000000..64853cb
--- /dev/null
+++ b/res/drawable-hdpi/ic_invert.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_invert.png b/res/drawable-mdpi/ic_invert.png
new file mode 100644
index 0000000..1690930
--- /dev/null
+++ b/res/drawable-mdpi/ic_invert.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_invert.png b/res/drawable-xhdpi/ic_invert.png
new file mode 100644
index 0000000..a192743
--- /dev/null
+++ b/res/drawable-xhdpi/ic_invert.png
Binary files differ
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++) {