Skip to content

Commit e71b8e6

Browse files
committed
Update cached note before password is set
Closes #24
1 parent 754d56f commit e71b8e6

File tree

4 files changed

+16
-8
lines changed

4 files changed

+16
-8
lines changed

app/src/main/kotlin/org/fossify/notes/activities/MainActivity.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,9 @@ class MainActivity : SimpleActivity() {
233233
private fun setupOptionsMenu() {
234234
binding.mainToolbar.setOnMenuItemClickListener { menuItem ->
235235
if (config.autosaveNotes && menuItem.itemId != R.id.undo && menuItem.itemId != R.id.redo) {
236-
saveCurrentNote(false)
236+
saveCurrentNote(false) {
237+
mCurrentNote = it
238+
}
237239
}
238240

239241
val fragment = getCurrentFragment()
@@ -1084,8 +1086,8 @@ class MainActivity : SimpleActivity() {
10841086

10851087
private fun addTextToCurrentNote(text: String) = getPagerAdapter().appendText(binding.viewPager.currentItem, text)
10861088

1087-
private fun saveCurrentNote(force: Boolean) {
1088-
getPagerAdapter().saveCurrentNote(binding.viewPager.currentItem, force)
1089+
private fun saveCurrentNote(force: Boolean, callback: ((note: Note) -> Unit)? = null) {
1090+
getPagerAdapter().saveCurrentNote(binding.viewPager.currentItem, force, callback)
10891091
if (mCurrentNote.type == NoteType.TYPE_CHECKLIST) {
10901092
mCurrentNote.value = getPagerAdapter().getNoteChecklistItems(binding.viewPager.currentItem) ?: ""
10911093
}

app/src/main/kotlin/org/fossify/notes/adapters/NotesPagerAdapter.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ class NotesPagerAdapter(fm: FragmentManager, val notes: List<Note>, val activity
5555

5656
fun appendText(position: Int, text: String) = (fragments[position] as? TextFragment)?.getNotesView()?.append(text)
5757

58-
fun saveCurrentNote(position: Int, force: Boolean) = (fragments[position] as? TextFragment)?.saveText(force)
58+
fun saveCurrentNote(position: Int, force: Boolean, callback: ((note: Note) -> Unit)? = null) {
59+
(fragments[position] as? TextFragment)?.saveText(force, callback)
60+
}
5961

6062
fun focusEditText(position: Int) = (fragments[position] as? TextFragment)?.focusEditText()
6163

app/src/main/kotlin/org/fossify/notes/fragments/NoteFragment.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,18 @@ abstract class NoteFragment : Fragment() {
3434
}
3535
}
3636

37-
protected fun saveNoteValue(note: Note, content: String?) {
37+
protected fun saveNoteValue(note: Note, content: String?, callback: ((note: Note) -> Unit)? = null) {
3838
if (note.path.isEmpty()) {
3939
NotesHelper(requireActivity()).insertOrUpdateNote(note) {
4040
(activity as? MainActivity)?.noteSavedSuccessfully(note.title)
41+
callback?.invoke(note)
4142
}
4243
} else {
4344
if (content != null) {
4445
val displaySuccess = activity?.config?.displaySuccess ?: false
45-
(activity as? MainActivity)?.tryExportNoteValueToFile(note.path, note.title, content, displaySuccess)
46+
(activity as? MainActivity)?.tryExportNoteValueToFile(note.path, note.title, content, displaySuccess) {
47+
callback?.invoke(note)
48+
}
4649
}
4750
}
4851
}

app/src/main/kotlin/org/fossify/notes/fragments/TextFragment.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import org.fossify.notes.extensions.updateWidgets
3232
import org.fossify.notes.helpers.MyMovementMethod
3333
import org.fossify.notes.helpers.NOTE_ID
3434
import org.fossify.notes.helpers.NotesHelper
35+
import org.fossify.notes.models.Note
3536
import org.fossify.notes.models.TextHistory
3637
import org.fossify.notes.models.TextHistoryItem
3738
import java.io.File
@@ -224,7 +225,7 @@ class TextFragment : NoteFragment() {
224225

225226
fun getNotesView() = noteEditText
226227

227-
fun saveText(force: Boolean) {
228+
fun saveText(force: Boolean, callback: ((note: Note) -> Unit)? = null) {
228229
if (note == null) {
229230
return
230231
}
@@ -241,7 +242,7 @@ class TextFragment : NoteFragment() {
241242
val oldText = note!!.getNoteStoredValue(requireContext())
242243
if (newText != null && (newText != oldText || force)) {
243244
note!!.value = newText
244-
saveNoteValue(note!!, newText)
245+
saveNoteValue(note!!, newText, callback)
245246
requireContext().updateWidgets()
246247
}
247248
}

0 commit comments

Comments
 (0)