From 3f6569447d552ae861f61c73333cfb20bbba7d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez=20Moreno?= Date: Thu, 10 Oct 2019 17:09:55 +0200 Subject: [PATCH] MediaSession Android bits --- ports/libsimpleservo/jniapi/src/lib.rs | 4 +--- .../java/org/mozilla/servo/MainActivity.java | 17 +++++++++++++++++ .../java/org/mozilla/servoview/JNIServo.java | 4 ++++ .../main/java/org/mozilla/servoview/Servo.java | 12 ++++++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/ports/libsimpleservo/jniapi/src/lib.rs b/ports/libsimpleservo/jniapi/src/lib.rs index fe6538f9c2e..ff91408244a 100644 --- a/ports/libsimpleservo/jniapi/src/lib.rs +++ b/ports/libsimpleservo/jniapi/src/lib.rs @@ -15,9 +15,7 @@ use jni::{errors, JNIEnv, JavaVM}; use libc::{dup2, pipe, read}; use log::Level; use simpleservo::{self, gl_glue, ServoGlue, SERVO}; -use simpleservo::{ - Coordinates, EventLoopWaker, HostTrait, InitOptions, MediaSessionEvent, VRInitOptions, -}; +use simpleservo::{Coordinates, EventLoopWaker, HostTrait, InitOptions, VRInitOptions}; use std::os::raw::{c_char, c_int, c_void}; use std::ptr::{null, null_mut}; use std::sync::Arc; 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 e4ef5a51b52..6a2117962dd 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 @@ -23,6 +23,8 @@ import android.widget.ProgressBar; import android.widget.TextView; import android.util.Log; +//import org.mozilla.servo.MediaSessionCallback; + import org.mozilla.servoview.ServoView; import org.mozilla.servoview.Servo; @@ -41,6 +43,7 @@ public class MainActivity extends Activity implements Servo.Client { ProgressBar mProgressBar; TextView mIdleText; boolean mCanGoBack; + // MediaSession mSession; @Override protected void onCreate(Bundle savedInstanceState) { @@ -217,4 +220,18 @@ public class MainActivity extends Activity implements Servo.Client { super.onBackPressed(); } } + + @Override + public void onMediaSessionMetadata(String title, String artist, String album) { + Log.d("SERVOMEDIA", "METADATA"); + } + + @Override + public void onMediaSessionPlaybackStateChange(int state) { + Log.d("SERVOMEDIA", "PLAYBACK STATE CHANGED"); + } + +/* private void createMediaSession() { + mSession = new MediaSession(this, "ServoMediaSession"); + }*/ } 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 7bfcf233d8d..b1ce302e0aa 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 @@ -109,6 +109,10 @@ public class JNIServo { void onHistoryChanged(boolean canGoBack, boolean canGoForward); void onShutdownComplete(); + + void onMediaSessionMetadata(String title, String artist, String album); + + void onMediaSessionPlaybackStateChange(int state); } } 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 dac970d1acf..7daea963bb5 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 @@ -184,6 +184,10 @@ public class Servo { void onHistoryChanged(boolean canGoBack, boolean canGoForward); void onRedrawing(boolean redrawing); + + void onMediaSessionMetadata(String title, String artist, String album); + + void onMediaSessionPlaybackStateChange(int state); } public interface RunCallback { @@ -269,5 +273,13 @@ public class Servo { public void onRedrawing(boolean redrawing) { mRunCallback.inUIThread(() -> mClient.onRedrawing(redrawing)); } + + public void onMediaSessionMetadata(String title, String artist, String album) { + mRunCallback.inUIThread(() -> mClient.onMediaSessionMetadata(title, artist, album)); + } + + public void onMediaSessionPlaybackStateChange(int state) { + mRunCallback.inUIThread(() -> mClient.onMediaSessionPlaybackStateChange(state)); + } } }