diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
old mode 100644
new mode 100755
index 077193be3..4d9507ff7
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -22,6 +22,7 @@
+
diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.java b/app/src/main/java/com/hippo/ehviewer/Settings.java
old mode 100644
new mode 100755
index 12f20231e..f41b95bcf
--- a/app/src/main/java/com/hippo/ehviewer/Settings.java
+++ b/app/src/main/java/com/hippo/ehviewer/Settings.java
@@ -911,6 +911,16 @@ public class Settings {
putString(KEY_SECURITY, value);
}
+ public static final String KEY_ENABLE_FINGERPRINT = "enable_fingerprint";
+
+ public static boolean getEnableFingerprint() {
+ return getBoolean(KEY_ENABLE_FINGERPRINT, false);
+ }
+
+ public static void putEnableFingerprint(boolean value) {
+ putBoolean(KEY_ENABLE_FINGERPRINT, value);
+ }
+
public static final String KEY_READ_CACHE_SIZE = "read_cache_size";
public static final int DEFAULT_READ_CACHE_SIZE = 160;
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/SetSecurityActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/SetSecurityActivity.java
old mode 100644
new mode 100755
index ebc9b3954..e17ca11a0
--- a/app/src/main/java/com/hippo/ehviewer/ui/SetSecurityActivity.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/SetSecurityActivity.java
@@ -16,11 +16,13 @@
package com.hippo.ehviewer.ui;
+import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.view.MenuItem;
import android.view.View;
+import android.widget.CheckBox;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.Settings;
@@ -36,6 +38,8 @@ public class SetSecurityActivity extends ToolbarActivity implements View.OnClick
private View mCancel;
@Nullable
private View mSet;
+ @Nullable
+ private CheckBox mFingerprint;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -46,6 +50,7 @@ public class SetSecurityActivity extends ToolbarActivity implements View.OnClick
mPatternView = (LockPatternView) ViewUtils.$$(this, R.id.pattern_view);
mCancel = ViewUtils.$$(this, R.id.cancel);
mSet = ViewUtils.$$(this, R.id.set);
+ mFingerprint = (CheckBox) ViewUtils.$$(this, R.id.fingerprint_checkbox);
String pattern = Settings.getSecurity();
if (!TextUtils.isEmpty(pattern)) {
@@ -53,6 +58,16 @@ public class SetSecurityActivity extends ToolbarActivity implements View.OnClick
LockPatternUtils.stringToPattern(pattern));
}
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
+ FingerprintManager fingerprintManager = getSystemService(FingerprintManager.class);
+ // The line below prevents the false positive inspection from Android Studio
+ // noinspection ResourceType
+ if (fingerprintManager.hasEnrolledFingerprints()) {
+ mFingerprint.setVisibility(View.VISIBLE);
+ mFingerprint.setChecked(Settings.getEnableFingerprint());
+ }
+ }
+
mCancel.setOnClickListener(this);
mSet.setOnClickListener(this);
}
@@ -79,7 +94,7 @@ public class SetSecurityActivity extends ToolbarActivity implements View.OnClick
if (v == mCancel) {
finish();
} else if (v == mSet) {
- if (null != mPatternView) {
+ if (null != mPatternView && null != mFingerprint) {
String security;
if (mPatternView.getCellSize() <= 1) {
security = "";
@@ -87,6 +102,8 @@ public class SetSecurityActivity extends ToolbarActivity implements View.OnClick
security = mPatternView.getPatternString();
}
Settings.putSecurity(security);
+ Settings.putEnableFingerprint(mFingerprint.getVisibility() == View.VISIBLE &&
+ mFingerprint.isChecked() && !security.isEmpty());
}
finish();
}
diff --git a/app/src/main/res/layout-land/activity_set_security.xml b/app/src/main/res/layout-land/activity_set_security.xml
old mode 100644
new mode 100755
index 6f4b4e0bb..3ed310944
--- a/app/src/main/res/layout-land/activity_set_security.xml
+++ b/app/src/main/res/layout-land/activity_set_security.xml
@@ -40,6 +40,15 @@
android:layout_height="0dp"
android:layout_weight="1"/>
+
+
+
+
Set pattern protection
Draw a pattern to set pattern protection\nLeave blank to clear pattern protection
Set
+ Also allow unlock with fingerprint
Page %d