Skip to content

Commit 029c47a

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 130dffb commit 029c47a

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

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
@@ -1013,6 +1014,14 @@ class ConversationInfoActivity : BaseActivity() {
10131014
if (workInfo != null) {
10141015
when (workInfo.state) {
10151016
WorkInfo.State.SUCCEEDED -> {
1017+
conversationUser.id?.let { userId ->
1018+
ShortcutManagerHelper.disableConversationShortcut(
1019+
context,
1020+
conversationToken,
1021+
userId,
1022+
context.resources.getString(R.string.nc_shortcut_conversation_deleted)
1023+
)
1024+
}
10161025
val intent = Intent(context, MainActivity::class.java)
10171026
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
10181027
startActivity(intent)
@@ -1088,6 +1097,14 @@ class ConversationInfoActivity : BaseActivity() {
10881097
DeleteConversationWorker::class.java
10891098
).setInputData(it).build()
10901099
)
1100+
conversationUser.id?.let { userId ->
1101+
ShortcutManagerHelper.disableConversationShortcut(
1102+
context,
1103+
conversationToken,
1104+
userId,
1105+
context.resources.getString(R.string.nc_shortcut_conversation_deleted)
1106+
)
1107+
}
10911108
val intent = Intent(context, MainActivity::class.java)
10921109
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
10931110
startActivity(intent)

0 commit comments

Comments
 (0)