Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
eritpchy committed Nov 18, 2023
1 parent f5d3663 commit 5e2c236
Show file tree
Hide file tree
Showing 18 changed files with 643 additions and 462 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ android {
minSdkVersion 14
targetSdkVersion 33
versionCode 30
versionName "4.99.7"
versionName "4.99.6"
buildConfigField "String", "APP_PRODUCT_NAME", "\"FingerprintPay\""
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import com.surcumference.fingerprint.util.Umeng;
import com.surcumference.fingerprint.util.bugfixer.TagManagerBugFixer;
import com.surcumference.fingerprint.view.DonateView;
import com.surcumference.fingerprint.view.SettingsView;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -104,7 +103,6 @@ public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
protected void onResume() {
super.onResume();
Umeng.onResume(this);
new SettingsView(this).showInDialog();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,27 @@
import android.widget.ListView;
import android.widget.TextView;

import androidx.annotation.NonNull;

import com.hjq.toast.Toaster;
import com.surcumference.fingerprint.BuildConfig;
import com.surcumference.fingerprint.Lang;
import com.surcumference.fingerprint.R;
import com.surcumference.fingerprint.bean.DigitPasswordKeyPadInfo;
import com.surcumference.fingerprint.plugin.inf.IAppPlugin;
import com.surcumference.fingerprint.plugin.inf.OnFingerprintVerificationOKListener;
import com.surcumference.fingerprint.util.AESUtils;
import com.surcumference.fingerprint.util.ActivityViewObserver;
import com.surcumference.fingerprint.util.AlipayVersionControl;
import com.surcumference.fingerprint.util.ApplicationUtils;
import com.surcumference.fingerprint.util.BizBiometricIdentify;
import com.surcumference.fingerprint.util.BlackListUtils;
import com.surcumference.fingerprint.util.Config;
import com.surcumference.fingerprint.util.DpUtils;
import com.surcumference.fingerprint.util.ImageUtils;
import com.surcumference.fingerprint.util.StyleUtils;
import com.surcumference.fingerprint.util.Task;
import com.surcumference.fingerprint.util.ViewUtils;
import com.surcumference.fingerprint.util.XFingerprintIdentify;
import com.surcumference.fingerprint.util.XBiometricIdentify;
import com.surcumference.fingerprint.util.drawable.XDrawable;
import com.surcumference.fingerprint.util.log.L;
import com.surcumference.fingerprint.view.AlipayPayView;
Expand All @@ -48,16 +50,14 @@
import java.util.ArrayList;
import java.util.List;

import javax.crypto.Cipher;

public class AlipayBasePlugin implements IAppPlugin {


private AlertDialog mFingerPrintAlertDialog;
private boolean mPwdActivityDontShowFlag;
private int mPwdActivityReShowDelayTimeMsec;

private XFingerprintIdentify mFingerprintIdentify;
private XBiometricIdentify mFingerprintIdentify;
private Activity mCurrentActivity;

private boolean mIsViewTreeObserverFirst;
Expand Down Expand Up @@ -198,13 +198,13 @@ public void onActivityResumed(Activity activity) {
}
}

public void initFingerPrintLock(final Context context, AlertDialog dialog,
public void initFingerPrintLock(final Context context ,AlertDialog dialog, String passwordEncrypted,
OnFingerprintVerificationOKListener onSuccessUnlockCallback) {
mFingerprintIdentify = new XFingerprintIdentify(context)
.startIdentify(new XFingerprintIdentify.IdentifyListener() {
mFingerprintIdentify = new BizBiometricIdentify(context)
.decryptPasscode(passwordEncrypted, new BizBiometricIdentify.IdentifyListener() {

@Override
public void onInited(XFingerprintIdentify identify) {
public void onInited(BizBiometricIdentify identify) {
super.onInited(identify);
if (identify.isUsingBiometricApi()) {
ViewUtils.setAlpha(dialog, 0);
Expand All @@ -213,13 +213,13 @@ public void onInited(XFingerprintIdentify identify) {
}

@Override
public void onSucceed(XFingerprintIdentify target, Cipher cipher) {
super.onSucceed(target, cipher);
onSuccessUnlockCallback.onFingerprintVerificationOK(cipher);
public void onDecryptionSuccess(BizBiometricIdentify identify, @NonNull String decryptedContent) {
super.onDecryptionSuccess(identify, decryptedContent);
onSuccessUnlockCallback.onFingerprintVerificationOK(decryptedContent);
}

@Override
public void onFailed(XFingerprintIdentify target, FingerprintIdentifyFailInfo failInfo) {
public void onFailed(BizBiometricIdentify target, FingerprintIdentifyFailInfo failInfo) {
super.onFailed(target, failInfo);
if (dialog != null) {
ViewUtils.setAlpha(dialog, 1);
Expand Down Expand Up @@ -259,14 +259,8 @@ public boolean showFingerPrintDialog(final Activity activity) {
clickDigitPasswordWidget(activity);
AlipayPayView alipayPayView = new AlipayPayView(context)
.withOnShowListener((target) -> {
initFingerPrintLock(context, target.getDialog(), (cipher) -> {
initFingerPrintLock(context, target.getDialog(), passwordEncrypted, (password) -> {
BlackListUtils.applyIfNeeded(context);
String password = AESUtils.decrypt(cipher, passwordEncrypted);
if (TextUtils.isEmpty(password)) {
Toaster.showShort(Lang.getString(R.id.toast_fingerprint_password_dec_failed));
return;
}

Runnable onCompleteRunnable = () -> {
mPwdActivityReShowDelayTimeMsec = 1000;
AlertDialog dialog = mFingerPrintAlertDialog;
Expand Down Expand Up @@ -309,7 +303,7 @@ public boolean showFingerPrintDialog(final Activity activity) {
target.getDialog().dismiss();
activity.onBackPressed();
}).withOnDismissListener(v -> {
XFingerprintIdentify fingerprintIdentify = mFingerprintIdentify;
XBiometricIdentify fingerprintIdentify = mFingerprintIdentify;
if (fingerprintIdentify != null) {
fingerprintIdentify.cancelIdentify();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
import android.widget.LinearLayout;
import android.widget.TextView;

import androidx.annotation.NonNull;

import com.hjq.toast.Toaster;
import com.surcumference.fingerprint.BuildConfig;
import com.surcumference.fingerprint.Constant;
Expand All @@ -29,8 +31,8 @@
import com.surcumference.fingerprint.plugin.inf.IAppPlugin;
import com.surcumference.fingerprint.plugin.inf.IMockCurrentUser;
import com.surcumference.fingerprint.plugin.inf.OnFingerprintVerificationOKListener;
import com.surcumference.fingerprint.util.AESUtils;
import com.surcumference.fingerprint.util.ApplicationUtils;
import com.surcumference.fingerprint.util.BizBiometricIdentify;
import com.surcumference.fingerprint.util.Config;
import com.surcumference.fingerprint.util.DpUtils;
import com.surcumference.fingerprint.util.ImageUtils;
Expand All @@ -39,7 +41,7 @@
import com.surcumference.fingerprint.util.StyleUtils;
import com.surcumference.fingerprint.util.Task;
import com.surcumference.fingerprint.util.ViewUtils;
import com.surcumference.fingerprint.util.XFingerprintIdentify;
import com.surcumference.fingerprint.util.XBiometricIdentify;
import com.surcumference.fingerprint.util.log.L;
import com.surcumference.fingerprint.util.paydialog.QQPayDialog;
import com.surcumference.fingerprint.view.SettingsView;
Expand All @@ -49,8 +51,6 @@
import java.util.List;
import java.util.WeakHashMap;

import javax.crypto.Cipher;

public class QQBasePlugin implements IAppPlugin, IMockCurrentUser {

private static final String TAG_FINGER_PRINT_IMAGE = "FINGER_PRINT_IMAGE";
Expand All @@ -59,7 +59,7 @@ public class QQBasePlugin implements IAppPlugin, IMockCurrentUser {
private static final String TAG_ACTIVITY_PAY = "TAG_ACTIVITY_PAY";
private static final String TAG_ACTIVITY_FIRST_RESUME = "TAG_ACTIVITY_FIRST_RESUME";

private XFingerprintIdentify mFingerprintIdentify;
private XBiometricIdentify mFingerprintIdentify;
private LinearLayout mMenuItemLLayout;

protected boolean mMockCurrentUser = false;
Expand Down Expand Up @@ -273,12 +273,7 @@ private synchronized void initPayActivity(Activity activity, int retryDelay, int
if (payDialog.withdrawTitleTextView != null) {
payDialog.withdrawTitleTextView.setText("使用指纹验证身份");
}
initFingerPrintLock(context, (cipher) -> { // success
String password = AESUtils.decrypt(cipher, passwordEncrypted);
if (TextUtils.isEmpty(password)) {
Toaster.showShort(Lang.getString(R.id.toast_fingerprint_password_dec_failed));
return;
}
initFingerPrintLock(context, passwordEncrypted, (password) -> { // success
payDialog.inputEditText.setText(password);
if (longPassword) {
payDialog.okButton.performClick();
Expand Down Expand Up @@ -388,20 +383,22 @@ private View prepareFingerprintView(Context context) {
return linearLayout;
}

public void initFingerPrintLock(final Context context, OnFingerprintVerificationOKListener onSuccessUnlockCallback, final Runnable onFailureUnlockCallback) {
public void initFingerPrintLock(final Context context, String passwordEncrypted,
OnFingerprintVerificationOKListener onSuccessUnlockCallback, final Runnable onFailureUnlockCallback) {
L.d("initFingerPrintLock");
cancelFingerprintIdentify();
mFingerprintIdentify = new XFingerprintIdentify(context)
mFingerprintIdentify = new BizBiometricIdentify(context)
.withMockCurrentUserCallback(this)
.startIdentify(new XFingerprintIdentify.IdentifyListener() {
.decryptPasscode(passwordEncrypted, new BizBiometricIdentify.IdentifyListener() {

@Override
public void onSucceed(XFingerprintIdentify target, Cipher cipher) {
super.onSucceed(target, cipher);
onSuccessUnlockCallback.onFingerprintVerificationOK(cipher);
public void onDecryptionSuccess(BizBiometricIdentify identify, @NonNull String decryptedContent) {
super.onDecryptionSuccess(identify, decryptedContent);
onSuccessUnlockCallback.onFingerprintVerificationOK(decryptedContent);
}

@Override
public void onFailed(XFingerprintIdentify target, FingerprintIdentifyFailInfo failInfo) {
public void onFailed(BizBiometricIdentify target, FingerprintIdentifyFailInfo failInfo) {
super.onFailed(target, failInfo);
onFailureUnlockCallback.run();
}
Expand All @@ -410,7 +407,7 @@ public void onFailed(XFingerprintIdentify target, FingerprintIdentifyFailInfo fa

private void cancelFingerprintIdentify() {
L.d("cancelFingerprintIdentify");
XFingerprintIdentify fingerprintIdentify = mFingerprintIdentify;
XBiometricIdentify fingerprintIdentify = mFingerprintIdentify;
if (fingerprintIdentify == null) {
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,25 @@
import android.widget.LinearLayout;
import android.widget.TextView;

import androidx.annotation.NonNull;

import com.hjq.toast.Toaster;
import com.surcumference.fingerprint.BuildConfig;
import com.surcumference.fingerprint.Lang;
import com.surcumference.fingerprint.R;
import com.surcumference.fingerprint.plugin.inf.IAppPlugin;
import com.surcumference.fingerprint.plugin.inf.IMockCurrentUser;
import com.surcumference.fingerprint.plugin.inf.OnFingerprintVerificationOKListener;
import com.surcumference.fingerprint.util.AESUtils;
import com.surcumference.fingerprint.util.ApplicationUtils;
import com.surcumference.fingerprint.util.BizBiometricIdentify;
import com.surcumference.fingerprint.util.Config;
import com.surcumference.fingerprint.util.DpUtils;
import com.surcumference.fingerprint.util.KeyboardUtils;
import com.surcumference.fingerprint.util.QQUtils;
import com.surcumference.fingerprint.util.StyleUtils;
import com.surcumference.fingerprint.util.Task;
import com.surcumference.fingerprint.util.ViewUtils;
import com.surcumference.fingerprint.util.XFingerprintIdentify;
import com.surcumference.fingerprint.util.XBiometricIdentify;
import com.surcumference.fingerprint.util.drawable.XDrawable;
import com.surcumference.fingerprint.util.log.L;
import com.surcumference.fingerprint.util.paydialog.QQPayDialog;
Expand All @@ -43,8 +45,6 @@
import java.util.List;
import java.util.WeakHashMap;

import javax.crypto.Cipher;

public class QQBasePlugin_8_2_11 implements IAppPlugin, IMockCurrentUser {

private static final String TAG_FINGER_PRINT_IMAGE = "FINGER_PRINT_IMAGE";
Expand All @@ -56,7 +56,7 @@ public class QQBasePlugin_8_2_11 implements IAppPlugin, IMockCurrentUser {
protected static final int QQ_VERSION_CODE_7_3_0 = 750;
protected static final int QQ_VERSION_CODE_8_8_83 = 2654;

private XFingerprintIdentify mFingerprintIdentify;
private XBiometricIdentify mFingerprintIdentify;
private LinearLayout mMenuItemLLayout;

protected boolean mMockCurrentUser = false;
Expand Down Expand Up @@ -297,12 +297,7 @@ private synchronized void initPayActivity(Activity activity, int retryDelay, int
}

mCurrentPayActivity = activity;
initFingerPrintLock(context, (cipher) -> { // success
String password = AESUtils.decrypt(cipher, passwordEncrypted);
if (TextUtils.isEmpty(password)) {
Toaster.showShort(Lang.getString(R.id.toast_fingerprint_password_dec_failed));
return;
}
initFingerPrintLock(context, passwordEncrypted, (password) -> { // success
payDialog.inputEditText.setText(password);
if (longPassword) {
payDialog.okButton.performClick();
Expand Down Expand Up @@ -370,20 +365,22 @@ private View prepareFingerprintView(Context context) {
return textView;
}

public void initFingerPrintLock(final Context context, OnFingerprintVerificationOKListener onSuccessUnlockCallback, final Runnable onFailureUnlockCallback) {
public void initFingerPrintLock(final Context context, String passwordEncrypted,
OnFingerprintVerificationOKListener onSuccessUnlockCallback, final Runnable onFailureUnlockCallback) {
L.d("initFingerPrintLock");
cancelFingerprintIdentify();
mFingerprintIdentify = new XFingerprintIdentify(context)
mFingerprintIdentify = new BizBiometricIdentify(context)
.withMockCurrentUserCallback(this)
.startIdentify(new XFingerprintIdentify.IdentifyListener() {
.decryptPasscode(passwordEncrypted, new BizBiometricIdentify.IdentifyListener() {

@Override
public void onSucceed(XFingerprintIdentify target, Cipher cipher) {
super.onSucceed(target, cipher);
onSuccessUnlockCallback.onFingerprintVerificationOK(cipher);
public void onDecryptionSuccess(BizBiometricIdentify identify, @NonNull String decryptedContent) {
super.onDecryptionSuccess(identify, decryptedContent);
onSuccessUnlockCallback.onFingerprintVerificationOK(decryptedContent);
}

@Override
public void onFailed(XFingerprintIdentify target, FingerprintIdentifyFailInfo failInfo) {
public void onFailed(BizBiometricIdentify target, FingerprintIdentifyFailInfo failInfo) {
super.onFailed(target, failInfo);
onFailureUnlockCallback.run();
}
Expand All @@ -392,7 +389,7 @@ public void onFailed(XFingerprintIdentify target, FingerprintIdentifyFailInfo fa

private void cancelFingerprintIdentify() {
L.d("cancelFingerprintIdentify");
XFingerprintIdentify fingerprintIdentify = mFingerprintIdentify;
XBiometricIdentify fingerprintIdentify = mFingerprintIdentify;
if (fingerprintIdentify == null) {
return;
}
Expand All @@ -404,7 +401,7 @@ private void cancelFingerprintIdentify() {

private void resumeFingerprintIdentify() {
L.d("resumeFingerprintIdentify");
XFingerprintIdentify fingerprintIdentify = mFingerprintIdentify;
XBiometricIdentify fingerprintIdentify = mFingerprintIdentify;
if (fingerprintIdentify == null) {
return;
}
Expand Down
Loading

0 comments on commit 5e2c236

Please sign in to comment.