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/src/nwd/AndroidManifest.xml b/app/src/nwd/AndroidManifest.xml index c11d678710..ba50fd7bec 100644 --- a/app/src/nwd/AndroidManifest.xml +++ b/app/src/nwd/AndroidManifest.xml @@ -4,7 +4,6 @@ package="com.mogo.launcher" android:sharedUserId="android.uid.system"> - 20 ) { + mDefaultZoomLevel = 20; + } } else { - mMapView.zoomOut(); + mDefaultZoomLevel -= 1.5f; + if ( mDefaultZoomLevel < 1 ) { + mDefaultZoomLevel = 1; + } } - Logger.i( TAG, "mapview zoom = " + mMapView.getMap().getCameraPosition().zoom ); + changeZoom( mDefaultZoomLevel ); + Logger.i( TAG, "mapview zoom = " + mDefaultZoomLevel ); } } 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 a2bba90a73..be606e22e7 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 @@ -2,6 +2,7 @@ package com.mogo.module.extensions.entrance; import android.content.Intent; import android.graphics.Color; +import android.graphics.Rect; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; @@ -54,6 +55,7 @@ import com.mogo.service.module.IMogoAddressManager; import com.mogo.service.module.IMogoModuleProvider; import com.mogo.service.module.IMogoRegisterCenter; import com.mogo.service.statusmanager.IMogoStatusManager; +import com.mogo.utils.WindowUtils; import java.util.ArrayList; import java.util.Arrays; @@ -61,6 +63,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import retrofit2.http.HEAD; + /** * @author congtaowang * @since 2020-01-07 @@ -117,6 +121,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private TextView ivMode; private IMogoPolyline iMogoPolyline; + public static boolean isClickShare; @Override protected int getLayoutId() { @@ -127,9 +132,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent protected void initViews() { mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() ); mIMogoAuthorizeModuleManager = (IMogoAuthorizeModuleManager) ARouter.getInstance().build(AuthorizeConstant.PROVIDER_MODULE).navigation(getContext()); - mIMogoAuthorizeModuleManager.registerAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY, this); + mIMogoAuthorizeModuleManager.registerAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE, this); - mEntrancePresenter = new EntrancePresenter(getContext(), this, mIMogoAuthorizeModuleManager); + mEntrancePresenter = new EntrancePresenter( getContext(), this, mIMogoAuthorizeModuleManager ); mMogoFragmentManager = mApis.getFragmentManagerApi(); mMogoAddressManager = mApis.getAddressManagerApi(); @@ -138,7 +143,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mSearch = findViewById( R.id.module_entrance_id_search ); mSearch.setOnClickListener( view -> { - setMarkerStatus(true); + setMarkerStatus( true ); mSearchProvider = ( IMogoModuleProvider ) ARouter.getInstance() .build( MogoModulePaths.PATH_MODULE_SEARCH ) .navigation(); @@ -153,7 +158,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mHome = findViewById( R.id.module_entrance_id_home ); mHome.setOnClickListener( view -> { - setMarkerStatus(true); + setMarkerStatus( true ); mMogoAddressManager.goHome(); mApis.getAdasControllerApi().closeADAS(); @@ -161,7 +166,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mCompany = findViewById( R.id.module_entrance_id_company ); mCompany.setOnClickListener( view -> { - setMarkerStatus(true); + setMarkerStatus( true ); mMogoAddressManager.goCompany(); mApis.getAdasControllerApi().closeADAS(); @@ -169,11 +174,36 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mUploadRoadCondition = findViewById( R.id.module_entrance_id_upload_road_condition ); mUploadRoadCondition.setOnClickListener( view -> { - ShareControl.getInstance( getActivity() ).showDialog(); - traceData( "1" ); + isClickShare = true; + if (mIMogoAuthorizeModuleManager.needAuthorize()) { + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); + } else { + ShareControl.getInstance( getActivity() ).showDialog(); + traceData( "1" ); + } } ); mVRMode = findViewById( R.id.module_entrance_id_vr_mode ); mVRMode.setOnClickListener( view -> { + + mMogoStatusManager.setUserInteractionStatus( TAG, true, false ); + Rect mBoundRect = new Rect(); + final int paddingTop = WindowUtils.dip2px( getContext(), 250 ); + final int paddingBottom = WindowUtils.dip2px( getContext(), 150 ); + final int paddingRight = WindowUtils.dip2px( getContext(), 150 ); + final int paddingLeft = WindowUtils.dip2px( getContext(), 650 ); + + mBoundRect.bottom = paddingBottom; + mBoundRect.top = paddingTop; + mBoundRect.left = paddingLeft; + mBoundRect.right = paddingRight; + mMApUIController.showBounds( TAG, + new MogoLatLng( + mService.getSingletonLocationClient( getContext() ).getLastKnowLocation().getLatitude(), + mService.getSingletonLocationClient( getContext() ).getLastKnowLocation().getLongitude() + ), + Arrays.asList( new MogoLatLng( 39.9736012000, 116.4220762300 ) ), + mBoundRect, + false ); } ); mMove2CurrentLocation = findViewById( R.id.module_entrance_id_move2_current_location ); @@ -223,36 +253,38 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mSpeedLimitUnit = findViewById( R.id.module_entrance_id_speed_limit_unit ); - mApis.getIntentManagerApi().registerIntentListener(AUTONAVI_STANDARD_BROADCAST_RECV, new IMogoIntentListener() { - @Override public void onIntentReceived(String intentStr, Intent intent) { - int key_type = intent.getIntExtra("KEY_TYPE", 0); + mApis.getIntentManagerApi().registerIntentListener( AUTONAVI_STANDARD_BROADCAST_RECV, new IMogoIntentListener() { + @Override + public void onIntentReceived( String intentStr, Intent intent ) { + int key_type = intent.getIntExtra( "KEY_TYPE", 0 ); - int type = intent.getIntExtra("EXTRA_TYPE", -1); - int opera_type = intent.getIntExtra("EXTRA_OPERA", -1); - if (key_type == 10027) { - if (opera_type == 0) { - ivMode.setSelected(false); - } else if (opera_type == 1) { - ivMode.setSelected(true); + int type = intent.getIntExtra( "EXTRA_TYPE", -1 ); + int opera_type = intent.getIntExtra( "EXTRA_OPERA", -1 ); + if ( key_type == 10027 ) { + if ( opera_type == 0 ) { + ivMode.setSelected( false ); + } else if ( opera_type == 1 ) { + ivMode.setSelected( true ); } ivMode.setText( - getString( ivMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up ) ); + getString( ivMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up ) ); } } - }); + } ); } - protected void setMarkerStatus(boolean show){ + protected void setMarkerStatus( boolean show ) { mMogoStatusManager.setSearchUIShow( - MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, show + MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, show ); } private static final String AUTONAVI_STANDARD_BROADCAST_RECV = - "AUTONAVI_STANDARD_BROADCAST_RECV"; + "AUTONAVI_STANDARD_BROADCAST_RECV"; + @NonNull @Override protected EntrancePresenter createPresenter() { @@ -280,28 +312,34 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent @Override public void onDestroyView() { super.onDestroyView(); - if (mEntrancePresenter != null) { + if ( mEntrancePresenter != null ) { mEntrancePresenter.unregisterUnWake(); } - mIMogoAuthorizeModuleManager.unregisterAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + isClickShare = false; + mIMogoAuthorizeModuleManager.unregisterAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } @Override public void authorizeSuccess() { - Log.d(TAG, "authorizeSuccess --------> "); - mEntrancePresenter.handleNeedAuthorizeCmd(); + Log.d(TAG, "authorizeSuccess --------> isClickShare = " + isClickShare); + if (isClickShare) { + ShareControl.getInstance( getActivity() ).showDialog(); + traceData( "1" ); + } else { + mEntrancePresenter.handleNeedAuthorizeCmd(); + } } @Override - public void authorizeFailed(String errorMsg) { - Log.e(TAG, "authorizeFailed --------> "); + public void authorizeFailed( String errorMsg ) { + Log.e( TAG, "authorizeFailed --------> " ); } @Override - public void forbiddenVoiceWhenAuthorize(String cmd) { - Log.d(TAG, "forbiddenVoiceWhenAuthorize --------> "); + public void forbiddenVoiceWhenAuthorize( String cmd ) { + Log.d( TAG, "forbiddenVoiceWhenAuthorize --------> " ); } @@ -328,7 +366,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent ivMode.setVisibility( View.VISIBLE ); mExitNavi.setVisibility( View.VISIBLE ); mMApUIController.setPointToCenter( 0.675926, 0.77552 ); - mMApUIController.changeMapMode(ivMode.isSelected()?EnumMapUI.NorthUP_2D :EnumMapUI.CarUp_2D ); + mMApUIController.changeMapMode( ivMode.isSelected() ? EnumMapUI.NorthUP_2D : EnumMapUI.CarUp_2D ); } @Override @@ -339,7 +377,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mExitNavi.setVisibility( View.GONE ); mSpeedLimit.setVisibility( View.GONE ); mMApUIController.setPointToCenter( 0.66145, 0.590688 ); - mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D); + mMApUIController.changeMapMode( EnumMapUI.NorthUP_2D ); } @Override 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 00d5b691a4..fb797472a5 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 @@ -76,28 +76,30 @@ public class EntrancePresenter extends Presenter { public void onCmdSelected(String cmd) { Log.d(TAG, "免唤醒 mogoVoiceListener needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize() + " >>>cmd = " + cmd); mVoiceCmdType = cmd; + EntranceFragment.isClickShare = false; + if (cmd.equals(ExtensionsModuleConst.CANCLE_SHARE) || cmd.equals(ExtensionsModuleConst.CLOSE)) { //取消分享,关闭页面 if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { ShareControl.getInstance(mContext).dismissDialog(); } } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)) { //上报拥堵 if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { uploadRoadCondition(); } } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查 if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { uploadTrfficCheck(); } } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路 if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { uploadRoadClosed(); } @@ -140,6 +142,8 @@ public class EntrancePresenter extends Presenter { @Override 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()); if (intentStr.equals(ExtensionsModuleConst.GO_TO_SHARE)) { //我要分享 --ok @@ -153,21 +157,21 @@ public class EntrancePresenter extends Presenter { if (!TextUtils.isEmpty(typeString)) { if (typeString.equals("封路")) { if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { Log.d(TAG, "mogoIntentListener 封路 -------> "); uploadRoadClosed(); } } else if (typeString.equals("油价")) { if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { Log.d(TAG, "mogoIntentListener 油价 -------> "); shareOilPrice(); } } else if (typeString.equals("交通检查")) { if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { Log.d(TAG, "mogoIntentListener 交通检查 -------> "); uploadTrfficCheck(); @@ -175,7 +179,7 @@ public class EntrancePresenter extends Presenter { } } else { if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { ShareControl.getInstance(mContext).showDialog(); Log.d(TAG, "mogoIntentListener 我要分享 ----> "); @@ -188,14 +192,14 @@ public class EntrancePresenter extends Presenter { } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN)) { //分享路况/上报路况/上报拥堵 唤醒 if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { uploadRoadCondition(); Log.d(TAG, "mogoIntentListener 分享路况 唤醒 ----> "); } } else if (intentStr.equals(ExtensionsModuleConst.SHARE_DIALOG_CLOSE)) { //关闭分享框 唤醒 if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { ShareControl.getInstance(mContext).dismissDialog(); Log.d(TAG, "mogoIntentListener 关闭分享框 唤醒 ----> "); @@ -203,13 +207,17 @@ public class EntrancePresenter extends Presenter { } else if (intentStr.equals(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE)) { // 两次未回复关闭对话框 if (mIMogoAuthorizeModuleManager.needAuthorize()) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { ShareControl.getInstance(mContext).dismissDialog(); Logger.d(TAG, "mogoIntentListener 两次未回复关闭对话框"); } } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION)) { //上报路况 免唤醒 --ok + if (mIMogoAuthorizeModuleManager.needAuthorize()) { + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); + } else { uploadRoadCondition(); + } } } }; diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_right_arrow.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_right_arrow.png new file mode 100644 index 0000000000..348a125779 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_right_arrow.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_right_arrow.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_right_arrow.png new file mode 100644 index 0000000000..3482d56ece Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_right_arrow.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_grey_bottom_bkg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_grey_bottom_bkg.xml new file mode 100644 index 0000000000..68f51f1d56 --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_grey_bottom_bkg.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml index 2fb0371afd..46c37d2177 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml @@ -146,7 +146,7 @@ android:layout_height="@dimen/module_ext_operation_panel_vr_height" android:background="@drawable/module_ext_dw_top_corner_bkg" android:orientation="vertical" - android:visibility="gone"> + android:visibility="visible"> + app:layout_constraintTop_toTopOf="parent" /> - - - - + app:layout_constraintTop_toTopOf="parent"> + + + + + + + android:textColor="#FFFFFF" + android:textSize="@dimen/module_ext_weather_temp_desc_textSize" /> 24px 15px + + 9px + 9px + 18px + 18px + -1px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml index 05f3fc78bc..faf483cc84 100644 --- a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml @@ -88,4 +88,10 @@ 24px 28px + 17px + 17px + 36px + 36px + -2px + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values/dimens.xml b/modules/mogo-module-extensions/src/main/res/values/dimens.xml index bb5f4d1780..5e54d8ef68 100644 --- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml @@ -88,4 +88,10 @@ 24px 28px + 17px + 17px + 36px + 36px + -2px + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values/strings.xml b/modules/mogo-module-extensions/src/main/res/values/strings.xml index 52dbe4bee8..bb5d91252c 100644 --- a/modules/mogo-module-extensions/src/main/res/values/strings.xml +++ b/modules/mogo-module-extensions/src/main/res/values/strings.xml @@ -20,28 +20,31 @@ 退出导航 继续导航 退出全览 - 车头 - 正北 + 车头 + 正北 - + 你好小智,播放音乐 - 你好小智,我要听音乐 你好小智,播放赵磊的歌 你好小智,我想听成都 你好小智,打开导航 - 你好小智,我要去拉萨 + 你好小智,我要回家 你好小智,我要去加油站 你好小智,导航去西单商场 你好小智,打开行车记录仪 你好小智,打开收音机 你好小智,调频到97.4 - 你好小智,调频到103.9 你好小智,今天天气怎么样 - 你好小智,北京明天天气怎么样 你好小智,打开车聊聊 你好小智,我想聊天 你好小智,中关村堵不堵 - 你好小智,打开探路 - 你好小智,附近路况 + 你好小智,前方路况怎么样 + 你好小智,上报路况 + 你好小智,分享这首歌 + 你好小智,打开辅助驾驶 + 你好小智,查询附近的人 + 你好小智,音量开到百分之三十 + 你好小智,打开全部应用 + 你好小智,返回桌面 diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardIntroduceConfigs.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardIntroduceConfigs.java index 3c928968d1..70124fa932 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardIntroduceConfigs.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardIntroduceConfigs.java @@ -5,6 +5,7 @@ import android.content.Context; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.VoicePreemptType; import com.mogo.module.common.ModuleNames; +import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.utils.CommonUtils; import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; @@ -30,6 +31,7 @@ public class CardIntroduceConfigs { public static String sBroadcastConfigKey; public static Map< String, CardIntroduceConfig > sConfigs = new HashMap<>(); + private static IMogoStatusManager sStatusManager; static { sConfigs.put( ModuleNames.CARD_TYPE_BUSINESS_OPERATION, new CardIntroduceConfig( ModuleNames.CARD_TYPE_BUSINESS_OPERATION, "", 3 ) ); @@ -40,8 +42,8 @@ public class CardIntroduceConfigs { sConfigs.put( ModuleNames.CARD_TYPE_NOVELTY, new CardIntroduceConfig( ModuleNames.CARD_TYPE_NOVELTY, "新鲜事,邀你给同城车友分享沿途封路、拥堵消息", 0 ) ); } - public static void init( Context context ) { - + public static void init( Context context, IMogoStatusManager manager ) { + sStatusManager = manager; WorkThreadHandler.getInstance().post( () -> { sBroadcastConfigKey = KEY_VOICE_BROADCAST_CONFIG + CommonUtils.getVersionCode( context ); String configsStr = SharedPrefsMgr.getInstance( context ).getString( sBroadcastConfigKey ); @@ -58,16 +60,24 @@ public class CardIntroduceConfigs { } ); } - public static void broadcast( Context context, String type ) { + public static void broadcastCardIntroduce( Context context, String type ) { if ( sConfigs.get( type ) == null ) { Logger.d( TAG, "un support %s", type ); return; } + if ( sConfigs.get( type ).broadcastAmount >= 3 ) { - Logger.d( TAG, "do not broadcast %s cast amount = %s", type, type ); + Logger.d( TAG, "do not broadcastCardIntroduce %s cast amount = %s", type, type ); return; } + if ( sStatusManager != null ) { + if ( !sStatusManager.isAIAssistReady() ) { + Logger.w( TAG, "ai assist not ready: %s", type ); + return; + } + } + CardIntroduceConfig config = sConfigs.get( type ); config.broadcastAmount++; diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java index fb8370c364..94c87acb14 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java @@ -39,9 +39,7 @@ import com.mogo.service.intent.IMogoIntentManager; import com.mogo.service.module.IMogoModuleLifecycle; import com.mogo.service.module.IMogoModuleProvider; import com.mogo.service.module.ModuleType; -import com.mogo.utils.CommonUtils; import com.mogo.utils.ResourcesHelper; -import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; import com.mogo.utils.network.utils.GsonUtil; import com.mogo.utils.storage.SharedPrefsMgr; @@ -97,7 +95,7 @@ public class MogoModulesManager implements MogoModulesHandler, mMogoIntentManager = apis.getIntentManagerApi(); registerReceiver(); - CardIntroduceConfigs.init( getContext() ); + CardIntroduceConfigs.init( getContext(), apis.getStatusManagerApi() ); } private Context getContext() { @@ -283,7 +281,7 @@ public class MogoModulesManager implements MogoModulesHandler, SharedPrefsMgr.getInstance( getContext() ).putString( KEY_SORTED_CARD_MODULES, GsonUtil.jsonFromObject( mSortedCards ) ); Log.i( TAG, "enable & disable card cost " + ( System.currentTimeMillis() - start1 ) + "ms" ); - CardIntroduceConfigs.broadcast( mActivity, mEnableModuleName ); + CardIntroduceConfigs.broadcastCardIntroduce( mActivity, mEnableModuleName ); } @Override diff --git a/modules/mogo-module-main/src/main/res/drawable/module_main_dw_top_frame_bkg.xml b/modules/mogo-module-main/src/main/res/drawable/module_main_dw_top_frame_bkg.xml index f9f2d1743c..96231332f1 100644 --- a/modules/mogo-module-main/src/main/res/drawable/module_main_dw_top_frame_bkg.xml +++ b/modules/mogo-module-main/src/main/res/drawable/module_main_dw_top_frame_bkg.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java index 0ab0657e81..9de4be2d80 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java @@ -85,7 +85,7 @@ public class MapPresenter extends Presenter implements }, 1_000 ); } else { // 30s后锁车刷新 - mRefreshStrategyController.restartAutoRefreshAtTime( 30 ); + mRefreshStrategyController.restartAutoRefreshAtTime( 30_000 ); } } else if (type == 2) { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index 9fb7bd3426..97b99a52ab 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -13,12 +13,14 @@ import android.os.Looper; import android.os.Message; import android.os.Trace; import android.text.TextUtils; +import android.util.Log; import android.view.MotionEvent; import android.view.View; import androidx.annotation.NonNull; import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; import com.mogo.map.MogoLatLng; @@ -451,6 +453,9 @@ public class MogoServices implements IMogoMapListener, } private void stopAutoRefreshStrategy() { + if ( DebugConfig.isDebug() ) { + Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); + } Logger.d( TAG, "stop auto refresh strategy" ); mHandler.removeMessages( ServiceConst.MSG_TYPE_REFRESH_DECREASE ); } @@ -814,6 +819,7 @@ public class MogoServices implements IMogoMapListener, } } else if ( MogoReceiver.ACTION_VOICE_READY.equals( command ) ) { AIAssist.getInstance( mContext ).flush(); + mStatusManager.setAIAssistReady( TAG, true ); } else if ( ServiceConst.COMMAND_MY_LOCATION.equals( command ) ) { if ( mStatusManager.isSearchUIShow() ) { return; @@ -907,12 +913,12 @@ public class MogoServices implements IMogoMapListener, return; } mInternalUnWakeupRegisterStatus = true; - AIAssist.getInstance( mContext ) - .registerUnWakeupCommand( ServiceConst.CMD_UN_WAKE_PREV, - ServiceConst.CMD_UN_WAKE_PREV_UN_WAKE_WORDS, this ); - AIAssist.getInstance( mContext ) - .registerUnWakeupCommand( ServiceConst.CMD_UN_WAKE_NEXT, - ServiceConst.CMD_UN_WAKE_NEXT_UN_WAKE_WORDS, this ); +// AIAssist.getInstance( mContext ) +// .registerUnWakeupCommand( ServiceConst.CMD_UN_WAKE_PREV, +// ServiceConst.CMD_UN_WAKE_PREV_UN_WAKE_WORDS, this ); +// AIAssist.getInstance( mContext ) +// .registerUnWakeupCommand( ServiceConst.CMD_UN_WAKE_NEXT, +// ServiceConst.CMD_UN_WAKE_NEXT_UN_WAKE_WORDS, this ); AIAssist.getInstance( mContext ) .registerUnWakeupCommand( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, ServiceConst.CMD_UN_WAKEUP_WORDS_MY_LOCATION, this ); @@ -926,10 +932,10 @@ public class MogoServices implements IMogoMapListener, return; } mInternalUnWakeupRegisterStatus = false; - AIAssist.getInstance( mContext ) - .unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKE_PREV, this ); - AIAssist.getInstance( mContext ) - .unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKE_NEXT, this ); +// AIAssist.getInstance( mContext ) +// .unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKE_PREV, this ); +// AIAssist.getInstance( mContext ) +// .unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKE_NEXT, this ); AIAssist.getInstance( mContext ) .unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, this ); } @@ -974,7 +980,11 @@ public class MogoServices implements IMogoMapListener, @Override public void onTransaction( int size ) { if ( size == 0 ) { - mUiController.setPointToCenter( 0.66145, 0.661094 ); + if ( mNavi.isNaviing() ) { + mUiController.setPointToCenter( 0.675926, 0.77552 ); + } else { + mUiController.setPointToCenter( 0.66145, 0.661094 ); + } mUiController.showMyLocation( !mNavi.isNaviing() ); AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_BACK ); } else { diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java index 0c4c379e3e..f749d793a6 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java @@ -77,6 +77,13 @@ public interface IMogoStatusManager extends IProvider { */ boolean isMainPageOnResume(); + /** + * 小智语音是否准备完毕 + * + * @return + */ + boolean isAIAssistReady(); + /** * 设置小智语音UI状态 * @@ -151,6 +158,14 @@ public interface IMogoStatusManager extends IProvider { */ void setMainPageResumeStatus( String tag, boolean resume ); + /** + * 设置小智语音状态 + * + * @param tag + * @param ready + */ + void setAIAssistReady( String tag, boolean ready ); + /** * 注册监听 * diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java index c1274c21a8..0f75d8d92f 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/StatusDescriptor.java @@ -54,5 +54,10 @@ public enum StatusDescriptor { /** * 主页 resume 状态 */ - MAIN_PAGE_RESUME; + MAIN_PAGE_RESUME, + + /** + * 小智语音状态 + */ + AI_ASSIST_READY; } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java index 4802a529cb..0ac3f099db 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/statusmanager/MogoStatusManager.java @@ -94,6 +94,11 @@ public class MogoStatusManager implements IMogoStatusManager { return get_bool_val( StatusDescriptor.MAIN_PAGE_RESUME ); } + @Override + public boolean isAIAssistReady() { + return get_bool_val( StatusDescriptor.AI_ASSIST_READY ); + } + private boolean get_bool_val( StatusDescriptor descriptor ) { Boolean val = mStatus.get( descriptor ); return val == null ? false : val; @@ -165,6 +170,13 @@ public class MogoStatusManager implements IMogoStatusManager { recordStatusModifier( tag, StatusDescriptor.MAIN_PAGE_RESUME ); } + @Override + public void setAIAssistReady( String tag, boolean ready ) { + mStatus.put( StatusDescriptor.AI_ASSIST_READY, ready ); + invokeStatusChangedListener( StatusDescriptor.AI_ASSIST_READY, ready ); + recordStatusModifier( tag, StatusDescriptor.AI_ASSIST_READY ); + } + private void invokeStatusChangedListener( StatusDescriptor descriptor, boolean status ) { if ( mListeners.containsKey( descriptor ) ) { Iterator< IMogoStatusChangedListener > iterator = mListeners.get( descriptor ).iterator();