diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2dc54c489f..707ee6e613 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index b8a51bd66b..97afdea972 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -204,6 +204,7 @@ dependencies {
implementation rootProject.ext.dependencies.modulemedia
} else {
launcherImplementation project(':main-extensions:mogo-module-main-launcher')
+// launcherImplementation project(':modules:mogo-module-main')
independentImplementation project(':main-extensions:mogo-module-main-independent')
implementation project(':foudations:mogo-commons')
implementation project(':modules:mogo-module-common')
diff --git a/app/src/independent/AndroidManifest.xml b/app/src/independent/AndroidManifest.xml
index 543d0ea0f7..40832b86b3 100644
--- a/app/src/independent/AndroidManifest.xml
+++ b/app/src/independent/AndroidManifest.xml
@@ -14,7 +14,6 @@
tools:replace="android:label">
diff --git a/app/src/launcher/AndroidManifest.xml b/app/src/launcher/AndroidManifest.xml
index 27b726ef2b..51bd368bf2 100644
--- a/app/src/launcher/AndroidManifest.xml
+++ b/app/src/launcher/AndroidManifest.xml
@@ -24,7 +24,6 @@
android:name="com.amap.api.v2.apikey"
android:value="40e2e7e773c7562b1f2b13699a93992c" />
-
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index e284c2874a..830806c0d1 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -70,7 +70,7 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT
# 在线车辆F
MOGO_MODULE_ONLINECAR_VERSION=1.0.3.2
# v2x
-MOGO_MODULE_V2X_VERSION=1.0.17
+MOGO_MODULE_V2X_VERSION=1.0.20
# 媒体卡片
MOGO_MODULE_MEDIA_VERSION=1.0.4.11
# 推送
diff --git a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java
index 832893cb79..c8ff91a8ad 100644
--- a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java
+++ b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java
@@ -5,6 +5,7 @@ import android.view.View;
import androidx.annotation.Nullable;
+import com.mogo.module.extensions.utils.ExtensionsConfig;
import com.mogo.module.main.MainActivity;
import com.mogo.utils.logger.Logger;
@@ -17,6 +18,7 @@ public class MainLauncherActivity extends MainActivity {
@Override
protected void onCreate( @Nullable Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
+ ExtensionsConfig.setNeedRequestUserInfo(true);
}
@Override
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
index 02ab4cb135..d49941e94a 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
@@ -8,9 +8,7 @@ import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.util.TypedValue;
-import android.view.LayoutInflater;
import android.view.View;
-import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
@@ -41,8 +39,8 @@ import com.mogo.module.common.map.Scene;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.extensions.R;
import com.mogo.module.extensions.navi.NaviInfoView;
+import com.mogo.module.extensions.userinfo.UserInfo;
import com.mogo.module.extensions.utils.TopViewAnimHelper;
-import com.mogo.module.extensions.utils.TopViewManager;
import com.mogo.module.share.ShareControl;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
@@ -55,7 +53,6 @@ import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.statusmanager.StatusDescriptor;
-import com.mogo.service.windowview.IMogoTopViewStatusListener;
import com.mogo.utils.ResourcesHelper;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
@@ -551,4 +548,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
// 30s 后无论成功与否,停止动画
mUploadFrameAnimHandler.sendEmptyMessageDelayed( MSG_STOP_ANIM, 30_000 );
}
+
+ @Override
+ public void refreshUserInfo(UserInfo userInfo) {
+ Logger.d(TAG, "刷新用户信息: " + userInfo);
+ }
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
index cec48aab5a..5a921c613f 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
@@ -3,6 +3,7 @@ package com.mogo.module.extensions.entrance;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
+import android.util.ArrayMap;
import android.util.Log;
import androidx.annotation.NonNull;
@@ -13,15 +14,24 @@ import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager;
+import com.mogo.module.authorize.model.BaseResponse;
import com.mogo.module.extensions.ExtensionsModuleConst;
+import com.mogo.module.extensions.net.UserInfoNetApiServices;
+import com.mogo.module.extensions.userinfo.UserInfo;
+import com.mogo.module.extensions.userinfo.UserInfoConstant;
+import com.mogo.module.extensions.userinfo.UserInfoResponse;
+import com.mogo.module.extensions.utils.ExtensionsConfig;
import com.mogo.module.share.ShareControl;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.intent.IMogoIntentManager;
+import com.mogo.service.network.IMogoNetwork;
import com.mogo.service.statusmanager.IMogoStatusManager;
+import com.mogo.utils.digest.DigestUtils;
import com.mogo.utils.logger.Logger;
+import com.zhidao.auto.platform.util.DeviceUtil;
import org.json.JSONException;
import org.json.JSONObject;
@@ -29,6 +39,11 @@ import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
+import io.reactivex.SingleObserver;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
+
import static com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE;
/**
@@ -37,7 +52,7 @@ import static com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerCons
*
* 描述
*/
-public class EntrancePresenter extends Presenter< EntranceView > {
+public class EntrancePresenter extends Presenter {
private static final String REPORT_TANLU_BLOCK = "10007";
private static final String REPORT_TANLU_TRAFFIC_CHECK = "10002";
private static final String REPORT_TANLU_CLOSURE = "10003";
@@ -50,27 +65,44 @@ public class EntrancePresenter extends Presenter< EntranceView > {
private String mVoiceCmdType; //一级命令
private String mVoiceCmdShareType; //对某些一级命令里面细分的类型做处理
private IMogoStatusManager mStatusManager;
+ private IMogoNetwork mNetWork;
+ private UserInfo userInfo = null;
- public EntrancePresenter( Context context, EntranceView view, IMogoAuthorizeModuleManager authorizeModuleManager ) {
- super( view );
+ public EntrancePresenter(Context context, EntranceView view,
+ IMogoAuthorizeModuleManager authorizeModuleManager) {
+ super(view);
mContext = context;
- IMogoServiceApis apis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( mContext );
+ IMogoServiceApis apis =
+ (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(mContext);
mAnalytics = apis.getAnalyticsApi();
mogoIntentManager = apis.getIntentManagerApi();
mIMogoAuthorizeModuleManager = authorizeModuleManager;
mStatusManager = apis.getStatusManagerApi();
+ mNetWork = apis.getNetworkApi();
+
+
registerUnWake();
registerAwakeVoice();
}
private void registerUnWake() {
-// AIAssist.getInstance( mContext ).registerUnWakeupCommand( ExtensionsModuleConst.CLOSE, ExtensionsModuleConst.CMD_CLOSE, mogoVoiceListener );
- AIAssist.getInstance( mContext ).registerUnWakeupCommand( ExtensionsModuleConst.CANCLE_SHARE, ExtensionsModuleConst.CMD_CANCLE_SHARE, mogoVoiceListener );
+// AIAssist.getInstance( mContext ).registerUnWakeupCommand( ExtensionsModuleConst.CLOSE,
+// ExtensionsModuleConst.CMD_CLOSE, mogoVoiceListener );
+ AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.CANCLE_SHARE
+ , ExtensionsModuleConst.CMD_CANCLE_SHARE, mogoVoiceListener);
//探路相关上报
- AIAssist.getInstance( mContext ).registerUnWakeupCommand( ExtensionsModuleConst.UPLOAD_ROAD_BLOCK, ExtensionsModuleConst.CMD_UPLOAD_BLOCK, mogoVoiceListener );
- AIAssist.getInstance( mContext ).registerUnWakeupCommand( ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK, ExtensionsModuleConst.CMD_TRAFFIC_CHECK, mogoVoiceListener );
- AIAssist.getInstance( mContext ).registerUnWakeupCommand( ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE, ExtensionsModuleConst.CMD_ROAD_CLOSURE, mogoVoiceListener );
+ AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK, ExtensionsModuleConst.CMD_UPLOAD_BLOCK, mogoVoiceListener);
+ AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK, ExtensionsModuleConst.CMD_TRAFFIC_CHECK, mogoVoiceListener);
+ AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE, ExtensionsModuleConst.CMD_ROAD_CLOSURE, mogoVoiceListener);
+ }
+
+ @Override
+ public void onResume(@NonNull LifecycleOwner owner) {
+ super.onResume(owner);
+ if (ExtensionsConfig.needRequestUserInfo() && userInfo == null) {
+ requestUserInfo();
+ }
}
/**
@@ -78,31 +110,32 @@ public class EntrancePresenter extends Presenter< EntranceView > {
*/
private IMogoVoiceCmdCallBack mogoVoiceListener = new IMogoVoiceCmdCallBack() {
@Override
- public void onCmdSelected( String cmd ) {
- Log.d( TAG, "免唤醒 mogoVoiceListener needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) + " >>>cmd = " + cmd );
+ public void onCmdSelected(String cmd) {
+ Log.d(TAG,
+ "免唤醒 mogoVoiceListener needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE) + " >>>cmd = " + cmd);
mVoiceCmdType = cmd;
- if ( cmd.equals( ExtensionsModuleConst.CANCLE_SHARE )
- /*|| cmd.equals( ExtensionsModuleConst.CLOSE ) */ ) { //取消分享,关闭页面
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ if (cmd.equals(ExtensionsModuleConst.CANCLE_SHARE)
+ /*|| cmd.equals( ExtensionsModuleConst.CLOSE ) */) { //取消分享,关闭页面
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
- ShareControl.getInstance( mContext ).dismissDialog();
+ ShareControl.getInstance(mContext).dismissDialog();
}
- } else if ( cmd.equals( ExtensionsModuleConst.UPLOAD_ROAD_BLOCK ) ) { //上报拥堵
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)) { //上报拥堵
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
uploadRoadCondition();
}
- } else if ( cmd.equals( ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK ) ) { //上报交通检查
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
uploadTrfficCheck();
}
- } else if ( cmd.equals( ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE ) ) { //上报封路
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
uploadRoadClosed();
}
@@ -110,37 +143,40 @@ public class EntrancePresenter extends Presenter< EntranceView > {
}
@Override
- public void onCmdAction( String speakText ) {
+ public void onCmdAction(String speakText) {
}
@Override
- public void onCmdCancel( String speakText ) {
+ public void onCmdCancel(String speakText) {
}
@Override
- public void onSpeakEnd( String speakText ) {
+ public void onSpeakEnd(String speakText) {
}
@Override
- public void onSpeakSelectTimeOut( String speakText ) {
+ public void onSpeakSelectTimeOut(String speakText) {
}
};
@Override
- public void onCreate( @NonNull LifecycleOwner owner ) {
- super.onCreate( owner );
+ public void onCreate(@NonNull LifecycleOwner owner) {
+ super.onCreate(owner);
}
/**
* 注册唤醒命令
*/
private void registerAwakeVoice() {
- mogoIntentManager.registerIntentListener( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION, mogoIntentListener );
+ mogoIntentManager.registerIntentListener(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION,
+ mogoIntentListener);
- mogoIntentManager.registerIntentListener( ExtensionsModuleConst.GO_TO_SHARE, mogoIntentListener );
- mogoIntentManager.registerIntentListener( ExtensionsModuleConst.SHARE_DIALOG_CLOSE, mogoIntentListener );
- mogoIntentManager.registerIntentListener( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN, mogoIntentListener );
- mogoIntentManager.registerIntentListener( ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE, mogoIntentListener );
+ mogoIntentManager.registerIntentListener(ExtensionsModuleConst.GO_TO_SHARE,
+ mogoIntentListener);
+ mogoIntentManager.registerIntentListener(ExtensionsModuleConst.SHARE_DIALOG_CLOSE,
+ mogoIntentListener);
+ mogoIntentManager.registerIntentListener(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN, mogoIntentListener);
+ mogoIntentManager.registerIntentListener(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE, mogoIntentListener);
}
/**
@@ -148,66 +184,68 @@ public class EntrancePresenter extends Presenter< EntranceView > {
*/
private IMogoIntentListener mogoIntentListener = new IMogoIntentListener() {
@Override
- public void onIntentReceived( String intentStr, Intent intent ) {
+ public void onIntentReceived(String intentStr, Intent intent) {
mVoiceCmdType = intentStr;
EntranceFragment.isClickShare = false;
- String data = intent.getStringExtra( "data" );
- Log.d( TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data + " >>> needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) );
- if ( intentStr.equals( ExtensionsModuleConst.GO_TO_SHARE ) ) { //我要分享 --ok
- String conditionData = intent.getStringExtra( "data" );
- Log.d( TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>conditionData =" + conditionData );
+ String data = intent.getStringExtra("data");
+ Log.d(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data + " " +
+ ">>> needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE));
+ if (intentStr.equals(ExtensionsModuleConst.GO_TO_SHARE)) { //我要分享 --ok
+ String conditionData = intent.getStringExtra("data");
+ Log.d(TAG,
+ "唤醒 mogoIntentListener intentStr =" + intentStr + ">>conditionData =" + conditionData);
try {
- JSONObject jsonObject = new JSONObject( data );
- String typeString = jsonObject.get( "ob" ).toString();
- Log.d( TAG, "mogoIntentListener specified typeString = " + typeString );
+ JSONObject jsonObject = new JSONObject(data);
+ String typeString = jsonObject.get("ob").toString();
+ Log.d(TAG, "mogoIntentListener specified typeString = " + typeString);
mVoiceCmdShareType = typeString;
- if ( !TextUtils.isEmpty( typeString ) ) {
- if ( typeString.equals( "封路" ) ) {
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ if (!TextUtils.isEmpty(typeString)) {
+ if (typeString.equals("封路")) {
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
- Log.d( TAG, "mogoIntentListener 封路 -------> " );
+ Log.d(TAG, "mogoIntentListener 封路 -------> ");
uploadRoadClosed();
}
- } else if ( typeString.equals( "油价" ) ) {
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ } else if (typeString.equals("油价")) {
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
- Log.d( TAG, "mogoIntentListener 油价 -------> " );
+ Log.d(TAG, "mogoIntentListener 油价 -------> ");
shareOilPrice();
}
- } else if ( typeString.equals( "交通检查" ) ) {
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ } else if (typeString.equals("交通检查")) {
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
- Log.d( TAG, "mogoIntentListener 交通检查 -------> " );
+ Log.d(TAG, "mogoIntentListener 交通检查 -------> ");
uploadTrfficCheck();
}
}
} else {
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
- ShareControl.getInstance( mContext ).showDialog();
- Log.d( TAG, "mogoIntentListener 我要分享 ----> " );
- traceData( "2" );
+ ShareControl.getInstance(mContext).showDialog();
+ Log.d(TAG, "mogoIntentListener 我要分享 ----> ");
+ traceData("2");
}
}
- } catch ( Exception e ) {
+ } catch (Exception e) {
e.printStackTrace();
}
- } else if ( intentStr.equals( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN ) ) {
+ } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN)) {
//分享路况/上报路况/上报拥堵 唤醒
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
JSONObject jsonObject = null;
try {
- jsonObject = new JSONObject( data );
- String typeString = jsonObject.get( "obj" ).toString();
+ jsonObject = new JSONObject(data);
+ String typeString = jsonObject.get("obj").toString();
Logger.d(TAG, "mogiIntentListener 准备上报拥堵: " + typeString);
- if("拥堵".equals(typeString)) {
+ if ("拥堵".equals(typeString)) {
uploadRoadCondition();
Log.d(TAG, "mogoIntentListener 上报拥堵 唤醒 ----> ");
}
@@ -216,24 +254,25 @@ public class EntrancePresenter extends Presenter< EntranceView > {
}
}
- } else if ( intentStr.equals( ExtensionsModuleConst.SHARE_DIALOG_CLOSE ) ) { //关闭分享框 唤醒
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ } else if (intentStr.equals(ExtensionsModuleConst.SHARE_DIALOG_CLOSE)) { //关闭分享框 唤醒
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
- ShareControl.getInstance( mContext ).dismissDialog();
- Log.d( TAG, "mogoIntentListener 关闭分享框 唤醒 ----> " );
+ ShareControl.getInstance(mContext).dismissDialog();
+ Log.d(TAG, "mogoIntentListener 关闭分享框 唤醒 ----> ");
}
- } else if ( intentStr.equals( ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE ) ) {
+ } else if (intentStr.equals(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE)) {
// 两次未回复关闭对话框
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
- ShareControl.getInstance( mContext ).dismissDialog();
- Logger.d( TAG, "mogoIntentListener 两次未回复关闭对话框" );
+ ShareControl.getInstance(mContext).dismissDialog();
+ Logger.d(TAG, "mogoIntentListener 两次未回复关闭对话框");
}
- } else if ( intentStr.equals( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION ) ) { //上报路况 免唤醒 --ok
- if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
- mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
+ } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION)) { //上报路况
+ // 免唤醒 --ok
+ if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE);
} else {
uploadRoadCondition();
}
@@ -246,69 +285,71 @@ public class EntrancePresenter extends Presenter< EntranceView > {
* 处理需要授权的命令 TODO
*/
public void handleNeedAuthorizeCmd() {
- Log.e( TAG, "handleNeedAuthorizeCmd mVoiceCmdType = " + mVoiceCmdType + " >>> mVoiceCmdShareType = " + mVoiceCmdShareType );
- if ( !TextUtils.isEmpty( mVoiceCmdType ) ) {
- if ( mVoiceCmdType.equals( ExtensionsModuleConst.CANCLE_SHARE ) || mVoiceCmdType.equals( ExtensionsModuleConst.CLOSE )
- || mVoiceCmdType.equals( ExtensionsModuleConst.SHARE_DIALOG_CLOSE ) || mVoiceCmdType.equals( ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE ) ) { //关闭分享弹框
- ShareControl.getInstance( mContext ).dismissDialog();
- } else if ( mVoiceCmdType.equals( ExtensionsModuleConst.GO_TO_SHARE ) ) { //打开分享弹框
- if ( !TextUtils.isEmpty( mVoiceCmdShareType ) ) {
- if ( mVoiceCmdShareType.equals( "封路" ) ) {
- Log.d( TAG, "handleNeedAuthorizeCmd 封路 -------> " );
+ Log.e(TAG, "handleNeedAuthorizeCmd mVoiceCmdType = " + mVoiceCmdType + " >>> " +
+ "mVoiceCmdShareType = " + mVoiceCmdShareType);
+ if (!TextUtils.isEmpty(mVoiceCmdType)) {
+ if (mVoiceCmdType.equals(ExtensionsModuleConst.CANCLE_SHARE) || mVoiceCmdType.equals(ExtensionsModuleConst.CLOSE)
+ || mVoiceCmdType.equals(ExtensionsModuleConst.SHARE_DIALOG_CLOSE) || mVoiceCmdType.equals(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE)) { //关闭分享弹框
+ ShareControl.getInstance(mContext).dismissDialog();
+ } else if (mVoiceCmdType.equals(ExtensionsModuleConst.GO_TO_SHARE)) { //打开分享弹框
+ if (!TextUtils.isEmpty(mVoiceCmdShareType)) {
+ if (mVoiceCmdShareType.equals("封路")) {
+ Log.d(TAG, "handleNeedAuthorizeCmd 封路 -------> ");
uploadRoadClosed();
- } else if ( mVoiceCmdShareType.equals( "油价" ) ) {
- Log.d( TAG, "handleNeedAuthorizeCmd 油价 -------> " );
+ } else if (mVoiceCmdShareType.equals("油价")) {
+ Log.d(TAG, "handleNeedAuthorizeCmd 油价 -------> ");
shareOilPrice();
- } else if ( mVoiceCmdShareType.equals( "交通检查" ) ) {
- Log.d( TAG, "handleNeedAuthorizeCmd 交通检查 -------> " );
+ } else if (mVoiceCmdShareType.equals("交通检查")) {
+ Log.d(TAG, "handleNeedAuthorizeCmd 交通检查 -------> ");
uploadTrfficCheck();
}
} else {
- ShareControl.getInstance( mContext ).showDialog();
- Log.d( TAG, "handleNeedAuthorizeCmd 我要分享 ----> " );
- traceData( "2" );
+ ShareControl.getInstance(mContext).showDialog();
+ Log.d(TAG, "handleNeedAuthorizeCmd 我要分享 ----> ");
+ traceData("2");
}
- } else if ( mVoiceCmdType.equals( ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK ) ) { //上报交通检查
- Log.d( TAG, "handleNeedAuthorizeCmd 上报交通检查 ----> " );
+ } else if (mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查
+ Log.d(TAG, "handleNeedAuthorizeCmd 上报交通检查 ----> ");
uploadTrfficCheck();
- } else if ( mVoiceCmdType.equals( ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE ) ) { //上报封路
- Log.d( TAG, "handleNeedAuthorizeCmd 上报封路 ----> " );
+ } else if (mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路
+ Log.d(TAG, "handleNeedAuthorizeCmd 上报封路 ----> ");
uploadRoadClosed();
- } else if ( mVoiceCmdType.equals( ExtensionsModuleConst.UPLOAD_ROAD_BLOCK )
- || mVoiceCmdType.equals( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN )
- || mVoiceCmdType.equals( ExtensionsModuleConst.UPLOAD_ROAD_CONDITION ) ) { //上报拥堵, 分享路况, 上报路况
- Log.d( TAG, "handleNeedAuthorizeCmd 上报路况 ----> " );
+ } else if (mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)
+ || mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN)
+ || mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION)) {
+ //上报拥堵, 分享路况, 上报路况
+ Log.d(TAG, "handleNeedAuthorizeCmd 上报路况 ----> ");
uploadRoadCondition();
}
} else {
- Log.e( TAG, "handleNeedAuthorizeCmd mVoiceCmdType == null " );
+ Log.e(TAG, "handleNeedAuthorizeCmd mVoiceCmdType == null ");
}
}
private void uploadRoadCondition() {
- mStatusManager.setUploadingStatus( "CARD_TYPE_ROAD_CONDITION", true );
+ mStatusManager.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true);
- traceTanluData( "2" );
- sendShareReceiver( REPORT_TANLU_BLOCK );
- Logger.d( "EntrancePresenter", "mogoIntentListener 上报路况 ----> " );
- traceTypeData( "1" );
- ShareControl.getInstance( mContext ).dismissDialog();
+ traceTanluData("2");
+ sendShareReceiver(REPORT_TANLU_BLOCK);
+ Logger.d("EntrancePresenter", "mogoIntentListener 上报路况 ----> ");
+ traceTypeData("1");
+ ShareControl.getInstance(mContext).dismissDialog();
}
private void uploadTrfficCheck() {
- mStatusManager.setUploadingStatus( "CARD_TYPE_ROAD_CONDITION", true );
- sendShareReceiver( REPORT_TANLU_TRAFFIC_CHECK );
- Logger.d( "EntrancePresenter", "mogoIntentListener 分享交通检查 ----> " );
- traceTypeData( "3" );
- ShareControl.getInstance( mContext ).dismissDialog();
+ mStatusManager.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true);
+ sendShareReceiver(REPORT_TANLU_TRAFFIC_CHECK);
+ Logger.d("EntrancePresenter", "mogoIntentListener 分享交通检查 ----> ");
+ traceTypeData("3");
+ ShareControl.getInstance(mContext).dismissDialog();
}
private void uploadRoadClosed() {
- mStatusManager.setUploadingStatus( "CARD_TYPE_ROAD_CONDITION", true );
- sendShareReceiver( REPORT_TANLU_CLOSURE );
- Logger.d( "EntrancePresenter", "mogoIntentListener 分享封路 ----> " );
- traceTypeData( "4" );
- ShareControl.getInstance( mContext ).dismissDialog();
+ mStatusManager.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true);
+ sendShareReceiver(REPORT_TANLU_CLOSURE);
+ Logger.d("EntrancePresenter", "mogoIntentListener 分享封路 ----> ");
+ traceTypeData("4");
+ ShareControl.getInstance(mContext).dismissDialog();
}
/**
@@ -316,10 +357,10 @@ public class EntrancePresenter extends Presenter< EntranceView > {
*
* @param from
*/
- private void traceData( String from ) {
- Map< String, Object > properties = new HashMap<>();
- properties.put( "from", from );
- mAnalytics.track( ExtensionsModuleConst.LAUNCHER_SHARE_CLICK, properties );
+ private void traceData(String from) {
+ Map properties = new HashMap<>();
+ properties.put("from", from);
+ mAnalytics.track(ExtensionsModuleConst.LAUNCHER_SHARE_CLICK, properties);
}
private void shareOilPrice() {
@@ -333,14 +374,14 @@ public class EntrancePresenter extends Presenter< EntranceView > {
/**
* 发送广播 上报路况
*/
- private void sendShareReceiver( String type ) {
- Logger.d( "EntrancePresenter", "TanluCardViewFragment sendShareReceiver ---->" );
+ private void sendShareReceiver(String type) {
+ Logger.d("EntrancePresenter", "TanluCardViewFragment sendShareReceiver ---->");
Intent intent = new Intent();
- intent.setAction( "com.zhidao.roadcondition.share" );
- intent.addFlags( Intent.FLAG_RECEIVER_FOREGROUND );
- intent.addFlags( Intent.FLAG_INCLUDE_STOPPED_PACKAGES );
- intent.putExtra( "type", type );
- getContext().sendBroadcast( intent );
+ intent.setAction("com.zhidao.roadcondition.share");
+ intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+ intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
+ intent.putExtra("type", type);
+ getContext().sendBroadcast(intent);
}
/**
@@ -354,24 +395,68 @@ public class EntrancePresenter extends Presenter< EntranceView > {
*
* @param type
*/
- private void traceTypeData( String type ) {
- Map< String, Object > properties = new HashMap<>();
- properties.put( "type", type );
- mAnalytics.track( ExtensionsModuleConst.LAUNCHER_SHARE_TYPE, properties );
+ private void traceTypeData(String type) {
+ Map properties = new HashMap<>();
+ properties.put("type", type);
+ mAnalytics.track(ExtensionsModuleConst.LAUNCHER_SHARE_TYPE, properties);
}
- private void traceTanluData( String type ) {
- Map< String, Object > properties = new HashMap<>();
- properties.put( "type", type );
- mAnalytics.track( ExtensionsModuleConst.CARNET_USER_UPLOAD, properties );
+ private void traceTanluData(String type) {
+ Map properties = new HashMap<>();
+ properties.put("type", type);
+ mAnalytics.track(ExtensionsModuleConst.CARNET_USER_UPLOAD, properties);
}
public void unregisterUnWake() {
- AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ExtensionsModuleConst.CANCLE_SHARE );
- AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ExtensionsModuleConst.CLOSE );
- AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ExtensionsModuleConst.UPLOAD_ROAD_BLOCK );
- AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK );
- AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE );
+ AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.CANCLE_SHARE);
+ AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.CLOSE);
+ AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK);
+ AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK);
+ AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE);
+ }
+
+ public void requestUserInfo() {
+ Map params = new ArrayMap<>();
+ params.put("sn", DeviceUtil.getSn());
+ params.put("source", "2");
+ String sign = createSign(params, "JGqZw9");
+ params.put("sig", sign);
+ mNetWork.create(UserInfoNetApiServices.class, UserInfoConstant.getUserInfoBaseUrl()).requestUserInfo(params).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new SingleObserver() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ }
+
+ @Override
+ public void onSuccess(UserInfoResponse userInfoBaseResponse) {
+ userInfo = userInfoBaseResponse.getResult();
+ Logger.d(TAG, "获取个人信息成功: " + userInfo);
+ mView.refreshUserInfo(userInfo);
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ e.printStackTrace();
+ Logger.e(TAG, e, "获取个人信息失败==");
+ }
+ });
+ }
+
+ private String createSign(Map map, String salt) {
+ try {
+ StringBuilder queryString = new StringBuilder();
+ for (Map.Entry entry : map.entrySet()) {
+ queryString.append(entry.getKey())
+ .append("=")
+ .append(entry.getValue())
+ .append("&");
+ }
+ queryString.append("key=").append(DigestUtils.shaHex(salt));
+ return DigestUtils.shaHex(queryString.toString()).toUpperCase();
+ } catch (Exception e) {
+ e.printStackTrace();
+ Logger.e(TAG, e, "createSign()");
+ return "";
+ }
}
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java
index 55f070eb71..51fe0b568f 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceView.java
@@ -1,6 +1,7 @@
package com.mogo.module.extensions.entrance;
import com.mogo.commons.mvp.IView;
+import com.mogo.module.extensions.userinfo.UserInfo;
/**
* @author congtaowang
@@ -10,4 +11,6 @@ import com.mogo.commons.mvp.IView;
*/
public interface EntranceView extends IView {
+ void refreshUserInfo(UserInfo userInfo);
+
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/net/UserInfoNetApiServices.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/net/UserInfoNetApiServices.java
new file mode 100644
index 0000000000..ea1e864391
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/net/UserInfoNetApiServices.java
@@ -0,0 +1,26 @@
+package com.mogo.module.extensions.net;
+
+import com.mogo.module.authorize.model.BaseResponse;
+import com.mogo.module.extensions.userinfo.UserInfo;
+import com.mogo.module.extensions.userinfo.UserInfoResponse;
+
+import java.util.Map;
+
+import io.reactivex.Single;
+import retrofit2.http.GET;
+import retrofit2.http.QueryMap;
+
+/**
+ * 个人信息的获取api接口,baseUrl跟其他不太一样
+ *
+ * @author tongchenfei
+ */
+public interface UserInfoNetApiServices {
+ /**
+ * 获取用户个人信息
+ * @param params 参数
+ * @return Observer
+ */
+ @GET("carlife/carMachine/getAccountInfo")
+ Single requestUserInfo(@QueryMap Map params);
+}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/Address.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/Address.java
new file mode 100644
index 0000000000..7b197b2223
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/Address.java
@@ -0,0 +1,27 @@
+package com.mogo.module.extensions.userinfo;
+
+/**
+ * 用户的家和公司位置信息封装,用于接口获取
+ *
+ * @author tongchenfei
+ */
+public class Address {
+ private String companyAddress;
+ private String homeAddress;
+
+ public String getCompanyAddress() {
+ return companyAddress;
+ }
+
+ public void setCompanyAddress(String companyAddress) {
+ this.companyAddress = companyAddress;
+ }
+
+ public String getHomeAddress() {
+ return homeAddress;
+ }
+
+ public void setHomeAddress(String homeAddress) {
+ this.homeAddress = homeAddress;
+ }
+}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfo.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfo.java
new file mode 100644
index 0000000000..9526e292a9
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfo.java
@@ -0,0 +1,98 @@
+package com.mogo.module.extensions.userinfo;
+
+/**
+ * 用户的个人信息
+ *
+ * @author tongchenfei
+ */
+public class UserInfo {
+ private String userId;
+
+ private String phone;
+
+ private String displayName;
+
+ private Address additionalOne;
+
+ private String headImgurl;
+
+ private int ownerAuthState;
+
+ private int score;
+
+ private String memberLevel;
+
+ private String activeTime;
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public Address getAdditionalOne() {
+ return additionalOne;
+ }
+
+ public void setAdditionalOne(Address additionalOne) {
+ this.additionalOne = additionalOne;
+ }
+
+ public String getHeadImgurl() {
+ return headImgurl;
+ }
+
+ public void setHeadImgurl(String headImgurl) {
+ this.headImgurl = headImgurl;
+ }
+
+ public int getOwnerAuthState() {
+ return ownerAuthState;
+ }
+
+ public void setOwnerAuthState(int ownerAuthState) {
+ this.ownerAuthState = ownerAuthState;
+ }
+
+ public int getScore() {
+ return score;
+ }
+
+ public void setScore(int score) {
+ this.score = score;
+ }
+
+ public String getMemberLevel() {
+ return memberLevel;
+ }
+
+ public void setMemberLevel(String memberLevel) {
+ this.memberLevel = memberLevel;
+ }
+
+ public String getActiveTime() {
+ return activeTime;
+ }
+
+ public void setActiveTime(String activeTime) {
+ this.activeTime = activeTime;
+ }
+}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfoConstant.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfoConstant.java
new file mode 100644
index 0000000000..27f9df7ea8
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfoConstant.java
@@ -0,0 +1,25 @@
+package com.mogo.module.extensions.userinfo;
+
+import com.mogo.commons.debug.DebugConfig;
+
+/**
+ * 个人信息相关常量
+ *
+ * @author tongchenfei
+ */
+public class UserInfoConstant {
+ private static final String DEV_BASE_URL = "http://carlife-dev.zhidaohulian.com/";
+ private static final String QA_BASE_URL = "http://carlife-test.zhidaohulian.com/";
+ private static final String NORMAL_BASE_URL = "http://api.zhidaohulian.com/";
+
+ public static String getUserInfoBaseUrl(){
+ switch (DebugConfig.getNetMode()) {
+ case DebugConfig.NET_MODE_DEV:
+ return DEV_BASE_URL;
+ case DebugConfig.NET_MODE_RELEASE:
+ return NORMAL_BASE_URL;
+ default:
+ return QA_BASE_URL;
+ }
+ }
+}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfoResponse.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfoResponse.java
new file mode 100644
index 0000000000..52be691f49
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/UserInfoResponse.java
@@ -0,0 +1,36 @@
+package com.mogo.module.extensions.userinfo;
+
+/**
+ * 用户信息响应封装类
+ *
+ * @author tongchenfei
+ */
+public class UserInfoResponse {
+ private String errmsg;
+ private int errno;
+ private UserInfo result;
+
+ public String getErrmsg() {
+ return errmsg;
+ }
+
+ public void setErrmsg(String errmsg) {
+ this.errmsg = errmsg;
+ }
+
+ public int getErrno() {
+ return errno;
+ }
+
+ public void setErrno(int errno) {
+ this.errno = errno;
+ }
+
+ public UserInfo getResult() {
+ return result;
+ }
+
+ public void setResult(UserInfo result) {
+ this.result = result;
+ }
+}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/ExtensionsConfig.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/ExtensionsConfig.java
new file mode 100644
index 0000000000..5a30481123
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/ExtensionsConfig.java
@@ -0,0 +1,20 @@
+package com.mogo.module.extensions.utils;
+
+/**
+ * 个性化config
+ *
+ * @author tongchenfei
+ */
+public class ExtensionsConfig {
+ public static final String NEED_REQUEST_USER_INFO = "NEED_REQUEST_USER_INFO";
+
+ private static boolean needRequestUserInfo = false;
+
+ public static boolean needRequestUserInfo() {
+ return needRequestUserInfo;
+ }
+
+ public static void setNeedRequestUserInfo(boolean needRequestUserInfo) {
+ ExtensionsConfig.needRequestUserInfo = needRequestUserInfo;
+ }
+}