From 3ee412a560a9ede3cb3e2e6042af6fc8dbf1fe6a Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Sun, 4 Nov 2018 20:44:39 +0100 Subject: Prevent NPE --- .../de/danoeh/antennapod/core/service/playback/PlaybackService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'core/src/main/java/de') 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 041f1a809..68c9ac0ce 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 @@ -1096,7 +1096,7 @@ public class PlaybackService extends MediaBrowserServiceCompat { } else { state = PlaybackStateCompat.STATE_NONE; } - sessionState.setState(state, mediaPlayer.getPosition(), mediaPlayer.getPlaybackSpeed()); + sessionState.setState(state, getCurrentPosition(), getCurrentPlaybackSpeed()); long capabilities = PlaybackStateCompat.ACTION_PLAY_PAUSE | PlaybackStateCompat.ACTION_REWIND | PlaybackStateCompat.ACTION_FAST_FORWARD @@ -1636,6 +1636,9 @@ public class PlaybackService extends MediaBrowserServiceCompat { } public float getCurrentPlaybackSpeed() { + if(mediaPlayer == null) { + return 1.0f; + } return mediaPlayer.getPlaybackSpeed(); } -- cgit v1.2.3 From 006204c3df3ef8c7e533efe438dd1300fb668a0b Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Wed, 7 Nov 2018 21:07:20 +0100 Subject: 2463 Disable WAL --- core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java | 1 - 1 file changed, 1 deletion(-) (limited to 'core/src/main/java/de') diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java index 8ebd8eeb5..f6cb4d401 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java @@ -334,7 +334,6 @@ public class PodDBAdapter { SQLiteDatabase newDb; try { newDb = SingletonHolder.dbHelper.getWritableDatabase(); - newDb.enableWriteAheadLogging(); } catch (SQLException ex) { Log.e(TAG, Log.getStackTraceString(ex)); newDb = SingletonHolder.dbHelper.getReadableDatabase(); -- cgit v1.2.3 From 2578d33206b69929042a7e20f993a69488f9e84a Mon Sep 17 00:00:00 2001 From: Martin Fietz Date: Wed, 7 Nov 2018 21:08:30 +0100 Subject: 2463 Do not close the database anymore --- .../antennapod/core/service/download/DownloadService.java | 5 ----- .../de/danoeh/antennapod/core/storage/PodDBAdapter.java | 13 +------------ 2 files changed, 1 insertion(+), 17 deletions(-) (limited to 'core/src/main/java/de') 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 ffbe7e7d1..ae1e9de86 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 @@ -13,8 +13,6 @@ import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; -import android.support.annotation.Nullable; import android.support.v4.app.NotificationCompat; import android.text.TextUtils; import android.util.Log; @@ -66,7 +64,6 @@ import de.danoeh.antennapod.core.storage.DBTasks; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.core.storage.DownloadRequestException; import de.danoeh.antennapod.core.storage.DownloadRequester; -import de.danoeh.antennapod.core.storage.PodDBAdapter; import de.danoeh.antennapod.core.syndication.handler.FeedHandler; import de.danoeh.antennapod.core.syndication.handler.FeedHandlerResult; import de.danoeh.antennapod.core.syndication.handler.UnsupportedFeedtypeException; @@ -251,7 +248,6 @@ public class DownloadService extends Service { public void onCreate() { Log.d(TAG, "Service started"); isRunning = true; - PodDBAdapter.getInstance().open(); // Prevent thrashing the database by opening and closing rapidly handler = new Handler(); reportQueue = Collections.synchronizedList(new ArrayList<>()); downloads = Collections.synchronizedList(new ArrayList<>()); @@ -331,7 +327,6 @@ public class DownloadService extends Service { // start auto download in case anything new has shown up DBTasks.autodownloadUndownloadedItems(getApplicationContext()); - PodDBAdapter.getInstance().close(); } private void setupNotificationBuilders() { diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java index f6cb4d401..4566df2fc 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java @@ -301,7 +301,6 @@ public class PodDBAdapter { private static Context context; private static volatile SQLiteDatabase db; - private static int counter = 0; public static void init(Context context) { PodDBAdapter.context = context.getApplicationContext(); @@ -321,9 +320,6 @@ public class PodDBAdapter { } public synchronized PodDBAdapter open() { - counter++; - Log.v(TAG, "Opening DB #" + counter); - if (db == null || !db.isOpen() || db.isReadOnly()) { db = openDb(); } @@ -342,14 +338,7 @@ public class PodDBAdapter { } public synchronized void close() { - counter--; - Log.v(TAG, "Closing DB #" + counter); - - if (counter == 0) { - Log.v(TAG, "Closing DB, really"); - db.close(); - db = null; - } + // do nothing } public static boolean deleteDatabase() { -- cgit v1.2.3 From b3fbb0ec7574cf1090bfb410589753ba8ef51bbb Mon Sep 17 00:00:00 2001 From: Petar Kukolj Date: Wed, 14 Nov 2018 16:18:58 +0100 Subject: Add configurable behavior of the back button This PR allows users to change how the back button functions. Closes #2196 Possible choices are following: - **Default** - back button functions how it currently functions (closes the app if there is nowhere to go back to) - **Open navigation drawer** - back button always opens the navigation drawer instead of closing the app - **Double tap to exit** - like default, but requires two taps to close the app - **Confirm to exit** - like default, but prompts user if they really want to exit --- .../antennapod/core/preferences/UserPreferences.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'core/src/main/java/de') diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index e6b5f9e1b..c80cfacba 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -52,6 +52,7 @@ public class UserPreferences { public static final String PREF_COMPACT_NOTIFICATION_BUTTONS = "prefCompactNotificationButtons"; public static final String PREF_LOCKSCREEN_BACKGROUND = "prefLockscreenBackground"; private static final String PREF_SHOW_DOWNLOAD_REPORT = "prefShowDownloadReport"; + private static final String PREF_BACK_BUTTON_BEHAVIOR = "prefBackButtonBehavior"; // Queue private static final String PREF_QUEUE_ADD_TO_FRONT = "prefQueueAddToFront"; @@ -809,4 +810,18 @@ public class UserPreferences { public enum VideoBackgroundBehavior { STOP, PICTURE_IN_PICTURE, CONTINUE_PLAYING } + + public enum BackButtonBehavior { + DEFAULT, OPEN_DRAWER, DOUBLE_TAP, SHOW_PROMPT + } + + public static BackButtonBehavior getBackButtonBehavior() { + switch (prefs.getString(PREF_BACK_BUTTON_BEHAVIOR, "default")) { + case "default": return BackButtonBehavior.DEFAULT; + case "drawer": return BackButtonBehavior.OPEN_DRAWER; + case "doubletap": return BackButtonBehavior.DOUBLE_TAP; + case "prompt": return BackButtonBehavior.SHOW_PROMPT; + default: return BackButtonBehavior.DEFAULT; + } + } } -- cgit v1.2.3 From 6262f98e39badde997d3e5793411a398cc062e09 Mon Sep 17 00:00:00 2001 From: Petar Kukolj Date: Thu, 15 Nov 2018 20:54:40 +0100 Subject: Add go to page option --- .../core/preferences/UserPreferences.java | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'core/src/main/java/de') diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index c80cfacba..f964fd23a 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -52,7 +52,8 @@ public class UserPreferences { public static final String PREF_COMPACT_NOTIFICATION_BUTTONS = "prefCompactNotificationButtons"; public static final String PREF_LOCKSCREEN_BACKGROUND = "prefLockscreenBackground"; private static final String PREF_SHOW_DOWNLOAD_REPORT = "prefShowDownloadReport"; - private static final String PREF_BACK_BUTTON_BEHAVIOR = "prefBackButtonBehavior"; + public static final String PREF_BACK_BUTTON_BEHAVIOR = "prefBackButtonBehavior"; + private static final String PREF_BACK_BUTTON_GO_TO_PAGE = "prefBackButtonGoToPage"; // Queue private static final String PREF_QUEUE_ADD_TO_FRONT = "prefQueueAddToFront"; @@ -812,7 +813,7 @@ public class UserPreferences { } public enum BackButtonBehavior { - DEFAULT, OPEN_DRAWER, DOUBLE_TAP, SHOW_PROMPT + DEFAULT, OPEN_DRAWER, DOUBLE_TAP, SHOW_PROMPT, GO_TO_QUEUE, GO_TO_EPISODES, GO_TO_SUBSCRIPTIONS } public static BackButtonBehavior getBackButtonBehavior() { @@ -821,7 +822,24 @@ public class UserPreferences { case "drawer": return BackButtonBehavior.OPEN_DRAWER; case "doubletap": return BackButtonBehavior.DOUBLE_TAP; case "prompt": return BackButtonBehavior.SHOW_PROMPT; + case "page": + switch (UserPreferences.getBackButtonGoToPage()) { + case 0: return BackButtonBehavior.GO_TO_QUEUE; + case 1: return BackButtonBehavior.GO_TO_EPISODES; + case 2: return BackButtonBehavior.GO_TO_SUBSCRIPTIONS; + default: return BackButtonBehavior.GO_TO_QUEUE; + } default: return BackButtonBehavior.DEFAULT; } } + + public static int getBackButtonGoToPage() { + return prefs.getInt(PREF_BACK_BUTTON_GO_TO_PAGE, 0); + } + + public static void setBackButtonGoToPage(int page) { + prefs.edit() + .putInt(PREF_BACK_BUTTON_GO_TO_PAGE, page) + .apply(); + } } -- cgit v1.2.3 From 0d1b9c4c55436ae77bbd3067f4eb839a71c20934 Mon Sep 17 00:00:00 2001 From: Petar Kukolj Date: Sat, 17 Nov 2018 20:13:35 +0100 Subject: Use fragment tags instead of position indexes for saving chosen fragment --- .../antennapod/core/preferences/UserPreferences.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'core/src/main/java/de') diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index f964fd23a..c44999c88 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -813,7 +813,7 @@ public class UserPreferences { } public enum BackButtonBehavior { - DEFAULT, OPEN_DRAWER, DOUBLE_TAP, SHOW_PROMPT, GO_TO_QUEUE, GO_TO_EPISODES, GO_TO_SUBSCRIPTIONS + DEFAULT, OPEN_DRAWER, DOUBLE_TAP, SHOW_PROMPT, GO_TO_PAGE } public static BackButtonBehavior getBackButtonBehavior() { @@ -822,24 +822,18 @@ public class UserPreferences { case "drawer": return BackButtonBehavior.OPEN_DRAWER; case "doubletap": return BackButtonBehavior.DOUBLE_TAP; case "prompt": return BackButtonBehavior.SHOW_PROMPT; - case "page": - switch (UserPreferences.getBackButtonGoToPage()) { - case 0: return BackButtonBehavior.GO_TO_QUEUE; - case 1: return BackButtonBehavior.GO_TO_EPISODES; - case 2: return BackButtonBehavior.GO_TO_SUBSCRIPTIONS; - default: return BackButtonBehavior.GO_TO_QUEUE; - } + case "page": return BackButtonBehavior.GO_TO_PAGE; default: return BackButtonBehavior.DEFAULT; } } - public static int getBackButtonGoToPage() { - return prefs.getInt(PREF_BACK_BUTTON_GO_TO_PAGE, 0); + public static String getBackButtonGoToPage() { + return prefs.getString(PREF_BACK_BUTTON_GO_TO_PAGE, "QueueFragment"); } - public static void setBackButtonGoToPage(int page) { + public static void setBackButtonGoToPage(String tag) { prefs.edit() - .putInt(PREF_BACK_BUTTON_GO_TO_PAGE, page) + .putString(PREF_BACK_BUTTON_GO_TO_PAGE, tag) .apply(); } } -- cgit v1.2.3