home: cleanup code
Clean up some bugs and old code from the tab customization addition.
This commit is contained in:
parent
23d1be8ebc
commit
0537681a86
4 changed files with 20 additions and 11 deletions
|
@ -39,6 +39,10 @@ class HomeViewModel : ViewModel(), SettingsManager.Callback {
|
|||
private val musicStore = MusicStore.getInstance()
|
||||
private val settingsManager = SettingsManager.getInstance()
|
||||
|
||||
/** Internal getter for getting the visible library tabs */
|
||||
private val visibleTabs: List<DisplayMode> get() = settingsManager.libTabs
|
||||
.filterIsInstance<Tab.Visible>().map { it.mode }
|
||||
|
||||
private val mSongs = MutableLiveData(listOf<Song>())
|
||||
val songs: LiveData<List<Song>> get() = mSongs
|
||||
|
||||
|
@ -51,7 +55,7 @@ class HomeViewModel : ViewModel(), SettingsManager.Callback {
|
|||
private val mGenres = MutableLiveData(listOf<Genre>())
|
||||
val genres: LiveData<List<Genre>> get() = mGenres
|
||||
|
||||
var tabs: List<DisplayMode> = settingsManager.visibleTabs
|
||||
var tabs: List<DisplayMode> = visibleTabs
|
||||
private set
|
||||
|
||||
private val mCurTab = MutableLiveData(tabs[0])
|
||||
|
@ -122,7 +126,7 @@ class HomeViewModel : ViewModel(), SettingsManager.Callback {
|
|||
// --- OVERRIDES ---
|
||||
|
||||
override fun onLibTabsUpdate(libTabs: Array<Tab>) {
|
||||
tabs = settingsManager.visibleTabs
|
||||
tabs = visibleTabs
|
||||
mRecreateTabs.value = true
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
package org.oxycblt.auxio.settings
|
||||
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.annotation.DrawableRes
|
||||
|
@ -105,6 +106,8 @@ class SettingsListFragment : PreferenceFragmentCompat() {
|
|||
pref.apply {
|
||||
when (key) {
|
||||
SettingsManager.KEY_THEME -> {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) return
|
||||
|
||||
setIcon(AppCompatDelegate.getDefaultNightMode().toThemeIcon())
|
||||
|
||||
onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, value ->
|
||||
|
@ -115,6 +118,8 @@ class SettingsListFragment : PreferenceFragmentCompat() {
|
|||
}
|
||||
|
||||
SettingsManager.KEY_BLACK_THEME -> {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) return
|
||||
|
||||
onPreferenceClickListener = Preference.OnPreferenceClickListener {
|
||||
if (requireContext().isNight) {
|
||||
requireActivity().recreate()
|
||||
|
@ -125,6 +130,8 @@ class SettingsListFragment : PreferenceFragmentCompat() {
|
|||
}
|
||||
|
||||
SettingsManager.KEY_ACCENT -> {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) return
|
||||
|
||||
onPreferenceClickListener = Preference.OnPreferenceClickListener {
|
||||
AccentDialog().show(childFragmentManager, AccentDialog.TAG)
|
||||
true
|
||||
|
|
|
@ -31,6 +31,8 @@ import org.oxycblt.auxio.ui.SortMode
|
|||
/**
|
||||
* Wrapper around the [SharedPreferences] class that writes & reads values without a context.
|
||||
* @author OxygenCobalt
|
||||
* TODO: Consider re-adding the colorize notif setting but only on <Android 10 since it really
|
||||
* doesn't work on Android 11+
|
||||
*/
|
||||
class SettingsManager private constructor(context: Context) :
|
||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
@ -82,9 +84,6 @@ class SettingsManager private constructor(context: Context) :
|
|||
}
|
||||
}
|
||||
|
||||
/** The currently visible library tabs */
|
||||
val visibleTabs: List<DisplayMode> get() = libTabs.filterIsInstance<Tab.Visible>().map { it.mode }
|
||||
|
||||
/** Whether to load embedded covers */
|
||||
val showCovers: Boolean
|
||||
get() = sharedPrefs.getBoolean(KEY_SHOW_COVERS, true)
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
package org.oxycblt.auxio.settings.tabs
|
||||
|
||||
import org.oxycblt.auxio.ui.DisplayMode
|
||||
import org.oxycblt.auxio.util.logD
|
||||
import org.oxycblt.auxio.util.logE
|
||||
|
||||
/**
|
||||
|
@ -54,10 +55,6 @@ sealed class Tab(open val mode: DisplayMode) {
|
|||
/** The default tab sequence, represented in integer form **/
|
||||
const val SEQUENCE_DEFAULT = 0b1000_1001_1010_1011_0100
|
||||
|
||||
// Temporary value to make sure we create a 5-tab sequence even though playlists
|
||||
// aren't implemented yet.
|
||||
private const val TEMP_BIT_CAP = 20
|
||||
|
||||
/**
|
||||
* Convert an array [tabs] into a sequence of tabs.
|
||||
*/
|
||||
|
@ -66,7 +63,7 @@ sealed class Tab(open val mode: DisplayMode) {
|
|||
val distinct = tabs.distinctBy { it.mode }
|
||||
|
||||
var sequence = 0b0100
|
||||
var shift = TEMP_BIT_CAP
|
||||
var shift = SEQUENCE_LEN * 4
|
||||
|
||||
distinct.forEach { tab ->
|
||||
val bin = when (tab) {
|
||||
|
@ -89,9 +86,11 @@ sealed class Tab(open val mode: DisplayMode) {
|
|||
|
||||
// Try to parse a mode for each chunk in the sequence.
|
||||
// If we can't parse one, just skip it.
|
||||
for (shift in (0..TEMP_BIT_CAP).reversed() step 4) {
|
||||
for (shift in (0..4 * SEQUENCE_LEN).reversed() step 4) {
|
||||
val chunk = sequence.shr(shift) and 0b1111
|
||||
|
||||
logD(sequence.shr(shift).toString(2))
|
||||
|
||||
val mode = when (chunk and 7) {
|
||||
0 -> DisplayMode.SHOW_SONGS
|
||||
1 -> DisplayMode.SHOW_ALBUMS
|
||||
|
|
Loading…
Reference in a new issue