Allow automatic backward skip of a configurable number of seconds on pause (#134).
This commit is contained in:
parent
2d272d13c9
commit
ec6187aeac
|
@ -36,6 +36,7 @@ import com.google.android.exoplayer2.ExoPlayer
|
|||
import com.google.android.exoplayer2.PlaybackException
|
||||
import com.google.android.exoplayer2.Player
|
||||
import com.google.android.exoplayer2.Tracks
|
||||
import com.preference.PowerPreference
|
||||
import com.squareup.picasso.Picasso
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers.IO
|
||||
|
@ -43,7 +44,6 @@ import kotlinx.coroutines.Dispatchers.Main
|
|||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.collect
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.koin.java.KoinJavaComponent.inject
|
||||
|
@ -422,11 +422,24 @@ class PlayerService : Service() {
|
|||
return allowed
|
||||
}
|
||||
|
||||
private fun skipBackwardsAfterPause(): Int {
|
||||
val deltaPref = PowerPreference.getDefaultFile().getString("auto_skip_backwards_on_pause")
|
||||
val delta = deltaPref.toFloatOrNull()
|
||||
return if (delta == null) 0 else (delta * 1000).toInt()
|
||||
}
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
inner class PlayerEventListener : Player.Listener {
|
||||
override fun onIsPlayingChanged(isPlaying: Boolean) {
|
||||
super.onIsPlayingChanged(isPlaying)
|
||||
mediaControlsManager.updateNotification(queue.current(), isPlaying)
|
||||
if (!isPlaying) {
|
||||
val delta = skipBackwardsAfterPause()
|
||||
val (current, duration, _) = getProgress(true)
|
||||
val position = if (current > delta) current - delta else 0
|
||||
player.seekTo(position.toLong())
|
||||
ProgressBus.send(position, duration, ((position.toFloat()) / duration / 10).toInt())
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPlayWhenReadyChanged(playWhenReady: Boolean, reason: Int) {
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
<string name="settings_play_order_shuffle_summary">You prefer shuffling album tracks</string>
|
||||
<string name="settings_play_order_in_order">Play albums in order</string>
|
||||
<string name="settings_play_order_in_order_summary">You prefer playing albums in order</string>
|
||||
<string name="settings_auto_skip_backwards_on_pause">Skip backwards when pausing</string>
|
||||
<string name="settings_auto_skip_backwards_on_pause_summary">Number of seconds to skip backwards when playing is paused</string>
|
||||
<string name="settings_other">Other</string>
|
||||
<string name="settings_night_mode">Dark mode</string>
|
||||
<string name="settings_night_mode_on">Always on (dark mode)</string>
|
||||
|
|
|
@ -29,6 +29,18 @@
|
|||
android:icon="@drawable/play"
|
||||
android:key="play_order"
|
||||
android:title="@string/settings_play_order" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="0"
|
||||
android:dialogTitle="@string/settings_auto_skip_backwards_on_pause_summary"
|
||||
android:icon="@drawable/pause"
|
||||
android:inputType="number"
|
||||
android:key="auto_skip_backwards_on_pause"
|
||||
android:selectAllOnFocus="true"
|
||||
android:singleLine="true"
|
||||
android:summary="@string/settings_auto_skip_backwards_on_pause_summary"
|
||||
android:title="@string/settings_auto_skip_backwards_on_pause"
|
||||
android:visibility="visible"
|
||||
app:useSimpleSummaryProvider="true"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Allow backward skip after pause by configurable number of seconds (contributed by hdasch)
|
Loading…
Reference in New Issue