Skip to content

Commit 63f9af4

Browse files
authored
Merge pull request #441 from qwertyfinger/feature/biometric-lock-api30
Add support for locking with biometric ID
2 parents 9542b19 + c72b7bd commit 63f9af4

File tree

5 files changed

+93
-92
lines changed

5 files changed

+93
-92
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ android {
5656
}
5757

5858
dependencies {
59-
implementation 'com.github.SimpleMobileTools:Simple-Commons:c45f0d662a'
59+
implementation 'com.github.SimpleMobileTools:Simple-Commons:79c625cbe0'
6060
implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
6161
implementation 'androidx.documentfile:documentfile:1.0.1'
6262

app/src/main/AndroidManifest.xml

Lines changed: 56 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest
3-
xmlns:android="http://schemas.android.com/apk/res/android"
4-
xmlns:tools="http://schemas.android.com/tools"
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
53
package="com.simplemobiletools.notes.pro"
64
android:installLocation="auto">
75

86
<uses-permission
97
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
108
android:maxSdkVersion="28" />
119

12-
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
13-
1410
<uses-feature
1511
android:name="android.hardware.faketouch"
16-
android:required="false"/>
12+
android:required="false" />
1713

1814
<application
1915
android:name=".App"
@@ -27,22 +23,22 @@
2723
<activity
2824
android:name=".activities.SplashActivity"
2925
android:launchMode="singleTask"
30-
android:theme="@style/SplashTheme"/>
26+
android:theme="@style/SplashTheme" />
3127

3228
<activity
3329
android:name=".activities.MainActivity"
3430
android:launchMode="singleTask">
3531

3632
<intent-filter>
37-
<action android:name="android.intent.action.SEND"/>
38-
<category android:name="android.intent.category.DEFAULT"/>
39-
<data android:mimeType="text/*"/>
33+
<action android:name="android.intent.action.SEND" />
34+
<category android:name="android.intent.category.DEFAULT" />
35+
<data android:mimeType="text/*" />
4036
</intent-filter>
4137

4238
<intent-filter>
43-
<action android:name="android.intent.action.VIEW"/>
44-
<category android:name="android.intent.category.DEFAULT"/>
45-
<data android:mimeType="text/*"/>
39+
<action android:name="android.intent.action.VIEW" />
40+
<category android:name="android.intent.category.DEFAULT" />
41+
<data android:mimeType="text/*" />
4642
</intent-filter>
4743
</activity>
4844

@@ -51,49 +47,49 @@
5147
android:screenOrientation="portrait"
5248
android:theme="@style/MyWidgetConfigTheme">
5349
<intent-filter>
54-
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
50+
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
5551
</intent-filter>
5652
</activity>
5753

5854
<activity
5955
android:name="com.simplemobiletools.commons.activities.AboutActivity"
6056
android:label="@string/about"
61-
android:parentActivityName=".activities.MainActivity"/>
57+
android:parentActivityName=".activities.MainActivity" />
6258

6359
<activity
6460
android:name="com.simplemobiletools.commons.activities.CustomizationActivity"
6561
android:label="@string/customize_colors"
66-
android:parentActivityName=".activities.SettingsActivity"/>
62+
android:parentActivityName=".activities.SettingsActivity" />
6763

6864
<activity
6965
android:name="com.simplemobiletools.commons.activities.LicenseActivity"
7066
android:label="@string/third_party_licences"
71-
android:parentActivityName="com.simplemobiletools.commons.activities.AboutActivity"/>
67+
android:parentActivityName="com.simplemobiletools.commons.activities.AboutActivity" />
7268

7369
<activity
7470
android:name="com.simplemobiletools.commons.activities.FAQActivity"
7571
android:label="@string/frequently_asked_questions"
76-
android:parentActivityName="com.simplemobiletools.commons.activities.AboutActivity"/>
72+
android:parentActivityName="com.simplemobiletools.commons.activities.AboutActivity" />
7773

7874
<activity
7975
android:name=".activities.SettingsActivity"
8076
android:label="@string/settings"
81-
android:parentActivityName=".activities.MainActivity"/>
77+
android:parentActivityName=".activities.MainActivity" />
8278

8379
<service
8480
android:name=".services.WidgetService"
85-
android:permission="android.permission.BIND_REMOTEVIEWS"/>
81+
android:permission="android.permission.BIND_REMOTEVIEWS" />
8682

8783
<receiver
8884
android:name=".helpers.MyWidgetProvider"
8985
android:icon="@drawable/img_widget_preview">
9086
<intent-filter>
91-
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
87+
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
9288
</intent-filter>
9389

9490
<meta-data
9591
android:name="android.appwidget.provider"
96-
android:resource="@xml/widget_info"/>
92+
android:resource="@xml/widget_info" />
9793
</receiver>
9894

9995
<activity-alias
@@ -104,8 +100,8 @@
104100
android:targetActivity=".activities.SplashActivity">
105101

106102
<intent-filter>
107-
<action android:name="android.intent.action.MAIN"/>
108-
<category android:name="android.intent.category.LAUNCHER"/>
103+
<action android:name="android.intent.action.MAIN" />
104+
<category android:name="android.intent.category.LAUNCHER" />
109105
</intent-filter>
110106
</activity-alias>
111107

@@ -117,8 +113,8 @@
117113
android:targetActivity=".activities.SplashActivity">
118114

119115
<intent-filter>
120-
<action android:name="android.intent.action.MAIN"/>
121-
<category android:name="android.intent.category.LAUNCHER"/>
116+
<action android:name="android.intent.action.MAIN" />
117+
<category android:name="android.intent.category.LAUNCHER" />
122118
</intent-filter>
123119
</activity-alias>
124120

@@ -130,8 +126,8 @@
130126
android:targetActivity=".activities.SplashActivity">
131127

132128
<intent-filter>
133-
<action android:name="android.intent.action.MAIN"/>
134-
<category android:name="android.intent.category.LAUNCHER"/>
129+
<action android:name="android.intent.action.MAIN" />
130+
<category android:name="android.intent.category.LAUNCHER" />
135131
</intent-filter>
136132
</activity-alias>
137133

@@ -143,8 +139,8 @@
143139
android:targetActivity=".activities.SplashActivity">
144140

145141
<intent-filter>
146-
<action android:name="android.intent.action.MAIN"/>
147-
<category android:name="android.intent.category.LAUNCHER"/>
142+
<action android:name="android.intent.action.MAIN" />
143+
<category android:name="android.intent.category.LAUNCHER" />
148144
</intent-filter>
149145
</activity-alias>
150146

@@ -156,8 +152,8 @@
156152
android:targetActivity=".activities.SplashActivity">
157153

158154
<intent-filter>
159-
<action android:name="android.intent.action.MAIN"/>
160-
<category android:name="android.intent.category.LAUNCHER"/>
155+
<action android:name="android.intent.action.MAIN" />
156+
<category android:name="android.intent.category.LAUNCHER" />
161157
</intent-filter>
162158
</activity-alias>
163159

@@ -169,8 +165,8 @@
169165
android:targetActivity=".activities.SplashActivity">
170166

171167
<intent-filter>
172-
<action android:name="android.intent.action.MAIN"/>
173-
<category android:name="android.intent.category.LAUNCHER"/>
168+
<action android:name="android.intent.action.MAIN" />
169+
<category android:name="android.intent.category.LAUNCHER" />
174170
</intent-filter>
175171
</activity-alias>
176172

@@ -182,8 +178,8 @@
182178
android:targetActivity=".activities.SplashActivity">
183179

184180
<intent-filter>
185-
<action android:name="android.intent.action.MAIN"/>
186-
<category android:name="android.intent.category.LAUNCHER"/>
181+
<action android:name="android.intent.action.MAIN" />
182+
<category android:name="android.intent.category.LAUNCHER" />
187183
</intent-filter>
188184
</activity-alias>
189185

@@ -195,8 +191,8 @@
195191
android:targetActivity=".activities.SplashActivity">
196192

197193
<intent-filter>
198-
<action android:name="android.intent.action.MAIN"/>
199-
<category android:name="android.intent.category.LAUNCHER"/>
194+
<action android:name="android.intent.action.MAIN" />
195+
<category android:name="android.intent.category.LAUNCHER" />
200196
</intent-filter>
201197
</activity-alias>
202198

@@ -208,8 +204,8 @@
208204
android:targetActivity=".activities.SplashActivity">
209205

210206
<intent-filter>
211-
<action android:name="android.intent.action.MAIN"/>
212-
<category android:name="android.intent.category.LAUNCHER"/>
207+
<action android:name="android.intent.action.MAIN" />
208+
<category android:name="android.intent.category.LAUNCHER" />
213209
</intent-filter>
214210
</activity-alias>
215211

@@ -221,8 +217,8 @@
221217
android:targetActivity=".activities.SplashActivity">
222218

223219
<intent-filter>
224-
<action android:name="android.intent.action.MAIN"/>
225-
<category android:name="android.intent.category.LAUNCHER"/>
220+
<action android:name="android.intent.action.MAIN" />
221+
<category android:name="android.intent.category.LAUNCHER" />
226222
</intent-filter>
227223
</activity-alias>
228224

@@ -234,8 +230,8 @@
234230
android:targetActivity=".activities.SplashActivity">
235231

236232
<intent-filter>
237-
<action android:name="android.intent.action.MAIN"/>
238-
<category android:name="android.intent.category.LAUNCHER"/>
233+
<action android:name="android.intent.action.MAIN" />
234+
<category android:name="android.intent.category.LAUNCHER" />
239235
</intent-filter>
240236
</activity-alias>
241237

@@ -247,8 +243,8 @@
247243
android:targetActivity=".activities.SplashActivity">
248244

249245
<intent-filter>
250-
<action android:name="android.intent.action.MAIN"/>
251-
<category android:name="android.intent.category.LAUNCHER"/>
246+
<action android:name="android.intent.action.MAIN" />
247+
<category android:name="android.intent.category.LAUNCHER" />
252248
</intent-filter>
253249
</activity-alias>
254250

@@ -260,8 +256,8 @@
260256
android:targetActivity=".activities.SplashActivity">
261257

262258
<intent-filter>
263-
<action android:name="android.intent.action.MAIN"/>
264-
<category android:name="android.intent.category.LAUNCHER"/>
259+
<action android:name="android.intent.action.MAIN" />
260+
<category android:name="android.intent.category.LAUNCHER" />
265261
</intent-filter>
266262
</activity-alias>
267263

@@ -273,8 +269,8 @@
273269
android:targetActivity=".activities.SplashActivity">
274270

275271
<intent-filter>
276-
<action android:name="android.intent.action.MAIN"/>
277-
<category android:name="android.intent.category.LAUNCHER"/>
272+
<action android:name="android.intent.action.MAIN" />
273+
<category android:name="android.intent.category.LAUNCHER" />
278274
</intent-filter>
279275
</activity-alias>
280276

@@ -285,8 +281,8 @@
285281
android:roundIcon="@mipmap/ic_launcher"
286282
android:targetActivity=".activities.SplashActivity">
287283
<intent-filter>
288-
<action android:name="android.intent.action.MAIN"/>
289-
<category android:name="android.intent.category.LAUNCHER"/>
284+
<action android:name="android.intent.action.MAIN" />
285+
<category android:name="android.intent.category.LAUNCHER" />
290286
</intent-filter>
291287
</activity-alias>
292288

@@ -298,8 +294,8 @@
298294
android:targetActivity=".activities.SplashActivity">
299295

300296
<intent-filter>
301-
<action android:name="android.intent.action.MAIN"/>
302-
<category android:name="android.intent.category.LAUNCHER"/>
297+
<action android:name="android.intent.action.MAIN" />
298+
<category android:name="android.intent.category.LAUNCHER" />
303299
</intent-filter>
304300
</activity-alias>
305301

@@ -311,8 +307,8 @@
311307
android:targetActivity=".activities.SplashActivity">
312308

313309
<intent-filter>
314-
<action android:name="android.intent.action.MAIN"/>
315-
<category android:name="android.intent.category.LAUNCHER"/>
310+
<action android:name="android.intent.action.MAIN" />
311+
<category android:name="android.intent.category.LAUNCHER" />
316312
</intent-filter>
317313
</activity-alias>
318314

@@ -324,8 +320,8 @@
324320
android:targetActivity=".activities.SplashActivity">
325321

326322
<intent-filter>
327-
<action android:name="android.intent.action.MAIN"/>
328-
<category android:name="android.intent.category.LAUNCHER"/>
323+
<action android:name="android.intent.action.MAIN" />
324+
<category android:name="android.intent.category.LAUNCHER" />
329325
</intent-filter>
330326
</activity-alias>
331327

@@ -337,8 +333,8 @@
337333
android:targetActivity=".activities.SplashActivity">
338334

339335
<intent-filter>
340-
<action android:name="android.intent.action.MAIN"/>
341-
<category android:name="android.intent.category.LAUNCHER"/>
336+
<action android:name="android.intent.action.MAIN" />
337+
<category android:name="android.intent.category.LAUNCHER" />
342338
</intent-filter>
343339
</activity-alias>
344340
</application>

app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/MainActivity.kt

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ class MainActivity : SimpleActivity() {
8383

8484
initViewPager(intent.getLongExtra(OPEN_NOTE_ID, -1L))
8585
pager_title_strip.setTextSize(TypedValue.COMPLEX_UNIT_PX, getPercentageFontSize())
86-
pager_title_strip.layoutParams.height = (pager_title_strip.height + resources.getDimension(R.dimen.activity_margin) * 2 * (config.fontSizePercentage / 100f)).toInt()
86+
pager_title_strip.layoutParams.height =
87+
(pager_title_strip.height + resources.getDimension(R.dimen.activity_margin) * 2 * (config.fontSizePercentage / 100f)).toInt()
8788
checkWhatsNewDialog()
8889
checkIntents(intent)
8990

@@ -1080,18 +1081,22 @@ class MainActivity : SimpleActivity() {
10801081
}
10811082

10821083
private fun unlockNote() {
1083-
SecurityDialog(this, mCurrentNote.protectionHash, mCurrentNote.protectionType) { hash, type, success ->
1084-
if (success) {
1085-
mCurrentNote.protectionHash = ""
1086-
mCurrentNote.protectionType = PROTECTION_NONE
1087-
NotesHelper(this).insertOrUpdateNote(mCurrentNote) {
1088-
getCurrentFragment()?.apply {
1089-
shouldShowLockedContent = true
1090-
checkLockState()
1091-
}
1092-
invalidateOptionsMenu()
1093-
}
1084+
performSecurityCheck(
1085+
protectionType = mCurrentNote.protectionType,
1086+
requiredHash = mCurrentNote.protectionHash,
1087+
successCallback = { _, _ -> removeProtection() }
1088+
)
1089+
}
1090+
1091+
private fun removeProtection() {
1092+
mCurrentNote.protectionHash = ""
1093+
mCurrentNote.protectionType = PROTECTION_NONE
1094+
NotesHelper(this).insertOrUpdateNote(mCurrentNote) {
1095+
getCurrentFragment()?.apply {
1096+
shouldShowLockedContent = true
1097+
checkLockState()
10941098
}
1099+
invalidateOptionsMenu()
10951100
}
10961101
}
10971102

0 commit comments

Comments
 (0)