From fdde23aa4ef897d6f14de49d9def68a6292802c0 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Thu, 13 Dec 2018 19:59:18 +0100
Subject: [PATCH] Show an info message when certificate/host whitelist is empty

---
 .../whitelist/WhitelistFragment.kt            | 11 +++++++
 .../main/res/layout/preferences_whitelist.xml | 30 +++++++++++++++++++
 app/src/main/res/values-de/strings.xml        |  2 ++
 app/src/main/res/values/strings.xml           |  2 ++
 4 files changed, 45 insertions(+)

diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragment.kt
index 5408e3a2d..9b1adb083 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/clientsettings/whitelist/WhitelistFragment.kt
@@ -25,6 +25,7 @@ import android.os.HandlerThread
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.TextView
 import androidx.core.view.ViewCompat
 import androidx.recyclerview.widget.DividerItemDecoration
 import androidx.recyclerview.widget.LinearLayoutManager
@@ -34,6 +35,7 @@ import butterknife.ButterKnife
 import de.kuschku.quasseldroid.R
 import de.kuschku.quasseldroid.persistence.QuasselDatabase
 import de.kuschku.quasseldroid.ui.coresettings.SettingsFragment
+import de.kuschku.quasseldroid.util.helper.visibleIf
 import javax.inject.Inject
 
 class WhitelistFragment : SettingsFragment(), SettingsFragment.Changeable,
@@ -41,9 +43,15 @@ class WhitelistFragment : SettingsFragment(), SettingsFragment.Changeable,
   @BindView(R.id.certificate_whitelist)
   lateinit var certificateList: RecyclerView
 
+  @BindView(R.id.certificate_whitelist_empty)
+  lateinit var certificateListEmpty: TextView
+
   @BindView(R.id.hostname_whitelist)
   lateinit var hostnameList: RecyclerView
 
+  @BindView(R.id.hostname_whitelist_empty)
+  lateinit var hostnameListEmpty: TextView
+
   @Inject
   lateinit var database: QuasselDatabase
 
@@ -90,6 +98,9 @@ class WhitelistFragment : SettingsFragment(), SettingsFragment.Changeable,
         certificateAdapter.list = it.certificates
         hostnameAdapter.list = it.hostnames
       }
+
+      certificateListEmpty.visibleIf(whitelist?.certificates.isNullOrEmpty())
+      hostnameListEmpty.visibleIf(whitelist?.hostnames.isNullOrEmpty())
     }
     return view
   }
diff --git a/app/src/main/res/layout/preferences_whitelist.xml b/app/src/main/res/layout/preferences_whitelist.xml
index bec7bb789..5d879b723 100644
--- a/app/src/main/res/layout/preferences_whitelist.xml
+++ b/app/src/main/res/layout/preferences_whitelist.xml
@@ -32,6 +32,21 @@
       style="@style/Widget.Subhead"
       android:text="@string/label_whitelist_certificates" />
 
+    <TextView
+      android:id="@+id/certificate_whitelist_empty"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:gravity="center_vertical"
+      android:minHeight="?android:attr/listPreferredItemHeightSmall"
+      android:paddingStart="?listPreferredItemPaddingLeft"
+      android:paddingLeft="?listPreferredItemPaddingLeft"
+      android:paddingEnd="?listPreferredItemPaddingRight"
+      android:paddingRight="?listPreferredItemPaddingRight"
+      android:text="@string/label_whitelist_certificates_empty"
+      android:textColor="?colorTextSecondary"
+      android:textStyle="italic"
+      android:visibility="gone" />
+
     <androidx.recyclerview.widget.RecyclerView
       android:id="@+id/certificate_whitelist"
       android:layout_width="match_parent"
@@ -45,6 +60,21 @@
       style="@style/Widget.Subhead"
       android:text="@string/label_whitelist_hostnames" />
 
+    <TextView
+      android:id="@+id/hostname_whitelist_empty"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:gravity="center_vertical"
+      android:minHeight="?android:attr/listPreferredItemHeightSmall"
+      android:paddingStart="?listPreferredItemPaddingLeft"
+      android:paddingLeft="?listPreferredItemPaddingLeft"
+      android:paddingEnd="?listPreferredItemPaddingRight"
+      android:paddingRight="?listPreferredItemPaddingRight"
+      android:text="@string/label_whitelist_hostnames_empty"
+      android:textColor="?colorTextSecondary"
+      android:textStyle="italic"
+      android:visibility="gone" />
+
     <androidx.recyclerview.widget.RecyclerView
       android:id="@+id/hostname_whitelist"
       android:layout_width="match_parent"
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 602230a76..c63bf7016 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -110,7 +110,9 @@
   <string name="label_whitelist">Ignorieren</string>
   <string name="label_whitelist_ignore_date">Verfallsdatum wird ignoriert für dieses Zertifikat</string>
   <string name="label_whitelist_certificates">Zertifikate</string>
+  <string name="label_whitelist_certificates_empty">Keine Zertifikate auf der Whitelist</string>
   <string name="label_whitelist_hostnames">Hosts</string>
+  <string name="label_whitelist_hostnames_empty">Keine Hostnamen auf der Whitelist</string>
   <string name="label_who">Who</string>
   <string name="label_who_long">Informationen aller Nutzer aktualisieren</string>
   <string name="label_whois">Whois</string>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b04d0f2e3..65682e9c8 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -112,7 +112,9 @@
   <string name="label_whitelist">Ignore</string>
   <string name="label_whitelist_ignore_date">Expiration date is ignored for this certificate</string>
   <string name="label_whitelist_certificates">Certificates</string>
+  <string name="label_whitelist_certificates_empty">No certificates whitelisted</string>
   <string name="label_whitelist_hostnames">Hosts</string>
+  <string name="label_whitelist_hostnames_empty">No hosts whitelisted</string>
   <string name="label_who">Who</string>
   <string name="label_who_long">Update user information of all users</string>
   <string name="label_whois">Whois</string>
-- 
GitLab