Remember low priority expand status across restarts
This commit is contained in:
parent
72faa81e2a
commit
c01d98d308
@ -96,6 +96,12 @@ class RoomListFragment @Inject constructor(
|
|||||||
super.onPrepareOptionsMenu(menu)
|
super.onPrepareOptionsMenu(menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
context?.let { roomListViewModel.initWithContext(it, roomListParams.displayMode) }
|
||||||
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
setupCreateRoomButton()
|
setupCreateRoomButton()
|
||||||
@ -118,6 +124,14 @@ class RoomListFragment @Inject constructor(
|
|||||||
.disposeOnDestroyView()
|
.disposeOnDestroyView()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onPause() {
|
||||||
|
super.onPause()
|
||||||
|
|
||||||
|
withState(roomListViewModel) {
|
||||||
|
state -> context?.let { state.persistWithContext(it, roomListParams.displayMode) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun showFailure(throwable: Throwable) {
|
override fun showFailure(throwable: Throwable) {
|
||||||
showErrorInSnackbar(throwable)
|
showErrorInSnackbar(throwable)
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package im.vector.riotx.features.home.room.list
|
package im.vector.riotx.features.home.room.list
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import com.airbnb.mvrx.FragmentViewModelContext
|
import com.airbnb.mvrx.FragmentViewModelContext
|
||||||
import com.airbnb.mvrx.MvRxViewModelFactory
|
import com.airbnb.mvrx.MvRxViewModelFactory
|
||||||
import com.airbnb.mvrx.ViewModelContext
|
import com.airbnb.mvrx.ViewModelContext
|
||||||
@ -61,6 +62,13 @@ class RoomListViewModel @Inject constructor(initialState: RoomListViewState,
|
|||||||
observeMembershipChanges()
|
observeMembershipChanges()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun initWithContext(context: Context, displayMode: RoomListDisplayMode) {
|
||||||
|
setState {
|
||||||
|
// RoomListViewState.initWithContext
|
||||||
|
this.initWithContext(context, displayMode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun handle(action: RoomListAction) {
|
override fun handle(action: RoomListAction) {
|
||||||
when (action) {
|
when (action) {
|
||||||
is RoomListAction.SelectRoom -> handleSelectRoom(action)
|
is RoomListAction.SelectRoom -> handleSelectRoom(action)
|
||||||
|
@ -16,7 +16,10 @@
|
|||||||
|
|
||||||
package im.vector.riotx.features.home.room.list
|
package im.vector.riotx.features.home.room.list
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.SharedPreferences
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
import com.airbnb.mvrx.Async
|
import com.airbnb.mvrx.Async
|
||||||
import com.airbnb.mvrx.MvRxState
|
import com.airbnb.mvrx.MvRxState
|
||||||
import com.airbnb.mvrx.Uninitialized
|
import com.airbnb.mvrx.Uninitialized
|
||||||
@ -41,8 +44,31 @@ data class RoomListViewState(
|
|||||||
val isServerNoticeRoomsExpanded: Boolean = true
|
val isServerNoticeRoomsExpanded: Boolean = true
|
||||||
) : MvRxState {
|
) : MvRxState {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
const val ROOM_LIST_ROOM_EXPANDED_LOW_PRIORITY_PREFIX = "ROOM_LIST_ROOM_EXPANDED_LOW_PRIORITY_"
|
||||||
|
}
|
||||||
|
|
||||||
constructor(args: RoomListParams) : this(displayMode = args.displayMode)
|
constructor(args: RoomListParams) : this(displayMode = args.displayMode)
|
||||||
|
|
||||||
|
private fun getSharedPreferences(context: Context): SharedPreferences {
|
||||||
|
return PreferenceManager.getDefaultSharedPreferences(context)
|
||||||
|
}
|
||||||
|
private fun getRoomListExpandedLowPriorityPref(displayMode: RoomListDisplayMode): String {
|
||||||
|
return ROOM_LIST_ROOM_EXPANDED_LOW_PRIORITY_PREFIX + displayMode.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun initWithContext(context: Context, displayMode: RoomListDisplayMode): RoomListViewState {
|
||||||
|
val sp = getSharedPreferences(context)
|
||||||
|
val pref = getRoomListExpandedLowPriorityPref(displayMode)
|
||||||
|
return copy(isLowPriorityRoomsExpanded = sp.getBoolean(pref, isLowPriorityRoomsExpanded))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun persistWithContext(context: Context, displayMode: RoomListDisplayMode) {
|
||||||
|
val sp = getSharedPreferences(context)
|
||||||
|
val pref = getRoomListExpandedLowPriorityPref(displayMode)
|
||||||
|
sp.edit().putBoolean(pref, isLowPriorityRoomsExpanded).apply()
|
||||||
|
}
|
||||||
|
|
||||||
fun isCategoryExpanded(roomCategory: RoomCategory): Boolean {
|
fun isCategoryExpanded(roomCategory: RoomCategory): Boolean {
|
||||||
return when (roomCategory) {
|
return when (roomCategory) {
|
||||||
RoomCategory.INVITE -> isInviteExpanded
|
RoomCategory.INVITE -> isInviteExpanded
|
||||||
|
Loading…
x
Reference in New Issue
Block a user