diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 117a008a8..a94f9ff95 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -325,6 +325,11 @@
android:scheme="package"/>
+
+
+
+
+
+
{
+ Playable p = this.media;
+ MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
+ builder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, p.getFeedTitle());
+ builder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, p.getEpisodeTitle());
+ builder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, p.getDuration());
+ builder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, p.getEpisodeTitle());
+ builder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, p.getFeedTitle());
+ if (p.getImageUri() != null) {
+ if (UserPreferences.setLockscreenBackground()) {
+ builder.putString(MediaMetadataCompat.METADATA_KEY_ART_URI, p.getImageUri().toString());
+ try {
+ Bitmap art = Glide.with(context)
+ .load(p.getImageUri())
+ .asBitmap()
+ .diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
+ .into(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
+ .get();
+ builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, art);
+ } catch (Exception e) {
+ Log.e(TAG, Log.getStackTraceString(e));
+ }
+ }
+ }
+ mediaSession.setMetadata(builder.build());
+ });
}
@@ -812,7 +849,12 @@ public class PlaybackServiceMediaPlayer {
} else {
state = PlaybackStateCompat.STATE_NONE;
}
- sessionState.setState(state, PlaybackStateCompat.PLAYBACK_POSITION_UNKNOWN, getPlaybackSpeed());
+ sessionState.setState(state, getPosition(), getPlaybackSpeed());
+ sessionState.setActions(PlaybackStateCompat.ACTION_PLAY_PAUSE
+ | PlaybackStateCompat.ACTION_REWIND
+ | PlaybackStateCompat.ACTION_FAST_FORWARD
+ | PlaybackStateCompat.ACTION_SKIP_TO_NEXT);
+ mediaSession.setPlaybackState(sessionState.build());
callback.statusChanged(new PSMPInfo(playerStatus, media));
}
@@ -1218,7 +1260,14 @@ public class PlaybackServiceMediaPlayer {
stop();
return true;
}
+ case KeyEvent.KEYCODE_MEDIA_NEXT:
+ {
+ Log.d(TAG, "Received next event from RemoteControlClient");
+ endPlayback();
+ return true;
+ }
default:
+ Log.d(TAG, "Unhandled key code: " + event.getKeyCode());
break;
}
}
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 3682d4307..7c38374a9 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -1,8 +1,7 @@
+ tools:ignore="MissingTranslation">
AntennaPod
@@ -335,6 +334,8 @@
Always expand the notification to show playback buttons.
Persistent Playback Controls
Keep notification and lockscreen controls when playback is paused.
+ Lockscreen Background
+ Set the lockscreen background to the current episode\'s image.
Show Download Report
If downloads fail, generate a report that shows the details of the failure.
Android versions before 4.1 do not support expanded notifications.