Skip to content

Commit d3c02ca

Browse files
committed
fix: handle shortcut cleanup in ConversationInfoActivity and fix back-stack
- Disable shortcuts when deleting or leaving a conversation from ConversationInfoActivity (previously only handled in bottom dialog) - Fix back-stack for deep link navigation: open ConversationsListActivity before ChatActivity so pressing back shows the correct user's conversation list instead of stale data from a previous account Signed-off-by: angrymuesli <github.visibly626@slmails.com>
1 parent 72e75ed commit d3c02ca

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,10 +336,15 @@ class MainActivity :
336336

337337
if (isFinishing || isDestroyed) return@subscribe
338338

339+
// Open conversation list first so back press shows correct user's conversations
340+
val listIntent = Intent(context, ConversationsListActivity::class.java)
341+
listIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
342+
339343
val chatIntent = Intent(context, ChatActivity::class.java)
340344
chatIntent.putExtra(KEY_ROOM_TOKEN, deepLinkResult.roomToken)
341345
chatIntent.putExtra(BundleKeys.KEY_INTERNAL_USER_ID, targetUser.id)
342-
startActivity(chatIntent)
346+
347+
startActivities(arrayOf(listIntent, chatIntent))
343348
} else {
344349
Toast.makeText(
345350
context,

app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ import com.nextcloud.talk.utils.ConversationUtils
9090
import com.nextcloud.talk.utils.DateConstants
9191
import com.nextcloud.talk.utils.DateUtils
9292
import com.nextcloud.talk.utils.ShareUtils
93+
import com.nextcloud.talk.utils.ShortcutManagerHelper
9394
import com.nextcloud.talk.utils.SpreedFeatures
9495
import com.nextcloud.talk.utils.bundle.BundleKeys
9596
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
@@ -1005,6 +1006,14 @@ class ConversationInfoActivity : BaseActivity() {
10051006
if (workInfo != null) {
10061007
when (workInfo.state) {
10071008
WorkInfo.State.SUCCEEDED -> {
1009+
conversationUser.id?.let { userId ->
1010+
ShortcutManagerHelper.disableConversationShortcut(
1011+
context,
1012+
conversationToken,
1013+
userId,
1014+
context.resources.getString(R.string.nc_shortcut_conversation_deleted)
1015+
)
1016+
}
10081017
val intent = Intent(context, MainActivity::class.java)
10091018
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
10101019
startActivity(intent)
@@ -1080,6 +1089,14 @@ class ConversationInfoActivity : BaseActivity() {
10801089
DeleteConversationWorker::class.java
10811090
).setInputData(it).build()
10821091
)
1092+
conversationUser.id?.let { userId ->
1093+
ShortcutManagerHelper.disableConversationShortcut(
1094+
context,
1095+
conversationToken,
1096+
userId,
1097+
context.resources.getString(R.string.nc_shortcut_conversation_deleted)
1098+
)
1099+
}
10831100
val intent = Intent(context, MainActivity::class.java)
10841101
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
10851102
startActivity(intent)

0 commit comments

Comments
 (0)