summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/values/strings.xml5
-rw-r--r--res/xml/preferences.xml12
-rw-r--r--src/de/danoeh/antennapod/preferences/UserPreferences.java31
-rw-r--r--src/de/danoeh/antennapod/service/playback/PlaybackService.java17
4 files changed, 60 insertions, 5 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 404d63697..328c5efce 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -251,6 +251,11 @@
<string name="pref_seek_delta_sum">Seek this many seconds when rewinding or fast-forwarding</string>
<string name="pref_gpodnet_sethostname_title">Set hostname</string>
<string name="pref_gpodnet_sethostname_use_default_host">Use default host</string>
+ <string name="pref_expandNotify_title">Expand Notification</string>
+ <string name="pref_expandNotify_sum">Always expand the notification to show playback buttons.</string>
+ <string name="pref_persistNotify_title">Persistent Notification</string>
+ <string name="pref_persistNotify_sum">Keep notification when playback is paused.</string>
+
<!-- Auto-Flattr dialog -->
<string name="auto_flattr_enable">Enable automatic flattring</string>
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index 470e1a1fe..5175acdcb 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -9,6 +9,18 @@
android:key="prefTheme"
android:summary="@string/pref_set_theme_sum"
android:defaultValue="0"/>
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:enabled="true"
+ android:key="prefExpandNotify"
+ android:summary="@string/pref_expandNotify_sum"
+ android:title="@string/pref_expandNotify_title"/>
+ <CheckBoxPreference
+ android:defaultValue="false"
+ android:enabled="true"
+ android:key="prefPersistNotify"
+ android:summary="@string/pref_persistNotify_sum"
+ android:title="@string/pref_persistNotify_title"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/playback_pref">
<CheckBoxPreference
diff --git a/src/de/danoeh/antennapod/preferences/UserPreferences.java b/src/de/danoeh/antennapod/preferences/UserPreferences.java
index 2020ddfae..1f2d720c9 100644
--- a/src/de/danoeh/antennapod/preferences/UserPreferences.java
+++ b/src/de/danoeh/antennapod/preferences/UserPreferences.java
@@ -53,6 +53,8 @@ public class UserPreferences implements
private static final String PREF_PLAYBACK_SPEED_ARRAY = "prefPlaybackSpeedArray";
public static final String PREF_PAUSE_PLAYBACK_FOR_FOCUS_LOSS = "prefPauseForFocusLoss";
private static final String PREF_SEEK_DELTA_SECS = "prefSeekDeltaSecs";
+ private static final String PREF_EXPANDED_NOTIFICATION = "prefExpandNotify";
+ private static final String PREF_PERSISTENT_NOTIFICATION = "prefPersistNotify";
// TODO: Make this value configurable
private static final float PREF_AUTO_FLATTR_PLAYED_DURATION_THRESHOLD_DEFAULT = 0.8f;
@@ -82,6 +84,8 @@ public class UserPreferences implements
private boolean pauseForFocusLoss;
private int seekDeltaSecs;
private boolean isFreshInstall;
+ private int notifyPriority;
+ private boolean persistNotify;
private UserPreferences(Context context) {
this.context = context;
@@ -138,6 +142,13 @@ public class UserPreferences implements
PREF_PLAYBACK_SPEED_ARRAY, null));
pauseForFocusLoss = sp.getBoolean(PREF_PAUSE_PLAYBACK_FOR_FOCUS_LOSS, false);
seekDeltaSecs = Integer.valueOf(sp.getString(PREF_SEEK_DELTA_SECS, "30"));
+ if (sp.getBoolean(PREF_EXPANDED_NOTIFICATION, false)) {
+ notifyPriority = 2; // max priority
+ }
+ else {
+ notifyPriority = 0; // default priority
+ }
+ persistNotify = sp.getBoolean(PREF_PERSISTENT_NOTIFICATION, false);
}
private int readThemeValue(String valueFromPrefs) {
@@ -243,6 +254,17 @@ public class UserPreferences implements
return instance.autoFlattr;
}
+ public static int getNotifyPriority() {
+ instanceAvailable();
+ return instance.notifyPriority;
+ }
+
+ public static boolean isPersistNotify() {
+ instanceAvailable();
+ return instance.persistNotify;
+ }
+
+
/**
* Returns the time after which an episode should be auto-flattr'd in percent of the episode's
* duration.
@@ -366,6 +388,15 @@ public class UserPreferences implements
} else if (key.equals(PREF_AUTO_FLATTR_PLAYED_DURATION_THRESHOLD)) {
autoFlattrPlayedDurationThreshold = sp.getFloat(PREF_AUTO_FLATTR_PLAYED_DURATION_THRESHOLD,
PREF_AUTO_FLATTR_PLAYED_DURATION_THRESHOLD_DEFAULT);
+ } else if (key.equals(PREF_EXPANDED_NOTIFICATION)) {
+ if (sp.getBoolean(PREF_EXPANDED_NOTIFICATION, false)) {
+ notifyPriority = 2; // max priority
+ }
+ else {
+ notifyPriority = 0; // default priority
+ }
+ } else if (key.equals(PREF_PERSISTENT_NOTIFICATION)) {
+ persistNotify = sp.getBoolean(PREF_PERSISTENT_NOTIFICATION, false);
}
}
diff --git a/src/de/danoeh/antennapod/service/playback/PlaybackService.java b/src/de/danoeh/antennapod/service/playback/PlaybackService.java
index 60e39275a..49c5eca75 100644
--- a/src/de/danoeh/antennapod/service/playback/PlaybackService.java
+++ b/src/de/danoeh/antennapod/service/playback/PlaybackService.java
@@ -402,7 +402,13 @@ public class PlaybackService extends Service {
taskManager.cancelPositionSaver();
saveCurrentPosition(false, 0);
taskManager.cancelWidgetUpdater();
-// stopForeground(true); // do not remove notification on pause
+ if (UserPreferences.isPersistNotify()) {
+ // do not remove notification on pause
+ }
+ else {
+ // remove notifcation on pause
+ stopForeground(true);
+ }
break;
case STOPPED:
@@ -744,13 +750,14 @@ public class PlaybackService extends Service {
.setContentIntent(pIntent)
.setLargeIcon(icon)
.setSmallIcon(R.drawable.ic_stat_antenna)
- .addAction(android.R.drawable.ic_media_pause, //pause action
- getString(R.string.pause_label),
- pauseButtonPendingIntent)
+ .setPriority(UserPreferences.getNotifyPriority()) // set notification priority
.addAction(android.R.drawable.ic_media_play, //play action
getString(R.string.play_label),
playButtonPendingIntent)
- .addAction(android.R.drawable.ic_media_stop, // stop action
+ .addAction(android.R.drawable.ic_media_pause, //pause action
+ getString(R.string.pause_label),
+ pauseButtonPendingIntent)
+ .addAction(android.R.drawable.ic_menu_close_clear_cancel, // stop action
getString(R.string.stop_label),
stopButtonPendingIntent);
notification = notificationBuilder.build();