Updating the action title to include sessions number
This commit is contained in:
parent
810c93cef9
commit
7e836c0e97
|
@ -3347,6 +3347,10 @@
|
||||||
<string name="device_manager_other_sessions_select">Select sessions</string>
|
<string name="device_manager_other_sessions_select">Select sessions</string>
|
||||||
<string name="device_manager_other_sessions_multi_signout_all">Sign out of these sessions</string>
|
<string name="device_manager_other_sessions_multi_signout_all">Sign out of these sessions</string>
|
||||||
<string name="device_manager_other_sessions_multi_signout_selection">Sign out</string>
|
<string name="device_manager_other_sessions_multi_signout_selection">Sign out</string>
|
||||||
|
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||||
|
<item quantity="one">Sign out of %1$d session</item>
|
||||||
|
<item quantity="other">Sign out of %1$d sessions</item>
|
||||||
|
</plurals>
|
||||||
<string name="device_manager_session_overview_signout">Sign out of this session</string>
|
<string name="device_manager_session_overview_signout">Sign out of this session</string>
|
||||||
<string name="device_manager_session_details_title">Session details</string>
|
<string name="device_manager_session_details_title">Session details</string>
|
||||||
<string name="device_manager_session_details_description">Application, device, and activity information.</string>
|
<string name="device_manager_session_details_description">Application, device, and activity information.</string>
|
||||||
|
|
|
@ -19,11 +19,9 @@ package im.vector.app.features.settings.devices.v2
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.MenuItem
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.appcompat.widget.ActionMenuView.OnMenuItemClickListener
|
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import com.airbnb.mvrx.Success
|
import com.airbnb.mvrx.Success
|
||||||
import com.airbnb.mvrx.fragmentViewModel
|
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.SecurityRecommendationView
|
||||||
import im.vector.app.features.settings.devices.v2.list.SecurityRecommendationViewState
|
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.list.SessionInfoViewState
|
||||||
import im.vector.app.features.settings.devices.v2.othersessions.OtherSessionsAction
|
|
||||||
import org.matrix.android.sdk.api.session.crypto.model.RoomEncryptionTrustLevel
|
import org.matrix.android.sdk.api.session.crypto.model.RoomEncryptionTrustLevel
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -137,10 +134,8 @@ class VectorSettingsDevicesFragment :
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initOtherSessionsHeaderView() {
|
private fun initOtherSessionsHeaderView() {
|
||||||
val color = colorProvider.getColorFromAttribute(R.attr.colorError)
|
|
||||||
views.deviceListHeaderOtherSessions.menu.findItem(R.id.otherSessionsHeaderMultiSignout).setTextColor(color)
|
|
||||||
views.deviceListHeaderOtherSessions.setOnMenuItemClickListener { menuItem ->
|
views.deviceListHeaderOtherSessions.setOnMenuItemClickListener { menuItem ->
|
||||||
when(menuItem.itemId) {
|
when (menuItem.itemId) {
|
||||||
R.id.otherSessionsHeaderMultiSignout -> {
|
R.id.otherSessionsHeaderMultiSignout -> {
|
||||||
viewModel.handle(DevicesAction.MultiSignoutOtherSessions)
|
viewModel.handle(DevicesAction.MultiSignoutOtherSessions)
|
||||||
true
|
true
|
||||||
|
@ -290,6 +285,11 @@ class VectorSettingsDevicesFragment :
|
||||||
hideOtherSessionsView()
|
hideOtherSessionsView()
|
||||||
} else {
|
} else {
|
||||||
views.deviceListHeaderOtherSessions.isVisible = true
|
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.isVisible = true
|
||||||
views.deviceListOtherSessions.render(
|
views.deviceListOtherSessions.render(
|
||||||
devices = otherDevices.take(NUMBER_OF_OTHER_DEVICES_TO_RENDER),
|
devices = otherDevices.take(NUMBER_OF_OTHER_DEVICES_TO_RENDER),
|
||||||
|
|
|
@ -87,7 +87,8 @@ class OtherSessionsFragment :
|
||||||
multiSignoutItem.title = if (viewState.isSelectModeEnabled) {
|
multiSignoutItem.title = if (viewState.isSelectModeEnabled) {
|
||||||
getString(R.string.device_manager_other_sessions_multi_signout_selection).uppercase()
|
getString(R.string.device_manager_other_sessions_multi_signout_selection).uppercase()
|
||||||
} else {
|
} 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) {
|
multiSignoutItem.isVisible = if (viewState.isSelectModeEnabled) {
|
||||||
viewState.devices.invoke()?.any { it.isSelected }.orFalse()
|
viewState.devices.invoke()?.any { it.isSelected }.orFalse()
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/otherSessionsMultiSignout"
|
android:id="@+id/otherSessionsMultiSignout"
|
||||||
android:title="@string/device_manager_other_sessions_multi_signout_all"
|
android:title="@plurals/device_manager_other_sessions_multi_signout_all"
|
||||||
app:showAsAction="withText|never" />
|
app:showAsAction="withText|never" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/otherSessionsHeaderMultiSignout"
|
android:id="@+id/otherSessionsHeaderMultiSignout"
|
||||||
android:title="@string/device_manager_other_sessions_multi_signout_all"
|
android:title="@plurals/device_manager_other_sessions_multi_signout_all"
|
||||||
app:showAsAction="withText|never" />
|
app:showAsAction="withText|never" />
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|
Loading…
Reference in New Issue