mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-14 06:10:31 +05:30
commit
0fc1cbe8cc
@ -66,7 +66,11 @@ class MainActivity : BaseActivity() {
|
||||
else ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT
|
||||
|
||||
// start service that gets called on closure
|
||||
startService(Intent(this, ClosingService::class.java))
|
||||
try {
|
||||
startService(Intent(this, ClosingService::class.java))
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
|
||||
CronetHelper.initCronet(this.applicationContext)
|
||||
ConnectionHelper.imageLoader = ImageLoader.Builder(this.applicationContext)
|
||||
|
@ -82,7 +82,6 @@ import com.google.android.exoplayer2.trackselection.DefaultTrackSelector
|
||||
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout
|
||||
import com.google.android.exoplayer2.ui.CaptionStyleCompat
|
||||
import com.google.android.exoplayer2.ui.StyledPlayerView
|
||||
import com.google.android.exoplayer2.ui.TimeBar
|
||||
import com.google.android.exoplayer2.upstream.DataSource
|
||||
import com.google.android.exoplayer2.upstream.DefaultDataSource
|
||||
import com.google.android.exoplayer2.upstream.DefaultHttpDataSource
|
||||
@ -161,7 +160,6 @@ class PlayerFragment : BaseFragment() {
|
||||
private var videoFormatPreference = "webm"
|
||||
private var defRes = ""
|
||||
private var bufferingGoal = 50000
|
||||
private var seekBarPreview = false
|
||||
private var defaultSubtitleCode = ""
|
||||
private var sponsorBlockEnabled = true
|
||||
private var sponsorBlockNotifications = true
|
||||
@ -310,11 +308,6 @@ class PlayerFragment : BaseFragment() {
|
||||
"50"
|
||||
).toInt() * 1000
|
||||
|
||||
seekBarPreview = PreferenceHelper.getBoolean(
|
||||
PreferenceKeys.SEEKBAR_PREVIEW,
|
||||
false
|
||||
)
|
||||
|
||||
sponsorBlockEnabled = PreferenceHelper.getBoolean(
|
||||
"sb_enabled_key",
|
||||
true
|
||||
@ -599,12 +592,12 @@ class PlayerFragment : BaseFragment() {
|
||||
// probably a youtube shorts video
|
||||
if (videoSize.height > videoSize.width) ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT
|
||||
// a video with normal aspect ratio
|
||||
else ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE
|
||||
else ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
|
||||
}
|
||||
"auto" -> ActivityInfo.SCREEN_ORIENTATION_SENSOR
|
||||
"landscape" -> ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE
|
||||
"landscape" -> ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
|
||||
"portrait" -> ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT
|
||||
else -> ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE
|
||||
else -> ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
|
||||
}
|
||||
mainActivity.requestedOrientation = orientation
|
||||
}
|
||||
@ -915,7 +908,6 @@ class PlayerFragment : BaseFragment() {
|
||||
|
||||
playerBinding.exoTitle.text = response.title
|
||||
|
||||
if (seekBarPreview) enableSeekbarPreview()
|
||||
enableDoubleTapToSeek()
|
||||
|
||||
// init the chapters recyclerview
|
||||
@ -1173,31 +1165,6 @@ class PlayerFragment : BaseFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
// enable seek bar preview
|
||||
private fun enableSeekbarPreview() {
|
||||
playerBinding.exoProgress.addListener(object : TimeBar.OnScrubListener {
|
||||
override fun onScrubStart(timeBar: TimeBar, position: Long) {
|
||||
exoPlayer.pause()
|
||||
}
|
||||
|
||||
override fun onScrubMove(timeBar: TimeBar, position: Long) {
|
||||
val minTimeDiff = 10 * 1000 // 10s
|
||||
// get the difference between the new and the old position
|
||||
val diff = abs(exoPlayer.currentPosition - position)
|
||||
// seek only when the difference is greater than 10 seconds
|
||||
if (diff >= minTimeDiff) exoPlayer.seekTo(position)
|
||||
}
|
||||
|
||||
override fun onScrubStop(timeBar: TimeBar, position: Long, canceled: Boolean) {
|
||||
exoPlayer.seekTo(position)
|
||||
exoPlayer.play()
|
||||
Handler(Looper.getMainLooper()).postDelayed({
|
||||
exoPlayerView.hideController()
|
||||
}, 200)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun initializeChapters() {
|
||||
if (chapters.isNotEmpty()) {
|
||||
// enable chapters in the video description
|
||||
|
@ -142,6 +142,12 @@ object PreferenceHelper {
|
||||
|
||||
watchHistory += watchHistoryItem
|
||||
|
||||
// remove oldest item when the watch history is longer than the pref
|
||||
val maxWatchHistorySize = getString(PreferenceKeys.WATCH_HISTORY_SIZE, "unlimited")
|
||||
if (maxWatchHistorySize != "unlimited" && watchHistory.size > maxWatchHistorySize.toInt()) {
|
||||
watchHistory.removeAt(0)
|
||||
}
|
||||
|
||||
val json = mapper.writeValueAsString(watchHistory)
|
||||
editor.putString("watch_history", json).apply()
|
||||
}
|
||||
|
@ -54,7 +54,6 @@ object PreferenceKeys {
|
||||
const val PLAYER_VIDEO_FORMAT = "player_video_format"
|
||||
const val DEFAULT_RESOLUTION = "default_res"
|
||||
const val BUFFERING_GOAL = "buffering_goal"
|
||||
const val SEEKBAR_PREVIEW = "seekbar_preview"
|
||||
const val PLAYER_AUDIO_FORMAT = "player_audio_format"
|
||||
const val PLAYER_AUDIO_QUALITY = "player_audio_quality"
|
||||
const val DEFAULT_SUBTITLE = "default_subtitle"
|
||||
@ -84,6 +83,11 @@ object PreferenceKeys {
|
||||
const val CLEAR_WATCH_POSITIONS = "clear_watch_positions"
|
||||
const val SHARE_WITH_TIME_CODE = "share_with_time_code"
|
||||
|
||||
/**
|
||||
* History
|
||||
*/
|
||||
const val WATCH_HISTORY_SIZE = "watch_history_size"
|
||||
|
||||
/**
|
||||
* Error logs
|
||||
*/
|
||||
|
@ -4,7 +4,7 @@
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M6,19h4L10,5L6,5v14zM14,5v14h4L18,5h-4z" />
|
||||
<path
|
||||
android:pathData="M6.719,19H10.24V5H6.719ZM13.76,5v14h3.521V5Z"
|
||||
android:fillColor="@android:color/white"/>
|
||||
</vector>
|
||||
|
@ -70,7 +70,8 @@
|
||||
<TextView
|
||||
android:id="@+id/speed_text"
|
||||
style="@style/PlayerControlTop"
|
||||
android:text="1x" />
|
||||
android:text="1x"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/quality_text"
|
||||
@ -80,7 +81,7 @@
|
||||
<ImageButton
|
||||
android:id="@+id/toggle_options"
|
||||
style="@style/PlayerControlTop"
|
||||
android:layout_marginTop="-.5dp"
|
||||
android:layout_marginTop="-1dp"
|
||||
android:src="@drawable/ic_arrow_down"
|
||||
app:tint="@android:color/white" />
|
||||
|
||||
@ -165,7 +166,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:baselineAligned="false"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="15dp">
|
||||
android:paddingEnd="20dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@id/exo_time"
|
||||
@ -176,16 +177,20 @@
|
||||
|
||||
<TextView
|
||||
android:id="@id/exo_position"
|
||||
style="@style/TimeString" />
|
||||
style="@style/TimeString"
|
||||
tools:text="05:20" />
|
||||
|
||||
<TextView
|
||||
style="@style/TimeString"
|
||||
android:text=" • "
|
||||
android:textColor="#B3FFFFFF"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@id/exo_duration"
|
||||
style="@style/TimeString" />
|
||||
style="@style/TimeString"
|
||||
android:textColor="#B3FFFFFF"
|
||||
tools:text="12:15" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@ -264,6 +269,7 @@
|
||||
android:layout_height="15dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginBottom="10dp">
|
||||
|
||||
|
@ -649,6 +649,7 @@
|
||||
<item>1.25x</item>
|
||||
<item>1.5x</item>
|
||||
<item>2x</item>
|
||||
<item>3x</item>
|
||||
<item>4x</item>
|
||||
</string-array>
|
||||
<string-array name="playbackSpeedValues">
|
||||
@ -659,6 +660,7 @@
|
||||
<item>1.25</item>
|
||||
<item>1.5</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
<item>4</item>
|
||||
</string-array>
|
||||
|
||||
@ -808,4 +810,22 @@
|
||||
<item>metered</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="historySize">
|
||||
<item>20</item>
|
||||
<item>50</item>
|
||||
<item>100</item>
|
||||
<item>150</item>
|
||||
<item>200</item>
|
||||
<item>@string/unlimited</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="historySizeValues">
|
||||
<item>20</item>
|
||||
<item>50</item>
|
||||
<item>100</item>
|
||||
<item>150</item>
|
||||
<item>200</item>
|
||||
<item>unlimited</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
@ -294,4 +294,6 @@
|
||||
<string name="export_subscriptions">Export Subscriptions</string>
|
||||
<string name="skip_buttons">Skip buttons</string>
|
||||
<string name="skip_buttons_summary">Show buttons to skip to the next or previous video.</string>
|
||||
<string name="history_size">Maximum history size</string>
|
||||
<string name="unlimited">Unlimited</string>
|
||||
</resources>
|
||||
|
@ -141,8 +141,8 @@
|
||||
<item name="android:layout_gravity">center_vertical</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="paddingStart">4dp</item>
|
||||
<item name="paddingEnd">4dp</item>
|
||||
<item name="paddingStart">5dp</item>
|
||||
<item name="paddingEnd">5dp</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
<item name="android:textStyle">bold</item>
|
||||
<item name="android:textColor">@android:color/white</item>
|
||||
|
@ -27,6 +27,15 @@
|
||||
app:key="watch_history_toggle"
|
||||
app:title="@string/watch_history" />
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="unlimited"
|
||||
android:entries="@array/historySize"
|
||||
android:entryValues="@array/historySizeValues"
|
||||
android:icon="@drawable/ic_list"
|
||||
app:key="watch_history_size"
|
||||
app:title="@string/history_size"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_trash"
|
||||
app:key="clear_watch_history"
|
||||
|
@ -102,13 +102,6 @@
|
||||
app:key="pause_screen_off"
|
||||
app:title="@string/pauseOnScreenOff" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:icon="@drawable/ic_visibility"
|
||||
android:summary="@string/seekbar_preview_summary"
|
||||
android:title="@string/seekbar_preview"
|
||||
app:key="seekbar_preview" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:icon="@drawable/ic_rotating_circle"
|
||||
android:summary="@string/autoRotatePlayer_summary"
|
||||
|
Loading…
Reference in New Issue
Block a user