mirror of
https://github.com/SimpleMobileTools/Simple-Notes.git
synced 2025-04-15 07:52:02 +02:00
219 lines
7.8 KiB
Kotlin
219 lines
7.8 KiB
Kotlin
package com.simplemobiletools.notes.activities
|
|
|
|
import android.content.Intent
|
|
import android.content.res.Resources
|
|
import android.os.Bundle
|
|
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
|
import com.simplemobiletools.commons.extensions.*
|
|
import com.simplemobiletools.commons.helpers.IS_CUSTOMIZING_COLORS
|
|
import com.simplemobiletools.commons.models.RadioItem
|
|
import com.simplemobiletools.notes.R
|
|
import com.simplemobiletools.notes.extensions.config
|
|
import com.simplemobiletools.notes.extensions.dbHelper
|
|
import com.simplemobiletools.notes.extensions.updateWidgets
|
|
import com.simplemobiletools.notes.helpers.*
|
|
import com.simplemobiletools.notes.models.Note
|
|
import kotlinx.android.synthetic.main.activity_settings.*
|
|
import java.util.*
|
|
|
|
class SettingsActivity : SimpleActivity() {
|
|
lateinit var res: Resources
|
|
var notes = ArrayList<Note>()
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
setContentView(R.layout.activity_settings)
|
|
res = resources
|
|
notes = dbHelper.getNotes()
|
|
}
|
|
|
|
override fun onResume() {
|
|
super.onResume()
|
|
|
|
setupPurchaseThankYou()
|
|
setupCustomizeColors()
|
|
setupUseEnglish()
|
|
setupAvoidWhatsNew()
|
|
setupAutosaveNotes()
|
|
setupDisplaySuccess()
|
|
setupClickableLinks()
|
|
setupMonospacedFont()
|
|
setupShowKeyboard()
|
|
setupShowNotePicker()
|
|
setupShowWordCount()
|
|
setupEnableLineWrap()
|
|
setupFontSize()
|
|
setupGravity()
|
|
setupCursorPlacement()
|
|
setupCustomizeWidgetColors()
|
|
updateTextColors(settings_scrollview)
|
|
setupSectionColors()
|
|
}
|
|
|
|
private fun setupSectionColors() {
|
|
val adjustedPrimaryColor = getAdjustedPrimaryColor()
|
|
arrayListOf(text_label, startup_label, saving_label, widgets_label).forEach {
|
|
it.setTextColor(adjustedPrimaryColor)
|
|
}
|
|
}
|
|
|
|
private fun setupPurchaseThankYou() {
|
|
settings_purchase_thank_you_holder.beVisibleIf(config.appRunCount > 10 && !isThankYouInstalled())
|
|
settings_purchase_thank_you_holder.setOnClickListener {
|
|
launchPurchaseThankYouIntent()
|
|
}
|
|
}
|
|
|
|
private fun setupCustomizeColors() {
|
|
settings_customize_colors_holder.setOnClickListener {
|
|
startCustomizationActivity()
|
|
}
|
|
}
|
|
|
|
private fun setupUseEnglish() {
|
|
settings_use_english_holder.beVisibleIf(config.wasUseEnglishToggled || Locale.getDefault().language != "en")
|
|
settings_use_english.isChecked = config.useEnglish
|
|
settings_use_english_holder.setOnClickListener {
|
|
settings_use_english.toggle()
|
|
config.useEnglish = settings_use_english.isChecked
|
|
System.exit(0)
|
|
}
|
|
}
|
|
|
|
private fun setupAvoidWhatsNew() {
|
|
settings_avoid_whats_new.isChecked = config.avoidWhatsNew
|
|
settings_avoid_whats_new_holder.setOnClickListener {
|
|
settings_avoid_whats_new.toggle()
|
|
config.avoidWhatsNew = settings_avoid_whats_new.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupAutosaveNotes() {
|
|
settings_autosave_notes.isChecked = config.autosaveNotes
|
|
settings_autosave_notes_holder.setOnClickListener {
|
|
settings_autosave_notes.toggle()
|
|
config.autosaveNotes = settings_autosave_notes.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupDisplaySuccess() {
|
|
settings_display_success.isChecked = config.displaySuccess
|
|
settings_display_success_holder.setOnClickListener {
|
|
settings_display_success.toggle()
|
|
config.displaySuccess = settings_display_success.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupClickableLinks() {
|
|
settings_clickable_links.isChecked = config.clickableLinks
|
|
settings_clickable_links_holder.setOnClickListener {
|
|
settings_clickable_links.toggle()
|
|
config.clickableLinks = settings_clickable_links.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupMonospacedFont() {
|
|
settings_monospaced_font.isChecked = config.monospacedFont
|
|
settings_monospaced_font_holder.setOnClickListener {
|
|
settings_monospaced_font.toggle()
|
|
config.monospacedFont = settings_monospaced_font.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupShowKeyboard() {
|
|
settings_show_keyboard.isChecked = config.showKeyboard
|
|
settings_show_keyboard_holder.setOnClickListener {
|
|
settings_show_keyboard.toggle()
|
|
config.showKeyboard = settings_show_keyboard.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupShowNotePicker() {
|
|
settings_show_note_picker_holder.beVisibleIf(notes.size > 1)
|
|
settings_show_note_picker.isChecked = config.showNotePicker
|
|
settings_show_note_picker_holder.setOnClickListener {
|
|
settings_show_note_picker.toggle()
|
|
config.showNotePicker = settings_show_note_picker.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupShowWordCount() {
|
|
settings_show_word_count.isChecked = config.showWordCount
|
|
settings_show_word_count_holder.setOnClickListener {
|
|
settings_show_word_count.toggle()
|
|
config.showWordCount = settings_show_word_count.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupEnableLineWrap() {
|
|
settings_enable_line_wrap.isChecked = config.enableLineWrap
|
|
settings_enable_line_wrap_holder.setOnClickListener {
|
|
settings_enable_line_wrap.toggle()
|
|
config.enableLineWrap = settings_enable_line_wrap.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupFontSize() {
|
|
settings_font_size.text = getFontSizeText()
|
|
settings_font_size_holder.setOnClickListener {
|
|
val items = arrayListOf(
|
|
RadioItem(FONT_SIZE_SMALL, res.getString(R.string.small)),
|
|
RadioItem(FONT_SIZE_MEDIUM, res.getString(R.string.medium)),
|
|
RadioItem(FONT_SIZE_LARGE, res.getString(R.string.large)),
|
|
RadioItem(FONT_SIZE_EXTRA_LARGE, res.getString(R.string.extra_large)))
|
|
|
|
RadioGroupDialog(this@SettingsActivity, items, config.fontSize) {
|
|
config.fontSize = it as Int
|
|
settings_font_size.text = getFontSizeText()
|
|
updateWidgets()
|
|
}
|
|
}
|
|
}
|
|
|
|
private fun getFontSizeText() = getString(when (config.fontSize) {
|
|
FONT_SIZE_SMALL -> R.string.small
|
|
FONT_SIZE_MEDIUM -> R.string.medium
|
|
FONT_SIZE_LARGE -> R.string.large
|
|
else -> R.string.extra_large
|
|
})
|
|
|
|
private fun setupGravity() {
|
|
settings_gravity.text = getGravityText()
|
|
settings_gravity_holder.setOnClickListener {
|
|
val items = arrayListOf(
|
|
RadioItem(GRAVITY_LEFT, res.getString(R.string.left)),
|
|
RadioItem(GRAVITY_CENTER, res.getString(R.string.center)),
|
|
RadioItem(GRAVITY_RIGHT, res.getString(R.string.right)))
|
|
|
|
RadioGroupDialog(this@SettingsActivity, items, config.gravity) {
|
|
config.gravity = it as Int
|
|
settings_gravity.text = getGravityText()
|
|
updateWidgets()
|
|
}
|
|
}
|
|
}
|
|
|
|
private fun getGravityText() = getString(when (config.gravity) {
|
|
GRAVITY_LEFT -> R.string.left
|
|
GRAVITY_CENTER -> R.string.center
|
|
else -> R.string.right
|
|
})
|
|
|
|
private fun setupCursorPlacement() {
|
|
settings_cursor_placement.isChecked = config.placeCursorToEnd
|
|
settings_cursor_placement_holder.setOnClickListener {
|
|
settings_cursor_placement.toggle()
|
|
config.placeCursorToEnd = settings_cursor_placement.isChecked
|
|
}
|
|
}
|
|
|
|
private fun setupCustomizeWidgetColors() {
|
|
settings_customize_widget_colors_holder.setOnClickListener {
|
|
Intent(this, WidgetConfigureActivity::class.java).apply {
|
|
putExtra(IS_CUSTOMIZING_COLORS, true)
|
|
startActivity(this)
|
|
}
|
|
}
|
|
}
|
|
}
|