mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 11:28:06 +00:00
Fixed clicking on chat message notification while being in conversations list stacked it twice
This commit is contained in:
parent
7c51cf7588
commit
2ad4e76bc3
3 changed files with 14 additions and 12 deletions
|
|
@ -30,7 +30,6 @@ import android.content.Intent
|
|||
import android.content.pm.PackageManager
|
||||
import android.graphics.Bitmap
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.webkit.MimeTypeMap
|
||||
import androidx.annotation.AnyThread
|
||||
import androidx.annotation.MainThread
|
||||
|
|
@ -1147,15 +1146,18 @@ class NotificationsManager @MainThread constructor(private val context: Context)
|
|||
|
||||
@WorkerThread
|
||||
private fun getChatRoomPendingIntent(chatRoom: ChatRoom): PendingIntent {
|
||||
val args = Bundle()
|
||||
args.putString("RemoteSipUri", chatRoom.peerAddress.asStringUriOnly())
|
||||
args.putString("LocalSipUri", chatRoom.localAddress.asStringUriOnly())
|
||||
return NavDeepLinkBuilder(context)
|
||||
.setComponentName(MainActivity::class.java)
|
||||
.setGraph(R.navigation.main_nav_graph)
|
||||
.setDestination(R.id.conversationsListFragment)
|
||||
.setArguments(args)
|
||||
.createPendingIntent()
|
||||
val mainActivityIntent = Intent(context, MainActivity::class.java)
|
||||
mainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
||||
mainActivityIntent.setAction(Intent.ACTION_MAIN)
|
||||
mainActivityIntent.putExtra("Chat", true)
|
||||
mainActivityIntent.putExtra("RemoteSipUri", chatRoom.peerAddress.asStringUriOnly())
|
||||
mainActivityIntent.putExtra("LocalSipUri", chatRoom.localAddress.asStringUriOnly())
|
||||
return PendingIntent.getActivity(
|
||||
context,
|
||||
0,
|
||||
mainActivityIntent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
|
||||
)
|
||||
}
|
||||
|
||||
class Notifiable(val notificationId: Int) {
|
||||
|
|
|
|||
|
|
@ -369,7 +369,6 @@ class MainActivity : GenericActivity() {
|
|||
|
||||
@MainThread
|
||||
private fun handleMainIntent(intent: Intent, defaultDestination: Int, isNewIntent: Boolean) {
|
||||
val navGraph = findNavController().navInflater.inflate(R.navigation.main_nav_graph)
|
||||
if (intent.hasExtra("Chat")) {
|
||||
Log.i("$TAG New intent with [Chat] extra")
|
||||
if (isNewIntent) {
|
||||
|
|
@ -380,12 +379,14 @@ class MainActivity : GenericActivity() {
|
|||
)
|
||||
} else {
|
||||
Log.i("$TAG Going to Conversations fragment instead of default destination")
|
||||
val navGraph = findNavController().navInflater.inflate(R.navigation.main_nav_graph)
|
||||
navGraph.setStartDestination(R.id.conversationsListFragment)
|
||||
findNavController().setGraph(navGraph, intent.extras)
|
||||
}
|
||||
} else {
|
||||
if (!isNewIntent && defaultDestination > 0) {
|
||||
Log.i("$TAG Setting nav graph with expected default destination")
|
||||
val navGraph = findNavController().navInflater.inflate(R.navigation.main_nav_graph)
|
||||
navGraph.setStartDestination(defaultDestination)
|
||||
findNavController().setGraph(navGraph, null)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -205,7 +205,6 @@ class ConversationFragment : SlidingPaneChildFragment() {
|
|||
|
||||
override fun goBack(): Boolean {
|
||||
sharedViewModel.closeSlidingPaneEvent.value = Event(true)
|
||||
coreContext.notificationsManager.resetCurrentlyDisplayedChatRoomId()
|
||||
|
||||
// If not done this fragment won't be paused, which will cause us issues
|
||||
val action = ConversationFragmentDirections.actionConversationFragmentToEmptyFragment()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue