mirror of
https://github.com/SimpleMobileTools/Simple-Notes.git
synced 2025-03-23 20:10:07 +01:00
Merge pull request #465 from Aga-C/add-custom-sorting
Added custom sorting (#464)
This commit is contained in:
commit
1aad36d78f
@ -15,6 +15,7 @@ import com.simplemobiletools.commons.extensions.applyColorFilter
|
||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||
import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor
|
||||
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.ItemTouchHelperContract
|
||||
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) {
|
||||
activity.config.sorting = SORT_BY_CUSTOM
|
||||
if (fromPosition < toPosition) {
|
||||
for (i in fromPosition until toPosition) {
|
||||
Collections.swap(items, i, i + 1)
|
||||
|
@ -1,7 +1,9 @@
|
||||
package com.simplemobiletools.notes.pro.dialogs
|
||||
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.simplemobiletools.commons.extensions.beGoneIf
|
||||
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_TITLE
|
||||
import com.simplemobiletools.commons.helpers.SORT_DESCENDING
|
||||
@ -29,12 +31,24 @@ class SortChecklistDialog(private val activity: SimpleActivity, private val call
|
||||
|
||||
private fun setupSortRadio() {
|
||||
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.beGoneIf(isCustomSorting)
|
||||
view.sorting_dialog_order_divider.beGoneIf(isCustomSorting)
|
||||
view.move_undone_checklist_items_divider.beGoneIf(isCustomSorting)
|
||||
view.settings_move_undone_checklist_items_holder.beGoneIf(isCustomSorting)
|
||||
}
|
||||
|
||||
var fieldBtn = fieldRadio.sorting_dialog_radio_title
|
||||
|
||||
if (currSorting and SORT_BY_DATE_CREATED != 0) {
|
||||
fieldBtn = fieldRadio.sorting_dialog_radio_date_created
|
||||
}
|
||||
|
||||
if (currSorting and SORT_BY_CUSTOM != 0) {
|
||||
fieldBtn = fieldRadio.sorting_dialog_radio_custom
|
||||
}
|
||||
|
||||
fieldBtn.isChecked = true
|
||||
}
|
||||
|
||||
@ -60,10 +74,13 @@ class SortChecklistDialog(private val activity: SimpleActivity, private val call
|
||||
val sortingRadio = view.sorting_dialog_radio_sorting
|
||||
var sorting = when (sortingRadio.checkedRadioButtonId) {
|
||||
R.id.sorting_dialog_radio_date_created -> SORT_BY_DATE_CREATED
|
||||
R.id.sorting_dialog_radio_custom -> SORT_BY_CUSTOM
|
||||
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
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,7 @@ import android.view.ViewGroup
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.reflect.TypeToken
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.helpers.SORT_BY_CUSTOM
|
||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||
import com.simplemobiletools.notes.pro.R
|
||||
import com.simplemobiletools.notes.pro.activities.SimpleActivity
|
||||
@ -65,7 +66,8 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
|
||||
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 }
|
||||
}
|
||||
|
||||
@ -159,9 +161,11 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
|
||||
private fun setupAdapter() {
|
||||
updateUIVisibility()
|
||||
ChecklistItem.sorting = requireContext().config.sorting
|
||||
items.sort()
|
||||
if (context?.config?.moveDoneChecklistItems == true) {
|
||||
items.sortBy { it.isDone }
|
||||
if (ChecklistItem.sorting and SORT_BY_CUSTOM == 0) {
|
||||
items.sort()
|
||||
if (context?.config?.moveDoneChecklistItems == true) {
|
||||
items.sortBy { it.isDone }
|
||||
}
|
||||
}
|
||||
ChecklistAdapter(
|
||||
activity = activity as SimpleActivity,
|
||||
@ -217,6 +221,7 @@ class ChecklistFragment : NoteFragment(), ChecklistItemsListener {
|
||||
}
|
||||
|
||||
override fun refreshItems() {
|
||||
loadNoteById(noteId)
|
||||
setupAdapter()
|
||||
}
|
||||
}
|
||||
|
@ -32,9 +32,19 @@
|
||||
android:paddingBottom="@dimen/normal_margin"
|
||||
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>
|
||||
|
||||
<include layout="@layout/divider" />
|
||||
<include
|
||||
android:id="@+id/sorting_dialog_order_divider"
|
||||
layout="@layout/divider" />
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/sorting_dialog_radio_order"
|
||||
@ -62,7 +72,9 @@
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
<include layout="@layout/divider" />
|
||||
<include
|
||||
android:id="@+id/move_undone_checklist_items_divider"
|
||||
layout="@layout/divider" />
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_move_undone_checklist_items_holder"
|
||||
|
Loading…
x
Reference in New Issue
Block a user