From 913fb1e5dc4f35e1e52de6406576082e7a9321cc Mon Sep 17 00:00:00 2001 From: Onuray Sahin Date: Thu, 15 Dec 2022 20:21:54 +0300 Subject: [PATCH 1/8] UI review fixes. --- vector/src/main/res/layout/fragment_other_sessions.xml | 4 ++-- vector/src/main/res/layout/fragment_session_overview.xml | 1 + vector/src/main/res/layout/fragment_settings_devices.xml | 2 +- vector/src/main/res/layout/item_other_session.xml | 2 +- vector/src/main/res/layout/item_session_details_content.xml | 2 +- vector/src/main/res/layout/view_other_sessions.xml | 6 ++++-- vector/src/main/res/layout/view_session_info.xml | 2 +- vector/src/main/res/layout/view_sessions_list_header.xml | 2 +- 8 files changed, 12 insertions(+), 9 deletions(-) diff --git a/vector/src/main/res/layout/fragment_other_sessions.xml b/vector/src/main/res/layout/fragment_other_sessions.xml index 62384b7ee1..ce289bd125 100644 --- a/vector/src/main/res/layout/fragment_other_sessions.xml +++ b/vector/src/main/res/layout/fragment_other_sessions.xml @@ -69,7 +69,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="?attr/actionBarSize" - android:layout_marginBottom="32dp" + android:layout_marginBottom="16dp" app:layout_collapseMode="parallax" app:sessionsListHeaderDescription="@string/device_manager_sessions_other_description" app:sessionsListHeaderHasLearnMoreLink="false" @@ -81,7 +81,7 @@ android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="?attr/actionBarSize" - android:layout_marginBottom="32dp" + android:layout_marginBottom="16dp" android:paddingTop="20dp" android:visibility="gone" app:layout_collapseMode="parallax" diff --git a/vector/src/main/res/layout/fragment_session_overview.xml b/vector/src/main/res/layout/fragment_session_overview.xml index 1c59abfd12..4719357802 100644 --- a/vector/src/main/res/layout/fragment_session_overview.xml +++ b/vector/src/main/res/layout/fragment_session_overview.xml @@ -47,6 +47,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginHorizontal="8dp" + android:layout_marginTop="4dp" android:text="@string/device_manager_session_overview_signout" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0" diff --git a/vector/src/main/res/layout/fragment_settings_devices.xml b/vector/src/main/res/layout/fragment_settings_devices.xml index 731049f3a2..266f8df46f 100644 --- a/vector/src/main/res/layout/fragment_settings_devices.xml +++ b/vector/src/main/res/layout/fragment_settings_devices.xml @@ -75,7 +75,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginHorizontal="16dp" - android:layout_marginVertical="16dp" + android:layout_marginVertical="4dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/deviceListHeaderCurrentSession" /> diff --git a/vector/src/main/res/layout/item_other_session.xml b/vector/src/main/res/layout/item_other_session.xml index a6205e7d50..8a265c1c54 100644 --- a/vector/src/main/res/layout/item_other_session.xml +++ b/vector/src/main/res/layout/item_other_session.xml @@ -89,7 +89,7 @@ android:id="@+id/otherSessionSeparator" android:layout_width="0dp" android:layout_height="1dp" - android:layout_marginTop="8dp" + android:layout_marginTop="16dp" android:background="?vctr_content_quinary" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="@id/otherSessionNameTextView" diff --git a/vector/src/main/res/layout/item_session_details_content.xml b/vector/src/main/res/layout/item_session_details_content.xml index 98a21aa923..c14705daa2 100644 --- a/vector/src/main/res/layout/item_session_details_content.xml +++ b/vector/src/main/res/layout/item_session_details_content.xml @@ -22,7 +22,7 @@ style="@style/TextAppearance.Vector.Body" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="8dp" + android:layout_marginStart="12dp" android:layout_marginEnd="@dimen/layout_horizontal_margin" android:gravity="end" app:layout_constraintBottom_toTopOf="@id/sessionDetailsContentDivider" diff --git a/vector/src/main/res/layout/view_other_sessions.xml b/vector/src/main/res/layout/view_other_sessions.xml index 2d02870174..dc3d35494c 100644 --- a/vector/src/main/res/layout/view_other_sessions.xml +++ b/vector/src/main/res/layout/view_other_sessions.xml @@ -3,7 +3,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:paddingBottom="8dp"> diff --git a/vector/src/main/res/layout/view_session_info.xml b/vector/src/main/res/layout/view_session_info.xml index be51bc6915..eff0eef4b6 100644 --- a/vector/src/main/res/layout/view_session_info.xml +++ b/vector/src/main/res/layout/view_session_info.xml @@ -6,7 +6,7 @@ android:layout_height="wrap_content" android:background="@drawable/bg_current_session" android:paddingHorizontal="24dp" - android:paddingBottom="16dp"> + android:paddingBottom="8dp"> Date: Fri, 16 Dec 2022 17:22:40 +0100 Subject: [PATCH 2/8] Using "Other sessions" title everytime --- .../settings/devices/v2/VectorSettingsDevicesFragment.kt | 3 --- .../devices/v2/VectorSettingsDevicesViewNavigator.kt | 3 +-- .../devices/v2/othersessions/OtherSessionsActivity.kt | 5 +---- .../devices/v2/othersessions/OtherSessionsArgs.kt | 3 --- .../devices/v2/othersessions/OtherSessionsFragment.kt | 6 ++++-- .../devices/v2/VectorSettingsDevicesViewNavigatorTest.kt | 9 ++++----- 6 files changed, 10 insertions(+), 19 deletions(-) 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 c21b044f1f..15375ef679 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 @@ -223,7 +223,6 @@ class VectorSettingsDevicesFragment : override fun onViewAllClicked() { viewNavigator.navigateToOtherSessions( requireActivity(), - R.string.device_manager_header_section_security_recommendations_title, DeviceManagerFilterType.UNVERIFIED, excludeCurrentDevice = true ) @@ -233,7 +232,6 @@ class VectorSettingsDevicesFragment : override fun onViewAllClicked() { viewNavigator.navigateToOtherSessions( requireActivity(), - R.string.device_manager_header_section_security_recommendations_title, DeviceManagerFilterType.INACTIVE, excludeCurrentDevice = true ) @@ -447,7 +445,6 @@ class VectorSettingsDevicesFragment : override fun onViewAllOtherSessionsClicked() { viewNavigator.navigateToOtherSessions( context = requireActivity(), - titleResourceId = R.string.device_manager_sessions_other_title, defaultFilter = DeviceManagerFilterType.ALL_SESSIONS, excludeCurrentDevice = true ) diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesViewNavigator.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesViewNavigator.kt index d4b3345fea..bcfa1c30db 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesViewNavigator.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesViewNavigator.kt @@ -31,12 +31,11 @@ class VectorSettingsDevicesViewNavigator @Inject constructor() { fun navigateToOtherSessions( context: Context, - titleResourceId: Int, defaultFilter: DeviceManagerFilterType, excludeCurrentDevice: Boolean, ) { context.startActivity( - OtherSessionsActivity.newIntent(context, titleResourceId, defaultFilter, excludeCurrentDevice) + OtherSessionsActivity.newIntent(context, defaultFilter, excludeCurrentDevice) ) } 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 81e38e0e9d..75c5752e35 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 @@ -20,7 +20,6 @@ import android.content.Context import android.content.Intent import android.os.Bundle import android.view.View -import androidx.annotation.StringRes import com.airbnb.mvrx.Mavericks import dagger.hilt.android.AndroidEntryPoint import im.vector.app.core.extensions.addFragment @@ -48,13 +47,11 @@ class OtherSessionsActivity : SimpleFragmentActivity() { companion object { fun newIntent( context: Context, - @StringRes - titleResourceId: Int, defaultFilter: DeviceManagerFilterType, excludeCurrentDevice: Boolean, ): Intent { return Intent(context, OtherSessionsActivity::class.java).apply { - putExtra(Mavericks.KEY_ARG, OtherSessionsArgs(titleResourceId, defaultFilter, excludeCurrentDevice)) + putExtra(Mavericks.KEY_ARG, OtherSessionsArgs(defaultFilter, excludeCurrentDevice)) } } } diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsArgs.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsArgs.kt index 61f89eaffa..e478959153 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsArgs.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsArgs.kt @@ -17,14 +17,11 @@ package im.vector.app.features.settings.devices.v2.othersessions import android.os.Parcelable -import androidx.annotation.StringRes import im.vector.app.features.settings.devices.v2.filter.DeviceManagerFilterType import kotlinx.parcelize.Parcelize @Parcelize data class OtherSessionsArgs( - @StringRes - val titleResourceId: Int, val defaultFilter: DeviceManagerFilterType, val excludeCurrentDevice: Boolean, ) : Parcelable 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 87330b087a..e77f389178 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 @@ -182,7 +182,9 @@ class OtherSessionsFragment : override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - setupToolbar(views.otherSessionsToolbar).setTitle(args.titleResourceId).allowBack() + setupToolbar(views.otherSessionsToolbar) + .setTitle(R.string.device_manager_sessions_other_title) + .allowBack() observeViewEvents() initFilterView() } @@ -246,7 +248,7 @@ class OtherSessionsFragment : val selection = devices.count { it.isSelected } stringProvider.getQuantityString(R.plurals.x_selected, selection, selection) } else { - getString(args.titleResourceId) + getString(R.string.device_manager_sessions_other_title) } toolbar?.title = title } diff --git a/vector/src/test/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesViewNavigatorTest.kt b/vector/src/test/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesViewNavigatorTest.kt index 24582c75d8..e53e9f7151 100644 --- a/vector/src/test/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesViewNavigatorTest.kt +++ b/vector/src/test/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesViewNavigatorTest.kt @@ -31,7 +31,6 @@ import org.junit.Before import org.junit.Test private const val A_SESSION_ID = "session_id" -private const val A_TITLE_RESOURCE_ID = 1234 private val A_DEFAULT_FILTER = DeviceManagerFilterType.INACTIVE class VectorSettingsDevicesViewNavigatorTest { @@ -67,11 +66,11 @@ class VectorSettingsDevicesViewNavigatorTest { @Test fun `given an intent when navigating to other sessions list then it starts the correct activity`() { // Given - val intent = givenIntentForOtherSessions(A_TITLE_RESOURCE_ID, A_DEFAULT_FILTER, true) + val intent = givenIntentForOtherSessions(A_DEFAULT_FILTER, true) context.givenStartActivity(intent) // When - vectorSettingsDevicesViewNavigator.navigateToOtherSessions(context.instance, A_TITLE_RESOURCE_ID, A_DEFAULT_FILTER, true) + vectorSettingsDevicesViewNavigator.navigateToOtherSessions(context.instance, A_DEFAULT_FILTER, true) // Then context.verifyStartActivity(intent) @@ -96,9 +95,9 @@ class VectorSettingsDevicesViewNavigatorTest { return intent } - private fun givenIntentForOtherSessions(titleResourceId: Int, defaultFilter: DeviceManagerFilterType, excludeCurrentDevice: Boolean): Intent { + private fun givenIntentForOtherSessions(defaultFilter: DeviceManagerFilterType, excludeCurrentDevice: Boolean): Intent { val intent = mockk() - every { OtherSessionsActivity.newIntent(context.instance, titleResourceId, defaultFilter, excludeCurrentDevice) } returns intent + every { OtherSessionsActivity.newIntent(context.instance, defaultFilter, excludeCurrentDevice) } returns intent return intent } From b29306b193e041a9b93e11069299707cf5cfbdd8 Mon Sep 17 00:00:00 2001 From: Maxime NATUREL Date: Fri, 16 Dec 2022 17:28:06 +0100 Subject: [PATCH 3/8] Lower case "session" word --- library/ui-strings/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ui-strings/src/main/res/values/strings.xml b/library/ui-strings/src/main/res/values/strings.xml index d37b5f0906..150b618b36 100644 --- a/library/ui-strings/src/main/res/values/strings.xml +++ b/library/ui-strings/src/main/res/values/strings.xml @@ -3335,7 +3335,7 @@ Consider signing out from old sessions (%1$d day or more) that you don’t use anymore. Consider signing out from old sessions (%1$d days or more) that you don’t use anymore. - Current Session + Current session Session Device From 8e2d82ea9acff89e1ff1092b2d79d3d860c9c19d Mon Sep 17 00:00:00 2001 From: Maxime NATUREL Date: Fri, 16 Dec 2022 17:39:03 +0100 Subject: [PATCH 4/8] Setting margin top of session details header to 32dp --- .../settings/devices/v2/details/SessionDetailsHeaderItem.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/details/SessionDetailsHeaderItem.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/details/SessionDetailsHeaderItem.kt index ff6ce3faad..f76c21da8e 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/details/SessionDetailsHeaderItem.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/details/SessionDetailsHeaderItem.kt @@ -27,7 +27,7 @@ import im.vector.app.core.epoxy.VectorEpoxyHolder import im.vector.app.core.epoxy.VectorEpoxyModel import im.vector.app.core.utils.DimensionConverter -private const val EXTRA_TOP_MARGIN_DP = 48 +private const val EXTRA_TOP_MARGIN_DP = 32 @EpoxyModelClass abstract class SessionDetailsHeaderItem : VectorEpoxyModel(R.layout.item_session_details_header) { From 65d26f180f8e3cf8377d838fdf073f274c294721 Mon Sep 17 00:00:00 2001 From: Onuray Sahin Date: Mon, 19 Dec 2022 13:27:40 +0300 Subject: [PATCH 5/8] Fix alignment of content title and description. --- vector/src/main/res/layout/item_session_details_content.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/layout/item_session_details_content.xml b/vector/src/main/res/layout/item_session_details_content.xml index c14705daa2..c847090b3f 100644 --- a/vector/src/main/res/layout/item_session_details_content.xml +++ b/vector/src/main/res/layout/item_session_details_content.xml @@ -9,7 +9,7 @@ android:id="@+id/sessionDetailsContentTitle" style="@style/TextAppearance.Vector.Body.DevicesManagement" android:layout_width="0dp" - android:layout_height="wrap_content" + android:layout_height="0dp" android:layout_marginStart="@dimen/layout_horizontal_margin" app:layout_constraintBottom_toTopOf="@id/sessionDetailsContentDivider" app:layout_constraintEnd_toStartOf="@id/sessionDetailsContentDescription" @@ -29,7 +29,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/sessionDetailsContentTitle" app:layout_constraintTop_toTopOf="@id/sessionDetailsContentTop" - tools:text="Element Web: Firefox" /> + tools:text="app.element.io: Firefox on macOS" /> Date: Mon, 19 Dec 2022 13:45:50 +0300 Subject: [PATCH 6/8] Add changelog. --- changelog.d/7798.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/7798.bugfix diff --git a/changelog.d/7798.bugfix b/changelog.d/7798.bugfix new file mode 100644 index 0000000000..4289f9ee96 --- /dev/null +++ b/changelog.d/7798.bugfix @@ -0,0 +1 @@ +Device Manager UI review fixes From dd51293621a3c2db71a328013a3ba8de7eb048ae Mon Sep 17 00:00:00 2001 From: Onuray Sahin Date: Mon, 19 Dec 2022 15:46:58 +0300 Subject: [PATCH 7/8] Fix unit test. --- .../devices/v2/othersessions/OtherSessionsViewModelTest.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/vector/src/test/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsViewModelTest.kt b/vector/src/test/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsViewModelTest.kt index 82f40d911d..687d03926f 100644 --- a/vector/src/test/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsViewModelTest.kt +++ b/vector/src/test/java/im/vector/app/features/settings/devices/v2/othersessions/OtherSessionsViewModelTest.kt @@ -47,7 +47,6 @@ import org.junit.Rule import org.junit.Test import org.matrix.android.sdk.api.session.uia.DefaultBaseAuth -private const val A_TITLE_RES_ID = 1 private const val A_DEVICE_ID_1 = "device-id-1" private const val A_DEVICE_ID_2 = "device-id-2" private const val A_PASSWORD = "password" @@ -58,7 +57,6 @@ class OtherSessionsViewModelTest { val mavericksTestRule = MavericksTestRule(testDispatcher = testDispatcher) private val defaultArgs = OtherSessionsArgs( - titleResourceId = A_TITLE_RES_ID, defaultFilter = DeviceManagerFilterType.ALL_SESSIONS, excludeCurrentDevice = false, ) From 2c0d029deab069aee78346bbabaf2366f697e8cf Mon Sep 17 00:00:00 2001 From: Onuray Sahin Date: Mon, 19 Dec 2022 17:12:07 +0300 Subject: [PATCH 8/8] Fix separator UI. --- vector/src/main/res/layout/item_other_session.xml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/vector/src/main/res/layout/item_other_session.xml b/vector/src/main/res/layout/item_other_session.xml index 8a265c1c54..8f6e4f64e4 100644 --- a/vector/src/main/res/layout/item_other_session.xml +++ b/vector/src/main/res/layout/item_other_session.xml @@ -5,9 +5,15 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:foreground="?selectableItemBackground" - android:paddingHorizontal="8dp" android:paddingTop="8dp"> + + @@ -52,8 +58,8 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" - android:layout_marginEnd="8dp" android:layout_marginTop="8dp" + android:layout_marginEnd="8dp" android:ellipsize="end" android:lines="1" app:layout_constraintEnd_toEndOf="parent"