mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +00:00
Merge pull request #7 from le-firehawk/feature-persistent-play-prefs
397-feat: Store and retrieve replay and shuffle states in preferences
This commit is contained in:
commit
ea509b749b
3 changed files with 48 additions and 0 deletions
|
|
@ -112,6 +112,9 @@ public class PlayerBottomSheetFragment extends Fragment {
|
||||||
try {
|
try {
|
||||||
MediaBrowser mediaBrowser = mediaBrowserListenableFuture.get();
|
MediaBrowser mediaBrowser = mediaBrowserListenableFuture.get();
|
||||||
|
|
||||||
|
mediaBrowser.setShuffleModeEnabled(Preferences.isShuffleModeEnabled());
|
||||||
|
mediaBrowser.setRepeatMode(Preferences.getRepeatMode());
|
||||||
|
|
||||||
setMediaControllerListener(mediaBrowser);
|
setMediaControllerListener(mediaBrowser);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|
@ -150,6 +153,16 @@ public class PlayerBottomSheetFragment extends Fragment {
|
||||||
public void onEvents(Player player, Player.Events events) {
|
public void onEvents(Player player, Player.Events events) {
|
||||||
setHeaderNextButtonState(mediaBrowser.hasNextMediaItem());
|
setHeaderNextButtonState(mediaBrowser.hasNextMediaItem());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) {
|
||||||
|
Preferences.setShuffleModeEnabled(shuffleModeEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRepeatModeChanged(int repeatMode) {
|
||||||
|
Preferences.setRepeatMode(repeatMode);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -140,6 +140,8 @@ public class PlayerControllerFragment extends Fragment {
|
||||||
MediaBrowser mediaBrowser = mediaBrowserListenableFuture.get();
|
MediaBrowser mediaBrowser = mediaBrowserListenableFuture.get();
|
||||||
|
|
||||||
bind.nowPlayingMediaControllerView.setPlayer(mediaBrowser);
|
bind.nowPlayingMediaControllerView.setPlayer(mediaBrowser);
|
||||||
|
mediaBrowser.setShuffleModeEnabled(Preferences.isShuffleModeEnabled());
|
||||||
|
mediaBrowser.setRepeatMode(Preferences.getRepeatMode());
|
||||||
|
|
||||||
setMediaControllerListener(mediaBrowser);
|
setMediaControllerListener(mediaBrowser);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
@ -160,6 +162,16 @@ public class PlayerControllerFragment extends Fragment {
|
||||||
setMetadata(mediaMetadata);
|
setMetadata(mediaMetadata);
|
||||||
setMediaInfo(mediaMetadata);
|
setMediaInfo(mediaMetadata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) {
|
||||||
|
Preferences.setShuffleModeEnabled(shuffleModeEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRepeatModeChanged(int repeatMode) {
|
||||||
|
Preferences.setRepeatMode(repeatMode);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.cappielloantonio.tempo.util
|
package com.cappielloantonio.tempo.util
|
||||||
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import androidx.media3.common.Player
|
||||||
import com.cappielloantonio.tempo.App
|
import com.cappielloantonio.tempo.App
|
||||||
import com.cappielloantonio.tempo.model.HomeSector
|
import com.cappielloantonio.tempo.model.HomeSector
|
||||||
import com.cappielloantonio.tempo.subsonic.models.OpenSubsonicExtension
|
import com.cappielloantonio.tempo.subsonic.models.OpenSubsonicExtension
|
||||||
|
|
@ -24,6 +25,8 @@ object Preferences {
|
||||||
private const val NEXT_SERVER_SWITCH = "next_server_switch"
|
private const val NEXT_SERVER_SWITCH = "next_server_switch"
|
||||||
private const val PLAYBACK_SPEED = "playback_speed"
|
private const val PLAYBACK_SPEED = "playback_speed"
|
||||||
private const val SKIP_SILENCE = "skip_silence"
|
private const val SKIP_SILENCE = "skip_silence"
|
||||||
|
private const val SHUFFLE_MODE = "shuffle_mode"
|
||||||
|
private const val REPEAT_MODE = "repeat_mode"
|
||||||
private const val IMAGE_CACHE_SIZE = "image_cache_size"
|
private const val IMAGE_CACHE_SIZE = "image_cache_size"
|
||||||
private const val STREAMING_CACHE_SIZE = "streaming_cache_size"
|
private const val STREAMING_CACHE_SIZE = "streaming_cache_size"
|
||||||
private const val IMAGE_SIZE = "image_size"
|
private const val IMAGE_SIZE = "image_size"
|
||||||
|
|
@ -226,6 +229,26 @@ object Preferences {
|
||||||
App.getInstance().preferences.edit().putBoolean(SKIP_SILENCE, isSkipSilenceMode).apply()
|
App.getInstance().preferences.edit().putBoolean(SKIP_SILENCE, isSkipSilenceMode).apply()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun isShuffleModeEnabled(): Boolean {
|
||||||
|
return App.getInstance().preferences.getBoolean(SHUFFLE_MODE, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun setShuffleModeEnabled(shuffleModeEnabled: Boolean) {
|
||||||
|
App.getInstance().preferences.edit().putBoolean(SHUFFLE_MODE, shuffleModeEnabled).apply()
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun getRepeatMode(): Int {
|
||||||
|
return App.getInstance().preferences.getInt(REPEAT_MODE, Player.REPEAT_MODE_OFF)
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun setRepeatMode(repeatMode: Int) {
|
||||||
|
App.getInstance().preferences.edit().putInt(REPEAT_MODE, repeatMode).apply()
|
||||||
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun getImageCacheSize(): Int {
|
fun getImageCacheSize(): Int {
|
||||||
return App.getInstance().preferences.getString(IMAGE_CACHE_SIZE, "500")!!.toInt()
|
return App.getInstance().preferences.getString(IMAGE_CACHE_SIZE, "500")!!.toInt()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue