Add more icons to the settings screen and force number pad for numeric only field (#895)

* Add more icons to the settings screen and force number pad for numeric only field

* Use correct exception

Co-authored-by: Justin Bassett <bassett.justint@gmail.com>
This commit is contained in:
Daniel Shokouhi 2020-09-08 06:11:25 -07:00 committed by GitHub
parent 2de7ddab3e
commit e84abafa78
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 50 additions and 1 deletions

View file

@ -1,8 +1,11 @@
package io.homeassistant.companion.android.settings package io.homeassistant.companion.android.settings
import android.graphics.Color
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.text.InputType
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.content.res.AppCompatResources
import androidx.biometric.BiometricManager import androidx.biometric.BiometricManager
import androidx.preference.EditTextPreference import androidx.preference.EditTextPreference
import androidx.preference.ListPreference import androidx.preference.ListPreference
@ -101,6 +104,10 @@ class SettingsFragment : PreferenceFragmentCompat(), SettingsView {
} }
} }
findPreference<EditTextPreference>("session_timeout")?.setOnBindEditTextListener {
it.inputType = InputType.TYPE_CLASS_NUMBER
}
removeSystemFromThemesIfNeeded() removeSystemFromThemesIfNeeded()
findPreference<EditTextPreference>("connection_internal")?.onPreferenceChangeListener = findPreference<EditTextPreference>("connection_internal")?.onPreferenceChangeListener =
@ -140,12 +147,20 @@ class SettingsFragment : PreferenceFragmentCompat(), SettingsView {
override fun disableInternalConnection() { override fun disableInternalConnection() {
findPreference<EditTextPreference>("connection_internal")?.let { findPreference<EditTextPreference>("connection_internal")?.let {
it.isEnabled = false it.isEnabled = false
val unwrappedDrawable =
AppCompatResources.getDrawable(requireContext(), R.drawable.ic_computer)
unwrappedDrawable?.setTint(Color.DKGRAY)
it.icon = unwrappedDrawable
} }
} }
override fun enableInternalConnection() { override fun enableInternalConnection() {
findPreference<EditTextPreference>("connection_internal")?.let { findPreference<EditTextPreference>("connection_internal")?.let {
it.isEnabled = true it.isEnabled = true
val unwrappedDrawable =
AppCompatResources.getDrawable(requireContext(), R.drawable.ic_computer)
unwrappedDrawable?.setTint(resources.getColor(R.color.colorAccent))
it.icon = unwrappedDrawable
} }
} }

View file

@ -67,7 +67,13 @@ class SettingsPresenterImpl @Inject constructor(
when (key) { when (key) {
"connection_internal" -> urlUseCase.saveUrl(value ?: "", true) "connection_internal" -> urlUseCase.saveUrl(value ?: "", true)
"connection_external" -> urlUseCase.saveUrl(value ?: "", false) "connection_external" -> urlUseCase.saveUrl(value ?: "", false)
"session_timeout" -> integrationUseCase.sessionTimeOut(value.toString().toInt()) "session_timeout" -> {
try {
integrationUseCase.sessionTimeOut(value.toString().toInt())
} catch (e: Exception) {
Log.e(TAG, "Issue saving session timeout value", e)
}
}
"registration_name" -> { "registration_name" -> {
try { try {
integrationUseCase.updateRegistration(deviceName = value!!) integrationUseCase.updateRegistration(deviceName = value!!)

View file

@ -0,0 +1,7 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path android:fillColor="@color/colorAccent" android:pathData="M20,18c1.1,0 1.99,-0.9 1.99,-2L22,6c0,-1.1 -0.9,-2 -2,-2H4c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2H0v2h24v-2h-4zM4,6h16v10H4V6z"/>
</vector>

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/colorAccent"
android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
</vector>

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/colorAccent"
android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM18.92,8h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2 0,0.68 0.06,1.34 0.14,2L4.26,14zM5.08,16h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zM8.03,8L5.08,8c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14L9.66,14c-0.09,-0.66 -0.16,-1.32 -0.16,-2 0,-0.68 0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2 0,0.68 -0.07,1.34 -0.16,2zM14.59,19.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2 0,-0.68 -0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z"/>
</vector>

View file

@ -6,10 +6,12 @@
android:title="@string/pref_connection_title"> android:title="@string/pref_connection_title">
<EditTextPreference <EditTextPreference
android:key="connection_external" android:key="connection_external"
android:icon="@drawable/ic_globe"
android:title="@string/pref_connection_url" android:title="@string/pref_connection_url"
app:useSimpleSummaryProvider="true"/> app:useSimpleSummaryProvider="true"/>
<io.homeassistant.companion.android.settings.ssid.SsidPreference <io.homeassistant.companion.android.settings.ssid.SsidPreference
android:key="connection_internal_ssids" android:key="connection_internal_ssids"
android:icon="@drawable/ic_wifi"
android:title="@string/pref_connection_wifi" android:title="@string/pref_connection_wifi"
android:dialogTitle="@string/manage_ssids" android:dialogTitle="@string/manage_ssids"
android:positiveButtonText="@string/save" android:positiveButtonText="@string/save"
@ -24,6 +26,7 @@
android:title="@string/device_registration"> android:title="@string/device_registration">
<EditTextPreference <EditTextPreference
android:key="registration_name" android:key="registration_name"
android:icon="@drawable/ic_edit"
android:title="@string/device_name" android:title="@string/device_name"
app:useSimpleSummaryProvider="true"/> app:useSimpleSummaryProvider="true"/>
</PreferenceCategory> </PreferenceCategory>