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 diff --git a/library/ui-strings/src/main/res/values/strings.xml b/library/ui-strings/src/main/res/values/strings.xml index b57bb88df2..4d0727e4c3 100644 --- a/library/ui-strings/src/main/res/values/strings.xml +++ b/library/ui-strings/src/main/res/values/strings.xml @@ -3338,7 +3338,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 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/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) { 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 b6b8b5658f..cee90986cd 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() } @@ -251,7 +253,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/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..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" @@ -89,7 +95,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..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" @@ -22,14 +22,14 @@ 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" 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" /> + 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"> () - every { OtherSessionsActivity.newIntent(context.instance, titleResourceId, defaultFilter, excludeCurrentDevice) } returns intent + every { OtherSessionsActivity.newIntent(context.instance, defaultFilter, excludeCurrentDevice) } returns intent return intent } 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, )