From cea66cf37d56256187673590ccefa1514f7a31c0 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Fri, 8 Jun 2018 19:20:57 +0200 Subject: [PATCH] Hide disconnect button and clients list if features are unavailable --- .../quasseldroid/ui/chat/info/core/ClientAdapter.kt | 2 ++ .../ui/chat/info/core/CoreInfoFragment.kt | 12 ++++++------ app/src/main/res/layout/fragment_info_core.xml | 6 ++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/ClientAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/ClientAdapter.kt index 699643818..c31f492dd 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/ClientAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/ClientAdapter.kt @@ -13,6 +13,7 @@ import android.widget.ImageView import android.widget.TextView import butterknife.BindView import butterknife.ButterKnife +import de.kuschku.libquassel.quassel.ExtendedFeature import de.kuschku.libquassel.quassel.syncables.CoreInfo import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.util.helper.getVectorDrawableCompat @@ -102,6 +103,7 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl location.visibleIf(data.location.isNotBlank()) secureIcon.setImageDrawable(if (data.secure) secure else insecure) + disconnect.visibleIf(data.features.hasFeature(ExtendedFeature.RemoteDisconnect)) } } } diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/CoreInfoFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/CoreInfoFragment.kt index 0b5af2034..a6a356a5d 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/CoreInfoFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/core/CoreInfoFragment.kt @@ -51,15 +51,15 @@ class CoreInfoFragment : ServiceBoundFragment() { @BindView(R.id.uptime) lateinit var uptime: TextView - @BindView(R.id.secure_container) - lateinit var secureContainer: View - @BindView(R.id.secure) lateinit var secureText: TextView @BindView(R.id.secure_icon) lateinit var secureIcon: ImageView + @BindView(R.id.clients_title) + lateinit var clientsTitle: View + @BindView(R.id.clients) lateinit var clients: RecyclerView @@ -97,15 +97,14 @@ class CoreInfoFragment : ServiceBoundFragment() { val sslSession = it?.orNull() val leafCertificate = sslSession?.peerCertificateChain?.firstOrNull() val issuerName = leafCertificate?.issuerDN?.name?.let(X509Helper::commonName) + ?: requireContext().getString(R.string.label_core_connection_verified_by_unknown) if (sslSession == null) { secureText.text = requireContext().getString(R.string.label_core_connection_insecure) secureIcon.setImageDrawable(insecure) } else { secureText.text = requireContext().getString( - R.string.label_core_connection_verified_by, - issuerName - ?: requireContext().getString(R.string.label_core_connection_verified_by_unknown) + R.string.label_core_connection_verified_by, issuerName ) secureIcon.setImageDrawable(secure) } @@ -121,6 +120,7 @@ class CoreInfoFragment : ServiceBoundFragment() { } clients.adapter = adapter viewModel.coreInfoClients.toLiveData().observe(this, Observer { + clientsTitle.visibleIf(it?.isNotEmpty() == true) adapter.submitList(it) }) diff --git a/app/src/main/res/layout/fragment_info_core.xml b/app/src/main/res/layout/fragment_info_core.xml index 91f8c8caf..1d432236b 100644 --- a/app/src/main/res/layout/fragment_info_core.xml +++ b/app/src/main/res/layout/fragment_info_core.xml @@ -78,7 +78,6 @@ android:text="@string/label_core_security" /> <LinearLayout - android:id="@+id/secure_container" style="@style/Widget.Info.Item" android:orientation="horizontal"> @@ -104,8 +103,11 @@ android:background="?colorDivider" /> <TextView + android:id="@+id/clients_title" style="@style/Widget.Info.Section" - android:text="@string/label_core_clients" /> + android:text="@string/label_core_clients" + android:visibility="gone" + tools:visibility="visible" /> <android.support.v7.widget.RecyclerView android:id="@+id/clients" -- GitLab