From 11b83ddf3032cec2061b18dfac3c0c59eca40428 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Mon, 16 Aug 2021 19:54:48 +0200 Subject: [PATCH] Fix intents --- android/AndroidManifest.xml | 7 ++++++- android/src/org/kde/kasts/KastsActivity.java | 20 +++++++----------- android/src/org/kde/kasts/Receiver.java | 22 ++++++++++++++++++++ 3 files changed, 35 insertions(+), 14 deletions(-) create mode 100644 android/src/org/kde/kasts/Receiver.java diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index fb081ce5..aaac6815 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -7,7 +7,7 @@ @@ -57,6 +57,11 @@ + + + + + diff --git a/android/src/org/kde/kasts/KastsActivity.java b/android/src/org/kde/kasts/KastsActivity.java index 6fce9d19..77eb13c6 100755 --- a/android/src/org/kde/kasts/KastsActivity.java +++ b/android/src/org/kde/kasts/KastsActivity.java @@ -53,7 +53,7 @@ public class KastsActivity extends QtActivity static MediaData mediaData; - private static MediaSessionCompat mSession; + static MediaSessionCompat mSession; private static PlaybackStateCompat.Builder mPBuilder; private static KastsActivity activity; @@ -82,32 +82,31 @@ public class KastsActivity extends QtActivity //TODO Image mSession.setMetadata(metadata.build()); - Intent iPlay = new Intent(this, MediaSessionCallback.class); + Intent iPlay = new Intent(this, Receiver.class); iPlay.setAction("ACTION_PLAY"); PendingIntent piPlay = PendingIntent.getBroadcast(this, 0, iPlay, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Action.Builder aPlay = new NotificationCompat.Action.Builder( R.drawable.ic_play_white, "Play", piPlay); - Intent iPause = new Intent(this, MediaSessionCallback.class); + Intent iPause = new Intent(this, Receiver.class); iPause.setAction("ACTION_PAUSE"); PendingIntent piPause = PendingIntent.getBroadcast(this, 0, iPause, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Action.Builder aPause = new NotificationCompat.Action.Builder( R.drawable.ic_pause_white, "Pause", piPause); - Intent iPrevious = new Intent(this, MediaSessionCallback.class); + Intent iPrevious = new Intent(this, Receiver.class); iPrevious.setAction("ACTION_PREVIOUS"); PendingIntent piPrevious = PendingIntent.getBroadcast(this, 0, iPrevious, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Action.Builder aPrevious = new NotificationCompat.Action.Builder( R.drawable.ic_previous_white, "Previous", piPrevious); - Intent iNext = new Intent(this, MediaSessionCallback.class); + Intent iNext = new Intent(this, Receiver.class); iNext.setAction("ACTION_NEXT"); PendingIntent piNext = PendingIntent.getBroadcast(this, 0, iNext, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Action.Builder aNext = new NotificationCompat.Action.Builder( R.drawable.ic_next_white, "Next", piNext); Intent iOpenActivity = new Intent(this, KastsActivity.class); - iOpenActivity.putExtra("deviceId", "device"); NotificationCompat.Builder notification = new NotificationCompat.Builder(this, "media_control"); notification @@ -118,7 +117,8 @@ public class KastsActivity extends QtActivity .setContentTitle(mediaData.title) .setSmallIcon(this.getApplicationInfo().icon) .setChannelId("org.kde.kasts.channel") - .setContentText("Unknown"); + .setContentText("Unknown") + .setContentIntent(PendingIntent.getActivity(this, 0, iOpenActivity, 0)); notification.addAction(aPrevious.build()); if(mediaData.state == 0) @@ -184,12 +184,6 @@ public class KastsActivity extends QtActivity } playerPlay(); - - //Update variables of mediaData; - activity.updateNotification(); - - //JNI to audiomanager play - //setPlaybackState for mSession } @Override diff --git a/android/src/org/kde/kasts/Receiver.java b/android/src/org/kde/kasts/Receiver.java new file mode 100644 index 00000000..e6c4b442 --- /dev/null +++ b/android/src/org/kde/kasts/Receiver.java @@ -0,0 +1,22 @@ +package org.kde.kasts; + +import android.content.Intent; +import android.content.Context; +import android.content.BroadcastReceiver; +import android.util.Log; + +public class Receiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) { + KastsActivity.mSession.getController().dispatchMediaButtonEvent(intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT)); + } else { + switch(intent.getAction()) { + case "ACTION_PLAY": + Log.d("kasts", "play"); + break; + } + } + } +} \ No newline at end of file