diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ce063e73a..794ace7cc 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -284,7 +284,8 @@
android:enabled="true"
android:exported="false" />
-
diff --git a/app/src/main/java/com/github/libretube/adapters/ChaptersAdapter.kt b/app/src/main/java/com/github/libretube/adapters/ChaptersAdapter.kt
index 7bb0abeaf..dba75dfc4 100644
--- a/app/src/main/java/com/github/libretube/adapters/ChaptersAdapter.kt
+++ b/app/src/main/java/com/github/libretube/adapters/ChaptersAdapter.kt
@@ -31,7 +31,8 @@ class ChaptersAdapter(
if (selectedPosition == position) {
// get the color for highlighted controls
- val color = ThemeHelper.getThemeColor(root.context, android.R.attr.colorControlHighlight)
+ val color =
+ ThemeHelper.getThemeColor(root.context, android.R.attr.colorControlHighlight)
chapterLL.setBackgroundColor(color)
} else chapterLL.setBackgroundColor(Color.TRANSPARENT)
root.setOnClickListener {
diff --git a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt
index 780ef60ef..b0cffc28f 100644
--- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt
+++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt
@@ -202,6 +202,7 @@ class PlayerFragment : Fragment() {
savedInstanceState: Bundle?
): View {
binding = FragmentPlayerBinding.inflate(layoutInflater, container, false)
+ exoPlayerView = binding.player
playerBinding = binding.player.binding
doubleTapOverlayBinding = binding.doubleTapOverlay.binding
@@ -215,6 +216,8 @@ class PlayerFragment : Fragment() {
setUserPrefs()
+ if (autoplayEnabled == true) playerBinding.autoplayIV.setImageResource(R.drawable.ic_toggle_on)
+
val mainActivity = activity as MainActivity
if (autoRotationEnabled) {
// enable auto rotation
@@ -345,8 +348,6 @@ class PlayerFragment : Fragment() {
val mainActivity = activity as MainActivity
mainActivity.binding.container.visibility = View.VISIBLE
- exoPlayerView = binding.player
-
binding.playerMotionLayout.addTransitionListener(object : MotionLayout.TransitionListener {
override fun onTransitionStarted(
motionLayout: MotionLayout?,
@@ -427,6 +428,16 @@ class PlayerFragment : Fragment() {
playerBinding.advancedOptions.visibility = View.VISIBLE
}
}
+ // autoplay toggle button
+ playerBinding.autoplayLL.setOnClickListener {
+ autoplayEnabled = if (autoplayEnabled) {
+ playerBinding.autoplayIV.setImageResource(R.drawable.ic_toggle_off)
+ false
+ } else {
+ playerBinding.autoplayIV.setImageResource(R.drawable.ic_toggle_on)
+ true
+ }
+ }
binding.playImageView.setOnClickListener {
if (!exoPlayer.isPlaying) {
// start or go on playing
@@ -680,8 +691,9 @@ class PlayerFragment : Fragment() {
) as NotificationManager
notificationManager.cancel(1)
exoPlayer.release()
- activity?.requestedOrientation = if ((activity as MainActivity).autoRotationEnabled) ActivityInfo.SCREEN_ORIENTATION_USER
- else ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT
+ activity?.requestedOrientation =
+ if ((activity as MainActivity).autoRotationEnabled) ActivityInfo.SCREEN_ORIENTATION_USER
+ else ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT
} catch (e: Exception) {
}
}
diff --git a/app/src/main/java/com/github/libretube/fragments/PlaylistFragment.kt b/app/src/main/java/com/github/libretube/fragments/PlaylistFragment.kt
index 39066fd10..51048b240 100644
--- a/app/src/main/java/com/github/libretube/fragments/PlaylistFragment.kt
+++ b/app/src/main/java/com/github/libretube/fragments/PlaylistFragment.kt
@@ -122,7 +122,10 @@ class PlaylistFragment : Fragment() {
lifecycleScope.launchWhenCreated {
val response = try {
// load locally stored playlists with the auth api
- if (isPipedPlaylist()) RetrofitInstance.authApi.getPlaylistNextPage(playlistId!!, nextPage!!)
+ if (isPipedPlaylist()) RetrofitInstance.authApi.getPlaylistNextPage(
+ playlistId!!,
+ nextPage!!
+ )
RetrofitInstance.api.getPlaylistNextPage(playlistId!!, nextPage!!)
} catch (e: IOException) {
println(e)
diff --git a/app/src/main/java/com/github/libretube/preferences/AppearanceSettings.kt b/app/src/main/java/com/github/libretube/preferences/AppearanceSettings.kt
index 7363eb2bd..81aece34c 100644
--- a/app/src/main/java/com/github/libretube/preferences/AppearanceSettings.kt
+++ b/app/src/main/java/com/github/libretube/preferences/AppearanceSettings.kt
@@ -65,10 +65,12 @@ class AppearanceSettings : PreferenceFragmentCompat() {
true
}
- val systemCaptionStyle = findPreference(PreferenceKeys.SYSTEM_CAPTION_STYLE)
+ val systemCaptionStyle =
+ findPreference(PreferenceKeys.SYSTEM_CAPTION_STYLE)
val captionSettings = findPreference(PreferenceKeys.CAPTION_SETTINGS)
- captionSettings?.isVisible = PreferenceHelper.getBoolean(PreferenceKeys.SYSTEM_CAPTION_STYLE, true)
+ captionSettings?.isVisible =
+ PreferenceHelper.getBoolean(PreferenceKeys.SYSTEM_CAPTION_STYLE, true)
systemCaptionStyle?.setOnPreferenceChangeListener { _, newValue ->
captionSettings?.isVisible = newValue as Boolean
true
diff --git a/app/src/main/java/com/github/libretube/preferences/InstanceSettings.kt b/app/src/main/java/com/github/libretube/preferences/InstanceSettings.kt
index 3bd2405ef..efa881c08 100644
--- a/app/src/main/java/com/github/libretube/preferences/InstanceSettings.kt
+++ b/app/src/main/java/com/github/libretube/preferences/InstanceSettings.kt
@@ -264,7 +264,8 @@ class InstanceSettings : PreferenceFragmentCompat() {
val token = PreferenceHelper.getToken()
if (token != "") {
// check StorageAccess
- val accessGranted = PermissionHelper.isStoragePermissionGranted(activity as AppCompatActivity)
+ val accessGranted =
+ PermissionHelper.isStoragePermissionGranted(activity as AppCompatActivity)
if (accessGranted) getContent.launch("*/*")
else PermissionHelper.requestReadWrite(activity as AppCompatActivity)
} else {
diff --git a/app/src/main/java/com/github/libretube/preferences/PlayerSettings.kt b/app/src/main/java/com/github/libretube/preferences/PlayerSettings.kt
index df6f2730c..8d22b72ef 100644
--- a/app/src/main/java/com/github/libretube/preferences/PlayerSettings.kt
+++ b/app/src/main/java/com/github/libretube/preferences/PlayerSettings.kt
@@ -8,7 +8,6 @@ import androidx.preference.SwitchPreferenceCompat
import com.github.libretube.R
import com.github.libretube.activities.SettingsActivity
import java.util.*
-import kotlin.collections.ArrayList
class PlayerSettings : PreferenceFragmentCompat() {
val TAG = "PlayerSettings"
@@ -51,8 +50,9 @@ class PlayerSettings : PreferenceFragmentCompat() {
}
defaultSubtitle?.entries = localeNames.toTypedArray()
defaultSubtitle?.entryValues = localeCodes.toTypedArray()
- defaultSubtitle?.summaryProvider = Preference.SummaryProvider { preference ->
- preference.entry
- }
+ defaultSubtitle?.summaryProvider =
+ Preference.SummaryProvider { preference ->
+ preference.entry
+ }
}
}
diff --git a/app/src/main/res/drawable/ic_toggle_off.xml b/app/src/main/res/drawable/ic_toggle_off.xml
new file mode 100644
index 000000000..1f3a01873
--- /dev/null
+++ b/app/src/main/res/drawable/ic_toggle_off.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_toggle_on.xml b/app/src/main/res/drawable/ic_toggle_on.xml
new file mode 100644
index 000000000..d19f35406
--- /dev/null
+++ b/app/src/main/res/drawable/ic_toggle_on.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/exo_styled_player_control_view.xml b/app/src/main/res/layout/exo_styled_player_control_view.xml
index 604c3a678..d7cdd9e77 100644
--- a/app/src/main/res/layout/exo_styled_player_control_view.xml
+++ b/app/src/main/res/layout/exo_styled_player_control_view.xml
@@ -89,30 +89,63 @@
+ android:baselineAligned="false"
+ android:orientation="horizontal">
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -129,6 +162,7 @@
diff --git a/app/src/main/res/layout/fragment_player.xml b/app/src/main/res/layout/fragment_player.xml
index ddcfa77c8..7c0642030 100644
--- a/app/src/main/res/layout/fragment_player.xml
+++ b/app/src/main/res/layout/fragment_player.xml
@@ -372,7 +372,7 @@
app:layout_constraintBottom_toBottomOf="@id/main_container"
app:layout_constraintStart_toStartOf="@id/main_container"
app:layout_constraintTop_toTopOf="@id/main_container"
- app:show_buffering="when_playing" >
+ app:show_buffering="when_playing">
-
-
+ android:descendantFocusability="blocksDescendants"
+ android:visibility="gone">
+