增加了V2XApiServiceFactory.java
解决HttpDns的域名不同问题 V2XApiServiceFactory可以获取指定的域名对应的API
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
package com.mogo.module.v2x.network;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.module.common.constants.HostConst;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.network.IMogoNetwork;
|
||||
|
||||
/**
|
||||
* 应对不同接口对应不同服务域名的工厂累
|
||||
*/
|
||||
public class V2XApiServiceFactory {
|
||||
|
||||
private static V2XApiService mDevaApiService;
|
||||
private static V2XApiService mDataApiService;
|
||||
private static V2XApiService mLauncherSnapshotApiService;
|
||||
private static V2XApiService mGeoFenceCarServiceApiService;
|
||||
private static V2XApiService mRealtimeLocationApiService;
|
||||
private static V2XApiService mDataServiceApiService;
|
||||
|
||||
/**
|
||||
* 获取指定域名下的 API 服务
|
||||
*/
|
||||
public static V2XApiService getApiService(Context context, String netHost) {
|
||||
IMogoNetwork network = (IMogoNetwork) ARouter.getInstance()
|
||||
.build(MogoServicePaths.PATH_SERVICES_NETWORK)
|
||||
.navigation(context);
|
||||
return network.create(V2XApiService.class, netHost);
|
||||
}
|
||||
|
||||
public static V2XApiService getDevaApiService(Context context) {
|
||||
if (mDevaApiService == null) {
|
||||
synchronized (V2XApiServiceFactory.class) {
|
||||
if (mDevaApiService == null) {
|
||||
mDevaApiService = getApiService(context, HostConst.DEVA_HOST);
|
||||
}
|
||||
}
|
||||
}
|
||||
return mDevaApiService;
|
||||
}
|
||||
|
||||
public static V2XApiService getDataApiService(Context context) {
|
||||
if (mDataApiService == null) {
|
||||
synchronized (V2XApiServiceFactory.class) {
|
||||
if (mDataApiService == null) {
|
||||
mDataApiService = getApiService(context, HostConst.DATA_SERVICE_HOST);
|
||||
}
|
||||
}
|
||||
}
|
||||
return mDataApiService;
|
||||
}
|
||||
|
||||
public static V2XApiService getLauncherSnapshotApiService(Context context) {
|
||||
if (mLauncherSnapshotApiService == null) {
|
||||
synchronized (V2XApiServiceFactory.class) {
|
||||
if (mLauncherSnapshotApiService == null) {
|
||||
mLauncherSnapshotApiService = getApiService(context, HostConst.LAUNCHER_SNAPSHOT_HOST);
|
||||
}
|
||||
}
|
||||
}
|
||||
return mLauncherSnapshotApiService;
|
||||
}
|
||||
|
||||
public static V2XApiService getGeoFenceCarServiceApiService(Context context) {
|
||||
if (mGeoFenceCarServiceApiService == null) {
|
||||
synchronized (V2XApiServiceFactory.class) {
|
||||
if (mGeoFenceCarServiceApiService == null) {
|
||||
mGeoFenceCarServiceApiService = getApiService(context, HostConst.GEOFENCE_HOST);
|
||||
}
|
||||
}
|
||||
}
|
||||
return mGeoFenceCarServiceApiService;
|
||||
}
|
||||
|
||||
public static V2XApiService getRealtimeLocationApiService(Context context) {
|
||||
if (mRealtimeLocationApiService == null) {
|
||||
synchronized (V2XApiServiceFactory.class) {
|
||||
if (mRealtimeLocationApiService == null) {
|
||||
mRealtimeLocationApiService = getApiService(context, HostConst.REALTIME_LOCATION_HOST);
|
||||
}
|
||||
}
|
||||
}
|
||||
return mRealtimeLocationApiService;
|
||||
}
|
||||
|
||||
public static V2XApiService getDataServiceApiService(Context context) {
|
||||
if (mDataServiceApiService == null) {
|
||||
synchronized (V2XApiServiceFactory.class) {
|
||||
if (mDataServiceApiService == null) {
|
||||
mDataServiceApiService = getApiService(context, HostConst.DATA_SERVICE_HOST);
|
||||
}
|
||||
}
|
||||
}
|
||||
return mDataServiceApiService;
|
||||
}
|
||||
}
|
||||
@@ -2,13 +2,10 @@ package com.mogo.module.v2x.network;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.commons.data.BaseData;
|
||||
import com.mogo.commons.network.ParamsProvider;
|
||||
import com.mogo.commons.network.SubscribeImpl;
|
||||
import com.mogo.commons.network.Utils;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.network.IMogoNetwork;
|
||||
import com.mogo.utils.network.RequestOptions;
|
||||
import com.mogo.utils.network.utils.GsonUtil;
|
||||
|
||||
@@ -26,21 +23,18 @@ import io.reactivex.functions.Function;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
public class V2XShareNetworkModel {
|
||||
private final Context mContext;
|
||||
private V2XApiService mRefreshApiService;
|
||||
private static final String TAG = "V2XShareNetworkModel";
|
||||
private final Context mContext;
|
||||
|
||||
public V2XShareNetworkModel(Context context) {
|
||||
this.mContext = context;
|
||||
IMogoNetwork network = (IMogoNetwork) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_NETWORK).navigation(context);
|
||||
this.mRefreshApiService = network.create(V2XApiService.class, HttpConstant.Companion.getNetHost());
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* 两个任务串行
|
||||
* 1.分享次数,热心指数
|
||||
* 2.分享列表
|
||||
* */
|
||||
*/
|
||||
public void getShareEventResponse(int page, int size, V2XRefreshCallback callback) {
|
||||
|
||||
Observable<String> indexObservable = Observable.create(new ObservableOnSubscribe<String>() {
|
||||
@@ -99,9 +93,9 @@ public class V2XShareNetworkModel {
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* 热心指数
|
||||
* */
|
||||
*/
|
||||
public void getShareIndex(V2XRefreshCallback callback) {
|
||||
final ParamsProvider.Builder builder = new ParamsProvider.Builder(mContext);
|
||||
HashMap<String, Object> hashMap = new HashMap<>();
|
||||
@@ -109,7 +103,7 @@ public class V2XShareNetworkModel {
|
||||
builder.append("data", GsonUtil.jsonFromObject(hashMap));
|
||||
Map<String, Object> parameters = builder.build();
|
||||
//热心指数
|
||||
mRefreshApiService.getEnthusiasmIndex(parameters)
|
||||
V2XApiServiceFactory.getDevaApiService(mContext).getEnthusiasmIndex(parameters)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create((mContext))) {
|
||||
@@ -140,9 +134,9 @@ public class V2XShareNetworkModel {
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* 分享列表
|
||||
* */
|
||||
*/
|
||||
public void getShareEventList(int page, int size, V2XRefreshCallback callback) {
|
||||
|
||||
final ParamsProvider.Builder builder = new ParamsProvider.Builder(mContext);
|
||||
@@ -153,7 +147,7 @@ public class V2XShareNetworkModel {
|
||||
builder.append("data", GsonUtil.jsonFromObject(hashMap));
|
||||
Map<String, Object> parameters = builder.build();
|
||||
|
||||
mRefreshApiService.getShareEventList(parameters)
|
||||
V2XApiServiceFactory.getDevaApiService(mContext).getShareEventList(parameters)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(mContext)) {
|
||||
|
||||
Reference in New Issue
Block a user