feat: implemented customizable home, allowing users to toggle visibility of elements and change their order

This commit is contained in:
CappielloAntonio 2024-03-23 21:33:11 +01:00
parent 309eca0764
commit 0e97eab744
12 changed files with 507 additions and 0 deletions

View file

@ -91,4 +91,19 @@ object Constants {
const val PLAYABLE_MEDIA_LIMIT = 100
const val PRE_PLAYABLE_MEDIA = 15
const val HOME_SECTOR_DISCOVERY = "HOME_SECTOR_DISCOVERY"
const val HOME_SECTOR_MADE_FOR_YOU = "HOME_SECTOR_MADE_FOR_YOU"
const val HOME_SECTOR_BEST_OF = "HOME_SECTOR_BEST_OF"
const val HOME_SECTOR_RADIO_STATION = "HOME_SECTOR_RADIO_STATION"
const val HOME_SECTOR_TOP_SONGS = "HOME_SECTOR_TOP_SONGS"
const val HOME_SECTOR_STARRED_TRACKS = "HOME_SECTOR_STARRED_TRACKS"
const val HOME_SECTOR_STARRED_ALBUMS = "HOME_SECTOR_STARRED_ALBUMS"
const val HOME_SECTOR_STARRED_ARTISTS = "HOME_SECTOR_STARRED_ARTISTS"
const val HOME_SECTOR_NEW_RELEASES = "HOME_SECTOR_NEW_RELEASES"
const val HOME_SECTOR_FLASHBACK = "HOME_SECTOR_FLASHBACK"
const val HOME_SECTOR_MOST_PLAYED = "HOME_SECTOR_MOST_PLAYED"
const val HOME_SECTOR_LAST_PLAYED = "HOME_SECTOR_LAST_PLAYED"
const val HOME_SECTOR_RECENTLY_ADDED = "HOME_SECTOR_RECENTLY_ADDED"
const val HOME_SECTOR_SHARED = "HOME_SECTOR_SHARED"
}

View file

@ -1,6 +1,7 @@
package com.cappielloantonio.tempo.util
import com.cappielloantonio.tempo.App
import com.cappielloantonio.tempo.model.HomeSector
import com.cappielloantonio.tempo.subsonic.models.OpenSubsonicExtension
import com.google.gson.Gson
@ -54,6 +55,7 @@ object Preferences {
private const val MIN_STAR_RATING = "min_star_rating"
private const val ALWAYS_ON_DISPLAY = "always_on_display"
private const val AUDIO_QUALITY_PER_ITEM = "audio_quality_per_item"
private const val HOME_SECTOR_LIST = "home_sector_list"
@JvmStatic
@ -384,4 +386,14 @@ object Preferences {
fun showAudioQuality(): Boolean {
return App.getInstance().preferences.getBoolean(AUDIO_QUALITY_PER_ITEM, false)
}
@JvmStatic
fun getHomeSectorList(): String? {
return App.getInstance().preferences.getString(HOME_SECTOR_LIST, null)
}
@JvmStatic
fun setHomeSectorList(extension: List<HomeSector>?) {
App.getInstance().preferences.edit().putString(HOME_SECTOR_LIST, Gson().toJson(extension)).apply()
}
}