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 adcda22ab..6592db7a2 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt @@ -39,6 +39,7 @@ import com.google.android.material.appbar.MaterialToolbar import com.nextcloud.talk.R import com.nextcloud.talk.controllers.CallNotificationController import com.nextcloud.talk.controllers.LockedController +import com.nextcloud.talk.controllers.base.BaseController import com.nextcloud.talk.controllers.base.providers.ActionBarProvider import com.nextcloud.talk.newarch.domain.repository.offline.UsersRepository import com.nextcloud.talk.newarch.features.account.serverentry.ServerEntryView @@ -100,7 +101,13 @@ class MainActivity : BaseActivity(), ActionBarProvider { @OnClick(R.id.floatingActionButton) fun onFloatingActionButtonClick() { - openNewConversationScreen() + val backstack = router?.backstack + backstack?.let { + if (it.size > 0) { + val currentController = it[it.size - 1].controller() as BaseController + currentController.onFloatingActionButtonClick() + } + } } override fun onStart() { diff --git a/app/src/main/java/com/nextcloud/talk/controllers/base/BaseController.kt b/app/src/main/java/com/nextcloud/talk/controllers/base/BaseController.kt index c4355e29a..af202aa5f 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/base/BaseController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/base/BaseController.kt @@ -51,6 +51,10 @@ import org.koin.android.ext.android.inject import java.util.* abstract class BaseController : ButterKnifeController(), ComponentCallbacks { + public enum class AppBarLayoutType { + TOOLBAR, + SEARCH_BAR + } open val scopeProvider: LifecycleScopeProvider<*> = ControllerScopeProvider.from(this) @@ -105,12 +109,12 @@ abstract class BaseController : ButterKnifeController(), ComponentCallbacks { } private fun showSearchOrToolbar() { - val value = getIsUsingSearchLayout() + val value = getAppBarLayoutType() == AppBarLayoutType.SEARCH_BAR activity?.let { if (it is MainActivity) { it.searchCardView?.isVisible = value it.floatingActionButton?.isVisible = value - it.toolbar.isVisible = !value + it.toolbar?.isVisible = !value val layoutParams = it.searchCardView?.layoutParams as AppBarLayout.LayoutParams @@ -146,7 +150,7 @@ abstract class BaseController : ButterKnifeController(), ComponentCallbacks { disableKeyboardPersonalisedLearning(view as ViewGroup) activity?.let { - if (it is MainActivity && getIsUsingSearchLayout()) { + if (it is MainActivity) { disableKeyboardPersonalisedLearning(it.appBar) } } @@ -178,7 +182,7 @@ abstract class BaseController : ButterKnifeController(), ComponentCallbacks { val title = getTitle() val actionBar = actionBar - if (title != null && actionBar != null && !getIsUsingSearchLayout()) { + if (title != null && actionBar != null && getAppBarLayoutType() == AppBarLayoutType.TOOLBAR) { actionBar.title = title } else if (title != null && activity is MainActivity) { activity?.inputEditText?.hint = title @@ -216,5 +220,8 @@ abstract class BaseController : ButterKnifeController(), ComponentCallbacks { return null } - open fun getIsUsingSearchLayout(): Boolean = false + open fun onFloatingActionButtonClick() { + } + + open fun getAppBarLayoutType(): AppBarLayoutType = AppBarLayoutType.TOOLBAR } diff --git a/app/src/main/java/com/nextcloud/talk/newarch/features/conversationsList/ConversationsListView.kt b/app/src/main/java/com/nextcloud/talk/newarch/features/conversationsList/ConversationsListView.kt index fb72c55b3..7bfb21fe2 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/features/conversationsList/ConversationsListView.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/features/conversationsList/ConversationsListView.kt @@ -48,6 +48,7 @@ import com.nextcloud.talk.controllers.bottomsheet.items.BasicListItemWithImage import com.nextcloud.talk.controllers.bottomsheet.items.listItemsWithImage import com.nextcloud.talk.models.json.conversations.Conversation import com.nextcloud.talk.newarch.data.presenters.AdvancedEmptyPresenter +import com.nextcloud.talk.newarch.features.contactsflow.ContactsView import com.nextcloud.talk.newarch.features.search.DebouncingTextWatcher import com.nextcloud.talk.newarch.mvvm.BaseView import com.nextcloud.talk.newarch.mvvm.ext.initRecyclerView @@ -287,8 +288,15 @@ class ConversationsListView : BaseView() { return items } - override fun getIsUsingSearchLayout(): Boolean { - return true + override fun onFloatingActionButtonClick() { + router?.pushController( + RouterTransaction.with(ContactsView<Any>()) + .pushChangeHandler(HorizontalChangeHandler()) + .popChangeHandler(HorizontalChangeHandler())) + } + + override fun getAppBarLayoutType(): AppBarLayoutType { + return AppBarLayoutType.SEARCH_BAR } override fun getTitle(): String? { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 02e3fa0ec..19b0d3c72 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -47,7 +47,7 @@ <string name="nc_never">Never joined</string> <string name="nc_search">Search</string> - <string name="nc_search_conversations">Search conversations</string> + <string name="nc_search_conversations">Find conversation</string> <string name="nc_certificate_dialog_title">Check out the certificate</string> <string name="nc_certificate_dialog_text">Do you trust the until now unknown SSL certificate, issued by %1$s for %2$s, valid from %3$s to %4$s?</string>