2020-04-09 17:31:13 +00:00
|
|
|
package com.vanced.manager.ui.fragments
|
2020-03-19 19:55:00 +00:00
|
|
|
|
|
|
|
import android.os.Bundle
|
2020-11-14 22:08:15 +00:00
|
|
|
import android.view.LayoutInflater
|
|
|
|
import android.view.Menu
|
|
|
|
import android.view.MenuInflater
|
|
|
|
import android.view.ViewGroup
|
2020-08-06 07:46:07 +00:00
|
|
|
import android.widget.Toast
|
2020-11-15 17:04:23 +00:00
|
|
|
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
2020-10-31 19:45:39 +00:00
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
2020-09-21 07:53:42 +00:00
|
|
|
import com.google.firebase.analytics.FirebaseAnalytics
|
|
|
|
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
|
|
|
import com.google.firebase.perf.FirebasePerformance
|
2020-04-09 17:31:13 +00:00
|
|
|
import com.vanced.manager.R
|
2020-10-31 19:45:39 +00:00
|
|
|
import com.vanced.manager.adapter.GetNotifAdapter
|
2020-11-26 15:37:03 +00:00
|
|
|
import com.vanced.manager.core.ui.base.BindingFragment
|
|
|
|
import com.vanced.manager.core.ui.ext.showDialog
|
2020-10-31 19:45:39 +00:00
|
|
|
import com.vanced.manager.databinding.FragmentSettingsBinding
|
|
|
|
import com.vanced.manager.ui.dialogs.*
|
2020-09-26 17:09:01 +00:00
|
|
|
import com.vanced.manager.utils.LanguageHelper.getLanguageFormat
|
2020-08-07 16:51:45 +00:00
|
|
|
import java.io.File
|
2020-03-19 19:55:00 +00:00
|
|
|
|
2020-11-14 22:08:15 +00:00
|
|
|
class SettingsFragment : BindingFragment<FragmentSettingsBinding>() {
|
|
|
|
|
|
|
|
private companion object {
|
|
|
|
|
|
|
|
const val LIGHT = "Light"
|
|
|
|
const val DARK = "Dark"
|
|
|
|
const val BLUE = "Blue"
|
|
|
|
const val RED = "Red"
|
|
|
|
const val GREEN = "Green"
|
|
|
|
const val YELLOW = "Yellow"
|
|
|
|
}
|
2020-03-19 19:55:00 +00:00
|
|
|
|
2020-10-31 19:45:39 +00:00
|
|
|
private val prefs by lazy { getDefaultSharedPreferences(requireActivity()) }
|
2020-05-02 15:55:34 +00:00
|
|
|
|
2020-11-14 22:08:15 +00:00
|
|
|
override fun binding(
|
2020-10-31 19:45:39 +00:00
|
|
|
inflater: LayoutInflater,
|
|
|
|
container: ViewGroup?,
|
|
|
|
savedInstanceState: Bundle?
|
2020-11-14 22:08:15 +00:00
|
|
|
) = FragmentSettingsBinding.inflate(inflater, container, false)
|
|
|
|
|
|
|
|
override fun otherSetups() {
|
2020-04-28 21:26:27 +00:00
|
|
|
setHasOptionsMenu(true)
|
2020-11-14 22:08:15 +00:00
|
|
|
bindData()
|
2020-10-31 19:45:39 +00:00
|
|
|
}
|
2020-04-03 16:40:54 +00:00
|
|
|
|
2020-11-14 22:08:15 +00:00
|
|
|
private fun bindData() {
|
|
|
|
with(binding) {
|
|
|
|
bindRecycler()
|
|
|
|
bindFirebase()
|
|
|
|
bindManagerVariant()
|
|
|
|
bindClearFiles()
|
|
|
|
bindManagerTheme()
|
|
|
|
bindManagerAccentColor()
|
|
|
|
bindManagerLanguage()
|
2020-11-26 15:37:03 +00:00
|
|
|
selectApps.setOnClickListener { showDialog(SelectAppsDialog()) }
|
2020-11-14 22:08:15 +00:00
|
|
|
}
|
|
|
|
}
|
2020-08-06 07:46:07 +00:00
|
|
|
|
2020-11-14 22:08:15 +00:00
|
|
|
private fun FragmentSettingsBinding.bindRecycler() {
|
|
|
|
notificationsRecycler.apply {
|
2020-10-31 19:45:39 +00:00
|
|
|
layoutManager = LinearLayoutManager(requireActivity())
|
|
|
|
adapter = GetNotifAdapter(requireActivity())
|
2020-08-06 07:46:07 +00:00
|
|
|
}
|
2020-11-14 22:08:15 +00:00
|
|
|
}
|
2020-08-06 07:46:07 +00:00
|
|
|
|
2020-11-14 22:08:15 +00:00
|
|
|
private fun FragmentSettingsBinding.bindFirebase() {
|
|
|
|
firebase.setOnCheckedListener { _, isChecked ->
|
2020-10-31 19:45:39 +00:00
|
|
|
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(isChecked)
|
|
|
|
FirebasePerformance.getInstance().isPerformanceCollectionEnabled = isChecked
|
|
|
|
FirebaseAnalytics.getInstance(requireActivity()).setAnalyticsCollectionEnabled(isChecked)
|
2020-08-06 07:46:07 +00:00
|
|
|
}
|
2020-11-14 22:08:15 +00:00
|
|
|
}
|
2020-08-06 07:46:07 +00:00
|
|
|
|
2020-11-14 22:08:15 +00:00
|
|
|
private fun FragmentSettingsBinding.bindManagerVariant() {
|
|
|
|
managerVariant.apply {
|
2020-10-31 21:10:55 +00:00
|
|
|
prefs.getString("vanced_variant", "nonroot")?.let { setSummary(it) }
|
2020-11-26 15:37:03 +00:00
|
|
|
setOnClickListener { showDialog(ManagerVariantDialog()) }
|
2020-09-21 07:53:42 +00:00
|
|
|
}
|
2020-11-14 22:08:15 +00:00
|
|
|
}
|
|
|
|
private fun FragmentSettingsBinding.bindClearFiles() {
|
|
|
|
clearFiles.setOnClickListener {
|
2020-10-31 19:45:39 +00:00
|
|
|
with(requireActivity()) {
|
2020-10-31 21:10:55 +00:00
|
|
|
listOf("vanced/nonroot", "vanced/root", "music/nonroot", "music/root", "microg").forEach { dir ->
|
|
|
|
File(getExternalFilesDir(dir)?.path.toString()).deleteRecursively()
|
2020-08-06 07:46:07 +00:00
|
|
|
}
|
2020-10-31 19:45:39 +00:00
|
|
|
Toast.makeText(this, getString(R.string.cleared_files), Toast.LENGTH_SHORT).show()
|
2020-07-02 21:09:21 +00:00
|
|
|
}
|
2020-05-03 21:51:39 +00:00
|
|
|
}
|
2020-11-14 22:08:15 +00:00
|
|
|
}
|
2020-05-03 21:51:39 +00:00
|
|
|
|
2020-11-14 22:08:15 +00:00
|
|
|
private fun FragmentSettingsBinding.bindManagerTheme() {
|
2020-10-31 19:45:39 +00:00
|
|
|
val themePref = prefs.getString("manager_theme", "System Default")
|
2020-11-14 22:08:15 +00:00
|
|
|
managerTheme.apply {
|
2020-10-31 19:45:39 +00:00
|
|
|
setSummary(
|
2020-11-14 22:08:15 +00:00
|
|
|
when (themePref) {
|
|
|
|
LIGHT -> getString(R.string.theme_light)
|
2020-11-26 15:37:03 +00:00
|
|
|
DARK -> getString(R.string.theme_dark)
|
|
|
|
else -> getString(R.string.system_default)
|
2020-11-14 22:08:15 +00:00
|
|
|
}
|
2020-10-31 19:45:39 +00:00
|
|
|
)
|
2020-11-26 15:37:03 +00:00
|
|
|
setOnClickListener { showDialog(ManagerThemeDialog()) }
|
2020-04-12 12:00:14 +00:00
|
|
|
}
|
2020-11-14 22:08:15 +00:00
|
|
|
}
|
2020-04-03 16:40:54 +00:00
|
|
|
|
2020-11-14 22:08:15 +00:00
|
|
|
private fun FragmentSettingsBinding.bindManagerAccentColor() {
|
2020-10-31 19:45:39 +00:00
|
|
|
val accentPref = prefs.getString("manager_accent", "Blue")
|
2020-11-14 22:08:15 +00:00
|
|
|
managerAccentColor.apply {
|
2020-10-31 19:45:39 +00:00
|
|
|
setSummary(
|
2020-11-14 22:08:15 +00:00
|
|
|
when (accentPref) {
|
2020-11-26 15:37:03 +00:00
|
|
|
BLUE -> getString(R.string.accent_blue)
|
|
|
|
RED -> getString(R.string.accent_red)
|
|
|
|
GREEN -> getString(R.string.accent_green)
|
2020-11-14 22:08:15 +00:00
|
|
|
YELLOW -> getString(R.string.accent_yellow)
|
2020-11-26 15:37:03 +00:00
|
|
|
else -> getString(R.string.accent_purple)
|
2020-11-14 22:08:15 +00:00
|
|
|
}
|
2020-10-31 19:45:39 +00:00
|
|
|
)
|
2020-11-26 15:37:03 +00:00
|
|
|
setOnClickListener { showDialog(ManagerAccentColorDialog()) }
|
2020-09-26 17:09:01 +00:00
|
|
|
}
|
2020-11-14 22:08:15 +00:00
|
|
|
}
|
2020-09-26 17:09:01 +00:00
|
|
|
|
2020-11-14 22:08:15 +00:00
|
|
|
private fun FragmentSettingsBinding.bindManagerLanguage() {
|
2020-10-31 19:45:39 +00:00
|
|
|
val langPref = prefs.getString("manager_lang", "System Default")
|
2020-11-14 22:08:15 +00:00
|
|
|
managerLanguage.apply {
|
|
|
|
setSummary(getLanguageFormat(requireActivity(), requireNotNull(langPref)))
|
2020-11-26 15:37:03 +00:00
|
|
|
setOnClickListener { showDialog(ManagerLanguageDialog()) }
|
2020-08-07 07:07:49 +00:00
|
|
|
}
|
2020-09-19 08:21:48 +00:00
|
|
|
|
2020-03-19 19:55:00 +00:00
|
|
|
}
|
2020-05-03 11:14:09 +00:00
|
|
|
|
2020-04-19 17:21:40 +00:00
|
|
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
2020-10-31 19:45:39 +00:00
|
|
|
val devSettings = getDefaultSharedPreferences(requireActivity()).getBoolean("devSettings", false)
|
2020-06-27 15:03:59 +00:00
|
|
|
if (devSettings) {
|
|
|
|
inflater.inflate(R.menu.dev_settings_menu, menu)
|
|
|
|
}
|
2020-07-04 13:44:28 +00:00
|
|
|
super.onCreateOptionsMenu(menu, inflater)
|
2020-04-19 17:21:40 +00:00
|
|
|
}
|
2020-03-28 13:29:48 +00:00
|
|
|
}
|