Hot fix removing authentication from settings. (#651)

Was causing crashes.
This commit is contained in:
Justin Bassett 2020-07-05 10:51:04 -04:00 committed by GitHub
parent 756556046a
commit 949a826e15
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 64 deletions

View file

@ -4,12 +4,10 @@ import android.os.Build
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
import androidx.biometric.BiometricManager
import androidx.core.app.ActivityCompat.finishAffinity
import androidx.preference.EditTextPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SwitchPreference
import eightbitlab.com.blurview.BlurView
import io.homeassistant.companion.android.BuildConfig
import io.homeassistant.companion.android.DaggerPresenterComponent
import io.homeassistant.companion.android.PresenterModule
@ -34,8 +32,6 @@ class SettingsFragment : PreferenceFragmentCompat(), SettingsView {
@Inject
lateinit var presenter: SettingsPresenter
private lateinit var authenticator: Authenticator
private lateinit var blurView: BlurView
private var unlocked = false
private var setLock = false
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
@ -46,14 +42,6 @@ class SettingsFragment : PreferenceFragmentCompat(), SettingsView {
.build()
.inject(this)
blurView = requireActivity().findViewById(R.id.blurView)
blurView.setupWith(requireActivity().findViewById(R.id.content))
.setOverlayColor(resources.getColor(R.color.colorOnPrimary))
if (!presenter.isLockEnabled())
blurView.setBlurEnabled(false)
authenticator = Authenticator(requireContext(), requireActivity(), ::authenticationResult)
preferenceManager.preferenceDataStore = presenter.getPreferenceDataStore()
@ -177,36 +165,8 @@ class SettingsFragment : PreferenceFragmentCompat(), SettingsView {
}
}
override fun onResume() {
super.onResume()
if (presenter.isLockEnabled() && !unlocked)
if (System.currentTimeMillis() > presenter.getSessionExpireMillis()) {
blurView.setBlurEnabled(true)
setLock = false
authenticator.title = getString(R.string.biometric_title)
authenticator.authenticate()
} else blurView.setBlurEnabled(false)
}
override fun onPause() {
presenter.setSessionExpireMillis((System.currentTimeMillis() + (presenter.sessionTimeOut() * 1000)))
unlocked = false
super.onPause()
}
private fun authenticationResult(result: Int) {
val switchLock = findPreference<SwitchPreference>("app_lock")
if (result == Authenticator.SUCCESS) {
if (!setLock) {
unlocked = true
blurView.setBlurEnabled(false)
} else switchLock?.isChecked = true
} else {
switchLock?.isChecked = false
if (result == Authenticator.CANCELED) {
if (!setLock)
finishAffinity(requireActivity())
} else authenticator.authenticate()
}
switchLock?.isChecked = result == Authenticator.SUCCESS
}
}

View file

@ -1,30 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root2"
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.HomeAssistant.ActionBar"
android:elevation="4dp" />
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
android:layout_height="?attr/actionBarSize"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.HomeAssistant.ActionBar" />
<eightbitlab.com.blurview.BlurView
android:id="@+id/blurView"
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent">
</eightbitlab.com.blurview.BlurView>
</RelativeLayout>
android:layout_height="wrap_content" />
</LinearLayout>