From 87ed5c2a56d254cfed4a0b24e67f596bcef52ce2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 20 Jan 2021 11:20:46 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86HttpDns=E7=9A=84?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/cloud/PassPortActivity.java | 17 ++- foudations/mogo-passport/build.gradle | 2 + .../cloud/passport/MoGoAiCloudClient.java | 55 ++++++--- .../passport/MoGoAiCloudClientConfig.java | 104 ++++++++++++++---- 4 files changed, 136 insertions(+), 42 deletions(-) diff --git a/app/src/main/java/com/mogo/cloud/PassPortActivity.java b/app/src/main/java/com/mogo/cloud/PassPortActivity.java index a60c1aa..8984454 100644 --- a/app/src/main/java/com/mogo/cloud/PassPortActivity.java +++ b/app/src/main/java/com/mogo/cloud/PassPortActivity.java @@ -1,18 +1,18 @@ package com.mogo.cloud; import android.os.Bundle; -import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; +import com.mogo.cloud.httpdns.MogoHttpDnsConfig; import com.mogo.cloud.passport.IMoGoTokenCallback; import com.mogo.cloud.passport.MoGoAiCloudClient; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; -import static com.mogo.cloud.passport.MoGoAiCloudClientConfig.NET_MODE_QA; +import java.util.Random; /** * 鉴权sdk测试页面 @@ -41,13 +41,22 @@ public class PassPortActivity extends AppCompatActivity { tvSn = findViewById(R.id.tvSn); tvToken = findViewById(R.id.tvToken); + Random random = new Random(); + double randomLat = random.nextDouble(); + double randomLon = random.nextDouble(); + MoGoAiCloudClientConfig clientConfig = new MoGoAiCloudClientConfig(); - clientConfig.setNetMode(NET_MODE_QA); + clientConfig.setNetMode(MogoHttpDnsConfig.HTTP_DNS_ENV_QA); clientConfig.setThirdLogin(true); + clientConfig.setShowDebugLog(true); clientConfig.setThirdPartyAppKey("bydauto"); clientConfig.setThirdPartyDeviceId("bydauto"); + clientConfig.setLat(randomLat); + clientConfig.setLon(randomLon); + clientConfig.setCityCode("010"); + clientConfig.setLoopCheckDelay(15 * 1000); - mMoGoAiCloudClient = MoGoAiCloudClient.getInstance().init(this,clientConfig); + mMoGoAiCloudClient = MoGoAiCloudClient.getInstance().init(this, clientConfig); btnRefreshToken.setOnClickListener(v -> mMoGoAiCloudClient.refreshToken(new IMoGoTokenCallback() { @Override diff --git a/foudations/mogo-passport/build.gradle b/foudations/mogo-passport/build.gradle index 48f8453..1b53aea 100644 --- a/foudations/mogo-passport/build.gradle +++ b/foudations/mogo-passport/build.gradle @@ -32,4 +32,6 @@ dependencies { // passport implementation 'com.zhidao.tcloginsdk:tclogin:1.1.5.1' + api project(path: ':foudations:mogo-httpdns') + } \ No newline at end of file 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 index 7259275..d376695 100644 --- 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 @@ -5,6 +5,9 @@ import android.util.Log; import androidx.annotation.Keep; +import com.mogo.cloud.httpdns.MogoHttpDnsClient; +import com.mogo.cloud.httpdns.MogoHttpDnsConfig; +import com.mogo.cloud.httpdns.bean.HttpDnsSimpleLocation; import com.zhidao.tcloginsdk.LoginManager; import com.zhidao.tcloginsdk.model.ThirdLoginParam; import com.zhidao.tcloginsdk.model.TokenData; @@ -18,7 +21,8 @@ public class MoGoAiCloudClient { private static final String TAG = "MoGoAiCloudClient"; private static volatile MoGoAiCloudClient sInstance; - private MoGoAiCloudClientConfig mConfig; + private MoGoAiCloudClientConfig mAiCloudClientConfig; + private MogoHttpDnsConfig mHttpDnsConfig; private Context mContext; @@ -41,31 +45,33 @@ public class MoGoAiCloudClient { /** * 初始化 * - * @param context 上下文 - * @param config 配置信息 + * @param context 上下文 + * @param aiCloudClientConfig 配置信息 */ - public MoGoAiCloudClient init(Context context, MoGoAiCloudClientConfig config) { + public MoGoAiCloudClient init(Context context, + MoGoAiCloudClientConfig aiCloudClientConfig + ) { mContext = context; - mConfig = config; - // 设置网络环境 - LoginManager.getInstance(context).setNetEnviron(config.getNetMode()); + mAiCloudClientConfig = aiCloudClientConfig; + // 设置鉴权的网络环境 + LoginManager.getInstance(context).setNetEnviron(aiCloudClientConfig.getNetMode()); return sInstance; } - public MoGoAiCloudClientConfig getConfig() { - return mConfig; + public MoGoAiCloudClientConfig getAiCloudClientConfig() { + return mAiCloudClientConfig; } public void refreshToken(final IMoGoTokenCallback tokenCallback) { - if (mConfig != null) { + if (mAiCloudClientConfig != null) { ThirdLoginParam thirdLoginParam = ThirdLoginParam.of( - mConfig.getThirdPartyDeviceId(), - mConfig.getThirdPartyAppKey(), - mConfig.getThirdPartySignSecret() + mAiCloudClientConfig.getThirdPartyDeviceId(), + mAiCloudClientConfig.getThirdPartyAppKey(), + mAiCloudClientConfig.getThirdPartySignSecret() ); LoginManager.getInstance(mContext).login( - mConfig.isThirdLogin(), + mAiCloudClientConfig.isThirdLogin(), thirdLoginParam, new LoginCallback() { @Override @@ -74,10 +80,25 @@ public class MoGoAiCloudClient { tokenCallback.onTokenGot(result.token, result.sn); } - if (mConfig != null) { - mConfig.sn = result.sn; - mConfig.token = result.token; + // 变量赋值 + if (mAiCloudClientConfig != null) { + mAiCloudClientConfig.sn = result.sn; + mAiCloudClientConfig.token = result.token; } + + // 初始化HttpDNS + mHttpDnsConfig = + new MogoHttpDnsConfig() + .setContext(mContext) + .setSn(mAiCloudClientConfig.sn) + .setEnv(mAiCloudClientConfig.getNetMode()) + .setShowDebugLog(mAiCloudClientConfig.isShowDebugLog()) + .setCurrentLocation(() -> new HttpDnsSimpleLocation( + mAiCloudClientConfig.getCityCode(), + mAiCloudClientConfig.getLat(), + mAiCloudClientConfig.getLon())) + .setLoopCheckDelay(mAiCloudClientConfig.getLoopCheckDelay()); + MogoHttpDnsClient.INSTANCE.init(mHttpDnsConfig); } @Override 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 index 215923d..9838a30 100644 --- 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 @@ -1,34 +1,16 @@ package com.mogo.cloud.passport; +import com.mogo.cloud.httpdns.MogoHttpDnsConfig; + /** * 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; + private int sNetMode = MogoHttpDnsConfig.HTTP_DNS_ENV_RELEASE; /** * 设备ID @@ -49,6 +31,11 @@ public class MoGoAiCloudClientConfig { */ private boolean thirdLogin; + /** + * 是否打印日志 + */ + private boolean isShowDebugLog = true; + /** * 服务器分配给应用的令牌,用于网络请求校验 */ @@ -59,6 +46,23 @@ public class MoGoAiCloudClientConfig { */ String sn = ""; + /** + * 城市编码 + */ + private String cityCode; + /** + * 当前的纬度 + */ + private double lat; + /** + * 当前的经度 + */ + private double lon; + /** + * 循环检测延时时间 + */ + private long mLoopCheckDelay; + public String getThirdPartyDeviceId() { return thirdPartyDeviceId; } @@ -106,4 +110,62 @@ public class MoGoAiCloudClientConfig { public String getSn() { return sn; } + + public String getCityCode() { + return cityCode; + } + + public void setCityCode(String cityCode) { + this.cityCode = cityCode; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLon() { + return lon; + } + + public void setLon(double lon) { + this.lon = lon; + } + + public boolean isShowDebugLog() { + return isShowDebugLog; + } + + public void setShowDebugLog(boolean showDebugLog) { + isShowDebugLog = showDebugLog; + } + + public long getLoopCheckDelay() { + return mLoopCheckDelay; + } + + public void setLoopCheckDelay(long loopCheckDelay) { + mLoopCheckDelay = loopCheckDelay; + } + + @Override + public String toString() { + return "MoGoAiCloudClientConfig{" + + "sNetMode=" + sNetMode + + ", thirdPartyDeviceId='" + thirdPartyDeviceId + '\'' + + ", thirdPartyAppKey='" + thirdPartyAppKey + '\'' + + ", thirdPartySignSecret='" + thirdPartySignSecret + '\'' + + ", thirdLogin=" + thirdLogin + + ", isShowDebugLog=" + isShowDebugLog + + ", token='" + token + '\'' + + ", sn='" + sn + '\'' + + ", cityCode='" + cityCode + '\'' + + ", lat=" + lat + + ", lon=" + lon + + ", mLoopCheckDelay=" + mLoopCheckDelay + + '}'; + } } From d3280d7284c5e617bf2f365ef54e2fedaf5bfd9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 20 Jan 2021 12:01:24 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=AE=8C=E6=88=90maven=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=20'com.mogo.cloud:passport:1.0.0'=20'com.mogo.cloud:httpdns:1.?= =?UTF-8?q?0.0'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +++- foudations/mogo-httpdns/gradle.properties | 6 +++--- foudations/mogo-passport/build.gradle | 5 ++++- foudations/mogo-passport/gradle.properties | 4 ++++ gradle/upload.gradle | 16 +++++++++------- 5 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 foudations/mogo-passport/gradle.properties diff --git a/app/build.gradle b/app/build.gradle index 5d21daa..8655739 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,6 +29,8 @@ dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.androidxconstraintlayout - implementation project(path: ':foudations:mogo-passport') + +// implementation project(path: ':foudations:mogo-passport') + implementation 'com.mogo.cloud:passport:1.0.0' } \ No newline at end of file diff --git a/foudations/mogo-httpdns/gradle.properties b/foudations/mogo-httpdns/gradle.properties index 7c0f625..91b4997 100644 --- a/foudations/mogo-httpdns/gradle.properties +++ b/foudations/mogo-httpdns/gradle.properties @@ -1,4 +1,4 @@ -GROUP=com.mogo.httpdns -POM_ARTIFACT_ID=httpdns-helper +GROUP=com.mogo.cloud +POM_ARTIFACT_ID=httpdns VERSION_CODE=1 -VERSION_NAME=1.0.18 \ No newline at end of file +VERSION_NAME=1.0.0 \ No newline at end of file diff --git a/foudations/mogo-passport/build.gradle b/foudations/mogo-passport/build.gradle index 1b53aea..1c76b2c 100644 --- a/foudations/mogo-passport/build.gradle +++ b/foudations/mogo-passport/build.gradle @@ -33,5 +33,8 @@ dependencies { // passport implementation 'com.zhidao.tcloginsdk:tclogin:1.1.5.1' api project(path: ':foudations:mogo-httpdns') +// api 'com.mogo.cloud:httpdns:1.0.0' -} \ No newline at end of file +} + +apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() \ No newline at end of file diff --git a/foudations/mogo-passport/gradle.properties b/foudations/mogo-passport/gradle.properties new file mode 100644 index 0000000..b35e34d --- /dev/null +++ b/foudations/mogo-passport/gradle.properties @@ -0,0 +1,4 @@ +GROUP=com.mogo.cloud +POM_ARTIFACT_ID=passport +VERSION_CODE=1 +VERSION_NAME=1.0.0 \ No newline at end of file diff --git a/gradle/upload.gradle b/gradle/upload.gradle index affad43..c1c3455 100644 --- a/gradle/upload.gradle +++ b/gradle/upload.gradle @@ -3,13 +3,15 @@ apply plugin: 'maven-publish' task loggerSourcesJar(type: Jar) { classifier = 'sources' - if (plugins.hasPlugin("java-library")) { - from sourceSets.main.java.srcDirs - } else if (plugins.hasPlugin("com.android.library")) { - from android.sourceSets.main.java.sourceFiles - } else if (plugins.hasPlugin('groovy')) { - from sourceSets.main.groovy.srcDirs - } + from android.sourceSets.main.java.srcDirs +// if (plugins.hasPlugin("java-library")) { +// from sourceSets.main.java.srcDirs +// } +// else if (plugins.hasPlugin("com.android.library")) { +// from android.sourceSets.main.java.sourceFiles +// } else if (plugins.hasPlugin('groovy')) { +// from sourceSets.main.groovy.srcDirs +// } } artifacts { From 7ac2dd72a170ea2bcd8b5f4234cc8179370db489 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 20 Jan 2021 15:18:17 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=9B=86=E6=88=90?= =?UTF-8?q?=E4=BB=A4=E7=89=8C=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- app/src/main/AndroidManifest.xml | 1 + .../java/com/mogo/cloud/MoGoApplication.java | 37 +++++++++++++++++ .../java/com/mogo/cloud/PassPortActivity.java | 40 ++----------------- .../cloud/passport/MoGoAiCloudClient.java | 2 + 5 files changed, 46 insertions(+), 38 deletions(-) create mode 100644 app/src/main/java/com/mogo/cloud/MoGoApplication.java diff --git a/app/build.gradle b/app/build.gradle index 8655739..7e93573 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,7 +30,7 @@ dependencies { implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.androidxconstraintlayout -// implementation project(path: ':foudations:mogo-passport') - implementation 'com.mogo.cloud:passport:1.0.0' + implementation project(path: ':foudations:mogo-passport') +// implementation 'com.mogo.cloud:passport:1.0.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fa86e94..b7affc2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ package="com.mogo.cloud"> mMoGoAiCloudClient.refreshToken(new IMoGoTokenCallback() { - @Override - public void onTokenGot(String token, String sn) { - tvSn.setText(sn); - tvToken.setText(token); - } - - @Override - public void onError(int code, String msg) { - - } - })); + btnRefreshToken.setOnClickListener(v -> { + tvSn.setText(MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn()); + tvToken.setText(MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getToken()); + }); } } \ No newline at end of file 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 index d376695..f26e2f3 100644 --- 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 @@ -55,6 +55,8 @@ public class MoGoAiCloudClient { mAiCloudClientConfig = aiCloudClientConfig; // 设置鉴权的网络环境 LoginManager.getInstance(context).setNetEnviron(aiCloudClientConfig.getNetMode()); + // 刷新令牌 + refreshToken(null); return sInstance; }