From 08cbf3083fad8222662de82445c0bbf2985fa1a6 Mon Sep 17 00:00:00 2001 From: Samik Banik Date: Thu, 7 May 2020 15:00:33 +0100 Subject: [PATCH] Font size settings changed to percentages --- .../notes/pro/activities/SettingsActivity.kt | 20 ++++++++++++------ .../notes/pro/extensions/Context.kt | 21 +++++++++++++++++-- .../notes/pro/fragments/TextFragment.kt | 3 ++- .../notes/pro/helpers/Constants.kt | 11 ++++++++++ 4 files changed, 46 insertions(+), 9 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/SettingsActivity.kt index 7b706a52..c2433abf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/SettingsActivity.kt @@ -151,22 +151,30 @@ class SettingsActivity : SimpleActivity() { } private fun setupFontSize() { - settings_font_size.text = getFontSizeText() + settings_font_size.text = getFontSizePercentText(config.fontSize) settings_font_size_holder.setOnClickListener { val items = arrayListOf( - RadioItem(FONT_SIZE_SMALL, getString(R.string.small)), - RadioItem(FONT_SIZE_MEDIUM, getString(R.string.medium)), - RadioItem(FONT_SIZE_LARGE, getString(R.string.large)), - RadioItem(FONT_SIZE_EXTRA_LARGE, getString(R.string.extra_large))) + RadioItem(FONT_SIZE_50_PERCENT, getFontSizePercentText(FONT_SIZE_50_PERCENT)), + RadioItem(FONT_SIZE_75_PERCENT, getFontSizePercentText(FONT_SIZE_75_PERCENT)), + RadioItem(FONT_SIZE_100_PERCENT, getFontSizePercentText(FONT_SIZE_100_PERCENT)), + RadioItem(FONT_SIZE_125_PERCENT, getFontSizePercentText(FONT_SIZE_125_PERCENT)), + RadioItem(FONT_SIZE_150_PERCENT, getFontSizePercentText(FONT_SIZE_150_PERCENT)), + RadioItem(FONT_SIZE_175_PERCENT, getFontSizePercentText(FONT_SIZE_175_PERCENT)), + RadioItem(FONT_SIZE_200_PERCENT, getFontSizePercentText(FONT_SIZE_200_PERCENT)), + RadioItem(FONT_SIZE_250_PERCENT, getFontSizePercentText(FONT_SIZE_250_PERCENT)), + RadioItem(FONT_SIZE_300_PERCENT, getFontSizePercentText(FONT_SIZE_300_PERCENT)) + ) RadioGroupDialog(this@SettingsActivity, items, config.fontSize) { config.fontSize = it as Int - settings_font_size.text = getFontSizeText() + settings_font_size.text = getFontSizePercentText(config.fontSize) updateWidgets() } } } + private fun getFontSizePercentText(fontSizePercentage: Int): String = "$fontSizePercentage%" + private fun setupGravity() { settings_gravity.text = getGravityText() settings_gravity_holder.setOnClickListener { diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/Context.kt index ee459e6d..7549a1ba 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/Context.kt @@ -4,9 +4,13 @@ import android.appwidget.AppWidgetManager import android.content.ComponentName import android.content.Context import android.content.Intent +import com.simplemobiletools.commons.extensions.baseConfig +import com.simplemobiletools.commons.helpers.FONT_SIZE_LARGE +import com.simplemobiletools.commons.helpers.FONT_SIZE_MEDIUM +import com.simplemobiletools.commons.helpers.FONT_SIZE_SMALL +import com.simplemobiletools.notes.pro.R import com.simplemobiletools.notes.pro.databases.NotesDatabase -import com.simplemobiletools.notes.pro.helpers.Config -import com.simplemobiletools.notes.pro.helpers.MyWidgetProvider +import com.simplemobiletools.notes.pro.helpers.* import com.simplemobiletools.notes.pro.interfaces.NotesDao import com.simplemobiletools.notes.pro.interfaces.WidgetsDao @@ -26,3 +30,16 @@ fun Context.updateWidgets() { } } } + +fun Context.getEditorFontSize(): Float { + val defaultFontSizeDimension = when(resources.getInteger(R.integer.default_font_size)) { + FONT_SIZE_SMALL -> resources.getDimension(R.dimen.small_text_size) + FONT_SIZE_MEDIUM -> resources.getDimension(R.dimen.middle_text_size) + FONT_SIZE_LARGE -> resources.getDimension(R.dimen.big_text_size) + else -> resources.getDimension(R.dimen.extra_big_text_size) + } + return when(baseConfig.fontSize) { + resources.getInteger(R.integer.default_font_size) -> defaultFontSizeDimension + else -> defaultFontSizeDimension * baseConfig.fontSize / 100 + } +} diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/TextFragment.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/TextFragment.kt index fbb4ce98..f4a70c8c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/TextFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/TextFragment.kt @@ -18,6 +18,7 @@ import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.notes.pro.R import com.simplemobiletools.notes.pro.activities.MainActivity import com.simplemobiletools.notes.pro.extensions.config +import com.simplemobiletools.notes.pro.extensions.getEditorFontSize import com.simplemobiletools.notes.pro.extensions.updateWidgets import com.simplemobiletools.notes.pro.helpers.MyMovementMethod import com.simplemobiletools.notes.pro.helpers.NOTE_ID @@ -126,7 +127,7 @@ class TextFragment : NoteFragment() { val adjustedPrimaryColor = context.getAdjustedPrimaryColor() setColors(config.textColor, adjustedPrimaryColor, config.backgroundColor) - setTextSize(TypedValue.COMPLEX_UNIT_PX, context.getTextSize()) + setTextSize(TypedValue.COMPLEX_UNIT_PX, context.getEditorFontSize()) highlightColor = adjustedPrimaryColor.adjustAlpha(.4f) gravity = config.getTextGravity() diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/Constants.kt index 1eaac57b..90c75777 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/Constants.kt @@ -41,3 +41,14 @@ enum class NoteType(val value: Int) { TYPE_TEXT(0), TYPE_CHECKLIST(1) } // mime types const val MIME_TEXT_PLAIN = "text/plain" + +// font size percentage options +const val FONT_SIZE_50_PERCENT = 50 +const val FONT_SIZE_75_PERCENT = 75 +const val FONT_SIZE_100_PERCENT = 100 +const val FONT_SIZE_125_PERCENT = 125 +const val FONT_SIZE_150_PERCENT = 150 +const val FONT_SIZE_175_PERCENT = 175 +const val FONT_SIZE_200_PERCENT = 200 +const val FONT_SIZE_250_PERCENT = 250 +const val FONT_SIZE_300_PERCENT = 300