diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index a6406f89..a5769b53 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -7,7 +7,7 @@ diff --git a/android/src/org/kde/kasts/KastsActivity.java b/android/src/org/kde/kasts/KastsActivity.java index 49e096df..c8ef35bc 100755 --- a/android/src/org/kde/kasts/KastsActivity.java +++ b/android/src/org/kde/kasts/KastsActivity.java @@ -34,6 +34,12 @@ public class KastsActivity extends QtActivity { private static final String TAG = "org.kde.kasts.mediasession"; + private static native void playerPlay(); + private static native void playerPause(); + private static native void playerStop(); + private static native void playerNext(); + private static native void playerSeek(long position); + class MediaData { public String title; public String author; @@ -175,7 +181,7 @@ public class KastsActivity extends QtActivity mSession.setActive(true); - play(); + playerPlay(); //Update variables of mediaData; activity.updateNotification(); @@ -258,10 +264,4 @@ public class KastsActivity extends QtActivity activity.updateNotification(); } - - private static native void play(); - private static native void pause(); - private static native void stop(); - private static native void next(); - private static native void seek(long position); } diff --git a/src/mediasessionclient.cpp b/src/mediasessionclient.cpp index afff4781..d1864c78 100644 --- a/src/mediasessionclient.cpp +++ b/src/mediasessionclient.cpp @@ -15,37 +15,42 @@ static void play(JNIEnv *env, jobject thiz) { Q_UNUSED(env) Q_UNUSED(thiz) + qDebug() << "JAVA play() working."; // audio manager play } static void pause(JNIEnv *env, jobject thiz) { Q_UNUSED(env) Q_UNUSED(thiz) + qDebug() << "JAVA pause() working."; // audio manager pause } static void stop(JNIEnv *env, jobject thiz) { Q_UNUSED(env) Q_UNUSED(thiz) + qDebug() << "JAVA stop() working."; //audio manager previous } static void next(JNIEnv *env, jobject thiz) { Q_UNUSED(env) Q_UNUSED(thiz) + qDebug() << "JAVA next() working."; // audio manager next } static void seek(JNIEnv *env, jobject thiz, jlong position) { Q_UNUSED(env) Q_UNUSED(thiz) + qDebug() << "JAVA seek() working."; // implement seek } -static const JNINativeMethod methods[] {{"play", "()V", reinterpret_cast(play)}, - {"pause", "()V", reinterpret_cast(pause)}, - {"stop", "()V", reinterpret_cast(stop)}, - {"next", "()V", reinterpret_cast(next)}, - {"seek", "(J)V", reinterpret_cast(seek)}}; +static const JNINativeMethod methods[] {{"playerPlay", "()V", reinterpret_cast(play)}, + {"playerPause", "()V", reinterpret_cast(pause)}, + {"playerStop", "()V", reinterpret_cast(stop)}, + {"playerNext", "()V", reinterpret_cast(next)}, + {"playerSeek", "(J)V", reinterpret_cast(seek)}}; Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) { @@ -67,10 +72,13 @@ Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) return JNI_VERSION_1_4; } +MediaSessionClient* MediaSessionClient::s_instance = nullptr; + MediaSessionClient::MediaSessionClient(AudioManager *audioPlayer, QObject *parent) : QObject(parent) , m_audioPlayer(audioPlayer) { + s_instance = this; connect(m_audioPlayer, &AudioManager::playbackStateChanged, this, &MediaSessionClient::setSessionPlaybackState); // Sets the current playback state. connect(m_audioPlayer, &AudioManager::entryChanged, this, &MediaSessionClient::setSessionMetadata); @@ -89,6 +97,11 @@ MediaSessionClient::MediaSessionClient(AudioManager *audioPlayer, QObject *paren // Sets the playback to stopped. } +MediaSessionClient* MediaSessionClient::instance() +{ + return s_instance; +} + void MediaSessionClient::setSessionPlaybackState() { qDebug() << "MediaSessionClient::setSessionPlaybackState called with state value = " << m_audioPlayer->playbackState(); diff --git a/src/mediasessionclient.h b/src/mediasessionclient.h index 302b2d70..d88859d9 100644 --- a/src/mediasessionclient.h +++ b/src/mediasessionclient.h @@ -16,6 +16,10 @@ class MediaSessionClient : public QObject { public: explicit MediaSessionClient(AudioManager *audioPlayer, QObject *parent = nullptr); + static MediaSessionClient* instance(); + +Q_SIGNALS: + void play(); private Q_SLOTS: void setSessionPlaybackState(); @@ -26,4 +30,5 @@ private Q_SLOTS: private: AudioManager *m_audioPlayer = nullptr; + static MediaSessionClient *s_instance; };