mirror of
https://github.com/SimpleMobileTools/Simple-Notes.git
synced 2025-03-28 06:20:07 +01:00
Added custom sorting (#464)
This commit is contained in:
parent
fd14f01f1f
commit
23cdd2511b
@ -15,6 +15,7 @@ import com.simplemobiletools.commons.extensions.applyColorFilter
|
|||||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||||
import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor
|
import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor
|
||||||
import com.simplemobiletools.commons.extensions.removeBit
|
import com.simplemobiletools.commons.extensions.removeBit
|
||||||
|
import com.simplemobiletools.commons.helpers.SORT_BY_CUSTOM
|
||||||
import com.simplemobiletools.commons.interfaces.ItemMoveCallback
|
import com.simplemobiletools.commons.interfaces.ItemMoveCallback
|
||||||
import com.simplemobiletools.commons.interfaces.ItemTouchHelperContract
|
import com.simplemobiletools.commons.interfaces.ItemTouchHelperContract
|
||||||
import com.simplemobiletools.commons.interfaces.StartReorderDragListener
|
import com.simplemobiletools.commons.interfaces.StartReorderDragListener
|
||||||
@ -209,6 +210,7 @@ class ChecklistAdapter(activity: BaseSimpleActivity, var items: ArrayList<Checkl
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onRowMoved(fromPosition: Int, toPosition: Int) {
|
override fun onRowMoved(fromPosition: Int, toPosition: Int) {
|
||||||
|
activity.config.sorting = SORT_BY_CUSTOM
|
||||||
if (fromPosition < toPosition) {
|
if (fromPosition < toPosition) {
|
||||||
for (i in fromPosition until toPosition) {
|
for (i in fromPosition until toPosition) {
|
||||||
Collections.swap(items, i, i + 1)
|
Collections.swap(items, i, i + 1)
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package com.simplemobiletools.notes.pro.dialogs
|
package com.simplemobiletools.notes.pro.dialogs
|
||||||
|
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
|
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||||
|
import com.simplemobiletools.commons.helpers.SORT_BY_CUSTOM
|
||||||
import com.simplemobiletools.commons.helpers.SORT_BY_DATE_CREATED
|
import com.simplemobiletools.commons.helpers.SORT_BY_DATE_CREATED
|
||||||
import com.simplemobiletools.commons.helpers.SORT_BY_TITLE
|
import com.simplemobiletools.commons.helpers.SORT_BY_TITLE
|
||||||
import com.simplemobiletools.commons.helpers.SORT_DESCENDING
|
import com.simplemobiletools.commons.helpers.SORT_DESCENDING
|
||||||
@ -29,12 +31,24 @@ class SortChecklistDialog(private val activity: SimpleActivity, private val call
|
|||||||
|
|
||||||
private fun setupSortRadio() {
|
private fun setupSortRadio() {
|
||||||
val fieldRadio = view.sorting_dialog_radio_sorting
|
val fieldRadio = view.sorting_dialog_radio_sorting
|
||||||
|
fieldRadio.setOnCheckedChangeListener { group, checkedId ->
|
||||||
|
val isCustomSorting = checkedId == fieldRadio.sorting_dialog_radio_custom.id
|
||||||
|
view.sorting_dialog_radio_order.beVisibleIf(!isCustomSorting)
|
||||||
|
view.sorting_dialog_order_divider.beVisibleIf(!isCustomSorting)
|
||||||
|
view.move_undone_checklist_items_divider.beVisibleIf((!isCustomSorting))
|
||||||
|
view.settings_move_undone_checklist_items_holder.beVisibleIf(!isCustomSorting)
|
||||||
|
}
|
||||||
|
|
||||||
var fieldBtn = fieldRadio.sorting_dialog_radio_title
|
var fieldBtn = fieldRadio.sorting_dialog_radio_title
|
||||||
|
|
||||||
if (currSorting and SORT_BY_DATE_CREATED != 0) {
|
if (currSorting and SORT_BY_DATE_CREATED != 0) {
|
||||||
fieldBtn = fieldRadio.sorting_dialog_radio_date_created
|
fieldBtn = fieldRadio.sorting_dialog_radio_date_created
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (currSorting and SORT_BY_CUSTOM != 0) {
|
||||||
|
fieldBtn = fieldRadio.sorting_dialog_radio_custom
|
||||||
|
}
|
||||||
|
|
||||||
fieldBtn.isChecked = true
|
fieldBtn.isChecked = true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,10 +74,12 @@ class SortChecklistDialog(private val activity: SimpleActivity, private val call
|
|||||||
val sortingRadio = view.sorting_dialog_radio_sorting
|
val sortingRadio = view.sorting_dialog_radio_sorting
|
||||||
var sorting = when (sortingRadio.checkedRadioButtonId) {
|
var sorting = when (sortingRadio.checkedRadioButtonId) {
|
||||||
R.id.sorting_dialog_radio_date_created -> SORT_BY_DATE_CREATED
|
R.id.sorting_dialog_radio_date_created -> SORT_BY_DATE_CREATED
|
||||||
|
R.id.sorting_dialog_radio_custom -> SORT_BY_CUSTOM
|
||||||
else -> SORT_BY_TITLE
|
else -> SORT_BY_TITLE
|
||||||
}
|
}
|
||||||
|
|
||||||
if (view.sorting_dialog_radio_order.checkedRadioButtonId == R.id.sorting_dialog_radio_descending) {
|
if (sortingRadio.checkedRadioButtonId != R.id.sorting_dialog_radio_custom
|
||||||
|
&& view.sorting_dialog_radio_order.checkedRadioButtonId == R.id.sorting_dialog_radio_descending) {
|
||||||
sorting = sorting or SORT_DESCENDING
|
sorting = sorting or SORT_DESCENDING
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import android.view.ViewGroup
|
|||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.reflect.TypeToken
|
import com.google.gson.reflect.TypeToken
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
|
import com.simplemobiletools.commons.helpers.SORT_BY_CUSTOM
|
||||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||||
import com.simplemobiletools.notes.pro.R
|
import com.simplemobiletools.notes.pro.R
|
||||||
import com.simplemobiletools.notes.pro.activities.SimpleActivity
|
import com.simplemobiletools.notes.pro.activities.SimpleActivity
|
||||||
@ -65,7 +66,8 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
|
|||||||
migrateCheckListOnFailure(storedNote)
|
migrateCheckListOnFailure(storedNote)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config?.moveDoneChecklistItems == true) {
|
val sorting = config?.sorting ?: 0
|
||||||
|
if (sorting and SORT_BY_CUSTOM == 0 && config?.moveDoneChecklistItems == true) {
|
||||||
items.sortBy { it.isDone }
|
items.sortBy { it.isDone }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,9 +161,11 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
|
|||||||
private fun setupAdapter() {
|
private fun setupAdapter() {
|
||||||
updateUIVisibility()
|
updateUIVisibility()
|
||||||
ChecklistItem.sorting = requireContext().config.sorting
|
ChecklistItem.sorting = requireContext().config.sorting
|
||||||
items.sort()
|
if (ChecklistItem.sorting and SORT_BY_CUSTOM == 0) {
|
||||||
if (context?.config?.moveDoneChecklistItems == true) {
|
items.sort()
|
||||||
items.sortBy { it.isDone }
|
if (context?.config?.moveDoneChecklistItems == true) {
|
||||||
|
items.sortBy { it.isDone }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ChecklistAdapter(
|
ChecklistAdapter(
|
||||||
activity = activity as SimpleActivity,
|
activity = activity as SimpleActivity,
|
||||||
@ -217,6 +221,7 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun refreshItems() {
|
override fun refreshItems() {
|
||||||
|
loadNoteById(noteId)
|
||||||
setupAdapter()
|
setupAdapter()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,9 +32,19 @@
|
|||||||
android:paddingBottom="@dimen/normal_margin"
|
android:paddingBottom="@dimen/normal_margin"
|
||||||
android:text="@string/date_created" />
|
android:text="@string/date_created" />
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyCompatRadioButton
|
||||||
|
android:id="@+id/sorting_dialog_radio_custom"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="@dimen/normal_margin"
|
||||||
|
android:paddingBottom="@dimen/normal_margin"
|
||||||
|
android:text="@string/custom" />
|
||||||
|
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
|
|
||||||
<include layout="@layout/divider" />
|
<include
|
||||||
|
android:id="@+id/sorting_dialog_order_divider"
|
||||||
|
layout="@layout/divider" />
|
||||||
|
|
||||||
<RadioGroup
|
<RadioGroup
|
||||||
android:id="@+id/sorting_dialog_radio_order"
|
android:id="@+id/sorting_dialog_radio_order"
|
||||||
@ -62,7 +72,9 @@
|
|||||||
|
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
|
|
||||||
<include layout="@layout/divider" />
|
<include
|
||||||
|
android:id="@+id/move_undone_checklist_items_divider"
|
||||||
|
layout="@layout/divider" />
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/settings_move_undone_checklist_items_holder"
|
android:id="@+id/settings_move_undone_checklist_items_holder"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user