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

This commit is contained in:
zhangyuanzhen
2020-02-07 20:05:41 +08:00
24 changed files with 394 additions and 240 deletions

2
.idea/misc.xml generated
View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
</project>

View File

@@ -57,6 +57,8 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//Crash日志收集
implementation rootProject.ext.dependencies.crashSdk
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.arouter
implementation rootProject.ext.dependencies.androidxmultidex

View File

@@ -5,6 +5,7 @@ import android.content.Context;
import androidx.multidex.MultiDex;
import com.alibaba.android.arouter.launcher.ARouter;
import com.auto.zhidao.logsdk.CrashSystem;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.module.adcard.AdCardConstants;
@@ -12,7 +13,6 @@ import com.mogo.module.carchatting.card.CallChatConstant;
import com.mogo.module.common.MogoModule;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.media.MediaConstants;
//import com.mogo.module.onlinecar.OnLineCarConstants;
import com.mogo.module.onlinecar.OnLineCarConstants;
import com.mogo.module.push.PushUIConstants;
import com.mogo.module.tanlu.constant.TanluConstants;
@@ -20,6 +20,8 @@ import com.mogo.module.v2x.V2XConst;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.connection.IMogoSocketManager;
//import com.mogo.module.onlinecar.OnLineCarConstants;
/**
* @author congtaowang
* @since 2019-12-18
@@ -31,11 +33,17 @@ public class MogoApplication extends AbsMogoApplication {
@Override
public void onCreate() {
super.onCreate();
// Crash 日志收集
CrashSystem crashSystem = CrashSystem.getInstance(this);
crashSystem.init();
//设置debug模式日志不上传
crashSystem.setDebug(BuildConfig.DEBUG);
// MogoModulePaths.addModule( new MogoModule( DemoConstants.TAG, "CARD_DEMO" ) );
// MogoModulePaths.addModule( new MogoModule( Demo2Constants.TAG, "CARD_DEMO2" ) );
DebugConfig.setNetMode(BuildConfig.NET_ENV);
//运营位卡片,需要默认显示,放在第一个加载
// MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, OnLineCarConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI));
MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME));

View File

@@ -117,5 +117,7 @@ ext {
// 统一登录
accountsdk : "com.zhidao.accountservice:account-sdk:1.0.5",
// crash
crashSdk : "com.zhidaoauto.crash.log:library:1.0.5",
]
}

View File

@@ -6,6 +6,7 @@ package com.mogo.module.common.entity;
*/
public class MarkerNoveltyInfo {
private String type;
private String sn;
private MarkerLocation location;
/**
* @see MarkerPoiTypeEnum
@@ -45,6 +46,13 @@ public class MarkerNoveltyInfo {
this.type = type;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public class ContentData {
private String content;
@@ -53,6 +61,7 @@ public class MarkerNoveltyInfo {
private String infoId;
private long likeNum;
private String title;
private String gasPrices;
private boolean displayNavigation;
private String styleType;
@@ -120,6 +129,14 @@ public class MarkerNoveltyInfo {
this.styleType = styleType;
}
public String getGasPrices() {
return gasPrices;
}
public void setGasPrices(String gasPrices) {
this.gasPrices = gasPrices;
}
@Override
public String toString() {
return "ContentData{" +
@@ -129,6 +146,7 @@ public class MarkerNoveltyInfo {
", infoId='" + infoId + '\'' +
", likeNum=" + likeNum +
", title='" + title + '\'' +
", gasPrices='" + gasPrices + '\'' +
", displayNavigation=" + displayNavigation +
", styleType='" + styleType + '\'' +
'}';
@@ -139,6 +157,7 @@ public class MarkerNoveltyInfo {
public String toString() {
return "MarkerNoveltyInfo{" +
"type='" + type + '\'' +
", sn='" + sn + '\'' +
", location=" + location +
", poiType='" + poiType + '\'' +
", contentData=" + contentData +

View File

@@ -20,6 +20,10 @@ public class MarkerUserInfo implements Serializable {
this.age = age;
}
public int getAgeNumber() {
return age;
}
public String getAge() {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
@@ -124,7 +128,7 @@ public class MarkerUserInfo implements Serializable {
public String getUserName() {
if (TextUtils.isEmpty(userName)) {
return "";
return "用户未设置昵称";
}
return userName;
}

View File

@@ -123,8 +123,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mUploadRoadCondition = findViewById( R.id.module_entrance_id_upload_road_condition );
mUploadRoadCondition.setOnClickListener( view -> {
ShareControl shareControl = new ShareControl();
shareControl.showDialog( getActivity() );
ShareControl.getInstance(getActivity()).showDialog();
} );
mVRMode = findViewById( R.id.module_entrance_id_vr_mode );

View File

@@ -1,6 +1,7 @@
package com.mogo.module.main;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.FrameLayout;
@@ -46,7 +47,7 @@ import java.util.Map;
* <p>
* 描述:加载各个模块
*/
public class MainActivity extends MvpActivity< MainView, MainPresenter > implements MainView,
public class MainActivity extends MvpActivity<MainView, MainPresenter> implements MainView,
IMogoLocationListener,
IMogoMarkerClickListener {
@@ -90,174 +91,189 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
protected void initViews() {
mCardsContainer = findViewById( R.id.module_main_id_cards_container );
mCardsContainer.setOrientation( OrientedViewPager.Orientation.VERTICAL );
mCardsContainer.setOnPageChangeListener( new OnPageChangeListenerAdapter() {
mCardsContainer = findViewById(R.id.module_main_id_cards_container);
mCardsContainer.setOrientation(OrientedViewPager.Orientation.VERTICAL);
mCardsContainer.setOnPageChangeListener(new OnPageChangeListenerAdapter() {
private boolean mIsLast = true;
private boolean mCardFlipStatus = false;
@Override
public void onPageSelected( int position ) {
public void onPageSelected(int position) {
try {
IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition );
trackLastCardShowEvent( provider );
IMogoModuleProvider provider = mCardModulesAdapter.getProvider(mCurrentPosition);
trackLastCardShowEvent(provider);
mCurrentPosition = position;
provider = mCardModulesAdapter.getProvider( mCurrentPosition );
mMogoModuleHandler.setModuleEnable( provider.getModuleName() );
if ( !isClickMarker ) {
mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() );
provider = mCardModulesAdapter.getProvider(mCurrentPosition);
mMogoModuleHandler.setModuleEnable(provider.getModuleName());
if (!isClickMarker) {
mMogoCardManager.invoke(position, mMogoModuleHandler.getCurrentModuleName());
}
} catch ( Exception e ) {
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onPageScrollStateChanged( int state ) {
super.onPageScrollStateChanged( state );
if ( state == ViewPager.SCROLL_STATE_DRAGGING ) {
if ( !mCardFlipStatus ) {
public void onPageScrollStateChanged(int state) {
super.onPageScrollStateChanged(state);
if (state == ViewPager.SCROLL_STATE_DRAGGING) {
if (!mCardFlipStatus) {
mCardFlipStatus = true;
final IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition );
trackCardFlipEvent( provider );
final IMogoModuleProvider provider = mCardModulesAdapter.getProvider(mCurrentPosition);
trackCardFlipEvent(provider);
}
} else if ( state == ViewPager.SCROLL_STATE_IDLE ) {
} else if (state == ViewPager.SCROLL_STATE_IDLE) {
mCardFlipStatus = false;
}
int cardSize = mCardModulesAdapter.getCount();
if (state == ViewPager.SCROLL_STATE_SETTLING) {
mIsLast = false;
} else if (state == ViewPager.SCROLL_STATE_IDLE && mIsLast) {
//此处为你需要的情况,再加入当前页码判断可知道是第一页还是最后一页
if (cardSize != 1 && mCurrentPosition == (cardSize - 1)) {
mCardsContainer.setCurrentItem(0, false);
} else if (cardSize != 1 && mCurrentPosition == 0) {
mCardsContainer.setCurrentItem(cardSize - 1, false);
}
} else {
mIsLast = true;
}
}
/**
* 卡片展示时长埋点
* @param provider
*/
private void trackLastCardShowEvent( IMogoModuleProvider provider ) {
if ( provider == null ) {
private void trackLastCardShowEvent(IMogoModuleProvider provider) {
if (provider == null) {
return;
}
Map< String, Object > properties = new HashMap<>();
properties.put( "appname", provider.getAppName() );
properties.put( "packagename", provider.getAppPackage() );
properties.put( "activeTime", System.currentTimeMillis() - mCardStartShowTime );
properties.put( "type", provider.getModuleName() );
mAnalytics.track( "Launcher_Card_Show", properties );
Map<String, Object> properties = new HashMap<>();
properties.put("appname", provider.getAppName());
properties.put("packagename", provider.getAppPackage());
properties.put("activeTime", System.currentTimeMillis() - mCardStartShowTime);
properties.put("type", provider.getModuleName());
mAnalytics.track("Launcher_Card_Show", properties);
mCardStartShowTime = System.currentTimeMillis();
}
/**
* 卡片滑动埋点WTF
*/
private void trackCardFlipEvent( IMogoModuleProvider provider ) {
if ( provider == null ) {
private void trackCardFlipEvent(IMogoModuleProvider provider) {
if (provider == null) {
return;
}
Map< String, Object > properties = new HashMap<>();
properties.put( "appname", provider.getAppName() );
properties.put( "packagename", provider.getAppPackage() );
properties.put( "type", provider.getModuleName() );
mAnalytics.track( "Launcher_Card_Slide", properties );
Map<String, Object> properties = new HashMap<>();
properties.put("appname", provider.getAppName());
properties.put("packagename", provider.getAppPackage());
properties.put("type", provider.getModuleName());
mAnalytics.track("Launcher_Card_Slide", properties);
}
} );
});
mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation( this );
mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment );
mMogoFragmentManager.registerMainFragmentStackTransactionListener( ( size ) -> {
if ( size == 0 ) {
mMogoFragmentManager = (IMogoFragmentManager) ARouter.getInstance().build(MogoServicePaths.PATH_FRAGMENT_MANAGER).navigation(this);
mMogoFragmentManager.init(this, R.id.module_main_id_search_fragment);
mMogoFragmentManager.registerMainFragmentStackTransactionListener((size) -> {
if (size == 0) {
showLayout();
} else if ( size == 1 ) {
} else if (size == 1) {
hideLayout();
}
} );
mHeader = findViewById( R.id.module_main_id_header_fragment_container );
mCards = findViewById( R.id.module_main_id_cards_container );
mApps = findViewById( R.id.module_main_id_apps_fragment_container );
mEntrance = findViewById( R.id.module_main_id_entrance_fragment_container );
mFloatingLayout = findViewById( R.id.module_main_id_floating_view );
mLeftShadowFrame = findViewById( R.id.module_main_id_map_left_shadow_frame );
mTopShadowFrame = findViewById( R.id.module_main_id_map_top_shadow_frame );
});
mHeader = findViewById(R.id.module_main_id_header_fragment_container);
mCards = findViewById(R.id.module_main_id_cards_container);
mApps = findViewById(R.id.module_main_id_apps_fragment_container);
mEntrance = findViewById(R.id.module_main_id_entrance_fragment_container);
mFloatingLayout = findViewById(R.id.module_main_id_floating_view);
mLeftShadowFrame = findViewById(R.id.module_main_id_map_left_shadow_frame);
mTopShadowFrame = findViewById(R.id.module_main_id_map_top_shadow_frame);
WindowViewHandler.init( mFloatingLayout );
WindowViewHandler.init(mFloatingLayout);
}
// 隐藏布局
private void hideLayout() {
mHeader.setVisibility( View.GONE );
mCards.setVisibility( View.GONE );
mApps.setVisibility( View.GONE );
mEntrance.setVisibility( View.GONE );
mFloatingLayout.setVisibility( View.GONE );
mLeftShadowFrame.setVisibility( View.GONE );
mHeader.setVisibility(View.GONE);
mCards.setVisibility(View.GONE);
mApps.setVisibility(View.GONE);
mEntrance.setVisibility(View.GONE);
mFloatingLayout.setVisibility(View.GONE);
mLeftShadowFrame.setVisibility(View.GONE);
}
// 显示布局
private void showLayout() {
mHeader.setVisibility( View.VISIBLE );
mCards.setVisibility( View.VISIBLE );
mApps.setVisibility( View.VISIBLE );
mEntrance.setVisibility( View.VISIBLE );
mFloatingLayout.setVisibility( View.VISIBLE );
mLeftShadowFrame.setVisibility( View.VISIBLE );
mHeader.setVisibility(View.VISIBLE);
mCards.setVisibility(View.VISIBLE);
mApps.setVisibility(View.VISIBLE);
mEntrance.setVisibility(View.VISIBLE);
mFloatingLayout.setVisibility(View.VISIBLE);
mLeftShadowFrame.setVisibility(View.VISIBLE);
}
@Override
protected void onCreate( @Nullable Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MogoModulePaths.addModule( new MogoModule( ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY ) );
MogoModulePaths.addModule(new MogoModule(ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY));
mMogoModuleHandler = new MogoModulesManager( this );
mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation();
if ( mMogoMapService != null ) {
mMogoMapService.getHostListenerRegister().registerHostMapListener( mMogoModuleHandler );
mMogoMapService.getHostListenerRegister().registerHostNaviListener( mMogoModuleHandler );
mMogoMapService.getHostListenerRegister().registerMarkerClickListener( this );
mMogoModuleHandler = new MogoModulesManager(this);
mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation();
if (mMogoMapService != null) {
mMogoMapService.getHostListenerRegister().registerHostMapListener(mMogoModuleHandler);
mMogoMapService.getHostListenerRegister().registerHostNaviListener(mMogoModuleHandler);
mMogoMapService.getHostListenerRegister().registerMarkerClickListener(this);
}
mMogoModuleHandler.setMapLoadedCallback( () -> {
Logger.d( TAG, "map loaded." + Thread.currentThread().getName() );
mMogoModuleHandler.setMapLoadedCallback(() -> {
Logger.d(TAG, "map loaded." + Thread.currentThread().getName());
// 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。
mMogoModuleHandler.loadModules();
loadContainerModules();
loadCardModules();
new Handler().postDelayed(() -> loadCardModules(), 5000);
// 显示左边遮罩
mLeftShadowFrame.setVisibility( View.VISIBLE );
mTopShadowFrame.setVisibility( View.VISIBLE );
mLeftShadowFrame.setVisibility(View.VISIBLE);
mTopShadowFrame.setVisibility(View.VISIBLE);
// 右移地图中心点
mMogoMapUIController = mMogoMapService.getMapUIController();
mMogoMapUIController.setPointToCenter( 0.66145, 0.590688 );
mMogoMapUIController.setPointToCenter(0.66145, 0.590688);
// 开启定位
startLocation();
} );
mMogoModuleHandler.loadMapModule( R.id.module_main_id_map_fragment_container );
});
mMogoModuleHandler.loadMapModule(R.id.module_main_id_map_fragment_container);
mMogoCardManager = ( IMogoCardManager ) ARouter.getInstance().build( MogoServicePaths.PATH_CARD_MANAGER ).navigation( this );
mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( this );
mMogoCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation(this);
mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(this);
}
private void startLocation() {
mLocationClient = mMogoMapService.getSingletonLocationClient( getApplicationContext() );
mLocationClient.addLocationListener( this );
mLocationClient = mMogoMapService.getSingletonLocationClient(getApplicationContext());
mLocationClient.addLocationListener(this);
mLocationClient.start();
}
private void loadContainerModules() {
mMogoModuleHandler.loadAppsListModule( R.id.module_main_id_apps_fragment_container );
mMogoModuleHandler.loadExtensionsModule( R.id.module_main_id_header_fragment_container );
mMogoModuleHandler.loadEntrancesModule( R.id.module_main_id_entrance_fragment_container );
mMogoModuleHandler.loadAppsListModule(R.id.module_main_id_apps_fragment_container);
mMogoModuleHandler.loadExtensionsModule(R.id.module_main_id_header_fragment_container);
mMogoModuleHandler.loadEntrancesModule(R.id.module_main_id_entrance_fragment_container);
}
private void loadCardModules() {
List< IMogoModuleProvider > providers = mMogoModuleHandler.loadCardsModule();
mCardModulesAdapter = new CardModulesAdapter( this, providers );
mCardsContainer.setOffscreenPageLimit( providers.size() );
mCardsContainer.setPageTransformer( true, new VerticalStackTransformer( this ) );
mCardsContainer.setAdapter( mCardModulesAdapter );
mCardsContainer.setCurrentItem( mCurrentPosition );
List<IMogoModuleProvider> providers = mMogoModuleHandler.loadCardsModule();
mCardModulesAdapter = new CardModulesAdapter(this, providers);
mCardsContainer.setOffscreenPageLimit(providers.size());
mCardsContainer.setPageTransformer(true, new VerticalStackTransformer(this));
mCardsContainer.setAdapter(mCardModulesAdapter);
mCardsContainer.setCurrentItem(mCurrentPosition);
mCardStartShowTime = System.currentTimeMillis();
}
@@ -266,60 +282,62 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@NonNull
@Override
protected MainPresenter createPresenter() {
return new MainPresenter( this );
return new MainPresenter(this);
}
@Override
public void onLocationChanged( MogoLocation location ) {
if ( mMogoModuleHandler != null ) {
mMogoModuleHandler.onLocationChanged( location );
public void onLocationChanged(MogoLocation location) {
if (mMogoModuleHandler != null) {
mMogoModuleHandler.onLocationChanged(location);
}
}
@Override
public boolean onMarkerClicked( IMogoMarker marker ) {
public boolean onMarkerClicked(IMogoMarker marker) {
isClickMarker = true;
switch2( marker.getOwner() );
if ( mMogoModuleHandler != null ) {
mMogoModuleHandler.onMarkerClicked( marker );
switch2(marker.getOwner());
if (mMogoModuleHandler != null) {
mMogoModuleHandler.onMarkerClicked(marker);
}
isClickMarker = false;
return false;
}
@Override
public void switch2( String cardType ) {
if ( mCardModulesAdapter != null ) {
public void switch2(String cardType) {
if (mCardModulesAdapter != null) {
int position = mCardModulesAdapter.getProviderPosition( cardType );
if ( position != -1 ) {
int lastFactPosition = mCardModulesAdapter.getFactPosition( mCurrentPosition );
mCardsContainer.setCurrentItem( mCurrentPosition + position - lastFactPosition, Math.abs( lastFactPosition - position ) == 1 );
if ( !isClickMarker ) {
mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() );
int position = mCardModulesAdapter.getProviderPosition(cardType);
if (position != -1) {
int lastFactPosition = mCardModulesAdapter.getFactPosition(mCurrentPosition);
mCardsContainer.setCurrentItem(mCurrentPosition + position - lastFactPosition, Math.abs(lastFactPosition - position) == 1);
if (!isClickMarker) {
mMogoCardManager.invoke(position, mMogoModuleHandler.getCurrentModuleName());
}
} else {
Logger.e( TAG, "Can't find type of %s's position", cardType );
Logger.e(TAG, "Can't find type of %s's position", cardType);
}
}
}
@Override protected void onResume() {
@Override
protected void onResume() {
MapBroadCastHelper.getInstance(this).mapFrount();
super.onResume();
}
@Override protected void onPause() {
@Override
protected void onPause() {
MapBroadCastHelper.getInstance(this).mapBackground();
super.onPause();
}
@Override
public void onBackPressed() {
if ( mMogoFragmentManager.getStackSize() == 0 ) {
if (mMogoFragmentManager.getStackSize() == 0) {
return;
}
if ( mMogoFragmentManager != null ) {
if (mMogoFragmentManager != null) {
mMogoFragmentManager.pop();
}
}
@@ -328,12 +346,12 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
protected void onDestroy() {
super.onDestroy();
if ( mLocationClient != null ) {
mLocationClient.removeLocationListener( this );
if (mLocationClient != null) {
mLocationClient.removeLocationListener(this);
mLocationClient.destroy();
}
mLocationClient = null;
if ( mMogoModuleHandler != null ) {
if (mMogoModuleHandler != null) {
mMogoModuleHandler.destroy();
}
mMogoModuleHandler = null;
@@ -342,6 +360,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mMogoCardManager = null;
mMogoFragmentManager = null;
AIAssist.getInstance( this ).release();
AIAssist.getInstance(this).release();
}
}

View File

@@ -40,6 +40,8 @@ dependencies {
annotationProcessor rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.rxjava
implementation rootProject.ext.dependencies.rxandroid
// implementation rootProject.ext.dependencies.moduleonlinecar
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogomap
api rootProject.ext.dependencies.mogomapapi

View File

@@ -1,6 +1,8 @@
package com.mogo.module.service;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
import com.alibaba.android.arouter.launcher.ARouter;
@@ -98,11 +100,17 @@ public class MarkerServiceHandler {
}
@Override
public void onMsgReceived(MarkerResponse response) {
public void onMsgReceived(final MarkerResponse response) {
Logger.e(TAG, "======MarkerResponse" + response);
if (!getMogoStatusManager().isSearchUIShow() && !getMogoStatusManager().isV2XShow()) {
isFirstMarker = true;
drawMapMarker(response);
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
drawMapMarker(response);
}
});
}
}
});
@@ -162,7 +170,7 @@ public class MarkerServiceHandler {
@Override
public boolean onMarkerClicked(IMogoMarker marker) {
Logger.e(TAG, "onMarkerClicked 点击了大而全中的Marker" + marker);
Logger.i(TAG, "onMarkerClicked 点击了大而全中的Marker" + marker);
try {
if (lastMarker != null) {
// 判断点击的是否是同一个
@@ -174,7 +182,7 @@ public class MarkerServiceHandler {
// 将上次选中 Marker 设置为未选中状态
MarkerShowEntity lastMarkerShowEntity = (MarkerShowEntity) lastMarker.getObject();
Logger.w(TAG, "onMarkerClicked 点击了大而全中的Marker lastMarkerShowEntity" + lastMarkerShowEntity);
Logger.i(TAG, "onMarkerClicked 点击了大而全中的Marker lastMarkerShowEntity" + lastMarkerShowEntity);
lastMarkerShowEntity.setChecked(false);
lastMarkerShowEntity.setHighlighted(false);
@@ -186,7 +194,7 @@ public class MarkerServiceHandler {
// 将当前的Marker设置为选中
MarkerShowEntity markerShowEntity = (MarkerShowEntity) marker.getObject();
Logger.w(TAG, "onMarkerClicked 点击了大而全中的Marker markerShowEntity" + markerShowEntity);
Logger.i(TAG, "onMarkerClicked 点击了大而全中的Marker markerShowEntity" + markerShowEntity);
markerShowEntity.setChecked(true);
markerShowEntity.setHighlighted(true);
@@ -352,6 +360,10 @@ public class MarkerServiceHandler {
// 在ACC on 之后第一次获取到了在线车辆数据选中最近的一个Marker
if (isFirstMarker) {
if (nearlyMogoMarker != null) {
// getMogoCardManager().switch2(ServiceConst.CARD_TYPE_USER_DATA);
// MarkerShowEntity markerShowEntity = (MarkerShowEntity) nearlyMogoMarker.getObject();
// MarkerOnlineCar markerOnlineCar = (MarkerOnlineCar) markerShowEntity.getBindObj();
// onLineCarCardViewProvider.updateView(markerOnlineCar);
MogoMarkersHandler.getInstance().onMarkerClicked(nearlyMogoMarker);
isFirstMarker = false;
}
@@ -476,7 +488,7 @@ public class MarkerServiceHandler {
* 绘制Marker这里绘制的会使用markerShowEntities队列进行维护
*/
public static IMogoMarker drawMapMarker(MarkerShowEntity markerShowEntity) {
Logger.e(TAG, "绘制Marker====drawMapMarker" + markerShowEntity);
// Logger.i(TAG, "绘制Marker====drawMapMarker" + markerShowEntity);
try {
if (markerShowEntity.getMarkerLocation() != null) {

View File

@@ -303,7 +303,7 @@ public class MogoServiceProvider implements IMogoModuleProvider,
Logger.i( TAG, "map status is vertical : " + mIsVertical );
mIsMapStatusOk = true;
} catch ( Exception e ) {
e.printStackTrace();
}
}

View File

@@ -20,6 +20,8 @@ import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.service.R;
import com.mogo.module.service.ServiceConst;
import java.util.Random;
/**
* author : donghongyu
* e-mail : 1358506549@qq.com
@@ -74,7 +76,8 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
ivIcon.setVisibility(View.INVISIBLE);
loadImageWithMarker(markerShowEntity);
ivCar.setImageResource(R.drawable.icon_map_marker_car_gray);
ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
ivCar.setRotation(new Random().nextInt(360));
// ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
if (bindObj instanceof MarkerOnlineCar) {
if (((MarkerOnlineCar) bindObj).getUserInfo().getGenderValue() == 0) {

View File

@@ -17,6 +17,8 @@ import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.service.R;
import com.mogo.module.service.ServiceConst;
import java.util.Random;
/**
* author : donghongyu
* e-mail : 1358506549@qq.com
@@ -65,7 +67,8 @@ public class MapMarkerView extends MapMarkerBaseView {
ivIcon.setVisibility(View.INVISIBLE);
loadImageWithMarker(markerShowEntity);
ivCar.setImageResource(R.drawable.icon_map_marker_car_gray);
ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
// ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
ivCar.setRotation(new Random().nextInt(360));
if (bindObj instanceof MarkerOnlineCar) {
if (((MarkerOnlineCar) bindObj).getUserInfo().getGenderValue() == 0) {

View File

@@ -15,7 +15,7 @@ public interface IShareControl {
* 显示对话框
*/
@Keep
void showDialog(Context context);
void showDialog(/*Context context*/);
/**
* 对话框消失

View File

@@ -1,6 +1,9 @@
package com.mogo.module.share;
import android.content.Context;
import com.mogo.map.MogoNavi;
import com.mogo.map.impl.amap.navi.NaviClient;
import com.mogo.module.share.dialog.LaucherShareDialog;
/**
@@ -9,14 +12,36 @@ import com.mogo.module.share.dialog.LaucherShareDialog;
* @since 2020-01-10
*/
public class ShareControl implements IShareControl {
private static volatile ShareControl sInstance;
private Context mContext;
private ShareControl(Context context) {
mContext = context;
}
public static ShareControl getInstance(Context context) {
if (sInstance == null) {
synchronized (ShareControl.class) {
if (sInstance == null) {
sInstance = new ShareControl(context);
}
}
}
return sInstance;
}
@Override
public void showDialog(Context context) {
LaucherShareDialog shareDialog = new LaucherShareDialog(context);
public void showDialog() {
LaucherShareDialog shareDialog = new LaucherShareDialog(mContext);
shareDialog.setCanceledOnTouchOutside(true);
shareDialog.show();
}
@Override
public void dismissDialog() {
LaucherShareDialog shareDialog = new LaucherShareDialog(mContext);
shareDialog.dismiss();
}
}

View File

@@ -42,4 +42,7 @@ public class TanluConstants {
//语音搜索
public static final String CARNET_VOICE_SEARCH = "CarNet_Voice_Search";
//视频播放
public static final String CARNET_USER_VIDEO_PLAY = "CarNet_user_video_play";
}

View File

@@ -16,15 +16,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.amap.api.services.core.LatLonPoint;
import com.amap.api.services.core.PoiItem;
import com.amap.api.services.geocoder.GeocodeAddress;
import com.amap.api.services.geocoder.GeocodeQuery;
import com.amap.api.services.geocoder.GeocodeResult;
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.mogo.commons.data.BaseData;
import com.mogo.commons.mvp.IView;
import com.mogo.commons.mvp.MvpFragment;
@@ -33,7 +24,6 @@ import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.map.MogoLatLng;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.marker.IMogoMarker;
@@ -44,9 +34,17 @@ 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.IMogoGeoSearch;
import com.mogo.map.search.geo.IMogoGeoSearchListener;
import com.mogo.map.search.geo.MogoGeocodeAddress;
import com.mogo.map.search.geo.MogoGeocodeResult;
import com.mogo.map.search.geo.MogoPoiItem;
import com.mogo.map.search.geo.MogoRegeocodeResult;
import com.mogo.map.search.geo.query.MogoGeocodeQuery;
import com.mogo.map.search.poisearch.IMogoPoiSearch;
import com.mogo.map.search.poisearch.IMogoPoiSearchListener;
import com.mogo.map.search.poisearch.MogoPoiResult;
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.entity.MarkerExploreWay;
@@ -56,9 +54,7 @@ import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.common.entity.MarkerUserInfo;
import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.module.share.ShareControl;
import com.mogo.module.share.constant.ShareConstants;
import com.mogo.module.tanlu.R;
import com.mogo.module.tanlu.callback.AlongTheWayCallback;
import com.mogo.module.tanlu.callback.NaviCallback;
import com.mogo.module.tanlu.callback.RoadLineCallback;
import com.mogo.module.tanlu.callback.UploadShareCallback;
@@ -66,7 +62,6 @@ import com.mogo.module.tanlu.callback.VoiceSearchCallback;
import com.mogo.module.tanlu.constant.TanluConstants;
import com.mogo.module.tanlu.model.Center;
import com.mogo.module.tanlu.model.Information;
import com.mogo.module.tanlu.model.InformationAndLiveCarResult;
import com.mogo.module.tanlu.model.Items;
import com.mogo.module.tanlu.model.NaviResult;
import com.mogo.module.tanlu.model.PathLineResult;
@@ -75,13 +70,11 @@ import com.mogo.module.tanlu.model.VoiceSearchResult;
import com.mogo.module.tanlu.model.event.MarkerInfo;
import com.mogo.module.tanlu.model.event.PushTypeInfo;
import com.mogo.module.tanlu.util.Utils;
import com.mogo.module.tanlu.video.FullMediaActivity;
import com.mogo.module.tanlu.video.SimpleCoverVideoPlayer;
import com.mogo.module.tanlu.view.AutoZoomInImageView;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.cardmanager.IMogoCardManager;
import com.mogo.service.connection.IMogoSocketManager;
import com.mogo.service.imageloader.IMogoImageLoaderListener;
import com.mogo.service.imageloader.IMogoImageloader;
import com.mogo.service.intent.IMogoIntentListener;
@@ -127,17 +120,14 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
SimpleCoverVideoPlayer simpleCoverVideoPlayer;
AutoZoomInImageView autoZoomInImageView;
//map
private IMogoMarker mPoiMarker;
private IMogoMarkerManager mMarkerManager;
private IMogoMapService mMogoMapService;
private IMogoSocketManager mMogoSocketManager;
private IMogoLocationClient mLocationClient;
private IMogoCardManager iMogoCardManager;
private IMogoStatusManager mMogoStatusManager;
private IMogoIntentManager mogoIntentManager; //免唤醒
private IMogoMapUIController mMApUIController;
private GeocodeSearch mGeocodeSearch;
private IMogoAnalytics mAnalytics;
private IMogoGeoSearch mIMogoGeoSearch;
//声音控制文字
private String voiceGetInfoMationTts;
@@ -202,7 +192,9 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
// @Override
// public void onClick(View view) {
// Logger.d(TAG, "simpleCoverVideoPlayer onClick -------> ");
// FullMediaActivity.Companion.launch(getActivity(), mVideoUrl, mImageUrl, mTitle, mGenerateTime);
// gsyVideoOptionBuilder.setUrl(mVideoUrl).setCacheWithPlay(false).setPlayTag(TAG)
// .build(simpleCoverVideoPlayer);
//// simpleCoverVideoPlayer.getStartButton().performClick();
// }
// });
}
@@ -211,36 +203,36 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
private void initInterface() {
//图片配置
mogoImageloader = (IMogoImageloader) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_IMAGE_LOADER).navigation();
//地图marker
//地图marker,地图操作
mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(getActivity());
mMarkerManager = mMogoMapService.getMarkerManager(getContext());
mMApUIController = mMogoMapService.getMapUIController();
//地图逆序
mIMogoGeoSearch = mMogoMapService.getGeoSearch(getContext());
//切换卡片操作
iMogoCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation(getActivity());
mMogoRegisterCenter = (IMogoRegisterCenter) ARouter.getInstance().build(MogoServicePaths.PATH_REGISTER_CENTER).navigation(getContext());
mMogoRegisterCenter.registerMogoModuleLifecycle(TanluConstants.MODEL_NAME, this);
//唤醒
mogoIntentManager = (IMogoIntentManager) ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation(getContext());
//地图操作
mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(getContext());
mMApUIController = mMogoMapService.getMapUIController();
mGeocodeSearch = new GeocodeSearch(getContext());
mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_MANAGER).navigation(getContext());
mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(getContext());
//poi查询
mGeocodeSearch.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() {
mIMogoGeoSearch.setGeoSearchListener(new IMogoGeoSearchListener() {
@Override
public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
public void onRegeocodeSearched(MogoRegeocodeResult regeocodeResult) {
Logger.d(TAG, "onRegeocodeSearched -----> ");
}
@Override
public void onGeocodeSearched(GeocodeResult p0, int p1) {
Logger.d(TAG, "onGeocodeSearched ------mKeywords =" + mKeywords + ">>p1 =" + p1);
if (p1 == 1000) {
if (p0.getGeocodeAddressList() != null && p0.getGeocodeAddressList().size() != 0) {
GeocodeAddress geocodeAddress = p0.getGeocodeAddressList().get(0);
LatLonPoint latLon = geocodeAddress.getLatLonPoint();
public void onGeocodeSearched(MogoGeocodeResult geocodeResult) {
Logger.d(TAG, "onGeocodeSearched ------mKeywords =" + mKeywords);
if (geocodeResult != null) {
if (geocodeResult.getAddresses() != null && geocodeResult.getAddresses().size() != 0) {
MogoGeocodeAddress geocodeAddress = geocodeResult.getAddresses().get(0);
MogoLatLng latLon = geocodeAddress.getLatlng();
Double longit; //经度
Double lat; //维度
if (mKeywords.equals("附近")) {
@@ -249,23 +241,22 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
} else {
Logger.d(TAG, "其他 ---1----");
longit = latLon.getLongitude();
lat = latLon.getLatitude();
longit = latLon.lng;
lat = latLon.lat;
}
Log.d(TAG, "geoSearch keywords =" + mKeywords + ">>longitude= " + longit + "--latitude= " + lat);
getVoiceControlRoadData(mKeywords, lat, longit);
} else {
String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode();
PoiSearch.Query query = new PoiSearch.Query(mKeywords, "", cityCode);
PoiSearch poiSearch = new PoiSearch(getContext(), query);
poiSearch.setOnPoiSearchListener(new PoiSearch.OnPoiSearchListener() {
MogoPoiSearchQuery poiSearchQuery = new MogoPoiSearchQuery(mKeywords, "", cityCode);
IMogoPoiSearch poiSearch = mMogoMapService.getPoiSearch(getContext(), poiSearchQuery);
poiSearch.setPoiSearchListener(new IMogoPoiSearchListener() {
@Override
public void onPoiSearched(PoiResult p0, int p1) {
Logger.d(TAG, "setOnPoiSearchListener--mKeywords =" + mKeywords + ">>p1 =" + p1);
public void onPoiSearched(MogoPoiResult p0, int p1) {
if (p1 == 1000) {
if (p0.getPois() != null && p0.getPois().size() != 0) {
PoiItem poi = p0.getPois().get(0);
LatLonPoint latLon = poi.getLatLonPoint();
MogoPoiItem poi = p0.getPois().get(0);
MogoLatLng latLon = poi.getPoint();
Double longit; //经度
Double lat; //维度
if (mKeywords.equals("附近")) {
@@ -274,8 +265,8 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
} else {
Logger.d(TAG, "其他 --2----");
longit = latLon.getLongitude();
lat = latLon.getLatitude();
longit = latLon.lng;
lat = latLon.lat;
}
getVoiceControlRoadData(mKeywords, lat, longit);
Log.d(TAG, "setOnPoiSearchListener keywords =" + mKeywords + ">>longitude= " + longit + "--latitude" + lat);
@@ -288,7 +279,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
}
@Override
public void onPoiItemSearched(PoiItem poiItem, int i) {
public void onPoiItemSearched(MogoPoiItem item, int errorCode) {
}
});
@@ -338,7 +329,6 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
@Override
public void onStartNavi() { //开始导航
Logger.d(TAG, "onStartNavi -------> ");
initModelData();
getNavigationData();
}
@@ -407,14 +397,14 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
* @return
*/
private void handleActionFoo(String keywords) {
Log.d(TAG, "handleActionFoo keywords = " + keywords);
speakSearchingVoice();
GeocodeQuery geocodeQuery;
MogoGeocodeQuery geocodeQuery;
String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode();
geocodeQuery = new GeocodeQuery(keywords, cityCode);
geocodeQuery = new MogoGeocodeQuery();
geocodeQuery.setLocationName(keywords);
mGeocodeSearch.getFromLocationNameAsyn(geocodeQuery);
geocodeQuery.setCity(cityCode);
mIMogoGeoSearch.getFromLocationNameAsyn(geocodeQuery);
}
/**
@@ -428,7 +418,6 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
mogoIntentManager.registerIntentListener(TanluConstants.GO_TO_SHARE, mogoIntentListener);
}
/**
* 唤醒语音
*/
@@ -436,7 +425,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
@Override
public void onIntentReceived(String intentStr, Intent intent) {
String data = intent.getStringExtra("data");
Logger.e(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data);
Logger.d(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data);
if (intentStr.equals(TanluConstants.SPECIFIEDROAD_SEARCH)) { //地点堵不堵 --ok
try {
JSONObject jsonObject = new JSONObject(data);
@@ -451,6 +440,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
sendShareReceiver("1");
Logger.d(TAG, "mogoIntentListener 上报路况 ----> ");
traceTypeData("1");
ShareControl.getInstance(getActivity()).dismissDialog();
} else if (intentStr.equals(TanluConstants.SHARE_ROAD_CLOSURE)) { //分享封路(封路了) --ok
traceData("2");
sendShareReceiver("3");
@@ -462,13 +452,46 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
Logger.d(TAG, "mogoIntentListener 分享交通检查 ----> ");
traceTypeData("3");
} else if (intentStr.equals(TanluConstants.GO_TO_SHARE)) { //我要分享 --ok
ShareControl shareControl = new ShareControl();
shareControl.showDialog(getActivity());
ShareControl.getInstance(getActivity()).showDialog();
Logger.d(TAG, "mogoIntentListener 我要分享 ----> ");
}
}
};
/**
* 免唤醒语音监听
*/
private IMogoVoiceCmdCallBack mogoVoiceListener = new IMogoVoiceCmdCallBack() {
@Override
public void onCmdSelected(String cmd) {
Log.d(TAG, "mogoVoiceListener cmd = " + cmd);
if (cmd.equals(TanluConstants.PLAY_VIDEO)) { //播放路况 --ok
gsyVideoOptionBuilder.setUrl(mVideoUrl).setCacheWithPlay(false).setPlayTag(TAG)
.build(simpleCoverVideoPlayer);
simpleCoverVideoPlayer.getStartButton().performClick();
traceVideoPlayStatusData("1");
}
}
@Override
public void onCmdAction(String speakText) {
}
@Override
public void onCmdCancel(String speakText) {
}
@Override
public void onSpeakEnd(String speakText) {
}
@Override
public void onSpeakSelectTimeOut(String speakText) {
}
};
/**
* type=1 路况
* <p>
@@ -498,40 +521,6 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
mAnalytics.track(TanluConstants.CARNET_USER_UPLOAD, properties);
}
/**
* 免唤醒语音监听
*/
private IMogoVoiceCmdCallBack mogoVoiceListener = new IMogoVoiceCmdCallBack() {
@Override
public void onCmdSelected(String cmd) {
Log.d(TAG, "com.zhidao.tanlu.play ------->");
if (cmd.equals(TanluConstants.PLAY_VIDEO)) { //播放路况 --ok
// FullMediaActivity.Companion.launch(getActivity(), mVideoUrl, mImageUrl, mTitle, mGenerateTime);
//TODO
gsyVideoOptionBuilder.setUrl(mVideoUrl).setCacheWithPlay(false).setPlayTag(TAG)
.build(simpleCoverVideoPlayer);
simpleCoverVideoPlayer.getStartButton().performClick();
}
}
@Override
public void onCmdAction(String speakText) {
}
@Override
public void onCmdCancel(String speakText) {
}
@Override
public void onSpeakEnd(String speakText) {
}
@Override
public void onSpeakSelectTimeOut(String speakText) {
}
};
/**
* 发送广播 1拥堵2交通检查3封路
*/
@@ -662,7 +651,6 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
mGenerateTime = markerExploreWay.getGenerateTime();
mTitle = markerExploreWay.getAddr();
mAddressTv.setText(markerExploreWay.getAddr());
Log.d(TAG, "refreshVideoData addr = " + markerExploreWay.getAddr());
mDistanceTv.setText(handleDistance(markerExploreWay.getDistance()));
mTimeTv.setText(formatDate(markerExploreWay.getGenerateTime()));
//判断是图片还是视频,第一个时,上一个不可点击
@@ -670,17 +658,31 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
simpleCoverVideoPlayer.setVisibility(View.VISIBLE);
//视频配置
mVideoUrl = videoUrl;
Log.d(TAG, "refreshVideoData mVideoUrl = " + mVideoUrl);
simpleCoverVideoPlayer.loadCoverImage(mImageUrl, getContext());
gsyVideoOptionBuilder.setUrl(videoUrl).setCacheWithPlay(false).setPlayTag(TAG)
.build(simpleCoverVideoPlayer);
simpleCoverVideoPlayer.getStartButton().performClick();
traceVideoPlayStatusData("2");
if (mImageUrl == null) {
return;
}
}
/**
* 上传播放
* @param type
* type=1 主动触发播放
*
* type=2 自动播放
*/
private void traceVideoPlayStatusData(String type) {
Map<String, Object> properties = new HashMap<>();
properties.put("type", type);
mAnalytics.track(TanluConstants.CARNET_USER_VIDEO_PLAY, properties);
}
/**
* 刷新单个图片数据
*/
@@ -735,7 +737,9 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
@Override
public void onPerform() {
//免唤醒
AIAssist.getInstance(getActivity()).registerUnWakeupCommand(TanluConstants.PLAY_VIDEO, TanluConstants.CMD_PLAY_ROAD_CONDITION, mogoVoiceListener);
AIAssist.getInstance(getActivity()).registerUnWakeupCommand(TanluConstants.PLAY_VIDEO,
TanluConstants.CMD_PLAY_ROAD_CONDITION, mogoVoiceListener);
isCurrentPage = true;
Logger.d(TAG, "tanlu卡片 onPerform 有效 ---->");
mMarkerManager = mMogoMapService.getMarkerManager(getActivity());
@@ -901,7 +905,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
/**
* 上报分享信息 TODO
* 上报分享信息
*/
private void uploadShareInfo(String poiType, String poiImgUrl, String nickname, String headImgUrl) {
double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
@@ -964,11 +968,16 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
// }
// });
mTanluModelData.getNaviInformation(new NaviCallback() {
@Override
public void onSuccess(NaviResult data) {
Log.d(TAG, "getNavigationData onSuccess ----->");
List<Information> informationList = data.getResult().getInformations();
Log.d(TAG, "getNavigationData onSuccess informationList =" + informationList);
if (informationList == null || (informationList != null && informationList.size() == 0)) {
return;
}
//清除探路之前的数据
mMarkerManager.removeMarkers(TanluConstants.MODEL_NAME);
@@ -994,7 +1003,6 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
.longitude(informationList.get(i).lon);
optionList.add(options);
Log.d(TAG, "lat =" + informationList.get(i).lat + ">>>lon =" + informationList.get(i).lon);
}
Logger.d(TAG, "getNavigationData optionList.size() = " + optionList.size());
mMarkerManager.addMarkers(TanluConstants.MODEL_NAME, optionList, true);
@@ -1112,6 +1120,11 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
speakSuccessVoice(o.getResult().getInformations(), discription == null ? "" : discription);
List<Information> informationList = o.getResult().getInformations();
Log.d(TAG, "getVoiceControlRoadData onSuccess informationList =" + informationList);
if (informationList == null || (informationList != null && informationList.size() == 0)) {
return;
}
//清除探路之前的数据
mMarkerManager.removeMarkers(TanluConstants.MODEL_NAME);
//添加埋点数据
@@ -1140,7 +1153,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
.longitude(informationList.get(i).lon);
optionList.add(options);
Log.d(TAG, "lat =" + informationList.get(i).lat + ">>>lon =" + informationList.get(i).lon);
// Log.d(TAG, "getVoiceControlRoadData lat =" + informationList.get(i).lat + ">>>lon =" + informationList.get(i).lon);
}
Logger.d(TAG, "getVoiceControlRoadData optionList.size() = " + optionList.size());
mMarkerManager.addMarkers(TanluConstants.MODEL_NAME, optionList, true);

View File

@@ -8,10 +8,10 @@ import java.util.List;
* @since 2020-02-03
*/
public class NaviRoadRequest {
public List<Double> coordinates;
public List<String> coordinates;
public int limit;
public NaviRoadRequest(List<Double> coordinates, int limit) {
public NaviRoadRequest(List<String> coordinates, int limit) {
this.coordinates = coordinates;
this.limit = limit;
}

View File

@@ -291,10 +291,22 @@ public class TanluModelData {
*/
public void getNaviInformation(final NaviCallback callback) {
Gson gson = new Gson();
double lng = 120.42;
double lat = 36.19;
double lng2 = 120.66;
double lat2 = 36.32;
List<String> coordinates = new ArrayList<>();
coordinates.add(lng + "," + lat);
coordinates.add(lng2 + "," + lat2);
NaviRoadRequest naviRoadRequest = new NaviRoadRequest(coordinates, 10);
String naviStr = gson.toJson(naviRoadRequest);
Log.d(TAG, "getNaviInformation naviStr = " + naviStr);
final Map<String, Object> params = new ParamsProvider.Builder(mContext)
.append("sn", Utils.getSn())
// .append("data", uploadShareStr)
.append("data", naviStr)
.build();
mTanluApiService.getNaviInformation(params)

View File

@@ -2,6 +2,7 @@ package com.mogo.module.tanlu.video
import android.content.Context
import android.util.AttributeSet
import android.util.Log
import android.view.Surface
import android.view.View
import android.widget.ImageView
@@ -77,6 +78,33 @@ class SimpleCoverVideoPlayer : StandardGSYVideoPlayer {
override fun changeUiToCompleteShow() {
super.changeUiToCompleteShow()
// setViewShowState(mBottomContainer, View.INVISIBLE)
Log.d("liyz", "changeUiToCompleteShow ------------>")
}
override fun hideAllWidget() {
super.hideAllWidget()
Log.d("liyz", "hideAllWidget ------------>")
mBottomContainer.visibility = View.VISIBLE
}
override fun changeUiToPrepareingClear() {
super.changeUiToPrepareingClear()
mBottomContainer.visibility = View.VISIBLE
}
override fun changeUiToPlayingBufferingClear() {
super.changeUiToPlayingBufferingClear()
mBottomContainer.visibility = View.VISIBLE
}
override fun changeUiToClear() {
super.changeUiToClear()
mBottomContainer.visibility = View.VISIBLE
}
override fun changeUiToCompleteClear() {
super.changeUiToCompleteClear()
mBottomContainer.visibility = View.INVISIBLE
}
override fun onAutoCompletion() {

View File

@@ -66,7 +66,8 @@
android:layout_below="@+id/layout_top_view"
android:layout_marginLeft="@dimen/tanlu_module_card_margin_left"
android:layout_marginRight="@dimen/tanlu_module_card_margin_left"
android:background="@drawable/shape_bg_222533_9px">
>
<!-- android:background="@drawable/shape_bg_222533_9px"-->
<com.mogo.module.tanlu.video.SimpleCoverVideoPlayer
android:id="@+id/video_player_main"

View File

@@ -14,7 +14,7 @@
<dimen name="tanlu_module_full_loading_height">96px</dimen>
<dimen name="tanlu_module_full_bottom_height">90px</dimen>
<dimen name="tanlu_module_full_bottom_width">700px</dimen>
<dimen name="tanlu_module_full_bottom_margin">10px</dimen>
<dimen name="tanlu_module_full_bottom_margin">5px</dimen>
<dimen name="tanlu_module_full_top_height">72px</dimen>
<dimen name="tanlu_module_full_back_width">25px</dimen>

View File

@@ -15,7 +15,7 @@
<dimen name="tanlu_module_full_loading_height">96px</dimen>
<dimen name="tanlu_module_full_bottom_height">100px</dimen>
<dimen name="tanlu_module_full_bottom_width">700px</dimen>
<dimen name="tanlu_module_full_bottom_margin">10px</dimen>
<dimen name="tanlu_module_full_bottom_margin">5px</dimen>
<dimen name="tanlu_module_full_top_height">135px</dimen>
<dimen name="tanlu_module_full_back_width">50px</dimen>

View File

@@ -15,7 +15,7 @@
<dimen name="tanlu_module_full_loading_height">96px</dimen>
<dimen name="tanlu_module_full_bottom_height">144px</dimen>
<dimen name="tanlu_module_full_bottom_width">760px</dimen>
<dimen name="tanlu_module_full_bottom_margin">10px</dimen>
<dimen name="tanlu_module_full_bottom_margin">5px</dimen>
<dimen name="tanlu_module_full_top_height">135px</dimen>
<dimen name="tanlu_module_full_back_width">50px</dimen>