adding some quick filter related changes

This commit is contained in:
tibbi 2021-07-19 17:09:50 +02:00
parent 33ab342851
commit 88c8eda863
5 changed files with 19 additions and 18 deletions

View File

@ -305,7 +305,6 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
refreshViewPager()
updateWidgets()
}
}
}

View File

@ -287,7 +287,7 @@ class SettingsActivity : SimpleActivity() {
}
private fun showQuickFilterPicker() {
SelectQuickFilterEventTypesDialog(this) {}
SelectQuickFilterEventTypesDialog(this)
}
private fun setupSundayFirst() {

View File

@ -12,7 +12,12 @@ import com.simplemobiletools.commons.helpers.MEDIUM_ALPHA
import kotlinx.android.synthetic.main.quick_filter_event_type_view.view.*
import java.util.*
class QuickFilterEventTypeAdapter(val activity: SimpleActivity, val allEventTypes: List<EventType>, private val quickFilterEventTypeIds: Set<String>, val filterChanged: () -> Unit) :
class QuickFilterEventTypeAdapter(
val activity: SimpleActivity,
val allEventTypes: List<EventType>,
private val quickFilterEventTypeIds: Set<String>,
val filterChanged: () -> Unit
) :
RecyclerView.Adapter<QuickFilterEventTypeAdapter.ViewHolder>() {
private val activeKeys = HashSet<Long>()
private val quickFilterEventTypes = ArrayList<EventType>()
@ -25,12 +30,9 @@ class QuickFilterEventTypeAdapter(val activity: SimpleActivity, val allEventType
init {
quickFilterEventTypeIds.forEach { quickFilterEventType ->
// Find the associated eventType, return if none found
val eventType = allEventTypes.find { eventType -> eventType.id.toString() == quickFilterEventType }
?: return@forEach
val eventType = allEventTypes.find { eventType -> eventType.id.toString() == quickFilterEventType } ?: return@forEach
quickFilterEventTypes.add(eventType)
// Check if it is currently active
if (displayEventTypes.contains(eventType.id.toString())) {
activeKeys.add(eventType.id!!)
}
@ -72,10 +74,9 @@ class QuickFilterEventTypeAdapter(val activity: SimpleActivity, val allEventType
quick_filter_event_type.text = eventType.title
val textColor = if (isSelected) textColorActive else textColorInactive
quick_filter_event_type.setTextColor(textColor)
val indicatorHeight =
if (isSelected) resources.getDimensionPixelSize(R.dimen.quick_filter_active_line_size)
else resources.getDimensionPixelSize(R.dimen.quick_filter_inactive_line_size)
quick_filter_event_type_color.layoutParams.height = indicatorHeight
val indicatorHeightRes = if (isSelected) R.dimen.quick_filter_active_line_size else R.dimen.quick_filter_inactive_line_size
quick_filter_event_type_color.layoutParams.height = resources.getDimensionPixelSize(indicatorHeightRes)
quick_filter_event_type_color.setBackgroundColor(eventType.color)
quick_filter_event_type.setOnClickListener {
viewClicked(!isSelected, eventType)
@ -87,10 +88,12 @@ class QuickFilterEventTypeAdapter(val activity: SimpleActivity, val allEventType
}
private fun viewClicked(select: Boolean, eventType: EventType) {
if (select)
activity.config.displayEventTypes = activity.config.displayEventTypes.plus(eventType.id.toString())
else
activity.config.displayEventTypes = activity.config.displayEventTypes.minus(eventType.id.toString())
activity.config.displayEventTypes = if (select) {
activity.config.displayEventTypes.plus(eventType.id.toString())
} else {
activity.config.displayEventTypes.minus(eventType.id.toString())
}
toggleItemSelection(select, eventType, adapterPosition)
}
}

View File

@ -9,7 +9,7 @@ import com.simplemobiletools.calendar.pro.extensions.eventsHelper
import com.simplemobiletools.commons.extensions.setupDialogStuff
import kotlinx.android.synthetic.main.dialog_filter_event_types.view.*
class SelectQuickFilterEventTypesDialog(val activity: SimpleActivity, val callback: () -> Unit) {
class SelectQuickFilterEventTypesDialog(val activity: SimpleActivity) {
private lateinit var dialog: AlertDialog
private val view = activity.layoutInflater.inflate(R.layout.dialog_filter_event_types, null)
@ -31,7 +31,6 @@ class SelectQuickFilterEventTypesDialog(val activity: SimpleActivity, val callba
val selectedItems = (view.filter_event_types_list.adapter as FilterEventTypeAdapter).getSelectedItemsList().map { it.toString() }.toHashSet()
if (activity.config.quickFilterEventTypes != selectedItems) {
activity.config.quickFilterEventTypes = selectedItems
callback()
}
dialog.dismiss()
}

View File

@ -35,6 +35,6 @@
<dimen name="quick_filter_height">48dp</dimen>
<dimen name="quick_filter_min_width">88dp</dimen>
<dimen name="quick_filter_active_line_size">4dp</dimen>
<dimen name="quick_filter_active_line_size">6dp</dimen>
<dimen name="quick_filter_inactive_line_size">1dp</dimen>
</resources>