From 70a344485bd0c9b68ac91f72ed23ec5bfa998b09 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 25 十一月 2021 19:30:25 +0800
Subject: [PATCH] 功能完善

---
 android/app/src/main/java/com/yeshi/location/plugins/FlutterAliyunPhoneNumberAuthPlugins.java |  177 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 132 insertions(+), 45 deletions(-)

diff --git a/android/app/src/main/java/com/yeshi/location/plugins/FlutterAliyunPhoneNumberAuthPlugins.java b/android/app/src/main/java/com/yeshi/location/plugins/FlutterAliyunPhoneNumberAuthPlugins.java
index 87d0aae..1a39f81 100644
--- a/android/app/src/main/java/com/yeshi/location/plugins/FlutterAliyunPhoneNumberAuthPlugins.java
+++ b/android/app/src/main/java/com/yeshi/location/plugins/FlutterAliyunPhoneNumberAuthPlugins.java
@@ -1,60 +1,100 @@
 package com.yeshi.location.plugins;
 
 import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
 import android.graphics.Color;
+import android.util.Log;
 import android.widget.ImageView;
 
 import com.mobile.auth.gatewayauth.AuthUIConfig;
 import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
+import com.mobile.auth.gatewayauth.ResultCode;
 import com.mobile.auth.gatewayauth.TokenResultListener;
+import com.mobile.auth.gatewayauth.model.TokenRet;
+import com.yeshi.location.R;
+import com.yeshi.location.utils.DimenUtils;
 
+import java.util.HashMap;
+import java.util.Map;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import io.flutter.plugin.common.BasicMessageChannel;
 import io.flutter.plugin.common.BinaryMessenger;
 import io.flutter.plugin.common.MethodCall;
 import io.flutter.plugin.common.MethodChannel;
+import io.flutter.plugin.common.StandardMessageCodec;
+import io.flutter.plugin.common.StringCodec;
 
-public class FlutterAliyunPhoneNumberAuthPlugins implements MethodChannel.MethodCallHandler {
-    public static String CHANNEL = "com.yeshi.location/aliyunOneKeyLogin";  // 鍒嗘瀽1
+public class FlutterAliyunPhoneNumberAuthPlugins implements BasicMessageChannel.MessageHandler<Object> {
 
-    static MethodChannel channel;
-    private Activity activity;
+    private static final String TAG = "AliyunPhoneNumberAuth";
+
+    private final Activity activity;
+    private final BasicMessageChannel<Object> messageChannel;
 
     private PhoneNumberAuthHelper mPhoneNumberAuthHelper;
+    private BasicMessageChannel.Reply<Object> reply;
 
-    private FlutterAliyunPhoneNumberAuthPlugins(Activity activity) {
+
+    private FlutterAliyunPhoneNumberAuthPlugins(Activity activity, BinaryMessenger messager) {
         this.activity = activity;
+        this.messageChannel = new BasicMessageChannel<Object>(messager, "AliyunPhoneNumberAuth", StandardMessageCodec.INSTANCE);
+        messageChannel.setMessageHandler(this);
     }
 
-    public static void registerWith(Activity activity, BinaryMessenger messager) {
-        channel = new MethodChannel(messager, CHANNEL);
-        FlutterAliyunPhoneNumberAuthPlugins instance = new FlutterAliyunPhoneNumberAuthPlugins(activity);
-        channel.setMethodCallHandler(instance);
+    public static FlutterAliyunPhoneNumberAuthPlugins registerWith(Activity activity, BinaryMessenger messager) {
+        return new FlutterAliyunPhoneNumberAuthPlugins(activity, messager);
     }
+
 
     @Override
-    public void onMethodCall(MethodCall methodCall, MethodChannel.Result result) {  // 鍒嗘瀽 2
-        String method = methodCall.method;
+    public void onMessage(@Nullable Object message, @NonNull BasicMessageChannel.Reply<Object> reply) {
+        this.reply = reply;
+        Map<String, String> arguments = (Map<String, String>) message;
+        String method = arguments.get("method");
         switch (method) {
+            //鍒濆鍖�
             case "init":
-                initOneKeyLogin();
-                result.success(true);
+                initOneKeyLogin(arguments.get("secret"), arguments.get("privacy"), arguments.get("protocol"));
+                Map<String, Object> map = new HashMap<>();
+                map.put("code", 0);
+                reply.reply(map);
                 break;
-            default:
-                result.notImplemented();
+
+            case "checkEnv":
+                mPhoneNumberAuthHelper.checkEnvAvailable(2);
+                break;
+            case "startLogin":
+                mPhoneNumberAuthHelper.getLoginToken(activity, 5000);
+            case "closeLogin":
+                mPhoneNumberAuthHelper.quitLoginPage();
+                break;
         }
+
+    }
+
+    /**
+     * 鍚慏art鍙戦�佹秷鎭紝骞舵帴鍙桪art鐨勫弽棣�
+     *
+     * @param message  瑕佺粰Dart鍙戦�佺殑娑堟伅鍐呭
+     * @param callback 鏉ヨ嚜Dart鐨勫弽棣�
+     */
+    void send(String message, BasicMessageChannel.Reply<Object> callback) {
+        messageChannel.send(message, callback);
     }
 
 
-    private void initOneKeyLogin() {
-        sdkInit("");
-        initUI();
+    private void initOneKeyLogin(String secretInfo, String privacyUrl, String userProtocolUrl) {
+        sdkInit(secretInfo);
+        initUI(privacyUrl, userProtocolUrl);
     }
 
+    private void initUI(String privacy, String protocol) {
 
-
-    private void initUI() {
-
-        int width = DimenUtils.getScreenWidth(this);
-        int widthDP = DimenUtils.px2dip(this, width);
+        int width = DimenUtils.getScreenWidth(activity);
+        int widthDP = DimenUtils.px2dip(activity, width);
         AuthUIConfig uiCOnfig = new AuthUIConfig.Builder()
                 .setPageBackgroundPath("shape_login_onkey_bg")
 
@@ -62,45 +102,45 @@
                 .setNavColor(Color.WHITE)
                 .setNavHidden(false)
                 .setNavReturnImgPath("ic_login_close")
-                .setNavReturnImgWidth(22)
-                .setNavReturnImgHeight(22)
+                .setNavReturnImgWidth(32)
+                .setNavReturnImgHeight(32)
                 .setNavReturnScaleType(ImageView.ScaleType.FIT_XY)
                 .setWebNavColor(Color.BLACK)
-                .setWebNavReturnImgPath("ic_back_two")
+//                .setWebNavReturnImgPath("ic_back_two")
                 .setWebViewStatusBarColor(Color.WHITE)
                 .setStatusBarColor(Color.WHITE)
-
-                .setLogoWidth(147)
-                .setLogoHeight(36)
-                .setLogoImgPath("ic_login_logo")
+                .setLogoWidth(0)
+                .setLogoHeight(0)
+//                .setLogoImgPath("ic_login_logo")
                 .setLogoOffsetY(24 - 10)
 
-                .setSloganOffsetY(171 - 10)
+                .setSloganOffsetY(125 - 10)
                 .setSloganTextSize(12)
-                .setSloganTextColor(Color.parseColor("#F804F5"))
+                .setSloganTextColor(activity.getResources().getColor(R.color.onekey_login_theme_color))
 
                 .setLogBtnText("饧�閿櫥褰�")
                 .setLogBtnTextSize(17)
-                .setLogBtnTextColor(Color.parseColor("#F4DE4A"))
+                .setLogBtnTextColor(Color.WHITE)
                 .setLogBtnBackgroundPath("shape_login_btn")
-                .setLogBtnOffsetY(229 - 10)
+                .setLogBtnOffsetY(170 - 10)
                 .setLogBtnHeight(44)
 
 
                 .setDialogWidth(305 * widthDP / 375)
-                .setDialogHeight(454)
+                .setDialogHeight(378)
                 .setNavColor(Color.RED)
                 .setSwitchAccHidden(true)
-                .setNumberColor(Color.parseColor("#0052F6"))
+                .setNumberColor(activity.getResources().getColor(R.color.onekey_login_theme_color))
                 .setNumberSize(36)
-                .setNumFieldOffsetY(128 - 10)
+                .setNumFieldOffsetY(65)
 
-                .setAppPrivacyOne("銆婄敤鎴锋湇鍔″崗璁��", BeibeiConstant.USER_AGREEMENT)
-                .setAppPrivacyTwo("銆婇殣绉佹斂绛栥��", BeibeiConstant.PRIVACY_POLICY)
-                .setAppPrivacyColor(Color.parseColor("#B3B8D3"), Color.parseColor("#51B3FF"))
+                .setAppPrivacyOne("銆婄敤鎴锋湇鍔″崗璁��", protocol)
+                .setAppPrivacyTwo("銆婇殣绉佹斂绛栥��", privacy)
+                .setAppPrivacyColor(activity.getResources().getColor(R.color.onekey_login_notify_color), activity.getResources().getColor(R.color.onekey_login_theme_color))
                 .setPrivacyBefore("鐧诲綍鍗宠〃绀哄悓鎰�")
                 .setPrivacyEnd("")
                 .setCheckedImgPath("ic_login_privacy_checked")
+                .setUncheckedImgPath("ic_login_privacy_unchecked")
                 .setPrivacyTextSize(11)
                 .setPrivacyState(false)
                 .setVendorPrivacyPrefix("銆�")
@@ -109,17 +149,67 @@
 
         mPhoneNumberAuthHelper.setAuthUIConfig(uiCOnfig);
     }
+
     private void sdkInit(String secretInfo) {
-        mPhoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(activity.getApplicationContext(), new TokenResultListener(){
+        mPhoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(activity.getApplicationContext(), new TokenResultListener() {
 
             @Override
             public void onTokenSuccess(String s) {
+                Log.i(TAG, "onTokenSuccess锛�" + s);
+                TokenRet tokenRet = null;
+                try {
+                    tokenRet = TokenRet.fromJson(s);
 
+                    switch (tokenRet.getCode()) {
+                        case ResultCode.CODE_ERROR_ENV_CHECK_SUCCESS: {
+                            Log.i(TAG
+                                    , "缁堢鐜鏍¢獙鎴愬姛锛�" + s);
+                            Map<String, Object> map = new HashMap<>();
+                            map.put("code", 0);
+                            map.put("msg", "鐜鐩戞祴姝e父");
+                            reply.reply(map);
+                        }
+                        break;
+
+                        case ResultCode.CODE_START_AUTHPAGE_SUCCESS:
+                            Log.i(TAG, "鍞よ捣鎺堟潈椤垫垚鍔燂細" + s);
+                            break;
+
+                        case ResultCode.CODE_ERROR_USER_CANCEL: {
+                            Log.i(TAG, "鐢ㄦ埛鍙栨秷鎿嶄綔锛�" + s);
+                            Map<String, Object> map = new HashMap<>();
+                            map.put("code", Integer.parseInt(tokenRet.getCode()));
+                            map.put("msg", "鍙栨秷鎿嶄綔");
+                            reply.reply(map);
+                        }
+                        break;
+
+
+                        case ResultCode.CODE_SUCCESS: {
+                            Log.i(TAG, "鑾峰彇token鎴愬姛锛�" + s);
+                            mPhoneNumberAuthHelper.setAuthListener(null);
+                            Map<String, Object> map = new HashMap<>();
+                            map.put("code", 0);
+                            map.put("token", tokenRet.getToken());
+                            map.put("msg", "鑾峰彇token鎴愬姛");
+                            reply.reply(map);
+                        }
+                        break;
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
             }
 
             @Override
             public void onTokenFailed(String s) {
-
+                Log.i(TAG, "onTokenFailed锛�" + s);
+                TokenRet
+                        tokenRet = TokenRet.fromJson(s);
+                Map<String, Object> map = new HashMap<>();
+                map.put("code", Integer.parseInt(tokenRet.getCode()));
+                map.put("msg", tokenRet.getMsg());
+                reply.reply(map);
             }
         });
         mPhoneNumberAuthHelper.getReporter().setLoggerEnable(true);
@@ -127,7 +217,4 @@
     }
 
 
-
-
-    
 }

--
Gitblit v1.8.0