From 4bd4fb700a93ebb6db2b61b6f0c4f3e3376505a2 Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Sun, 26 Aug 2018 16:47:22 +0200 Subject: [PATCH] Really fix file picker. --- .../ch/blinkenlights/android/vanilla/FileSystemAdapter.java | 4 +++- .../android/vanilla/SlidingPlaybackActivity.java | 2 +- .../java/ch/blinkenlights/android/vanilla/SongTimeline.java | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/FileSystemAdapter.java b/app/src/main/java/ch/blinkenlights/android/vanilla/FileSystemAdapter.java index 6290b2ee..c4f2f17c 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/FileSystemAdapter.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/FileSystemAdapter.java @@ -440,8 +440,10 @@ public class FileSystemAdapter */ public void onItemClicked(Intent intent) { boolean isFolder = intent.getBooleanExtra(LibraryAdapter.DATA_EXPANDABLE, false); + boolean isHeader = intent.getLongExtra(LibraryAdapter.DATA_ID, LibraryAdapter.INVALID_ID) + == LibraryAdapter.HEADER_ID; - if (FileUtils.canDispatchIntent(intent) && FileUtils.dispatchIntent(mActivity, intent)) + if (!isHeader && FileUtils.canDispatchIntent(intent) && FileUtils.dispatchIntent(mActivity, intent)) return; if (isFolder) { diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java b/app/src/main/java/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java index 00750129..7a1ea185 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/SlidingPlaybackActivity.java @@ -248,7 +248,7 @@ public class SlidingPlaybackActivity extends PlaybackActivity query = allSource.buildSongQuery(projection); query.data = id; } else if (type == MediaUtils.TYPE_FILE) { - query = MediaUtils.buildFileQuery(intent.getStringExtra(LibraryAdapter.DATA_FILE), projection, false /* recursive */); + query = MediaUtils.buildFileQuery(intent.getStringExtra(LibraryAdapter.DATA_FILE), projection, true /* recursive */); } else { query = MediaUtils.buildQuery(type, id, projection, null); } diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/SongTimeline.java b/app/src/main/java/ch/blinkenlights/android/vanilla/SongTimeline.java index 7b8ff68e..918f114a 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/SongTimeline.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/SongTimeline.java @@ -749,7 +749,11 @@ public final class SongTimeline { int added = 0; // Items actually added to the queue if (count == 0 && type == MediaUtils.TYPE_FILE && query.selectionArgs.length == 1) { + // This seems to be a simple file query which lead to no results. + // Assume that this was a LIKE query for an unindexed file, so drop the '%' char + // at the end and return a fileCursor for it. String pathQuery = query.selectionArgs[0]; + pathQuery = pathQuery.substring(0,pathQuery.length()-1); cursor.close(); // close old version cursor = MediaUtils.getCursorForFileQuery(pathQuery); count = cursor.getCount();