From 75da88ba330c521bee36d132e873226b17fc108a Mon Sep 17 00:00:00 2001 From: tanvirahmod Date: Mon, 4 Jan 2021 18:43:54 +0600 Subject: [PATCH 1/2] Implement deleting done checklist items --- .../notes/pro/activities/MainActivity.kt | 30 ++++++++------ .../notes/pro/adapters/NotesPagerAdapter.kt | 4 ++ .../notes/pro/fragments/ChecklistFragment.kt | 39 ++++++++++++------- app/src/main/res/menu/menu.xml | 7 +++- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-az/strings.xml | 1 + app/src/main/res/values-cs/strings.xml | 1 + app/src/main/res/values-cy/strings.xml | 1 + app/src/main/res/values-da/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-el/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-gl/strings.xml | 1 + app/src/main/res/values-hr/strings.xml | 1 + app/src/main/res/values-hu/strings.xml | 1 + app/src/main/res/values-id/strings.xml | 1 + app/src/main/res/values-in/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-lt/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-pt/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-sk/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 33 files changed, 83 insertions(+), 26 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 a4eb903c..7688a152 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 @@ -153,6 +153,7 @@ class MainActivity : SimpleActivity() { findItem(R.id.delete_note).isVisible = multipleNotesExist findItem(R.id.export_all_notes).isVisible = multipleNotesExist && hasPermission(PERMISSION_WRITE_STORAGE) findItem(R.id.open_search).isVisible = !isCurrentItemChecklist() + findItem(R.id.remove_done_items).isVisible = isCurrentItemChecklist() findItem(R.id.import_folder).isVisible = hasPermission(PERMISSION_READ_STORAGE) saveNoteButton = findItem(R.id.save_note) @@ -185,6 +186,7 @@ class MainActivity : SimpleActivity() { R.id.delete_note -> displayDeleteNotePrompt() R.id.settings -> startActivity(Intent(applicationContext, SettingsActivity::class.java)) R.id.about -> launchAbout() + R.id.remove_done_items -> removeDoneItems() else -> return super.onOptionsItemSelected(item) } return true @@ -241,7 +243,8 @@ class MainActivity : SimpleActivity() { } } - private fun isCurrentItemChecklist() = mAdapter?.isChecklistFragment(view_pager.currentItem) ?: false + private fun isCurrentItemChecklist() = mAdapter?.isChecklistFragment(view_pager.currentItem) + ?: false private fun checkIntents(intent: Intent) { intent.apply { @@ -503,11 +506,11 @@ class MainActivity : SimpleActivity() { val licenses = LICENSE_RTL val faqItems = arrayListOf( - FAQItem(R.string.faq_1_title_commons, R.string.faq_1_text_commons), - FAQItem(R.string.faq_1_title, R.string.faq_1_text), - FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons), - FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons), - FAQItem(R.string.faq_7_title_commons, R.string.faq_7_text_commons) + FAQItem(R.string.faq_1_title_commons, R.string.faq_1_text_commons), + FAQItem(R.string.faq_1_title, R.string.faq_1_text), + FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons), + FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons), + FAQItem(R.string.faq_7_title_commons, R.string.faq_7_text_commons) ) startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true) @@ -691,8 +694,8 @@ class MainActivity : SimpleActivity() { private fun showExportFilePickUpdateDialog(exportPath: String, textToExport: String) { val items = arrayListOf( - RadioItem(EXPORT_FILE_SYNC, getString(R.string.update_file_at_note)), - RadioItem(EXPORT_FILE_NO_SYNC, getString(R.string.only_export_file_content))) + RadioItem(EXPORT_FILE_SYNC, getString(R.string.update_file_at_note)), + RadioItem(EXPORT_FILE_NO_SYNC, getString(R.string.only_export_file_content))) RadioGroupDialog(this, items) { val syncFile = it as Int == EXPORT_FILE_SYNC @@ -722,8 +725,8 @@ class MainActivity : SimpleActivity() { private fun exportAllNotes() { ExportFilesDialog(this, mNotes) { parent, extension -> val items = arrayListOf( - RadioItem(EXPORT_FILE_SYNC, getString(R.string.update_file_at_note)), - RadioItem(EXPORT_FILE_NO_SYNC, getString(R.string.only_export_file_content))) + RadioItem(EXPORT_FILE_SYNC, getString(R.string.update_file_at_note)), + RadioItem(EXPORT_FILE_NO_SYNC, getString(R.string.only_export_file_content))) RadioGroupDialog(this, items) { val syncFile = it as Int == EXPORT_FILE_SYNC @@ -904,7 +907,8 @@ class MainActivity : SimpleActivity() { private fun saveCurrentNote(force: Boolean) { getPagerAdapter().saveCurrentNote(view_pager.currentItem, force) if (mCurrentNote.type == NoteType.TYPE_CHECKLIST.value) { - mCurrentNote.value = getPagerAdapter().getNoteChecklistItems(view_pager.currentItem) ?: "" + mCurrentNote.value = getPagerAdapter().getNoteChecklistItems(view_pager.currentItem) + ?: "" } } @@ -1052,4 +1056,8 @@ class MainActivity : SimpleActivity() { checkWhatsNew(this, BuildConfig.VERSION_CODE) } } + + private fun removeDoneItems() { + getPagerAdapter().removeDoneCheckListItems(view_pager.currentItem) + } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/NotesPagerAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/NotesPagerAdapter.kt index 051ebe1b..f2fdcbc4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/NotesPagerAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/NotesPagerAdapter.kt @@ -89,4 +89,8 @@ class NotesPagerAdapter(fm: FragmentManager, val notes: List, val activity fragments[position] = fragment return fragment } + + fun removeDoneCheckListItems(position: Int) { + (fragments[position] as? ChecklistFragment)?.removeDoneItems() + } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt index ee7dff8d..f8b0a0dd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/ChecklistFragment.kt @@ -61,7 +61,7 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener { try { val checklistItemType = object : TypeToken>() {}.type items = Gson().fromJson>(storedNote.value, checklistItemType) - ?: ArrayList(1) + ?: ArrayList(1) } catch (e: Exception) { migrateCheckListOnFailure(storedNote) } @@ -81,9 +81,9 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener { note.value.split("\n").map { it.trim() }.filter { it.isNotBlank() }.forEachIndexed { index, value -> items.add(ChecklistItem( - id = index, - title = value, - isDone = false + id = index, + title = value, + isDone = false )) } @@ -135,18 +135,14 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener { } private fun setupAdapter() { - with(view) { - fragment_placeholder.beVisibleIf(items.isEmpty()) - fragment_placeholder_2.beVisibleIf(items.isEmpty()) - checklist_list.beVisibleIf(items.isNotEmpty()) - } + updateUIVisibility() ChecklistAdapter( - activity = activity as SimpleActivity, - items = items, - listener = this, - recyclerView = view.checklist_list, - showIcons = true + activity = activity as SimpleActivity, + items = items, + listener = this, + recyclerView = view.checklist_list, + showIcons = true ) { item -> val clickedNote = item as ChecklistItem clickedNote.isDone = !clickedNote.isDone @@ -176,6 +172,21 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener { } } + fun removeDoneItems() { + items.removeIf { it.isDone } + updateUIVisibility() + view.checklist_list.adapter?.notifyDataSetChanged() + saveNote() + } + + private fun updateUIVisibility() { + with(view) { + fragment_placeholder.beVisibleIf(items.isEmpty()) + fragment_placeholder_2.beVisibleIf(items.isEmpty()) + checklist_list.beVisibleIf(items.isNotEmpty()) + } + } + override fun saveChecklist() { saveNote() } diff --git a/app/src/main/res/menu/menu.xml b/app/src/main/res/menu/menu.xml index 6e04cb02..77c0903d 100644 --- a/app/src/main/res/menu/menu.xml +++ b/app/src/main/res/menu/menu.xml @@ -1,6 +1,6 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> + Reddit: https://www.reddit.com/r/SimpleMobileTools + Remove done items تصدير جميع الملاحظات كملفات @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Bütün qeydləri fayl şəklində çıxar @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Exportovat všechny poznámky jako soubory @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Allforio pob nodyn fel ffeil @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Eksporter alle noter som filer @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Alle Notizen als Dateien exportieren @@ -99,7 +100,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Εξαγωγή όλων των σημειώσεων ως αρχεία @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Exportar todas las notas como archivos @@ -99,7 +100,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Exporter toutes les notes en tant que fichiers @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Exportar todas as notas como ficheiros @@ -100,7 +101,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Izvezi sve bilješke kao datoteke @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Export all notes as files @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Ekspor semua catatan ke berkas @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Ekspor semua catatan ke berkas @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Esporta le note come file @@ -100,7 +101,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items すべてのメモをファイルとしてエクスポート @@ -99,7 +100,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Eksportuoti visus užrašus kaip bylas @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Alle notities naar bestanden exporteren @@ -97,7 +98,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Eksportuj wszystkie notatki jako pliki @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Exportar todas as notas como arquivo @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Exportar todas as notas como ficheiros @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Экспортировать все заметки в файлы @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Exportovať všetky poznámky ako súbory @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Exportera alla anteckningar som filer @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Tüm notları dosya olarak dışa aktar @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Експортувати всі нотатки як файли @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items 以文件导出所有笔记 @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items 將全部筆記匯出成檔案 @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items Export all notes as files @@ -101,7 +102,6 @@ Reddit: https://www.reddit.com/r/SimpleMobileTools - Remove done items