mirror of
https://github.com/SimpleMobileTools/Simple-Launcher.git
synced 2025-04-13 01:22:11 +02:00
203 lines
8.1 KiB
Kotlin
203 lines
8.1 KiB
Kotlin
package com.simplemobiletools.launcher.activities
|
|
|
|
import android.content.Intent
|
|
import android.os.Bundle
|
|
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
|
import com.simplemobiletools.commons.extensions.*
|
|
import com.simplemobiletools.commons.helpers.NavigationIcon
|
|
import com.simplemobiletools.commons.helpers.isTiramisuPlus
|
|
import com.simplemobiletools.commons.models.FAQItem
|
|
import com.simplemobiletools.commons.models.RadioItem
|
|
import com.simplemobiletools.launcher.BuildConfig
|
|
import com.simplemobiletools.launcher.R
|
|
import com.simplemobiletools.launcher.databinding.ActivitySettingsBinding
|
|
import com.simplemobiletools.launcher.extensions.config
|
|
import com.simplemobiletools.launcher.helpers.MAX_COLUMN_COUNT
|
|
import com.simplemobiletools.launcher.helpers.MAX_ROW_COUNT
|
|
import com.simplemobiletools.launcher.helpers.MIN_COLUMN_COUNT
|
|
import com.simplemobiletools.launcher.helpers.MIN_ROW_COUNT
|
|
import java.util.Locale
|
|
import kotlin.system.exitProcess
|
|
|
|
class SettingsActivity : SimpleActivity() {
|
|
|
|
private val binding by viewBinding(ActivitySettingsBinding::inflate)
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
isMaterialActivity = true
|
|
super.onCreate(savedInstanceState)
|
|
setContentView(binding.root)
|
|
|
|
updateMaterialActivityViews(binding.settingsCoordinator, binding.settingsHolder, useTransparentNavigation = true, useTopSearchMenu = false)
|
|
setupMaterialScrollListener(binding.settingsNestedScrollview, binding.settingsToolbar)
|
|
setupOptionsMenu()
|
|
}
|
|
|
|
override fun onResume() {
|
|
super.onResume()
|
|
setupToolbar(binding.settingsToolbar, NavigationIcon.Arrow)
|
|
refreshMenuItems()
|
|
|
|
setupPurchaseThankYou()
|
|
setupCustomizeColors()
|
|
setupUseEnglish()
|
|
setupCloseAppDrawerOnOtherAppOpen()
|
|
setupDrawerColumnCount()
|
|
setupDrawerSearchBar()
|
|
setupHomeRowCount()
|
|
setupHomeColumnCount()
|
|
setupLanguage()
|
|
setupManageHiddenIcons()
|
|
updateTextColors(binding.settingsHolder)
|
|
|
|
arrayOf(
|
|
binding.settingsColorCustomizationSectionLabel,
|
|
binding.settingsGeneralSettingsLabel,
|
|
binding.settingsDrawerSettingsLabel,
|
|
binding.settingsHomeScreenLabel
|
|
).forEach {
|
|
it.setTextColor(getProperPrimaryColor())
|
|
}
|
|
}
|
|
|
|
private fun setupOptionsMenu() {
|
|
binding.settingsToolbar.setOnMenuItemClickListener { menuItem ->
|
|
when (menuItem.itemId) {
|
|
R.id.about -> launchAbout()
|
|
R.id.more_apps_from_us -> launchMoreAppsFromUsIntent()
|
|
else -> return@setOnMenuItemClickListener false
|
|
}
|
|
return@setOnMenuItemClickListener true
|
|
}
|
|
}
|
|
|
|
private fun refreshMenuItems() {
|
|
binding.settingsToolbar.menu.apply {
|
|
findItem(R.id.more_apps_from_us).isVisible = !resources.getBoolean(com.simplemobiletools.commons.R.bool.hide_google_relations)
|
|
}
|
|
}
|
|
|
|
private fun setupPurchaseThankYou() {
|
|
binding.settingsPurchaseThankYouHolder.beGoneIf(isOrWasThankYouInstalled())
|
|
binding.settingsPurchaseThankYouHolder.setOnClickListener {
|
|
launchPurchaseThankYouIntent()
|
|
}
|
|
}
|
|
|
|
private fun setupCustomizeColors() {
|
|
binding.settingsColorCustomizationLabel.text = getCustomizeColorsString()
|
|
binding.settingsColorCustomizationHolder.setOnClickListener {
|
|
startCustomizationActivity()
|
|
}
|
|
}
|
|
|
|
private fun setupUseEnglish() {
|
|
binding.settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled || Locale.getDefault().language != "en") && !isTiramisuPlus())
|
|
binding.settingsUseEnglish.isChecked = config.useEnglish
|
|
binding.settingsUseEnglishHolder.setOnClickListener {
|
|
binding.settingsUseEnglish.toggle()
|
|
config.useEnglish = binding.settingsUseEnglish.isChecked
|
|
exitProcess(0)
|
|
}
|
|
}
|
|
|
|
private fun setupCloseAppDrawerOnOtherAppOpen() {
|
|
binding.settingsCloseAppDrawerOnOtherApp.isChecked = config.closeAppDrawer
|
|
binding.settingsCloseAppDrawerOnOtherAppHolder.setOnClickListener {
|
|
binding.settingsCloseAppDrawerOnOtherApp.toggle()
|
|
config.closeAppDrawer = binding.settingsCloseAppDrawerOnOtherApp.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupDrawerColumnCount() {
|
|
val currentColumnCount = config.drawerColumnCount
|
|
binding.settingsDrawerColumnCount.text = currentColumnCount.toString()
|
|
binding.settingsDrawerColumnCountHolder.setOnClickListener {
|
|
val items = ArrayList<RadioItem>()
|
|
for (i in 1..MAX_COLUMN_COUNT) {
|
|
items.add(RadioItem(i, resources.getQuantityString(com.simplemobiletools.commons.R.plurals.column_counts, i, i)))
|
|
}
|
|
|
|
RadioGroupDialog(this, items, currentColumnCount) {
|
|
val newColumnCount = it as Int
|
|
if (currentColumnCount != newColumnCount) {
|
|
config.drawerColumnCount = newColumnCount
|
|
setupDrawerColumnCount()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private fun setupDrawerSearchBar() {
|
|
val showSearchBar = config.showSearchBar
|
|
binding.settingsShowSearchBar.isChecked = showSearchBar
|
|
binding.settingsDrawerSearchHolder.setOnClickListener {
|
|
binding.settingsShowSearchBar.toggle()
|
|
config.showSearchBar = binding.settingsShowSearchBar.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupHomeRowCount() {
|
|
val currentRowCount = config.homeRowCount
|
|
binding.settingsHomeScreenRowCount.text = currentRowCount.toString()
|
|
binding.settingsHomeScreenRowCountHolder.setOnClickListener {
|
|
val items = ArrayList<RadioItem>()
|
|
for (i in MIN_ROW_COUNT..MAX_ROW_COUNT) {
|
|
items.add(RadioItem(i, resources.getQuantityString(com.simplemobiletools.commons.R.plurals.row_counts, i, i)))
|
|
}
|
|
|
|
RadioGroupDialog(this, items, currentRowCount) {
|
|
val newRowCount = it as Int
|
|
if (currentRowCount != newRowCount) {
|
|
config.homeRowCount = newRowCount
|
|
setupHomeRowCount()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private fun setupHomeColumnCount() {
|
|
val currentColumnCount = config.homeColumnCount
|
|
binding.settingsHomeScreenColumnCount.text = currentColumnCount.toString()
|
|
binding.settingsHomeScreenColumnCountHolder.setOnClickListener {
|
|
val items = ArrayList<RadioItem>()
|
|
for (i in MIN_COLUMN_COUNT..MAX_COLUMN_COUNT) {
|
|
items.add(RadioItem(i, resources.getQuantityString(com.simplemobiletools.commons.R.plurals.column_counts, i, i)))
|
|
}
|
|
|
|
RadioGroupDialog(this, items, currentColumnCount) {
|
|
val newColumnCount = it as Int
|
|
if (currentColumnCount != newColumnCount) {
|
|
config.homeColumnCount = newColumnCount
|
|
setupHomeColumnCount()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private fun setupLanguage() {
|
|
binding.settingsLanguage.text = Locale.getDefault().displayLanguage
|
|
binding.settingsLanguageHolder.beVisibleIf(isTiramisuPlus())
|
|
binding.settingsLanguageHolder.setOnClickListener {
|
|
launchChangeAppLanguageIntent()
|
|
}
|
|
}
|
|
|
|
private fun setupManageHiddenIcons() {
|
|
binding.settingsManageHiddenIconsHolder.setOnClickListener {
|
|
startActivity(Intent(this, HiddenIconsActivity::class.java))
|
|
}
|
|
}
|
|
|
|
private fun launchAbout() {
|
|
val licenses = 0L
|
|
val faqItems = ArrayList<FAQItem>()
|
|
|
|
if (!resources.getBoolean(com.simplemobiletools.commons.R.bool.hide_google_relations)) {
|
|
faqItems.add(FAQItem(com.simplemobiletools.commons.R.string.faq_2_title_commons, com.simplemobiletools.commons.R.string.faq_2_text_commons))
|
|
faqItems.add(FAQItem(com.simplemobiletools.commons.R.string.faq_6_title_commons, com.simplemobiletools.commons.R.string.faq_6_text_commons))
|
|
}
|
|
|
|
startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true)
|
|
}
|
|
}
|