diff --git a/.idea/misc.xml b/.idea/misc.xml index 21e99e2dc0..cd77a1f062 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 7d01b75284..bbbd6e08f5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -86,6 +86,9 @@ android { // 是否作为 launcher 运行 buildConfigField 'boolean', 'IS_LAUNCHER', 'false' buildConfigField 'String', 'SOCKET_APP_ID', '\"com.mogo.launcher\"' + // 是否支持目的地导航策略 + buildConfigField 'boolean', 'IS_SUPPORT_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH', 'true' + } // launcher app launcher { @@ -95,6 +98,8 @@ android { // 是否作为 launcher 运行 buildConfigField 'boolean', 'IS_LAUNCHER', 'true' buildConfigField 'String', 'SOCKET_APP_ID', '\"com.mogo.launcher\"' + // 是否支持目的地导航策略 + buildConfigField 'boolean', 'IS_SUPPORT_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH', 'false' } // f系列-分体机全系列,未细分 f8xx { @@ -113,6 +118,8 @@ android { buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' // 是否支持查询导航目的地车友 buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false' } // f系列-分体机 f80x { @@ -131,6 +138,8 @@ android { buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' // 是否支持查询导航目的地车友 buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false' } // e系列,采用Launcher方案 e8xx { @@ -149,6 +158,8 @@ android { buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' // 是否支持查询导航目的地车友 buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false' } // 同上 em4 { @@ -167,6 +178,8 @@ android { buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' // 是否支持查询导航目的地车友 buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false' } // e系列-2+32,对标D系列2+32,采用独立app的形式 em3 { @@ -185,6 +198,8 @@ android { buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false' // 是否支持查询导航目的地车友 buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'true' } // e系列-1+16,对标D系列1+16,采用独立app形式 em1 { @@ -203,6 +218,8 @@ android { buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false' // 是否支持查询导航目的地车友 buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'true' } // d系列 d8xx { @@ -239,6 +256,8 @@ android { buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' // 是否支持查询导航目的地车友 buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'true' } // d系列 1+16 版本 d82x { @@ -257,6 +276,8 @@ android { buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false' // 是否支持查询导航目的地车友 buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'true' } // 比亚迪 bydauto { @@ -275,6 +296,8 @@ android { buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'false' // 是否支持查询导航目的地车友 buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'false' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false' } qa { dimension "env" diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 2da43cbd35..23b3058a00 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -126,6 +126,8 @@ public class MogoApplication extends AbsMogoApplication { DebugConfig.setRoadEventAnimated( BuildConfig.ROAD_EVENT_ANIMATED ); DebugConfig.setSkinSupported( BuildConfig.IS_SKIN_SUPPORTED ); DebugConfig.setSupportedSearchDestinationOnlineCarList( BuildConfig.IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST ); + DebugConfig.setScheduleCalculateNotHomeCompanyDistanceForPush( BuildConfig.IS_SUPPORT_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH ); + DebugConfig.setSupportLauncherCardRefreshStrategy( BuildConfig.IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY ); } @Override diff --git a/config.gradle b/config.gradle index fd07584843..ce651c5fef 100644 --- a/config.gradle +++ b/config.gradle @@ -133,7 +133,7 @@ targetSdkVersion : 22, jetbrainsannotationsjava5 : "org.jetbrains:annotations-java5:15.0", // 统一登录 - accountsdk : "com.zhidao.accountservice:account-sdk:1.0.11", + accountsdk : "com.zhidao.accountservice:account-sdk:1.0.14", // crash crashSdk : "com.zhidaoauto.crash.log:library:1.0.5", kotlinstdlibjdk7 : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${kotlin_version}", diff --git a/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java b/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java index a1f374e4af..624c97c390 100644 --- a/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java +++ b/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java @@ -10,6 +10,7 @@ import com.mogo.service.passport.IMogoPassportManager; import com.mogo.service.passport.IMogoTicketCallback; import com.mogo.utils.logger.Logger; import com.zhidao.account.sdk.AccountClientManager; +import com.zhidao.account.sdk.BusinessType; import com.zhidao.account.sdk.Environment; import com.zhidao.account.sdk.callback.TicketInfoCallback; import com.zhidao.account.sdk.network.NetEnvironManager; @@ -70,16 +71,12 @@ class PassportManager implements IMogoPassportManager { } private static void getTicket( TicketInfoCallback callback ) { - if ( DebugConfig.isLauncher() ) { - AccountClientManager.getTicket( callback ); - } else { - AccountClientManager.getAppTicket( callback ); - } + AccountClientManager.getTicket( callback ); } @Override public void init( Context context ) { - AccountClientManager.init( context.getApplicationContext(), getNetEnvironment(), NetEnvironManager.OS_2C, "os2.0-launcher" ); + AccountClientManager.init( context.getApplicationContext(), getNetEnvironment(), BusinessType.toc_login, "os2.0-launcher" ); } private Environment getNetEnvironment() { diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java index 3e39b71ad7..0b86cc6de1 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java @@ -279,4 +279,30 @@ public class DebugConfig { public static boolean isSupportedSearchDestinationOnlineCarList() { return isSupportedSearchDestinationOnlineCarList; } + + /** + * 是否支持目的地导航推送策略 + */ + private static boolean isScheduleCalculateNotHomeCompanyDistanceForPush = false; + + public static void setScheduleCalculateNotHomeCompanyDistanceForPush( boolean isScheduleCalculateNotHomeCompanyDistanceForPush ) { + DebugConfig.isScheduleCalculateNotHomeCompanyDistanceForPush = isScheduleCalculateNotHomeCompanyDistanceForPush; + } + + public static boolean isIsScheduleCalculateNotHomeCompanyDistanceForPush() { + return isScheduleCalculateNotHomeCompanyDistanceForPush; + } + + /** + * 是否支持刷新桌面卡片 + */ + private static boolean isSupportLauncherCardRefreshStrategy = false; + + public static void setSupportLauncherCardRefreshStrategy( boolean isSupportLauncherCardRefreshStrategy ) { + DebugConfig.isSupportLauncherCardRefreshStrategy = isSupportLauncherCardRefreshStrategy; + } + + public static boolean isIsSupportLauncherCardRefreshStrategy() { + return isSupportLauncherCardRefreshStrategy; + } } diff --git a/modules/mogo-module-common/build.gradle b/modules/mogo-module-common/build.gradle index 3a8b6d5986..bf000cacf7 100644 --- a/modules/mogo-module-common/build.gradle +++ b/modules/mogo-module-common/build.gradle @@ -33,6 +33,7 @@ dependencies { implementation rootProject.ext.dependencies.androidxrecyclerview implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.arouter + implementation rootProject.ext.dependencies.carcallprovider if (Boolean.valueOf(RELEASE)) { api rootProject.ext.dependencies.mogomap api rootProject.ext.dependencies.mogomapapi diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/api/CallChatApi.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/api/CallChatApi.java new file mode 100644 index 0000000000..ffea53dfd0 --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/api/CallChatApi.java @@ -0,0 +1,78 @@ +package com.mogo.module.common.api; + +import android.content.Context; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.module.carchattingprovider.ICarsChattingProvider; +import com.mogo.module.common.entity.MarkerOnlineCar; +import com.mogo.utils.logger.Logger; +import com.zhidao.carchattingprovider.MogoDriverInfo; + +public +/** + * @author congtaowang + * @since 2020/9/24 + * + * 车聊聊接口 + */ +class CallChatApi { + + private static final String TAG = "CallChatApi"; + + private static volatile CallChatApi sInstance; + + private CallChatApi() { + mApiProvider = ARouter.getInstance().navigation( ICarsChattingProvider.class ); + } + + public static CallChatApi getInstance() { + if ( sInstance == null ) { + synchronized ( CallChatApi.class ) { + if ( sInstance == null ) { + sInstance = new CallChatApi(); + } + } + } + return sInstance; + } + + public synchronized void release() { + mApiProvider = null; + sInstance = null; + } + + private Object readResolve() { + // 阻止反序列化,必须实现 Serializable 接口 + return sInstance; + } + + private ICarsChattingProvider mApiProvider; + + public void showUserWindow( Context context, MarkerOnlineCar onlineCar ) throws Exception { + if ( mApiProvider == null ) { + Logger.e( TAG, "no call chat api instance." ); + return; + } + MogoDriverInfo driverInfo = new MogoDriverInfo(); + driverInfo.setAge( onlineCar.getUserInfo().getAgeNumber() ); + driverInfo.setCarTypeName( onlineCar.getCarInfo().getCarTypeName() ); + driverInfo.setGender( onlineCar.getUserInfo().getGender() ); + driverInfo.setLat( onlineCar.getLocation().getLat() ); + driverInfo.setLon( onlineCar.getLocation().getLon() ); + driverInfo.setLocationInfo( onlineCar.getLocation().getAddress() ); + driverInfo.setSn( onlineCar.getUserInfo().getSn() ); + driverInfo.setUserHead( onlineCar.getUserInfo().getUserHead() ); + driverInfo.setUserName( onlineCar.getUserInfo().getUserName() ); + mApiProvider.showUserWindow( TAG, driverInfo, context ); + } + + public void hideUserWindow( Context context ) { + if ( mApiProvider != null ) { + if ( mApiProvider == null ) { + Logger.e( TAG, "no call chat api instance." ); + return; + } + } + mApiProvider.hideUserWindow( TAG, context, null ); + } +} 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 e56e5f8bc6..83e4e1752c 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 @@ -7,6 +7,7 @@ import android.text.TextUtils; import android.util.Log; import android.util.TypedValue; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; @@ -426,17 +427,21 @@ public class EntranceFragment extends MvpFragment 200) { + showSlideMapVoiceGuide(); + } + break; + + case MotionEvent.ACTION_MOVE: + + break; + } + } /** * 由于Launcher和Independent对于天气的表现形式不太一样,所以通过此方法区分处理 diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml index b5da488ae6..77074d07cd 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml @@ -48,7 +48,6 @@ android:gravity="center_vertical" android:text="@string/module_ext_destination_online_car_text" android:visibility="gone" - android:layout_marginLeft="@dimen/module_common_shadow_width_pos" android:textColor="@color/module_ext_color_voice_text" android:textSize="@dimen/module_ext_north_textSize" android:textStyle="bold" diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml index a30623fe52..75f2f2b1fa 100644 --- a/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi-1920x1000/dimens.xml @@ -131,7 +131,7 @@ 30px 120px 120px - 30px + 10px 22px 28px 28px diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml index 33ef63c151..125e839721 100644 --- a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml @@ -131,7 +131,7 @@ 30px 120px 120px - 30px + 10px 22px 28px 28px diff --git a/modules/mogo-module-extensions/src/main/res/values/dimens.xml b/modules/mogo-module-extensions/src/main/res/values/dimens.xml index f92b46b195..e0ccc1e24d 100644 --- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml @@ -137,7 +137,7 @@ 142px 66px 66px - 16px + 10px 12px 14px 14px 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 0c5aefac99..b8fdb2a2e0 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 @@ -357,5 +357,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme AIAssist.getInstance( this ).release(); mServiceApis.getOnlineCarPanelApi().clear(); ContextHolderUtil.releaseContext(); + MogoModulesManager.getInstance().onDestroy(); } } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java index c07373d5d7..9d4c69e627 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java @@ -77,4 +77,9 @@ public interface MogoModulesHandler { * @param containerId */ void loadSplashModule(int containerId); + + /** + * 释放各个模块资源 + */ + void onDestroy(); } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java index 355c6324b5..ae3c36287e 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java @@ -5,6 +5,7 @@ import android.content.Context; import androidx.fragment.app.Fragment; import com.alibaba.android.arouter.launcher.ARouter; +import com.alibaba.idst.nls.internal.utils.L; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.extensions.ExtensionsModuleConst; @@ -16,6 +17,7 @@ import com.mogo.utils.ResourcesHelper; import com.mogo.utils.logger.Logger; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -131,25 +133,25 @@ public class MogoModulesManager implements MogoModulesHandler { } @Override - public void loadEventPanelModule(int containerId) { + public void loadEventPanelModule( int containerId ) { IMogoModuleProvider provider = ( IMogoModuleProvider ) ARouter.getInstance() - .build(MogoServicePaths.PATH_EVENT_PANEL) + .build( MogoServicePaths.PATH_EVENT_PANEL ) .navigation( getContext() ); addFragment( provider, containerId ); } @Override - public void loadLeftPanelModule(int containerId) { + public void loadLeftPanelModule( int containerId ) { IMogoModuleProvider provider = ( IMogoModuleProvider ) ARouter.getInstance() - .build(MogoServicePaths.PATH_LEFT_PANEL) + .build( MogoServicePaths.PATH_LEFT_PANEL ) .navigation( getContext() ); addFragment( provider, containerId ); } @Override - public void loadSplashModule(int containerId) { + public void loadSplashModule( int containerId ) { IMogoModuleProvider provider = ( IMogoModuleProvider ) ARouter.getInstance() - .build(MogoServicePaths.PATH_SPLASH) + .build( MogoServicePaths.PATH_SPLASH ) .navigation( getContext() ); addFragment( provider, containerId ); } @@ -188,4 +190,25 @@ public class MogoModulesManager implements MogoModulesHandler { .replace( containerId, fragment, provider.getModuleName() ) .commitAllowingStateLoss(); } + + @Override + public void onDestroy() { + if ( mModuleNameProviders != null ) { + Collection< IMogoModuleProvider > modules = mModuleNameProviders.values(); + if ( modules != null ) { + for ( IMogoModuleProvider module : modules ) { + try { + Logger.d( TAG, "destroy module: " + module.getModuleName() ); + module.onDestroy(); + } catch ( Exception e ) { + Logger.e( TAG, e, "onDestroy" ); + } + } + } + mModuleNameProviders.clear(); + } + if ( mModuleProviders != null ) { + mModuleProviders.clear(); + } + } } diff --git a/modules/mogo-module-media/build.gradle b/modules/mogo-module-media/build.gradle index 0ddfae0634..dff1c08f76 100644 --- a/modules/mogo-module-media/build.gradle +++ b/modules/mogo-module-media/build.gradle @@ -47,6 +47,8 @@ dependencies { implementation "com.mogo.tencent.wecarflow:mogo-wecarflow:+@aar" implementation "com.mogo.kwmusic:mogo-kwmusic:+" + implementation rootProject.ext.dependencies.carcallprovider + if (Boolean.valueOf(RELEASE)) { implementation rootProject.ext.dependencies.mogomap implementation rootProject.ext.dependencies.mogoutils diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaCardViewProvider.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaCardViewProvider.java index 059a886869..c4fdd84162 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaCardViewProvider.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaCardViewProvider.java @@ -20,7 +20,7 @@ import com.mogo.service.module.ModuleType; public class MediaCardViewProvider implements IMogoModuleProvider { private static final String TAG = "MediaCardViewProvider"; - + private MediaWindow2 mediaWindow2; @Override public Fragment createFragment( Context context, Bundle data ) { @@ -33,7 +33,7 @@ public class MediaCardViewProvider implements IMogoModuleProvider { @Override public void init( Context context ) { ServiceMediaHandler.init( context ); - MediaWindow2 mediaWindow2 = new MediaWindow2(); + mediaWindow2 = new MediaWindow2(); mediaWindow2.initMedia(context); } @@ -88,4 +88,12 @@ public class MediaCardViewProvider implements IMogoModuleProvider { public String getAppName() { return ""; } + + @Override + public void onDestroy() { + if ( mediaWindow2 != null ) { + mediaWindow2.onDestroy(); + } + mediaWindow2 = null; + } } diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/ServiceMediaHandler.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/ServiceMediaHandler.java index 17a0a08c47..db9b78b43d 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/ServiceMediaHandler.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/ServiceMediaHandler.java @@ -11,6 +11,7 @@ import com.mogo.map.navi.IMogoNavi; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant; import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager; +import com.mogo.module.carchattingprovider.ICarsChattingProvider; import com.mogo.service.MogoServicePaths; import com.mogo.service.adas.IMogoADASController; import com.mogo.service.analytics.IMogoAnalytics; @@ -53,6 +54,8 @@ public class ServiceMediaHandler { private static IMogoAuthorizeModuleManager mMogoAuthorizeModuleManager; private static IMogoMarkerService sMarkerService; + private static ICarsChattingProvider sCarsChattingProvider; + public static void init(Context context) { mApis = (MogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context); mMapService = mApis.getMapServiceApi(); @@ -73,6 +76,8 @@ public class ServiceMediaHandler { mMogoADASController = mApis.getAdasControllerApi(); mMogoAuthorizeModuleManager = (IMogoAuthorizeModuleManager) ARouter.getInstance().build(AuthorizeConstant.PROVIDER_MODULE).navigation(context); sMarkerService = mApis.getMarkerService(); + + sCarsChattingProvider = ARouter.getInstance().navigation( ICarsChattingProvider.class ); } public static IMogoADASController getMogoADASController(){ @@ -157,6 +162,10 @@ public class ServiceMediaHandler { return mMogoDataManager; } + public static MogoServiceApis getApis() { + return mApis; + } + /** * 这个注册的第一个参数是模块名称,目的是只给当前显示的卡片分发事件 * @return @@ -183,6 +192,11 @@ public class ServiceMediaHandler { return sMarkerService; } + public static ICarsChattingProvider getCarsChattingApis() { + isApisNull( sCarsChattingProvider ); + return sCarsChattingProvider; + } + public static void isApisNull( Object object){ if (isObjStaticNull(object)){ init(AbsMogoApplication.getApp()); diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/listener/CallProviderResponseAdapter.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/listener/CallProviderResponseAdapter.java new file mode 100644 index 0000000000..6fa008de0e --- /dev/null +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/listener/CallProviderResponseAdapter.java @@ -0,0 +1,106 @@ +package com.mogo.module.media.listener; + +import com.mogo.module.carchattingprovider.ICallProviderResponse; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public +/** + * @author congtaowang + * @since 2020/9/24 + *

+ * 描述 + */ +abstract class CallProviderResponseAdapter implements ICallProviderResponse { + + @Override + public void addFriend( boolean b ) { + + } + + @Override + public void callInvokeError( @NotNull String s ) { + + } + + @Override + public void callStatus( int i ) { + + } + + @Override + public void canCall( boolean b ) { + + } + + @Override + public void hideUserWindowError( @NotNull String s ) { + + } + + @Override + public void invisibleUser( boolean b ) { + + } + + @Override + public void isFriend( boolean b ) { + + } + + @Override + public void isOnLine( boolean b, @Nullable String s ) { + + } + + @Override + public void userInfoCallBack( @Nullable String s, @Nullable String s1 ) { + + } + + @Override + public void userWindowStatus( boolean b ) { + + } + + @Override + public void call( @NotNull String s ) { + + } + + @Override + public void cancelMatch( boolean b ) { + + } + + @Override + public void error( @NotNull String s ) { + + } + + @Override + public void hangUp( boolean b ) { + + } + + @Override + public void invokeCallData( @NotNull String s ) { + + } + + @Override + public void match( @NotNull String s ) { + + } + + @Override + public void matchInvokeResult( boolean b, @NotNull String s ) { + + } + + @Override + public void mute( boolean b ) { + + } +} diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java index ccb2cb0cc8..3abb6ff255 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java @@ -12,11 +12,13 @@ import android.widget.TextView; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; +import com.mogo.module.carchattingprovider.ICallProviderResponse; import com.mogo.module.common.glide.SkinAbleBitmapTarget; import com.mogo.module.media.MediaConstants; import com.mogo.module.media.R; import com.mogo.module.media.ServiceMediaHandler; import com.mogo.module.media.constants.MusicConstant; +import com.mogo.module.media.listener.CallProviderResponseAdapter; import com.mogo.module.media.listener.NoDoubleClickListener; import com.mogo.module.media.model.MediaInfoData; import com.mogo.module.media.presenter.BaseMediaPresenter; @@ -25,6 +27,7 @@ import com.mogo.module.media.presenter.PresenterFactory; import com.mogo.module.media.utils.Utils; import com.mogo.module.media.view.IMusicView; import com.mogo.module.media.widget.AnimCircleImageView; +import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.WindowUtils; import com.mogo.utils.glide.GlideApp; @@ -38,7 +41,7 @@ import com.tencent.wecarflow.flowoutside.sdk.FlowPlayControl; * * @author tongchenfei */ -public class MediaWindow2 implements IMusicView { +public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener { public static final String TAG = MediaWindow2.class.getName(); private Context mContext; @@ -58,6 +61,9 @@ public class MediaWindow2 implements IMusicView { private boolean mHasAddWindow = false; private boolean mTwoChange = false; private boolean isFirstPlay = false; + private boolean mIsCallChatWindowVisible; + + private ICallProviderResponse mCallProviderResponse; public void initMedia(Context context) { mContext = context; @@ -76,14 +82,34 @@ public class MediaWindow2 implements IMusicView { }); } - ServiceMediaHandler.getIMogoStatusManager().registerStatusChangedListener(MediaConstants.MODULE_TYPE, StatusDescriptor.ACC_STATUS, (descriptor, isTrue) -> { - if (descriptor == StatusDescriptor.ACC_STATUS&&!isTrue) { - ServiceMediaHandler.getMogoWindowManager().removeView(mWindowView); - mHasAddWindow = false; - } - }); + ServiceMediaHandler.getIMogoStatusManager().registerStatusChangedListener(MediaConstants.MODULE_TYPE, StatusDescriptor.ACC_STATUS, this); - isFirstPlay = true; + // 车聊聊才是王 + mCallProviderResponse = new CallProviderResponseAdapter(){ + @Override + public void callWindowStatus( boolean b ) { + Logger.d( TAG, "callWindowStatus: "+ b); + mIsCallChatWindowVisible = b; + if ( !mHasAddWindow || mWindowView == null ) { + return; + } + if ( mIsCallChatWindowVisible ) { + mWindowView.setVisibility(View.GONE ); + } else { + mWindowView.setVisibility(View.VISIBLE); + } + } + }; + ServiceMediaHandler.getCarsChattingApis().registerCallWindowStatusListener( MediaConstants.MODULE_TYPE, mContext, mCallProviderResponse); + isFirstPlay = true; + } + + @Override + public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) { + if (descriptor == StatusDescriptor.ACC_STATUS&&!isTrue) { + ServiceMediaHandler.getMogoWindowManager().removeView(mWindowView); + mHasAddWindow = false; + } } private void addWindowView() { @@ -93,16 +119,10 @@ public class MediaWindow2 implements IMusicView { return; } - if(!ServiceMediaHandler.getIMogoStatusManager().isMainPageOnResume()){ - Log.d(TAG, "not in front"); - return; - } - if (!mHasAddWindow) { mHasAddWindow = true; mWindowView = LayoutInflater.from(mContext).inflate(R.layout.module_media_music_window_alert_layout, null); - mWindowView.setVisibility(View.VISIBLE); mCircleImg = mWindowView.findViewById(R.id.window_circle_img); mScrollText = mWindowView.findViewById(R.id.window_scroll_txt); mWindowPlayPause = mWindowView.findViewById(R.id.window_play_pause); @@ -158,6 +178,12 @@ public class MediaWindow2 implements IMusicView { } } }); + + if ( mIsCallChatWindowVisible ) { + mWindowView.setVisibility(View.GONE); + } else { + mWindowView.setVisibility(View.VISIBLE); + } } } @@ -305,4 +331,10 @@ public class MediaWindow2 implements IMusicView { mWindowView.setVisibility(View.GONE); } } + + public void onDestroy(){ + Logger.d(TAG, "onDestroy"); + ServiceMediaHandler.getCarsChattingApis().unRegisterCallWindowStatusListener( MediaConstants.MODULE_TYPE, mContext); + ServiceMediaHandler.getIMogoStatusManager().unregisterStatusChangedListener(MediaConstants.MODULE_TYPE, StatusDescriptor.ACC_STATUS,this); + } } 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 3d9d2105b8..ca00298278 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 @@ -100,4 +100,9 @@ public class MogoServiceProvider implements IMogoModuleProvider { MogoServices.getInstance().init( AbsMogoApplication.getApp() ); }, 5_000L ); } + + @Override + public void onDestroy() { + MogoServices.getInstance().destroy(); + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index aacf70217f..7bad54b25c 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -20,6 +20,7 @@ import com.mogo.commons.network.SubscribeImpl; import com.mogo.commons.storage.SpStorage; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; +import com.mogo.map.IDestroyable; import com.mogo.map.MogoLatLng; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.location.IMogoLocationListener; @@ -95,7 +96,8 @@ public class MogoServices implements IMogoMapListener, IMogoAimlessModeListener, IMogoVoiceCmdCallBack, FragmentStackTransactionListener, - IMogoCarLocationChangedListener2 { + IMogoCarLocationChangedListener2, + IDestroyable { private boolean mInternalUnWakeupRegisterStatus = false; @@ -201,7 +203,7 @@ public class MogoServices implements IMogoMapListener, } break; case ServiceConst.MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH: - handleCalculationNotHomeCompanyDistanceForPush(); + handleCalculationNotHomeCompanyDistanceForPush( msg.arg1 ); break; } } @@ -944,8 +946,12 @@ public class MogoServices implements IMogoMapListener, @Override public void onStartNavi() { - Logger.d( TAG, "onStartNavi: scheduleCalculationNotHomeCompanyDistanceForPush" ); - scheduleCalculationNotHomeCompanyDistanceForPush(); + if ( DebugConfig.isIsScheduleCalculateNotHomeCompanyDistanceForPush() ) { + Logger.d( TAG, "onStartNavi: scheduleCalculationNotHomeCompanyDistanceForPush" ); + scheduleCalculationNotHomeCompanyDistanceForPush( 1, ServiceConst.INTERVAL_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH ); + } else { + Logger.d( TAG, "onStartNavi: scheduleCalculationNotHomeCompanyDistanceForPush un support" ); + } } @Override @@ -957,14 +963,22 @@ public class MogoServices implements IMogoMapListener, /** * 延时一分钟发起计算导航目的地推送策略 */ - private void scheduleCalculationNotHomeCompanyDistanceForPush() { - mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH, ServiceConst.INTERVAL_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH ); + private void scheduleCalculationNotHomeCompanyDistanceForPush( int time, long delay ) { + Message msg = Message.obtain(); + msg.what = ServiceConst.MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH; + msg.arg1 = time; + mHandler.sendMessageDelayed( msg, delay ); } /** * 发起计算导航目的地推送策略 + * + * @param time 第x次重试 */ - private void handleCalculationNotHomeCompanyDistanceForPush() { + private void handleCalculationNotHomeCompanyDistanceForPush( final int time ) { + if ( time > 3 ) { + return; + } String json = SpStorage.getNavigationTarget(); if ( !TextUtils.isEmpty( json ) ) { try { @@ -993,6 +1007,9 @@ public class MogoServices implements IMogoMapListener, @Override public void onError( Throwable e ) { super.onError( e ); + Logger.d( TAG, "re scheduleCalculationNotHomeCompanyDistanceForPush after 30s" ); + // 延时30s重试 + scheduleCalculationNotHomeCompanyDistanceForPush( time + 1, 30_000L ); } @Override @@ -1006,4 +1023,9 @@ public class MogoServices implements IMogoMapListener, } } + + @Override + public void destroy() { + Logger.d( TAG, "MogoServices do nothings." ); + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/OnlineCarPanelIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/OnlineCarPanelIntentHandler.java index e48297bf71..0fc9085e6d 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/OnlineCarPanelIntentHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/OnlineCarPanelIntentHandler.java @@ -3,7 +3,10 @@ package com.mogo.module.service.intent; import android.content.Context; import android.content.Intent; import android.net.Uri; +import android.text.TextUtils; +import com.mogo.commons.storage.SpStorage; +import com.mogo.commons.voice.AIAssist; import com.mogo.module.service.MarkerServiceHandler; public @@ -17,6 +20,12 @@ class OnlineCarPanelIntentHandler implements IntentHandler { @Override public void handle( Context context, Intent intent ) { + String json = SpStorage.getNavigationTarget(); + if ( TextUtils.isEmpty( json ) ) { + AIAssist.getInstance( context ).speakTTSVoice( "没有导航目的地" ); + return; + } + AIAssist.getInstance( context ).speakTTSVoice( "正在查询" ); if ( MarkerServiceHandler.getMogoStatusManager().isMainPageOnResume() ) { MarkerServiceHandler.getApis().getOnlineCarPanelApi().showPanel(); } else { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java index ceee0204a2..42614860ee 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java @@ -76,6 +76,11 @@ class LauncherCardRefresher { */ private int mDefaultConfigCounter = 0; + /** + * 事件/车友播报次数 + */ + private int mMsgExplorerWayOrOnlineCarDataCounter = 0; + /** * 因为缓存ticket失效导致失败的情况,需要重新请求ticket然后再次获取数据,这里重试3次 */ @@ -151,18 +156,18 @@ class LauncherCardRefresher { private ZhidaoRefreshModel mZhidaoRefreshModel; private LauncherCardRefreshStrategy mExplorerWayOrOnlineCarDataStrategy = new LauncherCardRefreshStrategy( - 40 * ONE_MINUTE,null, MSG_EXPLORER_WAY_OR_ONLINE_CAR_DATA + 40 * ONE_MINUTE, null, MSG_EXPLORER_WAY_OR_ONLINE_CAR_DATA ); private LauncherCardRefreshStrategy mInduceStrategy = new LauncherCardRefreshStrategy( - 3 * ONE_MINUTE,mExplorerWayOrOnlineCarDataStrategy, MSG_INDUCE + 3 * ONE_MINUTE, mExplorerWayOrOnlineCarDataStrategy, MSG_INDUCE ); private LauncherCardRefreshStrategy mLauncherCardConfigStrategy = new LauncherCardRefreshStrategy( - 2 * ONE_MINUTE,mInduceStrategy, MSG_REFRESH_DEFAULT_CARD + 2 * ONE_MINUTE, mInduceStrategy, MSG_REFRESH_DEFAULT_CARD ); private LauncherCardRefreshStrategy mRefreshStrategy = mLauncherCardConfigStrategy; public void start() { - if ( DebugConfig.isLauncher() || DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_BYD ) { + if ( !DebugConfig.isIsSupportLauncherCardRefreshStrategy() ) { return; } if ( mStart ) { @@ -172,6 +177,7 @@ class LauncherCardRefresher { mLaunchTTSText = mContext.getString( R.string.module_service_open_app_tip ); mDefaultConfigCounter = 0; mRefreshTicketCounter = 0; + mMsgExplorerWayOrOnlineCarDataCounter = 0; mRefreshStrategy = mLauncherCardConfigStrategy; // 延时加载数据,已保证accOn之后网络恢复正常 long delay = ONE_MINUTE; @@ -238,6 +244,10 @@ class LauncherCardRefresher { restart(); return; } + mMsgExplorerWayOrOnlineCarDataCounter++; + if ( mMsgExplorerWayOrOnlineCarDataCounter > 2 ) { + return; + } MogoLatLng latLng = new MogoLatLng( location.getLatitude(), location.getLongitude() ); handleRefreshExplorerWayOrOnlineCarData( latLng, mRefreshStrategy.getType() ); } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index eccbd1b862..b939bf045c 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -3,6 +3,7 @@ package com.mogo.module.service.marker; import android.content.Context; import android.graphics.Rect; import android.text.TextUtils; +import android.util.Log; import android.view.animation.AccelerateInterpolator; import android.view.animation.LinearInterpolator; @@ -16,6 +17,7 @@ import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.map.marker.anim.OnMarkerAnimationListener; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.module.common.ModuleNames; +import com.mogo.module.common.api.CallChatApi; import com.mogo.module.common.entity.MarkerCarPois; import com.mogo.module.common.entity.MarkerCardResult; import com.mogo.module.common.entity.MarkerExploreWay; @@ -190,6 +192,12 @@ public class MapMarkerManager implements IMogoMarkerClickListener, mogoMarker.setInfoWindowAdapter( UserDataMarkerInfoWindowAdapter.getInstance( mContext ) ); mogoMarker.showInfoWindow(); Logger.d( TAG, "打开info window" ); +// try { +// MarkerOnlineCar onlineCar = ( MarkerOnlineCar ) ( ( MarkerShowEntity ) mogoMarker.getObject() ).getBindObj(); +// CallChatApi.getInstance().showUserWindow( mContext, onlineCar ); +// } catch ( Exception e ) { +// Logger.e( TAG, e, "openMarker" ); +// } } } else { Object object = mogoMarker.getObject(); @@ -792,7 +800,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } Logger.d( TAG, "内部 - 请求开始" ); - mRefreshModel.queryOnLineCarWithRoute( latLng, onlyFocus, onlySameCity, radius, limit,false, new RefreshCallback() { + mRefreshModel.queryOnLineCarWithRoute( latLng, onlyFocus, onlySameCity, radius, limit, false, new RefreshCallback() { @Override public void onSuccess( Object o ) { MarkerResponse data = ( MarkerResponse ) o; @@ -977,7 +985,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, return; } if ( mLastDataResult != null ) { - runOnTargetThread( ()->{ + runOnTargetThread( () -> { MarkerServiceHandler.getMarkerManager().removeMarkers( ModuleNames.CARD_TYPE_ROAD_CONDITION ); drawMarkerByCurrentType( mLastDataResult ); mLastCheckMarker = null; diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java index 356ec9bfac..fa93ca300a 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java @@ -198,6 +198,14 @@ public class RefreshModel { } } + @Override + public void onError( Throwable e ) { + super.onError( e ); + if ( callback != null ) { + callback.onFail(); + } + } + @Override public void onError( String message, int code ) { super.onError( message, code ); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java index 9a6c35a81f..55da33b57a 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java @@ -12,6 +12,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.request.RequestOptions; import com.mogo.map.location.MogoLocation; import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.api.CallChatApi; import com.mogo.module.common.entity.MarkerLocation; import com.mogo.module.common.entity.MarkerOnlineCar; import com.mogo.module.common.glide.SkinAbleBitmapTarget; @@ -21,6 +22,7 @@ import com.mogo.module.service.Utils; import com.mogo.utils.ResourcesHelper; import com.mogo.utils.WindowUtils; import com.mogo.utils.glide.GlideApp; +import com.mogo.utils.logger.Logger; import java.util.List; @@ -32,6 +34,8 @@ import java.util.List; */ class OnlineCarPanelAdapter extends RecyclerView.Adapter< OnlineCarPanelAdapter.VH > { + private static final String TAG = "OnlineCarPanelAdapter"; + private List< MarkerOnlineCar > mDatums; private double mToLon; private double mToLat; @@ -89,6 +93,11 @@ class OnlineCarPanelAdapter extends RecyclerView.Adapter< OnlineCarPanelAdapter. distance.setText( content ); detail.setOnClickListener( view -> { MogoApisHandler.getInstance().getApis().getAnalyticsApi().track( "Mogoer_List_click", null ); + try { + CallChatApi.getInstance().showUserWindow( itemView.getContext(), car ); + } catch ( Exception e ) { + Logger.e( TAG, e, "detail.OnClick" ); + } } ); } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java index 9a35ffedcd..0975324f90 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java @@ -113,6 +113,7 @@ public class OnlineCarPanelFragment extends MvpFragment< IOnlineCarPanelView, On mRefreshPanel.setVisibility( View.VISIBLE ); mLoading.setVisibility( View.GONE ); + AIAssist.getInstance( getContext() ).speakTTSVoice( "未找到车友" ); if ( strategy == null ) { m20KMStrategy.setVisibility( View.GONE ); m40KMStrategy.setVisibility( View.GONE ); diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_services_online_car_panel_background.9.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_services_online_car_panel_background.9.png index d4a8803684..b3149721b1 100644 Binary files a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_services_online_car_panel_background.9.png and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_services_online_car_panel_background.9.png differ diff --git a/modules/mogo-module-service/src/main/res/drawable/module_services_online_car_panel_background.9.png b/modules/mogo-module-service/src/main/res/drawable/module_services_online_car_panel_background.9.png index 80ab4b841f..f19ee05db1 100644 Binary files a/modules/mogo-module-service/src/main/res/drawable/module_services_online_car_panel_background.9.png and b/modules/mogo-module-service/src/main/res/drawable/module_services_online_car_panel_background.9.png differ diff --git a/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_detail_bkg.xml b/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_detail_bkg.xml index 536a7a8e09..9a503568e3 100644 --- a/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_detail_bkg.xml +++ b/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_detail_bkg.xml @@ -2,7 +2,7 @@ - + diff --git a/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml b/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml index 9fa4b9aafb..04abbaae72 100644 --- a/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml +++ b/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml @@ -17,7 +17,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/module_services_online_car_panel_close_margin_top" - android:text="目的地车友" + android:textStyle="bold" + android:text="@string/module_services_online_car_panel_title" android:textColor="@color/module_services_online_car_panel_title_textColor" android:textSize="@dimen/module_services_online_car_panel_title_text_size" /> @@ -35,10 +36,10 @@ android:layout_height="43dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" - android:indeterminateTint="#256BFF" - app:layout_constraintEnd_toEndOf="parent" android:layout_gravity="center" + android:indeterminateTint="#256BFF" android:visibility="gone" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent" @@ -57,6 +58,7 @@ android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" + tools:visibility="visible" android:visibility="gone"> + android:text="@string/module_services_error_text" + android:textColor="@color/module_services_error_textColor" + android:textSize="@dimen/module_services_empty_tip_textSize" /> \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values/colors.xml b/modules/mogo-module-service/src/main/res/values/colors.xml index f770bfe69f..aa88d40e7f 100644 --- a/modules/mogo-module-service/src/main/res/values/colors.xml +++ b/modules/mogo-module-service/src/main/res/values/colors.xml @@ -8,4 +8,5 @@ #FFFFFF #3081A4DC #B2FFFFFF + #FFFFFF \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values/strings.xml b/modules/mogo-module-service/src/main/res/values/strings.xml index 020e4b9121..13b65ec18f 100644 --- a/modules/mogo-module-service/src/main/res/values/strings.xml +++ b/modules/mogo-module-service/src/main/res/values/strings.xml @@ -9,4 +9,6 @@ 距离导航目的地 查看车友信息 很抱歉,目的地%dKM内未找到车友 + 目的地车友 + 加载失败,请点击重试 diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XBaseViewHolder.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XBaseViewHolder.java index aca82b125c..daf41e1b83 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XBaseViewHolder.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XBaseViewHolder.java @@ -1,15 +1,19 @@ package com.mogo.module.v2x.adapter.holder; +import android.content.Intent; +import android.util.Log; import android.view.View; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.voice.AIAssist; import com.mogo.map.MogoLatLng; import com.mogo.map.navi.IMogoNaviListener; import com.mogo.map.navi.MogoNaviInfo; import com.mogo.map.navi.MogoTraffic; +import com.mogo.module.carchattingprovider.ICarsChattingProvider; import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerLocation; import com.mogo.module.v2x.V2XConst; @@ -20,6 +24,10 @@ import com.mogo.module.v2x.utils.TrackUtils; import com.mogo.module.v2x.utils.V2XUtils; import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; +import com.zhidao.carchattingprovider.CallChattingProviderConstant; +import com.zhidao.carchattingprovider.MogoDriverInfo; + +import java.util.HashMap; import static com.mogo.module.v2x.V2XConst.MODULE_NAME; @@ -32,6 +40,9 @@ public abstract class V2XBaseViewHolder extends RecyclerView.ViewHolder implements IMogoNaviListener { + private static final String TAG = "V2XBaseViewHolder"; + private ICarsChattingProvider mCarsChattingProvider; + public V2XBaseViewHolder(@NonNull View itemView) { super(itemView); } @@ -72,6 +83,28 @@ public abstract class V2XBaseViewHolder delayedCloseWindow(); } + public void triggerIVReportHead(MarkerExploreWay noveltyInfo) { + Log.d(TAG,"点击头像"+mCarsChattingProvider); + try { + mCarsChattingProvider = (ICarsChattingProvider) ARouter.getInstance().build(CallChattingProviderConstant.CAR_CALL_PROVIDER).navigation(); + MogoDriverInfo mogoDriverInfo = new MogoDriverInfo(); + int ageNumber = noveltyInfo.getUserInfo().getAgeNumber(); + mogoDriverInfo.setAge(ageNumber); + String gender = noveltyInfo.getUserInfo().getGender(); + mogoDriverInfo.setGender(gender != null ? gender:null); + String sn = noveltyInfo.getUserInfo().getSn(); + mogoDriverInfo.setSn(sn != null ? sn:""); + String name = noveltyInfo.getUserInfo().getUserName(); + mogoDriverInfo.setUserName(name != null ? name:""); + mogoDriverInfo.setUserHead(noveltyInfo.getUserInfo().getUserHead()); + mCarsChattingProvider.showUserWindow(MODULE_NAME, mogoDriverInfo, this.itemView.getContext()); + + } catch (Exception e) { + Log.d(TAG,"点击头像发生错误--triggerIVReportHead"+e); + e.printStackTrace(); + } + } + /** * 打电话 */ @@ -160,6 +193,7 @@ public abstract class V2XBaseViewHolder delayedCloseWindow(); } + /** * 显示自定义 Toast * diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XOtherSeekHelpVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XOtherSeekHelpVH.java index ff0feaf3de..97910f7114 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XOtherSeekHelpVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XOtherSeekHelpVH.java @@ -54,7 +54,6 @@ public class V2XOtherSeekHelpVH extends V2XBaseViewHolder { // 上传事件的用户信息 private MarkerUserInfo mUserInfo = new MarkerUserInfo(); - // 语音控制导航 private V2XVoiceCallbackListener mNaviCb = (command, intent) -> triggerStartNavi(mNoveltyInfo); // 语音控制拨打电话 @@ -66,6 +65,8 @@ public class V2XOtherSeekHelpVH extends V2XBaseViewHolder { e.printStackTrace(); } }; + // 查看车辆信息 + private V2XVoiceCallbackListener mVoiceOpenCarInfoLis = ((command, intent) -> triggerIVReportHead(mNoveltyInfo)); public V2XOtherSeekHelpVH(ViewGroup viewGroup) { super(LayoutInflater.from(viewGroup.getContext()) @@ -95,7 +96,9 @@ public class V2XOtherSeekHelpVH extends V2XBaseViewHolder { .registerWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_CALL_CHATTING, mCallChartingCb) .registerUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP, - mCallChartingCb); + mCallChartingCb) + .registerUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_CAR_INFO_UN_WAKEUP, + mVoiceOpenCarInfoLis); } @Override @@ -106,7 +109,8 @@ public class V2XOtherSeekHelpVH extends V2XBaseViewHolder { .unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_NAVI) .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_NAVI_UN_WAKEUP) .unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_CALL_CHATTING) - .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP); + .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP) + .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_CAR_INFO_UN_WAKEUP); } }); } @@ -130,6 +134,12 @@ public class V2XOtherSeekHelpVH extends V2XBaseViewHolder { } catch (Exception e) { e.printStackTrace(); } + ivHead.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + triggerIVReportHead(mNoveltyInfo); + } + }); // 只有自研车机才会 有车聊聊通话 if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE) { diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java index aa46a1c0ef..5f24ee6022 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java @@ -48,6 +48,7 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME; * date : 2020/3/11 4:35 PM * desc : 道路事件详情 * version: 1.0 + * * @author donghongyu */ public class V2XRoadEventVH extends V2XBaseViewHolder { @@ -109,6 +110,13 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { showLiveCar(mV2XEventShowEntity); } }; + // 查看车辆信息 + private V2XVoiceCallbackListener v2xVoiceOpenCarInfoListener = new V2XVoiceCallbackListener() { + @Override + public void onCallback(String command, Intent intent) { + triggerIVReportHead(mNoveltyInfo); + } + }; private void init(View itemView) { ivEventImg = itemView.findViewById(R.id.ivEventImg); @@ -146,7 +154,9 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { .registerUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_FEEDBACK_TRUE, v2XVoiceCallbackReportTrueListener) .registerUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_FEEDBACK_ERROR, - v2XVoiceCallbackReportErrorListener); + v2XVoiceCallbackReportErrorListener) + .registerUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_CAR_INFO_UN_WAKEUP, + v2xVoiceOpenCarInfoListener); } @Override @@ -239,6 +249,10 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { ivEventZan.setOnClickListener(v -> { triggerZan(mNoveltyInfo); }); + + ivReportHead.setOnClickListener(v -> { + triggerIVReportHead(mNoveltyInfo); + }); } } catch (Exception e) { e.printStackTrace(); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/voice/V2XVoiceConstants.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/voice/V2XVoiceConstants.java index 78aefa1956..74b5b13881 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/voice/V2XVoiceConstants.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/voice/V2XVoiceConstants.java @@ -225,6 +225,12 @@ public class V2XVoiceConstants { public static final String COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP"; public static final String[] COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP_WORDS = {"我的分享"}; + /* + * 查看车辆信息 + * */ + public static final String COMMAND_ZHIDAO_V2X_OPEN_CAR_INFO_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_OPEN_CAR_INFO_UN_WAKEUP"; + public static final String[] COMMAND_ZHIDAO_V2X_OPEN_CAR_INFO_UN_WAKEUP_UN_WAKEUP_WORDS = {"查看车辆信息"}; + static { // 免唤醒 默认 sVoiceCmds.put(COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP, COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP_WORDS); @@ -251,6 +257,7 @@ public class V2XVoiceConstants { sVoiceCmds.put(COMMAND_ZHIDAO_V2X_OPEN_HISTORY_EVENT_UN_WAKEUP, COMMAND_ZHIDAO_V2X_OPEN_HISTORY_EVENT_UN_WAKEUP_WORDS); sVoiceCmds.put(COMMAND_ZHIDAO_V2X_OPEN_SURROUNDING_EVENT_UN_WAKEUP, COMMAND_ZHIDAO_V2X_OPEN_SURROUNDING_EVENT_UN_WAKEUP_WORDS); sVoiceCmds.put(COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP, COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP_WORDS); + sVoiceCmds.put(COMMAND_ZHIDAO_V2X_OPEN_CAR_INFO_UN_WAKEUP, COMMAND_ZHIDAO_V2X_OPEN_CAR_INFO_UN_WAKEUP_UN_WAKEUP_WORDS); //默认 diff --git a/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/MogoWidgetManger.java b/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/MogoWidgetManger.java index ab99a79fd5..0032be1ef0 100644 --- a/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/MogoWidgetManger.java +++ b/modules/mogo-module-widgets/src/main/java/com/mogo/module/widgets/MogoWidgetManger.java @@ -83,7 +83,6 @@ class MogoWidgetManger implements IMogoNaviListener2, IMogoIntentListener, IMogo @Override public void onStopNavi() { - SpStorage.setNavigationTarget( "" ); AutoNaviIntentHandler.getInstance().closeEntrance(); } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java index 524010759b..fec00c557c 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java @@ -2,6 +2,7 @@ package com.mogo.service.module; import android.content.Context; import android.os.Bundle; +import android.util.Log; import android.view.View; import androidx.annotation.NonNull; @@ -13,6 +14,8 @@ import com.mogo.map.location.IMogoLocationListener; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.navi.IMogoNaviListener; +import java.util.logging.Logger; + /** * @author congtaowang * @since 2019-12-24 @@ -128,4 +131,8 @@ public interface IMogoModuleProvider extends IProvider { default String getAppName() { return ""; } + + default void onDestroy(){ + Log.d( "IMogoModuleProvider", "onDestroy" ); + } } diff --git a/skin/mogo-skin-light/src/main/module-commons-res/drawable-xhdpi/module_common_default_user_head_light.png b/skin/mogo-skin-light/src/main/module-commons-res/drawable-xhdpi/module_common_default_user_head_light.png new file mode 100644 index 0000000000..eb26174ed6 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-commons-res/drawable-xhdpi/module_common_default_user_head_light.png differ diff --git a/skin/mogo-skin-light/src/main/module-commons-res/drawable/module_common_default_user_head_light.png b/skin/mogo-skin-light/src/main/module-commons-res/drawable/module_common_default_user_head_light.png new file mode 100644 index 0000000000..21805b2ff7 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-commons-res/drawable/module_common_default_user_head_light.png differ diff --git a/skin/mogo-skin-light/src/main/module-main-res/drawable/module_main_dw_left_frame_bkg_light.xml b/skin/mogo-skin-light/src/main/module-main-res/drawable/module_main_dw_left_frame_bkg_light.xml index f3c8c592ef..8127025226 100644 --- a/skin/mogo-skin-light/src/main/module-main-res/drawable/module_main_dw_left_frame_bkg_light.xml +++ b/skin/mogo-skin-light/src/main/module-main-res/drawable/module_main_dw_left_frame_bkg_light.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_close_light.png b/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_close_light.png new file mode 100755 index 0000000000..d25aa13032 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_close_light.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_online_car_panel_background_light.9.png b/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_online_car_panel_background_light.9.png new file mode 100644 index 0000000000..36ea7d6655 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_online_car_panel_background_light.9.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_online_car_panel_empty_icon_light.png b/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_online_car_panel_empty_icon_light.png new file mode 100644 index 0000000000..8fd26c2843 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_online_car_panel_empty_icon_light.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_close_light.png b/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_close_light.png new file mode 100755 index 0000000000..cbf14c5566 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_close_light.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_online_car_panel_background_light.9.png b/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_online_car_panel_background_light.9.png new file mode 100644 index 0000000000..51a1e27744 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_online_car_panel_background_light.9.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_online_car_panel_empty_icon_light.png b/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_online_car_panel_empty_icon_light.png new file mode 100644 index 0000000000..5307df4308 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_online_car_panel_empty_icon_light.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_close_light.png b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_close_light.png new file mode 100755 index 0000000000..d25aa13032 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_close_light.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_online_car_panel_background_light.9.png b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_online_car_panel_background_light.9.png new file mode 100644 index 0000000000..5ff5526ff8 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_online_car_panel_background_light.9.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_online_car_panel_empty_icon_light.png b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_online_car_panel_empty_icon_light.png new file mode 100644 index 0000000000..8fd26c2843 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_online_car_panel_empty_icon_light.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_item_bkg_light.xml b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_item_bkg_light.xml new file mode 100644 index 0000000000..d126dfc22a --- /dev/null +++ b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_item_bkg_light.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_item_detail_bkg_light.xml b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_item_detail_bkg_light.xml new file mode 100644 index 0000000000..1b3b50d65e --- /dev/null +++ b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_item_detail_bkg_light.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_strategy_button_bkg_light.xml b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_strategy_button_bkg_light.xml new file mode 100644 index 0000000000..89337d1c80 --- /dev/null +++ b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_strategy_button_bkg_light.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/skin/mogo-skin-light/src/main/module-services-res/values/colors.xml b/skin/mogo-skin-light/src/main/module-services-res/values/colors.xml index 823423c2f2..500c03d588 100644 --- a/skin/mogo-skin-light/src/main/module-services-res/values/colors.xml +++ b/skin/mogo-skin-light/src/main/module-services-res/values/colors.xml @@ -1,4 +1,14 @@ #333333 + #FF333333 + #B2333333 + #FF333333 + #333333 + + #333333 + #333333 + #666666 + + #81A4DC