mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-05 05:27:34 +01:00
Default all in home + lab flag
This commit is contained in:
parent
24a32f2b7e
commit
14144dc99d
@ -69,12 +69,12 @@ class RoomListViewModel @Inject constructor(
|
||||
* Filter the rooms if they are part of the current space (children and grand children).
|
||||
* If current space is null, will return orphan rooms only
|
||||
*/
|
||||
NORMAL,
|
||||
ORPHANS_IF_SPACE_NULL,
|
||||
/**
|
||||
* Special case when we don't want to discriminate rooms when current space is null.
|
||||
* In this case return all.
|
||||
*/
|
||||
NOT_IF_ALL,
|
||||
ALL_IF_SPACE_NULL,
|
||||
/** Do not filter based on space*/
|
||||
NONE
|
||||
}
|
||||
@ -131,7 +131,8 @@ class RoomListViewModel @Inject constructor(
|
||||
},
|
||||
{
|
||||
updatableQuery = it
|
||||
}
|
||||
},
|
||||
vectorPreferences.labsSpacesOnlyOrphansInHome()
|
||||
).buildSections(initialState.displayMode)
|
||||
} else {
|
||||
GroupRoomListSectionBuilder(
|
||||
|
@ -50,7 +50,8 @@ class SpaceRoomListSectionBuilder(
|
||||
val viewModelScope: CoroutineScope,
|
||||
private val suggestedRoomJoiningState: LiveData<Map<String, Async<Unit>>>,
|
||||
val onDisposable: (Disposable) -> Unit,
|
||||
val onUdpatable: (UpdatableLivePageResult) -> Unit
|
||||
val onUdpatable: (UpdatableLivePageResult) -> Unit,
|
||||
val onlyOrphansInHome: Boolean = false
|
||||
) : RoomListSectionBuilder {
|
||||
|
||||
val pagedListConfig = PagedList.Config.Builder()
|
||||
@ -91,7 +92,8 @@ class SpaceRoomListSectionBuilder(
|
||||
activeSpaceAwareQueries,
|
||||
R.string.invitations_header,
|
||||
true,
|
||||
RoomListViewModel.SpaceFilterStrategy.NORMAL
|
||||
RoomListViewModel.SpaceFilterStrategy.ORPHANS_IF_SPACE_NULL.takeIf { onlyOrphansInHome }
|
||||
?: RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL
|
||||
) {
|
||||
it.memberships = listOf(Membership.INVITE)
|
||||
it.roomCategoryFilter = RoomCategoryFilter.ALL
|
||||
@ -102,7 +104,8 @@ class SpaceRoomListSectionBuilder(
|
||||
activeSpaceAwareQueries,
|
||||
R.string.bottom_action_rooms,
|
||||
false,
|
||||
RoomListViewModel.SpaceFilterStrategy.NORMAL
|
||||
RoomListViewModel.SpaceFilterStrategy.ORPHANS_IF_SPACE_NULL.takeIf { onlyOrphansInHome }
|
||||
?: RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL
|
||||
) {
|
||||
it.memberships = listOf(Membership.JOIN)
|
||||
it.roomCategoryFilter = RoomCategoryFilter.ONLY_WITH_NOTIFICATIONS
|
||||
@ -129,7 +132,7 @@ class SpaceRoomListSectionBuilder(
|
||||
sections, activeSpaceAwareQueries,
|
||||
R.string.invitations_header,
|
||||
true,
|
||||
RoomListViewModel.SpaceFilterStrategy.NOT_IF_ALL
|
||||
RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL
|
||||
) {
|
||||
it.memberships = listOf(Membership.INVITE)
|
||||
it.roomCategoryFilter = RoomCategoryFilter.ONLY_ROOMS
|
||||
@ -140,7 +143,7 @@ class SpaceRoomListSectionBuilder(
|
||||
activeSpaceAwareQueries,
|
||||
R.string.bottom_action_favourites,
|
||||
false,
|
||||
RoomListViewModel.SpaceFilterStrategy.NOT_IF_ALL
|
||||
RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL
|
||||
) {
|
||||
it.memberships = listOf(Membership.JOIN)
|
||||
it.roomCategoryFilter = RoomCategoryFilter.ONLY_ROOMS
|
||||
@ -152,7 +155,8 @@ class SpaceRoomListSectionBuilder(
|
||||
activeSpaceAwareQueries,
|
||||
R.string.bottom_action_rooms,
|
||||
false,
|
||||
RoomListViewModel.SpaceFilterStrategy.NORMAL
|
||||
RoomListViewModel.SpaceFilterStrategy.ORPHANS_IF_SPACE_NULL.takeIf { onlyOrphansInHome }
|
||||
?: RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL
|
||||
) {
|
||||
it.memberships = listOf(Membership.JOIN)
|
||||
it.roomCategoryFilter = RoomCategoryFilter.ONLY_ROOMS
|
||||
@ -164,7 +168,8 @@ class SpaceRoomListSectionBuilder(
|
||||
activeSpaceAwareQueries,
|
||||
R.string.low_priority_header,
|
||||
false,
|
||||
RoomListViewModel.SpaceFilterStrategy.NORMAL
|
||||
RoomListViewModel.SpaceFilterStrategy.ORPHANS_IF_SPACE_NULL.takeIf { onlyOrphansInHome }
|
||||
?: RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL
|
||||
) {
|
||||
it.memberships = listOf(Membership.JOIN)
|
||||
it.roomCategoryFilter = RoomCategoryFilter.ONLY_ROOMS
|
||||
@ -176,7 +181,8 @@ class SpaceRoomListSectionBuilder(
|
||||
activeSpaceAwareQueries,
|
||||
R.string.system_alerts_header,
|
||||
false,
|
||||
RoomListViewModel.SpaceFilterStrategy.NORMAL
|
||||
RoomListViewModel.SpaceFilterStrategy.ORPHANS_IF_SPACE_NULL.takeIf { onlyOrphansInHome }
|
||||
?: RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL
|
||||
) {
|
||||
it.memberships = listOf(Membership.JOIN)
|
||||
it.roomCategoryFilter = RoomCategoryFilter.ONLY_ROOMS
|
||||
@ -232,7 +238,7 @@ class SpaceRoomListSectionBuilder(
|
||||
activeSpaceAwareQueries,
|
||||
R.string.invitations_header,
|
||||
true,
|
||||
RoomListViewModel.SpaceFilterStrategy.NOT_IF_ALL
|
||||
RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL
|
||||
) {
|
||||
it.memberships = listOf(Membership.INVITE)
|
||||
it.roomCategoryFilter = RoomCategoryFilter.ONLY_DM
|
||||
@ -242,7 +248,7 @@ class SpaceRoomListSectionBuilder(
|
||||
activeSpaceAwareQueries,
|
||||
R.string.bottom_action_favourites,
|
||||
false,
|
||||
RoomListViewModel.SpaceFilterStrategy.NOT_IF_ALL
|
||||
RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL
|
||||
) {
|
||||
it.memberships = listOf(Membership.JOIN)
|
||||
it.roomCategoryFilter = RoomCategoryFilter.ONLY_DM
|
||||
@ -253,7 +259,7 @@ class SpaceRoomListSectionBuilder(
|
||||
activeSpaceAwareQueries,
|
||||
R.string.bottom_action_people_x,
|
||||
false,
|
||||
RoomListViewModel.SpaceFilterStrategy.NOT_IF_ALL
|
||||
RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL
|
||||
) {
|
||||
it.memberships = listOf(Membership.JOIN)
|
||||
it.roomCategoryFilter = RoomCategoryFilter.ONLY_DM
|
||||
@ -277,7 +283,7 @@ class SpaceRoomListSectionBuilder(
|
||||
pagedListConfig
|
||||
).also {
|
||||
when (spaceFilterStrategy) {
|
||||
RoomListViewModel.SpaceFilterStrategy.NORMAL -> {
|
||||
RoomListViewModel.SpaceFilterStrategy.ORPHANS_IF_SPACE_NULL -> {
|
||||
activeSpaceUpdaters.add(object : RoomListViewModel.ActiveSpaceQueryUpdater {
|
||||
override fun updateForSpaceId(roomId: String?) {
|
||||
it.updateQuery {
|
||||
@ -288,7 +294,7 @@ class SpaceRoomListSectionBuilder(
|
||||
}
|
||||
})
|
||||
}
|
||||
RoomListViewModel.SpaceFilterStrategy.NOT_IF_ALL -> {
|
||||
RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL -> {
|
||||
activeSpaceUpdaters.add(object : RoomListViewModel.ActiveSpaceQueryUpdater {
|
||||
override fun updateForSpaceId(roomId: String?) {
|
||||
if (roomId != null) {
|
||||
@ -349,21 +355,23 @@ class SpaceRoomListSectionBuilder(
|
||||
|
||||
internal fun RoomSummaryQueryParams.process(spaceFilter: RoomListViewModel.SpaceFilterStrategy, currentSpace: String?): RoomSummaryQueryParams {
|
||||
return when (spaceFilter) {
|
||||
RoomListViewModel.SpaceFilterStrategy.NORMAL -> {
|
||||
RoomListViewModel.SpaceFilterStrategy.ORPHANS_IF_SPACE_NULL -> {
|
||||
copy(
|
||||
activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(currentSpace)
|
||||
)
|
||||
}
|
||||
RoomListViewModel.SpaceFilterStrategy.NOT_IF_ALL -> {
|
||||
RoomListViewModel.SpaceFilterStrategy.ALL_IF_SPACE_NULL -> {
|
||||
if (currentSpace == null) {
|
||||
this
|
||||
copy(
|
||||
activeSpaceFilter = ActiveSpaceFilter.None
|
||||
)
|
||||
} else {
|
||||
copy(
|
||||
activeSpaceFilter = ActiveSpaceFilter.ActiveSpace(currentSpace)
|
||||
)
|
||||
}
|
||||
}
|
||||
RoomListViewModel.SpaceFilterStrategy.NONE -> this
|
||||
RoomListViewModel.SpaceFilterStrategy.NONE -> this
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -151,6 +151,7 @@ class VectorPreferences @Inject constructor(private val context: Context) {
|
||||
|
||||
const val SETTINGS_LABS_ALLOW_EXTENDED_LOGS = "SETTINGS_LABS_ALLOW_EXTENDED_LOGS"
|
||||
const val SETTINGS_LABS_USE_RESTRICTED_JOIN_RULE = "SETTINGS_LABS_USE_RESTRICTED_JOIN_RULE"
|
||||
const val SETTINGS_LABS_SPACES_HOME_AS_ORPHAN = "SETTINGS_LABS_SPACES_HOME_AS_ORPHAN"
|
||||
|
||||
private const val SETTINGS_DEVELOPER_MODE_PREFERENCE_KEY = "SETTINGS_DEVELOPER_MODE_PREFERENCE_KEY"
|
||||
private const val SETTINGS_LABS_SHOW_HIDDEN_EVENTS_PREFERENCE_KEY = "SETTINGS_LABS_SHOW_HIDDEN_EVENTS_PREFERENCE_KEY"
|
||||
@ -956,6 +957,10 @@ class VectorPreferences @Inject constructor(private val context: Context) {
|
||||
return defaultPrefs.getBoolean(SETTINGS_LABS_USE_RESTRICTED_JOIN_RULE, false)
|
||||
}
|
||||
|
||||
fun labsSpacesOnlyOrphansInHome(): Boolean {
|
||||
return defaultPrefs.getBoolean(SETTINGS_LABS_SPACES_HOME_AS_ORPHAN, false)
|
||||
}
|
||||
|
||||
/*
|
||||
* Photo / video picker
|
||||
*/
|
||||
|
@ -17,6 +17,9 @@
|
||||
package im.vector.app.features.settings
|
||||
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.preference.VectorSwitchPreference
|
||||
import im.vector.app.features.MainActivity
|
||||
import im.vector.app.features.MainActivityArgs
|
||||
import javax.inject.Inject
|
||||
|
||||
class VectorSettingsLabsFragment @Inject constructor(
|
||||
@ -27,6 +30,11 @@ class VectorSettingsLabsFragment @Inject constructor(
|
||||
override val preferenceXmlRes = R.xml.vector_settings_labs
|
||||
|
||||
override fun bindPref() {
|
||||
// Nothing to do
|
||||
findPreference<VectorSwitchPreference>(VectorPreferences.SETTINGS_LABS_SPACES_HOME_AS_ORPHAN)!!.let { pref ->
|
||||
pref.setOnPreferenceChangeListener { _, _ ->
|
||||
MainActivity.restartApp(requireActivity(), MainActivityArgs(clearCache = false))
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3362,4 +3362,7 @@
|
||||
<string name="space_mark_as_suggested">Mark as suggested</string>
|
||||
<string name="space_mark_as_not_suggested">Mark as not suggested</string>
|
||||
<string name="space_manage_rooms_and_spaces">Manage rooms and spaces</string>
|
||||
|
||||
|
||||
<string name="labs_space_show_orphan_in_home">Experimental Space - Only show orphans in Home</string>
|
||||
</resources>
|
||||
|
@ -52,4 +52,9 @@
|
||||
android:summary="@string/labs_use_restricted_join_rule_desc"/>
|
||||
<!--</im.vector.app.core.preference.VectorPreferenceCategory>-->
|
||||
|
||||
<im.vector.app.core.preference.VectorSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="SETTINGS_LABS_SPACES_HOME_AS_ORPHAN"
|
||||
android:title="@string/labs_space_show_orphan_in_home"/>
|
||||
|
||||
</androidx.preference.PreferenceScreen>
|
Loading…
x
Reference in New Issue
Block a user