diff options
Diffstat (limited to 'core/src/main')
5 files changed, 46 insertions, 50 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java index 0ec325e85..b92dd217d 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java @@ -54,7 +54,6 @@ import de.danoeh.antennapod.core.event.settings.SpeedPresetChangedEvent; import de.danoeh.antennapod.core.event.settings.VolumeAdaptionChangedEvent; import de.danoeh.antennapod.core.feed.Chapter; import de.danoeh.antennapod.core.feed.Feed; -import de.danoeh.antennapod.core.feed.FeedComponent; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.feed.MediaType; @@ -1649,18 +1648,11 @@ public class PlaybackService extends MediaBrowserServiceCompat { public void onPlayFromSearch(String query, Bundle extras) { Log.d(TAG, "onPlayFromSearch query=" + query + " extras=" + extras.toString()); - List<FeedComponent> results = FeedSearcher.performSearch(getBaseContext(), query, 0); - for (FeedComponent result : results) { - if (result instanceof FeedItem) { - try { - FeedMedia media = ((FeedItem) result).getMedia(); - mediaPlayer.playMediaObject(media, !media.localFileAvailable(), true, true); - return; - } catch (Exception e) { - Log.d(TAG, e.getMessage()); - e.printStackTrace(); - } - } + List<FeedItem> results = FeedSearcher.searchFeedItems(getBaseContext(), query, 0); + if (results.size() > 0 && results.get(0).getMedia() != null) { + FeedMedia media = results.get(0).getMedia(); + mediaPlayer.playMediaObject(media, !media.localFileAvailable(), true, true); + return; } onPlay(); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java index bbd7bbcf1..a8cc6cbee 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java @@ -126,8 +126,6 @@ public class DBWriter { } } EventBus.getDefault().post(FeedItemEvent.deletedMedia(Collections.singletonList(media.getItem()))); - EventBus.getDefault().post(new UnreadItemsUpdateEvent()); - return true; } diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java b/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java index 77c8d3b7f..9d75231d0 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java @@ -7,6 +7,7 @@ import de.danoeh.antennapod.core.feed.FeedComponent; import de.danoeh.antennapod.core.feed.FeedItem; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; @@ -19,32 +20,25 @@ public class FeedSearcher { } - /** - * Search through a feed, or all feeds, for episodes that match the query in either the title, - * chapter, or show notes. The search is first performed on titles, then chapters, and finally - * show notes. The list of resulting episodes also describes where the first match occurred - * (title, chapters, or show notes). - * - * @param context Used for database access - * @param query search query - * @param selectedFeed feed to search, 0 to search through all feeds - * @return list of episodes containing the query - */ @NonNull - public static List<FeedComponent> performSearch(final Context context, final String query, final long selectedFeed) { - final List<FeedComponent> result = new ArrayList<>(); + public static List<FeedItem> searchFeedItems(final Context context, final String query, final long selectedFeed) { try { FutureTask<List<FeedItem>> itemSearchTask = DBTasks.searchFeedItems(context, selectedFeed, query); itemSearchTask.run(); - if (selectedFeed == 0) { - FutureTask<List<Feed>> feedSearchTask = DBTasks.searchFeeds(context, query); - feedSearchTask.run(); - result.addAll(feedSearchTask.get()); - } - result.addAll(itemSearchTask.get()); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); + return itemSearchTask.get(); + } catch (ExecutionException | InterruptedException e) { + return Collections.emptyList(); + } + } + + @NonNull + public static List<Feed> searchFeeds(final Context context, final String query) { + try { + FutureTask<List<Feed>> feedSearchTask = DBTasks.searchFeeds(context, query); + feedSearchTask.run(); + return feedSearchTask.get(); + } catch (ExecutionException | InterruptedException e) { + return Collections.emptyList(); } - return result; } } diff --git a/core/src/main/res/layout/more_content_list_footer.xml b/core/src/main/res/layout/more_content_list_footer.xml index bfe9e89b6..f6d6a313c 100644 --- a/core/src/main/res/layout/more_content_list_footer.xml +++ b/core/src/main/res/layout/more_content_list_footer.xml @@ -1,28 +1,36 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - android:id="@+id/main" + android:id="@+id/more_content_list_footer" android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="?attr/selectableItemBackground"> + android:layout_height="wrap_content" + android:foreground="?attr/selectableItemBackground" + android:background="?android:attr/windowBackground" + android:gravity="center" + android:padding="8dp"> <ImageView android:id="@+id/imgExpand" - android:layout_width="wrap_content" - android:layout_height="wrap_content" + android:layout_width="16dp" + android:layout_height="16dp" android:layout_gravity="center" - android:layout_margin="16dp" android:contentDescription="@string/load_next_page_label" app:srcCompat="?attr/ic_load_more" /> <ProgressBar android:id="@+id/progBar" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center" - android:layout_margin="16dp" + android:layout_width="16dp" + android:layout_height="16dp" android:indeterminateOnly="true" android:visibility="gone" /> -</FrameLayout>
\ No newline at end of file + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/load_next_page_label" + android:textColor="?android:attr/textColorPrimary" + android:layout_marginLeft="8dp" + android:layout_marginRight="8dp"/> + +</LinearLayout>
\ No newline at end of file diff --git a/core/src/main/res/values/attrs.xml b/core/src/main/res/values/attrs.xml index 44f112614..471e31439 100644 --- a/core/src/main/res/values/attrs.xml +++ b/core/src/main/res/values/attrs.xml @@ -57,6 +57,10 @@ <attr name="action_icon_color" format="color"/> <declare-styleable name="SquareImageView"> - <attr name="useMinimum" format="boolean" /> + <attr name="direction" format="enum"> + <enum name="width" value="0"/> + <enum name="height" value="1"/> + <enum name="minimum" value="2"/> + </attr> </declare-styleable> </resources> |