Merge remote-tracking branch 'origin/feature/v1.0.0' into feature/v1.0.0

This commit is contained in:
董宏宇
2020-01-16 15:22:46 +08:00
22 changed files with 559 additions and 93 deletions

View File

@@ -23,6 +23,7 @@ import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.MogoModulePaths;
@@ -41,6 +42,7 @@ import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.windowview.IMogoWindowManager;
import com.mogo.utils.TipToast;
import java.util.HashMap;
/**
@@ -67,6 +69,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private NaviInfoView mNaviInfo;
private TextView mExitNavi;
private View mSpeedLimit;
private TextView mSpeedLimitValue;
private View mSpeedLimitUnit;
private IMogoMapService mService;
private IMogoMapUIController mMApUIController;
private IMogoLocationClient mMogoLocationClient;
@@ -91,7 +97,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
protected void initViews() {
mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation();
mMogoAddressManager = (IMogoAddressManager) ARouter.getInstance().build( MogoServicePaths.PATH_ADDRESS_MANAGER ).navigation();
mMogoAddressManager = ( IMogoAddressManager ) ARouter.getInstance().build( MogoServicePaths.PATH_ADDRESS_MANAGER ).navigation();
mCommonAddress = findViewById( R.id.module_entrance_id_common_address );
mSearch = findViewById( R.id.module_entrance_id_search );
@@ -135,7 +141,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mExitNavi.setOnClickListener( view -> {
if ( mMogoNavi != null ) {
if ( mIsLock ) {
NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog(getContext());
NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog( getContext() );
naviNoticeDialog.show();
} else {
mMApUIController.recoverLockMode();
@@ -143,6 +149,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
} );
mSpeedLimit = findViewById( R.id.module_entrance_id_speed_limit_container );
mSpeedLimitValue = findViewById( R.id.module_entrance_id_speed_limit_value );
mSpeedLimitUnit = findViewById( R.id.module_entrance_id_speed_limit_unit );
}
@NonNull
@@ -188,9 +198,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mCommonAddress.setVisibility( View.GONE );
mNaviInfo.setVisibility( View.VISIBLE );
mExitNavi.setVisibility( View.VISIBLE );
AnalyticsUtils.track("Navigation_guide_type", new HashMap<>());
AnalyticsUtils.track( "Navigation_guide_type", new HashMap<>() );
mMApUIController.setPointToCenter(0.675926, 0.77552);
mMApUIController.setPointToCenter( 0.675926, 0.77552 );
}
@Override
@@ -198,9 +208,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mCommonAddress.setVisibility( View.VISIBLE );
mNaviInfo.setVisibility( View.GONE );
mExitNavi.setVisibility( View.GONE );
AnalyticsUtils.track("Navigation_guide_type", new HashMap<>());
mSpeedLimit.setVisibility( View.GONE );
AnalyticsUtils.track( "Navigation_guide_type", new HashMap<>() );
mMApUIController.setPointToCenter(0.66145, 0.590688);
mMApUIController.setPointToCenter( 0.66145, 0.590688 );
}
@@ -212,6 +223,20 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
public void onoCalculateFailed() {
}
@Override
public void onUpdateTraffic( MogoTraffic traffic ) {
if ( traffic == null ) {
return;
}
if ( traffic.getSpeedLimit() <= 0 ) {
mSpeedLimit.setVisibility( View.INVISIBLE );
mSpeedLimitValue.setText( "--" );
} else {
mSpeedLimit.setVisibility( View.VISIBLE );
mSpeedLimitValue.setText( String.valueOf( traffic.getSpeedLimit() ) );
}
}
@Override
public void onMapLoaded() {

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<corners android:radius="90dp" />
<stroke android:width="@dimen/dp_6" android:color="#B92F49" />/>
</shape>
</item>
</selector>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -71,6 +72,36 @@
</LinearLayout>
<LinearLayout
android:id="@+id/module_entrance_id_speed_limit_container"
android:layout_width="@dimen/dp_180"
android:layout_height="@dimen/dp_180"
android:layout_marginTop="@dimen/dp_2"
android:layout_marginRight="@dimen/dp_60"
android:background="@drawable/module_ext_dw_speed_limit_bkg"
android:gravity="center"
android:visibility="invisible"
android:orientation="vertical"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/module_entrance_id_speed_limit_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_60"
tools:text="100" />
<TextView
android:id="@+id/module_entrance_id_speed_limit_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="km/h"
android:textColor="#CCFFFFFF"
android:textSize="@dimen/dp_28" />
</LinearLayout>
<com.mogo.module.extensions.navi.NaviInfoView
android:id="@+id/module_entrance_id_navi_info_panel"
android:layout_width="wrap_content"

View File

@@ -6,8 +6,8 @@
android:layout_height="@dimen/dp_120"
android:background="@drawable/module_ext_dw_shadow_frame_bkg"
android:orientation="vertical"
android:paddingLeft="@dimen/dp_70"
android:paddingRight="@dimen/dp_70">
android:paddingLeft="@dimen/dp_60"
android:paddingRight="@dimen/dp_60">
<com.mogo.module.extensions.anim.JSurfaceView
android:id="@+id/module_ext_id_voice"

View File

@@ -5,7 +5,7 @@
<activity
android:name=".MainActivity"
android:clearTaskOnLaunch="true"
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|mcc|mnc|keyboard|navigation"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize"
android:enabled="true"
android:launchMode="singleInstance"
android:resizeableActivity="true"

View File

@@ -99,13 +99,15 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
public void onPageSelected( int position ) {
try {
IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition );
trackLastCardShowEvent( provider );
mCurrentPosition = position;
final IMogoModuleProvider provider = mCardModulesAdapter.getProvider( position );
provider = mCardModulesAdapter.getProvider( mCurrentPosition );
mMogoModuleHandler.setEnable( provider.getModuleName() );
if ( !isClickMarker ) {
mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() );
}
trackCardSelectedEvent( provider );
} catch ( Exception e ) {
e.printStackTrace();
}
@@ -129,7 +131,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
* 卡片展示时长埋点
* @param provider
*/
private void trackCardSelectedEvent( IMogoModuleProvider provider ) {
private void trackLastCardShowEvent( IMogoModuleProvider provider ) {
if ( provider == null ) {
return;
}

View File

@@ -19,6 +19,7 @@ import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.common.MogoModule;
import com.mogo.module.common.MogoModulePaths;
@@ -462,6 +463,24 @@ public class MogoModulesManager implements MogoModulesHandler,
}
}
@Override
public void onUpdateTraffic( MogoTraffic traffic ) {
Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners();
if ( iterator == null ) {
return;
}
while ( iterator.hasNext() ) {
IMogoNaviListener listener = iterator.next();
if ( listener != null ) {
try {
listener.onUpdateTraffic(traffic);
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
}
}
}
}
@Override
public void onLocationChanged( MogoLocation location ) {
Iterator< IMogoLocationListener > iterator = MogoRegisterCenterHandler.getInstance().getLocationListeners();

View File

@@ -1,40 +0,0 @@
package com.mogo.module.main.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.text.TextUtils;
/**
* @author congtaowang
* @since 2020-01-02
* <p>
* 广播接收者
* <p>
* {@link Intent#ACTION_POWER_CONNECTED}
* {@link Intent#ACTION_POWER_DISCONNECTED}
*/
public class MogoReceiver extends BroadcastReceiver {
public static void register( Context context ) {
if ( context == null ) {
return;
}
IntentFilter inputFilter = new IntentFilter();
inputFilter.addAction( Intent.ACTION_POWER_CONNECTED );
inputFilter.addAction( Intent.ACTION_POWER_DISCONNECTED );
context.getApplicationContext().registerReceiver( new MogoReceiver(), inputFilter );
}
@Override
public void onReceive( Context context, Intent intent ) {
final String action = intent.getAction();
if ( TextUtils.equals( action, Intent.ACTION_POWER_CONNECTED ) ) {
}
if ( TextUtils.equals( action, Intent.ACTION_POWER_DISCONNECTED ) ) {
}
}
}

View File

@@ -41,7 +41,7 @@
<FrameLayout
android:layout_width="@dimen/dp_660"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/dp_70">
android:layout_marginLeft="@dimen/dp_60">
<com.mogo.module.main.cards.OrientedViewPager
android:id="@+id/module_main_id_cards_container"

View File

@@ -8,6 +8,7 @@ import com.mogo.map.MogoLatLng
import com.mogo.map.navi.IMogoNaviListener
import com.mogo.map.navi.MogoCalculatePath
import com.mogo.map.navi.MogoNaviInfo
import com.mogo.map.navi.MogoTraffic
import com.mogo.map.search.inputtips.MogoTip
import com.mogo.module.common.MogoModulePaths
import com.mogo.module.navi.R
@@ -53,7 +54,10 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
override fun onoCalculateFailed() {
}
private lateinit var mAdapter: CalculatePathAdapter
override fun onUpdateTraffic(traffic: MogoTraffic?) {
}
private lateinit var mAdapter: CalculatePathAdapter
override fun getLayoutId(): Int {
return R.layout.fragment_search_category
}

View File

@@ -26,6 +26,7 @@ import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.MogoModule;
@@ -46,8 +47,6 @@ import com.mogo.service.module.ModuleType;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.service.voice.IMogoVoiceListener;
import com.mogo.service.voice.IMogoVoiceManager;
import com.mogo.utils.logger.Logger;
import java.util.List;
@@ -239,8 +238,10 @@ public class MogoServiceProvider implements IMogoModuleProvider,
registerCenter.registerMogoMapListener( getModuleName(), this );
mIntentManager = ( IMogoIntentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_INTENT_MANAGER ).navigation( context );
mIntentManager.registerIntentListener( MogoReceiver.ADAS_ACTION, this );
mIntentManager.registerIntentListener( MogoReceiver.ACTIION_ADAS, this );
mIntentManager.registerIntentListener( Intent.ACTION_POWER_CONNECTED, this );
mIntentManager.registerIntentListener( Intent.ACTION_POWER_DISCONNECTED, this );
mIntentManager.registerIntentListener( MogoReceiver.ACTION_NWD_ACC, this );
}
private void registerAIReceiver( Context context ) {
@@ -262,7 +263,11 @@ public class MogoServiceProvider implements IMogoModuleProvider,
}
}
filter.addAction( MogoReceiver.VOICE_ACTION );
filter.addAction( MogoReceiver.ADAS_ACTION );
filter.addAction( MogoReceiver.ACTIION_ADAS );
filter.addAction( MogoReceiver.ACTION_NWD_ACC );
// acc On
filter.addAction( Intent.ACTION_POWER_CONNECTED );
filter.addAction( Intent.ACTION_POWER_DISCONNECTED );
try {
context.getApplicationContext().registerReceiver( mAIAssistReceiver, filter );
Logger.i( TAG, "register voice receiver." );
@@ -376,7 +381,6 @@ public class MogoServiceProvider implements IMogoModuleProvider,
@Override
public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) {
if ( mIsCameraInited ) {
mLastCustomRefreshCenterLocation = latLng;
mIsCameraInited = false;
@@ -477,11 +481,6 @@ public class MogoServiceProvider implements IMogoModuleProvider,
@Override
public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
// 发送当前限速到 adas
Intent intent = new Intent( "com.mogo.launcher.adas" );
intent.putExtra( "adas_speed_limit", naviinfo.getCurrentLimitSpeed() );
Logger.i( TAG, "send limit data to adas: limitspeed = %f", naviinfo.getCurrentLimitSpeed() );
mContext.sendBroadcast( intent );
}
@Override
@@ -525,18 +524,37 @@ public class MogoServiceProvider implements IMogoModuleProvider,
}
@Override
public void onUpdateTraffic( MogoTraffic traffic ) {
if ( traffic != null ) {
Logger.i( TAG, "speed = %d, desc = %s", traffic.getSpeedLimit(), traffic.getDesc() );
// 发送当前限速到 adas
Intent intent = new Intent( "com.mogo.launcher.adas" );
intent.putExtra( "adas_speed_limit", traffic.getSpeedLimit() );
mContext.sendBroadcast( intent );
}
}
public IMogoMarkerClickListener getMarkerClickListener() {
return null;
}
@Override
public void onIntentReceived( String command, Intent intent ) {
if ( MogoReceiver.ADAS_ACTION.equals( command ) ) {
if ( MogoReceiver.ACTIION_ADAS.equals( command ) ) {
if ( intent == null ) {
return;
}
int status = intent.getIntExtra( MogoReceiver.PARAM_ADAS_STATUS, 0 );
mStatusManager.setADASUIShow( getModuleName(), status == 1 );
} else if ( Intent.ACTION_POWER_CONNECTED.equals( command ) ) {
mStatusManager.setAccStatus( getModuleName(), true );
} else if ( Intent.ACTION_POWER_DISCONNECTED.equals( command ) ) {
mStatusManager.setAccStatus( getModuleName(), false );
} else if ( MogoReceiver.ACTION_NWD_ACC.equals( command ) ) {
int state = intent.getByteExtra( MogoReceiver.PARAM_ACC_STATUS, ( byte ) 0 );
mStatusManager.setAccStatus( getModuleName(), state == 1 );
}
}

View File

@@ -30,10 +30,16 @@ public class MogoReceiver extends BroadcastReceiver {
/**
* ADAS
*/
public static final String ADAS_ACTION = "com.zhidao.autopilot.adas";
public static final String ACTIION_ADAS = "com.zhidao.autopilot.adas";
// ADAS 状态 0 - 关闭 1 - 打开
public static final String PARAM_ADAS_STATUS = "adas_drawer_status";
// 诺威达 acc 状态
public static final String ACTION_NWD_ACC = "com.nwd.action.ACTION_MCU_STATE_CHANGE";
// 诺威达 acc 状态
public static final String PARAM_ACC_STATUS = "extra_mcu_state";
private IMogoIntentManager mMogoIntentManager;
public MogoReceiver( Context context ) {

View File

@@ -25,7 +25,6 @@ import com.amap.api.services.geocoder.GeocodeSearch;
import com.amap.api.services.geocoder.RegeocodeResult;
import com.amap.api.services.poisearch.PoiResult;
import com.amap.api.services.poisearch.PoiSearch;
import com.google.gson.JsonObject;
import com.mogo.commons.mvp.IView;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.mvp.Presenter;
@@ -43,6 +42,7 @@ import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.search.geo.MogoPoiItem;
import com.mogo.map.search.poisearch.IMogoPoiSearchListener;
import com.mogo.map.search.poisearch.MogoPoiResult;
@@ -349,6 +349,11 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
public void onoCalculateFailed() {
}
@Override
public void onUpdateTraffic( MogoTraffic traffic ) {
}
});
//监听marker点击
@@ -799,7 +804,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
getViewLifecycleOwner().getLifecycle().removeObserver(mPresenter);
TanluServiceHandler.getLocationClient().removeLocationListener(this);
mMogoRegisterCenter.unregisterMogoNaviListener(TanluConstants.MODEL_NAME);
mogoIntentManager.unregisterIntentListener(MogoReceiver.ADAS_ACTION);
mogoIntentManager.unregisterIntentListener(MogoReceiver.ACTIION_ADAS );
}
/**