summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java9
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java21
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java50
-rw-r--r--core/src/main/res/values/arrays.xml4
-rw-r--r--core/src/main/res/values/strings.xml4
5 files changed, 28 insertions, 60 deletions
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 43c345fec..cab63891b 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
@@ -344,11 +344,11 @@ public class PlaybackService extends Service {
break;
case KeyEvent.KEYCODE_MEDIA_NEXT:
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
- mediaPlayer.seekDelta(UserPreferences.getSeekDeltaMs());
+ mediaPlayer.seekDelta(UserPreferences.getFastFowardSecs() * 1000);
break;
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
case KeyEvent.KEYCODE_MEDIA_REWIND:
- mediaPlayer.seekDelta(-UserPreferences.getSeekDeltaMs());
+ mediaPlayer.seekDelta(-UserPreferences.getRewindSecs() * 1000);
break;
case KeyEvent.KEYCODE_MEDIA_STOP:
if (status == PlayerStatus.PLAYING) {
@@ -481,9 +481,8 @@ public class PlaybackService extends Service {
}
Intent statusUpdate = new Intent(ACTION_PLAYER_STATUS_CHANGED);
- statusUpdate.putExtra(EXTRA_NEW_PLAYER_STATUS, newInfo.playerStatus.ordinal());
+ // statusUpdate.putExtra(EXTRA_NEW_PLAYER_STATUS, newInfo.playerStatus.ordinal());
sendBroadcast(statusUpdate);
- sendBroadcast(new Intent(ACTION_PLAYER_STATUS_CHANGED));
updateWidget();
refreshRemoteControlClientState(newInfo);
bluetoothNotifyChange(newInfo, AVRCP_ACTION_PLAYER_STATUS_CHANGED);
@@ -626,7 +625,6 @@ public class PlaybackService extends Service {
prepareImmediately = startWhenPrepared = true;
} else {
Log.d(TAG, "No more episodes available to play");
-
prepareImmediately = startWhenPrepared = false;
stopForeground(true);
stopWidgetUpdater();
@@ -933,7 +931,6 @@ public class PlaybackService extends Service {
// Auto flattr
if (isAutoFlattrable(media) &&
(media.getPlayedDuration() > UserPreferences.getAutoFlattrPlayedDurationThreshold() * duration)) {
-
Log.d(TAG, "saveCurrentPosition: performing auto flattr since played duration " + Integer.toString(media.getPlayedDuration())
+ " is " + UserPreferences.getAutoFlattrPlayedDurationThreshold() * 100 + "% of file duration " + Integer.toString(duration));
DBTasks.flattrItemIfLoggedIn(this, item);
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java
index f0acc3531..448ab05b9 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java
@@ -449,15 +449,15 @@ public class PlaybackServiceMediaPlayer {
if (playerStatus == PlayerStatus.PLAYING
|| playerStatus == PlayerStatus.PAUSED
|| playerStatus == PlayerStatus.PREPARED) {
- if (stream) {
- // statusBeforeSeeking = playerStatus;
- // setPlayerStatus(PlayerStatus.SEEKING, media);
+ if (!stream) {
+ statusBeforeSeeking = playerStatus;
+ setPlayerStatus(PlayerStatus.SEEKING, media);
}
mediaPlayer.seekTo(t);
} else if (playerStatus == PlayerStatus.INITIALIZED) {
media.setPosition(t);
- startWhenPrepared.set(true);
+ startWhenPrepared.set(false);
prepare();
}
playerLock.unlock();
@@ -534,20 +534,20 @@ public class PlaybackServiceMediaPlayer {
* Returns the position of the current media object or INVALID_TIME if the position could not be retrieved.
*/
public int getPosition() {
- if (!playerLock.tryLock()) {
- return INVALID_TIME;
- }
+ playerLock.lock();
int retVal = INVALID_TIME;
if (playerStatus == PlayerStatus.PLAYING
|| playerStatus == PlayerStatus.PAUSED
- || playerStatus == PlayerStatus.PREPARED) {
+ || playerStatus == PlayerStatus.PREPARED
+ || playerStatus == PlayerStatus.SEEKING) {
retVal = mediaPlayer.getCurrentPosition();
} else if (media != null && media.getPosition() > 0) {
retVal = media.getPosition();
}
playerLock.unlock();
+ Log.d(TAG, "getPosition() -> " + retVal);
return retVal;
}
@@ -735,6 +735,7 @@ public class PlaybackServiceMediaPlayer {
int state;
if (playerStatus != null) {
+ Log.d(TAG, "playerStatus: " + playerStatus.toString());
switch (playerStatus) {
case PLAYING:
state = PlaybackStateCompat.STATE_PLAYING;
@@ -1095,13 +1096,13 @@ public class PlaybackServiceMediaPlayer {
@Override
public void onFastForward() {
super.onFastForward();
- seekDelta(UserPreferences.getSeekDeltaMs());
+ seekDelta(UserPreferences.getFastFowardSecs() * 1000);
}
@Override
public void onRewind() {
super.onRewind();
- seekDelta(-UserPreferences.getSeekDeltaMs());
+ seekDelta(-UserPreferences.getRewindSecs() * 1000);
}
@Override
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
index 17c752bb6..a0d12d3e7 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
@@ -32,13 +32,11 @@ import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
-import de.danoeh.antennapod.core.BuildConfig;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.feed.Chapter;
import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.feed.MediaType;
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
-import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.service.playback.PlaybackService;
import de.danoeh.antennapod.core.service.playback.PlaybackServiceMediaPlayer;
import de.danoeh.antennapod.core.service.playback.PlayerStatus;
@@ -174,8 +172,7 @@ public abstract class PlaybackController {
* as the arguments of the launch intent.
*/
private void bindToService() {
- if (BuildConfig.DEBUG)
- Log.d(TAG, "Trying to connect to service");
+ Log.d(TAG, "Trying to connect to service");
AsyncTask<Void, Void, Intent> intentLoader = new AsyncTask<Void, Void, Intent>() {
@Override
protected Intent doInBackground(Void... voids) {
@@ -211,8 +208,7 @@ public abstract class PlaybackController {
* played media or null if no last played media could be found.
*/
private Intent getPlayLastPlayedMediaIntent() {
- if (BuildConfig.DEBUG)
- Log.d(TAG, "Trying to restore last played media");
+ Log.d(TAG, "Trying to restore last played media");
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(activity.getApplicationContext());
long currentlyPlayingMedia = PlaybackPreferences
@@ -240,8 +236,7 @@ public abstract class PlaybackController {
return serviceIntent;
}
}
- if (BuildConfig.DEBUG)
- Log.d(TAG, "No last played media found");
+ Log.d(TAG, "No last played media found");
return null;
}
@@ -253,8 +248,7 @@ public abstract class PlaybackController {
|| (positionObserverFuture != null && positionObserverFuture
.isDone()) || positionObserverFuture == null) {
- if (BuildConfig.DEBUG)
- Log.d(TAG, "Setting up position observer");
+ Log.d(TAG, "Setting up position observer");
positionObserver = new MediaPositionObserver();
positionObserverFuture = schedExecutor.scheduleWithFixedDelay(
positionObserver, MediaPositionObserver.WAITING_INTERVALL,
@@ -266,8 +260,7 @@ public abstract class PlaybackController {
private void cancelPositionObserver() {
if (positionObserverFuture != null) {
boolean result = positionObserverFuture.cancel(true);
- if (BuildConfig.DEBUG)
- Log.d(TAG, "PositionObserver cancelled. Result: " + result);
+ Log.d(TAG, "PositionObserver cancelled. Result: " + result);
}
}
@@ -295,8 +288,7 @@ public abstract class PlaybackController {
protected BroadcastReceiver statusUpdate = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- if (BuildConfig.DEBUG)
- Log.d(TAG, "Received statusUpdate Intent.");
+ Log.d(TAG, "Received statusUpdate Intent.");
if (isConnectedToPlaybackService()) {
PlaybackServiceMediaPlayer.PSMPInfo info = playbackService.getPSMPInfo();
status = info.playerStatus;
@@ -353,8 +345,7 @@ public abstract class PlaybackController {
}
} else {
- if (BuildConfig.DEBUG)
- Log.d(TAG, "Bad arguments. Won't handle intent");
+ Log.d(TAG, "Bad arguments. Won't handle intent");
}
} else {
bindToService();
@@ -425,6 +416,7 @@ public abstract class PlaybackController {
pauseResource = R.drawable.ic_av_pause_circle_outline_80dp;
}
+ Log.d(TAG, "status: " + status.toString());
switch (status) {
case ERROR:
@@ -470,6 +462,7 @@ public abstract class PlaybackController {
updatePlayButtonAppearance(playResource, playText);
break;
case SEEKING:
+ onPositionObserverUpdate();
postStatusMsg(R.string.player_seeking_msg);
break;
case INITIALIZED:
@@ -505,8 +498,7 @@ public abstract class PlaybackController {
* information has to be refreshed
*/
void queryService() {
- if (BuildConfig.DEBUG)
- Log.d(TAG, "Querying service info");
+ Log.d(TAG, "Querying service info");
if (playbackService != null) {
status = playbackService.getStatus();
media = playbackService.getPlayable();
@@ -614,28 +606,6 @@ public abstract class PlaybackController {
};
}
- public OnClickListener newOnRevButtonClickListener() {
- return new OnClickListener() {
- @Override
- public void onClick(View v) {
- if (status == PlayerStatus.PLAYING) {
- playbackService.seekDelta(-UserPreferences.getSeekDeltaMs());
- }
- }
- };
- }
-
- public OnClickListener newOnFFButtonClickListener() {
- return new OnClickListener() {
- @Override
- public void onClick(View v) {
- if (status == PlayerStatus.PLAYING) {
- playbackService.seekDelta(UserPreferences.getSeekDeltaMs());
- }
- }
- };
- }
-
public boolean serviceAvailable() {
return playbackService != null;
}
diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml
index 4bb29ac85..979653c79 100644
--- a/core/src/main/res/values/arrays.xml
+++ b/core/src/main/res/values/arrays.xml
@@ -10,7 +10,7 @@
</string-array>
- <string-array name="seek_delta_values">
+ <integer-array name="seek_delta_values">
<item>5</item>
<item>10</item>
<item>15</item>
@@ -18,7 +18,7 @@
<item>30</item>
<item>45</item>
<item>60</item>
- </string-array>
+ </integer-array>
<string-array name="update_intervall_options">
<item>Manual</item>
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index bdb3ad606..a2ab068fd 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -268,8 +268,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_fast_forward">Fast forward time</string>
+ <string name="pref_rewind">Rewind time</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>