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:
@@ -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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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(
|
||||||
|
@@ -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()
|
||||||
|
@@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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>
|
||||||
|
Reference in New Issue
Block a user