feat: save user's layout choice and always use user preference

This commit is contained in:
antonio 2024-01-28 23:03:20 +01:00
parent ae8aa56602
commit cd44368d66
2 changed files with 18 additions and 0 deletions

View file

@ -34,6 +34,7 @@ import com.cappielloantonio.tempo.ui.adapter.ArtistSimilarAdapter;
import com.cappielloantonio.tempo.ui.adapter.SongHorizontalAdapter;
import com.cappielloantonio.tempo.util.Constants;
import com.cappielloantonio.tempo.util.MusicUtil;
import com.cappielloantonio.tempo.util.Preferences;
import com.cappielloantonio.tempo.viewmodel.ArtistPageViewModel;
import com.google.common.util.concurrent.ListenableFuture;
@ -104,7 +105,12 @@ public class ArtistPageFragment extends Fragment implements ClickCallback {
bind.albumsHorizontalRecyclerView.setVisibility(isHorizontalRecyclerViewVisible ? View.GONE : View.VISIBLE);
bind.albumsVerticalRecyclerView.setVisibility(isHorizontalRecyclerViewVisible ? View.VISIBLE : View.GONE);
Preferences.setArtistAlbumLayout(!isHorizontalRecyclerViewVisible);
});
bind.albumsHorizontalRecyclerView.setVisibility(Preferences.isArtistAlbumLayoutHorizontal() ? View.VISIBLE : View.GONE);
bind.albumsVerticalRecyclerView.setVisibility(Preferences.isArtistAlbumLayoutHorizontal() ? View.GONE : View.VISIBLE);
}
private void initAppBar() {

View file

@ -45,6 +45,7 @@ object Preferences {
private const val BUFFERING_STRATEGY = "buffering_strategy"
private const val SKIP_MIN_STAR_RATING = "skip_min_star_rating"
private const val MIN_STAR_RATING = "min_star_rating"
private const val ARTIST_ALBUM_LAYOUT = "artist_album_layout"
@JvmStatic
@ -345,4 +346,15 @@ object Preferences {
fun getMinStarRatingAccepted(): Int {
return App.getInstance().preferences.getInt(MIN_STAR_RATING, 0)
}
@JvmStatic
fun isArtistAlbumLayoutHorizontal(): Boolean {
return App.getInstance().preferences.getBoolean(ARTIST_ALBUM_LAYOUT, true)
}
@JvmStatic
fun setArtistAlbumLayout(isArtistAlbumLayoutHorizontal: Boolean) {
App.getInstance().preferences.edit().putBoolean(ARTIST_ALBUM_LAYOUT, isArtistAlbumLayoutHorizontal)
.apply()
}
}