mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-28 16:00:31 +05:30
code improvements
This commit is contained in:
parent
6998310809
commit
f9cdd2da5f
@ -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
|
||||
}
|
@ -7,6 +7,8 @@ import androidx.preference.Preference
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.databinding.DialogSliderBinding
|
||||
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
|
||||
|
||||
/**
|
||||
@ -19,13 +21,25 @@ class SliderPreference(
|
||||
context,
|
||||
attributeSet
|
||||
) {
|
||||
private lateinit var sliderBinding: DialogSliderBinding
|
||||
|
||||
override fun onClick() {
|
||||
val sliderBinding = DialogSliderBinding.inflate(
|
||||
sliderBinding = DialogSliderBinding.inflate(
|
||||
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(
|
||||
key,
|
||||
"1.0"
|
||||
range.defaultValue.toString()
|
||||
).toFloat()
|
||||
|
||||
MaterialAlertDialogBuilder(context)
|
||||
|
@ -55,6 +55,7 @@ import com.github.libretube.dialogs.ShareDialog
|
||||
import com.github.libretube.extensions.BaseFragment
|
||||
import com.github.libretube.extensions.TAG
|
||||
import com.github.libretube.extensions.await
|
||||
import com.github.libretube.extensions.setSliderRangeAndValue
|
||||
import com.github.libretube.interfaces.DoubleTapInterface
|
||||
import com.github.libretube.interfaces.PlayerOptionsInterface
|
||||
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.preferences.PreferenceHelper
|
||||
import com.github.libretube.preferences.PreferenceKeys
|
||||
import com.github.libretube.preferences.PreferenceRanges
|
||||
import com.github.libretube.services.BackgroundMode
|
||||
import com.github.libretube.util.AutoPlayHelper
|
||||
import com.github.libretube.util.BackgroundHelper
|
||||
@ -511,6 +513,9 @@ class PlayerFragment : BaseFragment() {
|
||||
|
||||
override fun onPlaybackSpeedClicked() {
|
||||
val playbackSpeedBinding = DialogSliderBinding.inflate(layoutInflater)
|
||||
playbackSpeedBinding.slider.setSliderRangeAndValue(
|
||||
PreferenceRanges.playbackSpeed
|
||||
)
|
||||
playbackSpeedBinding.slider.value = exoPlayer.playbackParameters.speed
|
||||
// change playback speed dialog
|
||||
MaterialAlertDialogBuilder(requireContext())
|
||||
|
@ -0,0 +1,8 @@
|
||||
package com.github.libretube.obj
|
||||
|
||||
data class SliderRange(
|
||||
val valueFrom: Float,
|
||||
val valueTo: Float,
|
||||
val stepSize: Float,
|
||||
val defaultValue: Float
|
||||
)
|
@ -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
|
||||
)
|
||||
}
|
@ -189,8 +189,11 @@ class NotificationHelper(
|
||||
.setContentIntent(pendingIntent)
|
||||
.setAutoCancel(true)
|
||||
|
||||
if (isSummary) builder.setGroupSummary(true)
|
||||
else builder.setContentText(description)
|
||||
if (isSummary) {
|
||||
builder.setGroupSummary(true)
|
||||
} else {
|
||||
builder.setContentText(description)
|
||||
}
|
||||
|
||||
with(NotificationManagerCompat.from(context)) {
|
||||
// notificationId is a unique int for each notification that you must define
|
||||
|
@ -11,7 +11,7 @@
|
||||
android:layout_marginTop="10dp"
|
||||
android:stepSize="0.25"
|
||||
android:value="1"
|
||||
android:valueFrom="0.25"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="5" />
|
||||
|
||||
</LinearLayout>
|
Loading…
x
Reference in New Issue
Block a user