mirror of
https://github.com/mihonapp/mihon.git
synced 2024-12-24 18:08:24 +01:00
Remove some state from the library view
This commit is contained in:
parent
3d2a98451b
commit
30b4c6e755
@ -13,6 +13,8 @@ import java.io.File
|
|||||||
|
|
||||||
fun <T> Preference<T>.getOrDefault(): T = get() ?: defaultValue()!!
|
fun <T> Preference<T>.getOrDefault(): T = get() ?: defaultValue()!!
|
||||||
|
|
||||||
|
fun Preference<Boolean>.invert(): Boolean = getOrDefault().let { set(!it); !it }
|
||||||
|
|
||||||
class PreferencesHelper(context: Context) {
|
class PreferencesHelper(context: Context) {
|
||||||
|
|
||||||
val keys = PreferenceKeys(context)
|
val keys = PreferenceKeys(context)
|
||||||
|
@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.data.database.models.Manga
|
|||||||
import eu.kanade.tachiyomi.data.library.LibraryUpdateService
|
import eu.kanade.tachiyomi.data.library.LibraryUpdateService
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||||
|
import eu.kanade.tachiyomi.data.preference.invert
|
||||||
import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment
|
import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment
|
||||||
import eu.kanade.tachiyomi.ui.category.CategoryActivity
|
import eu.kanade.tachiyomi.ui.category.CategoryActivity
|
||||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||||
@ -74,21 +75,6 @@ class LibraryFragment : BaseRxFragment<LibraryPresenter>(), ActionMode.Callback
|
|||||||
*/
|
*/
|
||||||
private var selectedCoverManga: Manga? = null
|
private var selectedCoverManga: Manga? = null
|
||||||
|
|
||||||
/**
|
|
||||||
* Status of isFilterDownloaded
|
|
||||||
*/
|
|
||||||
var isFilterDownloaded = false
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Status of isFilterUnread
|
|
||||||
*/
|
|
||||||
var isFilterUnread = false
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sorting mode for library
|
|
||||||
*/
|
|
||||||
var sortingMode = 0
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of manga per row in grid mode.
|
* Number of manga per row in grid mode.
|
||||||
*/
|
*/
|
||||||
@ -129,9 +115,6 @@ class LibraryFragment : BaseRxFragment<LibraryPresenter>(), ActionMode.Callback
|
|||||||
override fun onCreate(savedState: Bundle?) {
|
override fun onCreate(savedState: Bundle?) {
|
||||||
super.onCreate(savedState)
|
super.onCreate(savedState)
|
||||||
setHasOptionsMenu(true)
|
setHasOptionsMenu(true)
|
||||||
isFilterDownloaded = preferences.filterDownloaded().getOrDefault()
|
|
||||||
isFilterUnread = preferences.filterUnread().getOrDefault()
|
|
||||||
sortingMode = preferences.librarySortingMode().getOrDefault()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedState: Bundle?): View? {
|
||||||
@ -203,11 +186,11 @@ class LibraryFragment : BaseRxFragment<LibraryPresenter>(), ActionMode.Callback
|
|||||||
val sortModeLastUpdated = menu.findItem(R.id.action_sort_last_updated)
|
val sortModeLastUpdated = menu.findItem(R.id.action_sort_last_updated)
|
||||||
|
|
||||||
// Set correct checkbox filter
|
// Set correct checkbox filter
|
||||||
filterDownloadedItem.isChecked = isFilterDownloaded
|
filterDownloadedItem.isChecked = preferences.filterDownloaded().getOrDefault()
|
||||||
filterUnreadItem.isChecked = isFilterUnread
|
filterUnreadItem.isChecked = preferences.filterUnread().getOrDefault()
|
||||||
|
|
||||||
// Set correct radio button sort
|
// Set correct radio button sort
|
||||||
when (sortingMode) {
|
when (preferences.librarySortingMode().getOrDefault()) {
|
||||||
Constants.SORT_LIBRARY_ALPHA -> sortModeAlpha.isChecked = true
|
Constants.SORT_LIBRARY_ALPHA -> sortModeAlpha.isChecked = true
|
||||||
Constants.SORT_LIBRARY_LAST_READ -> sortModeLastRead.isChecked = true
|
Constants.SORT_LIBRARY_LAST_READ -> sortModeLastRead.isChecked = true
|
||||||
Constants.SORT_LIBRARY_LAST_UPDATED -> sortModeLastUpdated.isChecked = true
|
Constants.SORT_LIBRARY_LAST_UPDATED -> sortModeLastUpdated.isChecked = true
|
||||||
@ -243,44 +226,34 @@ class LibraryFragment : BaseRxFragment<LibraryPresenter>(), ActionMode.Callback
|
|||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
R.id.action_filter_unread -> {
|
R.id.action_filter_unread -> {
|
||||||
// Change unread filter status.
|
|
||||||
isFilterUnread = !isFilterUnread
|
|
||||||
// Update settings.
|
// Update settings.
|
||||||
preferences.filterUnread().set(isFilterUnread)
|
preferences.filterUnread().invert()
|
||||||
// Apply filter.
|
// Apply filter.
|
||||||
onFilterOrSortChanged()
|
onFilterOrSortChanged()
|
||||||
}
|
}
|
||||||
R.id.action_filter_downloaded -> {
|
R.id.action_filter_downloaded -> {
|
||||||
// Change downloaded filter status.
|
|
||||||
isFilterDownloaded = !isFilterDownloaded
|
|
||||||
// Update settings.
|
// Update settings.
|
||||||
preferences.filterDownloaded().set(isFilterDownloaded)
|
preferences.filterDownloaded().invert()
|
||||||
// Apply filter.
|
// Apply filter.
|
||||||
onFilterOrSortChanged()
|
onFilterOrSortChanged()
|
||||||
}
|
}
|
||||||
R.id.action_filter_empty -> {
|
R.id.action_filter_empty -> {
|
||||||
// Remove filter status.
|
|
||||||
isFilterUnread = false
|
|
||||||
isFilterDownloaded = false
|
|
||||||
// Update settings.
|
// Update settings.
|
||||||
preferences.filterUnread().set(isFilterUnread)
|
preferences.filterUnread().set(false)
|
||||||
preferences.filterDownloaded().set(isFilterDownloaded)
|
preferences.filterDownloaded().set(false)
|
||||||
// Apply filter
|
// Apply filter
|
||||||
onFilterOrSortChanged()
|
onFilterOrSortChanged()
|
||||||
}
|
}
|
||||||
R.id.action_sort_alpha -> {
|
R.id.action_sort_alpha -> {
|
||||||
sortingMode = Constants.SORT_LIBRARY_ALPHA
|
preferences.librarySortingMode().set(Constants.SORT_LIBRARY_ALPHA)
|
||||||
preferences.librarySortingMode().set(sortingMode)
|
|
||||||
onFilterOrSortChanged()
|
onFilterOrSortChanged()
|
||||||
}
|
}
|
||||||
R.id.action_sort_last_read -> {
|
R.id.action_sort_last_read -> {
|
||||||
sortingMode = Constants.SORT_LIBRARY_LAST_READ
|
preferences.librarySortingMode().set(Constants.SORT_LIBRARY_LAST_READ)
|
||||||
preferences.librarySortingMode().set(sortingMode)
|
|
||||||
onFilterOrSortChanged()
|
onFilterOrSortChanged()
|
||||||
}
|
}
|
||||||
R.id.action_sort_last_updated -> {
|
R.id.action_sort_last_updated -> {
|
||||||
sortingMode = Constants.SORT_LIBRARY_LAST_UPDATED
|
preferences.librarySortingMode().set(Constants.SORT_LIBRARY_LAST_UPDATED)
|
||||||
preferences.librarySortingMode().set(sortingMode)
|
|
||||||
onFilterOrSortChanged()
|
onFilterOrSortChanged()
|
||||||
}
|
}
|
||||||
R.id.action_library_display_mode -> swapDisplayMode()
|
R.id.action_library_display_mode -> swapDisplayMode()
|
||||||
|
@ -105,7 +105,8 @@ class LibraryPresenter : BasePresenter<LibraryFragment>() {
|
|||||||
{ library, updateTrigger -> library })
|
{ library, updateTrigger -> library })
|
||||||
.map { Pair(it.first, applyFilters(it.second)) }
|
.map { Pair(it.first, applyFilters(it.second)) }
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribeLatestCache({ view, pair -> view.onNextLibraryUpdate(pair.first, pair.second) })
|
.subscribeLatestCache(
|
||||||
|
{ view, pair -> view.onNextLibraryUpdate(pair.first, pair.second) })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user