From 8cf5df20b257ef05d64ebb1f14b272c2e1848b7c Mon Sep 17 00:00:00 2001 From: tibbi <tibor@kaputa.sk> Date: Sun, 27 Nov 2016 10:50:45 +0100 Subject: [PATCH] allow changing text gravity --- .../com/simplemobiletools/notes/Config.kt | 4 +++ .../com/simplemobiletools/notes/Constants.kt | 6 +++++ .../notes/MyWidgetProvider.kt | 2 +- .../notes/activities/SettingsActivity.kt | 13 +++++++++ .../notes/extensions/Context.kt | 7 +++++ .../notes/fragments/NoteFragment.kt | 2 ++ app/src/main/res/layout/activity_settings.xml | 27 +++++++++++++++++++ app/src/main/res/layout/widget.xml | 2 +- app/src/main/res/values-de/strings.xml | 4 +++ app/src/main/res/values-es/strings.xml | 4 +++ app/src/main/res/values-it/strings.xml | 4 +++ app/src/main/res/values-ja/strings.xml | 4 +++ app/src/main/res/values-pt-rPT/strings.xml | 4 +++ app/src/main/res/values-sv/strings.xml | 4 +++ app/src/main/res/values/array.xml | 6 +++++ app/src/main/res/values/strings.xml | 6 ++++- 16 files changed, 96 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/Config.kt b/app/src/main/kotlin/com/simplemobiletools/notes/Config.kt index 4833bbeb..ef950783 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/Config.kt @@ -26,6 +26,10 @@ class Config(context: Context) { get() = mPrefs.getInt(FONT_SIZE, FONT_SIZE_MEDIUM) set(size) = mPrefs.edit().putInt(FONT_SIZE, size).apply() + var gravity: Int + get() = mPrefs.getInt(GRAVITY, GRAVITY_LEFT) + set(size) = mPrefs.edit().putInt(GRAVITY, size).apply() + var currentNoteId: Int get() = mPrefs.getInt(CURRENT_NOTE_ID, 1) set(id) = mPrefs.edit().putInt(CURRENT_NOTE_ID, id).apply() diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/notes/Constants.kt index d32cd431..e8d97b86 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/Constants.kt @@ -10,9 +10,15 @@ val IS_DARK_THEME = "is_dark_theme" val CURRENT_NOTE_ID = "current_note_id" val WIDGET_NOTE_ID = "widget_note_id" val FONT_SIZE = "font_size" +val GRAVITY = "gravity" val WIDGET_BG_COLOR = "widget_bg_color" val WIDGET_TEXT_COLOR = "widget_text_color" +// gravity +val GRAVITY_LEFT = 0 +val GRAVITY_CENTER = 1 +val GRAVITY_RIGHT = 2 + // font sizes val FONT_SIZE_SMALL = 0 val FONT_SIZE_MEDIUM = 1 diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/MyWidgetProvider.kt b/app/src/main/kotlin/com/simplemobiletools/notes/MyWidgetProvider.kt index 1512fa37..5d798333 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/MyWidgetProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/MyWidgetProvider.kt @@ -54,7 +54,7 @@ class MyWidgetProvider : AppWidgetProvider() { private fun updateWidget(widgetManager: AppWidgetManager, widgetId: Int, remoteViews: RemoteViews) { val widgetNoteId = mPrefs.getInt(WIDGET_NOTE_ID, 1) val note = mDb.getNote(widgetNoteId) - remoteViews.setTextViewText(R.id.notes_view, if (note != null) note.value else "") + remoteViews.setTextViewText(R.id.notes_view, note?.value ?: "") widgetManager.updateAppWidget(widgetId, remoteViews) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt index 4e4d9ead..4acd808a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt @@ -19,6 +19,7 @@ class SettingsActivity : SimpleActivity() { setupDarkTheme() setupFontSize() setupWidgetNote() + setupGravity() } private fun setupDarkTheme() { @@ -66,6 +67,18 @@ class SettingsActivity : SimpleActivity() { } } + private fun setupGravity() { + settings_gravity.setSelection(config.gravity) + settings_gravity.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { + override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { + config.gravity = settings_gravity.selectedItemPosition + } + + override fun onNothingSelected(parent: AdapterView<*>?) { + } + } + } + private fun getNoteIndexWithId(id: Int, notes: List<Note>): Int { for (i in 0..notes.count() - 1) { if (notes[i].id == id) { diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/notes/extensions/Context.kt index 2512bc33..e3eca940 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/extensions/Context.kt @@ -5,6 +5,7 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import android.util.TypedValue +import android.view.Gravity import com.simplemobiletools.notes.* fun Context.getTextSize() = @@ -15,6 +16,12 @@ fun Context.getTextSize() = else -> resources.getDimension(R.dimen.medium_text_size) } +fun Context.getTextGravity() = + when (Config.newInstance(this).gravity) { + GRAVITY_CENTER -> Gravity.CENTER_HORIZONTAL + GRAVITY_RIGHT -> Gravity.RIGHT + else -> Gravity.LEFT + } fun Context.updateWidget() { val widgetManager = AppWidgetManager.getInstance(this) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt b/app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt index 069f6f25..4655a6e1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/fragments/NoteFragment.kt @@ -10,6 +10,7 @@ import com.simplemobiletools.filepicker.extensions.value import com.simplemobiletools.notes.NOTE_ID import com.simplemobiletools.notes.R import com.simplemobiletools.notes.databases.DBHelper +import com.simplemobiletools.notes.extensions.getTextGravity import com.simplemobiletools.notes.extensions.getTextSize import com.simplemobiletools.notes.extensions.updateWidget import com.simplemobiletools.notes.models.Note @@ -44,6 +45,7 @@ class NoteFragment : Fragment() { override fun onResume() { super.onResume() view.notes_view.setTextSize(TypedValue.COMPLEX_UNIT_PX, context.getTextSize()) + view.notes_view.gravity = context.getTextGravity() } override fun onPause() { diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 141b8f4b..ffb76906 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -64,6 +64,33 @@ </RelativeLayout> + <RelativeLayout + android:id="@+id/settings_gravity_holder" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/normal_padding" + android:paddingBottom="@dimen/activity_margin" + android:paddingLeft="@dimen/activity_margin" + android:paddingRight="@dimen/normal_padding" + android:paddingTop="@dimen/activity_margin"> + + <TextView + android:id="@+id/settings_gravity_label" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerVertical="true" + android:paddingLeft="@dimen/normal_padding" + android:text="@string/gravity"/> + + <android.support.v7.widget.AppCompatSpinner + android:id="@+id/settings_gravity" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:entries="@array/gravity"/> + + </RelativeLayout> + <RelativeLayout android:id="@+id/settings_widget_note_holder" android:layout_width="match_parent" diff --git a/app/src/main/res/layout/widget.xml b/app/src/main/res/layout/widget.xml index b87f8095..324bac1f 100644 --- a/app/src/main/res/layout/widget.xml +++ b/app/src/main/res/layout/widget.xml @@ -10,7 +10,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@null" - android:gravity="top" + android:gravity="start" android:padding="@dimen/activity_margin"/> </RelativeLayout> diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 027564dd..0587b795 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -30,6 +30,10 @@ <string name="normal">Normal</string> <string name="large">Groß</string> <string name="extra_large">Sehr groß</string> + <string name="gravity">Gravity</string> + <string name="left">Left</string> + <string name="center">Center</string> + <string name="right">Right</string> <!-- About --> <string name="about">Über</string> diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 5b62595f..fd314382 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -30,6 +30,10 @@ <string name="normal">Normal</string> <string name="large">Grande</string> <string name="extra_large">Enorme</string> + <string name="gravity">Gravity</string> + <string name="left">Left</string> + <string name="center">Center</string> + <string name="right">Right</string> <!-- About --> <string name="about">Acerca de Simple Notes</string> diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 3ea5993a..46aa3d1a 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -30,6 +30,10 @@ <string name="normal">Normal</string> <string name="large">Large</string> <string name="extra_large">Extra Large</string> + <string name="gravity">Gravity</string> + <string name="left">Left</string> + <string name="center">Center</string> + <string name="right">Right</string> <!-- About --> <string name="about">Informazioni</string> diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 4ed141ed..0b4768e0 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -30,6 +30,10 @@ <string name="normal">通常</string> <string name="large">大</string> <string name="extra_large">特大</string> + <string name="gravity">Gravity</string> + <string name="left">Left</string> + <string name="center">Center</string> + <string name="right">Right</string> <!-- About --> <string name="about">アプリについて</string> diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 0a183497..3a4e0707 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -30,6 +30,10 @@ <string name="normal">Normal</string> <string name="large">Grande</string> <string name="extra_large">Muito grande</string> + <string name="gravity">Gravity</string> + <string name="left">Left</string> + <string name="center">Center</string> + <string name="right">Right</string> <!-- About --> <string name="about">Acerca</string> diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index af65fbdf..5c1fffef 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -30,6 +30,10 @@ <string name="normal">Normal</string> <string name="large">Large</string> <string name="extra_large">Extra Large</string> + <string name="gravity">Gravity</string> + <string name="left">Left</string> + <string name="center">Center</string> + <string name="right">Right</string> <!-- About --> <string name="about">Om</string> diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index b1c8ff1a..f861147c 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -6,4 +6,10 @@ <item>@string/large</item> <item>@string/extra_large</item> </string-array> + + <string-array name="gravity" translatable="false"> + <item>@string/left</item> + <item>@string/center</item> + <item>@string/right</item> + </string-array> </resources> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 32361725..c16a69db 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -24,12 +24,16 @@ <!-- Settings --> <string name="settings">Settings</string> <string name="dark_theme">Dark theme</string> - <string name="note_font_size">Note font size</string> <string name="widget_note">Note used in widget</string> + <string name="note_font_size">Note font size</string> <string name="small">Small</string> <string name="normal">Normal</string> <string name="large">Large</string> <string name="extra_large">Extra Large</string> + <string name="gravity">Gravity</string> + <string name="left">Left</string> + <string name="center">Center</string> + <string name="right">Right</string> <!-- About --> <string name="about">About</string>