Skip to content
Snippets Groups Projects
Verified Commit ba6f70b3 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fixes issue where whitelist fragment didn’t properly show placeholder

parent a6bec9fd
No related branches found
No related tags found
No related merge requests found
......@@ -34,11 +34,16 @@ import de.kuschku.quasseldroid.util.helper.visibleIf
class WhitelistCertificateAdapter :
RecyclerView.Adapter<WhitelistCertificateAdapter.WhitelistItemViewHolder>() {
private var clickListener: ((QuasselDatabase.SslValidityWhitelistEntry) -> Unit)? = null
private var updateListener: ((List<QuasselDatabase.SslValidityWhitelistEntry>) -> Unit)? = null
fun setOnClickListener(listener: ((QuasselDatabase.SslValidityWhitelistEntry) -> Unit)?) {
clickListener = listener
}
fun setOnUpdateListener(listener: ((List<QuasselDatabase.SslValidityWhitelistEntry>) -> Unit)?) {
updateListener = listener
}
private val data = mutableListOf<QuasselDatabase.SslValidityWhitelistEntry>()
var list: List<QuasselDatabase.SslValidityWhitelistEntry>
get() = data
......@@ -48,17 +53,20 @@ class WhitelistCertificateAdapter :
notifyItemRangeRemoved(0, length)
data.addAll(value)
notifyItemRangeInserted(0, list.size)
updateListener?.invoke(list)
}
fun add(item: QuasselDatabase.SslValidityWhitelistEntry) {
val index = data.size
data.add(item)
notifyItemInserted(index)
updateListener?.invoke(list)
}
fun replace(index: Int, item: QuasselDatabase.SslValidityWhitelistEntry) {
data[index] = item
notifyItemChanged(index)
updateListener?.invoke(list)
}
fun indexOf(item: QuasselDatabase.SslValidityWhitelistEntry) = data.indexOf(item)
......@@ -66,6 +74,7 @@ class WhitelistCertificateAdapter :
fun remove(index: Int) {
data.removeAt(index)
notifyItemRemoved(index)
updateListener?.invoke(list)
}
fun remove(item: QuasselDatabase.SslValidityWhitelistEntry) = remove(indexOf(item))
......
......@@ -92,17 +92,24 @@ class WhitelistFragment : SettingsFragment(), SettingsFragment.Changeable,
hostnameList.addItemDecoration(DividerItemDecoration(context, LinearLayoutManager.VERTICAL))
ViewCompat.setNestedScrollingEnabled(hostnameList, false)
certificateAdapter.setOnUpdateListener {
activity?.runOnUiThread {
certificateListEmpty.visibleIf(it.isNullOrEmpty())
}
}
hostnameAdapter.setOnUpdateListener {
activity?.runOnUiThread {
hostnameListEmpty.visibleIf(it.isNullOrEmpty())
}
}
handler.post {
whitelist = Whitelist(database.validityWhitelist().all(), database.hostnameWhitelist().all())
whitelist?.let {
certificateAdapter.list = it.certificates
hostnameAdapter.list = it.hostnames
}
activity?.runOnUiThread {
certificateListEmpty.visibleIf(whitelist?.certificates.isNullOrEmpty())
hostnameListEmpty.visibleIf(whitelist?.hostnames.isNullOrEmpty())
}
}
return view
}
......
......@@ -32,6 +32,12 @@ import de.kuschku.quasseldroid.persistence.QuasselDatabase
class WhitelistHostnameAdapter :
RecyclerView.Adapter<WhitelistHostnameAdapter.WhitelistItemViewHolder>() {
private var updateListener: ((List<QuasselDatabase.SslHostnameWhitelistEntry>) -> Unit)? = null
fun setOnUpdateListener(listener: ((List<QuasselDatabase.SslHostnameWhitelistEntry>) -> Unit)?) {
updateListener = listener
}
private val data = mutableListOf<QuasselDatabase.SslHostnameWhitelistEntry>()
var list: List<QuasselDatabase.SslHostnameWhitelistEntry>
get() = data
......@@ -41,17 +47,20 @@ class WhitelistHostnameAdapter :
notifyItemRangeRemoved(0, length)
data.addAll(value)
notifyItemRangeInserted(0, list.size)
updateListener?.invoke(list)
}
fun add(item: QuasselDatabase.SslHostnameWhitelistEntry) {
val index = data.size
data.add(item)
notifyItemInserted(index)
updateListener?.invoke(list)
}
fun replace(index: Int, item: QuasselDatabase.SslHostnameWhitelistEntry) {
data[index] = item
notifyItemChanged(index)
updateListener?.invoke(list)
}
fun indexOf(item: QuasselDatabase.SslHostnameWhitelistEntry) = data.indexOf(item)
......@@ -59,6 +68,7 @@ class WhitelistHostnameAdapter :
fun remove(index: Int) {
data.removeAt(index)
notifyItemRemoved(index)
updateListener?.invoke(list)
}
fun remove(item: QuasselDatabase.SslHostnameWhitelistEntry) = remove(indexOf(item))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment