diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt index 8a563927..39383556 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt @@ -18,6 +18,7 @@ import androidx.annotation.StringRes import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.media.session.MediaButtonReceiver +import androidx.preference.PreferenceManager import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat import com.google.android.exoplayer2.ExoPlayer import com.google.android.exoplayer2.PlaybackException @@ -332,6 +333,17 @@ abstract class AbstractPlayerFragment( subStyle = SubtitlesFragment.getCurrentSavedStyle() player.initSubtitles(subView, subtitle_holder, subStyle) SubtitlesFragment.applyStyleEvent += ::onSubStyleChanged + + try { + val settingsManager = PreferenceManager.getDefaultSharedPreferences(context) + + val currentPrefSize = + settingsManager.getInt(getString(R.string.video_cache_key), 300) + + player.cacheSize = currentPrefSize * 1024L * 1024L + } catch (e : Exception) { + logError(e) + } } /*context?.let { ctx -> diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt index 86a05abe..441a109f 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt @@ -37,11 +37,11 @@ import javax.net.ssl.SSLSession const val TAG = "CS3ExoPlayer" /** Cache */ -private const val cacheSize = 300L * 1024L * 1024L // 300 mb TODO MAKE SETTING class CS3IPlayer : IPlayer { private var isPlaying = false private var exoPlayer: ExoPlayer? = null + var cacheSize = 300L * 1024L * 1024L // 300 mb private val seekActionTime = 30000L diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 5083a86b..313c1e14 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -197,6 +197,28 @@ class SettingsFragment : PreferenceFragmentCompat() { val preferedMediaTypePreference = findPreference(getString(R.string.prefer_media_type_key))!! val appThemePreference = findPreference(getString(R.string.app_theme_key))!! val subPreference = findPreference(getString(R.string.subtitle_settings_key))!! + val videoCachePreference = findPreference(getString(R.string.video_cache_key))!! + + videoCachePreference.setOnPreferenceClickListener { + val prefNames = resources.getStringArray(R.array.video_cache_size_names) + val prefValues = resources.getIntArray(R.array.video_cache_size_values) + val settingsManager = PreferenceManager.getDefaultSharedPreferences(context) + + val currentPrefSize = + settingsManager.getInt(getString(R.string.video_cache_key), 300) + + activity?.showBottomDialog( + prefNames.toList(), + prefValues.indexOf(currentPrefSize), + getString(R.string.video_cache_settings), + true, + {}) { + settingsManager.edit() + .putInt(getString(R.string.video_cache_key), prefValues[it]) + .apply() + } + return@setOnPreferenceClickListener true + } subPreference.setOnPreferenceClickListener { SubtitlesFragment.push(activity, false) diff --git a/app/src/main/res/drawable/ic_baseline_storage_24.xml b/app/src/main/res/drawable/ic_baseline_storage_24.xml new file mode 100644 index 00000000..24caa07d --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_storage_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index 41944416..96231426 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -56,6 +56,22 @@ 1 2 + + @string/none + 100MB + 200MB + 300MB + 400MB + 500MB + + + 0 + 100 + 200 + 300 + 400 + 500 + @string/episode_action_chomecast_episode diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c1540d81..f714e0c5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,6 +12,7 @@ benene_count subtitle_settings_key quality_pref_key + video_cache_key unknown_prerelease use_system_brightness_key swipe_enabled_key @@ -296,6 +297,7 @@ Don\'t show again Update Preferred watch quality + Video cache size DNS over HTTPS Useful for bypassing ISP blocks diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index c0b6a7ce..ad7bafa7 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -1,72 +1,66 @@ - + xmlns:app="http://schemas.android.com/apk/res-auto"> + + app:isPreferenceVisible="true"> - + app:summary="@string/player_subtitles_settings_des" /> - + android:icon="@drawable/ic_baseline_hd_24" /> + + app:defaultValue="true" /> + app:defaultValue="true" /> + app:defaultValue="false" /> + app:defaultValue="true" /> + app:defaultValue="true" /> + app:defaultValue="false" /> + app:defaultValue="false" />