forked from recloudstream/cloudstream
		
	added settings to disable HD, SUB, DUB & Title. Now stop complaining
This commit is contained in:
		
							parent
							
								
									a114c8658e
								
							
						
					
					
						commit
						1499b2be40
					
				
					 9 changed files with 180 additions and 71 deletions
				
			
		|  | @ -36,7 +36,7 @@ android { | ||||||
|         targetSdkVersion 30 |         targetSdkVersion 30 | ||||||
| 
 | 
 | ||||||
|         versionCode 47 |         versionCode 47 | ||||||
|         versionName "2.9.24" |         versionName "2.9.25" | ||||||
| 
 | 
 | ||||||
|         resValue "string", "app_version", |         resValue "string", "app_version", | ||||||
|                 "${defaultConfig.versionName}${versionNameSuffix ?: ""}" |                 "${defaultConfig.versionName}${versionNameSuffix ?: ""}" | ||||||
|  |  | ||||||
|  | @ -44,6 +44,7 @@ import com.lagradost.cloudstream3.syncproviders.OAuth2API.Companion.appString | ||||||
| import com.lagradost.cloudstream3.ui.APIRepository | import com.lagradost.cloudstream3.ui.APIRepository | ||||||
| import com.lagradost.cloudstream3.ui.download.DOWNLOAD_NAVIGATE_TO | import com.lagradost.cloudstream3.ui.download.DOWNLOAD_NAVIGATE_TO | ||||||
| import com.lagradost.cloudstream3.ui.result.ResultFragment | import com.lagradost.cloudstream3.ui.result.ResultFragment | ||||||
|  | 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.utils.AppUtils.isCastApiAvailable | import com.lagradost.cloudstream3.utils.AppUtils.isCastApiAvailable | ||||||
|  | @ -109,7 +110,8 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | ||||||
|         super.onConfigurationChanged(newConfig) |         super.onConfigurationChanged(newConfig) | ||||||
|         updateLocale() // android fucks me by chaining lang when rotating the phone |         updateLocale() // android fucks me by chaining lang when rotating the phone | ||||||
| 
 | 
 | ||||||
|         val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment |         val navHostFragment = | ||||||
|  |             supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment | ||||||
|         navHostFragment.navController.currentDestination?.let { updateNavBar(it) } |         navHostFragment.navController.currentDestination?.let { updateNavBar(it) } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -349,6 +351,8 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | ||||||
|             api.init() |             api.init() | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         SearchResultBuilder.updateCache(this) | ||||||
|  | 
 | ||||||
|         val settingsManager = PreferenceManager.getDefaultSharedPreferences(this) |         val settingsManager = PreferenceManager.getDefaultSharedPreferences(this) | ||||||
|         val downloadFromGithub = try { |         val downloadFromGithub = try { | ||||||
|             settingsManager.getBoolean(getString(R.string.killswitch_key), true) |             settingsManager.getBoolean(getString(R.string.killswitch_key), true) | ||||||
|  | @ -365,13 +369,18 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | ||||||
|             e.printStackTrace() |             e.printStackTrace() | ||||||
|             false |             false | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|         fun addNginxToJson(data: java.util.HashMap<String, ProvidersInfoJson>): java.util.HashMap<String, ProvidersInfoJson>? { |         fun addNginxToJson(data: java.util.HashMap<String, ProvidersInfoJson>): java.util.HashMap<String, ProvidersInfoJson>? { | ||||||
|             try { |             try { | ||||||
|                 val settingsManager = PreferenceManager.getDefaultSharedPreferences(this) |                 val settingsManager = PreferenceManager.getDefaultSharedPreferences(this) | ||||||
|                 val nginxUrl = |                 val nginxUrl = | ||||||
|                 settingsManager.getString(getString(R.string.nginx_url_key), "nginx_url_key").toString() |                     settingsManager.getString(getString(R.string.nginx_url_key), "nginx_url_key") | ||||||
|  |                         .toString() | ||||||
|                 val nginxCredentials = |                 val nginxCredentials = | ||||||
|                 settingsManager.getString(getString(R.string.nginx_credentials), "nginx_credentials") |                     settingsManager.getString( | ||||||
|  |                         getString(R.string.nginx_credentials), | ||||||
|  |                         "nginx_credentials" | ||||||
|  |                     ) | ||||||
|                         .toString() |                         .toString() | ||||||
|                 val StoredNginxProvider = NginxProvider() |                 val StoredNginxProvider = NginxProvider() | ||||||
|                 if (nginxUrl == "nginx_url_key" || nginxUrl == "") { // if key is default value, or empty: |                 if (nginxUrl == "nginx_url_key" || nginxUrl == "") { // if key is default value, or empty: | ||||||
|  | @ -396,11 +405,17 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | ||||||
|                 return data |                 return data | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     fun createNginxJson() : ProvidersInfoJson? { //java.util.HashMap<String, ProvidersInfoJson> | 
 | ||||||
|  |         fun createNginxJson(): ProvidersInfoJson? { //java.util.HashMap<String, ProvidersInfoJson> | ||||||
|             return try { |             return try { | ||||||
|                 val settingsManager = PreferenceManager.getDefaultSharedPreferences(this) |                 val settingsManager = PreferenceManager.getDefaultSharedPreferences(this) | ||||||
|             val nginxUrl = settingsManager.getString(getString(R.string.nginx_url_key), "nginx_url_key").toString() |                 val nginxUrl = | ||||||
|             val nginxCredentials = settingsManager.getString(getString(R.string.nginx_credentials), "nginx_credentials").toString() |                     settingsManager.getString(getString(R.string.nginx_url_key), "nginx_url_key") | ||||||
|  |                         .toString() | ||||||
|  |                 val nginxCredentials = settingsManager.getString( | ||||||
|  |                     getString(R.string.nginx_credentials), | ||||||
|  |                     "nginx_credentials" | ||||||
|  |                 ).toString() | ||||||
|                 if (nginxUrl == "nginx_url_key" || nginxUrl == "") { // if key is default value or empty: |                 if (nginxUrl == "nginx_url_key" || nginxUrl == "") { // if key is default value or empty: | ||||||
|                     null // don't overwrite anything |                     null // don't overwrite anything | ||||||
|                 } else { |                 } else { | ||||||
|  | @ -436,10 +451,12 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | ||||||
|                                         setKey(PROVIDER_STATUS_KEY, txt) |                                         setKey(PROVIDER_STATUS_KEY, txt) | ||||||
|                                         MainAPI.overrideData = newCache // update all new providers |                                         MainAPI.overrideData = newCache // update all new providers | ||||||
| 
 | 
 | ||||||
|                                         val newUpdatedCache = newCache?.let { addNginxToJson(it) ?: it } |                                         val newUpdatedCache = | ||||||
|  |                                             newCache?.let { addNginxToJson(it) ?: it } | ||||||
| 
 | 
 | ||||||
|                                         for (api in apis) { // update current providers |                                         for (api in apis) { // update current providers | ||||||
|                                             newUpdatedCache?.get(api.javaClass.simpleName)?.let { data -> |                                             newUpdatedCache?.get(api.javaClass.simpleName) | ||||||
|  |                                                 ?.let { data -> | ||||||
|                                                     api.overrideWithNewData(data) |                                                     api.overrideWithNewData(data) | ||||||
|                                                 } |                                                 } | ||||||
|                                         } |                                         } | ||||||
|  | @ -456,7 +473,8 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | ||||||
|                                 newCache |                                 newCache | ||||||
|                             }?.let { providersJsonMap -> |                             }?.let { providersJsonMap -> | ||||||
|                                 MainAPI.overrideData = providersJsonMap |                                 MainAPI.overrideData = providersJsonMap | ||||||
|                                 val providersJsonMapUpdated = addNginxToJson(providersJsonMap)?: providersJsonMap // if return null, use unchanged one |                                 val providersJsonMapUpdated = addNginxToJson(providersJsonMap) | ||||||
|  |                                     ?: providersJsonMap // if return null, use unchanged one | ||||||
|                                 val acceptableProviders = |                                 val acceptableProviders = | ||||||
|                                     providersJsonMapUpdated.filter { it.value.status == PROVIDER_STATUS_OK || it.value.status == PROVIDER_STATUS_SLOW } |                                     providersJsonMapUpdated.filter { it.value.status == PROVIDER_STATUS_OK || it.value.status == PROVIDER_STATUS_SLOW } | ||||||
|                                         .map { it.key }.toSet() |                                         .map { it.key }.toSet() | ||||||
|  | @ -524,7 +542,8 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | ||||||
|         setUpBackup() |         setUpBackup() | ||||||
| 
 | 
 | ||||||
|         CommonActivity.init(this) |         CommonActivity.init(this) | ||||||
|         val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment |         val navHostFragment = | ||||||
|  |             supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment | ||||||
|         val navController = navHostFragment.navController |         val navController = navHostFragment.navController | ||||||
|         //val navController = findNavController(R.id.nav_host_fragment) |         //val navController = findNavController(R.id.nav_host_fragment) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,11 +1,13 @@ | ||||||
| package com.lagradost.cloudstream3.ui.search | package com.lagradost.cloudstream3.ui.search | ||||||
| 
 | 
 | ||||||
|  | import android.content.Context | ||||||
| import android.view.View | import android.view.View | ||||||
| import android.widget.ImageView | import android.widget.ImageView | ||||||
| import android.widget.ProgressBar | import android.widget.ProgressBar | ||||||
| import android.widget.TextView | import android.widget.TextView | ||||||
| import androidx.cardview.widget.CardView | import androidx.cardview.widget.CardView | ||||||
| import androidx.core.view.isVisible | import androidx.core.view.isVisible | ||||||
|  | import androidx.preference.PreferenceManager | ||||||
| import com.lagradost.cloudstream3.* | import com.lagradost.cloudstream3.* | ||||||
| import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings | import com.lagradost.cloudstream3.ui.settings.SettingsFragment.Companion.isTrueTvSettings | ||||||
| import com.lagradost.cloudstream3.utils.AppUtils.getNameFull | import com.lagradost.cloudstream3.utils.AppUtils.getNameFull | ||||||
|  | @ -15,6 +17,17 @@ import com.lagradost.cloudstream3.utils.UIHelper.setImage | ||||||
| import kotlinx.android.synthetic.main.home_result_grid.view.* | import kotlinx.android.synthetic.main.home_result_grid.view.* | ||||||
| 
 | 
 | ||||||
| object SearchResultBuilder { | object SearchResultBuilder { | ||||||
|  |     private val showCache: MutableMap<String, Boolean> = mutableMapOf() | ||||||
|  | 
 | ||||||
|  |     fun updateCache(context: Context?) { | ||||||
|  |         if (context == null) return | ||||||
|  |         val settingsManager = PreferenceManager.getDefaultSharedPreferences(context) | ||||||
|  | 
 | ||||||
|  |         for (k in context.resources.getStringArray(R.array.poster_ui_options_values)) { | ||||||
|  |             showCache[k] = settingsManager.getBoolean(k, showCache[k] ?: true) | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * @param nextFocusBehavior True if first, False if last, Null if between. |      * @param nextFocusBehavior True if first, False if last, Null if between. | ||||||
|      * Used to prevent escaping the adapter horizontally (focus wise). |      * Used to prevent escaping the adapter horizontally (focus wise). | ||||||
|  | @ -34,6 +47,7 @@ object SearchResultBuilder { | ||||||
|         val textIsDub: TextView? = itemView.text_is_dub |         val textIsDub: TextView? = itemView.text_is_dub | ||||||
|         val textIsSub: TextView? = itemView.text_is_sub |         val textIsSub: TextView? = itemView.text_is_sub | ||||||
|         val textQuality: TextView? = itemView.text_quality |         val textQuality: TextView? = itemView.text_quality | ||||||
|  |         val shadow: View? = itemView.title_shadow | ||||||
| 
 | 
 | ||||||
|         val bg: CardView = itemView.background_card |         val bg: CardView = itemView.background_card | ||||||
| 
 | 
 | ||||||
|  | @ -47,6 +61,13 @@ object SearchResultBuilder { | ||||||
|         textIsDub?.isVisible = false |         textIsDub?.isVisible = false | ||||||
|         textIsSub?.isVisible = false |         textIsSub?.isVisible = false | ||||||
| 
 | 
 | ||||||
|  |         val showSub = showCache[textIsDub?.context?.getString(R.string.show_sub_key)] ?: false | ||||||
|  |         val showDub = showCache[textIsDub?.context?.getString(R.string.show_dub_key)] ?: false | ||||||
|  |         val showTitle = showCache[cardText?.context?.getString(R.string.show_title_key)] ?: false | ||||||
|  |         val showHd = showCache[textQuality?.context?.getString(R.string.show_title_key)] ?: false | ||||||
|  | 
 | ||||||
|  |         shadow?.isVisible = showTitle | ||||||
|  | 
 | ||||||
|         when (card.quality) { |         when (card.quality) { | ||||||
|             SearchQuality.BlueRay -> R.string.quality_blueray |             SearchQuality.BlueRay -> R.string.quality_blueray | ||||||
|             SearchQuality.Cam -> R.string.quality_cam |             SearchQuality.Cam -> R.string.quality_cam | ||||||
|  | @ -67,14 +88,15 @@ object SearchResultBuilder { | ||||||
|             null -> null |             null -> null | ||||||
|         }?.let { textRes -> |         }?.let { textRes -> | ||||||
|             textQuality?.setText(textRes) |             textQuality?.setText(textRes) | ||||||
|             textQuality?.isVisible = true |             textQuality?.isVisible = showHd | ||||||
|         } ?: run { |         } ?: run { | ||||||
|             textQuality?.isVisible = false |             textQuality?.isVisible = false | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         cardText?.text = card.name |         cardText?.text = card.name | ||||||
| 
 |         cardText?.isVisible = showTitle | ||||||
|         cardView.isVisible = true |         cardView.isVisible = true | ||||||
|  | 
 | ||||||
|         if (!cardView.setImage(card.posterUrl, card.posterHeaders)) { |         if (!cardView.setImage(card.posterUrl, card.posterHeaders)) { | ||||||
|             cardView.setImageResource(R.drawable.default_cover) |             cardView.setImageResource(R.drawable.default_cover) | ||||||
|         } |         } | ||||||
|  | @ -185,10 +207,10 @@ object SearchResultBuilder { | ||||||
|                 val dubStatus = card.dubStatus |                 val dubStatus = card.dubStatus | ||||||
|                 if (!dubStatus.isNullOrEmpty()) { |                 if (!dubStatus.isNullOrEmpty()) { | ||||||
|                     if (dubStatus.contains(DubStatus.Dubbed)) { |                     if (dubStatus.contains(DubStatus.Dubbed)) { | ||||||
|                         textIsDub?.visibility = View.VISIBLE |                         textIsDub?.isVisible = showDub | ||||||
|                     } |                     } | ||||||
|                     if (dubStatus.contains(DubStatus.Subbed)) { |                     if (dubStatus.contains(DubStatus.Subbed)) { | ||||||
|                         textIsSub?.visibility = View.VISIBLE |                         textIsSub?.isVisible = showSub | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -39,6 +39,7 @@ import com.lagradost.cloudstream3.syncproviders.OAuth2API | ||||||
| import com.lagradost.cloudstream3.syncproviders.OAuth2API.Companion.aniListApi | import com.lagradost.cloudstream3.syncproviders.OAuth2API.Companion.aniListApi | ||||||
| import com.lagradost.cloudstream3.syncproviders.OAuth2API.Companion.malApi | import com.lagradost.cloudstream3.syncproviders.OAuth2API.Companion.malApi | ||||||
| import com.lagradost.cloudstream3.ui.APIRepository | import com.lagradost.cloudstream3.ui.APIRepository | ||||||
|  | import com.lagradost.cloudstream3.ui.search.SearchResultBuilder | ||||||
| import com.lagradost.cloudstream3.ui.subtitles.ChromecastSubtitlesFragment | import com.lagradost.cloudstream3.ui.subtitles.ChromecastSubtitlesFragment | ||||||
| import com.lagradost.cloudstream3.ui.subtitles.SubtitlesFragment | import com.lagradost.cloudstream3.ui.subtitles.SubtitlesFragment | ||||||
| import com.lagradost.cloudstream3.utils.BackupUtils.backup | import com.lagradost.cloudstream3.utils.BackupUtils.backup | ||||||
|  | @ -339,6 +340,34 @@ class SettingsFragment : PreferenceFragmentCompat() { | ||||||
|             return@setOnPreferenceClickListener true |             return@setOnPreferenceClickListener true | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         getPref(R.string.poster_ui_key)?.setOnPreferenceClickListener { | ||||||
|  |             val prefNames = resources.getStringArray(R.array.poster_ui_options) | ||||||
|  |             val keys = resources.getStringArray(R.array.poster_ui_options_values) | ||||||
|  |             val prefValues = keys.map { | ||||||
|  |                 settingsManager.getBoolean(it, true) | ||||||
|  |             }.mapIndexedNotNull { index, b -> | ||||||
|  |                 if (b) { | ||||||
|  |                     index | ||||||
|  |                 } else null | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             activity?.showMultiDialog( | ||||||
|  |                 prefNames.toList(), | ||||||
|  |                 prefValues, | ||||||
|  |                 getString(R.string.poster_ui_settings), | ||||||
|  |                 {}) { list -> | ||||||
|  |                 val edit = settingsManager.edit() | ||||||
|  |                 for ((i, key) in keys.withIndex()) { | ||||||
|  |                     edit.putBoolean(key, list.contains(i)) | ||||||
|  |                 } | ||||||
|  |                 edit.apply() | ||||||
|  |                 SearchResultBuilder.updateCache(it.context) | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             return@setOnPreferenceClickListener true | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|         val syncApis = |         val syncApis = | ||||||
|             listOf(Pair(R.string.mal_key, malApi), Pair(R.string.anilist_key, aniListApi)) |             listOf(Pair(R.string.mal_key, malApi), Pair(R.string.anilist_key, aniListApi)) | ||||||
|         for ((key, api) in syncApis) { |         for ((key, api) in syncApis) { | ||||||
|  | @ -488,27 +517,33 @@ class SettingsFragment : PreferenceFragmentCompat() { | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         getPref(R.string.nginx_url_key)?.setOnPreferenceClickListener { |         getPref(R.string.nginx_url_key)?.setOnPreferenceClickListener { | ||||||
| 
 |  | ||||||
|             activity?.showNginxTextInputDialog( |             activity?.showNginxTextInputDialog( | ||||||
|                 settingsManager.getString(getString(R.string.nginx_url_pref), "Nginx server url").toString(), |                 settingsManager.getString(getString(R.string.nginx_url_pref), "Nginx server url") | ||||||
|                 settingsManager.getString(getString(R.string.nginx_url_key), "").toString(),  // key: the actual you use rn |                     .toString(), | ||||||
|  |                 settingsManager.getString(getString(R.string.nginx_url_key), "") | ||||||
|  |                     .toString(),  // key: the actual you use rn | ||||||
|                 android.text.InputType.TYPE_TEXT_VARIATION_URI,  // uri |                 android.text.InputType.TYPE_TEXT_VARIATION_URI,  // uri | ||||||
|                 {}) { |                 {}) { | ||||||
|                 settingsManager.edit() |                 settingsManager.edit() | ||||||
|                     .putString(getString(R.string.nginx_url_key), it).apply()  // change the stored url in nginx_url_key to it |                     .putString(getString(R.string.nginx_url_key), it) | ||||||
|  |                     .apply()  // change the stored url in nginx_url_key to it | ||||||
|             } |             } | ||||||
|             return@setOnPreferenceClickListener true |             return@setOnPreferenceClickListener true | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         getPref(R.string.nginx_credentials)?.setOnPreferenceClickListener { |         getPref(R.string.nginx_credentials)?.setOnPreferenceClickListener { | ||||||
| 
 |  | ||||||
|             activity?.showNginxTextInputDialog( |             activity?.showNginxTextInputDialog( | ||||||
|                 settingsManager.getString(getString(R.string.nginx_credentials_title), "Nginx Credentials").toString(), |                 settingsManager.getString( | ||||||
|                 settingsManager.getString(getString(R.string.nginx_credentials), "").toString(),  // key: the actual you use rn |                     getString(R.string.nginx_credentials_title), | ||||||
|  |                     "Nginx Credentials" | ||||||
|  |                 ).toString(), | ||||||
|  |                 settingsManager.getString(getString(R.string.nginx_credentials), "") | ||||||
|  |                     .toString(),  // key: the actual you use rn | ||||||
|                 android.text.InputType.TYPE_TEXT_VARIATION_URI, |                 android.text.InputType.TYPE_TEXT_VARIATION_URI, | ||||||
|                 {}) { |                 {}) { | ||||||
|                 settingsManager.edit() |                 settingsManager.edit() | ||||||
|                     .putString(getString(R.string.nginx_credentials), it).apply()  // change the stored url in nginx_url_key to it |                     .putString(getString(R.string.nginx_credentials), it) | ||||||
|  |                     .apply()  // change the stored url in nginx_url_key to it | ||||||
|             } |             } | ||||||
|             return@setOnPreferenceClickListener true |             return@setOnPreferenceClickListener true | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -30,6 +30,7 @@ | ||||||
|             android:clickable="false" |             android:clickable="false" | ||||||
|             android:layout_width="match_parent" |             android:layout_width="match_parent" | ||||||
|             android:layout_height="50dp" |             android:layout_height="50dp" | ||||||
|  |             android:id="@+id/title_shadow" | ||||||
|             android:src="@drawable/title_shadow" |             android:src="@drawable/title_shadow" | ||||||
|             android:layout_gravity="bottom" |             android:layout_gravity="bottom" | ||||||
|             tools:ignore="ContentDescription" /> |             tools:ignore="ContentDescription" /> | ||||||
|  |  | ||||||
|  | @ -36,6 +36,7 @@ | ||||||
|                 android:clickable="false" |                 android:clickable="false" | ||||||
|                 android:layout_width="match_parent" |                 android:layout_width="match_parent" | ||||||
|                 android:layout_height="50dp" |                 android:layout_height="50dp" | ||||||
|  |                 android:id="@+id/title_shadow" | ||||||
|                 android:src="@drawable/title_shadow" |                 android:src="@drawable/title_shadow" | ||||||
|                 android:layout_gravity="bottom" |                 android:layout_gravity="bottom" | ||||||
|                 tools:ignore="ContentDescription" /> |                 tools:ignore="ContentDescription" /> | ||||||
|  | @ -55,6 +56,7 @@ | ||||||
|                 android:paddingStart="5dp" |                 android:paddingStart="5dp" | ||||||
|                 android:paddingEnd="5dp" |                 android:paddingEnd="5dp" | ||||||
|                 android:ellipsize="end" /> |                 android:ellipsize="end" /> | ||||||
|  | 
 | ||||||
|         <TextView |         <TextView | ||||||
|                 tools:text="@string/quality_hd" |                 tools:text="@string/quality_hd" | ||||||
|                 android:id="@+id/text_quality" |                 android:id="@+id/text_quality" | ||||||
|  | @ -67,6 +69,7 @@ | ||||||
|                 android:layout_gravity="end" |                 android:layout_gravity="end" | ||||||
|                 android:layout_width="match_parent" |                 android:layout_width="match_parent" | ||||||
|                 android:layout_height="match_parent"> |                 android:layout_height="match_parent"> | ||||||
|  | 
 | ||||||
|             <TextView |             <TextView | ||||||
|                     android:text="@string/app_dubbed_text" |                     android:text="@string/app_dubbed_text" | ||||||
|                     android:id="@+id/text_is_dub" |                     android:id="@+id/text_is_dub" | ||||||
|  |  | ||||||
|  | @ -143,6 +143,20 @@ | ||||||
|         <item>500</item> |         <item>500</item> | ||||||
|     </array> |     </array> | ||||||
| 
 | 
 | ||||||
|  |     <array name="poster_ui_options"> | ||||||
|  |         <item>@string/show_hd</item> | ||||||
|  |         <item>@string/show_dub</item> | ||||||
|  |         <item>@string/show_sub</item> | ||||||
|  |         <item>@string/show_title</item> | ||||||
|  |     </array> | ||||||
|  | 
 | ||||||
|  |     <array name="poster_ui_options_values"> | ||||||
|  |         <item>@string/show_hd_key</item> | ||||||
|  |         <item>@string/show_dub_key</item> | ||||||
|  |         <item>@string/show_sub_key</item> | ||||||
|  |         <item>@string/show_title_key</item> | ||||||
|  |     </array> | ||||||
|  | 
 | ||||||
|     <array name="episode_long_click_options"> |     <array name="episode_long_click_options"> | ||||||
|         <item>@string/episode_action_chromecast_episode</item> |         <item>@string/episode_action_chromecast_episode</item> | ||||||
|         <item>@string/episode_action_chromecast_mirror</item> |         <item>@string/episode_action_chromecast_mirror</item> | ||||||
|  |  | ||||||
|  | @ -48,6 +48,7 @@ | ||||||
|     <string name="log_enabled_key" translatable="false">log_enabled_key</string> |     <string name="log_enabled_key" translatable="false">log_enabled_key</string> | ||||||
|     <string name="show_logcat_key" translatable="false">show_logcat_key</string> |     <string name="show_logcat_key" translatable="false">show_logcat_key</string> | ||||||
|     <string name="bottom_title_key" translatable="false">bottom_title_key</string> |     <string name="bottom_title_key" translatable="false">bottom_title_key</string> | ||||||
|  |     <string name="poster_ui_key" translatable="false">poster_ui_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" translatable="false" formatted="true">%d %s | %sMB</string> | ||||||
|  | @ -342,6 +343,16 @@ | ||||||
|     <string name="episode_action_reload_links">Reload links</string> |     <string name="episode_action_reload_links">Reload links</string> | ||||||
|     <string name="episode_action_download_subtitle">Download subtitles</string> |     <string name="episode_action_download_subtitle">Download subtitles</string> | ||||||
| 
 | 
 | ||||||
|  |     <string name="show_hd">Quality label</string> | ||||||
|  |     <string name="show_dub">Dub label</string> | ||||||
|  |     <string name="show_sub">Sub label</string> | ||||||
|  |     <string name="show_title">Title</string> | ||||||
|  |     <string name="show_hd_key" translatable="false">show_hd_key</string> | ||||||
|  |     <string name="show_dub_key" translatable="false">show_dub_key</string> | ||||||
|  |     <string name="show_sub_key" translatable="false">show_sub_key</string> | ||||||
|  |     <string name="show_title_key" translatable="false">show_title_key</string> | ||||||
|  |     <string name="poster_ui_settings">Toggle UI elements on poster</string> | ||||||
|  | 
 | ||||||
|     <string name="no_update_found">No Update Found</string> |     <string name="no_update_found">No Update Found</string> | ||||||
|     <string name="check_for_update">Check for Update</string> |     <string name="check_for_update">Check for Update</string> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -166,6 +166,10 @@ | ||||||
|                 android:key="@string/bottom_title_key" |                 android:key="@string/bottom_title_key" | ||||||
|                 android:summary="@string/bottom_title_settings_des" |                 android:summary="@string/bottom_title_settings_des" | ||||||
|                 android:title="@string/bottom_title_settings" /> |                 android:title="@string/bottom_title_settings" /> | ||||||
|  |         <Preference | ||||||
|  |                 android:icon="@drawable/ic_baseline_tv_24" | ||||||
|  |                 android:key="@string/poster_ui_key" | ||||||
|  |                 android:title="@string/poster_ui_settings" /> | ||||||
|     </PreferenceCategory> |     </PreferenceCategory> | ||||||
|     <PreferenceCategory |     <PreferenceCategory | ||||||
|             android:key="search" |             android:key="search" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue