summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java8
-rw-r--r--app/src/main/res/layout/nav_list.xml23
-rw-r--r--app/src/main/res/layout/subscription_item.xml19
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java9
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java24
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/comparator/SearchResultValueComparator.java15
-rw-r--r--gradle/wrapper/gradle-wrapper.properties4
8 files changed, 53 insertions, 51 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java
index 818b3a625..7f1d3075f 100644
--- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java
+++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java
@@ -43,6 +43,8 @@ import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -748,6 +750,12 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc
List<WifiConfiguration> networks = wifiservice.getConfiguredNetworks();
if (networks != null) {
+ Collections.sort(networks, new Comparator<WifiConfiguration>() {
+ @Override
+ public int compare(WifiConfiguration x, WifiConfiguration y) {
+ return x.SSID.compareTo(y.SSID);
+ }
+ });
selectedNetworks = new CheckBoxPreference[networks.size()];
List<String> prefValues = Arrays.asList(UserPreferences
.getAutodownloadSelectedNetworks());
diff --git a/app/src/main/res/layout/nav_list.xml b/app/src/main/res/layout/nav_list.xml
index 9fcf9d9fc..7e72bb39b 100644
--- a/app/src/main/res/layout/nav_list.xml
+++ b/app/src/main/res/layout/nav_list.xml
@@ -1,7 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<RelativeLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
+<?xml version='1.0' encoding='utf-8'?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_layout"
android:layout_width="@dimen/drawer_width"
@@ -23,8 +21,6 @@
android:id="@+id/imgvCover"
android:layout_width="@dimen/thumbnail_length_navlist"
android:layout_height="@dimen/thumbnail_length_navlist"
- android:layout_alignParentLeft="true"
- android:layout_centerVertical="true"
android:layout_marginBottom="4dp"
android:layout_marginLeft="@dimen/listitem_icon_leftpadding"
android:layout_marginTop="4dp"
@@ -34,8 +30,8 @@
android:padding="8dp"
android:scaleType="centerCrop"
android:src="?attr/ic_settings"
- tools:src="@android:drawable/sym_def_app_icon"
- tools:background="@android:color/holo_orange_dark" />
+ tools:background="@android:color/holo_orange_dark"
+ tools:src="@android:drawable/sym_def_app_icon"></ImageView>
<TextView
android:layout_width="wrap_content"
@@ -47,16 +43,15 @@
android:text="@string/settings_label"
android:textColor="?android:attr/textColorPrimary"
android:textSize="@dimen/text_size_navdrawer"
- tools:background="@android:color/holo_green_light"/>
-
+ tools:background="@android:color/holo_green_light" />
</LinearLayout>
<View
android:id="@+id/divider"
android:layout_width="@dimen/drawer_width"
android:layout_height="1dp"
- android:layout_centerVertical="true"
android:layout_above="@id/nav_settings"
+ android:layout_centerVertical="true"
android:background="?android:attr/listDivider"
tools:background="@android:color/holo_red_dark" />
@@ -64,7 +59,6 @@
android:id="@+id/nav_list"
android:layout_width="@dimen/drawer_width"
android:layout_height="wrap_content"
- android:layout_weight="1"
android:layout_above="@id/divider"
android:layout_alignParentTop="true"
android:choiceMode="singleChoice"
@@ -74,7 +68,6 @@
android:paddingBottom="@dimen/list_vertical_padding"
android:paddingTop="@dimen/list_vertical_padding"
android:scrollbarStyle="outsideOverlay"
- tools:listitem="@layout/nav_listitem"
- tools:background="@android:color/holo_purple" />
-
+ tools:background="@android:color/holo_purple"
+ tools:listitem="@layout/nav_listitem"></ListView>
</RelativeLayout>
diff --git a/app/src/main/res/layout/subscription_item.xml b/app/src/main/res/layout/subscription_item.xml
index 19b9943e4..8f0539dfa 100644
--- a/app/src/main/res/layout/subscription_item.xml
+++ b/app/src/main/res/layout/subscription_item.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version='1.0' encoding='utf-8'?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
@@ -10,31 +10,28 @@
android:id="@+id/imgvCover"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
- android:layout_centerHorizontal="true"
- android:layout_centerVertical="true"
android:scaleType="centerCrop"
- tools:src="@drawable/ic_launcher" />
+ tools:src="@drawable/ic_launcher">
+ </de.danoeh.antennapod.view.SquareImageView>
<com.joanzapata.iconify.widget.IconTextView
android:id="@+id/txtvTitle"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="@color/light_gray"
android:ellipsize="end"
android:gravity="center"
- android:background="@color/light_gray"
tools:text="@string/app_name" />
<jp.shts.android.library.TriangleLabelView
android:id="@+id/triangleCountView"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_alignParentRight="true"
- android:layout_alignParentTop="true"
+ android:layout_gravity="right|top"
app:backgroundColor="@color/antennapod_blue"
app:corner="rightTop"
app:primaryText="Test"
app:primaryTextColor="@color/white"
- app:primaryTextSize="12sp"
- android:layout_gravity="right|top"/>
-
+ app:primaryTextSize="12sp">
+ </jp.shts.android.library.TriangleLabelView>
</FrameLayout>
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
index 3277c2469..9ac459394 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
@@ -842,11 +842,14 @@ public class DownloadService extends Service {
successful = false;
reason = DownloadError.ERROR_PARSER_EXCEPTION;
reasonDetailed = e.getMessage();
+ } finally {
+ File feedFile = new File(request.getDestination());
+ if(feedFile.exists()) {
+ boolean deleted = feedFile.delete();
+ Log.d(TAG, "Deletion of file '" + feedFile.getAbsolutePath() + "' " + (deleted ? "successful" : "FAILED"));
+ }
}
- // cleanup();
-
-
if (successful) {
// we create a 'successful' download log if the feed's last refresh failed
List<DownloadStatus> log = DBReader.getFeedDownloadLog(feed);
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 39d79e521..0f7d7265e 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
@@ -1433,7 +1433,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
* Pauses playback if PREF_PAUSE_ON_HEADSET_DISCONNECT was set to true.
*/
private void pauseIfPauseOnDisconnect() {
- if (UserPreferences.isPauseOnHeadsetDisconnect()) {
+ if (UserPreferences.isPauseOnHeadsetDisconnect() && !isCasting()) {
if (mediaPlayer.getPlayerStatus() == PlayerStatus.PLAYING) {
transientPause = 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 9d136273c..48e574069 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
@@ -4,7 +4,9 @@ import android.content.Context;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
@@ -51,15 +53,17 @@ public class FeedSearcher {
task.run();
}
try {
+ Set<Long> set = new HashSet<>();
+
for (int i = 0; i < tasks.size(); i++) {
FutureTask<List<FeedItem>> task = tasks.get(i);
List<FeedItem> items = task.get();
for (FeedItem item : items) {
- if (result.isEmpty() || !isDuplicate(result, item)) {
+ if (!set.contains(item.getId())) { // to prevent duplicate results
result.add(new SearchResult(item, values[i], subtitles[i]));
+ set.add(item.getId());
}
}
-
}
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
@@ -67,20 +71,4 @@ public class FeedSearcher {
Collections.sort(result, new SearchResultValueComparator());
return result;
}
-
- /**
- * Determines if the feed item is already in the search result list.
- *
- * @param result list of search results
- * @param item feed item to validate
- * @return true if the feed item is already in the results
- */
- private static boolean isDuplicate(List<SearchResult> result, FeedItem item) {
- for (SearchResult resultItem : result) {
- if (resultItem.getComponent().getId() == item.getId()) {
- return true;
- }
- }
- return false;
- }
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/SearchResultValueComparator.java b/core/src/main/java/de/danoeh/antennapod/core/util/comparator/SearchResultValueComparator.java
index b16e0949d..d23901a45 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/SearchResultValueComparator.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/comparator/SearchResultValueComparator.java
@@ -1,14 +1,27 @@
package de.danoeh.antennapod.core.util.comparator;
+import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.SearchResult;
import java.util.Comparator;
public class SearchResultValueComparator implements Comparator<SearchResult> {
+ /**
+ * Compare items based, first, on where they were found (ie. title, chapters, or show notes).
+ * If they were found in the same section, then compare based on the title, in lexicographic
+ * order. This is still not ideal since, for example, "#12 Example A" would be considered
+ * before "#8 Example B" due to the fact that "8" has a larger unicode value than "1"
+ */
@Override
public int compare(SearchResult lhs, SearchResult rhs) {
- return rhs.getValue() - lhs.getValue();
+ int value = rhs.getValue() - lhs.getValue();
+ if (value == 0 && lhs.getComponent() instanceof FeedItem && rhs.getComponent() instanceof FeedItem) {
+ String lhsTitle = ((FeedItem) lhs.getComponent()).getTitle();
+ String rhsTitle = ((FeedItem) rhs.getComponent()).getTitle();
+ return lhsTitle.compareTo(rhsTitle);
+ }
+ return value;
}
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index daa995e8e..708d4146c 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sat Dec 03 12:40:10 CET 2016
+#Sun Apr 09 19:45:51 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.2.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-bin.zip