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