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 699643818ec0b543d733e1a5cb4d5923cffcb733..c31f492ddc7eced4fa850c32a926f8c435c7a435 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 0b5af2034ce63f7c0997a992ebdabd36d0b18e64..a6a356a5dc4baa2c8f9ae571079fe826fa7bde6c 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 91f8c8cafbfbea674df5f550a524fac16ffdd8ae..1d432236b9a9f9668f28ac644afd9f2c9ba44c01 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"