Skip to content

Commit 27e1708

Browse files
committed
* 修复支付宝、淘宝6位密码输入失败
1 parent 3d51fd4 commit 27e1708

File tree

2 files changed

+16
-17
lines changed

2 files changed

+16
-17
lines changed

app/src/main/java/com/surcumference/fingerprint/plugin/AlipayBasePlugin.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.surcumference.fingerprint.util.drawable.XDrawable;
3434
import com.surcumference.fingerprint.util.log.L;
3535
import com.surcumference.fingerprint.view.AlipayPayView;
36+
import com.surcumference.fingerprint.view.DialogFrameLayout;
3637
import com.surcumference.fingerprint.view.SettingsView;
3738
import com.wei.android.lib.fingerprintidentify.FingerprintIdentify;
3839
import com.wei.android.lib.fingerprintidentify.base.BaseFingerprint;
@@ -113,8 +114,9 @@ protected void onActivityCreated(Activity activity) {
113114
}
114115
activity.getWindow().getDecorView().setAlpha(0);
115116
Task.onMain(1500, () -> {
116-
final String modulePackageName = "com.alipay.android.phone.safepaybase";
117-
View key1View = ViewUtils.findViewByName(activity, modulePackageName, "key_num_1");
117+
int versionCode = getAlipayVersionCode(activity);
118+
AlipayVersionControl.DigitPasswordKeyPad digitPasswordKeyPad = AlipayVersionControl.getDigitPasswordKeyPad(versionCode);
119+
View key1View = ViewUtils.findViewByName(activity, digitPasswordKeyPad.modulePackageName, digitPasswordKeyPad.key1);
118120
if (key1View != null) {
119121
showFingerPrintDialog(activity);
120122
return;
@@ -180,8 +182,6 @@ public void showFingerPrintDialog(final Activity activity) {
180182
try {
181183
if (getAlipayVersionCode(activity) >= 224) {
182184
if (activity.getClass().getName().contains(".MspContainerActivity")) {
183-
ViewUtils.recursiveLoopChildren(activity.getWindow().getDecorView());
184-
185185
View payTextView = ViewUtils.findViewByText(activity.getWindow().getDecorView(), "支付宝支付密码", "支付寶支付密碼", "Alipay Payment Password");
186186
L.d("payTextView", payTextView);
187187
if (payTextView == null) {
@@ -238,7 +238,7 @@ public void showFingerPrintDialog(final Activity activity) {
238238
}
239239
onCompleteRunnable.run();
240240
});
241-
AlertDialog dialog = new AlipayPayView(context).withOnCloseImageClickListener(v -> {
241+
DialogFrameLayout alipayPayView = new AlipayPayView(context).withOnCloseImageClickListener(v -> {
242242
mPwdActivityDontShowFlag = true;
243243
AlertDialog dialog1 = mFingerPrintAlertDialog;
244244
if (dialog1 != null) {
@@ -253,9 +253,8 @@ public void showFingerPrintDialog(final Activity activity) {
253253
if (!mPwdActivityDontShowFlag) {
254254
Task.onMain(mPwdActivityReShowDelayTimeMsec, () -> activity.getWindow().getDecorView().setAlpha(1));
255255
}
256-
}).showInDialog();
257-
mFingerPrintAlertDialog = dialog;
258-
Task.onMain(100, dialog::show);
256+
});
257+
Task.onMain(100, () -> mFingerPrintAlertDialog = alipayPayView.showInDialog());
259258
} catch (OutOfMemoryError e) {
260259
}
261260
}

app/src/main/java/com/surcumference/fingerprint/plugin/TaobaoBasePlugin.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.surcumference.fingerprint.util.drawable.XDrawable;
3434
import com.surcumference.fingerprint.util.log.L;
3535
import com.surcumference.fingerprint.view.AlipayPayView;
36+
import com.surcumference.fingerprint.view.DialogFrameLayout;
3637
import com.surcumference.fingerprint.view.SettingsView;
3738
import com.wei.android.lib.fingerprintidentify.FingerprintIdentify;
3839
import com.wei.android.lib.fingerprintidentify.base.BaseFingerprint;
@@ -115,8 +116,8 @@ public void onActivityResumed(Activity activity) {
115116
}
116117
activity.getWindow().getDecorView().setAlpha(0);
117118
Task.onMain(1500, () -> {
118-
final String modulePackageName = "com.taobao.taobao";
119-
View key1View = ViewUtils.findViewByName(activity, modulePackageName, "key_num_1");
119+
TaobaoVersionControl.DigitPasswordKeyPad digitPasswordKeyPad = TaobaoVersionControl.getDigitPasswordKeyPad(mTaobaoVersionCode);
120+
View key1View = ViewUtils.findViewByName(activity, digitPasswordKeyPad.modulePackageName, digitPasswordKeyPad.key1);
120121
if (key1View != null) {
121122
showFingerPrintDialog(activity);
122123
return;
@@ -246,11 +247,11 @@ public void showFingerPrintDialog(final Activity activity) {
246247
}
247248
onCompleteRunnable.run();
248249
});
249-
AlertDialog dialog = new AlipayPayView(context).withOnCloseImageClickListener(v -> {
250+
DialogFrameLayout alipayPayView = new AlipayPayView(context).withOnCloseImageClickListener(v -> {
250251
mPwdActivityDontShowFlag = true;
251-
AlertDialog dialog1 = mFingerPrintAlertDialog;
252-
if (dialog1 != null) {
253-
dialog1.dismiss();
252+
AlertDialog dialog = mFingerPrintAlertDialog;
253+
if (dialog != null) {
254+
dialog.dismiss();
254255
}
255256
activity.onBackPressed();
256257
}).withOnDismissListener(v -> {
@@ -261,9 +262,8 @@ public void showFingerPrintDialog(final Activity activity) {
261262
if (!mPwdActivityDontShowFlag) {
262263
Task.onMain(mPwdActivityReShowDelayTimeMsec, () -> activity.getWindow().getDecorView().setAlpha(1));
263264
}
264-
}).showInDialog();
265-
mFingerPrintAlertDialog = dialog;
266-
Task.onMain(100, dialog::show);
265+
});
266+
Task.onMain(100, () -> mFingerPrintAlertDialog = alipayPayView.showInDialog());
267267
} catch (OutOfMemoryError e) {
268268
}
269269
}

0 commit comments

Comments
 (0)