VancedManager/app/src/main/java/com/vanced/manager/ui/fragments/SettingsFragment.kt

76 lines
2.7 KiB
Kotlin
Raw Normal View History

package com.vanced.manager.ui.fragments
import android.content.res.Configuration
import android.os.Build
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import androidx.fragment.app.FragmentManager
import androidx.preference.*
import com.vanced.manager.R
class SettingsFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preferences, rootKey)
//Fuck Android 6 android 5 users! Because theme is not working
//we can't display preference for them.
//They should've upgraded to something newer
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
val prefScreen: PreferenceScreen? = findPreference("prefScreen")
val prefCategory: PreferenceCategory? = findPreference("interface_category")
prefScreen?.removePreference(prefCategory)
}
activity?.title = getString(R.string.title_settings)
setHasOptionsMenu(true)
val updateCheck: Preference? = findPreference("update_check")
updateCheck?.setOnPreferenceClickListener {
val fm = childFragmentManager.beginTransaction()
val updateDialog = UpdateCheckFragment()
updateDialog.show(fm, "Update Center")
true
}
val themeSwitch: ListPreference? = findPreference("theme_mode")
themeSwitch?.setOnPreferenceChangeListener { _, _ ->
when (themeSwitch.value){
"LIGHT" -> {
2020-05-02 14:39:47 +00:00
activity?.setTheme(R.style.LightTheme)
2020-05-02 13:05:19 +00:00
activity?.recreate()
}
"DARK" -> {
2020-05-02 14:39:47 +00:00
activity?.setTheme(R.style.DarkTheme)
2020-05-02 13:05:19 +00:00
activity?.recreate()
}
"FOLLOW" -> {
when (resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) {
Configuration.UI_MODE_NIGHT_YES ->{
2020-05-02 14:39:47 +00:00
activity?.setTheme(R.style.DarkTheme)
2020-05-02 13:05:19 +00:00
activity?.recreate()
}
Configuration.UI_MODE_NIGHT_NO -> {
2020-05-02 14:39:47 +00:00
activity?.setTheme(R.style.LightTheme)
2020-05-02 13:05:19 +00:00
activity?.recreate()
}
}
}
else -> {
2020-05-02 14:39:47 +00:00
activity?.setTheme(R.style.LightTheme)
2020-05-02 13:05:19 +00:00
activity?.recreate()
}
}
true
}
}
2020-05-03 11:14:09 +00:00
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.secret_settings_menu, menu)
2020-04-22 09:41:18 +00:00
super .onCreateOptionsMenu(menu, inflater)
}
}