@@ -2,7 +2,6 @@ package me.lucky.sentry.fragment
2
2
3
3
import android.app.Activity
4
4
import android.content.Context
5
- import android.content.SharedPreferences
6
5
import android.os.Build
7
6
import android.os.Bundle
8
7
import android.view.LayoutInflater
@@ -22,7 +21,6 @@ class MainFragment : Fragment() {
22
21
private lateinit var binding: FragmentMainBinding
23
22
private lateinit var ctx: Context
24
23
private lateinit var prefs: Preferences
25
- private lateinit var prefsdb: Preferences
26
24
private val admin by lazy { DeviceAdminManager (ctx) }
27
25
28
26
override fun onCreateView (
@@ -38,24 +36,16 @@ class MainFragment : Fragment() {
38
36
39
37
override fun onStart () {
40
38
super .onStart()
41
- prefs.registerListener(prefsListener)
42
39
update()
43
40
}
44
41
45
- override fun onStop () {
46
- super .onStop()
47
- prefs.unregisterListener(prefsListener)
48
- }
49
-
50
42
private fun init () {
51
43
ctx = requireContext()
52
44
prefs = Preferences (ctx)
53
- prefsdb = Preferences (ctx, encrypted = false )
54
- prefs.copyTo(prefsdb)
55
45
binding.apply {
56
46
maxFailedPasswordAttempts.editText?.setText(prefs.maxFailedPasswordAttempts.toString())
57
- maxFailedPasswordAttemptsWarning .isChecked =
58
- prefs.isMaxFailedPasswordAttemptsWarningChecked
47
+ maxFailedPasswordAttemptsDefaultApi .isChecked =
48
+ prefs.isMaxFailedPasswordAttemptsDefaultApiChecked
59
49
val canChangeUsbDataSignaling = Build .VERSION .SDK_INT >= Build .VERSION_CODES .S &&
60
50
admin.canUsbDataSignalingBeDisabled() &&
61
51
admin.isDeviceOwner()
@@ -69,21 +59,17 @@ class MainFragment : Fragment() {
69
59
70
60
private fun setup () = binding.apply {
71
61
maxFailedPasswordAttempts.editText?.doAfterTextChanged {
72
- val i = it?.toString()?.toIntOrNull() ? : return @doAfterTextChanged
73
- prefs.maxFailedPasswordAttempts = i
74
- if (prefs.isMaxFailedPasswordAttemptsWarningChecked)
75
- try { admin.setMaximumFailedPasswordsForWipe(i) } catch (exc: SecurityException ) {}
62
+ prefs.maxFailedPasswordAttempts = it?.toString()?.toIntOrNull() ? :
63
+ return @doAfterTextChanged
64
+ setMaximumFailedPasswordAttempts()
76
65
}
77
- maxFailedPasswordAttemptsWarning.setOnCheckedChangeListener { _, isChecked ->
78
- prefs.isMaxFailedPasswordAttemptsWarningChecked = isChecked
79
- try {
80
- admin.setMaximumFailedPasswordsForWipe(
81
- if (isChecked) prefs.maxFailedPasswordAttempts else 0 )
82
- } catch (exc: SecurityException ) {}
66
+ maxFailedPasswordAttemptsDefaultApi.setOnCheckedChangeListener { _, isChecked ->
67
+ prefs.isMaxFailedPasswordAttemptsDefaultApiChecked = isChecked
68
+ setMaximumFailedPasswordAttempts()
83
69
}
84
70
usbDataSignaling.setOnCheckedChangeListener { _, isChecked ->
85
71
if (Build .VERSION .SDK_INT < Build .VERSION_CODES .S ) return @setOnCheckedChangeListener
86
- try { admin.setUsbDataSignalingEnabled(isChecked) } catch (exc : Exception ) {
72
+ try { admin.setUsbDataSignalingEnabled(isChecked) } catch (_ : Exception ) {
87
73
Snackbar .make(
88
74
usbDataSignaling,
89
75
R .string.usb_data_signaling_change_failed_popup,
@@ -101,19 +87,14 @@ class MainFragment : Fragment() {
101
87
}
102
88
103
89
private fun setOn () {
104
- try {
105
- admin.setMaximumFailedPasswordsForWipe(
106
- if (prefs.isMaxFailedPasswordAttemptsWarningChecked) prefs.maxFailedPasswordAttempts
107
- else 0
108
- )
109
- } catch (exc: SecurityException ) {}
90
+ setMaximumFailedPasswordAttempts()
110
91
prefs.isEnabled = true
111
92
binding.toggle.isChecked = true
112
93
}
113
94
114
95
private fun setOff () {
115
96
prefs.isEnabled = false
116
- try { admin.remove() } catch (exc : SecurityException ) {}
97
+ try { admin.remove() } catch (_ : SecurityException ) {}
117
98
binding.toggle.isChecked = false
118
99
}
119
100
@@ -128,7 +109,11 @@ class MainFragment : Fragment() {
128
109
if (it.resultCode != Activity .RESULT_OK ) setOff() else setOn()
129
110
}
130
111
131
- private val prefsListener = SharedPreferences .OnSharedPreferenceChangeListener { _, key ->
132
- prefs.copyTo(prefsdb, key)
133
- }
112
+ private fun setMaximumFailedPasswordAttempts () = try {
113
+ admin.setMaximumFailedPasswordsForWipe(
114
+ if (prefs.isMaxFailedPasswordAttemptsDefaultApiChecked)
115
+ prefs.maxFailedPasswordAttempts
116
+ else 0
117
+ )
118
+ } catch (_: SecurityException ) {}
134
119
}
0 commit comments