aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShinichi Morimoto <shnmorimoto@gmail.com>2019-11-27 23:06:59 +0900
committerShinichi Morimoto <shnmorimoto@gmail.com>2019-12-03 23:16:43 +0900
commit41ff93eca2bf3e8a15d99fedbf7da3a7f9af638a (patch)
treeb86fecce4c9efb705e5f67da5fde79d5c2550159
parent4d215c95573f486f628281d3bb5fc40477446a1d (diff)
downloadservo-41ff93eca2bf3e8a15d99fedbf7da3a7f9af638a.tar.gz
servo-41ff93eca2bf3e8a15d99fedbf7da3a7f9af638a.zip
extended android jni with onMediaSessionSetPositionState
-rw-r--r--support/android/apk/servoapp/src/main/java/org/mozilla/servo/MainActivity.java11
-rw-r--r--support/android/apk/servoapp/src/main/java/org/mozilla/servo/MediaSession.java6
-rw-r--r--support/android/apk/servoview/src/main/java/org/mozilla/servoview/JNIServo.java2
-rw-r--r--support/android/apk/servoview/src/main/java/org/mozilla/servoview/Servo.java6
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));
+ }
}
}