添加个人信息请求接口

This commit is contained in:
tongchenfei
2020-06-03 17:10:21 +08:00
parent 4032b21ee1
commit ccf3743c9b
10 changed files with 477 additions and 153 deletions

View File

@@ -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;
@@ -548,4 +545,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);
}
}

View File

@@ -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
* <p>
* 描述
*/
public class EntrancePresenter extends Presenter< EntranceView > {
public class EntrancePresenter extends Presenter<EntranceView> {
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<String, Object> 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<String, Object> 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<String, Object> 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<String, String> 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<UserInfoResponse>() {
@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<String, String> map, String salt) {
try {
StringBuilder queryString = new StringBuilder();
for (Map.Entry<String, String> 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 "";
}
}
}

View File

@@ -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);
}

View File

@@ -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<UserInfoResponse> requestUserInfo(@QueryMap Map<String, String> params);
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}