diff --git a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt index 8375c2623..70e2bb568 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt @@ -93,6 +93,19 @@ class MainActivity : BaseActivity(), ActionBarProvider { router = Conductor.attachRouter(this, binding.controllerContainer, savedInstanceState) + if (intent.getBooleanExtra(BundleKeys.KEY_OPEN_CHAT, false)) { + logRouterBackStack(router!!) + remapChatController( + router!!, + intent.getParcelableExtra(KEY_USER_ENTITY)!!.id!!, + intent.getStringExtra(KEY_ROOM_TOKEN)!!, + intent.extras!!, + true, + true + ) + logRouterBackStack(router!!) + } + if (intent.hasExtra(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL)) { onNewIntent(intent) } else if (!router!!.hasRootController()) { diff --git a/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt b/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt index 8bff35801..74c128dde 100644 --- a/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/contacts/ContactsActivity.kt @@ -25,6 +25,7 @@ package com.nextcloud.talk.contacts import android.app.SearchManager import android.content.Context +import android.content.Intent import android.graphics.PorterDuff import android.graphics.drawable.ColorDrawable import android.os.Build @@ -45,6 +46,7 @@ import autodagger.AutoInjector import com.bluelinelabs.logansquare.LoganSquare import com.nextcloud.talk.R import com.nextcloud.talk.activities.BaseActivity +import com.nextcloud.talk.activities.MainActivity import com.nextcloud.talk.adapters.items.ContactItem import com.nextcloud.talk.adapters.items.GenericTextHeaderItem import com.nextcloud.talk.api.NcApi @@ -66,6 +68,7 @@ import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.DisplayUtils import com.nextcloud.talk.utils.bundle.BundleKeys +import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_OPEN_CHAT import com.nextcloud.talk.utils.database.user.CapabilitiesUtilNew import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.SelectableAdapter @@ -373,15 +376,12 @@ class ContactsActivity : Parcels.wrap(roomOverall.ocs!!.data!!) ) - // TODO: fix to open chat (go via MainActivity and open RemapChat... if conductor is still used) - - // ConductorRemapping.remapChatController( - // router, - // currentUser!!.id!!, - // roomOverall.ocs!!.data!!.token!!, - // bundle, - // true - // ) + // TODO: go directly to ChatActivity when conductor is removed + bundle.putBoolean(KEY_OPEN_CHAT, true) + val intent = Intent(context, MainActivity::class.java) + intent.putExtras(bundle) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) + startActivity(intent) } override fun onError(e: Throwable) { @@ -759,7 +759,6 @@ class ContactsActivity : @Subscribe(threadMode = ThreadMode.MAIN) fun onMessageEvent(openConversationEvent: OpenConversationEvent) { - // TODO: fix to open chat // ConductorRemapping.remapChatController( // router, // currentUser!!.id!!, @@ -767,6 +766,16 @@ class ContactsActivity : // openConversationEvent.bundle!!, // true // ) + + // TODO: go directly to ChatActivity when conductor is removed + + var bundle = openConversationEvent.bundle!! + + bundle.putBoolean(KEY_OPEN_CHAT, true) + val intent = Intent(context, MainActivity::class.java) + intent.putExtras(bundle) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) + startActivity(intent) contactsBottomDialog?.dismiss() } @@ -838,14 +847,12 @@ class ContactsActivity : Parcels.wrap(roomOverall.ocs!!.data!!) ) - // TODO: fix to open chat - // ConductorRemapping.remapChatController( - // router, - // currentUser!!.id!!, - // roomOverall.ocs!!.data!!.token!!, - // bundle, - // true - // ) + // TODO: go directly to ChatActivity when conductor is removed + bundle.putBoolean(KEY_OPEN_CHAT, true) + val intent = Intent(context, MainActivity::class.java) + intent.putExtras(bundle) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) + startActivity(intent) } override fun onError(e: Throwable) { diff --git a/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoActivity.kt b/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoActivity.kt index 41395203a..b6ba4e223 100644 --- a/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversation/info/ConversationInfoActivity.kt @@ -51,6 +51,7 @@ import com.afollestad.materialdialogs.datetime.dateTimePicker import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.nextcloud.talk.R import com.nextcloud.talk.activities.BaseActivity +import com.nextcloud.talk.activities.MainActivity import com.nextcloud.talk.adapters.items.ParticipantItem import com.nextcloud.talk.api.NcApi import com.nextcloud.talk.application.NextcloudTalkApplication @@ -538,8 +539,9 @@ class ConversationInfoActivity : ).setInputData(it).build() ) - // TODO: fix to open ConversationList - // router.popToRoot() + val intent = Intent(context, MainActivity::class.java) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) + startActivity(intent) } } @@ -608,8 +610,9 @@ class ConversationInfoActivity : DeleteConversationWorker::class.java ).setInputData(it).build() ) - // TODO: fix to open ConversationList - // router.popToRoot() + val intent = Intent(context, MainActivity::class.java) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) + startActivity(intent) } } diff --git a/app/src/main/java/com/nextcloud/talk/utils/bundle/BundleKeys.kt b/app/src/main/java/com/nextcloud/talk/utils/bundle/BundleKeys.kt index 4b643b1ed..611a1093c 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/bundle/BundleKeys.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/bundle/BundleKeys.kt @@ -86,4 +86,5 @@ object BundleKeys { const val KEY_DISMISS_RECORDING_URL = "KEY_DISMISS_RECORDING_URL" const val KEY_SHARE_RECORDING_TO_CHAT_URL = "KEY_SHARE_RECORDING_TO_CHAT_URL" const val KEY_GEOCODING_RESULT = "KEY_GEOCODING_RESULT" + const val KEY_OPEN_CHAT = "KEY_OPEN_CHAT" // just temporarily used until conductor is deleted }