summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2014-06-15 17:55:19 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2014-06-15 17:55:19 +0200
commitcdf663ffa59425b805d77efa02618cb7f9d49962 (patch)
tree5ba601b49b627764fbf921facf952e38cdde4cbe
parent7aa0d3be100c4d7cc79c3a71000378975ae96c8b (diff)
parent500483ba690a36365dda1f6e00bb9c50c6357248 (diff)
downloadAntennaPod-cdf663ffa59425b805d77efa02618cb7f9d49962.zip
Merge branch 'seek' of git://github.com/dreiss/AntennaPod into dreiss-seek
-rw-r--r--res/values/arrays.xml10
-rw-r--r--res/values/strings.xml3
-rw-r--r--res/xml/preferences.xml9
-rw-r--r--src/de/danoeh/antennapod/preferences/UserPreferences.java10
-rw-r--r--src/de/danoeh/antennapod/service/playback/PlaybackService.java18
-rw-r--r--src/de/danoeh/antennapod/util/playback/PlaybackController.java6
6 files changed, 46 insertions, 10 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 69ea13e52..f09c76080 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1,6 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
+ <string-array name="seek_delta_values">
+ <item>5</item>
+ <item>10</item>
+ <item>15</item>
+ <item>20</item>
+ <item>30</item>
+ <item>45</item>
+ <item>60</item>
+ </string-array>
+
<string-array name="update_intervall_options">
<item>Manual</item>
<item>1 hour</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8f81955e2..28fb74691 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -147,6 +147,7 @@
<string name="position_default_label">00:00:00</string>
<string name="player_buffering_msg">Buffering</string>
<string name="playbackservice_notification_title">Playing podcast</string>
+ <string name="unknown_media_key">AntennaPod - Unknown media key: %1$d</string>
<!-- Queue operations -->
<string name="clear_queue_label">Clear queue</string>
@@ -242,6 +243,8 @@
<string name="pref_gpodnet_setlogin_information_sum">Change the login information for your gpodder.net account.</string>
<string name="pref_playback_speed_title">Playback Speeds</string>
<string name="pref_playback_speed_sum">Customize the speeds available for variable speed audio playback</string>
+ <string name="pref_seek_delta_title">Seek Time</string>
+ <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>
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index 8e0b886de..0afbbaca7 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -34,6 +34,15 @@
android:key="prefPauseForFocusLoss"
android:summary="@string/pref_pausePlaybackForFocusLoss_sum"
android:title="@string/pref_pausePlaybackForFocusLoss_title" />
+
+ <ListPreference
+ android:defaultValue="30"
+ android:entries="@array/seek_delta_values"
+ android:entryValues="@array/seek_delta_values"
+ android:key="prefSeekDeltaSecs"
+ android:summary="@string/pref_seek_delta_sum"
+ android:title="@string/pref_seek_delta_title" />
+
</PreferenceCategory>
<PreferenceCategory android:title="@string/network_pref">
<ListPreference
diff --git a/src/de/danoeh/antennapod/preferences/UserPreferences.java b/src/de/danoeh/antennapod/preferences/UserPreferences.java
index 31250bcd9..bb10e46d1 100644
--- a/src/de/danoeh/antennapod/preferences/UserPreferences.java
+++ b/src/de/danoeh/antennapod/preferences/UserPreferences.java
@@ -48,6 +48,7 @@ public class UserPreferences implements
private static final String PREF_PLAYBACK_SPEED = "prefPlaybackSpeed";
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";
// TODO: Make this value configurable
private static final double PLAYED_DURATION_AUTOFLATTR_THRESHOLD = 0.8;
@@ -74,6 +75,7 @@ public class UserPreferences implements
private String playbackSpeed;
private String[] playbackSpeedArray;
private boolean pauseForFocusLoss;
+ private int seekDeltaSecs;
private boolean isFreshInstall;
private UserPreferences(Context context) {
@@ -129,6 +131,7 @@ public class UserPreferences implements
playbackSpeedArray = readPlaybackSpeedArray(sp.getString(
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"));
}
private int readThemeValue(String valueFromPrefs) {
@@ -263,6 +266,11 @@ public class UserPreferences implements
return instance.playbackSpeedArray;
}
+ public static int getSeekDeltaMs() {
+ instanceAvailable();
+ return 1000 * instance.seekDeltaSecs;
+ }
+
/**
* Returns the capacity of the episode cache. This method will return the
* negative integer EPISODE_CACHE_SIZE_UNLIMITED if the cache size is set to
@@ -336,6 +344,8 @@ public class UserPreferences implements
PREF_PLAYBACK_SPEED_ARRAY, null));
} else if (key.equals(PREF_PAUSE_PLAYBACK_FOR_FOCUS_LOSS)) {
pauseForFocusLoss = sp.getBoolean(PREF_PAUSE_PLAYBACK_FOR_FOCUS_LOSS, false);
+ } else if (key.equals(PREF_SEEK_DELTA_SECS)) {
+ seekDeltaSecs = Integer.valueOf(sp.getString(PREF_SEEK_DELTA_SECS, "30"));
} else if (key.equals(PREF_PAUSE_ON_HEADSET_DISCONNECT)) {
pauseOnHeadsetDisconnect = sp.getBoolean(PREF_PAUSE_ON_HEADSET_DISCONNECT, true);
}
diff --git a/src/de/danoeh/antennapod/service/playback/PlaybackService.java b/src/de/danoeh/antennapod/service/playback/PlaybackService.java
index b7ff62129..04b41ca81 100644
--- a/src/de/danoeh/antennapod/service/playback/PlaybackService.java
+++ b/src/de/danoeh/antennapod/service/playback/PlaybackService.java
@@ -22,6 +22,7 @@ import android.util.Log;
import android.util.Pair;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
+import android.widget.Toast;
import de.danoeh.antennapod.BuildConfig;
import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
@@ -41,7 +42,6 @@ import de.danoeh.antennapod.util.BitmapDecoder;
import de.danoeh.antennapod.util.QueueAccess;
import de.danoeh.antennapod.util.flattr.FlattrUtils;
import de.danoeh.antennapod.util.playback.Playable;
-import de.danoeh.antennapod.util.playback.PlaybackController;
import java.util.List;
@@ -310,14 +310,18 @@ public class PlaybackService extends Service {
mediaPlayer.pause(true, true);
}
break;
- case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: {
- mediaPlayer.seekDelta(PlaybackController.DEFAULT_SEEK_DELTA);
+ case KeyEvent.KEYCODE_MEDIA_NEXT:
+ case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
+ mediaPlayer.seekDelta(UserPreferences.getSeekDeltaMs());
break;
- }
- case KeyEvent.KEYCODE_MEDIA_REWIND: {
- mediaPlayer.seekDelta(-PlaybackController.DEFAULT_SEEK_DELTA);
+ case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
+ case KeyEvent.KEYCODE_MEDIA_REWIND:
+ mediaPlayer.seekDelta(-UserPreferences.getSeekDeltaMs());
+ break;
+ default:
+ String message = String.format(getResources().getString(R.string.unknown_media_key), keycode);
+ Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
break;
- }
}
}
diff --git a/src/de/danoeh/antennapod/util/playback/PlaybackController.java b/src/de/danoeh/antennapod/util/playback/PlaybackController.java
index 1992fce2c..5783b5bc5 100644
--- a/src/de/danoeh/antennapod/util/playback/PlaybackController.java
+++ b/src/de/danoeh/antennapod/util/playback/PlaybackController.java
@@ -21,6 +21,7 @@ import de.danoeh.antennapod.feed.Chapter;
import de.danoeh.antennapod.feed.FeedMedia;
import de.danoeh.antennapod.feed.MediaType;
import de.danoeh.antennapod.preferences.PlaybackPreferences;
+import de.danoeh.antennapod.preferences.UserPreferences;
import de.danoeh.antennapod.service.playback.PlaybackService;
import de.danoeh.antennapod.service.playback.PlaybackServiceMediaPlayer;
import de.danoeh.antennapod.service.playback.PlayerStatus;
@@ -37,7 +38,6 @@ import java.util.concurrent.*;
public abstract class PlaybackController {
private static final String TAG = "PlaybackController";
- public static final int DEFAULT_SEEK_DELTA = 30000;
public static final int INVALID_TIME = -1;
private final Activity activity;
@@ -605,7 +605,7 @@ public abstract class PlaybackController {
@Override
public void onClick(View v) {
if (status == PlayerStatus.PLAYING) {
- playbackService.seekDelta(-DEFAULT_SEEK_DELTA);
+ playbackService.seekDelta(-UserPreferences.getSeekDeltaMs());
}
}
};
@@ -616,7 +616,7 @@ public abstract class PlaybackController {
@Override
public void onClick(View v) {
if (status == PlayerStatus.PLAYING) {
- playbackService.seekDelta(DEFAULT_SEEK_DELTA);
+ playbackService.seekDelta(UserPreferences.getSeekDeltaMs());
}
}
};