diff --git a/.idea/misc.xml b/.idea/misc.xml index 707ee6e613..2dc54c489f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 1b16d7e907..7967765624 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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 diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 3808bd13bc..363d37bcf9 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -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)); diff --git a/config.gradle b/config.gradle index 8d956ff938..9b22bd8d31 100644 --- a/config.gradle +++ b/config.gradle @@ -117,5 +117,7 @@ ext { // 统一登录 accountsdk : "com.zhidao.accountservice:account-sdk:1.0.5", + // crash + crashSdk : "com.zhidaoauto.crash.log:library:1.0.5", ] } \ No newline at end of file diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java index a09010b15f..84157f6a84 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java @@ -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 + diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java index 8a18d0b9e1..2ee2a01ab2 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java @@ -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; } 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 077f7c1a62..02e0ffbcfe 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 @@ -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 ); diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index ec5b6fbb73..44a29e9d19 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -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; *

* 描述:加载各个模块 */ -public class MainActivity extends MvpActivity< MainView, MainPresenter > implements MainView, +public class MainActivity extends MvpActivity 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 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 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 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(); } } diff --git a/modules/mogo-module-service/build.gradle b/modules/mogo-module-service/build.gradle index fa646b8779..88ce45edb7 100644 --- a/modules/mogo-module-service/build.gradle +++ b/modules/mogo-module-service/build.gradle @@ -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 diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java index e614f92411..33b6a55df7 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java @@ -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) { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java index 24b8774c8b..11b2d0f32f 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java @@ -303,7 +303,7 @@ public class MogoServiceProvider implements IMogoModuleProvider, Logger.i( TAG, "map status is vertical : " + mIsVertical ); mIsMapStatusOk = true; } catch ( Exception e ) { - + e.printStackTrace(); } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java index 7ab5a372c4..d6237fd22b 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java @@ -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) { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java index 104aeac656..6043598951 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java @@ -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) { diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/IShareControl.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/IShareControl.java index 76d27221e9..0224679a7e 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/IShareControl.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/IShareControl.java @@ -15,7 +15,7 @@ public interface IShareControl { * 显示对话框 */ @Keep - void showDialog(Context context); + void showDialog(/*Context context*/); /** * 对话框消失 diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java index 5d09b0d770..43ce0868aa 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java @@ -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(); } } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java index 18c482a475..5ed6632629 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java @@ -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"; + } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java index 682ec808ad..28c93fd0c9 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java @@ -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> 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> // @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> 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> 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> 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> } @Override - public void onPoiItemSearched(PoiItem poiItem, int i) { + public void onPoiItemSearched(MogoPoiItem item, int errorCode) { } }); @@ -338,7 +329,6 @@ public class TanluCardViewFragment extends MvpFragment> @Override public void onStartNavi() { //开始导航 - Logger.d(TAG, "onStartNavi -------> "); initModelData(); getNavigationData(); } @@ -407,14 +397,14 @@ public class TanluCardViewFragment extends MvpFragment> * @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> mogoIntentManager.registerIntentListener(TanluConstants.GO_TO_SHARE, mogoIntentListener); } - /** * 唤醒语音 */ @@ -436,7 +425,7 @@ public class TanluCardViewFragment extends MvpFragment> @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> 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> 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 路况 *

@@ -498,40 +521,6 @@ public class TanluCardViewFragment extends MvpFragment> 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> 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> 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 properties = new HashMap<>(); + properties.put("type", type); + mAnalytics.track(TanluConstants.CARNET_USER_VIDEO_PLAY, properties); + } + + /** * 刷新单个图片数据 */ @@ -735,7 +737,9 @@ public class TanluCardViewFragment extends MvpFragment> @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> /** - * 上报分享信息 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> // } // }); + mTanluModelData.getNaviInformation(new NaviCallback() { @Override public void onSuccess(NaviResult data) { - Log.d(TAG, "getNavigationData onSuccess ----->"); List 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> .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> speakSuccessVoice(o.getResult().getInformations(), discription == null ? "" : discription); List 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> .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); diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviRoadRequest.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviRoadRequest.java index 456fc5225b..f62763b6b2 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviRoadRequest.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviRoadRequest.java @@ -8,10 +8,10 @@ import java.util.List; * @since 2020-02-03 */ public class NaviRoadRequest { - public List coordinates; + public List coordinates; public int limit; - public NaviRoadRequest(List coordinates, int limit) { + public NaviRoadRequest(List coordinates, int limit) { this.coordinates = coordinates; this.limit = limit; } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java index e460cdc528..e903b69282 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java @@ -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 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 params = new ParamsProvider.Builder(mContext) .append("sn", Utils.getSn()) -// .append("data", uploadShareStr) + .append("data", naviStr) .build(); mTanluApiService.getNaviInformation(params) diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/SimpleCoverVideoPlayer.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/SimpleCoverVideoPlayer.kt index e0239d7ee5..02f0674e68 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/SimpleCoverVideoPlayer.kt +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/SimpleCoverVideoPlayer.kt @@ -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() { diff --git a/modules/mogo-module-tanlu/src/main/res/layout/tanlu_item_main_media_recycler.xml b/modules/mogo-module-tanlu/src/main/res/layout/tanlu_item_main_media_recycler.xml index 40a085df42..fcb133f346 100644 --- a/modules/mogo-module-tanlu/src/main/res/layout/tanlu_item_main_media_recycler.xml +++ b/modules/mogo-module-tanlu/src/main/res/layout/tanlu_item_main_media_recycler.xml @@ -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"> + > + 96px 90px 700px - 10px + 5px 72px 25px diff --git a/modules/mogo-module-tanlu/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-tanlu/src/main/res/values-xhdpi/dimens.xml index 08d5243a1f..57993dcf50 100644 --- a/modules/mogo-module-tanlu/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-tanlu/src/main/res/values-xhdpi/dimens.xml @@ -15,7 +15,7 @@ 96px 100px 700px - 10px + 5px 135px 50px diff --git a/modules/mogo-module-tanlu/src/main/res/values/dimens.xml b/modules/mogo-module-tanlu/src/main/res/values/dimens.xml index 131282c5a1..a2953cf57c 100644 --- a/modules/mogo-module-tanlu/src/main/res/values/dimens.xml +++ b/modules/mogo-module-tanlu/src/main/res/values/dimens.xml @@ -15,7 +15,7 @@ 96px 144px 760px - 10px + 5px 135px 50px