diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 426ff6b360..8efbfa420e 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -85,6 +85,7 @@
+
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index b21ec92c05..02b837e126 100644
--- a/app/src/main/java/com/mogo/launcher/MogoApplication.java
+++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java
@@ -12,6 +12,7 @@ import com.bytedance.boost_multidex.BoostMultiDex;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.Utils;
+import com.mogo.map.location.MogoLocation;
import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant;
import com.mogo.module.carchatting.card.CallChatConstant;
import com.mogo.module.common.MogoApisHandler;
@@ -30,6 +31,7 @@ import com.mogo.service.passport.IMogoTicketCallback;
import com.mogo.test.crashreport.ITestCrashReportProvider;
import com.mogo.utils.ProcessUtils;
import com.mogo.utils.UiThreadHandler;
+import com.mogo.utils.httpdns.HttpSimpleLocation;
import com.mogo.utils.logger.LogLevel;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.storage.SharedPrefsMgr;
@@ -157,6 +159,16 @@ public class MogoApplication extends AbsMogoApplication {
prepareBaseService( apis, 2_000L );
}
+ @Override
+ protected HttpSimpleLocation getCurrentLocation() {
+ MogoLocation location = MogoApisHandler.getInstance().getApis().getMapServiceApi().getSingletonLocationClient(this).getLastKnowLocation();
+ if (location == null) {
+ return null;
+ }else {
+ return new HttpSimpleLocation(location.getCityCode(), location.getLatitude(), location.getLongitude());
+ }
+ }
+
/**
* 基础服务:passport、location、socket
*/
diff --git a/foudations/httpdns-base/src/main/java/com/mogo/httpdns/IHttpDnsLocationChanged.java b/foudations/httpdns-base/src/main/java/com/mogo/httpdns/IHttpDnsLocationChanged.java
new file mode 100644
index 0000000000..3753ebc90e
--- /dev/null
+++ b/foudations/httpdns-base/src/main/java/com/mogo/httpdns/IHttpDnsLocationChanged.java
@@ -0,0 +1,13 @@
+package com.mogo.httpdns;
+
+import android.location.Location;
+
+import com.mogo.utils.httpdns.HttpSimpleLocation;
+
+public interface IHttpDnsLocationChanged {
+ /**
+ * 获取当前定位
+ * @return 当前定位
+ */
+ HttpSimpleLocation getLocation();
+}
diff --git a/foudations/httpdns-base/src/main/java/com/mogo/httpdns/IMogoHttpDns.java b/foudations/httpdns-base/src/main/java/com/mogo/httpdns/IMogoHttpDns.java
index 725d63cc72..f07ea004cb 100644
--- a/foudations/httpdns-base/src/main/java/com/mogo/httpdns/IMogoHttpDns.java
+++ b/foudations/httpdns-base/src/main/java/com/mogo/httpdns/IMogoHttpDns.java
@@ -1,5 +1,7 @@
package com.mogo.httpdns;
+import android.content.Context;
+
import androidx.annotation.Keep;
import androidx.annotation.Nullable;
@@ -95,4 +97,12 @@ interface IMogoHttpDns extends IProvider {
*/
@Keep
void removeHttpDnsTtlCallback(String host,int type);
+
+ /**
+ * 初始化
+ *
+ * @param context 上下文
+ * @param locationChanged 定位发生变化
+ */
+ void init(Context context, IHttpDnsLocationChanged locationChanged);
}
diff --git a/foudations/httpdns-mogo/build.gradle b/foudations/httpdns-mogo/build.gradle
index 6b662cab56..2c44ea5a06 100644
--- a/foudations/httpdns-mogo/build.gradle
+++ b/foudations/httpdns-mogo/build.gradle
@@ -37,11 +37,9 @@ dependencies {
if (Boolean.valueOf(RELEASE)) {
implementation rootProject.ext.dependencies.httpdnsbase
implementation rootProject.ext.dependencies.mogocommons
- implementation rootProject.ext.dependencies.modulecommon
} else {
implementation project(':foudations:httpdns-base')
implementation project(':foudations:mogo-commons')
- implementation project(':modules:mogo-module-common')
}
}
diff --git a/foudations/httpdns-mogo/src/main/java/com/mogo/httpdns/mogo/MogoHttpDns.java b/foudations/httpdns-mogo/src/main/java/com/mogo/httpdns/mogo/MogoHttpDns.java
index 64e4ffe141..a39e7c59a1 100644
--- a/foudations/httpdns-mogo/src/main/java/com/mogo/httpdns/mogo/MogoHttpDns.java
+++ b/foudations/httpdns-mogo/src/main/java/com/mogo/httpdns/mogo/MogoHttpDns.java
@@ -1,7 +1,6 @@
package com.mogo.httpdns.mogo;
import android.content.Context;
-import android.os.Debug;
import android.text.TextUtils;
import android.util.ArrayMap;
@@ -12,14 +11,14 @@ import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.Utils;
import com.mogo.httpdns.HttpDnsConst;
import com.mogo.httpdns.IHttpDnsCallback;
+import com.mogo.httpdns.IHttpDnsLocationChanged;
import com.mogo.httpdns.IHttpDnsTtlCallback;
import com.mogo.httpdns.IMogoHttpDns;
import com.mogo.httpdnshelper.sdk.HttpDnsHelper;
import com.mogo.httpdnshelper.sdk.bean.HttpDnsSimpleLocation;
import com.mogo.httpdnshelper.sdk.listener.IHttpDnsCurrentLocation;
import com.mogo.httpdnshelper.sdk.listener.OnAddressChangedListener;
-import com.mogo.map.location.MogoLocation;
-import com.mogo.module.common.MogoApisHandler;
+import com.mogo.utils.httpdns.HttpSimpleLocation;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.HttpDns;
@@ -83,13 +82,18 @@ public class MogoHttpDns implements IMogoHttpDns, HttpDns, OnAddressChangedListe
@Override
public void init(final Context context) {
+
+ }
+
+ @Override
+ public void init(Context context, final IHttpDnsLocationChanged locationChanged) {
httpDnsHelper = new HttpDnsHelper.Builder().setContext(context).setEnv(DebugConfig.getNetMode()).setSn(Utils.getSn()).setShowDebugLog(true).setLoopCheckDelay(15 * 60 * 1000).setCurrentLocation(new IHttpDnsCurrentLocation() {
@org.jetbrains.annotations.Nullable
@Override
public HttpDnsSimpleLocation getCurrentLocation() {
- MogoLocation last = MogoApisHandler.getInstance().getApis().getMapServiceApi().getSingletonLocationClient(context).getLastKnowLocation();
- if (last != null) {
- return new HttpDnsSimpleLocation(last.getCityCode(), last.getLatitude(), last.getLongitude());
+ HttpSimpleLocation simpleLocation = locationChanged.getLocation();
+ if (simpleLocation != null) {
+ return new HttpDnsSimpleLocation("0734", simpleLocation.getLat(), simpleLocation.getLon());
}
return null;
}
@@ -121,7 +125,7 @@ public class MogoHttpDns implements IMogoHttpDns, HttpDns, OnAddressChangedListe
}
@Override
- public void onAddressChanged(@org.jetbrains.annotations.Nullable Map map) {
+ public void onAddressChanged(Map map) {
if (map != null) {
for (String key : map.keySet()) {
if (ttlCallbackMap.get(key) != null) {
diff --git a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketDnsManager.java b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketDnsManager.java
index 8a46cb0ba2..4605e4b9ec 100644
--- a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketDnsManager.java
+++ b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketDnsManager.java
@@ -28,7 +28,7 @@ public class WebSocketDnsManager {
public void getHttpDnsIp(WebSocketDns webSocketDns) {
this.webSocketDns = webSocketDns;
- IMogoHttpDns mogoHttpDns = ARouter.getInstance().navigation(IMogoHttpDns.class);
+ IMogoHttpDns mogoHttpDns = MogoHttpDnsHandler.getHttpDnsApi();
ThreadPoolService.execute(() -> mogoHttpDns.getHttpDnsIp(WebSocketConstant.getDomain(), HttpDnsConst.HTTP_DNS_ADDRESS_TYPE_WS,false, ip -> {
Logger.d(TAG, "getHttpDnsIp ip : " + ip + " , 得到Dns IP,准备回调 初始化webSocket");
this.cacheIp = ip;
diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java
index 636cf85304..3cf6518c85 100644
--- a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java
+++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java
@@ -24,6 +24,7 @@ import com.mogo.httpdns.MogoHttpDnsHandler;
import com.mogo.utils.ThreadPoolService;
import com.mogo.utils.TipDrawable;
import com.mogo.utils.TipToast;
+import com.mogo.utils.httpdns.HttpSimpleLocation;
import com.mogo.utils.network.NetConfig;
import java.security.SecureRandom;
@@ -87,6 +88,7 @@ public abstract class AbsMogoApplication extends Application {
}
private void syncInit() {
+ MogoHttpDnsHandler.getHttpDnsApi().init(this, this::getCurrentLocation);
TipToast.init( this, ( ( context, message, tipDrawable ) -> {
if ( TextUtils.isEmpty( message ) ) {
return null;
@@ -100,6 +102,10 @@ public abstract class AbsMogoApplication extends Application {
} ) );
}
+ protected HttpSimpleLocation getCurrentLocation(){
+ return null;
+ }
+
private View generateToastView( Context context, String message, TipDrawable tipDrawable){
View contentView;
if(tipDrawable==null) {
diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/httpdns/HttpSimpleLocation.java b/foudations/mogo-utils/src/main/java/com/mogo/utils/httpdns/HttpSimpleLocation.java
new file mode 100644
index 0000000000..f8589f8f18
--- /dev/null
+++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/httpdns/HttpSimpleLocation.java
@@ -0,0 +1,37 @@
+package com.mogo.utils.httpdns;
+
+public class HttpSimpleLocation {
+ private String cityCode;
+ private double lat;
+ private double lon;
+
+ public HttpSimpleLocation(String cityCode, double lat, double lon) {
+ this.cityCode = cityCode;
+ this.lat = lat;
+ this.lon = lon;
+ }
+
+ 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;
+ }
+}