1
0
mirror of https://github.com/vector-im/riotX-android synced 2025-10-06 00:02:48 +02:00

Merge remote-tracking branch 'origin/feature/nfe/edit_layout_config' into community-testing-space-switching-16_08

This commit is contained in:
ericdecanini
2022-08-16 14:38:42 +02:00
6 changed files with 40 additions and 62 deletions

View File

@@ -25,29 +25,17 @@ class HomeLayoutPreferences @Inject constructor(
@DefaultPreferences private val preferences: SharedPreferences @DefaultPreferences private val preferences: SharedPreferences
) { ) {
companion object {
const val SETTINGS_PREFERENCES_HOME_RECENTS = "SETTINGS_PREFERENCES_HOME_RECENTS"
const val SETTINGS_PREFERENCES_HOME_FILTERS = "SETTINGS_PREFERENCES_HOME_FILTERS"
const val SETTINGS_PREFERENCES_USE_AZ_ORDER = "SETTINGS_PREFERENCES_USE_AZ_ORDER"
}
// We need to keep references, because it's kept as a Weak reference and so will be gathered by GC // We need to keep references, because it's kept as a Weak reference and so will be gathered by GC
private var filtersListener: SharedPreferences.OnSharedPreferenceChangeListener? = null private var filtersListener: SharedPreferences.OnSharedPreferenceChangeListener? = null
private var recentsListener: SharedPreferences.OnSharedPreferenceChangeListener? = null private var recentsListener: SharedPreferences.OnSharedPreferenceChangeListener? = null
private var orderListener: SharedPreferences.OnSharedPreferenceChangeListener? = null private var orderListener: SharedPreferences.OnSharedPreferenceChangeListener? = null
fun areRecentsEnabled(): Boolean { fun areRecentsEnabled() = preferences.getBoolean(SETTINGS_PREFERENCES_HOME_RECENTS, false)
return preferences.getBoolean(SETTINGS_PREFERENCES_HOME_RECENTS, false) fun areFiltersEnabled() = preferences.getBoolean(SETTINGS_PREFERENCES_HOME_FILTERS, false)
} fun isAZOrderingEnabled() = preferences.getBoolean(SETTINGS_PREFERENCES_USE_AZ_ORDER, false)
fun setRecentsEnabled(isEnabled: Boolean) { fun setRecentsEnabled(isEnabled: Boolean) {
preferences.edit { preferences.edit { putBoolean(SETTINGS_PREFERENCES_HOME_RECENTS, isEnabled) }
putBoolean(SETTINGS_PREFERENCES_HOME_RECENTS, isEnabled)
}
}
fun areFiltersEnabled(): Boolean {
return preferences.getBoolean(SETTINGS_PREFERENCES_HOME_FILTERS, false)
} }
fun setFiltersEnabled(isEnabled: Boolean) { fun setFiltersEnabled(isEnabled: Boolean) {
@@ -56,10 +44,6 @@ class HomeLayoutPreferences @Inject constructor(
} }
} }
fun isAZOrderingEnabled(): Boolean {
return preferences.getBoolean(SETTINGS_PREFERENCES_USE_AZ_ORDER, false)
}
fun setAZOrderingEnabled(isEnabled: Boolean) { fun setAZOrderingEnabled(isEnabled: Boolean) {
preferences.edit { preferences.edit {
putBoolean(SETTINGS_PREFERENCES_USE_AZ_ORDER, isEnabled) putBoolean(SETTINGS_PREFERENCES_USE_AZ_ORDER, isEnabled)
@@ -104,4 +88,10 @@ class HomeLayoutPreferences @Inject constructor(
preferences.unregisterOnSharedPreferenceChangeListener(recentsListener) preferences.unregisterOnSharedPreferenceChangeListener(recentsListener)
preferences.unregisterOnSharedPreferenceChangeListener(orderListener) preferences.unregisterOnSharedPreferenceChangeListener(orderListener)
} }
companion object {
const val SETTINGS_PREFERENCES_HOME_RECENTS = "SETTINGS_PREFERENCES_HOME_RECENTS"
const val SETTINGS_PREFERENCES_HOME_FILTERS = "SETTINGS_PREFERENCES_HOME_FILTERS"
const val SETTINGS_PREFERENCES_USE_AZ_ORDER = "SETTINGS_PREFERENCES_USE_AZ_ORDER"
}
} }

View File

@@ -202,10 +202,7 @@ class HomeRoomListViewModel @AssistedInject constructor(
.map { it.isNotEmpty() } .map { it.isNotEmpty() }
.distinctUntilChanged() .distinctUntilChanged()
favouritesFlow combine(favouritesFlow, dmsFLow, filtersPreferencesFlow) { hasFavourite, hasDm, areFiltersEnabled ->
.combine(dmsFLow) { hasFavourite, hasDm ->
hasFavourite to hasDm
}.combine(filtersPreferencesFlow) { (hasFavourite, hasDm), areFiltersEnabled ->
Triple(hasFavourite, hasDm, areFiltersEnabled) Triple(hasFavourite, hasDm, areFiltersEnabled)
}.onEach { (hasFavourite, hasDm, areFiltersEnabled) -> }.onEach { (hasFavourite, hasDm, areFiltersEnabled) ->
if (areFiltersEnabled) { if (areFiltersEnabled) {

View File

@@ -26,7 +26,7 @@ import org.matrix.android.sdk.api.util.Optional
sealed class HomeRoomSection { sealed class HomeRoomSection {
data class RoomSummaryData( data class RoomSummaryData(
val list: LiveData<PagedList<RoomSummary>>, val list: LiveData<PagedList<RoomSummary>>,
val filtersData: SharedFlow<Optional<List<HomeRoomFilter>>> val filtersData: SharedFlow<Optional<List<HomeRoomFilter>>>,
) : HomeRoomSection() ) : HomeRoomSection()
data class RecentRoomsData( data class RecentRoomsData(

View File

@@ -27,7 +27,7 @@ import org.matrix.android.sdk.api.session.room.members.ChangeMembershipState
import org.matrix.android.sdk.api.session.room.model.RoomSummary import org.matrix.android.sdk.api.session.room.model.RoomSummary
class HomeFilteredRoomsController( class HomeFilteredRoomsController(
private val roomSummaryItemFactory: RoomSummaryItemFactory private val roomSummaryItemFactory: RoomSummaryItemFactory,
) : PagedListEpoxyController<RoomSummary>( ) : PagedListEpoxyController<RoomSummary>(
// Important it must match the PageList builder notify Looper // Important it must match the PageList builder notify Looper
modelBuildingHandler = createUIHandler() modelBuildingHandler = createUIHandler()

View File

@@ -48,19 +48,10 @@ class HomeLayoutSettingBottomDialogFragment : VectorBaseBottomSheetDialogFragmen
views.homeLayoutSettingsSortActivity.isChecked = true views.homeLayoutSettingsSortActivity.isChecked = true
} }
views.homeLayoutSettingsRecents.setOnCheckedChangeListener { _, isChecked ->
preferences.setRecentsEnabled(isChecked)
}
views.homeLayoutSettingsFilters.setOnCheckedChangeListener { _, isChecked ->
preferences.setFiltersEnabled(isChecked)
}
views.homeLayoutSettingsSortGroup.setOnCheckedChangeListener { _, checkedId ->
preferences.setAZOrderingEnabled(checkedId == R.id.home_layout_settings_sort_name)
}
views.homeLayoutSettingsDone.setOnClickListener { views.homeLayoutSettingsDone.setOnClickListener {
preferences.setRecentsEnabled(views.homeLayoutSettingsRecents.isChecked)
preferences.setFiltersEnabled(views.homeLayoutSettingsFilters.isChecked)
preferences.setAZOrderingEnabled(views.homeLayoutSettingsSortGroup.checkedRadioButtonId == R.id.home_layout_settings_sort_name)
dismiss() dismiss()
} }
} }

View File

@@ -41,6 +41,6 @@
android:icon="@drawable/ic_home_search" android:icon="@drawable/ic_home_search"
android:title="@string/home_filter_placeholder_home" android:title="@string/home_filter_placeholder_home"
app:iconTint="?vctr_content_secondary" app:iconTint="?vctr_content_secondary"
app:showAsAction="always" /> app:showAsAction="ifRoom" />
</menu> </menu>