[Delete]
删除mogo-module-widgets场景 Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
@@ -202,7 +202,6 @@ dependencies {
|
||||
implementation rootProject.ext.dependencies.mogomonitor
|
||||
implementation rootProject.ext.dependencies.moduleextensions
|
||||
implementation rootProject.ext.dependencies.modulemap
|
||||
implementation rootProject.ext.dependencies.mogomodulewidgets
|
||||
implementation rootProject.ext.dependencies.moduleADAS
|
||||
implementation rootProject.ext.dependencies.modulepushbase
|
||||
implementation rootProject.ext.dependencies.modulepush
|
||||
@@ -234,7 +233,6 @@ dependencies {
|
||||
implementation project(':modules:mogo-module-monitor')
|
||||
implementation project(':modules:mogo-module-extensions')
|
||||
implementation project(':modules:mogo-module-map')
|
||||
implementation project(':modules:mogo-module-widgets')
|
||||
implementation project(':modules:mogo-module-adas')
|
||||
implementation project(":modules:mogo-module-push-base")
|
||||
implementation project(":modules:mogo-module-push")
|
||||
|
||||
@@ -73,7 +73,6 @@ dependencies {
|
||||
implementation rootProject.ext.dependencies.mogomonitor
|
||||
implementation rootProject.ext.dependencies.moduleextensions
|
||||
implementation rootProject.ext.dependencies.modulemap
|
||||
implementation rootProject.ext.dependencies.mogomodulewidgets
|
||||
implementation rootProject.ext.dependencies.moduleADAS
|
||||
implementation rootProject.ext.dependencies.modulepushbase
|
||||
implementation rootProject.ext.dependencies.modulepush
|
||||
@@ -108,7 +107,6 @@ dependencies {
|
||||
implementation project(':modules:mogo-module-monitor')
|
||||
implementation project(':modules:mogo-module-extensions')
|
||||
implementation project(':modules:mogo-module-map')
|
||||
implementation project(':modules:mogo-module-widgets')
|
||||
implementation project(':modules:mogo-module-adas')
|
||||
implementation project(":modules:mogo-module-push-base")
|
||||
implementation project(":modules:mogo-module-push")
|
||||
|
||||
@@ -283,7 +283,6 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
|
||||
MogoModulePaths.addBaseModule(new MogoModule(UpgradeReportConstants.PATH, UpgradeReportConstants.NAME));
|
||||
// 初始化 bugly 日志采集
|
||||
//MogoModulePaths.addBaseModule(new MogoModule(CrashReportConstants.PATH, CrashReportConstants.NAME));
|
||||
MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_WIDGETS, MogoServicePaths.PATH_WIDGETS));
|
||||
if (DebugConfig.isMapBased()) {
|
||||
MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME));
|
||||
}
|
||||
|
||||
@@ -271,13 +271,6 @@ public class MogoServicePaths {
|
||||
@Deprecated
|
||||
public static final String PATH_CRASH_WARNING = "/crash/warning";
|
||||
|
||||
/**
|
||||
* 悬浮小控件
|
||||
*/
|
||||
@Keep
|
||||
@Deprecated
|
||||
public static final String PATH_WIDGETS = "/widgets/provider";
|
||||
|
||||
/**
|
||||
* 在线好友面板
|
||||
*/
|
||||
|
||||
@@ -42,7 +42,6 @@
|
||||
:modules:mogo-module-push
|
||||
:modules:tanlulib
|
||||
:modules:mogo-module-monitor
|
||||
:modules:mogo-module-widgets
|
||||
:core:function-impl:mogo-core-function-autopilot
|
||||
:core:function-impl:mogo-core-function-hmi
|
||||
:core:function-impl:mogo-core-function-map
|
||||
|
||||
1
modules/mogo-module-widgets/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
/build
|
||||
@@ -1,3 +0,0 @@
|
||||
# 项目介绍
|
||||
|
||||
一些独立于其他业务的悬浮小控件
|
||||
@@ -1,73 +0,0 @@
|
||||
plugins {
|
||||
id 'com.android.library'
|
||||
id 'kotlin-android'
|
||||
id 'kotlin-android-extensions'
|
||||
id 'kotlin-kapt'
|
||||
id 'com.alibaba.arouter'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion rootProject.ext.android.compileSdkVersion
|
||||
// buildToolsVersion rootProject.ext.android.buildToolsVersion
|
||||
defaultConfig {
|
||||
minSdkVersion rootProject.ext.android.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
||||
versionCode Integer.valueOf(VERSION_CODE)
|
||||
versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION")
|
||||
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
|
||||
//ARouter apt 参数
|
||||
kapt {
|
||||
useBuildCache = false
|
||||
arguments {
|
||||
arg("AROUTER_MODULE_NAME", project.getName())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
|
||||
implementation rootProject.ext.dependencies.androidxappcompat
|
||||
implementation rootProject.ext.dependencies.androidxconstraintlayout
|
||||
|
||||
implementation rootProject.ext.dependencies.arouter
|
||||
kapt rootProject.ext.dependencies.aroutercompiler
|
||||
|
||||
implementation rootProject.ext.dependencies.rxjava
|
||||
implementation rootProject.ext.dependencies.rxandroid
|
||||
|
||||
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
|
||||
api rootProject.ext.dependencies.mogomapapi
|
||||
api rootProject.ext.dependencies.mogoutils
|
||||
api rootProject.ext.dependencies.mogocommons
|
||||
api rootProject.ext.dependencies.mogoserviceapi
|
||||
implementation rootProject.ext.dependencies.modulecommon
|
||||
} else {
|
||||
api project(":libraries:mogo-map-api")
|
||||
api project(":foudations:mogo-utils")
|
||||
api project(":foudations:mogo-commons")
|
||||
api project(':services:mogo-service-api')
|
||||
implementation project(':modules:mogo-module-common')
|
||||
}
|
||||
}
|
||||
|
||||
apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString()
|
||||
@@ -1 +0,0 @@
|
||||
-keep class com.mogo.module.widgets.MogoWidgetsProvider{*;}
|
||||
@@ -1,3 +0,0 @@
|
||||
GROUP=com.mogo.module
|
||||
POM_ARTIFACT_ID=module-widgets
|
||||
VERSION_CODE=1
|
||||
21
modules/mogo-module-widgets/proguard-rules.pro
vendored
@@ -1,21 +0,0 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
@@ -1,4 +0,0 @@
|
||||
<manifest package="com.mogo.module.widgets">
|
||||
|
||||
|
||||
</manifest>
|
||||
@@ -1,272 +0,0 @@
|
||||
package com.mogo.module.widgets;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.elegant.utils.ResourcesHelper;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.commons.storage.SpStorage;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.wm.WindowManagerView;
|
||||
import com.mogo.utils.CommonUtils;
|
||||
import com.mogo.utils.LaunchUtils;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/6/5
|
||||
* <p>
|
||||
* 描述
|
||||
*/
|
||||
public class AutoNaviIntentHandler implements IMogoVoiceCmdCallBack {
|
||||
|
||||
private static final String TAG = "AutoNaviIntentHandler";
|
||||
public static final String OPEN = "OPEN_APP";
|
||||
|
||||
// 显示浮窗时,同步状态时间间隔
|
||||
public static final long SYNC_INTERVAL = 60_000L;
|
||||
|
||||
private static volatile AutoNaviIntentHandler sInstance;
|
||||
|
||||
private AutoNaviIntentHandler() {
|
||||
}
|
||||
|
||||
public static AutoNaviIntentHandler getInstance() {
|
||||
if ( sInstance == null ) {
|
||||
synchronized ( AutoNaviIntentHandler.class ) {
|
||||
if ( sInstance == null ) {
|
||||
sInstance = new AutoNaviIntentHandler();
|
||||
}
|
||||
}
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
private WindowManagerView mWindowManagerView;
|
||||
private Map< String, Object > mProperties = new HashMap<>();
|
||||
|
||||
private TextView mEnterApp;
|
||||
private TextView mConsult;
|
||||
private View mHandler;
|
||||
private ImageView mHandlerIcon;
|
||||
|
||||
private boolean mLargeStyle = true;
|
||||
|
||||
public synchronized void release() {
|
||||
sInstance = null;
|
||||
}
|
||||
|
||||
private Runnable mAutoNaviSyncRunnable = () -> {
|
||||
if ( mWindowManagerView != null && mWindowManagerView.isShowing() ) {
|
||||
syncAutoNaviForgroundStatus( AbsMogoApplication.getApp() );
|
||||
}
|
||||
};
|
||||
|
||||
public void handle( Context context, Intent intent ) {
|
||||
int keyType = intent.getIntExtra( "KEY_TYPE", 0 );
|
||||
switch ( keyType ) {
|
||||
case 10021:
|
||||
closeEntrance();
|
||||
break;
|
||||
case 10019:
|
||||
int extraState = intent.getIntExtra( "EXTRA_STATE", -1 );
|
||||
switch ( extraState ) {
|
||||
case 3: // 前台
|
||||
syncAutoNaviNavingStatus( context );
|
||||
break;
|
||||
case 9: // 非导航
|
||||
SpStorage.setNavigationTarget( "" );
|
||||
case 4: // 后台
|
||||
closeEntrance();
|
||||
break;
|
||||
case 8: // 导航
|
||||
showEntrance( context );
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过查询高德地图状态后再显示
|
||||
*
|
||||
* @param context
|
||||
*/
|
||||
public void preShowEntrance( Context context ) {
|
||||
syncAutoNaviForgroundStatus( context );
|
||||
}
|
||||
|
||||
private void showEntrance( Context context ) {
|
||||
|
||||
if ( mWindowManagerView == null ) {
|
||||
mWindowManagerView = new WindowManagerView.Builder( AbsMogoApplication.getApp() )
|
||||
.contentView( R.layout.module_widgets_app_entrance )
|
||||
.size( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT )
|
||||
.gravity( Gravity.LEFT | Gravity.TOP )
|
||||
.position( ResourcesHelper.getDimensionPixelSize( context, R.dimen.module_widgets_app_entrance_x ), ResourcesHelper.getDimensionPixelSize( AbsMogoApplication.getApp(), R.dimen.module_widgets_app_entrance_y ) )
|
||||
.showInWindowManager();
|
||||
mWindowManagerView.attachTouchEvent( ( view, xPos, yPos ) -> {
|
||||
chooseAction( view, xPos, yPos );
|
||||
} );
|
||||
mEnterApp = mWindowManagerView.findViewById( R.id.module_widgets_app_entrance );
|
||||
mConsult = mWindowManagerView.findViewById( R.id.module_widgets_app_consult );
|
||||
mHandler = mWindowManagerView.findViewById( R.id.module_widgets_app_handler_container );
|
||||
mHandlerIcon = mWindowManagerView.findViewById( R.id.module_widgets_app_handler );
|
||||
}
|
||||
try {
|
||||
if ( mWindowManagerView.isShowing() ) {
|
||||
return;
|
||||
}
|
||||
if ( MogoApisHandler.getInstance()
|
||||
.getApis()
|
||||
.getStatusManagerApi()
|
||||
.isMainPageOnResume() ) {
|
||||
return;
|
||||
}
|
||||
mWindowManagerView.show();
|
||||
MogoWidgetManger.getInstance().getApis().getAnalyticsApi().track( "NAVI_button_show", null );
|
||||
AIAssist.getInstance( context ).registerUnWakeupCommand( OPEN, new String[]{"切换到辅助驾驶模式"}, this );
|
||||
UiThreadHandler.postDelayed( mAutoNaviSyncRunnable, SYNC_INTERVAL );
|
||||
} catch ( Exception e ) {
|
||||
Logger.e( TAG, e, "error." );
|
||||
}
|
||||
}
|
||||
|
||||
private void chooseAction( View root, float xPos, float yPos ) {
|
||||
if ( isInViewArea( root, mEnterApp, xPos, yPos ) ) {
|
||||
enterApp( root.getContext() );
|
||||
} else if ( isInViewArea( root, mHandler, xPos, yPos ) ) {
|
||||
handleStyle( mHandler.getContext() );
|
||||
} else if ( isInViewArea( root, mConsult, xPos, yPos ) ) {
|
||||
consultUser( root.getContext() );
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isInViewArea( View root, View target, float xPos, float yPos ) {
|
||||
int loc[] = new int[2];
|
||||
root.getLocationOnScreen( loc );
|
||||
int rootX = loc[0];
|
||||
int rootY = loc[1];
|
||||
|
||||
target.getLocationOnScreen( loc );
|
||||
int targetX = loc[0];
|
||||
int targetY = loc[1];
|
||||
int targetWidth = target.getMeasuredWidth();
|
||||
int targetHeight = target.getMeasuredHeight();
|
||||
|
||||
if ( xPos + rootX >= targetX
|
||||
&& xPos + rootX <= targetX + targetWidth
|
||||
&& yPos + rootY >= targetY
|
||||
&& yPos + rootY <= targetY + targetHeight ) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 目的地车友
|
||||
*
|
||||
* @param context
|
||||
*/
|
||||
private void consultUser( Context context ) {
|
||||
mProperties.clear();
|
||||
mProperties.put( "appname", CommonUtils.getAppName( context ) );
|
||||
mProperties.put( "appversion", CommonUtils.getVersionName( context ) );
|
||||
mProperties.put( "from", 9 );
|
||||
mProperties.put( "type", "consult" );
|
||||
MogoWidgetManger.getInstance().getApis().getAnalyticsApi().track( "appenterfront", mProperties );
|
||||
if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isMainPageOnResume() ) {
|
||||
MogoApisHandler.getInstance().getApis().getOnlineCarPanelApi().showPanel();
|
||||
} else {
|
||||
Intent start = new Intent( Intent.ACTION_VIEW );
|
||||
start.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
|
||||
start.setData( Uri.parse( "mogo://launcher/main/switch2?type=showOnlineCarPanel" ) );
|
||||
context.startActivity( start );
|
||||
}
|
||||
}
|
||||
|
||||
private void handleStyle( Context context ) {
|
||||
if ( mLargeStyle ) {
|
||||
mEnterApp.setText( R.string.module_widgets_app_entrance_short );
|
||||
mConsult.setText( R.string.module_widgets_app_consult_short );
|
||||
mLargeStyle = false;
|
||||
mHandlerIcon.setImageResource( R.drawable.module_widgets_app_handler_open );
|
||||
} else {
|
||||
mEnterApp.setText( R.string.module_widgets_app_entrance_text );
|
||||
mConsult.setText( R.string.module_widgets_app_entrance_consult );
|
||||
mLargeStyle = true;
|
||||
mHandlerIcon.setImageResource( R.drawable.module_widgets_app_handler_close );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 进入app
|
||||
*
|
||||
* @param context
|
||||
*/
|
||||
private void enterApp( Context context ) {
|
||||
try {
|
||||
if ( !DebugConfig.isLauncher() ) {
|
||||
LaunchUtils.launchByPkg( context, "com.mogo.launcher.app" );
|
||||
}
|
||||
mProperties.clear();
|
||||
mProperties.put( "appname", CommonUtils.getAppName( context ) );
|
||||
mProperties.put( "appversion", CommonUtils.getVersionName( context ) );
|
||||
mProperties.put( "from", 9 );
|
||||
MogoWidgetManger.getInstance().getApis().getAnalyticsApi().track( "appenterfront", mProperties );
|
||||
} catch ( Exception e ) {
|
||||
Logger.e( TAG, e, "error." );
|
||||
}
|
||||
}
|
||||
|
||||
public void closeEntrance() {
|
||||
UiThreadHandler.removeCallbacks( mAutoNaviSyncRunnable );
|
||||
if ( mWindowManagerView == null ) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
mWindowManagerView.dismiss();
|
||||
AIAssist.getInstance( AbsMogoApplication.getApp() ).unregisterUnWakeupCommand( OPEN, this );
|
||||
} catch ( Exception e ) {
|
||||
Logger.e( TAG, e, "error." );
|
||||
}
|
||||
}
|
||||
|
||||
public void syncAutoNaviForgroundStatus( Context context ) {
|
||||
Intent intent = new Intent();
|
||||
intent.setAction( "AUTONAVI_STANDARD_BROADCAST_RECV" );
|
||||
intent.putExtra( "KEY_TYPE", 12404 );
|
||||
intent.putExtra( "EXTRA_REQUEST_AUTO_STATE", 0 );
|
||||
context.sendBroadcast( intent );
|
||||
}
|
||||
|
||||
public void syncAutoNaviNavingStatus( Context context ) {
|
||||
Intent intent = new Intent();
|
||||
intent.setAction( "AUTONAVI_STANDARD_BROADCAST_RECV" );
|
||||
intent.putExtra( "KEY_TYPE", 12404 );
|
||||
intent.putExtra( "EXTRA_REQUEST_AUTO_STATE", 1 );
|
||||
context.sendBroadcast( intent );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCmdSelected( String cmd ) {
|
||||
if ( TextUtils.equals( OPEN, cmd ) ) {
|
||||
Logger.d( TAG, "recognized open command." );
|
||||
enterApp( AbsMogoApplication.getApp() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
package com.mogo.module.widgets;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import com.mogo.map.navi.IMogoNaviListener2;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/8/12
|
||||
*
|
||||
* 描述
|
||||
*/
|
||||
public class MogoWidgetManger implements IMogoNaviListener2, IMogoIntentListener, IMogoStatusChangedListener {
|
||||
// 接受其他app发给高德的广播
|
||||
public static final String ACTION_AUTO_NAVI_RECEIVER = "AUTONAVI_STANDARD_BROADCAST_RECV";
|
||||
// 接受高德发过来的广播
|
||||
public static final String ACTION_AUTO_NAVI_SEND = "AUTONAVI_STANDARD_BROADCAST_SEND";
|
||||
|
||||
private static final String TAG = "MogoWidgetManger";
|
||||
|
||||
private static volatile MogoWidgetManger sInstance;
|
||||
|
||||
private MogoWidgetManger() {
|
||||
}
|
||||
|
||||
public static MogoWidgetManger getInstance() {
|
||||
if ( sInstance == null ) {
|
||||
synchronized ( MogoWidgetManger.class ) {
|
||||
if ( sInstance == null ) {
|
||||
sInstance = new MogoWidgetManger();
|
||||
}
|
||||
}
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
public synchronized void release() {
|
||||
sInstance = null;
|
||||
}
|
||||
|
||||
private Object readResolve() {
|
||||
// 阻止反序列化,必须实现 Serializable 接口
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
private IMogoServiceApis mApis;
|
||||
private Context mContext;
|
||||
|
||||
public IMogoServiceApis getApis() {
|
||||
return mApis;
|
||||
}
|
||||
|
||||
public void init( Context context ) {
|
||||
mContext = context;
|
||||
mApis = MogoApisHandler.getInstance().getApis();
|
||||
initMapStatusListener();
|
||||
initStatusListener();
|
||||
initIntentListener();
|
||||
UiThreadHandler.postDelayed( ()->{
|
||||
AutoNaviIntentHandler.getInstance().syncAutoNaviForgroundStatus( mContext );
|
||||
}, 1_000L );
|
||||
}
|
||||
|
||||
private void initMapStatusListener() {
|
||||
mApis.getRegisterCenterApi().registerMogoNaviListener( TAG, this );
|
||||
}
|
||||
|
||||
private void initIntentListener() {
|
||||
mApis.getIntentManagerApi().registerIntentListener( ACTION_AUTO_NAVI_RECEIVER, this );
|
||||
mApis.getIntentManagerApi().registerIntentListener( ACTION_AUTO_NAVI_SEND, this );
|
||||
}
|
||||
|
||||
private void initStatusListener() {
|
||||
mApis.getStatusManagerApi().registerStatusChangedListener( TAG, StatusDescriptor.MAIN_PAGE_RESUME, this );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopNavi() {
|
||||
AutoNaviIntentHandler.getInstance().closeEntrance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartNavi() {
|
||||
AutoNaviIntentHandler.getInstance().preShowEntrance( mContext );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onIntentReceived( String intentStr, Intent intent ) {
|
||||
AutoNaviIntentHandler.getInstance().handle( mContext, intent );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
|
||||
if ( descriptor == StatusDescriptor.MAIN_PAGE_RESUME ) {
|
||||
if ( isTrue ) {
|
||||
AutoNaviIntentHandler.getInstance().closeEntrance();
|
||||
} else {
|
||||
AutoNaviIntentHandler.getInstance().syncAutoNaviForgroundStatus( mContext );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
package com.mogo.module.widgets;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.location.IMogoLocationListener;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
import com.mogo.service.module.ModuleType;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/8/12
|
||||
*
|
||||
* 高德地图启动的时候才会用到这个模块
|
||||
*/
|
||||
@Route( path = MogoWidgetsProvider.PATH )
|
||||
public class MogoWidgetsProvider implements IMogoModuleProvider {
|
||||
|
||||
private static final String TAG = "MogoWidgetsProvider";
|
||||
|
||||
public static final String PATH = "/widgets/provider";
|
||||
public static final String NAME = "MogoWidgetProvider";
|
||||
|
||||
@Override
|
||||
public Fragment createFragment( Context context, Bundle data ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View createView( Context context ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public String getModuleName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoModuleLifecycle getCardLifecycle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoMapListener getMapListener() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getType() {
|
||||
return ModuleType.TYPE_SERVICE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoNaviListener getNaviListener() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoLocationListener getLocationListener() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoMarkerClickListener getMarkerClickListener() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAppPackage() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAppName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init( Context context ) {
|
||||
Logger.d( TAG, "init." );
|
||||
UiThreadHandler.postDelayed( () -> {
|
||||
MogoWidgetManger.getInstance().init( context );
|
||||
}, 6_000L );
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 711 B |
|
Before Width: | Height: | Size: 372 B |
|
Before Width: | Height: | Size: 360 B |
|
Before Width: | Height: | Size: 711 B |
|
Before Width: | Height: | Size: 372 B |
|
Before Width: | Height: | Size: 360 B |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 577 B |
|
Before Width: | Height: | Size: 564 B |
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape>
|
||||
<corners android:bottomLeftRadius="0px" android:bottomRightRadius="@dimen/module_widgets_app_bkg_corner" android:topLeftRadius="0px" android:topRightRadius="@dimen/module_widgets_app_bkg_corner" />
|
||||
<solid android:color="#3D3F44" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
|
Before Width: | Height: | Size: 711 B |
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape>
|
||||
<corners android:bottomLeftRadius="@dimen/module_widgets_app_bkg_corner" android:bottomRightRadius="0px" android:topLeftRadius="@dimen/module_widgets_app_bkg_corner" android:topRightRadius="0px" />
|
||||
<solid android:color="#4C4E51" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -1,66 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/module_widgets_app_entrance_root"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/module_widgets_app_entrance_root_bkg"
|
||||
android:gravity="center_vertical"
|
||||
android:padding="@dimen/module_widgets_app_entrance_root_padding">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/module_widgets_app_handler_container"
|
||||
android:layout_width="@dimen/module_widgets_app_handler_width"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/module_widgets_app_handler_bkg"
|
||||
android:gravity="center">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_widgets_app_handler"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/module_widgets_app_handler_close" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_widgets_app_entrance"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:paddingLeft="@dimen/module_widgets_app_entrance_paddingLeft"
|
||||
android:paddingTop="@dimen/module_widgets_app_entrance_paddingTop"
|
||||
android:paddingRight="@dimen/module_widgets_app_entrance_paddingLeft"
|
||||
android:paddingBottom="@dimen/module_widgets_app_entrance_paddingTop"
|
||||
android:text="@string/module_widgets_app_entrance_text"
|
||||
android:textColor="@color/module_widgets_app_entrance_textColor"
|
||||
android:textSize="@dimen/module_widgets_app_entrance_textSize"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<View
|
||||
android:layout_width="1px"
|
||||
android:layout_height="50px"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:background="#7FFFFFFF" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_widgets_app_consult"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:paddingLeft="@dimen/module_widgets_app_entrance_paddingLeft"
|
||||
android:paddingTop="@dimen/module_widgets_app_entrance_paddingTop"
|
||||
android:paddingRight="@dimen/module_widgets_app_entrance_paddingLeft"
|
||||
android:paddingBottom="@dimen/module_widgets_app_entrance_paddingTop"
|
||||
android:text="@string/module_widgets_app_entrance_consult"
|
||||
android:textColor="@color/module_widgets_app_entrance_textColor"
|
||||
android:textSize="@dimen/module_widgets_app_entrance_textSize"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<View
|
||||
android:layout_width="1px"
|
||||
android:layout_height="1px"
|
||||
android:layout_gravity="center_vertical" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_widgets_app_entrance_textSize">22px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_padding">15px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_corner_size">2px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_y">503px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_x">501px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_paddingTop">20px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_paddingLeft">27px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_size">71px</dimen>
|
||||
<dimen name="module_widgets_app_bkg_corner">4px</dimen>
|
||||
<dimen name="module_widgets_app_handler_width">56px</dimen>
|
||||
<dimen name="module_widgets_app_handler_height">40px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_root_padding">7px</dimen>
|
||||
</resources>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_widgets_app_entrance_textSize">22px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_padding">15px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_corner_size">2px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_y">503px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_x">501px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_paddingTop">20px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_paddingLeft">27px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_size">71px</dimen>
|
||||
<dimen name="module_widgets_app_bkg_corner">4px</dimen>
|
||||
<dimen name="module_widgets_app_handler_width">56px</dimen>
|
||||
<dimen name="module_widgets_app_handler_height">40px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_root_padding">7px</dimen>
|
||||
</resources>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_widgets_app_entrance_textSize">40px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_padding">30px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_corner_size">4px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_y">906px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_x">1316px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_paddingTop">37px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_paddingLeft">50px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_size">71px</dimen>
|
||||
<dimen name="module_widgets_app_bkg_corner">8px</dimen>
|
||||
<dimen name="module_widgets_app_handler_width">100px</dimen>
|
||||
<dimen name="module_widgets_app_handler_height">85px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_root_padding">8px</dimen>
|
||||
</resources>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_widgets_app_entrance_textSize">40px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_padding">30px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_corner_size">4px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_y">906px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_x">1316px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_paddingTop">37px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_paddingLeft">50px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_size">71px</dimen>
|
||||
<dimen name="module_widgets_app_bkg_corner">8px</dimen>
|
||||
<dimen name="module_widgets_app_handler_width">100px</dimen>
|
||||
<dimen name="module_widgets_app_handler_height">85px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_root_padding">8px</dimen>
|
||||
</resources>
|
||||
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="module_widgets_app_entrance_textColor">#FFFFFF</color>
|
||||
</resources>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_widgets_app_entrance_textSize">22px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_padding">15px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_corner_size">2px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_y">503px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_x">501px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_paddingTop">20px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_paddingLeft">27px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_size">71px</dimen>
|
||||
<dimen name="module_widgets_app_bkg_corner">4px</dimen>
|
||||
<dimen name="module_widgets_app_handler_width">56px</dimen>
|
||||
<dimen name="module_widgets_app_handler_height">40px</dimen>
|
||||
<dimen name="module_widgets_app_entrance_root_padding">7px</dimen>
|
||||
</resources>
|
||||
@@ -1,7 +0,0 @@
|
||||
<resources>
|
||||
<string name="app_name">mogo-module-service</string>
|
||||
<string name="module_widgets_app_entrance_text">辅助驾驶模式</string>
|
||||
<string name="module_widgets_app_entrance_consult">咨询终点车友</string>
|
||||
<string name="module_widgets_app_entrance_short">辅</string>
|
||||
<string name="module_widgets_app_consult_short">咨</string>
|
||||
</resources>
|
||||
@@ -55,7 +55,6 @@ include ':libraries:mogo-map'
|
||||
|
||||
// OLD业务模块
|
||||
include ':modules:tanlulib'
|
||||
include ':modules:mogo-module-widgets'
|
||||
include ':modules:mogo-module-monitor'
|
||||
include ':modules:mogo-module-obu'
|
||||
include ':modules:mogo-module-adas'
|
||||
|
||||