mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
[Feature] Add setting to Truncate Video title on Player (#918)
* [Feature] Add setting to Truncate Video title on Player * add missing icons * Revert "add missing icons" This reverts commit 51c8a85ed18b5664fde21262f5b8ee3ae3a894fb. * applied PR suggestions * edit color
This commit is contained in:
parent
970a68f47b
commit
d6d4bfaa0e
6 changed files with 66 additions and 4 deletions
|
@ -545,10 +545,14 @@ class GeneratorPlayer : FullScreenPlayer() {
|
|||
tvType = meta.tvType
|
||||
}
|
||||
}
|
||||
|
||||
player_episode_filler_holder?.isVisible = isFiller ?: false
|
||||
|
||||
player_video_title?.text = if (headerName != null) {
|
||||
//Get limit of characters on Video Title
|
||||
var limitTitle = 0
|
||||
context?.let {
|
||||
val settingsManager = PreferenceManager.getDefaultSharedPreferences(it)
|
||||
limitTitle = settingsManager.getInt(getString(R.string.prefer_limit_title_key), 0)
|
||||
}
|
||||
//Generate video title
|
||||
var playerVideoTitle = if (headerName != null) {
|
||||
(headerName +
|
||||
if (tvType.isEpisodeBased() && episode != null)
|
||||
if (season == null)
|
||||
|
@ -559,6 +563,15 @@ class GeneratorPlayer : FullScreenPlayer() {
|
|||
} else {
|
||||
""
|
||||
}
|
||||
//Truncate video title if it exceeds limit
|
||||
val differenceInLength = playerVideoTitle.length - limitTitle
|
||||
val margin = 3 //If the difference is smaller than or equal to this value, ignore it
|
||||
if (limitTitle > 0 && differenceInLength > margin) {
|
||||
playerVideoTitle = playerVideoTitle.substring(0, limitTitle-1) + "..."
|
||||
}
|
||||
|
||||
player_episode_filler_holder?.isVisible = isFiller ?: false
|
||||
player_video_title?.text = playerVideoTitle
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
|
|
|
@ -705,6 +705,24 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
return@setOnPreferenceClickListener true
|
||||
}
|
||||
|
||||
getPref(R.string.prefer_limit_title_key)?.setOnPreferenceClickListener {
|
||||
val prefNames = resources.getStringArray(R.array.limit_title_pref_names)
|
||||
val prefValues = resources.getIntArray(R.array.limit_title_pref_values)
|
||||
val current = settingsManager.getInt(getString(R.string.prefer_limit_title_key), 0)
|
||||
|
||||
activity?.showBottomDialog(
|
||||
prefNames.toList(),
|
||||
prefValues.indexOf(current),
|
||||
getString(R.string.limit_title),
|
||||
true,
|
||||
{}) {
|
||||
settingsManager.edit()
|
||||
.putInt(getString(R.string.prefer_limit_title_key), prefValues[it])
|
||||
.apply()
|
||||
}
|
||||
return@setOnPreferenceClickListener true
|
||||
}
|
||||
|
||||
getPref(R.string.dns_key)?.setOnPreferenceClickListener {
|
||||
val prefNames = resources.getStringArray(R.array.dns_pref)
|
||||
val prefValues = resources.getIntArray(R.array.dns_pref_values)
|
||||
|
|
10
app/src/main/res/drawable/ic_baseline_text_format_24.xml
Normal file
10
app/src/main/res/drawable/ic_baseline_text_format_24.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/white">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M5,17v2h14v-2L5,17zM9.5,12.8h5l0.9,2.2h2.1L12.75,4h-1.5L6.5,15h2.1l0.9,-2.2zM12,5.98L13.87,11h-3.74L12,5.98z"/>
|
||||
</vector>
|
|
@ -59,6 +59,21 @@
|
|||
<item>3</item>
|
||||
</array>
|
||||
|
||||
<array name="limit_title_pref_names">
|
||||
<item>@string/none</item>
|
||||
<item>16 characters</item>
|
||||
<item>32 characters</item>
|
||||
<item>64 characters</item>
|
||||
<item>128 characters</item>
|
||||
</array>
|
||||
<array name="limit_title_pref_values">
|
||||
<item>0</item>
|
||||
<item>16</item>
|
||||
<item>32</item>
|
||||
<item>64</item>
|
||||
<item>128</item>
|
||||
</array>
|
||||
|
||||
<array name="video_buffer_length_names">
|
||||
<item>@string/automatic</item>
|
||||
<item>1min</item>
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
<string name="subtitle_settings_key" translatable="false">subtitle_settings_key</string>
|
||||
<string name="subtitle_settings_chromecast_key" translatable="false">subtitle_settings_chromecast_key</string>
|
||||
<string name="quality_pref_key" translatable="false">quality_pref_key</string>
|
||||
<string name="prefer_limit_title_key" translatable="false">prefer_limit_title_key</string>
|
||||
<string name="video_buffer_size_key" translatable="false">video_buffer_size_key</string>
|
||||
<string name="video_buffer_length_key" translatable="false">video_buffer_length_key</string>
|
||||
<string name="video_buffer_clear_key" translatable="false">video_buffer_clear_key</string>
|
||||
|
@ -348,6 +349,7 @@
|
|||
<string name="dont_show_again">Don\'t show again</string>
|
||||
<string name="update">Update</string>
|
||||
<string name="watch_quality_pref">Preferred watch quality</string>
|
||||
<string name="limit_title">Limit title characters on player</string>
|
||||
<string name="video_buffer_size_settings">Video buffer size</string>
|
||||
<string name="video_buffer_length_settings">Video buffer length</string>
|
||||
<string name="video_buffer_disk_settings">Video cache on disk</string>
|
||||
|
|
|
@ -20,6 +20,10 @@
|
|||
android:key="@string/quality_pref_key"
|
||||
android:title="@string/watch_quality_pref"
|
||||
android:icon="@drawable/ic_baseline_hd_24" />
|
||||
<Preference
|
||||
android:key="@string/prefer_limit_title_key"
|
||||
android:title="@string/limit_title"
|
||||
android:icon="@drawable/ic_baseline_text_format_24" />
|
||||
|
||||
<SwitchPreference
|
||||
android:icon="@drawable/ic_baseline_picture_in_picture_alt_24"
|
||||
|
|
Loading…
Reference in a new issue