Skip to content

Commit 2335027

Browse files
committed
Fix 353: Change gravity internally from Left and Right to Start and End
1 parent 07071b7 commit 2335027

File tree

4 files changed

+30
-26
lines changed

4 files changed

+30
-26
lines changed

app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/SettingsActivity.kt

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import android.net.Uri
55
import android.os.Bundle
66
import android.view.Menu
77
import androidx.activity.result.contract.ActivityResultContracts
8+
import androidx.core.text.TextUtilsCompat
9+
import androidx.core.view.ViewCompat
810
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
911
import com.simplemobiletools.commons.extensions.*
1012
import com.simplemobiletools.commons.helpers.*
@@ -222,27 +224,33 @@ class SettingsActivity : SimpleActivity() {
222224
private fun setupGravity() {
223225
settings_gravity.text = getGravityText()
224226
settings_gravity_holder.setOnClickListener {
225-
val items = arrayListOf(
226-
RadioItem(GRAVITY_LEFT, getString(R.string.left)),
227-
RadioItem(GRAVITY_CENTER, getString(R.string.center)),
228-
RadioItem(GRAVITY_RIGHT, getString(R.string.right))
229-
)
230-
231-
RadioGroupDialog(this@SettingsActivity, items, config.gravity) {
227+
val items = listOf(GRAVITY_START, GRAVITY_CENTER, GRAVITY_END).map { RadioItem(it, getGravityOptionLabel(it)) }
228+
RadioGroupDialog(this@SettingsActivity, ArrayList(items), config.gravity) {
232229
config.gravity = it as Int
233230
settings_gravity.text = getGravityText()
234231
updateWidgets()
235232
}
236233
}
237234
}
238235

239-
private fun getGravityText() = getString(
240-
when (config.gravity) {
241-
GRAVITY_LEFT -> R.string.left
242-
GRAVITY_CENTER -> R.string.center
243-
else -> R.string.right
236+
private fun getGravityOptionLabel(gravity: Int): String {
237+
val leftToRightDirection = TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault()) == ViewCompat.LAYOUT_DIRECTION_LTR
238+
val leftRightLabels = listOf(R.string.left, R.string.right)
239+
val startEndLabels = if (leftToRightDirection) {
240+
leftRightLabels
241+
} else {
242+
leftRightLabels.reversed()
244243
}
245-
)
244+
return getString(
245+
when (gravity) {
246+
GRAVITY_START -> startEndLabels.first()
247+
GRAVITY_CENTER -> R.string.center
248+
else -> startEndLabels.last()
249+
}
250+
)
251+
}
252+
253+
private fun getGravityText() = getGravityOptionLabel(config.gravity)
246254

247255
private fun setupCursorPlacement() {
248256
settings_cursor_placement.isChecked = config.placeCursorToEnd

app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import android.graphics.Paint
66
import android.view.View
77
import android.widget.RemoteViews
88
import android.widget.RemoteViewsService
9-
import com.google.gson.Gson
10-
import com.google.gson.reflect.TypeToken
119
import com.simplemobiletools.commons.extensions.adjustAlpha
1210
import com.simplemobiletools.commons.extensions.setText
1311
import com.simplemobiletools.commons.extensions.setTextSize
@@ -95,8 +93,8 @@ class WidgetAdapter(val context: Context, val intent: Intent) : RemoteViewsServi
9593
return when {
9694
gravity == GRAVITY_CENTER && isMonospaced -> R.id.widget_text_center_monospace
9795
gravity == GRAVITY_CENTER -> R.id.widget_text_center
98-
gravity == GRAVITY_RIGHT && isMonospaced -> R.id.widget_text_right_monospace
99-
gravity == GRAVITY_RIGHT -> R.id.widget_text_right
96+
gravity == GRAVITY_END && isMonospaced -> R.id.widget_text_right_monospace
97+
gravity == GRAVITY_END -> R.id.widget_text_right
10098
isMonospaced -> R.id.widget_text_left_monospace
10199
else -> R.id.widget_text_left
102100
}
@@ -109,8 +107,8 @@ class WidgetAdapter(val context: Context, val intent: Intent) : RemoteViewsServi
109107
return when {
110108
gravity == GRAVITY_CENTER && isMonospaced -> R.id.checklist_text_center_monospace
111109
gravity == GRAVITY_CENTER -> R.id.checklist_text_center
112-
gravity == GRAVITY_RIGHT && isMonospaced -> R.id.checklist_text_right_monospace
113-
gravity == GRAVITY_RIGHT -> R.id.checklist_text_right
110+
gravity == GRAVITY_END && isMonospaced -> R.id.checklist_text_right_monospace
111+
gravity == GRAVITY_END -> R.id.checklist_text_right
114112
isMonospaced -> R.id.checklist_text_left_monospace
115113
else -> R.id.checklist_text_left
116114
}

app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/Config.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.simplemobiletools.notes.pro.helpers
22

3-
import android.annotation.SuppressLint
43
import android.content.Context
54
import android.os.Environment
65
import android.view.Gravity
@@ -41,7 +40,7 @@ class Config(context: Context) : BaseConfig(context) {
4140
set(showWordCount) = prefs.edit().putBoolean(SHOW_WORD_COUNT, showWordCount).apply()
4241

4342
var gravity: Int
44-
get() = prefs.getInt(GRAVITY, GRAVITY_LEFT)
43+
get() = prefs.getInt(GRAVITY, GRAVITY_START)
4544
set(size) = prefs.edit().putInt(GRAVITY, size).apply()
4645

4746
var currentNoteId: Long
@@ -80,11 +79,10 @@ class Config(context: Context) : BaseConfig(context) {
8079
get() = prefs.getBoolean(MOVE_DONE_CHECKLIST_ITEMS, false)
8180
set(moveDoneChecklistItems) = prefs.edit().putBoolean(MOVE_DONE_CHECKLIST_ITEMS, moveDoneChecklistItems).apply()
8281

83-
@SuppressLint("RtlHardcoded")
8482
fun getTextGravity() = when (gravity) {
8583
GRAVITY_CENTER -> Gravity.CENTER_HORIZONTAL
86-
GRAVITY_RIGHT -> Gravity.RIGHT
87-
else -> Gravity.LEFT
84+
GRAVITY_END -> Gravity.END
85+
else -> Gravity.START
8886
}
8987

9088
var fontSizePercentage: Int

app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/Constants.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ const val EXPORT_MIME_TYPE = "text/plain"
4040
const val ADD_NEW_CHECKLIST_ITEMS_TOP = "add_new_checklist_items_top"
4141

4242
// gravity
43-
const val GRAVITY_LEFT = 0
43+
const val GRAVITY_START = 0
4444
const val GRAVITY_CENTER = 1
45-
const val GRAVITY_RIGHT = 2
45+
const val GRAVITY_END = 2
4646

4747
// mime types
4848
const val MIME_TEXT_PLAIN = "text/plain"

0 commit comments

Comments
 (0)