diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index d778bbba..3511f420 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 a428c247..23559452 100755 --- a/android/src/org/kde/kasts/KastsActivity.java +++ b/android/src/org/kde/kasts/KastsActivity.java @@ -175,6 +175,8 @@ public class KastsActivity extends QtActivity mSession.setActive(true); + play(); + //Update variables of mediaData; activity.updateNotification(); @@ -197,6 +199,13 @@ public class KastsActivity extends QtActivity //JNI call to audiomanager stop mSession.setActive(false); } + + @Override + public void onSkipToNext() { + super.onPause(); + + //JNI to audiomanager next + } } /* @@ -249,4 +258,10 @@ 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 08ea9769..a32b5db6 100644 --- a/src/mediasessionclient.cpp +++ b/src/mediasessionclient.cpp @@ -8,6 +8,54 @@ #include "audiomanager.h" #include +#include +#include + +static void play(JNIEnv *env, jobject thiz) +{ + Q_UNUSED(env) + Q_UNUSED(thiz) + // audio manager play +} +static void pause(JNIEnv *env, jobject thiz) +{ + Q_UNUSED(env) + Q_UNUSED(thiz) + // audio manager pause +} +static void stop(JNIEnv *env, jobject thiz) +{ + Q_UNUSED(env) + Q_UNUSED(thiz) + //audio manager previous +} +static void next(JNIEnv *env, jobject thiz) +{ + Q_UNUSED(env) + Q_UNUSED(thiz) + // audio manager next +} +static void seek(JNIEnv *env, jobject thiz, jlong position) +{ + Q_UNUSED(env) + Q_UNUSED(thiz) + // implement seek +} +void registerNativeMethods() { + 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)}}; + + QAndroidJniObject javaClass("org/kde/kasts/KastsActivity"); + QAndroidJniEnvironment env; + jclass objectClass = env->GetObjectClass(javaClass.object()); + env->RegisterNatives(objectClass, + methods, + sizeof(methods) / sizeof(methods[0])); + env->DeleteLocalRef(objectClass); +} MediaSessionClient::MediaSessionClient(AudioManager *audioPlayer, QObject *parent) : QObject(parent) @@ -60,7 +108,7 @@ void MediaSessionClient::setSessionMetadata() if (entry->authors().count() > 0) { for (auto &author : entry->authors()) { authorString.append(author->name()); - (entry->authors().count > 1) + if(entry->authors().count() > 1) authorString.append(QStringLiteral(", ")); } }