Adding menu with rename action in session overview screen
This commit is contained in:
parent
3de96a3a0c
commit
82fabf4a85
@ -3295,6 +3295,7 @@
|
|||||||
<string name="device_manager_session_details_session_id">Session ID</string>
|
<string name="device_manager_session_details_session_id">Session ID</string>
|
||||||
<string name="device_manager_session_details_session_last_activity">Last activity</string>
|
<string name="device_manager_session_details_session_last_activity">Last activity</string>
|
||||||
<string name="device_manager_session_details_device_ip_address">IP address</string>
|
<string name="device_manager_session_details_device_ip_address">IP address</string>
|
||||||
|
<string name="device_manager_session_rename">Rename session</string>
|
||||||
|
|
||||||
<!-- Note to translators: %s will be replaces with selected space name -->
|
<!-- Note to translators: %s will be replaces with selected space name -->
|
||||||
<string name="home_empty_space_no_rooms_title">%s\nis looking a little empty.</string>
|
<string name="home_empty_space_no_rooms_title">%s\nis looking a little empty.</string>
|
||||||
|
@ -91,6 +91,7 @@ import im.vector.app.features.settings.devices.DevicesViewModel
|
|||||||
import im.vector.app.features.settings.devices.v2.details.SessionDetailsViewModel
|
import im.vector.app.features.settings.devices.v2.details.SessionDetailsViewModel
|
||||||
import im.vector.app.features.settings.devices.v2.othersessions.OtherSessionsViewModel
|
import im.vector.app.features.settings.devices.v2.othersessions.OtherSessionsViewModel
|
||||||
import im.vector.app.features.settings.devices.v2.overview.SessionOverviewViewModel
|
import im.vector.app.features.settings.devices.v2.overview.SessionOverviewViewModel
|
||||||
|
import im.vector.app.features.settings.devices.v2.rename.RenameSessionViewModel
|
||||||
import im.vector.app.features.settings.devtools.AccountDataViewModel
|
import im.vector.app.features.settings.devtools.AccountDataViewModel
|
||||||
import im.vector.app.features.settings.devtools.GossipingEventsPaperTrailViewModel
|
import im.vector.app.features.settings.devtools.GossipingEventsPaperTrailViewModel
|
||||||
import im.vector.app.features.settings.devtools.KeyRequestListViewModel
|
import im.vector.app.features.settings.devtools.KeyRequestListViewModel
|
||||||
@ -653,4 +654,9 @@ interface MavericksViewModelModule {
|
|||||||
@IntoMap
|
@IntoMap
|
||||||
@MavericksViewModelKey(SessionDetailsViewModel::class)
|
@MavericksViewModelKey(SessionDetailsViewModel::class)
|
||||||
fun sessionDetailsViewModelFactory(factory: SessionDetailsViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
fun sessionDetailsViewModelFactory(factory: SessionDetailsViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||||
|
|
||||||
|
@Binds
|
||||||
|
@IntoMap
|
||||||
|
@MavericksViewModelKey(RenameSessionViewModel::class)
|
||||||
|
fun renameSessionViewModelFactory(factory: RenameSessionViewModel.Factory): MavericksAssistedViewModelFactory<*, *>
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ package im.vector.app.features.settings.devices.v2.overview
|
|||||||
|
|
||||||
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 android.widget.Toast
|
import android.widget.Toast
|
||||||
@ -31,6 +32,7 @@ import dagger.hilt.android.AndroidEntryPoint
|
|||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.date.VectorDateFormatter
|
import im.vector.app.core.date.VectorDateFormatter
|
||||||
import im.vector.app.core.platform.VectorBaseFragment
|
import im.vector.app.core.platform.VectorBaseFragment
|
||||||
|
import im.vector.app.core.platform.VectorMenuProvider
|
||||||
import im.vector.app.core.resources.ColorProvider
|
import im.vector.app.core.resources.ColorProvider
|
||||||
import im.vector.app.core.resources.DrawableProvider
|
import im.vector.app.core.resources.DrawableProvider
|
||||||
import im.vector.app.databinding.FragmentSessionOverviewBinding
|
import im.vector.app.databinding.FragmentSessionOverviewBinding
|
||||||
@ -43,7 +45,8 @@ import javax.inject.Inject
|
|||||||
*/
|
*/
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class SessionOverviewFragment :
|
class SessionOverviewFragment :
|
||||||
VectorBaseFragment<FragmentSessionOverviewBinding>() {
|
VectorBaseFragment<FragmentSessionOverviewBinding>(),
|
||||||
|
VectorMenuProvider {
|
||||||
|
|
||||||
@Inject lateinit var viewNavigator: SessionOverviewViewNavigator
|
@Inject lateinit var viewNavigator: SessionOverviewViewNavigator
|
||||||
|
|
||||||
@ -103,6 +106,22 @@ class SessionOverviewFragment :
|
|||||||
views.sessionOverviewInfo.onLearnMoreClickListener = null
|
views.sessionOverviewInfo.onLearnMoreClickListener = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getMenuRes() = R.menu.menu_session_overview
|
||||||
|
|
||||||
|
override fun handleMenuItemSelected(item: MenuItem): Boolean {
|
||||||
|
return when (item.itemId) {
|
||||||
|
R.id.sessionOverviewRename -> {
|
||||||
|
goToRenameSession()
|
||||||
|
true
|
||||||
|
}
|
||||||
|
else -> false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun goToRenameSession() = withState(viewModel) { state ->
|
||||||
|
viewNavigator.goToRenameSession(requireContext(), state.deviceId)
|
||||||
|
}
|
||||||
|
|
||||||
override fun invalidate() = withState(viewModel) { state ->
|
override fun invalidate() = withState(viewModel) { state ->
|
||||||
updateToolbar(state.isCurrentSession)
|
updateToolbar(state.isCurrentSession)
|
||||||
updateEntryDetails(state.deviceId)
|
updateEntryDetails(state.deviceId)
|
||||||
|
@ -20,9 +20,11 @@ import android.os.Bundle
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import com.airbnb.mvrx.fragmentViewModel
|
import com.airbnb.mvrx.fragmentViewModel
|
||||||
import com.airbnb.mvrx.withState
|
import com.airbnb.mvrx.withState
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
import im.vector.app.R
|
||||||
import im.vector.app.core.platform.VectorBaseFragment
|
import im.vector.app.core.platform.VectorBaseFragment
|
||||||
import im.vector.app.databinding.FragmentSessionRenameBinding
|
import im.vector.app.databinding.FragmentSessionRenameBinding
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@ -45,6 +47,13 @@ class RenameSessionFragment :
|
|||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
observeViewEvents()
|
observeViewEvents()
|
||||||
|
initToolbar()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun initToolbar() {
|
||||||
|
(activity as? AppCompatActivity)
|
||||||
|
?.supportActionBar
|
||||||
|
?.setTitle(R.string.device_manager_session_rename)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun observeViewEvents() {
|
private fun observeViewEvents() {
|
||||||
|
11
vector/src/main/res/menu/menu_session_overview.xml
Normal file
11
vector/src/main/res/menu/menu_session_overview.xml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
tools:ignore="AlwaysShowAction">
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/sessionOverviewRename"
|
||||||
|
android:title="@string/device_manager_session_rename"
|
||||||
|
app:showAsAction="withText|never" />
|
||||||
|
</menu>
|
Loading…
x
Reference in New Issue
Block a user