From d5075235a7623351c50dd6fca7d772efb7f99e66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Tue, 19 Jan 2021 18:39:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A8=E9=80=81=E9=89=B4=E6=9D=83=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foudations/mogo-passport/build.gradle | 2 + .../cloud/passport/IMoGoTokenCallback.java | 10 ++ .../cloud/passport/MoGoAiCloudClient.java | 91 ++++++++++++++++++ .../passport/MoGoAiCloudClientConfig.java | 94 +++++++++++++++++++ 4 files changed, 197 insertions(+) create mode 100644 foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/IMoGoTokenCallback.java create mode 100644 foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java create mode 100644 foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java diff --git a/foudations/mogo-passport/build.gradle b/foudations/mogo-passport/build.gradle index 1cd1512..fe8cc88 100644 --- a/foudations/mogo-passport/build.gradle +++ b/foudations/mogo-passport/build.gradle @@ -26,4 +26,6 @@ dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementation rootProject.ext.dependencies.androidxappcompat + // passport + implementation 'com.zhidao.tcloginsdk:tclogin:1.1.5.1' } \ No newline at end of file diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/IMoGoTokenCallback.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/IMoGoTokenCallback.java new file mode 100644 index 0000000..cbe17f1 --- /dev/null +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/IMoGoTokenCallback.java @@ -0,0 +1,10 @@ +package com.mogo.cloud.passport; + +/** + * AI 云平台接口中Token的获取回碉 + */ +public interface IMoGoTokenCallback { + void onTokenGot(String token, String sn); + + void onError(int code, String msg); +} diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java new file mode 100644 index 0000000..fc591be --- /dev/null +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClient.java @@ -0,0 +1,91 @@ +package com.mogo.cloud.passport; + +import android.content.Context; +import android.util.Log; + +import androidx.annotation.Keep; + +import com.zhidao.tcloginsdk.LoginManager; +import com.zhidao.tcloginsdk.model.ThirdLoginParam; +import com.zhidao.tcloginsdk.model.TokenData; +import com.zhidao.tcloginsdk.network.LoginCallback; + +/** + * 蘑菇AI云平台配置文件 + */ +@Keep +public class MoGoAiCloudClient { + private static final String TAG = "MoGoAiCloudClient"; + private static volatile MoGoAiCloudClient sInstance; + + private MoGoAiCloudClientConfig mConfig; + private Context mContext; + + + private MoGoAiCloudClient() { + + } + + @Keep + public static MoGoAiCloudClient getInstance() { + if (sInstance == null) { + synchronized (MoGoAiCloudClient.class) { + if (sInstance == null) { + sInstance = new MoGoAiCloudClient(); + } + } + } + return sInstance; + } + + /** + * 初始化 + * + * @param context 上下文 + * @param config 配置信息 + */ + public void init(Context context, MoGoAiCloudClientConfig config) { + mContext = context; + mConfig = config; + // 设置网络环境 + LoginManager.getInstance(context).setNetEnviron(config.getNetMode()); + } + + public MoGoAiCloudClientConfig getConfig() { + return mConfig; + } + + public void refreshToken(final IMoGoTokenCallback tokenCallback) { + if (mConfig != null) { + ThirdLoginParam thirdLoginParam = ThirdLoginParam.of( + mConfig.getThirdPartyDeviceId(), + mConfig.getThirdPartyAppKey(), + mConfig.getThirdPartySignSecret() + ); + + LoginManager.getInstance(mContext).login( + mConfig.isThirdLogin(), + thirdLoginParam, + new LoginCallback() { + @Override + public void onSuccess(TokenData.TokenResult result) { + if (tokenCallback != null) { + tokenCallback.onTokenGot(result.token, result.sn); + } + + } + + @Override + public void onFailure(int code, String msg) { + if (tokenCallback != null) { + tokenCallback.onError(code, msg); + } + } + }); + } else { + Log.e(TAG, "SDK MoGoAiCloudClientConfig 为 null,请检查!"); + } + } + + +} diff --git a/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java new file mode 100644 index 0000000..778e75d --- /dev/null +++ b/foudations/mogo-passport/src/main/java/com/mogo/cloud/passport/MoGoAiCloudClientConfig.java @@ -0,0 +1,94 @@ +package com.mogo.cloud.passport; + +/** + * SDK 中的参数 + */ +public class MoGoAiCloudClientConfig { + + /** + * 研发环境 + */ + public static final int NET_MODE_DEV = 1; + + /** + * 测试环境 + */ + public static final int NET_MODE_QA = 2; + + /** + * 演示环境 + */ + public static final int NET_MODE_DEMO = 4; + + /** + * 生产环境 + */ + public static final int NET_MODE_RELEASE = 3; + + /** + * 网络模式 + */ + private int sNetMode = NET_MODE_RELEASE; + + /** + * 设备ID + */ + private String thirdPartyDeviceId; + /** + * APP key + */ + private String thirdPartyAppKey; + + /** + * 签名信息 + */ + private String thirdPartySignSecret; + + /** + * 是否是第三方登录 + */ + private boolean thirdLogin; + + private String token; + private String sn; + + public String getThirdPartyDeviceId() { + return thirdPartyDeviceId; + } + + public void setThirdPartyDeviceId(String thirdPartyDeviceId) { + this.thirdPartyDeviceId = thirdPartyDeviceId; + } + + public String getThirdPartyAppKey() { + return thirdPartyAppKey; + } + + public void setThirdPartyAppKey(String thirdPartyAppKey) { + this.thirdPartyAppKey = thirdPartyAppKey; + } + + public String getThirdPartySignSecret() { + return thirdPartySignSecret; + } + + public void setThirdPartySignSecret(String thirdPartySignSecret) { + this.thirdPartySignSecret = thirdPartySignSecret; + } + + public boolean isThirdLogin() { + return thirdLogin; + } + + public void setThirdLogin(boolean thirdLogin) { + this.thirdLogin = thirdLogin; + } + + public int getNetMode() { + return sNetMode; + } + + public void setNetMode(int sNetMode) { + this.sNetMode = sNetMode; + } +}