summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorMichael Scarito <ms-github@mit.edu>2014-11-20 14:14:10 -0800
committerMichael Scarito <ms-github@mit.edu>2014-11-20 14:22:42 -0800
commitd86a2a1977b8a27368956546d892e09c71a8963e (patch)
treea4bc80f9367fdebc8c22b6e53d83838ea7e34292 /core/src
parent9588747edda50cd98374a599b47d4be60c562d59 (diff)
downloadAntennaPod-d86a2a1977b8a27368956546d892e09c71a8963e.zip
Resume on headphone connect if paused by headphone disconnect
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java19
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java4
2 files changed, 23 insertions, 0 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 a5560e3fb..0ff057a26 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
@@ -144,6 +144,10 @@ public class PlaybackService extends Service {
* Is true if service has received a valid start command.
*/
public static boolean started = false;
+ /**
+ * Is true if the service was running, but paused due to headphone disconnect
+ */
+ public static boolean headphonePause = false;
private static final int NOTIFICATION_ID = 1;
@@ -966,6 +970,7 @@ public class PlaybackService extends Service {
private BroadcastReceiver headsetDisconnected = new BroadcastReceiver() {
private static final String TAG = "headsetDisconnected";
private static final int UNPLUGGED = 0;
+ private static final int PLUGGED = 1;
@Override
public void onReceive(Context context, Intent intent) {
@@ -978,6 +983,10 @@ public class PlaybackService extends Service {
if (BuildConfig.DEBUG)
Log.d(TAG, "Headset was unplugged during playback.");
pauseIfPauseOnDisconnect();
+ } else if (state == PLUGGED) {
+ if (BuildConfig.DEBUG)
+ Log.d(TAG, "Headset was plugged in during playback.");
+ unpauseIfPauseOnDisconnect();
}
} else {
Log.e(TAG, "Received invalid ACTION_HEADSET_PLUG intent");
@@ -1003,6 +1012,9 @@ public class PlaybackService extends Service {
*/
private void pauseIfPauseOnDisconnect() {
if (UserPreferences.isPauseOnHeadsetDisconnect()) {
+ if (mediaPlayer.getPlayerStatus() == PlayerStatus.PLAYING) {
+ headphonePause = true;
+ }
if (UserPreferences.isPersistNotify()) {
mediaPlayer.pause(false, true);
} else {
@@ -1011,6 +1023,13 @@ public class PlaybackService extends Service {
}
}
+ private void unpauseIfPauseOnDisconnect() {
+ if (UserPreferences.isPauseOnHeadsetDisconnect() && headphonePause) {
+ headphonePause = false;
+ mediaPlayer.resume();
+ }
+ }
+
private BroadcastReceiver shutdownReceiver = new BroadcastReceiver() {
@Override
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 dbf870eac..ad5154faf 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
@@ -586,6 +586,10 @@ public class PlaybackServiceMediaPlayer {
return mediaType;
}
+ public PlayerStatus getPlayerStatus() {
+ return playerStatus;
+ }
+
public boolean isStreaming() {
return stream;
}