From 294fa3a20a2ec70adbaa8a25d1d1664c1105b343 Mon Sep 17 00:00:00 2001 From: Jorge Ruesga Date: Sun, 13 Oct 2013 01:46:20 +0200 Subject: Improve times for filter media discover Signed-off-by: Jorge Ruesga --- .../photophase/MediaPictureDiscoverer.java | 39 ++++++---------------- .../wallpapers/photophase/PhotoPhaseRenderer.java | 2 +- .../preferences/ChoosePicturesFragment.java | 3 ++ 3 files changed, 15 insertions(+), 29 deletions(-) (limited to 'src') diff --git a/src/com/ruesga/android/wallpapers/photophase/MediaPictureDiscoverer.java b/src/com/ruesga/android/wallpapers/photophase/MediaPictureDiscoverer.java index 297bb20..c2aa116 100644 --- a/src/com/ruesga/android/wallpapers/photophase/MediaPictureDiscoverer.java +++ b/src/com/ruesga/android/wallpapers/photophase/MediaPictureDiscoverer.java @@ -30,7 +30,6 @@ import com.ruesga.android.wallpapers.photophase.preferences.PreferencesProvider. import java.io.File; import java.util.ArrayList; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Set; @@ -190,6 +189,7 @@ public class MediaPictureDiscoverer { */ private List getPictures( Uri uri, String[] projection, String where, String[] args) { + long start = System.currentTimeMillis(); List paths = new ArrayList(); List partial = new ArrayList(); Cursor c = mFinalContentResolver.query(uri, projection, where, args, null); @@ -201,15 +201,12 @@ public class MediaPictureDiscoverer { String p = c.getString(0); if (p != null) { File f = new File(p); - if (f.isFile() && f.canRead()) { - // Catalog the file - catalog(f); - - // Check if is a valid filter - if (matchFilter(f)) { - paths.add(f); - partial.add(f); - } + catalog(f); + + // Check if is a valid filter + if (matchFilter(f)) { + paths.add(f); + partial.add(f); } } @@ -228,6 +225,8 @@ public class MediaPictureDiscoverer { } } } + long end = System.currentTimeMillis(); + if (DEBUG) Log.v(TAG, "Media reloaded in " + (end - start) + " miliseconds"); return paths; } @@ -238,24 +237,8 @@ public class MediaPictureDiscoverer { * @return boolean whether the picture match the filter */ private boolean matchFilter(File picture) { - Iterator it = mFilter.iterator(); - boolean noFilter = true; - while (it.hasNext()) { - noFilter = false; - File filter = new File(it.next()); - if (filter.isDirectory()) { - // Album match - if (filter.compareTo(picture.getParentFile()) == 0) { - return true; - } - } else { - // Picture match - if (filter.compareTo(picture) == 0) { - return true; - } - } - } - return noFilter; + return mFilter.contains(picture.getAbsolutePath()) || + mFilter.contains(picture.getParentFile().getAbsolutePath()); } /** diff --git a/src/com/ruesga/android/wallpapers/photophase/PhotoPhaseRenderer.java b/src/com/ruesga/android/wallpapers/photophase/PhotoPhaseRenderer.java index b703342..b68b3b6 100644 --- a/src/com/ruesga/android/wallpapers/photophase/PhotoPhaseRenderer.java +++ b/src/com/ruesga/android/wallpapers/photophase/PhotoPhaseRenderer.java @@ -147,7 +147,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer { // Select a new transition mWorld.selectRandomTransition(); mLastRunningTransition = System.currentTimeMillis(); - + // Now force continuously render while transition is applied mDispatcher.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY); } catch (Throwable ex) { diff --git a/src/com/ruesga/android/wallpapers/photophase/preferences/ChoosePicturesFragment.java b/src/com/ruesga/android/wallpapers/photophase/preferences/ChoosePicturesFragment.java index 89905ef..0179e8b 100644 --- a/src/com/ruesga/android/wallpapers/photophase/preferences/ChoosePicturesFragment.java +++ b/src/com/ruesga/android/wallpapers/photophase/preferences/ChoosePicturesFragment.java @@ -82,6 +82,7 @@ public class ChoosePicturesFragment extends PreferenceFragment implements OnEndS MediaStore.MediaColumns.DATA); if (c != null) { try { + long start = System.currentTimeMillis(); if (DEBUG) Log.v(TAG, "Media library:"); while (c.moveToNext()) { // Only valid files (those i can read) @@ -119,6 +120,8 @@ public class ChoosePicturesFragment extends PreferenceFragment implements OnEndS mAlbums.add(album); mOriginalAlbums.add((Album)album.clone()); } + long end = System.currentTimeMillis(); + if (DEBUG) Log.v(TAG, "Library loaded in " + (end - start) + " miliseconds"); } finally { c.close(); -- cgit v1.2.3