From 7e836c0e97d4551d61a33a1e50efab4526c7bae3 Mon Sep 17 00:00:00 2001 From: Maxime NATUREL Date: Mon, 24 Oct 2022 13:59:09 +0200 Subject: [PATCH] Updating the action title to include sessions number --- library/ui-strings/src/main/res/values/strings.xml | 4 ++++ .../devices/v2/VectorSettingsDevicesFragment.kt | 12 ++++++------ .../v2/othersessions/OtherSessionsFragment.kt | 3 ++- vector/src/main/res/menu/menu_other_sessions.xml | 2 +- .../src/main/res/menu/menu_other_sessions_header.xml | 2 +- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/library/ui-strings/src/main/res/values/strings.xml b/library/ui-strings/src/main/res/values/strings.xml index da62e4c300..e772748a41 100644 --- a/library/ui-strings/src/main/res/values/strings.xml +++ b/library/ui-strings/src/main/res/values/strings.xml @@ -3347,6 +3347,10 @@ Select sessions Sign out of these sessions Sign out + + Sign out of %1$d session + Sign out of %1$d sessions + Sign out of this session Session details Application, device, and activity information. 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 f3de06a324..e9778e1368 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 @@ -19,11 +19,9 @@ package im.vector.app.features.settings.devices.v2 import android.content.Context import android.os.Bundle import android.view.LayoutInflater -import android.view.MenuItem import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.widget.ActionMenuView.OnMenuItemClickListener import androidx.core.view.isVisible import com.airbnb.mvrx.Success import com.airbnb.mvrx.fragmentViewModel @@ -50,7 +48,6 @@ import im.vector.app.features.settings.devices.v2.list.SESSION_IS_MARKED_AS_INAC import im.vector.app.features.settings.devices.v2.list.SecurityRecommendationView import im.vector.app.features.settings.devices.v2.list.SecurityRecommendationViewState import im.vector.app.features.settings.devices.v2.list.SessionInfoViewState -import im.vector.app.features.settings.devices.v2.othersessions.OtherSessionsAction import org.matrix.android.sdk.api.session.crypto.model.RoomEncryptionTrustLevel import javax.inject.Inject @@ -137,10 +134,8 @@ class VectorSettingsDevicesFragment : } private fun initOtherSessionsHeaderView() { - val color = colorProvider.getColorFromAttribute(R.attr.colorError) - views.deviceListHeaderOtherSessions.menu.findItem(R.id.otherSessionsHeaderMultiSignout).setTextColor(color) views.deviceListHeaderOtherSessions.setOnMenuItemClickListener { menuItem -> - when(menuItem.itemId) { + when (menuItem.itemId) { R.id.otherSessionsHeaderMultiSignout -> { viewModel.handle(DevicesAction.MultiSignoutOtherSessions) true @@ -290,6 +285,11 @@ class VectorSettingsDevicesFragment : hideOtherSessionsView() } else { views.deviceListHeaderOtherSessions.isVisible = true + val color = colorProvider.getColorFromAttribute(R.attr.colorError) + val multiSignoutItem = views.deviceListHeaderOtherSessions.menu.findItem(R.id.otherSessionsHeaderMultiSignout) + val nbDevices = otherDevices.size + multiSignoutItem.title = stringProvider.getQuantityString(R.plurals.device_manager_other_sessions_multi_signout_all, nbDevices, nbDevices) + multiSignoutItem.setTextColor(color) views.deviceListOtherSessions.isVisible = true views.deviceListOtherSessions.render( devices = otherDevices.take(NUMBER_OF_OTHER_DEVICES_TO_RENDER), 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 8059a75c12..0429c3bbb3 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 @@ -87,7 +87,8 @@ class OtherSessionsFragment : multiSignoutItem.title = if (viewState.isSelectModeEnabled) { getString(R.string.device_manager_other_sessions_multi_signout_selection).uppercase() } else { - getString(R.string.device_manager_other_sessions_multi_signout_all) + val nbDevices = viewState.devices()?.size ?: 0 + stringProvider.getQuantityString(R.plurals.device_manager_other_sessions_multi_signout_all, nbDevices, nbDevices) } multiSignoutItem.isVisible = if (viewState.isSelectModeEnabled) { viewState.devices.invoke()?.any { it.isSelected }.orFalse() diff --git a/vector/src/main/res/menu/menu_other_sessions.xml b/vector/src/main/res/menu/menu_other_sessions.xml index d4a75bd0df..7893575dde 100644 --- a/vector/src/main/res/menu/menu_other_sessions.xml +++ b/vector/src/main/res/menu/menu_other_sessions.xml @@ -11,7 +11,7 @@