From 95ab889045c260af64edc01b4862d5fa57ac4c94 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 7 Nov 2018 19:57:30 +0100 Subject: [PATCH] handle note updating and inserting --- .../notes/pro/activities/MainActivity.kt | 26 +++++++++---------- .../notes/pro/dialogs/ImportFolderDialog.kt | 6 ++--- .../notes/pro/dialogs/RenameNoteDialog.kt | 14 ++++++---- .../notes/pro/fragments/NoteFragment.kt | 5 ++-- .../notes/pro/helpers/DBHelper.kt | 7 ----- .../notes/pro/helpers/NotesHelper.kt | 9 +++++++ 6 files changed, 36 insertions(+), 31 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/MainActivity.kt index 21b68145..efbdbb64 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/MainActivity.kt @@ -27,7 +27,10 @@ import com.simplemobiletools.notes.pro.R import com.simplemobiletools.notes.pro.adapters.NotesPagerAdapter import com.simplemobiletools.notes.pro.databases.NotesDatabase import com.simplemobiletools.notes.pro.dialogs.* -import com.simplemobiletools.notes.pro.extensions.* +import com.simplemobiletools.notes.pro.extensions.config +import com.simplemobiletools.notes.pro.extensions.dbHelper +import com.simplemobiletools.notes.pro.extensions.getTextSize +import com.simplemobiletools.notes.pro.extensions.updateWidgets import com.simplemobiletools.notes.pro.helpers.MIME_TEXT_PLAIN import com.simplemobiletools.notes.pro.helpers.NotesHelper import com.simplemobiletools.notes.pro.helpers.OPEN_NOTE_ID @@ -304,19 +307,16 @@ class MainActivity : SimpleActivity() { } private fun addNewNote(note: Note) { - Thread { - val id = notesDB.insertOrUpdate(note) - mNotes = notesDB.getNotes().toMutableList() as ArrayList + NotesHelper(this).insertOrUpdateNote(note) { + val newNoteId = it showSaveButton = false - runOnUiThread { - invalidateOptionsMenu() - initViewPager() - updateSelectedNote(id) - view_pager.onGlobalLayout { - mAdapter?.focusEditText(getNoteIndexWithId(id)) - } + invalidateOptionsMenu() + initViewPager() + updateSelectedNote(newNoteId) + view_pager.onGlobalLayout { + mAdapter?.focusEditText(getNoteIndexWithId(newNoteId)) } - }.start() + } } private fun launchAbout() { @@ -455,7 +455,7 @@ class MainActivity : SimpleActivity() { mCurrentNote.value = "" } - dbHelper.updateNote(mCurrentNote) + NotesHelper(this).insertOrUpdateNote(mCurrentNote) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/ImportFolderDialog.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/ImportFolderDialog.kt index 96593bbe..c01e7a43 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/ImportFolderDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/ImportFolderDialog.kt @@ -9,7 +9,7 @@ import com.simplemobiletools.commons.extensions.setupDialogStuff import com.simplemobiletools.notes.pro.R import com.simplemobiletools.notes.pro.activities.SimpleActivity import com.simplemobiletools.notes.pro.extensions.dbHelper -import com.simplemobiletools.notes.pro.extensions.notesDB +import com.simplemobiletools.notes.pro.helpers.NotesHelper import com.simplemobiletools.notes.pro.helpers.TYPE_NOTE import com.simplemobiletools.notes.pro.models.Note import kotlinx.android.synthetic.main.dialog_import_folder.view.* @@ -67,8 +67,6 @@ class ImportFolderDialog(val activity: SimpleActivity, val path: String, val cal private fun saveNote(title: String, value: String, path: String) { val note = Note(null, title, value, TYPE_NOTE, path) - Thread { - activity.notesDB.insertOrUpdate(note) - } + NotesHelper(activity).insertOrUpdateNote(note) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/RenameNoteDialog.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/RenameNoteDialog.kt index 6d51521b..49c3620e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/RenameNoteDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/dialogs/RenameNoteDialog.kt @@ -6,6 +6,7 @@ import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.notes.pro.R import com.simplemobiletools.notes.pro.activities.SimpleActivity import com.simplemobiletools.notes.pro.extensions.dbHelper +import com.simplemobiletools.notes.pro.helpers.NotesHelper import com.simplemobiletools.notes.pro.models.Note import kotlinx.android.synthetic.main.dialog_new_note.view.* import java.io.File @@ -31,7 +32,10 @@ class RenameNoteDialog(val activity: SimpleActivity, val note: Note, callback: ( note.title = title val path = note.path if (path.isEmpty()) { - activity.dbHelper.updateNote(note) + NotesHelper(activity).insertOrUpdateNote(note) { + dismiss() + callback(note) + } } else { if (title.isEmpty()) { activity.toast(R.string.filename_cannot_be_empty) @@ -48,16 +52,16 @@ class RenameNoteDialog(val activity: SimpleActivity, val note: Note, callback: ( activity.renameFile(file.absolutePath, newFile.absolutePath) { if (it) { note.path = newFile.absolutePath - activity.dbHelper.updateNote(note) + NotesHelper(activity).insertOrUpdateNote(note) { + dismiss() + callback(note) + } } else { activity.toast(R.string.rename_file_error) return@renameFile } } } - - dismiss() - callback(note) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/NoteFragment.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/NoteFragment.kt index bb511907..aefbfd3c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/NoteFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/NoteFragment.kt @@ -188,8 +188,9 @@ class NoteFragment : androidx.fragment.app.Fragment() { private fun saveNoteValue(note: Note) { if (note.path.isEmpty()) { - db.updateNote(note) - (activity as MainActivity).noteSavedSuccessfully(note.title) + NotesHelper(activity!!).insertOrUpdateNote(note) { + (activity as MainActivity).noteSavedSuccessfully(note.title) + } } else { val currentText = getCurrentNoteViewText() if (currentText != null) { diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/DBHelper.kt index fa7c5c71..c02d02a5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/DBHelper.kt @@ -108,13 +108,6 @@ class DBHelper private constructor(private val mContext: Context) : SQLiteOpenHe return 0 } - fun updateNote(note: Note) { - val values = fillNoteContentValues(note) - val selection = "$COL_ID = ?" - val selectionArgs = arrayOf(note.id.toString()) - mDb.update(NOTES_TABLE_NAME, values, selection, selectionArgs) - } - fun getWidgets(): ArrayList { val widgets = ArrayList() val cols = arrayOf(COL_WIDGET_ID, COL_NOTE_ID) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/NotesHelper.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/NotesHelper.kt index 073d3006..43e00af2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/NotesHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/NotesHelper.kt @@ -41,4 +41,13 @@ class NotesHelper(val activity: Activity) { } }.start() } + + fun insertOrUpdateNote(note: Note, callback: ((newNoteId: Long) -> Unit)? = null) { + Thread { + val noteId = activity.notesDB.insertOrUpdate(note) + activity.runOnUiThread { + callback?.invoke(noteId) + } + }.start() + } }