summaryrefslogtreecommitdiff
path: root/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt')
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt72
1 files changed, 34 insertions, 38 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt b/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt
index ef845b6..1d49905 100644
--- a/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt
+++ b/app/src/main/java/foundation/e/advancedprivacy/features/trackers/apptrackers/ToggleTrackersAdapter.kt
@@ -1,4 +1,5 @@
/*
+ * Copyright (C) 2023 MURENA SAS
* Copyright (C) 2021 E FOUNDATION
*
* This program is free software: you can redistribute it and/or modify
@@ -20,72 +21,67 @@ package foundation.e.advancedprivacy.features.trackers.apptrackers
import android.text.SpannableString
import android.text.style.UnderlineSpan
import android.view.LayoutInflater
-import android.view.View
import android.view.ViewGroup
-import android.widget.Switch
-import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import foundation.e.advancedprivacy.R
+import foundation.e.advancedprivacy.databinding.ApptrackersItemTrackerToggleBinding
import foundation.e.advancedprivacy.trackers.domain.entities.Tracker
class ToggleTrackersAdapter(
- private val itemsLayout: Int,
- private val onToggleSwitch: (Tracker, Boolean) -> Unit,
- private val onClickTitle: (Tracker) -> Unit
+ private val viewModel: AppTrackersViewModel
) : RecyclerView.Adapter<ToggleTrackersAdapter.ViewHolder>() {
-
- var isEnabled = true
-
class ViewHolder(
- view: View,
- private val onToggleSwitch: (Tracker, Boolean) -> Unit,
- private val onClickTitle: (Tracker) -> Unit
- ) : RecyclerView.ViewHolder(view) {
- val title: TextView = view.findViewById(R.id.title)
+ private val binding: ApptrackersItemTrackerToggleBinding,
+ private val viewModel: AppTrackersViewModel,
+ ) : RecyclerView.ViewHolder(binding.root) {
- val toggle: Switch = view.findViewById(R.id.toggle)
+ fun bind(item: Pair<Tracker, Boolean>) {
+ val label = item.first.label
+ with(binding.title) {
+ if (item.first.exodusId != null) {
- fun bind(item: Pair<Tracker, Boolean>, isEnabled: Boolean) {
- val text = item.first.label
- if (item.first.exodusId != null) {
- title.setTextColor(ContextCompat.getColor(title.context, R.color.accent))
- val spannable = SpannableString(text)
- spannable.setSpan(UnderlineSpan(), 0, spannable.length, 0)
- title.text = spannable
- } else {
- title.setTextColor(ContextCompat.getColor(title.context, R.color.primary_text))
- title.text = text
+ setTextColor(ContextCompat.getColor(context, R.color.accent))
+ val spannable = SpannableString(label)
+ spannable.setSpan(UnderlineSpan(), 0, spannable.length, 0)
+ text = spannable
+ } else {
+ setTextColor(ContextCompat.getColor(context, R.color.primary_text))
+ text = label
+ }
+ setOnClickListener { viewModel.onClickTracker(item.first) }
}
+ with(binding.toggle) {
+ isChecked = item.second
- toggle.isChecked = item.second
- toggle.isEnabled = isEnabled
-
- toggle.setOnClickListener {
- onToggleSwitch(item.first, toggle.isChecked)
+ setOnClickListener {
+ viewModel.onToggleTracker(item.first, isChecked)
+ }
}
-
- title.setOnClickListener { onClickTitle(item.first) }
}
}
private var dataSet: List<Pair<Tracker, Boolean>> = emptyList()
- fun updateDataSet(new: List<Pair<Tracker, Boolean>>, isEnabled: Boolean) {
- this.isEnabled = isEnabled
+ fun updateDataSet(new: List<Pair<Tracker, Boolean>>) {
dataSet = new
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
- val view = LayoutInflater.from(parent.context)
- .inflate(itemsLayout, parent, false)
- return ViewHolder(view, onToggleSwitch, onClickTitle)
+ return ViewHolder(
+ ApptrackersItemTrackerToggleBinding.inflate(
+ LayoutInflater.from(parent.context),
+ parent,
+ false
+ ),
+ viewModel
+ )
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val permission = dataSet[position]
- holder.bind(permission, isEnabled)
+ holder.bind(permission)
}
override fun getItemCount(): Int = dataSet.size