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"> +