From 39364a68b1d58d2427520d6869a1b5e705c03bc0 Mon Sep 17 00:00:00 2001 From: Onuray Sahin Date: Tue, 6 Sep 2022 17:46:56 +0300 Subject: [PATCH] Navigate to other sessions screen. --- vector/src/main/AndroidManifest.xml | 1 + .../settings/devices/v2/VectorSettingsDevicesFragment.kt | 9 ++++++++- .../settings/devices/v2/list/OtherSessionsView.kt | 9 +++++++++ .../devices/v2/othersessions/OtherSessionsActivity.kt | 3 +++ .../devices/v2/othersessions/OtherSessionsFragment.kt | 2 +- .../res/layout/bottom_sheet_device_manager_filter.xml | 3 +-- 6 files changed, 23 insertions(+), 4 deletions(-) diff --git a/vector/src/main/AndroidManifest.xml b/vector/src/main/AndroidManifest.xml index 7ab9e85edc..11c42355cb 100644 --- a/vector/src/main/AndroidManifest.xml +++ b/vector/src/main/AndroidManifest.xml @@ -339,6 +339,7 @@ + diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesFragment.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesFragment.kt index 10ebf3a42f..03e2d2fd98 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesFragment.kt @@ -44,6 +44,7 @@ import im.vector.app.features.settings.devices.DevicesAction import im.vector.app.features.settings.devices.DevicesViewEvents import im.vector.app.features.settings.devices.DevicesViewModel import im.vector.app.features.settings.devices.v2.list.OtherSessionsController +import im.vector.app.features.settings.devices.v2.list.OtherSessionsView import im.vector.app.features.settings.devices.v2.list.SESSION_IS_MARKED_AS_INACTIVE_AFTER_DAYS import im.vector.app.features.settings.devices.v2.list.SecurityRecommendationViewState import im.vector.app.features.settings.devices.v2.list.SessionInfoViewState @@ -54,7 +55,8 @@ import javax.inject.Inject */ @AndroidEntryPoint class VectorSettingsDevicesFragment : - VectorBaseFragment() { + VectorBaseFragment(), + OtherSessionsView.Callback { @Inject lateinit var viewNavigator: VectorSettingsDevicesViewNavigator @@ -126,6 +128,7 @@ class VectorSettingsDevicesFragment : } private fun initOtherSessionsView() { + views.deviceListOtherSessions.callback = this views.deviceListOtherSessions.setCallback(object : OtherSessionsController.Callback { override fun onItemClicked(deviceId: String) { navigateToSessionOverview(deviceId) @@ -260,4 +263,8 @@ class VectorSettingsDevicesFragment : else -> false } } + + override fun onViewAllOtherSessionsClicked() { + viewNavigator.navigateToOtherSessions(requireActivity()) + } } diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionsView.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionsView.kt index 682a9c6e64..c6f8c02d22 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionsView.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionsView.kt @@ -34,13 +34,22 @@ class OtherSessionsView @JvmOverloads constructor( defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr) { + interface Callback { + fun onViewAllOtherSessionsClicked() + } + @Inject lateinit var otherSessionsController: OtherSessionsController private val views: ViewOtherSessionsBinding + var callback: Callback? = null init { inflate(context, R.layout.view_other_sessions, this) views = ViewOtherSessionsBinding.bind(this) + + views.otherSessionsViewAllButton.setOnClickListener { + callback?.onViewAllOtherSessionsClicked() + } } fun render(devices: List) { diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsActivity.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsActivity.kt index ba832c5b00..b9ab59d8f5 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsActivity.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsActivity.kt @@ -19,6 +19,7 @@ package im.vector.app.features.settings.devices.v2.othersessions import android.content.Context import android.content.Intent import android.os.Bundle +import android.view.View import dagger.hilt.android.AndroidEntryPoint import im.vector.app.core.extensions.addFragment import im.vector.app.core.platform.SimpleFragmentActivity @@ -29,6 +30,8 @@ class OtherSessionsActivity : SimpleFragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + views.toolbar.visibility = View.GONE + if (isFirstCreation()) { addFragment( container = views.container, diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsFragment.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsFragment.kt index d28b2a40f7..43d3005f16 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsFragment.kt @@ -37,7 +37,7 @@ class OtherSessionsFragment : VectorBaseFragment() override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - setupToolbar(views.otherSessionsToolbar) + setupToolbar(views.otherSessionsToolbar).allowBack() initFilterView() } diff --git a/vector/src/main/res/layout/bottom_sheet_device_manager_filter.xml b/vector/src/main/res/layout/bottom_sheet_device_manager_filter.xml index 309ce1ec84..ca9092e70d 100644 --- a/vector/src/main/res/layout/bottom_sheet_device_manager_filter.xml +++ b/vector/src/main/res/layout/bottom_sheet_device_manager_filter.xml @@ -77,8 +77,7 @@ style="@style/TextAppearance.Vector.Body.DevicesManagement" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="end" - android:text="@string/device_manager_filter_option_inactive_description" /> + android:layout_gravity="end" />