diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index f7ace7fcad..845b79a310 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -34,7 +34,7 @@ public class MogoApplication extends AbsMogoApplication { // 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(TanluConstants.TAG, TanluConstants.MODEL_NAME)); MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME)); diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java index 5af6826e99..52d98b5d51 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java @@ -201,6 +201,11 @@ public class NaviClient implements IMogoNavi { return mAMapNavi.setBroadcastMode( mode ); } + @Override + public List< MogoLatLng > getNaviPathCoordinates() { + return null; + } + // -- end private boolean checkAMapNavi() { diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java index 74f7579b07..ed0d6819fc 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java @@ -63,8 +63,7 @@ public interface IMogoNavi { * * @param isRealNavi true - 实时导航 false - 模拟导航 */ - void - startNavi( boolean isRealNavi ); + void startNavi( boolean isRealNavi ); /** * 是否正在导航 @@ -118,4 +117,9 @@ public interface IMogoNavi { */ boolean setBroadcastMode(int mode); + /** + * 获取导航沿途路线的点 + * @return + */ + List getNaviPathCoordinates(); } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java index d93bc08212..97664d9dcd 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java @@ -149,4 +149,12 @@ public class MogoNavi implements IMogoNavi { } return false; } + + @Override + public List< MogoLatLng > getNaviPathCoordinates() { + if ( mDelegate != null ) { + return mDelegate.getNaviPathCoordinates(); + } + return null; + } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java index 249509325e..b967c5cdcc 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java @@ -8,15 +8,15 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.alibaba.android.arouter.launcher.ARouter; -import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; -import com.mogo.commons.mvp.Presenter; +import com.mogo.module.apps.utils.LaunchUtils; import com.mogo.module.common.MogoModulePaths; import com.mogo.service.MogoServicePaths; import com.mogo.service.analytics.IMogoAnalytics; import com.mogo.service.fragmentmanager.FragmentDescriptor; import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.module.IMogoModuleProvider; +import com.mogo.utils.TipToast; import java.util.HashMap; import java.util.Map; @@ -63,10 +63,20 @@ public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavi trackNavigatorClickEvent( 1 ); } ); mMediaCenter.setOnClickListener( view -> { - trackNavigatorClickEvent( 2 ); + try { + LaunchUtils.launchByPkg( getContext(), AppsConst.APP_PKG_MUSIC ); + trackNavigatorClickEvent( 2 ); + } catch ( Exception e ) { + TipToast.shortTip( R.string.module_apps_str_no_app ); + } } ); mCarSettings.setOnClickListener( view -> { - trackNavigatorClickEvent( 3 ); + try { + LaunchUtils.launchByPkg( getContext(), AppsConst.APP_PKG_CAR_SETTINGS ); + trackNavigatorClickEvent( 3 ); + } catch ( Exception e ) { + TipToast.shortTip( R.string.module_apps_str_no_app ); + } } ); mApps.setOnClickListener( view -> { openAppsPanel(); diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsConst.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsConst.java index 48faee2f70..aea6b2cad4 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsConst.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsConst.java @@ -18,4 +18,13 @@ public class AppsConst { public static final String CMD_CLOSE_APPS_PANEL = "CMD_CLOSE_APPS_PANEL"; public static final String[] CMD_CLOSE_APPS_PANEL_UN_WAKEUP_WORDS = {"关闭全部应用"}; + + /** + * 媒体跳转 + */ + public static final String APP_PKG_MUSIC = "com.pvetec.musics"; + /** + * 车辆设置跳转 + */ + public static final String APP_PKG_CAR_SETTINGS = "com.zhidao.settings"; } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java index 088d3b7ac7..eada7ed782 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java @@ -9,6 +9,7 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.mvp.Presenter; import com.mogo.module.apps.model.AppInfo; import com.mogo.module.apps.model.AppsModel; +import com.mogo.module.apps.utils.LaunchUtils; import com.mogo.service.MogoServicePaths; import com.mogo.service.analytics.IMogoAnalytics; import com.mogo.utils.ThreadPoolService; @@ -66,11 +67,8 @@ public class AppsPresenter extends Presenter< AppsView > { } trackAppClicked( appInfo ); - try { - Intent intent = getContext().getPackageManager().getLaunchIntentForPackage( appInfo.getPackageName() ); - intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); - getContext().startActivity( intent ); + LaunchUtils.launchByPkg( getContext(), appInfo.getPackageName() ); } catch ( Exception e ) { TipToast.shortTip( R.string.module_apps_str_no_app ); } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/LaunchUtils.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/LaunchUtils.java new file mode 100644 index 0000000000..b328070501 --- /dev/null +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/LaunchUtils.java @@ -0,0 +1,28 @@ +package com.mogo.module.apps.utils; + +import android.content.Context; +import android.content.Intent; + +import com.mogo.module.apps.R; +import com.mogo.utils.TipToast; + +/** + * @author congtaowang + * @since 2020-02-03 + *

+ * 描述 + */ +public class LaunchUtils { + + /** + * 通过包名启动app + * + * @param context + * @param pkg 包名 + */ + public static void launchByPkg( Context context, String pkg ) throws Exception{ + Intent intent = context.getPackageManager().getLaunchIntentForPackage( pkg ); + intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); + context.startActivity( intent ); + } +} 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 dd519188e3..ec5b6fbb73 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 @@ -290,9 +290,11 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme @Override public void switch2( String cardType ) { if ( mCardModulesAdapter != null ) { + int position = mCardModulesAdapter.getProviderPosition( cardType ); if ( position != -1 ) { - mCardsContainer.setCurrentItem( position, Math.abs( mCurrentPosition - position ) == 1 ); + int lastFactPosition = mCardModulesAdapter.getFactPosition( mCurrentPosition ); + mCardsContainer.setCurrentItem( mCurrentPosition + position - lastFactPosition, Math.abs( lastFactPosition - position ) == 1 ); if ( !isClickMarker ) { mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() ); } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardModulesAdapter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardModulesAdapter.java index c86fb39297..a44c518871 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardModulesAdapter.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/CardModulesAdapter.java @@ -47,8 +47,8 @@ public class CardModulesAdapter extends FragmentStatePagerAdapter { @Override public int getCount() { - return mProviders.size(); -// return Integer.MAX_VALUE; +// return mProviders.size(); + return Integer.MAX_VALUE; } public IMogoModuleProvider getProvider( int position ) { 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 877b30b30b..f18ddc211b 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 @@ -514,7 +514,7 @@ public class MogoServiceProvider implements IMogoModuleProvider, @Override public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) { switch ( descriptor ) { - case USER_INTERACTED: + case USER_INTERACTED: if ( isTrue && !mRefreshRemainingTimeStatus ) { mRefreshRemainingTimeStatus = true; mRefreshRemainingTime += mAutoRefreshStrategy.getInterruptInterval();