From 7a294eab9140842d313aa6f28d3550dfc7f37aed Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Fri, 27 Mar 2020 17:05:46 +0800 Subject: [PATCH 1/3] opt --- .idea/misc.xml | 2 +- .../com/mogo/module/extensions/entrance/EntranceFragment.java | 4 ++-- .../mogo/module/extensions/entrance/EntrancePresenter.java | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) 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/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..8df727a3bf 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 @@ -127,7 +127,7 @@ 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); mMogoFragmentManager = mApis.getFragmentManagerApi(); @@ -284,7 +284,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mEntrancePresenter.unregisterUnWake(); } - mIMogoAuthorizeModuleManager.unregisterAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + mIMogoAuthorizeModuleManager.unregisterAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } 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..b9d879615f 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 @@ -209,7 +209,11 @@ public class EntrancePresenter extends Presenter { Logger.d(TAG, "mogoIntentListener 两次未回复关闭对话框"); } } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION)) { //上报路况 免唤醒 --ok + if (mIMogoAuthorizeModuleManager.needAuthorize()) { + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY); + } else { uploadRoadCondition(); + } } } }; From 7a86206fd77836d23ba3d1d7e79cf51781edc69a Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 27 Mar 2020 17:24:47 +0800 Subject: [PATCH 2/3] opt --- app/src/nwd/AndroidManifest.xml | 5 +- .../map/impl/amap/AMapNaviViewWrapper.java | 16 +++- .../extensions/entrance/EntranceFragment.java | 84 +++++++++++------- .../module_ext_ic_right_arrow.png | Bin 0 -> 272 bytes .../module_ext_ic_right_arrow.png | Bin 0 -> 451 bytes .../module_ext_dw_grey_bottom_bkg.xml | 5 ++ .../res/layout/module_ext_layout_entrance.xml | 2 +- .../layout/module_ext_layout_extensions.xml | 46 ++++++---- .../src/main/res/values-ldpi/dimens.xml | 6 ++ .../src/main/res/values-xhdpi/dimens.xml | 6 ++ .../src/main/res/values/dimens.xml | 6 ++ .../src/main/res/values/strings.xml | 21 +++-- .../main/cards/CardIntroduceConfigs.java | 18 +++- .../module/main/cards/MogoModulesManager.java | 6 +- .../drawable/module_main_dw_top_frame_bkg.xml | 2 +- .../com/mogo/module/map/MapPresenter.java | 2 +- .../com/mogo/module/service/MogoServices.java | 32 ++++--- .../statusmanager/IMogoStatusManager.java | 15 ++++ .../statusmanager/StatusDescriptor.java | 7 +- .../impl/statusmanager/MogoStatusManager.java | 12 +++ 20 files changed, 208 insertions(+), 83 deletions(-) create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_right_arrow.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_ic_right_arrow.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_grey_bottom_bkg.xml diff --git a/app/src/nwd/AndroidManifest.xml b/app/src/nwd/AndroidManifest.xml index 0e42bd5132..c3083e9cdb 100644 --- a/app/src/nwd/AndroidManifest.xml +++ b/app/src/nwd/AndroidManifest.xml @@ -1,9 +1,8 @@ - - + package="com.mogo.launcher" + android:sharedUserId="android.uid.system"> diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index e6179a0971..0c8bf9483d 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -85,6 +85,8 @@ public class AMapNaviViewWrapper implements IMogoMapView, private LocationSource.OnLocationChangedListener mOnLocationChangedListener; private boolean mIsCarLockced = false; + private float mDefaultZoomLevel = 16.0f; + public AMapNaviViewWrapper( AMapNaviView mapView ) { this.mMapView = mapView; this.mIMap = new AMapWrapper( mMapView.getMap(), mMapView, this ); @@ -382,12 +384,20 @@ public class AMapNaviViewWrapper implements IMogoMapView, @Override public void changeZoom( boolean zoom ) { if ( checkAMapView() ) { + mDefaultZoomLevel = getMap().getZoomLevel(); if ( zoom ) { - mMapView.zoomIn(); + mDefaultZoomLevel += 1.5f; + if ( mDefaultZoomLevel > 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..16d0d7b2ef 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; @@ -126,10 +128,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent @Override 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 = ( IMogoAuthorizeModuleManager ) ARouter.getInstance().build( AuthorizeConstant.PROVIDER_MODULE ).navigation( getContext() ); + mIMogoAuthorizeModuleManager.registerAuthorizeListener( AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY, this ); - mEntrancePresenter = new EntrancePresenter(getContext(), this, mIMogoAuthorizeModuleManager); + mEntrancePresenter = new EntrancePresenter( getContext(), this, mIMogoAuthorizeModuleManager ); mMogoFragmentManager = mApis.getFragmentManagerApi(); mMogoAddressManager = mApis.getAddressManagerApi(); @@ -138,7 +140,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 +155,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 +163,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(); @@ -174,6 +176,26 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent } ); 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 +245,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 +304,28 @@ 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); + mIMogoAuthorizeModuleManager.unregisterAuthorizeListener( AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY ); } @Override public void authorizeSuccess() { - Log.d(TAG, "authorizeSuccess --------> "); + Log.d( TAG, "authorizeSuccess --------> " ); 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 +352,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 +363,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/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 0000000000000000000000000000000000000000..348a125779789bc91a0849d6dd7afbfaf107b9a4 GIT binary patch literal 272 zcmV+r0q_2aP)Px#%1J~)R2Ug!X21dd|NqbU{D-!ju~o1LBQ`Z@Rcj?#{`}DR`;U=_`5)s27Gy=a zm8(Sm{Q0Z#@7GU(zYGxle^{A6ffZ#|EEW9shf(9#?>{2Qnm}wRPSKw%X~oMl{{3N4 zMVEx}wX|OUW^skis7yZ`^@9JT!C_v!KF11tum&mH&VL zvcXK^Wf0y6R|FGmXxPv4^4n|WfB%0gGyG>{W?|(xhM@?iI5&42`)~G7s{h!2zXbp$ W1W91a^>rHn0000Px$eMv+?R5%fxkUdKSK@f&#cK4ECjsznZqY^kc^MSQL#oj^!Di(pLXp{XLscgjJ z3R@A2*a%i)AvP*vV+@E*zH_&`65*1INw~yq_MLa;eRdgyf1WLV8Va<+YdC8@S1M`j zHEIfl27m)o11!s;H}_x&;h3O6>phG}zkLCmbMo0vC#4W6R3zyAF#>s`Uc;-EQdo7? zS8AQ;1_)e5K<4fDG?nl^_6OT1=W)%3j8qW$8}ilxjol4V^LZ=QV%@CjLQHxmCurJg z*uQ{%eipHtm}yEU4vI_|AGH~yHrqM0(%rg~8g2VKx*oDgeD3L41Lu(<>G(&6CyK>Q zyT3%v%dFD)Fo>k4L^-sZ;n<)`=!wfdz_mHI0+m|VR7ef + + + + 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(); From 205d8eda25d3cd1109cbc901ba7c96333e3fb434 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Fri, 27 Mar 2020 17:46:26 +0800 Subject: [PATCH 3/3] fix comflict --- .../extensions/entrance/EntranceFragment.java | 20 ++++++++++--- .../entrance/EntrancePresenter.java | 28 +++++++++++-------- 2 files changed, 32 insertions(+), 16 deletions(-) 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 fdf8030545..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 @@ -121,6 +121,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private TextView ivMode; private IMogoPolyline iMogoPolyline; + public static boolean isClickShare; @Override protected int getLayoutId() { @@ -173,8 +174,13 @@ 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 -> { @@ -310,14 +316,20 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mEntrancePresenter.unregisterUnWake(); } + 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 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 b9d879615f..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,14 +207,14 @@ 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_NOVELTY); + mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { uploadRoadCondition(); }