summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Hennen <TomHennen@users.noreply.github.com>2016-03-13 17:35:14 -0400
committerTom Hennen <TomHennen@users.noreply.github.com>2016-03-13 17:35:14 -0400
commit81d345d7fc7172062cb8674c8ca3e1144edc3bd1 (patch)
tree28bb1a57bb91df05df9d0bed1a4526bc30c839c0
parenta7ef24606962385a5b20d1c6df2dec623cc3aa69 (diff)
parent88a75159dbee70c6ceab9f196b06e6ada2d703d3 (diff)
downloadAntennaPod-81d345d7fc7172062cb8674c8ca3e1144edc3bd1.zip
Merge pull request #1764 from AntennaPod/develop
Push develop to master
-rw-r--r--app/build.gradle5
-rw-r--r--app/src/main/AndroidManifest.xml4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java48
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java3
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java6
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java1
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItunesSearchFragment.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java1
-rw-r--r--app/src/main/res/layout/queue_fragment.xml2
-rw-r--r--build.gradle6
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java10
-rw-r--r--core/src/main/res/values/styles.xml2
12 files changed, 59 insertions, 33 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 55c1080ae..240fd6f9f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -71,6 +71,7 @@ android {
versionName "${getMyVersionName()}"
testApplicationId "de.test.antennapod"
testInstrumentationRunner "de.test.antennapod.AntennaPodTestRunner"
+ generatedDensities = []
}
signingConfigs {
@@ -132,6 +133,10 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
+
+ aaptOptions {
+ additionalParameters "--no-version-vectors"
+ }
}
// about.html is templatized so that we can automatically insert
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 36067d52e..8f9275900 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.danoeh.antennapod"
- android:versionCode="1050009"
- android:versionName="1.5.0.9">
+ android:versionCode="1050104"
+ android:versionName="1.5.1.4">
<!--
Version code schema:
"1.2.3-SNAPSHOT" -> 1020300
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
index 0d878b556..81ba8169f 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
@@ -31,6 +31,8 @@ import com.bumptech.glide.Glide;
import com.joanzapata.iconify.IconDrawable;
import com.joanzapata.iconify.fonts.FontAwesomeIcons;
+import java.util.Locale;
+
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
@@ -247,6 +249,9 @@ public abstract class MediaplayerActivity extends AppCompatActivity implements O
controller.release();
}
controller = newPlaybackController();
+ if(butPlay != null) {
+ butPlay.setOnClickListener(controller.newOnPlayButtonClickListener());
+ }
}
@Override
@@ -455,9 +460,10 @@ public abstract class MediaplayerActivity extends AppCompatActivity implements O
if(controller != null && controller.canSetPlaybackSpeed()) {
float playbackSpeed = (progress + 10) / 20.0f;
controller.setPlaybackSpeed(playbackSpeed);
- String speed = String.format("%.2f", playbackSpeed);
- UserPreferences.setPlaybackSpeed(speed);
- txtvPlaybackSpeed.setText(speed + "x");
+ String speedPref = String.format(Locale.US, "%.2f", playbackSpeed);
+ UserPreferences.setPlaybackSpeed(speedPref);
+ String speedStr = String.format("%.2fx", playbackSpeed);
+ txtvPlaybackSpeed.setText(speedStr);
} else if(fromUser) {
float speed = Float.valueOf(UserPreferences.getPlaybackSpeed());
barPlaybackSpeed.post(() -> {
@@ -876,7 +882,9 @@ public abstract class MediaplayerActivity extends AppCompatActivity implements O
private void updateButPlaybackSpeed() {
if (controller != null && butPlaybackSpeed != null) {
- butPlaybackSpeed.setText(UserPreferences.getPlaybackSpeed() + "x");
+ float speed = Float.valueOf(UserPreferences.getPlaybackSpeed());
+ String speedStr = String.format("%.2fx", speed);
+ butPlaybackSpeed.setText(speedStr);
}
}
@@ -896,21 +904,25 @@ public abstract class MediaplayerActivity extends AppCompatActivity implements O
private void checkFavorite() {
Playable playable = controller.getMedia();
- if (playable != null && playable instanceof FeedMedia) {
- FeedItem feedItem = ((FeedMedia) playable).getItem();
- if (feedItem != null) {
- Observable.fromCallable(() -> DBReader.getFeedItem(feedItem.getId()))
- .subscribeOn(Schedulers.newThread())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(item -> {
- boolean isFav = item.isTagged(FeedItem.TAG_FAVORITE);
- if(isFavorite != isFav) {
- isFavorite = isFav;
- invalidateOptionsMenu();
- }
- });
- }
+ if (playable != null && playable instanceof FeedMedia) {
+ FeedItem feedItem = ((FeedMedia) playable).getItem();
+ if (feedItem != null) {
+ Observable.fromCallable(() -> DBReader.getFeedItem(feedItem.getId()))
+ .subscribeOn(Schedulers.newThread())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(
+ item -> {
+ boolean isFav = item.isTagged(FeedItem.TAG_FAVORITE);
+ if (isFavorite != isFav) {
+ isFavorite = isFav;
+ invalidateOptionsMenu();
+ }
+ }, error -> {
+ Log.e(TAG, Log.getStackTraceString(error));
+ }
+ );
}
+ }
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java
index 6d4fc6f1e..07f895468 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/AllEpisodesRecycleAdapter.java
@@ -202,7 +202,8 @@ public class AllEpisodesRecycleAdapter extends RecyclerView.Adapter<AllEpisodesR
@Override
public long getItemId(int position) {
- return position;
+ FeedItem item = itemAccess.getItem(position);
+ return item != null ? item.getId() : RecyclerView.NO_POSITION;
}
@Override
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java
index aa3368258..6cf61f90b 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java
@@ -109,6 +109,12 @@ public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdap
return selectedItem;
}
+ @Override
+ public long getItemId(int position) {
+ FeedItem item = itemAccess.getItem(position);
+ return item != null ? item.getId() : RecyclerView.NO_POSITION;
+ }
+
public int getItemCount() {
return itemAccess.getCount();
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
index 273c75240..aa2879330 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
@@ -337,6 +337,7 @@ public class AllEpisodesFragment extends Fragment {
MainActivity mainActivity = activity.get();
listAdapter = new AllEpisodesRecycleAdapter(mainActivity, itemAccess,
new DefaultActionButtonCallback(mainActivity), showOnlyNewEpisodes());
+ listAdapter.setHasStableIds(true);
recyclerView.setAdapter(listAdapter);
}
listAdapter.notifyDataSetChanged();
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItunesSearchFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItunesSearchFragment.java
index eb947dc2b..b736688b9 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItunesSearchFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItunesSearchFragment.java
@@ -124,7 +124,7 @@ public class ItunesSearchFragment extends Fragment {
} else {
gridView.setVisibility(View.GONE);
progressBar.setVisibility(View.VISIBLE);
- rx.Observable.create((Observable.OnSubscribe<String>) subscriber -> {
+ subscription = Observable.create((Observable.OnSubscribe<String>) subscriber -> {
OkHttpClient client = AntennapodHttpClient.getHttpClient();
Request.Builder httpReq = new Request.Builder()
.url(podcast.feedUrl)
@@ -233,7 +233,7 @@ public class ItunesSearchFragment extends Fragment {
butRetry.setVisibility(View.GONE);
txtvEmpty.setVisibility(View.GONE);
progressBar.setVisibility(View.VISIBLE);
- subscription = rx.Observable.create((Observable.OnSubscribe<List<Podcast>>) subscriber -> {
+ subscription = Observable.create((Observable.OnSubscribe<List<Podcast>>) subscriber -> {
String lang = Locale.getDefault().getLanguage();
String url = "https://itunes.apple.com/" + lang + "/rss/toppodcasts/limit=25/explicit=true/json";
OkHttpClient client = AntennapodHttpClient.getHttpClient();
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
index b3f6c3534..e5bb1d895 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -474,6 +474,7 @@ public class QueueFragment extends Fragment {
MainActivity activity = (MainActivity) getActivity();
recyclerAdapter = new QueueRecyclerAdapter(activity, itemAccess,
new DefaultActionButtonCallback(activity), itemTouchHelper);
+ recyclerAdapter.setHasStableIds(true);
recyclerView.setAdapter(recyclerAdapter);
}
if(queue == null || queue.size() == 0) {
diff --git a/app/src/main/res/layout/queue_fragment.xml b/app/src/main/res/layout/queue_fragment.xml
index 901ac49fc..71bf16d30 100644
--- a/app/src/main/res/layout/queue_fragment.xml
+++ b/app/src/main/res/layout/queue_fragment.xml
@@ -23,7 +23,7 @@
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
+ android:layout_height="match_parent"
android:layout_below="@id/divider"
android:scrollbars="vertical"/>
diff --git a/build.gradle b/build.gradle
index 53ea77e5d..bb67ec17e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -41,7 +41,7 @@ project.ext {
minSdkVersion = 10
targetSdkVersion = 23
- supportVersion = "23.1.1"
+ supportVersion = "23.2.0"
commonsioVersion = "2.4"
commonslangVersion = "3.4"
eventbusVersion = "2.4.0"
@@ -49,7 +49,7 @@ project.ext {
glideVersion = "3.6.1"
iconifyVersion = "2.1.1"
jsoupVersion = "1.7.3"
- materialDialogsVersion = "0.8.5.3@aar"
+ materialDialogsVersion = "0.8.5.6@aar"
okhttpVersion = "2.7.4"
okioVersion = "1.6.0"
recyclerviewFlexibledividerVersion = "1.2.6"
@@ -57,7 +57,7 @@ project.ext {
rxJavaVersion = "1.1.0"
rxJavaRulesVersion = "1.1.0.0"
- audioPlayerVersion = "v1.0.12"
+ audioPlayerVersion = "v1.0.14"
}
task wrapper(type: Wrapper) {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java
index 6b0f423df..155ef519b 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java
@@ -19,14 +19,8 @@ public class DateUtils {
private static final String TAG = "DateUtils";
- private static final SimpleDateFormat parser = new SimpleDateFormat("", Locale.US);
private static final TimeZone defaultTimezone = TimeZone.getTimeZone("GMT");
- static {
- parser.setLenient(false);
- parser.setTimeZone(defaultTimezone);
- }
-
public static Date parse(final String input) {
if(input == null) {
throw new IllegalArgumentException("Date must not be null");
@@ -86,6 +80,10 @@ public class DateUtils {
"yyyy-MM-dd"
};
+ SimpleDateFormat parser = new SimpleDateFormat("", Locale.US);
+ parser.setLenient(false);
+ parser.setTimeZone(defaultTimezone);
+
ParsePosition pos = new ParsePosition(0);
for(String pattern : patterns) {
parser.applyPattern(pattern);
diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml
index c4a731a53..d79ba6b45 100644
--- a/core/src/main/res/values/styles.xml
+++ b/core/src/main/res/values/styles.xml
@@ -63,6 +63,7 @@
<style name="Theme.AntennaPod.Dark" parent="Theme.AppCompat">
<item name="colorAccent">@color/holo_blue_dark</item>
+ <item name="colorControlNormal">@color/white</item>
<item name="buttonStyle">@style/Widget.AntennaPod.Button</item>
<item name="progressBarTheme">@style/ProgressBarDark</item>
<item name="alertDialogTheme">@style/AntennaPod.Dialog.Dark</item>
@@ -186,6 +187,7 @@
<item name="windowActionModeOverlay">true</item>
<item name="progressBarTheme">@style/ProgressBarDark</item>
<item name="colorAccent">@color/holo_blue_dark</item>
+ <item name="colorControlNormal">@color/white</item>
<item name="buttonStyle">@style/Widget.AntennaPod.Button</item>
<item name="alertDialogTheme">@style/AntennaPod.Dialog.Dark</item>
<item name="attr/action_about">@drawable/ic_info_white_24dp</item>