From 4fdcbca357b00331830bf612d716669c092bc158 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Wed, 5 Feb 2014 20:13:41 +0000 Subject: [PATCH] Add a back stack to activities launched from notifications. See https://developer.android.com/guide/topics/ui/notifiers/notifications.html#NotificationResponse --- briar-android/AndroidManifest.xml | 14 ++++++++++++-- .../src/org/briarproject/android/BriarService.java | 11 +++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/briar-android/AndroidManifest.xml b/briar-android/AndroidManifest.xml index b9c739b2a0..1d3e635789 100644 --- a/briar-android/AndroidManifest.xml +++ b/briar-android/AndroidManifest.xml @@ -58,7 +58,12 @@ <activity android:name=".android.contact.ContactListActivity" android:logo="@drawable/logo" - android:label="@string/contact_list_title" > + android:label="@string/contact_list_title" + android:parentActivityName=".android.HomeScreenActivity" > + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value=".android.HomeScreenActivity" + /> </activity> <activity android:name=".android.contact.ConversationActivity" @@ -93,7 +98,12 @@ <activity android:name=".android.groups.GroupListActivity" android:logo="@drawable/logo" - android:label="@string/forums_title" > + android:label="@string/forums_title" + android:parentActivityName=".android.HomeScreenActivity" > + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value=".android.HomeScreenActivity" + /> </activity> <activity android:name=".android.groups.ManageGroupsActivity" diff --git a/briar-android/src/org/briarproject/android/BriarService.java b/briar-android/src/org/briarproject/android/BriarService.java index 4e0f8ce8b5..702282acb2 100644 --- a/briar-android/src/org/briarproject/android/BriarService.java +++ b/briar-android/src/org/briarproject/android/BriarService.java @@ -38,6 +38,7 @@ import android.content.ServiceConnection; import android.os.Binder; import android.os.IBinder; import android.support.v4.app.NotificationCompat; +import android.support.v4.app.TaskStackBuilder; public class BriarService extends RoboService implements EventListener { @@ -192,7 +193,10 @@ public class BriarService extends RoboService implements EventListener { b.setDefaults(DEFAULT_ALL); Intent i = new Intent(this, ContactListActivity.class); i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_SINGLE_TOP); - b.setContentIntent(PendingIntent.getActivity(this, 0, i, 0)); + TaskStackBuilder tsb = TaskStackBuilder.create(this); + tsb.addParentStack(ContactListActivity.class); + tsb.addNextIntent(i); + b.setContentIntent(tsb.getPendingIntent(0, 0)); Object o = getSystemService(NOTIFICATION_SERVICE); NotificationManager nm = (NotificationManager) o; nm.notify(PRIVATE_MESSAGE_NOTIFICATION_ID, b.build()); @@ -207,7 +211,10 @@ public class BriarService extends RoboService implements EventListener { b.setDefaults(DEFAULT_ALL); Intent i = new Intent(this, GroupListActivity.class); i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_SINGLE_TOP); - b.setContentIntent(PendingIntent.getActivity(this, 0, i, 0)); + TaskStackBuilder tsb = TaskStackBuilder.create(this); + tsb.addParentStack(GroupListActivity.class); + tsb.addNextIntent(i); + b.setContentIntent(tsb.getPendingIntent(0, 0)); Object o = getSystemService(NOTIFICATION_SERVICE); NotificationManager nm = (NotificationManager) o; nm.notify(GROUP_POST_NOTIFICATION_ID, b.build()); -- GitLab