diff options
author | Shinichi Morimoto <shnmorimoto@gmail.com> | 2019-11-27 23:06:59 +0900 |
---|---|---|
committer | Shinichi Morimoto <shnmorimoto@gmail.com> | 2019-12-03 23:16:43 +0900 |
commit | 41ff93eca2bf3e8a15d99fedbf7da3a7f9af638a (patch) | |
tree | b86fecce4c9efb705e5f67da5fde79d5c2550159 | |
parent | 4d215c95573f486f628281d3bb5fc40477446a1d (diff) | |
download | servo-41ff93eca2bf3e8a15d99fedbf7da3a7f9af638a.tar.gz servo-41ff93eca2bf3e8a15d99fedbf7da3a7f9af638a.zip |
extended android jni with onMediaSessionSetPositionState
4 files changed, 24 insertions, 1 deletions
diff --git a/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MainActivity.java b/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MainActivity.java index 21a6e7f996f..1e1c9dbabeb 100644 --- a/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MainActivity.java +++ b/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MainActivity.java @@ -255,4 +255,15 @@ public class MainActivity extends Activity implements Servo.Client { return; } } + + @Override + public void onMediaSessionSetPositionState(float duration, float position, float playbackRate) { + Log.d("onMediaSessionSetPositionState", duration + " " + position + " " + playbackRate); + if (mMediaSession == null) { + mMediaSession = new MediaSession(mServoView, this, getApplicationContext()); + } + + mMediaSession.setPositionState(duration, position, playbackRate); + return; + } } diff --git a/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MediaSession.java b/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MediaSession.java index 5b1852d5d3f..bb9f874b463 100644 --- a/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MediaSession.java +++ b/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MediaSession.java @@ -192,4 +192,8 @@ public class MediaSession { showMediaSessionControls(); } } -} + + // Not implemented + // see https://github.com/servo/servo/pull/24885#discussion_r352496117 + public void setPositionState(float duration, float position, float playbackRate) {} +}
\ No newline at end of file diff --git a/support/android/apk/servoview/src/main/java/org/mozilla/servoview/JNIServo.java b/support/android/apk/servoview/src/main/java/org/mozilla/servoview/JNIServo.java index 6181a298f0a..5fa91fa34f6 100644 --- a/support/android/apk/servoview/src/main/java/org/mozilla/servoview/JNIServo.java +++ b/support/android/apk/servoview/src/main/java/org/mozilla/servoview/JNIServo.java @@ -115,6 +115,8 @@ public class JNIServo { void onMediaSessionMetadata(String title, String artist, String album); void onMediaSessionPlaybackStateChange(int state); + + void onMediaSessionSetPositionState(float duration, float position, float playbackRate); } } diff --git a/support/android/apk/servoview/src/main/java/org/mozilla/servoview/Servo.java b/support/android/apk/servoview/src/main/java/org/mozilla/servoview/Servo.java index f45f55e79f5..7f8bd3fc211 100644 --- a/support/android/apk/servoview/src/main/java/org/mozilla/servoview/Servo.java +++ b/support/android/apk/servoview/src/main/java/org/mozilla/servoview/Servo.java @@ -192,6 +192,8 @@ public class Servo { void onMediaSessionMetadata(String title, String artist, String album); void onMediaSessionPlaybackStateChange(int state); + + void onMediaSessionSetPositionState(float duration, float position, float playbackRate); } public interface RunCallback { @@ -285,5 +287,9 @@ public class Servo { public void onMediaSessionPlaybackStateChange(int state) { mRunCallback.inUIThread(() -> mClient.onMediaSessionPlaybackStateChange(state)); } + + public void onMediaSessionSetPositionState(float duration, float position, float playbackRate) { + mRunCallback.inUIThread(() -> mClient.onMediaSessionSetPositionState(duration, position, playbackRate)); + } } } |