summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java18
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java38
-rw-r--r--core/src/main/res/layout/more_content_list_footer.xml32
-rw-r--r--core/src/main/res/values/attrs.xml6
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>