AquaStream/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt

121 lines
3.8 KiB
Kotlin
Raw Normal View History

2021-06-10 23:00:22 +00:00
package com.lagradost.cloudstream3.ui.settings
2021-10-30 18:14:12 +00:00
import android.app.UiModeManager
import android.content.Context
import android.content.res.Configuration
import android.os.Build
2021-06-10 23:00:22 +00:00
import android.os.Bundle
2022-05-15 18:38:32 +00:00
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
2021-08-07 01:53:45 +00:00
import androidx.preference.Preference
2021-06-10 23:00:22 +00:00
import androidx.preference.PreferenceFragmentCompat
2021-08-30 21:42:58 +00:00
import androidx.preference.PreferenceManager
2021-06-10 23:00:22 +00:00
import com.lagradost.cloudstream3.R
2021-09-02 14:06:43 +00:00
import com.lagradost.cloudstream3.mvvm.logError
2022-05-15 18:38:32 +00:00
import com.lagradost.cloudstream3.utils.UIHelper.navigate
import kotlinx.android.synthetic.main.main_settings.*
2021-11-01 15:33:46 +00:00
import java.io.File
2021-09-02 14:06:43 +00:00
2022-05-15 18:38:32 +00:00
class SettingsFragment : Fragment() {
2021-10-30 18:14:12 +00:00
companion object {
2022-05-15 18:38:32 +00:00
var beneneCount = 0
fun PreferenceFragmentCompat?.getPref(id: Int): Preference? {
if (this == null) return null
return try {
findPreference(getString(id))
} catch (e: Exception) {
logError(e)
null
}
}
fun getFolderSize(dir: File): Long {
var size: Long = 0
dir.listFiles()?.let {
for (file in it) {
size += if (file.isFile) {
// System.out.println(file.getName() + " " + file.length());
file.length()
} else getFolderSize(file)
}
}
return size
}
2022-03-04 15:39:56 +00:00
private fun Context.getLayoutInt(): Int {
2021-10-30 18:14:12 +00:00
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
2022-02-18 19:29:48 +00:00
return settingsManager.getInt(this.getString(R.string.app_layout_key), -1)
}
fun Context.isTvSettings(): Boolean {
var value = getLayoutInt()
2021-10-30 18:14:12 +00:00
if (value == -1) {
value = if (isAutoTv()) 1 else 0
}
2022-02-18 19:29:48 +00:00
return value == 1 || value == 2
}
2022-03-04 15:39:56 +00:00
fun Context.isTrueTvSettings(): Boolean {
2022-03-29 21:50:07 +00:00
var value = getLayoutInt()
if (value == -1) {
value = if (isAutoTv()) 1 else 0
}
return value == 1
2021-10-30 18:14:12 +00:00
}
2022-03-04 15:39:56 +00:00
fun Context.isEmulatorSettings(): Boolean {
return getLayoutInt() == 2
}
2021-10-30 18:14:12 +00:00
private fun Context.isAutoTv(): Boolean {
val uiModeManager = getSystemService(Context.UI_MODE_SERVICE) as UiModeManager?
// AFT = Fire TV
2022-05-15 18:38:32 +00:00
return uiModeManager?.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION || Build.MODEL.contains(
"AFT"
)
2021-10-30 18:14:12 +00:00
}
}
2022-05-15 18:38:32 +00:00
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?,
): View? {
return inflater.inflate(R.layout.main_settings, container, false)
2021-11-08 18:13:39 +00:00
}
2022-05-15 18:38:32 +00:00
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
fun navigate(id: Int) {
activity?.navigate(id, Bundle())
2021-11-07 22:10:19 +00:00
}
2022-05-15 18:38:32 +00:00
settings_player?.setOnClickListener {
navigate(R.id.action_navigation_settings_to_navigation_settings_player)
}
2021-11-07 22:10:19 +00:00
2022-05-15 18:38:32 +00:00
settings_credits?.setOnClickListener {
navigate(R.id.action_navigation_settings_to_navigation_settings_account)
2022-03-04 15:39:56 +00:00
}
2022-05-15 18:38:32 +00:00
settings_ui?.setOnClickListener {
navigate(R.id.action_navigation_settings_to_navigation_settings_ui)
2022-03-16 21:54:58 +00:00
}
2022-05-15 18:38:32 +00:00
settings_lang?.setOnClickListener {
navigate(R.id.action_navigation_settings_to_navigation_settings_lang)
2022-03-16 21:31:21 +00:00
}
2022-05-15 18:38:32 +00:00
settings_nginx?.setOnClickListener {
navigate(R.id.action_navigation_settings_to_navigation_settings_nginx)
2021-09-07 19:16:12 +00:00
}
2021-09-04 11:38:35 +00:00
2022-05-15 18:38:32 +00:00
settings_updates?.setOnClickListener {
navigate(R.id.action_navigation_settings_to_navigation_settings_updates)
}
2021-11-04 10:42:51 +00:00
}
2022-05-15 18:38:32 +00:00
}