This commit is contained in:
wangcongtao
2020-03-09 11:49:54 +08:00
26 changed files with 671 additions and 205 deletions

View File

@@ -32,4 +32,24 @@ public class ExtensionsModuleConst {
public static final String CLOSE_PAGE = "com.zhidao.launcher.close.page";
public static final String CLOSE = "com.zhidao.launcher.close";
public static final String[] CMD_UPLOAD_BLOCK = {"上报拥堵"};
public static final String[] CMD_TRAFFIC_CHECK = {"上报交通检查"};
public static final String[] CMD_ROAD_CLOSURE = {"上报封路"};
//上报拥堵
public static final String UPLOAD_ROAD_BLOCK = "command_upload_block";
//上报交通检查
public static final String UPLOAD_TRAFFIC_CHECK = "command_upload_traffic_check";
//上报封路
public static final String UPLOAD_ROAD_CLOSURE = "command_upload_road_closure";
//埋点
//分享分类 1路况2油价3交通检查4封路
public static final String LAUNCHER_SHARE_TYPE = "Launcher_Share_type";
//分享/上报按钮点击 from=1 手动点击 from=2 语音打开
public static final String LAUNCHER_SHARE_CLICK = "Launcher_Share_Click";
public static final String CARNET_USER_UPLOAD = "CarNet_user_upload";
}

View File

@@ -50,8 +50,9 @@ import java.util.Map;
* <p>
* 描述
*/
public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresenter > implements EntranceView,
IMogoNaviListener, IMogoMapListener {
public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresenter>
implements EntranceView,
IMogoNaviListener, IMogoMapListener {
private static final String TAG = "EntranceFragment";
@@ -90,6 +91,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
*/
private IMogoModuleProvider mSearchProvider;
private boolean mIsLock = true;
private TextView ivMode;
@Override
protected int getLayoutId() {
@@ -98,28 +100,37 @@ 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();
mMogoFragmentManager = (IMogoFragmentManager) ARouter.getInstance()
.build(MogoServicePaths.PATH_FRAGMENT_MANAGER)
.navigation();
mMogoAddressManager = (IMogoAddressManager) ARouter.getInstance()
.build(MogoServicePaths.PATH_ADDRESS_MANAGER)
.navigation();
mCommonAddress = findViewById( R.id.module_entrance_id_common_address );
mCommonAddress = findViewById(R.id.module_entrance_id_common_address);
mSearch = findViewById( R.id.module_entrance_id_search );
mSearch = findViewById(R.id.module_entrance_id_search);
mSearch.setOnClickListener( view -> {
mSearchProvider = ( IMogoModuleProvider ) ARouter.getInstance().build( MogoModulePaths.PATH_MODULE_SEARCH ).navigation();
final Fragment fragment = mSearchProvider.createFragment( getContext(), null );
mMogoFragmentManager.push( new FragmentDescriptor.Builder().fragment( fragment ).tag( MogoModulePaths.PATH_FRAGMENT_SEARCH ).notifyMainModule( true ).build() );
} );
mSearch.setOnClickListener(view -> {
mSearchProvider = (IMogoModuleProvider) ARouter.getInstance()
.build(MogoModulePaths.PATH_MODULE_SEARCH)
.navigation();
final Fragment fragment = mSearchProvider.createFragment(getContext(), null);
mMogoFragmentManager.push(new FragmentDescriptor.Builder().fragment(fragment)
.tag(MogoModulePaths.PATH_FRAGMENT_SEARCH)
.notifyMainModule(true)
.build());
});
mHome = findViewById( R.id.module_entrance_id_home );
mHome.setOnClickListener( view -> {
mHome = findViewById(R.id.module_entrance_id_home);
mHome.setOnClickListener(view -> {
mMogoAddressManager.goHome();
} );
});
mCompany = findViewById( R.id.module_entrance_id_company );
mCompany.setOnClickListener( view -> {
mCompany = findViewById(R.id.module_entrance_id_company);
mCompany.setOnClickListener(view -> {
mMogoAddressManager.goCompany();
} );
});
mUploadRoadCondition = findViewById( R.id.module_entrance_id_upload_road_condition );
mUploadRoadCondition.setOnClickListener( view -> {
@@ -130,59 +141,80 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mVRMode.setOnClickListener( view -> {
} );
mMove2CurrentLocation = findViewById( R.id.module_entrance_id_move2_current_location );
mMove2CurrentLocation.setOnClickListener( view -> {
mMove2CurrentLocation = findViewById(R.id.module_entrance_id_move2_current_location);
mMove2CurrentLocation.setOnClickListener(view -> {
final MogoLocation location = mMogoLocationClient.getLastKnowLocation();
if ( location != null ) {
mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
mMApUIController.changeZoom( 16.0f );
mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
if (location != null) {
mMogoStatusManager.setUserInteractionStatus(TAG, true, false);
mMApUIController.changeZoom(16.0f);
mMogoStatusManager.setUserInteractionStatus(TAG, true, false);
mMApUIController.recoverLockMode();
}
} );
});
mNaviInfo = findViewById( R.id.module_entrance_id_navi_info_panel );
mExitNavi = findViewById( R.id.module_entrance_id_exit_navi );
mExitNavi.setOnClickListener( view -> {
if ( mMogoNavi != null ) {
mNaviInfo = findViewById(R.id.module_entrance_id_navi_info_panel);
mExitNavi = findViewById(R.id.module_entrance_id_exit_navi);
mExitNavi.setOnClickListener(view -> {
if (mMogoNavi != null) {
//if ( mIsLock ) {
NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog( getContext() );
NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog(getContext());
naviNoticeDialog.show();
//} else {
// mMApUIController.recoverLockMode();
//}
}
} );
});
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 );
ivMode = findViewById(R.id.module_ext_id_north);
ivMode.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
if (ivMode.isSelected()) {
mMApUIController.changeMapMode(EnumMapUI.CarUp_2D);
} else {
mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D);
}
ivMode.setSelected(!ivMode.isSelected());
ivMode.setText(
getString(ivMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up));
}
});
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
@Override
protected EntrancePresenter createPresenter() {
return new EntrancePresenter( getContext(), this );
return new EntrancePresenter(getContext(), this);
}
@Override
public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
super.onActivityCreated( savedInstanceState );
mService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() );
mMogoRegisterCenter = ( IMogoRegisterCenter ) ARouter.getInstance().build( MogoServicePaths.PATH_REGISTER_CENTER ).navigation( getContext() );
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mService = (IMogoMapService) ARouter.getInstance()
.build(MogoServicePaths.PATH_SERVICES_MAP)
.navigation(getContext());
mMogoRegisterCenter = (IMogoRegisterCenter) ARouter.getInstance()
.build(MogoServicePaths.PATH_REGISTER_CENTER)
.navigation(getContext());
mMApUIController = mService.getMapUIController();
mMogoLocationClient = mService.getSingletonLocationClient( getContext() );
mMogoNavi = mService.getNavi( getContext() );
mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( getContext() );
mMogoStatusManager = ( IMogoStatusManager ) ARouter.getInstance().build( MogoServicePaths.PATH_STATUS_MANAGER ).navigation( getContext() );
mMogoLocationClient = mService.getSingletonLocationClient(getContext());
mMogoNavi = mService.getNavi(getContext());
mAnalytics = (IMogoAnalytics) ARouter.getInstance()
.build(MogoServicePaths.PATH_UTILS_ANALYTICS)
.navigation(getContext());
mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance()
.build(MogoServicePaths.PATH_STATUS_MANAGER)
.navigation(getContext());
mMogoRegisterCenter.registerMogoNaviListener( ExtensionsModuleConst.TYPE_ENTRANCE, this );
mMogoRegisterCenter.registerMogoMapListener( ExtensionsModuleConst.TYPE_ENTRANCE, this );
mMogoRegisterCenter.registerMogoNaviListener(ExtensionsModuleConst.TYPE_ENTRANCE, this);
mMogoRegisterCenter.registerMogoMapListener(ExtensionsModuleConst.TYPE_ENTRANCE, this);
mMogoMarkerManager = mService.getMarkerManager( getContext() );
mMogoMarkerManager = mService.getMarkerManager(getContext());
}
@Override
public void onInitNaviFailure() {
}
@@ -192,28 +224,30 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
@Override
public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
if ( naviinfo == null ) {
public void onNaviInfoUpdate(MogoNaviInfo naviinfo) {
if (naviinfo == null) {
return;
}
mNaviInfo.notifyChanged( naviinfo );
mNaviInfo.notifyChanged(naviinfo);
}
@Override
public void onStartNavi() {
mCommonAddress.setVisibility( View.GONE );
mNaviInfo.setVisibility( View.VISIBLE );
mExitNavi.setVisibility( View.VISIBLE );
mMApUIController.setPointToCenter( 0.675926, 0.77552 );
mCommonAddress.setVisibility(View.GONE);
mNaviInfo.setVisibility(View.VISIBLE);
ivMode.setVisibility(View.VISIBLE);
mExitNavi.setVisibility(View.VISIBLE);
mMApUIController.setPointToCenter(0.675926, 0.77552);
}
@Override
public void onStopNavi() {
mCommonAddress.setVisibility( View.VISIBLE );
mNaviInfo.setVisibility( View.GONE );
mExitNavi.setVisibility( View.GONE );
mSpeedLimit.setVisibility( View.GONE );
mMApUIController.setPointToCenter( 0.66145, 0.590688 );
mCommonAddress.setVisibility(View.VISIBLE);
mNaviInfo.setVisibility(View.GONE);
ivMode.setVisibility(View.GONE);
mExitNavi.setVisibility(View.GONE);
mSpeedLimit.setVisibility(View.GONE);
mMApUIController.setPointToCenter(0.66145, 0.590688);
}
@Override
@@ -225,16 +259,16 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
@Override
public void onUpdateTraffic( MogoTraffic traffic ) {
if ( traffic == null ) {
public void onUpdateTraffic(MogoTraffic traffic) {
if (traffic == null) {
return;
}
if ( traffic.getSpeedLimit() <= 0 ) {
mSpeedLimit.setVisibility( View.INVISIBLE );
mSpeedLimitValue.setText( "--" );
if (traffic.getSpeedLimit() <= 0) {
mSpeedLimit.setVisibility(View.INVISIBLE);
mSpeedLimitValue.setText("--");
} else {
mSpeedLimit.setVisibility( View.VISIBLE );
mSpeedLimitValue.setText( String.valueOf( traffic.getSpeedLimit() ) );
mSpeedLimit.setVisibility(View.VISIBLE);
mSpeedLimitValue.setText(String.valueOf(traffic.getSpeedLimit()));
}
}
@@ -244,45 +278,43 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
@Override
public void onTouch( MotionEvent motionEvent ) {
public void onTouch(MotionEvent motionEvent) {
}
@Override
public void onPOIClick( MogoPoi poi ) {
public void onPOIClick(MogoPoi poi) {
}
@Override
public void onMapClick( MogoLatLng latLng ) {
public void onMapClick(MogoLatLng latLng) {
}
@Override
public void onLockMap( boolean isLock ) {
public void onLockMap(boolean isLock) {
mIsLock = isLock;
if ( isLock ) {
mExitNavi.setText( R.string.module_ext_str_exit_navi );
if (isLock) {
mExitNavi.setText(R.string.module_ext_str_exit_navi);
} else {
mExitNavi.setText( R.string.module_ext_str_exit_navi );
mExitNavi.setText(R.string.module_ext_str_exit_navi);
}
}
@Override
public void onMapModeChanged( EnumMapUI ui ) {
public void onMapModeChanged(EnumMapUI ui) {
}
@Override
public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) {
public void onMapChanged(MogoLatLng latLng, float zoom, float tilt, float bearing) {
}
private void traceData( String from ) {
Map< String, Object > properties = new HashMap<>();
properties.put( "from", from );
mAnalytics.track( "Launcher_Share_Click", properties );
private void traceData(String from) {
Map<String, Object> properties = new HashMap<>();
properties.put("from", from);
mAnalytics.track("Launcher_Share_Click", properties);
}
}

View File

@@ -1,11 +1,20 @@
package com.mogo.module.extensions.entrance;
import android.content.Context;
import android.content.Intent;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.share.ShareControl;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.utils.logger.Logger;
import java.util.HashMap;
import java.util.Map;
/**
* @author congtaowang
@@ -16,10 +25,13 @@ import com.mogo.module.share.ShareControl;
public class EntrancePresenter extends Presenter<EntranceView> {
private Context mContext;
private IMogoAnalytics mAnalytics;
public EntrancePresenter(Context context, EntranceView view) {
super(view);
mContext = context;
mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(getContext());
registerUnWake();
}
@@ -28,6 +40,14 @@ public class EntrancePresenter extends Presenter<EntranceView> {
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);
}
/**
@@ -39,6 +59,12 @@ public class EntrancePresenter extends Presenter<EntranceView> {
if (cmd.equals(ExtensionsModuleConst.CANCLE_SHARE)
|| cmd.equals(ExtensionsModuleConst.CLOSE)) { //取消分享,关闭页面
ShareControl.getInstance(mContext).dismissDialog();
} else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)) { //上报拥堵
uploadRoadCondition();
} else if (cmd.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查
uploadTrfficCheck();
} else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路
uploadRoadClosed();
}
}
@@ -60,9 +86,73 @@ public class EntrancePresenter extends Presenter<EntranceView> {
};
private void uploadRoadCondition() {
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();
}
private void uploadRoadClosed() {
sendShareReceiver("3");
Logger.d("EntrancePresenter", "mogoIntentListener 分享封路 ----> ");
traceTypeData("4");
ShareControl.getInstance(mContext).dismissDialog();
}
/**
* 发送广播 1拥堵2交通检查3封路
*/
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);
}
/**
* type=1 路况
* <p>
* type=2 油价
* <p>
* type=3 交通检查
* <p>
* type=4 封路
*
* @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 traceTanluData(String type) {
Map<String, Object> properties = new HashMap<>();
properties.put("type", type);
mAnalytics.track(ExtensionsModuleConst.CARNET_USER_UPLOAD, properties);
}
private 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);
}
}