mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
Added setup screen :)
This commit is contained in:
parent
65f9c71c44
commit
510dd9c358
15 changed files with 1141 additions and 410 deletions
|
@ -36,6 +36,7 @@ import com.lagradost.cloudstream3.CommonActivity.onUserLeaveHint
|
||||||
import com.lagradost.cloudstream3.CommonActivity.showToast
|
import com.lagradost.cloudstream3.CommonActivity.showToast
|
||||||
import com.lagradost.cloudstream3.CommonActivity.updateLocale
|
import com.lagradost.cloudstream3.CommonActivity.updateLocale
|
||||||
import com.lagradost.cloudstream3.mvvm.logError
|
import com.lagradost.cloudstream3.mvvm.logError
|
||||||
|
import com.lagradost.cloudstream3.mvvm.normalSafeApiCall
|
||||||
import com.lagradost.cloudstream3.network.initClient
|
import com.lagradost.cloudstream3.network.initClient
|
||||||
import com.lagradost.cloudstream3.receivers.VideoDownloadRestartReceiver
|
import com.lagradost.cloudstream3.receivers.VideoDownloadRestartReceiver
|
||||||
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.OAuth2Apis
|
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.OAuth2Apis
|
||||||
|
@ -49,6 +50,7 @@ import com.lagradost.cloudstream3.ui.search.SearchResultBuilder
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isEmulatorSettings
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isEmulatorSettings
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
|
import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTvSettings
|
||||||
import com.lagradost.cloudstream3.ui.settings.SettingsGeneral
|
import com.lagradost.cloudstream3.ui.settings.SettingsGeneral
|
||||||
|
import com.lagradost.cloudstream3.ui.setup.HAS_DONE_SETUP_KEY
|
||||||
import com.lagradost.cloudstream3.utils.AppUtils.isCastApiAvailable
|
import com.lagradost.cloudstream3.utils.AppUtils.isCastApiAvailable
|
||||||
import com.lagradost.cloudstream3.utils.AppUtils.loadCache
|
import com.lagradost.cloudstream3.utils.AppUtils.loadCache
|
||||||
import com.lagradost.cloudstream3.utils.AppUtils.loadResult
|
import com.lagradost.cloudstream3.utils.AppUtils.loadResult
|
||||||
|
@ -56,6 +58,7 @@ import com.lagradost.cloudstream3.utils.AppUtils.tryParseJson
|
||||||
import com.lagradost.cloudstream3.utils.BackupUtils.setUpBackup
|
import com.lagradost.cloudstream3.utils.BackupUtils.setUpBackup
|
||||||
import com.lagradost.cloudstream3.utils.Coroutines.ioSafe
|
import com.lagradost.cloudstream3.utils.Coroutines.ioSafe
|
||||||
import com.lagradost.cloudstream3.utils.Coroutines.main
|
import com.lagradost.cloudstream3.utils.Coroutines.main
|
||||||
|
import com.lagradost.cloudstream3.utils.DataStore
|
||||||
import com.lagradost.cloudstream3.utils.DataStore.getKey
|
import com.lagradost.cloudstream3.utils.DataStore.getKey
|
||||||
import com.lagradost.cloudstream3.utils.DataStore.removeKey
|
import com.lagradost.cloudstream3.utils.DataStore.removeKey
|
||||||
import com.lagradost.cloudstream3.utils.DataStore.setKey
|
import com.lagradost.cloudstream3.utils.DataStore.setKey
|
||||||
|
@ -743,7 +746,18 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener {
|
||||||
ioSafe {
|
ioSafe {
|
||||||
migrateResumeWatching()
|
migrateResumeWatching()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (getKey(HAS_DONE_SETUP_KEY, false) != true) {
|
||||||
|
navController.navigate(R.id.navigation_setup_language)
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
logError(e)
|
||||||
|
} finally {
|
||||||
|
setKey(HAS_DONE_SETUP_KEY, true)
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
|
|
||||||
val relativePath = (Environment.DIRECTORY_DOWNLOADS) + File.separatorChar
|
val relativePath = (Environment.DIRECTORY_DOWNLOADS) + File.separatorChar
|
||||||
val displayName = "output.dex" //""output.dex"
|
val displayName = "output.dex" //""output.dex"
|
||||||
val file = getExternalFilesDir(null)?.absolutePath + File.separatorChar + displayName//"${Environment.getExternalStorageDirectory()}${File.separatorChar}$relativePath$displayName"
|
val file = getExternalFilesDir(null)?.absolutePath + File.separatorChar + displayName//"${Environment.getExternalStorageDirectory()}${File.separatorChar}$relativePath$displayName"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.lagradost.cloudstream3.ui.settings
|
package com.lagradost.cloudstream3.ui.settings
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
|
@ -7,6 +8,7 @@ import androidx.preference.PreferenceManager
|
||||||
import com.lagradost.cloudstream3.*
|
import com.lagradost.cloudstream3.*
|
||||||
import com.lagradost.cloudstream3.APIHolder.getApiDubstatusSettings
|
import com.lagradost.cloudstream3.APIHolder.getApiDubstatusSettings
|
||||||
import com.lagradost.cloudstream3.APIHolder.getApiProviderLangSettings
|
import com.lagradost.cloudstream3.APIHolder.getApiProviderLangSettings
|
||||||
|
import com.lagradost.cloudstream3.AcraApplication.Companion.removeKey
|
||||||
import com.lagradost.cloudstream3.mvvm.logError
|
import com.lagradost.cloudstream3.mvvm.logError
|
||||||
import com.lagradost.cloudstream3.network.initClient
|
import com.lagradost.cloudstream3.network.initClient
|
||||||
import com.lagradost.cloudstream3.ui.APIRepository
|
import com.lagradost.cloudstream3.ui.APIRepository
|
||||||
|
@ -19,45 +21,45 @@ import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showMultiDialog
|
||||||
import com.lagradost.cloudstream3.utils.SubtitleHelper
|
import com.lagradost.cloudstream3.utils.SubtitleHelper
|
||||||
import com.lagradost.cloudstream3.utils.UIHelper.hideKeyboard
|
import com.lagradost.cloudstream3.utils.UIHelper.hideKeyboard
|
||||||
|
|
||||||
|
fun getCurrentLocale(context: Context): String {
|
||||||
|
val res = context.resources
|
||||||
|
// Change locale settings in the app.
|
||||||
|
// val dm = res.displayMetrics
|
||||||
|
val conf = res.configuration
|
||||||
|
return conf?.locale?.language ?: "en"
|
||||||
|
}
|
||||||
|
|
||||||
|
// idk, if you find a way of automating this it would be great
|
||||||
|
// https://www.iemoji.com/view/emoji/1794/flags/antarctica
|
||||||
|
// Emoji Character Encoding Data --> C/C++/Java Src
|
||||||
|
// https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes leave blank for auto
|
||||||
|
val appLanguages = arrayListOf(
|
||||||
|
Triple("", "Spanish", "es"),
|
||||||
|
Triple("", "English", "en"),
|
||||||
|
Triple("", "Viet Nam", "vi"),
|
||||||
|
Triple("", "Dutch", "nl"),
|
||||||
|
Triple("", "French", "fr"),
|
||||||
|
Triple("", "Greek", "el"),
|
||||||
|
Triple("", "Swedish", "sv"),
|
||||||
|
Triple("", "Tagalog", "tl"),
|
||||||
|
Triple("", "Polish", "pl"),
|
||||||
|
Triple("", "Hindi", "hi"),
|
||||||
|
Triple("", "Malayalam", "ml"),
|
||||||
|
Triple("", "Norsk", "no"),
|
||||||
|
Triple("", "German", "de"),
|
||||||
|
Triple("", "Arabic", "ar"),
|
||||||
|
Triple("", "Turkish", "tr"),
|
||||||
|
Triple("", "Macedonian", "mk"),
|
||||||
|
Triple("\uD83C\uDDF5\uD83C\uDDF9", "Portuguese", "pt"),
|
||||||
|
Triple("\uD83C\uDDE7\uD83C\uDDF7", "Brazilian Portuguese", "bp"),
|
||||||
|
Triple("", "Romanian", "ro"),
|
||||||
|
Triple("", "Italian", "it"),
|
||||||
|
Triple("", "Chinese", "zh"),
|
||||||
|
Triple("", "Indonesian", "id"),
|
||||||
|
Triple("", "Czech", "cs"),
|
||||||
|
).sortedBy { it.second } //ye, we go alphabetical, so ppl don't put their lang on top
|
||||||
|
|
||||||
class SettingsLang : PreferenceFragmentCompat() {
|
class SettingsLang : PreferenceFragmentCompat() {
|
||||||
// idk, if you find a way of automating this it would be great
|
|
||||||
// https://www.iemoji.com/view/emoji/1794/flags/antarctica
|
|
||||||
// Emoji Character Encoding Data --> C/C++/Java Src
|
|
||||||
// https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes leave blank for auto
|
|
||||||
private val languages = arrayListOf(
|
|
||||||
Triple("", "Spanish", "es"),
|
|
||||||
Triple("", "English", "en"),
|
|
||||||
Triple("", "Viet Nam", "vi"),
|
|
||||||
Triple("", "Dutch", "nl"),
|
|
||||||
Triple("", "French", "fr"),
|
|
||||||
Triple("", "Greek", "el"),
|
|
||||||
Triple("", "Swedish", "sv"),
|
|
||||||
Triple("", "Tagalog", "tl"),
|
|
||||||
Triple("", "Polish", "pl"),
|
|
||||||
Triple("", "Hindi", "hi"),
|
|
||||||
Triple("", "Malayalam", "ml"),
|
|
||||||
Triple("", "Norsk", "no"),
|
|
||||||
Triple("", "German", "de"),
|
|
||||||
Triple("", "Arabic", "ar"),
|
|
||||||
Triple("", "Turkish", "tr"),
|
|
||||||
Triple("", "Macedonian", "mk"),
|
|
||||||
Triple("\uD83C\uDDF5\uD83C\uDDF9", "Portuguese", "pt"),
|
|
||||||
Triple("\uD83C\uDDE7\uD83C\uDDF7", "Brazilian Portuguese", "bp"),
|
|
||||||
Triple("", "Romanian", "ro"),
|
|
||||||
Triple("", "Italian", "it"),
|
|
||||||
Triple("", "Chinese", "zh"),
|
|
||||||
Triple("", "Indonesian", "id"),
|
|
||||||
Triple("", "Czech", "cs"),
|
|
||||||
).sortedBy { it.second } //ye, we go alphabetical, so ppl don't put their lang on top
|
|
||||||
|
|
||||||
private fun getCurrentLocale(): String {
|
|
||||||
val res = requireContext().resources
|
|
||||||
// Change locale settings in the app.
|
|
||||||
// val dm = res.displayMetrics
|
|
||||||
val conf = res.configuration
|
|
||||||
return conf?.locale?.language ?: "en"
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
setUpToolbar(R.string.category_preferred_media_and_lang)
|
setUpToolbar(R.string.category_preferred_media_and_lang)
|
||||||
|
@ -112,22 +114,21 @@ class SettingsLang : PreferenceFragmentCompat() {
|
||||||
.putInt(getString(R.string.prefer_media_type_key), prefValues[it])
|
.putInt(getString(R.string.prefer_media_type_key), prefValues[it])
|
||||||
.apply()
|
.apply()
|
||||||
|
|
||||||
AcraApplication.removeKey(HOMEPAGE_API)
|
removeKey(HOMEPAGE_API)
|
||||||
(context ?: AcraApplication.context)?.let { ctx -> app.initClient(ctx) }
|
// (context ?: AcraApplication.context)?.let { ctx -> app.initClient(ctx) }
|
||||||
}
|
}
|
||||||
return@setOnPreferenceClickListener true
|
return@setOnPreferenceClickListener true
|
||||||
}
|
}
|
||||||
|
|
||||||
getPref(R.string.locale_key)?.setOnPreferenceClickListener {
|
getPref(R.string.locale_key)?.setOnPreferenceClickListener {
|
||||||
val tempLangs = languages.toMutableList()
|
val tempLangs = appLanguages.toMutableList()
|
||||||
//if (beneneCount > 100) {
|
//if (beneneCount > 100) {
|
||||||
// tempLangs.add(Triple("\uD83E\uDD8D", "mmmm... monke", "mo"))
|
// tempLangs.add(Triple("\uD83E\uDD8D", "mmmm... monke", "mo"))
|
||||||
//}
|
//}
|
||||||
val current = getCurrentLocale()
|
val current = getCurrentLocale(requireContext())
|
||||||
val languageCodes = tempLangs.map { it.third }
|
val languageCodes = tempLangs.map { it.third }
|
||||||
val languageNames = tempLangs.map { (emoji, name, iso) ->
|
val languageNames = tempLangs.map { (emoji, name, iso) ->
|
||||||
val flag = emoji.ifBlank { SubtitleHelper.getFlagFromIso(iso) ?: "ERROR" }
|
val flag = emoji.ifBlank { SubtitleHelper.getFlagFromIso(iso) ?: "ERROR" }
|
||||||
|
|
||||||
"$flag $name"
|
"$flag $name"
|
||||||
}
|
}
|
||||||
val index = languageCodes.indexOf(current)
|
val index = languageCodes.indexOf(current)
|
||||||
|
@ -149,7 +150,8 @@ class SettingsLang : PreferenceFragmentCompat() {
|
||||||
|
|
||||||
getPref(R.string.provider_lang_key)?.setOnPreferenceClickListener {
|
getPref(R.string.provider_lang_key)?.setOnPreferenceClickListener {
|
||||||
activity?.getApiProviderLangSettings()?.let { current ->
|
activity?.getApiProviderLangSettings()?.let { current ->
|
||||||
val langs = APIHolder.apis.map { it.lang }.toSet().sortedBy { SubtitleHelper.fromTwoLettersToLanguage(it) }
|
val langs = APIHolder.apis.map { it.lang }.toSet()
|
||||||
|
.sortedBy { SubtitleHelper.fromTwoLettersToLanguage(it) }
|
||||||
|
|
||||||
val currentList = ArrayList<Int>()
|
val currentList = ArrayList<Int>()
|
||||||
for (i in current) {
|
for (i in current) {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
import com.lagradost.cloudstream3.CommonActivity
|
import com.lagradost.cloudstream3.CommonActivity
|
||||||
import com.lagradost.cloudstream3.R
|
import com.lagradost.cloudstream3.R
|
||||||
|
@ -31,6 +32,7 @@ class SettingsUpdates : PreferenceFragmentCompat() {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
setUpToolbar(R.string.category_updates)
|
setUpToolbar(R.string.category_updates)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||||
hideKeyboard()
|
hideKeyboard()
|
||||||
setPreferencesFromResource(R.xml.settings_updates, rootKey)
|
setPreferencesFromResource(R.xml.settings_updates, rootKey)
|
||||||
|
@ -41,6 +43,11 @@ class SettingsUpdates : PreferenceFragmentCompat() {
|
||||||
return@setOnPreferenceClickListener true
|
return@setOnPreferenceClickListener true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getPref(R.string.redo_setup_key)?.setOnPreferenceClickListener {
|
||||||
|
findNavController().navigate(R.id.navigation_setup_language)
|
||||||
|
return@setOnPreferenceClickListener true
|
||||||
|
}
|
||||||
|
|
||||||
getPref(R.string.restore_key)?.setOnPreferenceClickListener {
|
getPref(R.string.restore_key)?.setOnPreferenceClickListener {
|
||||||
activity?.restorePrompt()
|
activity?.restorePrompt()
|
||||||
return@setOnPreferenceClickListener true
|
return@setOnPreferenceClickListener true
|
||||||
|
@ -112,7 +119,11 @@ class SettingsUpdates : PreferenceFragmentCompat() {
|
||||||
thread {
|
thread {
|
||||||
if (!requireActivity().runAutoUpdate(false)) {
|
if (!requireActivity().runAutoUpdate(false)) {
|
||||||
activity?.runOnUiThread {
|
activity?.runOnUiThread {
|
||||||
CommonActivity.showToast(activity, R.string.no_update_found, Toast.LENGTH_SHORT)
|
CommonActivity.showToast(
|
||||||
|
activity,
|
||||||
|
R.string.no_update_found,
|
||||||
|
Toast.LENGTH_SHORT
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
package com.lagradost.cloudstream3.ui.setup
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import android.widget.AbsListView
|
||||||
|
import android.widget.ArrayAdapter
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
|
import com.lagradost.cloudstream3.BuildConfig
|
||||||
|
import com.lagradost.cloudstream3.CommonActivity
|
||||||
|
import com.lagradost.cloudstream3.R
|
||||||
|
import com.lagradost.cloudstream3.mvvm.normalSafeApiCall
|
||||||
|
import com.lagradost.cloudstream3.ui.settings.appLanguages
|
||||||
|
import com.lagradost.cloudstream3.ui.settings.getCurrentLocale
|
||||||
|
import com.lagradost.cloudstream3.utils.SubtitleHelper
|
||||||
|
import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbar
|
||||||
|
import kotlinx.android.synthetic.main.fragment_setup_language.*
|
||||||
|
import kotlinx.android.synthetic.main.fragment_setup_media.listview1
|
||||||
|
import kotlinx.android.synthetic.main.fragment_setup_media.next_btt
|
||||||
|
|
||||||
|
const val HAS_DONE_SETUP_KEY = "HAS_DONE_SETUP"
|
||||||
|
class SetupFragmentLanguage : Fragment() {
|
||||||
|
override fun onCreateView(
|
||||||
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?
|
||||||
|
): View? {
|
||||||
|
// Inflate the layout for this fragment
|
||||||
|
return inflater.inflate(R.layout.fragment_setup_language, container, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
context?.fixPaddingStatusbar(setup_root)
|
||||||
|
|
||||||
|
// We don't want a crash for all users
|
||||||
|
normalSafeApiCall {
|
||||||
|
with(context) {
|
||||||
|
if (this == null) return@normalSafeApiCall
|
||||||
|
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
|
|
||||||
|
val arrayAdapter =
|
||||||
|
ArrayAdapter<String>(this, R.layout.sort_bottom_single_choice)
|
||||||
|
|
||||||
|
// Icons may crash on some weird android versions?
|
||||||
|
normalSafeApiCall {
|
||||||
|
val drawable = when {
|
||||||
|
BuildConfig.DEBUG -> R.drawable.cloud_2_gradient_debug
|
||||||
|
BuildConfig.BUILD_TYPE == "prerelease" -> R.drawable.cloud_2_gradient_beta
|
||||||
|
else -> R.drawable.cloud_2_gradient
|
||||||
|
}
|
||||||
|
app_icon_image?.setImageDrawable(ContextCompat.getDrawable(this, drawable))
|
||||||
|
}
|
||||||
|
|
||||||
|
val current = getCurrentLocale(this)
|
||||||
|
val languageCodes = appLanguages.map { it.third }
|
||||||
|
val languageNames = appLanguages.map { (emoji, name, iso) ->
|
||||||
|
val flag = emoji.ifBlank { SubtitleHelper.getFlagFromIso(iso) ?: "ERROR" }
|
||||||
|
"$flag $name"
|
||||||
|
}
|
||||||
|
val index = languageCodes.indexOf(current)
|
||||||
|
|
||||||
|
arrayAdapter.addAll(languageNames)
|
||||||
|
listview1?.adapter = arrayAdapter
|
||||||
|
listview1?.choiceMode = AbsListView.CHOICE_MODE_SINGLE
|
||||||
|
listview1?.setItemChecked(index, true)
|
||||||
|
|
||||||
|
listview1?.setOnItemClickListener { _, _, position, _ ->
|
||||||
|
val code = languageCodes[position]
|
||||||
|
CommonActivity.setLocale(activity, code)
|
||||||
|
settingsManager.edit().putString(getString(R.string.locale_key), code).apply()
|
||||||
|
activity?.recreate()
|
||||||
|
}
|
||||||
|
|
||||||
|
next_btt?.setOnClickListener {
|
||||||
|
findNavController().navigate(R.id.action_navigation_setup_language_to_navigation_setup_provider_languages)
|
||||||
|
}
|
||||||
|
|
||||||
|
skip_btt?.setOnClickListener {
|
||||||
|
findNavController().navigate(R.id.navigation_home)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,89 @@
|
||||||
|
package com.lagradost.cloudstream3.ui.setup
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import android.widget.AbsListView
|
||||||
|
import android.widget.ArrayAdapter
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
|
import com.lagradost.cloudstream3.R
|
||||||
|
import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbar
|
||||||
|
import kotlinx.android.synthetic.main.fragment_setup_layout.*
|
||||||
|
import kotlinx.android.synthetic.main.fragment_setup_media.listview1
|
||||||
|
import kotlinx.android.synthetic.main.fragment_setup_media.next_btt
|
||||||
|
import kotlinx.android.synthetic.main.fragment_setup_media.prev_btt
|
||||||
|
import kotlinx.android.synthetic.main.fragment_setup_media.setup_root
|
||||||
|
import org.acra.ACRA
|
||||||
|
|
||||||
|
|
||||||
|
class SetupFragmentLayout : Fragment() {
|
||||||
|
override fun onCreateView(
|
||||||
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?
|
||||||
|
): View? {
|
||||||
|
return inflater.inflate(R.layout.fragment_setup_layout, container, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
context?.fixPaddingStatusbar(setup_root)
|
||||||
|
|
||||||
|
with(context) {
|
||||||
|
if (this == null) return
|
||||||
|
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
|
|
||||||
|
val prefNames = resources.getStringArray(R.array.app_layout)
|
||||||
|
val prefValues = resources.getIntArray(R.array.app_layout_values)
|
||||||
|
|
||||||
|
val currentLayout =
|
||||||
|
settingsManager.getInt(getString(R.string.app_layout_key), -1)
|
||||||
|
|
||||||
|
val arrayAdapter =
|
||||||
|
ArrayAdapter<String>(this, R.layout.sort_bottom_single_choice)
|
||||||
|
|
||||||
|
arrayAdapter.addAll(prefNames.toList())
|
||||||
|
listview1?.adapter = arrayAdapter
|
||||||
|
listview1?.choiceMode = AbsListView.CHOICE_MODE_SINGLE
|
||||||
|
listview1?.setItemChecked(
|
||||||
|
prefValues.indexOf(currentLayout), true
|
||||||
|
)
|
||||||
|
|
||||||
|
listview1?.setOnItemClickListener { _, _, position, _ ->
|
||||||
|
settingsManager.edit()
|
||||||
|
.putInt(getString(R.string.app_layout_key), prefValues[position])
|
||||||
|
.apply()
|
||||||
|
activity?.recreate()
|
||||||
|
}
|
||||||
|
|
||||||
|
acra_switch?.setOnCheckedChangeListener { _, enableCrashReporting ->
|
||||||
|
// Use same pref as in settings
|
||||||
|
settingsManager.edit().putBoolean(ACRA.PREF_DISABLE_ACRA, !enableCrashReporting)
|
||||||
|
.apply()
|
||||||
|
val text =
|
||||||
|
if (enableCrashReporting) R.string.bug_report_settings_off else R.string.bug_report_settings_on
|
||||||
|
crash_reporting_text?.text = getText(text)
|
||||||
|
}
|
||||||
|
|
||||||
|
val enableCrashReporting = !settingsManager.getBoolean(ACRA.PREF_DISABLE_ACRA, false)
|
||||||
|
acra_switch.isChecked = enableCrashReporting
|
||||||
|
crash_reporting_text.text =
|
||||||
|
getText(
|
||||||
|
if (enableCrashReporting) R.string.bug_report_settings_off else R.string.bug_report_settings_on
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
next_btt?.setOnClickListener {
|
||||||
|
findNavController().navigate(R.id.navigation_home)
|
||||||
|
}
|
||||||
|
|
||||||
|
prev_btt?.setOnClickListener {
|
||||||
|
findNavController().popBackStack()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
package com.lagradost.cloudstream3.ui.setup
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import android.widget.AbsListView
|
||||||
|
import android.widget.ArrayAdapter
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
|
import com.lagradost.cloudstream3.R
|
||||||
|
import com.lagradost.cloudstream3.utils.DataStore.removeKey
|
||||||
|
import com.lagradost.cloudstream3.utils.HOMEPAGE_API
|
||||||
|
import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbar
|
||||||
|
import kotlinx.android.synthetic.main.fragment_setup_media.*
|
||||||
|
|
||||||
|
|
||||||
|
class SetupFragmentMedia : Fragment() {
|
||||||
|
override fun onCreateView(
|
||||||
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?
|
||||||
|
): View? {
|
||||||
|
return inflater.inflate(R.layout.fragment_setup_media, container, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
context?.fixPaddingStatusbar(setup_root)
|
||||||
|
|
||||||
|
with(context) {
|
||||||
|
if (this == null) return
|
||||||
|
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
|
|
||||||
|
val arrayAdapter =
|
||||||
|
ArrayAdapter<String>(this, R.layout.sort_bottom_single_choice)
|
||||||
|
|
||||||
|
val currentPrefMedia =
|
||||||
|
settingsManager.getInt(getString(R.string.prefer_media_type_key), 0)
|
||||||
|
|
||||||
|
val prefNames = resources.getStringArray(R.array.media_type_pref)
|
||||||
|
val prefValues = resources.getIntArray(R.array.media_type_pref_values)
|
||||||
|
|
||||||
|
arrayAdapter.addAll(prefNames.toList())
|
||||||
|
listview1?.adapter = arrayAdapter
|
||||||
|
listview1?.choiceMode = AbsListView.CHOICE_MODE_SINGLE
|
||||||
|
listview1?.setItemChecked(currentPrefMedia, true)
|
||||||
|
|
||||||
|
listview1?.setOnItemClickListener { _, _, position, _ ->
|
||||||
|
settingsManager.edit()
|
||||||
|
.putInt(getString(R.string.prefer_media_type_key), prefValues[position])
|
||||||
|
.apply()
|
||||||
|
|
||||||
|
// Regenerate set homepage
|
||||||
|
removeKey(HOMEPAGE_API)
|
||||||
|
}
|
||||||
|
|
||||||
|
next_btt?.setOnClickListener {
|
||||||
|
findNavController().navigate(R.id.navigation_setup_media_to_navigation_setup_layout)
|
||||||
|
}
|
||||||
|
|
||||||
|
prev_btt?.setOnClickListener {
|
||||||
|
findNavController().popBackStack()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,80 @@
|
||||||
|
package com.lagradost.cloudstream3.ui.setup
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import android.widget.AbsListView
|
||||||
|
import android.widget.ArrayAdapter
|
||||||
|
import androidx.core.util.forEach
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
|
import com.lagradost.cloudstream3.APIHolder
|
||||||
|
import com.lagradost.cloudstream3.APIHolder.getApiProviderLangSettings
|
||||||
|
import com.lagradost.cloudstream3.R
|
||||||
|
import com.lagradost.cloudstream3.utils.SubtitleHelper
|
||||||
|
import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbar
|
||||||
|
import kotlinx.android.synthetic.main.fragment_setup_media.*
|
||||||
|
|
||||||
|
class SetupFragmentProviderLanguage : Fragment() {
|
||||||
|
override fun onCreateView(
|
||||||
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?
|
||||||
|
): View? {
|
||||||
|
// Inflate the layout for this fragment
|
||||||
|
return inflater.inflate(R.layout.fragment_setup_provider_languages, container, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
context?.fixPaddingStatusbar(setup_root)
|
||||||
|
|
||||||
|
with(context) {
|
||||||
|
if (this == null) return
|
||||||
|
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
|
|
||||||
|
val arrayAdapter =
|
||||||
|
ArrayAdapter<String>(this, R.layout.sort_bottom_single_choice)
|
||||||
|
|
||||||
|
val current = this.getApiProviderLangSettings()
|
||||||
|
val langs = APIHolder.apis.map { it.lang }.toSet()
|
||||||
|
.sortedBy { SubtitleHelper.fromTwoLettersToLanguage(it) }
|
||||||
|
|
||||||
|
val currentList = current.map { langs.indexOf(it) }
|
||||||
|
val languageNames = langs.map {
|
||||||
|
val emoji = SubtitleHelper.getFlagFromIso(it)
|
||||||
|
val name = SubtitleHelper.fromTwoLettersToLanguage(it)
|
||||||
|
"$emoji $name"
|
||||||
|
}
|
||||||
|
arrayAdapter.addAll(languageNames)
|
||||||
|
|
||||||
|
listview1?.adapter = arrayAdapter
|
||||||
|
listview1?.choiceMode = AbsListView.CHOICE_MODE_MULTIPLE
|
||||||
|
currentList.forEach {
|
||||||
|
listview1.setItemChecked(it, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
listview1?.setOnItemClickListener { _, _, _, _ ->
|
||||||
|
val currentLanguages = mutableListOf<String>()
|
||||||
|
listview1?.checkedItemPositions?.forEach { key, value ->
|
||||||
|
if (value) currentLanguages.add(langs[key])
|
||||||
|
}
|
||||||
|
settingsManager.edit().putStringSet(
|
||||||
|
this.getString(R.string.provider_lang_key),
|
||||||
|
currentLanguages.toSet()
|
||||||
|
).apply()
|
||||||
|
}
|
||||||
|
|
||||||
|
next_btt?.setOnClickListener {
|
||||||
|
findNavController().navigate(R.id.navigation_setup_provider_languages_to_navigation_setup_media)
|
||||||
|
}
|
||||||
|
|
||||||
|
prev_btt?.setOnClickListener {
|
||||||
|
findNavController().popBackStack()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
<vector android:height="24dp" android:tint="?attr/white"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M13.783,15.172l2.121,-2.121l5.996,5.996l-2.121,2.121z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M17.5,10c1.93,0 3.5,-1.57 3.5,-3.5c0,-0.58 -0.16,-1.12 -0.41,-1.6l-2.7,2.7L16.4,6.11l2.7,-2.7C18.62,3.16 18.08,3 17.5,3C15.57,3 14,4.57 14,6.5c0,0.41 0.08,0.8 0.21,1.16l-1.85,1.85l-1.78,-1.78l0.71,-0.71L9.88,5.61L12,3.49c-1.17,-1.17 -3.07,-1.17 -4.24,0L4.22,7.03l1.41,1.41H2.81L2.1,9.15l3.54,3.54l0.71,-0.71V9.15l1.41,1.41l0.71,-0.71l1.78,1.78l-7.41,7.41l2.12,2.12L16.34,9.79C16.7,9.92 17.09,10 17.5,10z"/>
|
||||||
|
</vector>
|
66
app/src/main/res/layout/fragment_setup_language.xml
Normal file
66
app/src/main/res/layout/fragment_setup_language.xml
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:id="@+id/setup_root"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/app_icon_image"
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="50dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="20dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/app_language"
|
||||||
|
android:textSize="18sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ListView
|
||||||
|
android:id="@+id/listview1"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_rowWeight="1"
|
||||||
|
android:layout_marginBottom="60dp"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:requiresFadingEdge="vertical"
|
||||||
|
tools:listitem="@layout/sort_bottom_single_choice" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/apply_btt_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="60dp"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:layout_marginTop="-60dp"
|
||||||
|
android:gravity="bottom|end"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/next_btt"
|
||||||
|
style="@style/WhiteButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical|end"
|
||||||
|
android:text="@string/next" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/skip_btt"
|
||||||
|
style="@style/BlackButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical|end"
|
||||||
|
android:text="@string/skip_setup">
|
||||||
|
|
||||||
|
<requestFocus />
|
||||||
|
</com.google.android.material.button.MaterialButton>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
102
app/src/main/res/layout/fragment_setup_layout.xml
Normal file
102
app/src/main/res/layout/fragment_setup_layout.xml
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/setup_root"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="20dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginHorizontal="50dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/crash_reporting_title"
|
||||||
|
android:textSize="18sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/crash_reporting_text"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/bug_report_settings_off" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.SwitchCompat
|
||||||
|
android:id="@+id/acra_switch"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="end|center_vertical"
|
||||||
|
android:checked="true">
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.SwitchCompat>
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/app_layout"
|
||||||
|
android:textSize="18sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/app_layout_subtext">
|
||||||
|
|
||||||
|
</TextView>
|
||||||
|
|
||||||
|
<ListView
|
||||||
|
android:id="@+id/listview1"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_rowWeight="1"
|
||||||
|
android:layout_marginBottom="60dp"
|
||||||
|
android:nextFocusLeft="@id/apply_btt"
|
||||||
|
android:nextFocusRight="@id/cancel_btt"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:requiresFadingEdge="vertical"
|
||||||
|
tools:listitem="@layout/sort_bottom_single_choice" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/apply_btt_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="60dp"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:layout_marginTop="-60dp"
|
||||||
|
android:gravity="bottom|end"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/next_btt"
|
||||||
|
style="@style/WhiteButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical|end"
|
||||||
|
android:text="@string/setup_done" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/prev_btt"
|
||||||
|
style="@style/BlackButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical|end"
|
||||||
|
android:text="@string/previous" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
60
app/src/main/res/layout/fragment_setup_media.xml
Normal file
60
app/src/main/res/layout/fragment_setup_media.xml
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/setup_root"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/preferred_media_settings"
|
||||||
|
android:textSize="18sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/preferred_media_subtext" />
|
||||||
|
|
||||||
|
<ListView
|
||||||
|
android:id="@+id/listview1"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_rowWeight="1"
|
||||||
|
android:layout_marginBottom="60dp"
|
||||||
|
android:nextFocusLeft="@id/apply_btt"
|
||||||
|
android:nextFocusRight="@id/cancel_btt"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:requiresFadingEdge="vertical"
|
||||||
|
tools:listitem="@layout/sort_bottom_single_choice" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/apply_btt_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="60dp"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:layout_marginTop="-60dp"
|
||||||
|
android:gravity="bottom|end"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/next_btt"
|
||||||
|
style="@style/WhiteButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical|end"
|
||||||
|
android:text="@string/next" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/prev_btt"
|
||||||
|
style="@style/BlackButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical|end"
|
||||||
|
android:text="@string/previous" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -0,0 +1,63 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/setup_root"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/provider_lang_settings"
|
||||||
|
android:textSize="18sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/provider_languages_tip">
|
||||||
|
|
||||||
|
</TextView>
|
||||||
|
|
||||||
|
<ListView
|
||||||
|
android:id="@+id/listview1"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_rowWeight="1"
|
||||||
|
android:layout_marginBottom="60dp"
|
||||||
|
android:nextFocusLeft="@id/apply_btt"
|
||||||
|
android:nextFocusRight="@id/cancel_btt"
|
||||||
|
android:paddingTop="10dp"
|
||||||
|
android:requiresFadingEdge="vertical"
|
||||||
|
tools:listitem="@layout/sort_bottom_single_choice" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/apply_btt_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="60dp"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:layout_marginTop="-60dp"
|
||||||
|
android:gravity="bottom|end"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/next_btt"
|
||||||
|
style="@style/WhiteButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical|end"
|
||||||
|
android:text="@string/next" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/prev_btt"
|
||||||
|
style="@style/BlackButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical|end"
|
||||||
|
android:text="@string/previous" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -1,396 +1,460 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/mobile_navigation"
|
android:id="@+id/mobile_navigation"
|
||||||
app:startDestination="@+id/navigation_home">
|
app:startDestination="@+id/navigation_home">
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/global_to_navigation_results"
|
android:id="@+id/global_to_navigation_results"
|
||||||
app:destination="@id/navigation_results"
|
app:destination="@id/navigation_results"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim">
|
app:popExitAnim="@anim/exit_anim">
|
||||||
<argument
|
<argument
|
||||||
android:name="url"
|
android:name="url"
|
||||||
app:argType="string" />
|
app:argType="string" />
|
||||||
<argument
|
<argument
|
||||||
android:name="apiName"
|
android:name="apiName"
|
||||||
app:argType="string" />
|
app:argType="string" />
|
||||||
<argument
|
<argument
|
||||||
android:name="startAction"
|
android:name="startAction"
|
||||||
app:argType="integer"
|
android:defaultValue="0"
|
||||||
android:defaultValue="0" />
|
app:argType="integer" />
|
||||||
<argument
|
<argument
|
||||||
android:name="startValue"
|
android:name="startValue"
|
||||||
app:argType="integer"
|
android:defaultValue="0"
|
||||||
android:defaultValue="0" />
|
app:argType="integer" />
|
||||||
<argument
|
<argument
|
||||||
android:name="restart"
|
android:name="restart"
|
||||||
app:argType="boolean"
|
android:defaultValue="false"
|
||||||
android:defaultValue="false" />
|
app:argType="boolean" />
|
||||||
</action>
|
</action>
|
||||||
<action
|
<action
|
||||||
android:id="@+id/global_to_navigation_player"
|
android:id="@+id/global_to_navigation_player"
|
||||||
app:destination="@id/navigation_player"
|
app:destination="@id/navigation_player"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim">
|
app:popExitAnim="@anim/exit_anim">
|
||||||
<argument
|
<argument
|
||||||
android:name="data"
|
android:name="data"
|
||||||
app:argType="string"
|
android:defaultValue="@null"
|
||||||
android:defaultValue="@null" />
|
app:argType="string" />
|
||||||
<argument
|
<argument
|
||||||
android:name="uriData"
|
android:name="uriData"
|
||||||
app:argType="string"
|
android:defaultValue="@null"
|
||||||
android:defaultValue="@null" />
|
app:argType="string" />
|
||||||
<argument
|
<argument
|
||||||
android:name="resumePosition"
|
android:name="resumePosition"
|
||||||
app:argType="long"
|
android:defaultValue="0L"
|
||||||
android:defaultValue="0L" />
|
app:argType="long" />
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/global_to_navigation_home"
|
android:id="@+id/global_to_navigation_home"
|
||||||
app:destination="@id/navigation_home"
|
app:destination="@id/navigation_home"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/global_to_navigation_subtitles"
|
android:id="@+id/global_to_navigation_subtitles"
|
||||||
|
app:destination="@id/navigation_subtitles"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim">
|
||||||
|
<argument
|
||||||
|
android:name="hide"
|
||||||
|
android:defaultValue="true"
|
||||||
|
app:argType="boolean" />
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/global_to_navigation_chrome_subtitles"
|
||||||
|
app:destination="@id/navigation_chrome_subtitles"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim">
|
||||||
|
<argument
|
||||||
|
android:name="hide"
|
||||||
|
android:defaultValue="true"
|
||||||
|
app:argType="boolean" />
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_settings_player"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.settings.SettingsPlayer"
|
||||||
|
android:label="@string/title_settings"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim">
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_settings_player_to_navigation_subtitles"
|
||||||
app:destination="@id/navigation_subtitles"
|
app:destination="@id/navigation_subtitles"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim">
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
<argument
|
<action
|
||||||
android:name="hide"
|
android:id="@+id/action_navigation_settings_player_to_navigation_chrome_subtitles"
|
||||||
app:argType="boolean"
|
|
||||||
android:defaultValue="true" />
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<action
|
|
||||||
android:id="@+id/global_to_navigation_chrome_subtitles"
|
|
||||||
app:destination="@id/navigation_chrome_subtitles"
|
app:destination="@id/navigation_chrome_subtitles"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim">
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
<argument
|
|
||||||
android:name="hide"
|
|
||||||
app:argType="boolean"
|
|
||||||
android:defaultValue="true" />
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<fragment
|
|
||||||
android:id="@+id/navigation_settings_player"
|
|
||||||
android:label="@string/title_settings"
|
|
||||||
android:name="com.lagradost.cloudstream3.ui.settings.SettingsPlayer"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim">
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_settings_player_to_navigation_subtitles"
|
|
||||||
app:destination="@id/navigation_subtitles"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_settings_player_to_navigation_chrome_subtitles"
|
|
||||||
app:destination="@id/navigation_chrome_subtitles"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/navigation_settings_ui"
|
android:id="@+id/navigation_settings_ui"
|
||||||
android:label="@string/title_settings"
|
android:name="com.lagradost.cloudstream3.ui.settings.SettingsUI"
|
||||||
android:name="com.lagradost.cloudstream3.ui.settings.SettingsUI"
|
android:label="@string/title_settings"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/navigation_settings_general"
|
android:id="@+id/navigation_settings_general"
|
||||||
android:label="@string/title_settings"
|
android:name="com.lagradost.cloudstream3.ui.settings.SettingsGeneral"
|
||||||
android:name="com.lagradost.cloudstream3.ui.settings.SettingsGeneral"
|
android:label="@string/title_settings"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/navigation_settings_lang"
|
android:id="@+id/navigation_settings_lang"
|
||||||
android:label="@string/title_settings"
|
android:name="com.lagradost.cloudstream3.ui.settings.SettingsLang"
|
||||||
android:name="com.lagradost.cloudstream3.ui.settings.SettingsLang"
|
android:label="@string/title_settings"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/navigation_settings_updates"
|
android:id="@+id/navigation_settings_updates"
|
||||||
android:label="@string/title_settings"
|
android:name="com.lagradost.cloudstream3.ui.settings.SettingsUpdates"
|
||||||
android:name="com.lagradost.cloudstream3.ui.settings.SettingsUpdates"
|
android:label="@string/title_settings"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/navigation_settings_account"
|
android:id="@+id/navigation_settings_account"
|
||||||
android:label="@string/title_settings"
|
android:name="com.lagradost.cloudstream3.ui.settings.SettingsAccount"
|
||||||
android:name="com.lagradost.cloudstream3.ui.settings.SettingsAccount"
|
android:label="@string/title_settings"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/global_to_navigation_quick_search"
|
android:id="@+id/global_to_navigation_quick_search"
|
||||||
|
app:destination="@id/navigation_quick_search"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim">
|
||||||
|
<argument
|
||||||
|
android:name="mainapi"
|
||||||
|
android:defaultValue="true"
|
||||||
|
app:argType="boolean" />
|
||||||
|
<argument
|
||||||
|
android:name="autosearch"
|
||||||
|
android:defaultValue="@null"
|
||||||
|
app:argType="string" />
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_home"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.home.HomeFragment"
|
||||||
|
android:label="@string/title_home"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/fragment_home">
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_home_to_navigation_results"
|
||||||
|
app:destination="@id/navigation_results"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_home_to_navigation_quick_search"
|
||||||
app:destination="@id/navigation_quick_search"
|
app:destination="@id/navigation_quick_search"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim">
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
<argument
|
|
||||||
android:name="mainapi"
|
|
||||||
app:argType="boolean"
|
|
||||||
android:defaultValue="true" />
|
|
||||||
<argument
|
|
||||||
android:name="autosearch"
|
|
||||||
app:argType="string"
|
|
||||||
android:defaultValue="@null" />
|
|
||||||
</action>
|
|
||||||
|
|
||||||
<fragment
|
|
||||||
android:id="@+id/navigation_home"
|
|
||||||
android:name="com.lagradost.cloudstream3.ui.home.HomeFragment"
|
|
||||||
android:label="@string/title_home"
|
|
||||||
tools:layout="@layout/fragment_home"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim">
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_home_to_navigation_results"
|
|
||||||
app:destination="@id/navigation_results"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_home_to_navigation_quick_search"
|
|
||||||
app:destination="@id/navigation_quick_search"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/navigation_search"
|
android:id="@+id/navigation_search"
|
||||||
android:name="com.lagradost.cloudstream3.ui.search.SearchFragment"
|
android:name="com.lagradost.cloudstream3.ui.search.SearchFragment"
|
||||||
android:label="@string/title_search"
|
android:label="@string/title_search"
|
||||||
tools:layout="@layout/fragment_search"
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/fragment_search">
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_search_to_navigation_results"
|
||||||
|
app:destination="@id/navigation_results"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim">
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_search_to_navigation_results"
|
|
||||||
app:destination="@id/navigation_results"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/navigation_downloads"
|
android:id="@+id/navigation_downloads"
|
||||||
android:name="com.lagradost.cloudstream3.ui.download.DownloadFragment"
|
android:name="com.lagradost.cloudstream3.ui.download.DownloadFragment"
|
||||||
android:label="@string/title_downloads"
|
android:label="@string/title_downloads"
|
||||||
tools:layout="@layout/fragment_downloads"
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/fragment_downloads">
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_downloads_to_navigation_download_child"
|
||||||
|
app:destination="@id/navigation_download_child"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim">
|
app:popExitAnim="@anim/exit_anim">
|
||||||
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_downloads_to_navigation_download_child"
|
|
||||||
app:destination="@id/navigation_download_child"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim">
|
|
||||||
<argument
|
<argument
|
||||||
android:name="name"
|
android:name="name"
|
||||||
app:argType="string" />
|
app:argType="string" />
|
||||||
<argument
|
<argument
|
||||||
android:name="folder"
|
android:name="folder"
|
||||||
app:argType="string" />
|
app:argType="string" />
|
||||||
</action>
|
</action>
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_downloads_to_navigation_results"
|
android:id="@+id/action_navigation_downloads_to_navigation_results"
|
||||||
app:destination="@id/navigation_results"
|
app:destination="@id/navigation_results"
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_downloads_to_navigation_player"
|
|
||||||
app:destination="@id/navigation_player"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
</fragment>
|
|
||||||
<fragment
|
|
||||||
android:id="@+id/navigation_settings"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:name="com.lagradost.cloudstream3.ui.settings.SettingsFragment"
|
|
||||||
tools:layout="@layout/main_settings"
|
|
||||||
android:label="@string/title_settings"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim">
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_settings_to_navigation_settings_ui"
|
|
||||||
app:destination="@id/navigation_settings_ui"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_settings_to_navigation_settings_lang"
|
|
||||||
app:destination="@id/navigation_settings_lang"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_settings_to_navigation_settings_player"
|
|
||||||
app:destination="@id/navigation_settings_player"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_settings_to_navigation_settings_updates"
|
|
||||||
app:destination="@id/navigation_settings_updates"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_settings_to_navigation_settings_account"
|
|
||||||
app:destination="@id/navigation_settings_account"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
<action
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim"
|
|
||||||
android:id="@+id/action_navigation_settings_to_navigation_settings_general"
|
|
||||||
app:destination="@id/navigation_settings_general" />
|
|
||||||
</fragment>
|
|
||||||
|
|
||||||
<fragment
|
|
||||||
android:id="@+id/navigation_subtitles"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:name="com.lagradost.cloudstream3.ui.subtitles.SubtitlesFragment"
|
|
||||||
tools:layout="@layout/subtitle_settings"
|
|
||||||
android:label="@string/subtitles_settings"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
<action
|
||||||
<fragment
|
android:id="@+id/action_navigation_downloads_to_navigation_player"
|
||||||
android:id="@+id/navigation_chrome_subtitles"
|
app:destination="@id/navigation_player"
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:name="com.lagradost.cloudstream3.ui.subtitles.ChromecastSubtitlesFragment"
|
|
||||||
tools:layout="@layout/chromecast_subtitle_settings"
|
|
||||||
android:label="@string/chromecast_subtitles_settings"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
|
||||||
<fragment
|
|
||||||
android:id="@+id/navigation_quick_search"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:name="com.lagradost.cloudstream3.ui.quicksearch.QuickSearchFragment"
|
|
||||||
tools:layout="@layout/quick_search"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim"
|
|
||||||
android:label="@string/search" />
|
|
||||||
|
|
||||||
<fragment
|
|
||||||
android:id="@+id/navigation_download_child"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:name="com.lagradost.cloudstream3.ui.download.DownloadChildFragment"
|
|
||||||
tools:layout="@layout/fragment_child_downloads"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim">
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_download_child_to_navigation_player"
|
|
||||||
app:destination="@id/navigation_player"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
</fragment>
|
</fragment>
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/navigation_results"
|
android:id="@+id/navigation_settings"
|
||||||
android:layout_height="match_parent"
|
android:name="com.lagradost.cloudstream3.ui.settings.SettingsFragment"
|
||||||
android:name="com.lagradost.cloudstream3.ui.result.ResultFragment"
|
android:layout_height="match_parent"
|
||||||
tools:layout="@layout/fragment_result_swipe"
|
android:label="@string/title_settings"
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim">
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/main_settings">
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_navigation_results_to_navigation_quick_search"
|
android:id="@+id/action_navigation_settings_to_navigation_settings_ui"
|
||||||
app:destination="@id/navigation_quick_search"
|
app:destination="@id/navigation_settings_ui"
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
<action
|
|
||||||
android:id="@+id/action_navigation_results_to_navigation_player"
|
|
||||||
app:destination="@id/navigation_player"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
|
||||||
app:exitAnim="@anim/exit_anim"
|
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
|
||||||
</fragment>
|
|
||||||
|
|
||||||
<fragment
|
|
||||||
tools:layout="@layout/fragment_player"
|
|
||||||
android:id="@+id/navigation_player"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:name="com.lagradost.cloudstream3.ui.player.GeneratorPlayer"
|
|
||||||
app:enterAnim="@anim/enter_anim"
|
app:enterAnim="@anim/enter_anim"
|
||||||
app:exitAnim="@anim/exit_anim"
|
app:exitAnim="@anim/exit_anim"
|
||||||
app:popEnterAnim="@anim/enter_anim"
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
app:popExitAnim="@anim/exit_anim" />
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_settings_to_navigation_settings_lang"
|
||||||
|
app:destination="@id/navigation_settings_lang"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_settings_to_navigation_settings_player"
|
||||||
|
app:destination="@id/navigation_settings_player"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_settings_to_navigation_settings_updates"
|
||||||
|
app:destination="@id/navigation_settings_updates"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_settings_to_navigation_settings_account"
|
||||||
|
app:destination="@id/navigation_settings_account"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_settings_to_navigation_settings_general"
|
||||||
|
app:destination="@id/navigation_settings_general"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
</fragment>
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_subtitles"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.subtitles.SubtitlesFragment"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:label="@string/subtitles_settings"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/subtitle_settings" />
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_chrome_subtitles"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.subtitles.ChromecastSubtitlesFragment"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:label="@string/chromecast_subtitles_settings"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/chromecast_subtitle_settings" />
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_quick_search"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.quicksearch.QuickSearchFragment"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:label="@string/search"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/quick_search" />
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_download_child"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.download.DownloadChildFragment"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/fragment_child_downloads">
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_download_child_to_navigation_player"
|
||||||
|
app:destination="@id/navigation_player"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
</fragment>
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_results"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.result.ResultFragment"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/fragment_result_swipe">
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_results_to_navigation_quick_search"
|
||||||
|
app:destination="@id/navigation_quick_search"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_results_to_navigation_player"
|
||||||
|
app:destination="@id/navigation_player"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
</fragment>
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_player"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.player.GeneratorPlayer"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/fragment_player" />
|
||||||
|
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_setup_language"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.setup.SetupFragmentLanguage"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/fragment_setup_language">
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_navigation_setup_language_to_navigation_setup_provider_languages"
|
||||||
|
app:destination="@id/navigation_setup_provider_languages"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
</fragment>
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_setup_provider_languages"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.setup.SetupFragmentProviderLanguage"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/fragment_setup_provider_languages">
|
||||||
|
<action
|
||||||
|
android:id="@+id/navigation_setup_provider_languages_to_navigation_setup_media"
|
||||||
|
app:destination="@id/navigation_setup_media"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
</fragment>
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_setup_media"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.setup.SetupFragmentMedia"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/fragment_setup_media">
|
||||||
|
<action
|
||||||
|
android:id="@+id/navigation_setup_media_to_navigation_setup_layout"
|
||||||
|
app:destination="@id/navigation_setup_layout"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim" />
|
||||||
|
</fragment>
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/navigation_setup_layout"
|
||||||
|
android:name="com.lagradost.cloudstream3.ui.setup.SetupFragmentLayout"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:enterAnim="@anim/enter_anim"
|
||||||
|
app:exitAnim="@anim/exit_anim"
|
||||||
|
app:popEnterAnim="@anim/enter_anim"
|
||||||
|
app:popExitAnim="@anim/exit_anim"
|
||||||
|
tools:layout="@layout/fragment_setup_media" />
|
||||||
</navigation>
|
</navigation>
|
|
@ -52,19 +52,20 @@
|
||||||
<string name="poster_ui_key" translatable="false">poster_ui_key</string>
|
<string name="poster_ui_key" translatable="false">poster_ui_key</string>
|
||||||
<string name="subtitles_encoding_key" translatable="false">subtitles_encoding_key</string>
|
<string name="subtitles_encoding_key" translatable="false">subtitles_encoding_key</string>
|
||||||
<string name="override_site_key" translatable="false">override_site_key</string>
|
<string name="override_site_key" translatable="false">override_site_key</string>
|
||||||
|
<string name="redo_setup_key" translatable="false">redo_setup_key</string>
|
||||||
|
|
||||||
<!-- FORMAT MIGHT TRANSLATE, WILL CAUSE CRASH IF APPLIED WRONG -->
|
<!-- FORMAT MIGHT TRANSLATE, WILL CAUSE CRASH IF APPLIED WRONG -->
|
||||||
<string name="extra_info_format" translatable="false" formatted="true">%d %s | %sMB</string>
|
<string name="extra_info_format" formatted="true" translatable="false">%d %s | %sMB</string>
|
||||||
<string name="storage_size_format" translatable="false" formatted="true">%s • %sGB</string>
|
<string name="storage_size_format" formatted="true" translatable="false">%s • %sGB</string>
|
||||||
<string name="download_size_format" translatable="false" formatted="true">%sMB / %sMB</string>
|
<string name="download_size_format" formatted="true" translatable="false">%sMB / %sMB</string>
|
||||||
<string name="mb_format" translatable="false" formatted="true">%dMB</string>
|
<string name="mb_format" formatted="true" translatable="false">%dMB</string>
|
||||||
<string name="episode_name_format" translatable="false" formatted="true">%s %s</string>
|
<string name="episode_name_format" formatted="true" translatable="false">%s %s</string>
|
||||||
<string name="ffw_text_format" translatable="false" formatted="true">+%d</string>
|
<string name="ffw_text_format" formatted="true" translatable="false">+%d</string>
|
||||||
<string name="rew_text_format" translatable="false" formatted="true">-%d</string>
|
<string name="rew_text_format" formatted="true" translatable="false">-%d</string>
|
||||||
<string name="ffw_text_regular_format" translatable="false" formatted="true">%d</string>
|
<string name="ffw_text_regular_format" formatted="true" translatable="false">%d</string>
|
||||||
<string name="rew_text_regular_format" translatable="false" formatted="true">%d</string>
|
<string name="rew_text_regular_format" formatted="true" translatable="false">%d</string>
|
||||||
<string name="rating_format" translatable="false" formatted="true">%.1f/10.0</string>
|
<string name="rating_format" formatted="true" translatable="false">%.1f/10.0</string>
|
||||||
<string name="year_format" translatable="false" formatted="true">%d</string>
|
<string name="year_format" formatted="true" translatable="false">%d</string>
|
||||||
<string name="app_dub_sub_episode_text_format" formatted="true">%s Ep %d</string>
|
<string name="app_dub_sub_episode_text_format" formatted="true">%s Ep %d</string>
|
||||||
<string name="cast_format" formatted="true">Cast: %s</string>
|
<string name="cast_format" formatted="true">Cast: %s</string>
|
||||||
<string name="next_episode_format" formatted="true">Episode %d will be released in</string>
|
<string name="next_episode_format" formatted="true">Episode %d will be released in</string>
|
||||||
|
@ -558,4 +559,14 @@
|
||||||
<string name="trailer">Trailer</string>
|
<string name="trailer">Trailer</string>
|
||||||
<string name="network_adress_example">Link to stream</string>
|
<string name="network_adress_example">Link to stream</string>
|
||||||
<string name="referer">Referer</string>
|
<string name="referer">Referer</string>
|
||||||
|
<string name="next">Next</string>
|
||||||
|
<string name="provider_languages_tip">Watch videos in these languages</string>
|
||||||
|
<string name="previous">Previous</string>
|
||||||
|
<string name="skip_setup">Skip setup</string>
|
||||||
|
<!-- TODO: Remove or change this placeholder text -->
|
||||||
|
<string name="hello_blank_fragment">Hello blank fragment</string>
|
||||||
|
<string name="app_layout_subtext">Change the look of the app to suit your device</string>
|
||||||
|
<string name="crash_reporting_title">Crash reporting</string>
|
||||||
|
<string name="preferred_media_subtext">What do you want to see</string>
|
||||||
|
<string name="setup_done">Done</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,49 +1,53 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
<Preference
|
<Preference
|
||||||
android:title="@string/check_for_update"
|
android:title="@string/check_for_update"
|
||||||
app:summary="@string/app_version"
|
app:icon="@drawable/ic_baseline_system_update_24"
|
||||||
app:key="@string/manual_check_update_key"
|
app:key="@string/manual_check_update_key"
|
||||||
app:icon="@drawable/ic_baseline_system_update_24" />
|
app:summary="@string/app_version" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:icon="@drawable/baseline_save_as_24"
|
android:icon="@drawable/baseline_save_as_24"
|
||||||
android:key="@string/backup_key"
|
android:key="@string/backup_key"
|
||||||
android:title="@string/backup_settings" />
|
android:title="@string/backup_settings" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:icon="@drawable/baseline_restore_page_24"
|
android:icon="@drawable/baseline_restore_page_24"
|
||||||
android:key="@string/restore_key"
|
android:key="@string/restore_key"
|
||||||
android:title="@string/restore_settings" />
|
android:title="@string/restore_settings" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="@string/show_logcat_key"
|
android:icon="@drawable/baseline_description_24"
|
||||||
android:title="@string/show_log_cat"
|
android:key="@string/show_logcat_key"
|
||||||
android:icon="@drawable/baseline_description_24" />
|
android:title="@string/show_log_cat" />
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
android:key="acra.disable"
|
android:defaultValue="false"
|
||||||
android:icon="@drawable/ic_baseline_bug_report_24"
|
android:icon="@drawable/ic_baseline_bug_report_24"
|
||||||
android:title="@string/pref_disable_acra"
|
android:key="acra.disable"
|
||||||
android:summaryOff="@string/bug_report_settings_off"
|
android:summaryOff="@string/bug_report_settings_off"
|
||||||
android:summaryOn="@string/bug_report_settings_on"
|
android:summaryOn="@string/bug_report_settings_on"
|
||||||
android:defaultValue="false" />
|
android:title="@string/pref_disable_acra" />
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
app:key="@string/auto_update_key"
|
android:icon="@drawable/ic_baseline_notifications_active_24"
|
||||||
android:title="@string/updates_settings"
|
android:summary="@string/updates_settings_des"
|
||||||
android:summary="@string/updates_settings_des"
|
android:title="@string/updates_settings"
|
||||||
app:defaultValue="true"
|
app:defaultValue="true"
|
||||||
android:icon="@drawable/ic_baseline_notifications_active_24" />
|
app:key="@string/auto_update_key" />
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
app:key="@string/prerelease_update_key"
|
android:icon="@drawable/ic_baseline_developer_mode_24"
|
||||||
android:title="@string/uprereleases_settings"
|
android:summary="@string/uprereleases_settings_des"
|
||||||
android:summary="@string/uprereleases_settings_des"
|
android:title="@string/uprereleases_settings"
|
||||||
app:defaultValue="false"
|
app:defaultValue="false"
|
||||||
android:icon="@drawable/ic_baseline_developer_mode_24" />
|
app:key="@string/prerelease_update_key" />
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
android:icon="@drawable/netflix_download"
|
android:defaultValue="true"
|
||||||
android:key="@string/killswitch_key"
|
android:icon="@drawable/netflix_download"
|
||||||
android:defaultValue="true"
|
android:key="@string/killswitch_key"
|
||||||
android:summary="@string/killswitch_settings_des"
|
android:summary="@string/killswitch_settings_des"
|
||||||
android:title="@string/killswitch_settings" />
|
android:title="@string/killswitch_settings" />
|
||||||
|
<Preference
|
||||||
|
app:key="@string/redo_setup_key"
|
||||||
|
android:icon="@drawable/ic_baseline_construction_24"
|
||||||
|
android:title="Redo setup process" />
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
Loading…
Reference in a new issue