Skip to content

Commit e2506d7

Browse files
committed
Aggressive retry: interval option
1 parent 4b7a2ca commit e2506d7

File tree

7 files changed

+36
-10
lines changed

7 files changed

+36
-10
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
applicationId "com.ztc1997.fingerprint2sleep"
88
minSdkVersion 23
99
targetSdkVersion Integer.parseInt("$sdkVer")
10-
versionCode 35
11-
versionName "0.15.0"
10+
versionCode 36
11+
versionName "0.15.1"
1212
}
1313

1414
signingConfigs {

app/src/main/kotlin/com/ztc1997/fingerprint2sleep/activity/SettingsActivity.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class SettingsActivity : Activity() {
5050
const val PREF_AUTO_RETRY = "pref_auto_retry"
5151
const val PREF_AUTO_RETRY_BLACK_LIST = "pref_black_list"
5252
const val PREF_AGGRESSIVE_RETRY = "pref_aggressive_retry"
53+
const val PREF_AGGRESSIVE_RETRY_INTERVAL = "pref_aggressive_retry_interval"
5354
// const val PREF_DONATE = "pref_donate"
5455
const val PREF_SCREEN_OFF_METHOD = "pref_screen_off_method"
5556
const val PREF_CATEGORY_SINGLE_TAP = "pref_category_single_tap"
@@ -98,7 +99,7 @@ class SettingsActivity : Activity() {
9899
val PREF_KEYS_STRING = setOf(PREF_ACTION_SINGLE_TAP, PREF_ACTION_FAST_SWIPE,
99100
PREF_SCREEN_OFF_METHOD, PREF_ACTION_SINGLE_TAP_APP,
100101
PREF_ACTION_FAST_SWIPE_APP, PREF_ACTION_DOUBLE_TAP, PREF_ACTION_DOUBLE_TAP_APP,
101-
PREF_DOUBLE_TAP_INTERVAL)
102+
PREF_DOUBLE_TAP_INTERVAL, PREF_AGGRESSIVE_RETRY_INTERVAL)
102103

103104
val PREF_KEYS_STRING_SET = setOf(PREF_BLACK_LIST, PREF_AUTO_RETRY_BLACK_LIST)
104105

@@ -253,6 +254,7 @@ class SettingsActivity : Activity() {
253254

254255
val categoryDoubleTap by lazy { findPreference(PREF_CATEGORY_DOUBLE_TAP) as PreferenceCategory }
255256
val doubleTapInterval by lazy { findPreference(PREF_DOUBLE_TAP_INTERVAL) as ListPreference }
257+
val aggressiveRetryInterval by lazy { findPreference(PREF_AGGRESSIVE_RETRY_INTERVAL) as ListPreference }
256258
val actionDoubleTap by lazy { findPreference(PREF_ACTION_DOUBLE_TAP) as ListPreference }
257259
val actionDoubleTapApp by lazy { findPreference(PREF_ACTION_DOUBLE_TAP_APP) as AppPickerPreference }
258260

@@ -264,7 +266,7 @@ class SettingsActivity : Activity() {
264266
val licenses: Preference by lazy { findPreference(PREF_LICENSES) }
265267

266268
val listPreferences by lazy {
267-
arrayOf(actionSingleTap, doubleTapInterval, actionDoubleTap, screenOffMethod)
269+
arrayOf(actionSingleTap, doubleTapInterval, aggressiveRetryInterval, actionDoubleTap, screenOffMethod)
268270
}
269271

270272
private val loadAppsTask by lazy { LoadAppsTask() }

app/src/main/kotlin/com/ztc1997/fingerprint2sleep/service/FPQAService.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@ import android.hardware.display.DisplayManager
1414
import android.media.ImageReader
1515
import android.media.MediaScannerConnection
1616
import android.net.Uri
17-
import android.os.Build
18-
import android.os.CancellationSignal
19-
import android.os.Environment
20-
import android.os.IBinder
17+
import android.os.*
2118
import android.support.v4.app.NotificationCompat
2219
import android.support.v4.content.FileProvider
2320
import com.eightbitlab.rxbus.Bus
@@ -100,7 +97,8 @@ class FPQAService : Service() {
10097
Bus.send(IsScanningChangedEvent(value))
10198
}
10299
get() = field and (!defaultDPreference.getPrefBoolean(SettingsActivity.PREF_AGGRESSIVE_RETRY,
103-
false) or (System.currentTimeMillis() - lastRestartTime < 20 * 1000))
100+
false) or (System.currentTimeMillis() - lastRestartTime < defaultDPreference
101+
.getPrefString(SettingsActivity.PREF_AGGRESSIVE_RETRY_INTERVAL, "20000").toInt()))
104102

105103
var isError = false
106104
set(value) {
@@ -129,6 +127,8 @@ class FPQAService : Service() {
129127

130128
val authenticationCallback by lazy { Callback(quickActions) }
131129

130+
val handler = Handler()
131+
132132
val receiver = object : BroadcastReceiver() {
133133
override fun onReceive(context: Context?, intent: Intent?) {
134134
if (intent == null) return
@@ -245,7 +245,7 @@ class FPQAService : Service() {
245245
if (!isScanning) {
246246
isStarting = true
247247
fingerprintManager.authenticate(null, cancellationSignal, 0, authenticationCallback, null)
248-
isStarting = false
248+
handler.postDelayed({ isStarting = false }, 100)
249249
isScanning = true
250250
lastRestartTime = System.currentTimeMillis()
251251
}

app/src/main/res/values-zh/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@
6969
<string name="title_pref_aggressive_retry">激进重试</string>
7070
<string name="summary_pref_aggressive_retry">如果经常莫名失效,请尝试</string>
7171

72+
<string name="title_pref_aggressive_retry_interval">激进重试间隔时间</string>
73+
7274
<string name="title_pref_category_single_tap">单击</string>
7375

7476
<string name="title_pref_action_single_tap">单击操作</string>

app/src/main/res/values/arrays.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,16 @@
5454
<item>500</item>
5555
<item>750</item>
5656
</string-array>
57+
58+
<string-array name="entries_pref_aggressive_retry_interval" translatable="false">
59+
<item>10s</item>
60+
<item>20s</item>
61+
<item>30s</item>
62+
</string-array>
63+
64+
<string-array name="values_pref_aggressive_retry_interval" translatable="false">
65+
<item>10000</item>
66+
<item>20000</item>
67+
<item>30000</item>
68+
</string-array>
5769
</resources>

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171
<string name="title_pref_aggressive_retry">Aggressive retry</string>
7272
<string name="summary_pref_aggressive_retry">If it is often not work inexplicable, please try this</string>
7373

74+
<string name="title_pref_aggressive_retry_interval">Aggressive retry interval time</string>
75+
7476
<string name="title_pref_category_single_tap">Single tap</string>
7577

7678
<string name="title_pref_action_single_tap">Single tap action</string>

app/src/main/res/xml/pref_settings.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@
5757
android:summary="@string/summary_pref_aggressive_retry"
5858
android:title="@string/title_pref_aggressive_retry" />
5959

60+
<ListPreference
61+
android:defaultValue="20000"
62+
android:dependency="pref_aggressive_retry"
63+
android:entries="@array/entries_pref_aggressive_retry_interval"
64+
android:entryValues="@array/values_pref_aggressive_retry_interval"
65+
android:key="pref_aggressive_retry_interval"
66+
android:title="@string/title_pref_aggressive_retry_interval" />
67+
6068
</PreferenceCategory>
6169

6270
</PreferenceScreen>

0 commit comments

Comments
 (0)