From 4720ba6a4b64cc4c6f8447e00d287e4c51ba9cbd Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 10 Mar 2017 21:19:07 +0100 Subject: [PATCH] use the new radiogroup dialog at setting current widget note --- app/build.gradle | 2 +- .../notes/activities/SettingsActivity.kt | 57 +++++++------------ app/src/main/res/layout/activity_settings.xml | 13 ++++- 3 files changed, 32 insertions(+), 40 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 47aa3895..333cab73 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,7 +32,7 @@ android { } dependencies { - compile 'com.simplemobiletools:commons:2.9.6' + compile 'com.simplemobiletools:commons:2.9.8' compile 'com.facebook.stetho:stetho:1.4.1' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } 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 07b19e2e..b0afcbca 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/SettingsActivity.kt @@ -1,9 +1,8 @@ package com.simplemobiletools.notes.activities +import android.content.res.Resources import android.os.Bundle import android.view.View -import android.widget.AdapterView -import android.widget.ArrayAdapter import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.models.RadioItem @@ -15,9 +14,12 @@ import com.simplemobiletools.notes.models.Note import kotlinx.android.synthetic.main.activity_settings.* class SettingsActivity : SimpleActivity() { + lateinit var res: Resources + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_settings) + res = resources } override fun onResume() { @@ -57,11 +59,11 @@ class SettingsActivity : SimpleActivity() { private fun setupFontSize() { settings_font_size.text = getFontSizeText() settings_font_size_holder.setOnClickListener { - val items = arrayOf( - RadioItem(0, R.string.small), - RadioItem(1, R.string.normal), - RadioItem(2, R.string.large), - RadioItem(3, R.string.extra_large)) + val items = arrayListOf( + RadioItem(0, res.getString(R.string.small)), + RadioItem(1, res.getString(R.string.normal)), + RadioItem(2, res.getString(R.string.large)), + RadioItem(3, res.getString(R.string.extra_large))) RadioGroupDialog(this@SettingsActivity, items, config.fontSize) { config.fontSize = it @@ -81,10 +83,10 @@ class SettingsActivity : SimpleActivity() { private fun setupGravity() { settings_gravity.text = getGravityText() settings_gravity_holder.setOnClickListener { - val items = arrayOf( - RadioItem(0, R.string.left), - RadioItem(1, R.string.center), - RadioItem(2, R.string.right)) + val items = arrayListOf( + RadioItem(0, res.getString(R.string.left)), + RadioItem(1, res.getString(R.string.center)), + RadioItem(2, res.getString(R.string.right))) RadioGroupDialog(this@SettingsActivity, items, config.gravity) { config.gravity = it @@ -107,36 +109,19 @@ class SettingsActivity : SimpleActivity() { return } - val adapter = getSpinnerAdapter(notes) - settings_widget_note.adapter = adapter + settings_widget_note.text = getCurrentWidgetNoteTitle(config.widgetNoteId, notes) + settings_widget_note_holder.setOnClickListener { + val items = notes.map { RadioItem(it.id, it.title) } as ArrayList - val noteIndex = getNoteIndexWithId(config.widgetNoteId, notes) - settings_widget_note.setSelection(noteIndex) - settings_widget_note.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { - val note = notes[settings_widget_note.selectedItemPosition] - config.widgetNoteId = note.id + RadioGroupDialog(this@SettingsActivity, items, config.widgetNoteId) { + config.widgetNoteId = it + settings_widget_note.text = getCurrentWidgetNoteTitle(it, notes) updateWidget() } - - override fun onNothingSelected(parent: AdapterView<*>?) { - } } } - private fun getNoteIndexWithId(id: Int, notes: List): Int { - for (i in 0..notes.count() - 1) { - if (notes[i].id == id) { - return i - } - } - return 0 - } - - private fun getSpinnerAdapter(notes: List): ArrayAdapter { - val titles = notes.map(Note::title) - val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, titles) - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) - return adapter + private fun getCurrentWidgetNoteTitle(currentNoteId: Int, notes: List): String { + return notes.firstOrNull { it.id == currentNoteId }?.title ?: "" } } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 6b178fb6..eca65806 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -146,7 +146,10 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/medium_margin" android:background="?attr/selectableItemBackground" - android:padding="@dimen/activity_margin"> + android:paddingBottom="@dimen/bigger_margin" + android:paddingLeft="@dimen/activity_margin" + android:paddingRight="@dimen/activity_margin" + android:paddingTop="@dimen/bigger_margin"> - + android:layout_alignParentRight="true" + android:layout_marginEnd="@dimen/medium_margin" + android:layout_marginRight="@dimen/medium_margin" + android:background="@null" + android:clickable="false"/>