home: fix tab setting migration
Fix a few issues with the tab migration: 1. It wasn't even being ran 2. It incorrectly updated the tabs by adding a playlist tab when it was actually already present.
This commit is contained in:
parent
8953f12a1e
commit
fb892453bd
3 changed files with 9 additions and 5 deletions
|
@ -25,6 +25,7 @@ import androidx.core.content.pm.ShortcutManagerCompat
|
||||||
import androidx.core.graphics.drawable.IconCompat
|
import androidx.core.graphics.drawable.IconCompat
|
||||||
import dagger.hilt.android.HiltAndroidApp
|
import dagger.hilt.android.HiltAndroidApp
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import org.oxycblt.auxio.home.HomeSettings
|
||||||
import org.oxycblt.auxio.image.ImageSettings
|
import org.oxycblt.auxio.image.ImageSettings
|
||||||
import org.oxycblt.auxio.playback.PlaybackSettings
|
import org.oxycblt.auxio.playback.PlaybackSettings
|
||||||
import org.oxycblt.auxio.ui.UISettings
|
import org.oxycblt.auxio.ui.UISettings
|
||||||
|
@ -39,6 +40,7 @@ class Auxio : Application() {
|
||||||
@Inject lateinit var imageSettings: ImageSettings
|
@Inject lateinit var imageSettings: ImageSettings
|
||||||
@Inject lateinit var playbackSettings: PlaybackSettings
|
@Inject lateinit var playbackSettings: PlaybackSettings
|
||||||
@Inject lateinit var uiSettings: UISettings
|
@Inject lateinit var uiSettings: UISettings
|
||||||
|
@Inject lateinit var homeSettings: HomeSettings
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
|
@ -46,6 +48,7 @@ class Auxio : Application() {
|
||||||
imageSettings.migrate()
|
imageSettings.migrate()
|
||||||
playbackSettings.migrate()
|
playbackSettings.migrate()
|
||||||
uiSettings.migrate()
|
uiSettings.migrate()
|
||||||
|
homeSettings.migrate()
|
||||||
// Adding static shortcuts in a dynamic manner is better than declaring them
|
// Adding static shortcuts in a dynamic manner is better than declaring them
|
||||||
// manually, as it will properly handle the difference between debug and release
|
// manually, as it will properly handle the difference between debug and release
|
||||||
// Auxio instances.
|
// Auxio instances.
|
||||||
|
|
|
@ -71,10 +71,13 @@ class HomeSettingsImpl @Inject constructor(@ApplicationContext context: Context)
|
||||||
Tab.fromIntCode(sharedPreferences.getInt(OLD_KEY_LIB_TABS, Tab.SEQUENCE_DEFAULT))
|
Tab.fromIntCode(sharedPreferences.getInt(OLD_KEY_LIB_TABS, Tab.SEQUENCE_DEFAULT))
|
||||||
?: unlikelyToBeNull(Tab.fromIntCode(Tab.SEQUENCE_DEFAULT))
|
?: unlikelyToBeNull(Tab.fromIntCode(Tab.SEQUENCE_DEFAULT))
|
||||||
|
|
||||||
// Add the new playlist tab to old tab configurations
|
// The playlist tab is now parsed, but it needs to be made visible.
|
||||||
val correctedTabs = oldTabs + Tab.Visible(MusicMode.PLAYLISTS)
|
val playlistIndex = oldTabs.indexOfFirst { it.mode == MusicMode.PLAYLISTS }
|
||||||
|
if (playlistIndex > -1) { // Sanity check
|
||||||
|
oldTabs[playlistIndex] = Tab.Visible(MusicMode.PLAYLISTS)
|
||||||
|
}
|
||||||
sharedPreferences.edit {
|
sharedPreferences.edit {
|
||||||
putInt(getString(R.string.set_key_home_tabs), Tab.toIntCode(correctedTabs))
|
putInt(getString(R.string.set_key_home_tabs), Tab.toIntCode(oldTabs))
|
||||||
remove(OLD_KEY_LIB_TABS)
|
remove(OLD_KEY_LIB_TABS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,8 +26,6 @@ import org.oxycblt.auxio.util.logE
|
||||||
*
|
*
|
||||||
* @param mode The type of list in the home view this instance corresponds to.
|
* @param mode The type of list in the home view this instance corresponds to.
|
||||||
* @author Alexander Capehart (OxygenCobalt)
|
* @author Alexander Capehart (OxygenCobalt)
|
||||||
*
|
|
||||||
* TODO: Tab migration to playlists is busted and resets the config entirely. Need to fix.
|
|
||||||
*/
|
*/
|
||||||
sealed class Tab(open val mode: MusicMode) {
|
sealed class Tab(open val mode: MusicMode) {
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue