From d3a0b02ad90bfcaee58f7249741932af85409043 Mon Sep 17 00:00:00 2001 From: Marius Lindvall Date: Tue, 17 Sep 2019 11:50:14 +0200 Subject: [PATCH] Return to app from notification; fixes #27 --- android/app/src/main/AndroidManifest.xml | 6 +++-- .../info/varden/hauk/notify/ReopenIntent.java | 27 +++++++++++++++++++ .../hauk/notify/SharingNotification.java | 2 ++ .../hauk/notify/StopSharingReceiver.java | 2 +- 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 android/app/src/main/java/info/varden/hauk/notify/ReopenIntent.java diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 75c14cc..7f4c128 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -14,7 +14,9 @@ android:roundIcon="@drawable/ic_icon" android:supportsRtl="true" android:theme="@style/AppTheme"> - + @@ -27,7 +29,7 @@ - + diff --git a/android/app/src/main/java/info/varden/hauk/notify/ReopenIntent.java b/android/app/src/main/java/info/varden/hauk/notify/ReopenIntent.java new file mode 100644 index 0000000..f2af147 --- /dev/null +++ b/android/app/src/main/java/info/varden/hauk/notify/ReopenIntent.java @@ -0,0 +1,27 @@ +package info.varden.hauk.notify; + +import android.app.Activity; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; + +/** + * A intent for tapping the persistent Hauk notification to return to the app. + * + * @author Marius Lindvall + */ +public class ReopenIntent { + private final Context ctx; + private final Class activity; + + public ReopenIntent(Context ctx, Class activity) { + this.ctx = ctx; + this.activity = activity; + } + + public PendingIntent toPending() { + Intent intent = new Intent(this.ctx, this.activity); + intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); + return PendingIntent.getActivity(this.ctx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); + } +} diff --git a/android/app/src/main/java/info/varden/hauk/notify/SharingNotification.java b/android/app/src/main/java/info/varden/hauk/notify/SharingNotification.java index c03bec8..c4b948e 100644 --- a/android/app/src/main/java/info/varden/hauk/notify/SharingNotification.java +++ b/android/app/src/main/java/info/varden/hauk/notify/SharingNotification.java @@ -5,6 +5,7 @@ import android.content.Context; import androidx.core.app.NotificationCompat; +import info.varden.hauk.MainActivity; import info.varden.hauk.R; import info.varden.hauk.StopSharingTask; @@ -54,6 +55,7 @@ public class SharingNotification extends HaukNotification { // Add "Copy link" and "Stop sharing" buttons to the notification. builder.addAction(R.drawable.ic_notify, getContext().getString(R.string.action_copy), new Receiver<>(getContext(), CopyLinkReceiver.class, this.viewUrl).toPending()); builder.addAction(R.drawable.ic_notify, getContext().getString(R.string.action_stop), new Receiver<>(getContext(), StopSharingReceiver.class, this.stopSharingTask).toPending()); + builder.setContentIntent(new ReopenIntent(getContext(), MainActivity.class).toPending()); builder.setOngoing(true); } diff --git a/android/app/src/main/java/info/varden/hauk/notify/StopSharingReceiver.java b/android/app/src/main/java/info/varden/hauk/notify/StopSharingReceiver.java index 965761d..9156029 100644 --- a/android/app/src/main/java/info/varden/hauk/notify/StopSharingReceiver.java +++ b/android/app/src/main/java/info/varden/hauk/notify/StopSharingReceiver.java @@ -11,7 +11,7 @@ import info.varden.hauk.StopSharingTask; */ public class StopSharingReceiver extends HaukBroadcastReceiver { - public static final String ACTION_ID = "info.varden.hauk.RETURN_TO_APP"; + public static final String ACTION_ID = "info.varden.hauk.STOP_SHARING"; @Override public String getActionID() {