code improvements

This commit is contained in:
Bnyro 2022-08-26 09:04:35 +02:00
parent 6998310809
commit f9cdd2da5f
7 changed files with 64 additions and 5 deletions

View File

@ -0,0 +1,14 @@
package com.github.libretube.extensions
import com.github.libretube.obj.SliderRange
import com.google.android.material.slider.Slider
/**
* set the range of the slider preference
*/
fun Slider.setSliderRangeAndValue(range: SliderRange) {
this.valueFrom = range.valueFrom
this.valueTo = range.valueTo
this.stepSize = range.stepSize
this.value = range.defaultValue
}

View File

@ -7,6 +7,8 @@ import androidx.preference.Preference
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.databinding.DialogSliderBinding import com.github.libretube.databinding.DialogSliderBinding
import com.github.libretube.preferences.PreferenceHelper import com.github.libretube.preferences.PreferenceHelper
import com.github.libretube.preferences.PreferenceKeys
import com.github.libretube.preferences.PreferenceRanges
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
/** /**
@ -19,13 +21,25 @@ class SliderPreference(
context, context,
attributeSet attributeSet
) { ) {
private lateinit var sliderBinding: DialogSliderBinding
override fun onClick() { override fun onClick() {
val sliderBinding = DialogSliderBinding.inflate( sliderBinding = DialogSliderBinding.inflate(
LayoutInflater.from(context) LayoutInflater.from(context)
) )
val range = when (key) {
PreferenceKeys.PLAYBACK_SPEED -> PreferenceRanges.playbackSpeed
PreferenceKeys.BACKGROUND_PLAYBACK_SPEED -> PreferenceRanges.playbackSpeed
else -> null
}
if (range == null) return
sliderBinding.slider.setSliderRangeAndValue(range)
sliderBinding.slider.value = PreferenceHelper.getString( sliderBinding.slider.value = PreferenceHelper.getString(
key, key,
"1.0" range.defaultValue.toString()
).toFloat() ).toFloat()
MaterialAlertDialogBuilder(context) MaterialAlertDialogBuilder(context)

View File

@ -55,6 +55,7 @@ import com.github.libretube.dialogs.ShareDialog
import com.github.libretube.extensions.BaseFragment import com.github.libretube.extensions.BaseFragment
import com.github.libretube.extensions.TAG import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.await import com.github.libretube.extensions.await
import com.github.libretube.extensions.setSliderRangeAndValue
import com.github.libretube.interfaces.DoubleTapInterface import com.github.libretube.interfaces.DoubleTapInterface
import com.github.libretube.interfaces.PlayerOptionsInterface import com.github.libretube.interfaces.PlayerOptionsInterface
import com.github.libretube.models.PlayerViewModel import com.github.libretube.models.PlayerViewModel
@ -64,6 +65,7 @@ import com.github.libretube.obj.Segments
import com.github.libretube.obj.Streams import com.github.libretube.obj.Streams
import com.github.libretube.preferences.PreferenceHelper import com.github.libretube.preferences.PreferenceHelper
import com.github.libretube.preferences.PreferenceKeys import com.github.libretube.preferences.PreferenceKeys
import com.github.libretube.preferences.PreferenceRanges
import com.github.libretube.services.BackgroundMode import com.github.libretube.services.BackgroundMode
import com.github.libretube.util.AutoPlayHelper import com.github.libretube.util.AutoPlayHelper
import com.github.libretube.util.BackgroundHelper import com.github.libretube.util.BackgroundHelper
@ -511,6 +513,9 @@ class PlayerFragment : BaseFragment() {
override fun onPlaybackSpeedClicked() { override fun onPlaybackSpeedClicked() {
val playbackSpeedBinding = DialogSliderBinding.inflate(layoutInflater) val playbackSpeedBinding = DialogSliderBinding.inflate(layoutInflater)
playbackSpeedBinding.slider.setSliderRangeAndValue(
PreferenceRanges.playbackSpeed
)
playbackSpeedBinding.slider.value = exoPlayer.playbackParameters.speed playbackSpeedBinding.slider.value = exoPlayer.playbackParameters.speed
// change playback speed dialog // change playback speed dialog
MaterialAlertDialogBuilder(requireContext()) MaterialAlertDialogBuilder(requireContext())

View File

@ -0,0 +1,8 @@
package com.github.libretube.obj
data class SliderRange(
val valueFrom: Float,
val valueTo: Float,
val stepSize: Float,
val defaultValue: Float
)

View File

@ -0,0 +1,15 @@
package com.github.libretube.preferences
import com.github.libretube.obj.SliderRange
/**
* Stores the ranges for the [SliderPreference]
*/
object PreferenceRanges {
val playbackSpeed = SliderRange(
0.25f,
6.0f,
0.25f,
1.0f
)
}

View File

@ -189,8 +189,11 @@ class NotificationHelper(
.setContentIntent(pendingIntent) .setContentIntent(pendingIntent)
.setAutoCancel(true) .setAutoCancel(true)
if (isSummary) builder.setGroupSummary(true) if (isSummary) {
else builder.setContentText(description) builder.setGroupSummary(true)
} else {
builder.setContentText(description)
}
with(NotificationManagerCompat.from(context)) { with(NotificationManagerCompat.from(context)) {
// notificationId is a unique int for each notification that you must define // notificationId is a unique int for each notification that you must define

View File

@ -11,7 +11,7 @@
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:stepSize="0.25" android:stepSize="0.25"
android:value="1" android:value="1"
android:valueFrom="0.25" android:valueFrom="0"
android:valueTo="5" /> android:valueTo="5" />
</LinearLayout> </LinearLayout>