aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
diff options
context:
space:
mode:
authorFabian Henneke <FabianHenneke@users.noreply.github.com>2020-07-14 11:30:29 +0200
committerGitHub <noreply@github.com>2020-07-14 15:00:29 +0530
commit681c557e9ef174543c290aff4346a52326ba3950 (patch)
treee893d4403a36686da7ef0b25979edd792ee66cad /app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
parent2f657108b3cc6a8d41f2a06ad53e9e45f816e1bb (diff)
downloadHardenedPass-681c557e9ef174543c290aff4346a52326ba3950.tar.gz
HardenedPass-681c557e9ef174543c290aff4346a52326ba3950.zip
Revert "Work around Chrome Autofill issue (#921)" (#933)
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/UserPreference.kt')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/UserPreference.kt57
1 files changed, 9 insertions, 48 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
index 950b6523..f713ad26 100644
--- a/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/UserPreference.kt
@@ -41,9 +41,7 @@ import com.github.ajalt.timberkt.w
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.snackbar.Snackbar
import com.zeapo.pwdstore.autofill.AutofillPreferenceActivity
-import com.zeapo.pwdstore.autofill.AutofillService
import com.zeapo.pwdstore.autofill.oreo.BrowserAutofillSupportLevel
-import com.zeapo.pwdstore.autofill.oreo.ChromeCompatFix
import com.zeapo.pwdstore.autofill.oreo.getInstalledBrowsersWithAutofillSupportLevel
import com.zeapo.pwdstore.crypto.BasePgpActivity
import com.zeapo.pwdstore.crypto.GetKeyIdsActivity
@@ -72,7 +70,6 @@ class UserPreference : AppCompatActivity() {
class PrefsFragment : PreferenceFragmentCompat() {
private var autoFillEnablePreference: SwitchPreferenceCompat? = null
- private var oreoAutofillChromeCompatFix: SwitchPreferenceCompat? = null
private var clearSavedPassPreference: Preference? = null
private lateinit var autofillDependencies: List<Preference>
private lateinit var oreoAutofillDependencies: List<Preference>
@@ -118,7 +115,6 @@ class UserPreference : AppCompatActivity() {
// Autofill preferences
autoFillEnablePreference = findPreference(PreferenceKeys.AUTOFILL_ENABLE)
- oreoAutofillChromeCompatFix = findPreference(PreferenceKeys.OREO_AUTOFILL_CHROME_COMPAT_FIX)
val oreoAutofillDirectoryStructurePreference = findPreference<ListPreference>(PreferenceKeys.OREO_AUTOFILL_DIRECTORY_STRUCTURE)
val oreoAutofillDefaultUsername = findPreference<EditTextPreference>(PreferenceKeys.OREO_AUTOFILL_DEFAULT_USERNAME)
val oreoAutofillCustomPublixSuffixes = findPreference<EditTextPreference>(PreferenceKeys.OREO_AUTOFILL_CUSTOM_PUBLIC_SUFFIXES)
@@ -277,16 +273,6 @@ class UserPreference : AppCompatActivity() {
true
}
- oreoAutofillChromeCompatFix?.onPreferenceClickListener = ClickListener {
- if (oreoAutofillChromeCompatFix!!.isChecked) {
- startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS))
- true
- } else {
- // Service will disable itself on startup if the preference has the value false.
- false
- }
- }
-
findPreference<Preference>(PreferenceKeys.EXPORT_PASSWORDS)?.apply {
isVisible = sharedPreferences.getBoolean(PreferenceKeys.REPOSITORY_INITIALIZED, false)
onPreferenceClickListener = Preference.OnPreferenceClickListener {
@@ -409,20 +395,16 @@ class UserPreference : AppCompatActivity() {
}
private fun updateAutofillSettings() {
- val isAccessibilityAutofillServiceEnabled = callingActivity.isAccessibilityAutofillServiceEnabled
+ val isAccessibilityServiceEnabled = callingActivity.isAccessibilityServiceEnabled
val isAutofillServiceEnabled = callingActivity.isAutofillServiceEnabled
autoFillEnablePreference?.isChecked =
- isAccessibilityAutofillServiceEnabled || isAutofillServiceEnabled
+ isAccessibilityServiceEnabled || isAutofillServiceEnabled
autofillDependencies.forEach {
- it.isVisible = isAccessibilityAutofillServiceEnabled
+ it.isVisible = isAccessibilityServiceEnabled
}
oreoAutofillDependencies.forEach {
it.isVisible = isAutofillServiceEnabled
}
- oreoAutofillChromeCompatFix?.apply {
- isChecked = callingActivity.isChromeCompatFixServiceEnabled
- isVisible = callingActivity.isChromeCompatFixServiceSupported
- }
}
private fun updateClearSavedPassphrasePrefs() {
@@ -443,16 +425,13 @@ class UserPreference : AppCompatActivity() {
}
private fun onEnableAutofillClick() {
- if (callingActivity.isAccessibilityAutofillServiceEnabled) {
+ if (callingActivity.isAccessibilityServiceEnabled) {
startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS))
} else if (callingActivity.isAutofillServiceEnabled) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
callingActivity.autofillManager!!.disableAutofillServices()
- ChromeCompatFix.setStatusInPreferences(requireContext(), false)
- updateAutofillSettings()
- } else {
+ else
throw IllegalStateException("isAutofillServiceEnabled == true, but Build.VERSION.SDK_INT < Build.VERSION_CODES.O")
- }
} else {
val enableOreoAutofill = callingActivity.isAutofillServiceSupported
MaterialAlertDialogBuilder(callingActivity).run {
@@ -744,32 +723,14 @@ class UserPreference : AppCompatActivity() {
File("$filesDir/.ssh_key").writeText(lines.joinToString("\n"))
}
- private val isAccessibilityAutofillServiceEnabled: Boolean
+ private val isAccessibilityServiceEnabled: Boolean
get() {
val am = getSystemService<AccessibilityManager>() ?: return false
val runningServices = am
.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC)
return runningServices
- .mapNotNull { it?.resolveInfo?.serviceInfo }
- .any { it.packageName == BuildConfig.APPLICATION_ID && it.name == AutofillService::class.java.name }
- }
-
- private val isChromeCompatFixServiceEnabled: Boolean
- get() {
- val am = getSystemService<AccessibilityManager>() ?: return false
- val runningServices = am
- .getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC)
- return runningServices
- .mapNotNull { it?.resolveInfo?.serviceInfo }
- .any { it.packageName == BuildConfig.APPLICATION_ID && it.name == ChromeCompatFix::class.java.name }
- }
-
- private val isChromeCompatFixServiceSupported: Boolean
- get() {
- // Autofill compat mode is only available starting with Android Pie and only makes sense
- // when used with Autofill enabled.
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) return false
- return isAutofillServiceEnabled
+ .map { it.id.substringBefore("/") }
+ .any { it == BuildConfig.APPLICATION_ID }
}
private val isAutofillServiceSupported: Boolean