From 80dbf7b300f38c096dab01081adf93a1f7bc2fa5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 21 Nov 2016 22:57:14 +0100 Subject: [PATCH] fix #31, allow renaming notes --- .../notes/activities/MainActivity.kt | 21 +++++++-- .../notes/databases/DBHelper.kt | 2 +- .../notes/dialogs/RenameNoteDialog.kt | 43 ++++++++++++++++++ app/src/main/res/layout/rename_note.xml | 18 ++++++++ app/src/main/res/menu/menu.xml | 13 ++++-- app/src/main/res/mipmap-hdpi/rename.png | Bin 0 -> 214 bytes app/src/main/res/mipmap-mdpi/rename.png | Bin 0 -> 165 bytes app/src/main/res/mipmap-xhdpi/rename.png | Bin 0 -> 239 bytes app/src/main/res/mipmap-xxhdpi/rename.png | Bin 0 -> 302 bytes app/src/main/res/mipmap-xxxhdpi/rename.png | Bin 0 -> 355 bytes app/src/main/res/values-de/strings.xml | 2 + app/src/main/res/values-es/strings.xml | 2 + app/src/main/res/values-it/strings.xml | 2 + app/src/main/res/values-ja/strings.xml | 2 + app/src/main/res/values-pt-rPT/strings.xml | 2 + app/src/main/res/values-sv/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 17 files changed, 102 insertions(+), 9 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/notes/dialogs/RenameNoteDialog.kt create mode 100644 app/src/main/res/layout/rename_note.xml create mode 100644 app/src/main/res/mipmap-hdpi/rename.png create mode 100644 app/src/main/res/mipmap-mdpi/rename.png create mode 100644 app/src/main/res/mipmap-xhdpi/rename.png create mode 100644 app/src/main/res/mipmap-xxhdpi/rename.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/rename.png diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt index 48815be1..e481fc86 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt @@ -19,6 +19,7 @@ import com.simplemobiletools.notes.TYPE_NOTE import com.simplemobiletools.notes.databases.DBHelper import com.simplemobiletools.notes.dialogs.NewNoteDialog import com.simplemobiletools.notes.dialogs.OpenNoteDialog +import com.simplemobiletools.notes.dialogs.RenameNoteDialog import com.simplemobiletools.notes.dialogs.WidgetNoteDialog import com.simplemobiletools.notes.extensions.getTextSize import com.simplemobiletools.notes.models.Note @@ -71,6 +72,7 @@ class MainActivity : SimpleActivity() { override fun onPrepareOptionsMenu(menu: Menu): Boolean { val shouldBeVisible = mNotes.size > 1 menu.apply { + findItem(R.id.rename_note).isVisible = shouldBeVisible findItem(R.id.open_note).isVisible = shouldBeVisible findItem(R.id.delete_note).isVisible = shouldBeVisible findItem(R.id.change_widget_note).isVisible = shouldBeVisible @@ -81,14 +83,14 @@ class MainActivity : SimpleActivity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { return when (item.itemId) { - R.id.delete_note -> { - displayDeleteNotePrompt() - true - } R.id.open_note -> { displayOpenNoteDialog() true } + R.id.rename_note -> { + displayRenameDialog() + true + } R.id.share -> { shareText() true @@ -97,6 +99,10 @@ class MainActivity : SimpleActivity() { showWidgetNotePicker() true } + R.id.delete_note -> { + displayDeleteNotePrompt() + true + } R.id.settings -> { startActivity(Intent(applicationContext, SettingsActivity::class.java)) true @@ -113,6 +119,13 @@ class MainActivity : SimpleActivity() { WidgetNoteDialog(this) } + private fun displayRenameDialog() { + RenameNoteDialog(this, mDb, mCurrentNote!!) { + mCurrentNote = it + current_note_title.text = it.title + } + } + private fun updateSelectedNote(id: Int) { saveText() mCurrentNote = mDb.getNote(id) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/databases/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/notes/databases/DBHelper.kt index 0fae7709..4a124a09 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/databases/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/databases/DBHelper.kt @@ -126,7 +126,7 @@ class DBHelper private constructor(private val mContext: Context) : SQLiteOpenHe fun updateNote(note: Note) { val values = fillContentValues(note) - val selection = COL_ID + " = ?" + val selection = "$COL_ID = ?" val selectionArgs = arrayOf(note.id.toString()) mDb.update(TABLE_NAME, values, selection, selectionArgs) } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/dialogs/RenameNoteDialog.kt b/app/src/main/kotlin/com/simplemobiletools/notes/dialogs/RenameNoteDialog.kt new file mode 100644 index 00000000..069be3e8 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/notes/dialogs/RenameNoteDialog.kt @@ -0,0 +1,43 @@ +package com.simplemobiletools.notes.dialogs + +import android.app.Activity +import android.app.AlertDialog +import android.view.LayoutInflater +import android.view.WindowManager +import com.simplemobiletools.filepicker.extensions.toast +import com.simplemobiletools.filepicker.extensions.value +import com.simplemobiletools.notes.R +import com.simplemobiletools.notes.databases.DBHelper +import com.simplemobiletools.notes.models.Note +import kotlinx.android.synthetic.main.new_note.view.* + +class RenameNoteDialog(val activity: Activity, val db: DBHelper, val note: Note, callback: (note: Note) -> Unit) { + + init { + val view = LayoutInflater.from(activity).inflate(R.layout.rename_note, null) + view.note_name.setText(note.title) + + AlertDialog.Builder(activity) + .setTitle(activity.resources.getString(R.string.rename_note)) + .setView(view) + .setPositiveButton(R.string.ok, null) + .setNegativeButton(R.string.cancel, null) + .create().apply { + window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) + show() + getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener({ + val title = view.note_name.value + if (title.isEmpty()) { + activity.toast(R.string.no_title) + } else if (db.doesTitleExist(title)) { + activity.toast(R.string.title_taken) + } else { + note.title = title + db.updateNote(note) + dismiss() + callback.invoke(note) + } + }) + } + } +} diff --git a/app/src/main/res/layout/rename_note.xml b/app/src/main/res/layout/rename_note.xml new file mode 100644 index 00000000..fcddaf46 --- /dev/null +++ b/app/src/main/res/layout/rename_note.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/menu/menu.xml b/app/src/main/res/menu/menu.xml index c08b68c9..b3051b81 100644 --- a/app/src/main/res/menu/menu.xml +++ b/app/src/main/res/menu/menu.xml @@ -7,15 +7,20 @@ android:title="@string/share" app:showAsAction="ifRoom"/> + android:id="@+id/rename_note" + android:icon="@mipmap/rename" + android:title="@string/rename" + app:showAsAction="ifRoom"/> + |k0wldT1B8LpTu&Fr5Rc<;uUK<67znUjnB%lT zoOSjO>jray$uJw$FFVMU;3(SEsNVV` zY0pZ=3oE8p__*1#52{6WCQLy}71A z^UjP{%xC@x1hXWnn6M?T5oq1$VC;1(TE5wU%_Uvsiq|WdbN}v4kacX7_2athUkr38 NgQu&X%Q~loCIIWZPKE#g literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/rename.png b/app/src/main/res/mipmap-mdpi/rename.png new file mode 100644 index 0000000000000000000000000000000000000000..12b09f1d9b28e275323add8a5f26a40709b3550e GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i98VX=5R22v2@+Kg_J9Ac|NpmV z;J?TA96oAc&PVGdUZ@}Y5}^>ueD%XLiQ|9%%Clen^me~?-P5>$?ao_51Xjx|Qk^y- zdBRlThZ6o?Q|jd-p2|(pELRqpvP6?TOTpK2Qrr9gcRRh0Ezy*ZVPIH1?c-DthJyV- Pdl@`k{an^LB{Ts5yXZdH literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/rename.png b/app/src/main/res/mipmap-xhdpi/rename.png new file mode 100644 index 0000000000000000000000000000000000000000..5a06bff5a2fc95d5117ce9880821384626d8864d GIT binary patch literal 239 zcmV+mP(MLbxIU@tZx11_<06E_Cm;EuJEI5KzuPNK$?!{-w< zW;{Mke9afh-**!m1^<@N@NHtL5K^$DhZ|FM=P=&qvIgiFq?I{~>Up@NR&` pI{_Y_4KVpkfXgQVHXn-(+!KC0r!M+UZ~XuO002ovPDHLkV1hXhU+Vw> literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/rename.png b/app/src/main/res/mipmap-xxhdpi/rename.png new file mode 100644 index 0000000000000000000000000000000000000000..02e19d04570c6f86c7885615cbc9a271a7a04873 GIT binary patch literal 302 zcmV+}0nz@6P)Nklp%{z$v^{5pMgUJ9P141uEYB)_=4RF_CjEcv6+Mn znIBAnGv0XNgxmvXi5r?~6rMQtq!!1P)XA|U^>VC8*ddh(X+J>9y^)Suv$GbGo?4@P z$3{eY=xvsabkJP%VN!{O?z@vFl@sq+=QG$(GU4=-%sAbo$vH)W(#MY3BegB1ZSKdK$X(b(iukxii#&) zXB+`2Dj&R^aRxxq;yb_>Cjp8^Kc>z&j4?L%KF;(Ssh;`jUH||907*qoM6N<$f)^cq A)Bpeg literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/rename.png b/app/src/main/res/mipmap-xxxhdpi/rename.png new file mode 100644 index 0000000000000000000000000000000000000000..d6668a051cd53b2ef454e8e09872339348c2ee22 GIT binary patch literal 355 zcmV-p0i6DcP)o)4CwERtj4{R- zW9;vcYqq-8KB2^1t{_z z0h;{m09AfwfG$5PK$)Krpv|uhQ0Fto7-NhzVt3qk;nT+k=6L`B002ovPDHLkV1hVj BpML-V literal 0 HcmV?d00001 diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ef1b7ffb..4c702c5b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -21,6 +21,8 @@ Aktuelle Notiz: Wechsel Notiz des Widgets Wähle Notiz für das Widget + Rename + Rename note Einstellungen diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index ba7e3b7b..39829045 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -21,6 +21,8 @@ Nota actual: Cambiar la nota del widget Seleccione una nota para el widget + Rename + Rename note Opciones diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 37d9d6d7..1bc81771 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -21,6 +21,8 @@ Current note: Change widget\'s note Pick a note for the widget + Rename + Rename note Impostazioni diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 453a3ba5..23f864e5 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -21,6 +21,8 @@ 現在のメモ: ウィジェットのメモを変更 ウィジェットのメモを選択 + Rename + Rename note 設定 diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 09b42718..b4e8429c 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -21,6 +21,8 @@ Nota atual: Alterar nota do widget Escolha uma nota para o widget + Rename + Rename note Definições diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 03040fd5..c371cc2b 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -21,6 +21,8 @@ Current note: Change widget\'s note Pick a note for the widget + Rename + Rename note Inställningar diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index afebcf44..cbc8746a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -21,6 +21,8 @@ Current note: Change widget\'s note Pick a note for the widget + Rename + Rename note Settings