This commit is contained in:
wangcongtao
2020-04-15 16:25:25 +08:00
parent 2fdb909ea4
commit df1e308684
32 changed files with 749 additions and 482 deletions

View File

@@ -24,8 +24,6 @@ import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.navi.MogoCongestionInfo;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.overlay.IMogoPolyline;
import com.mogo.map.uicontroller.CarCursorOption;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant;
@@ -47,6 +45,7 @@ import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoAddressManager;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.utils.logger.Logger;
import java.util.HashMap;
import java.util.Map;
@@ -303,6 +302,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
public void onStartNavi() {
mSearch.setVisibility( View.GONE );
mCommonAddress.setVisibility( View.GONE );
mNaviInfo.setVisibility( View.VISIBLE );
mCameraMode.setVisibility( View.VISIBLE );
@@ -315,6 +315,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
public void onStopNavi() {
mSearch.setVisibility( View.VISIBLE );
mCommonAddress.setVisibility( View.VISIBLE );
mNaviInfo.setVisibility( View.GONE );
mCameraMode.setVisibility( View.GONE );
@@ -345,7 +346,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mSpeedLimit.setVisibility( View.INVISIBLE );
mSpeedLimitValue.setText( "--" );
} else {
mSpeedLimit.setVisibility( View.VISIBLE );
// 暂时不显示限速,等有好的显示方案在放开
mSpeedLimit.setVisibility( View.INVISIBLE );
mSpeedLimitValue.setText( String.valueOf( traffic.getSpeedLimit() ) );
}
}
@@ -380,6 +382,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mIsLock = isLock;
if ( isLock ) {
mExitNavi.setText( R.string.module_ext_str_exit_navi );
if ( mMogoStatusManager.isDisplayOverview() ) {
mMogoStatusManager.setDisplayOverview( TAG, false );
}
} else {
mExitNavi.setText( R.string.module_ext_str_continue_navi );
}
@@ -400,4 +405,32 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
properties.put( "from", from );
mAnalytics.track( "Launcher_Share_Click", properties );
}
@Override
public void showNaviPanelWidgets() {
if ( !mMogoNavi.isNaviing() ) {
return;
}
mNaviInfo.setVisibility( View.VISIBLE );
mCameraMode.setVisibility( View.VISIBLE );
try {
mApis.getWindowManagerApi().showAll();
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
}
}
@Override
public void hideNaviPanelWidgets() {
if ( !mMogoNavi.isNaviing() ) {
return;
}
mNaviInfo.setVisibility( View.GONE );
mCameraMode.setVisibility( View.GONE );
try {
mApis.getWindowManagerApi().hideAll();
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
}
}
}

View File

@@ -6,6 +6,9 @@ import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
@@ -14,10 +17,14 @@ import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant;
import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager;
import com.mogo.module.extensions.ExtensionsModuleConst;
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.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.logger.Logger;
import org.json.JSONObject;
@@ -33,7 +40,7 @@ import static com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerCons
* <p>
* 描述
*/
public class EntrancePresenter extends Presenter<EntranceView> {
public class EntrancePresenter extends Presenter< EntranceView > implements IMogoStatusChangedListener {
private Context mContext;
private IMogoAnalytics mAnalytics;
@@ -42,32 +49,28 @@ public class EntrancePresenter extends Presenter<EntranceView> {
private IMogoAuthorizeModuleManager mIMogoAuthorizeModuleManager;
private String mVoiceCmdType; //一级命令
private String mVoiceCmdShareType; //对某些一级命令里面细分的类型做处理
private IMogoStatusManager mStatusManager;
public EntrancePresenter(Context context, EntranceView view, IMogoAuthorizeModuleManager authorizeModuleManager) {
super(view);
public EntrancePresenter( Context context, EntranceView view, IMogoAuthorizeModuleManager authorizeModuleManager ) {
super( view );
mContext = context;
mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(getContext());
mogoIntentManager = (IMogoIntentManager) ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation(getContext());
IMogoServiceApis apis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( mContext );
mAnalytics = apis.getAnalyticsApi();
mogoIntentManager = apis.getIntentManagerApi();
mIMogoAuthorizeModuleManager = authorizeModuleManager;
mStatusManager = apis.getStatusManagerApi();
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 );
}
/**
@@ -75,31 +78,31 @@ 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();
}
@@ -107,32 +110,38 @@ 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 );
mStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.DISPLAY_OVERVIEW, this );
}
/**
* 注册唤醒命令
*/
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 );
}
/**
@@ -140,81 +149,81 @@ 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 {
uploadRoadCondition();
Log.d(TAG, "mogoIntentListener 分享路况 唤醒 ----> ");
Log.d( TAG, "mogoIntentListener 分享路况 唤醒 ----> " );
}
} 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();
}
@@ -227,65 +236,65 @@ 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() {
traceTanluData("2");
sendShareReceiver("1");
Logger.d("EntrancePresenter", "mogoIntentListener 上报路况 ----> ");
traceTypeData("1");
ShareControl.getInstance(mContext).dismissDialog();
traceTanluData( "2" );
sendShareReceiver( "1" );
Logger.d( "EntrancePresenter", "mogoIntentListener 上报路况 ----> " );
traceTypeData( "1" );
ShareControl.getInstance( mContext ).dismissDialog();
}
private void uploadTrfficCheck() {
sendShareReceiver("2");
Logger.d("EntrancePresenter", "mogoIntentListener 分享交通检查 ----> ");
traceTypeData("3");
ShareControl.getInstance(mContext).dismissDialog();
sendShareReceiver( "2" );
Logger.d( "EntrancePresenter", "mogoIntentListener 分享交通检查 ----> " );
traceTypeData( "3" );
ShareControl.getInstance( mContext ).dismissDialog();
}
private void uploadRoadClosed() {
sendShareReceiver("3");
Logger.d("EntrancePresenter", "mogoIntentListener 分享封路 ----> ");
traceTypeData("4");
ShareControl.getInstance(mContext).dismissDialog();
sendShareReceiver( "3" );
Logger.d( "EntrancePresenter", "mogoIntentListener 分享封路 ----> " );
traceTypeData( "4" );
ShareControl.getInstance( mContext ).dismissDialog();
}
/**
@@ -293,10 +302,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() {
@@ -310,14 +319,14 @@ public class EntrancePresenter extends Presenter<EntranceView> {
/**
* 发送广播 1拥堵2交通检查3封路
*/
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 );
}
/**
@@ -331,27 +340,35 @@ 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 );
}
@Override
public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
if ( descriptor == StatusDescriptor.DISPLAY_OVERVIEW ) {
if ( isTrue ) {
mView.hideNaviPanelWidgets();
} else {
mView.showNaviPanelWidgets();
}
}
}
}

View File

@@ -9,4 +9,8 @@ import com.mogo.commons.mvp.IView;
* 描述
*/
public interface EntranceView extends IView {
void showNaviPanelWidgets();
void hideNaviPanelWidgets();
}