diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_applist.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_applist.png old mode 100755 new mode 100644 index 205ed11e64..f884758d3d Binary files a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_applist.png and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_applist.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_media.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_media.png old mode 100755 new mode 100644 index 3f47b7a60b..d9f6df313d Binary files a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_media.png and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_media.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi.png old mode 100755 new mode 100644 index 585e128e9a..2401ce7c2a Binary files a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi.png and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi_disable.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi_disable.png index 45c5eeb6b2..3df9f14026 100644 Binary files a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi_disable.png and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_navi_disable.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_personcenter.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_personcenter.png old mode 100755 new mode 100644 index eb036c5ea0..df3ba081fe Binary files a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_personcenter.png and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_navigator_personcenter.png differ diff --git a/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml index fb55520395..5b12d6e39c 100644 --- a/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml +++ b/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml @@ -23,7 +23,7 @@ 78px 78px - 16px + 17px 78px 78px \ No newline at end of file diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/WMDialog.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/WMDialog.java index 097330f871..9dc367585c 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/WMDialog.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/dialog/WMDialog.java @@ -2,19 +2,12 @@ package com.mogo.module.common.dialog; import android.content.Context; import android.content.DialogInterface; -import android.graphics.PixelFormat; -import android.os.Build; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.WindowManager; import android.widget.TextView; import androidx.annotation.StringRes; import com.mogo.module.common.R; -import com.mogo.module.common.utils.CarSeries; -import com.mogo.utils.WindowUtils; +import com.mogo.module.common.wm.WindowManagerView; /** * @author congtaowang @@ -25,54 +18,22 @@ import com.mogo.utils.WindowUtils; public class WMDialog implements DialogInterface { private WMDialogParams mParams; - private WindowManager mWindowManager; - private boolean mIsShowing = false; - private View mContentView; - private WindowManager.LayoutParams mLayoutParams; + private WindowManagerView mWindowManagerView; private WMDialog( WMDialogParams params ) { this.mParams = params; + mWindowManagerView = new WindowManagerView.Builder( mParams.mContext ).contentView( R.layout.module_commons_layout_wm_dialog ).build(); + initViews(); } public void show() { - if ( mIsShowing ) { - return; - } - mIsShowing = true; - if ( mWindowManager == null ) { - mWindowManager = ( WindowManager ) mParams.mContext.getApplicationContext().getSystemService( Context.WINDOW_SERVICE ); - } - if ( mContentView == null ) { - mLayoutParams = new WindowManager.LayoutParams(); - if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ) { - mLayoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; - } else { - mLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; - } - mLayoutParams.format = PixelFormat.TRANSLUCENT; - mLayoutParams.gravity = Gravity.CENTER; - mLayoutParams.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH; - - if ( CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ) { - mLayoutParams.width = 1920; - mLayoutParams.height = 1080; - } else { - mLayoutParams.width = WindowUtils.getScreenWidth( mParams.mContext ); - mLayoutParams.height = WindowUtils.getScreenHeight( mParams.mContext ); - } - mLayoutParams.dimAmount = 0.5f; - mLayoutParams.x = 0; - mLayoutParams.y = 0; - mContentView = initViews(); - } - mWindowManager.addView( mContentView, mLayoutParams ); + mWindowManagerView.show(); } - private View initViews() { - View contentView = LayoutInflater.from( mParams.mContext ).inflate( R.layout.module_commons_layout_wm_dialog, null ); - TextView ok = contentView.findViewById( R.id.module_commons_wm_dialog_button_ok ); - TextView cancel = contentView.findViewById( R.id.module_commons_wm_dialog_button_cancel ); - TextView content = contentView.findViewById( R.id.module_commons_wm_dialog_content ); + private void initViews() { + TextView ok = mWindowManagerView.findViewById( R.id.module_commons_wm_dialog_button_ok ); + TextView cancel = mWindowManagerView.findViewById( R.id.module_commons_wm_dialog_button_cancel ); + TextView content = mWindowManagerView.findViewById( R.id.module_commons_wm_dialog_content ); ok.setText( mParams.mOkButtonText ); if ( mParams.mOnOkButtonClickListener != null ) { @@ -92,7 +53,6 @@ public class WMDialog implements DialogInterface { } content.setText( mParams.mContent ); - return contentView; } @Override @@ -102,20 +62,11 @@ public class WMDialog implements DialogInterface { @Override public void dismiss() { - if ( !mIsShowing ) { - return; - } - if ( mContentView != null ) { - mWindowManager.removeViewImmediate( mContentView ); - } - if ( mParams.mOnDialogDismissListener != null ) { - mParams.mOnDialogDismissListener.onDismiss( this ); - } - mIsShowing = false; + mWindowManagerView.dismiss(); } public boolean isShowing() { - return mIsShowing; + return mWindowManagerView.isShowing(); } public static class Builder { @@ -129,16 +80,6 @@ public class WMDialog implements DialogInterface { mParams.mContext = context; } -// public Builder setTitle( CharSequence title ) { -// mParams.mTitle = title; -// return this; -// } -// -// public Builder setTitle( @StringRes int title ) { -// mParams.mTitle = mContext.getString( title ); -// return this; -// } - public Builder setContent( CharSequence content ) { mParams.mContent = content; return this; diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java new file mode 100644 index 0000000000..29db8cd8fb --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java @@ -0,0 +1,118 @@ +package com.mogo.module.common.wm; + +import android.content.Context; +import android.graphics.PixelFormat; +import android.os.Build; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.WindowManager; + +import androidx.annotation.IdRes; +import androidx.annotation.LayoutRes; + +import com.mogo.module.common.utils.CarSeries; +import com.mogo.utils.WindowUtils; + +/** + * @author congtaowang + * @since 2020-05-21 + *

+ * 往 window manager 添加view + */ +public class WindowManagerView { + + private WMViewParams mParams; + private boolean mIsShowing; + private WindowManager mWindowManager; + private WindowManager.LayoutParams mLayoutParams; + + private WindowManagerView( WMViewParams params ) { + this.mParams = params; + init(); + } + + private void init() { + mWindowManager = ( WindowManager ) mParams.mContext.getApplicationContext().getSystemService( Context.WINDOW_SERVICE ); + mLayoutParams = new WindowManager.LayoutParams(); + if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ) { + mLayoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; + } else { + mLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; + } + mLayoutParams.format = PixelFormat.TRANSLUCENT; + mLayoutParams.gravity = Gravity.CENTER; + mLayoutParams.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH; + + if ( CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ) { + mLayoutParams.width = 1920; + mLayoutParams.height = 1080; + } else { + mLayoutParams.width = WindowUtils.getScreenWidth( mParams.mContext ); + mLayoutParams.height = WindowUtils.getScreenHeight( mParams.mContext ); + } + mLayoutParams.dimAmount = 0.5f; + mLayoutParams.x = 0; + mLayoutParams.y = 0; + } + + public boolean isShowing() { + return mIsShowing; + } + + public < T extends View > T findViewById( @IdRes int id ) { + return mParams.mContentView.findViewById( id ); + } + + public void show() { + if ( mIsShowing ) { + return; + } + mIsShowing = true; + mWindowManager.addView( mParams.mContentView, mLayoutParams ); + } + + public void dismiss() { + if ( !mIsShowing ) { + return; + } + if ( mParams != null ) { + mWindowManager.removeViewImmediate( mParams.mContentView ); + } + mIsShowing = false; + } + + public static class Builder { + + private WMViewParams mParams = null; + + public Builder( Context context ) { + mParams = new WMViewParams(); + mParams.mContext = context; + } + + public Builder contentView( View contentView ) { + mParams.mContentView = contentView; + return this; + } + + public Builder contentView( @LayoutRes int contentViewId ) { + mParams.mContentView = LayoutInflater.from( mParams.mContext ).inflate( contentViewId, null ); + return this; + } + + public WindowManagerView build() { + if ( mParams.mContentView == null ) { + throw new NullPointerException( "WMViewParams#mContentView must not be null." ); + } + return new WindowManagerView( mParams ); + } + + } + + public static class WMViewParams { + + public View mContentView; + public Context mContext; + } +} diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info3.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info3.png index c8580d052c..c62dfd068d 100755 Binary files a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info3.png and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_ic_navi_info3.png differ diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel.xml b/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel.xml index 27f6551f89..fefa25212f 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel.xml @@ -89,7 +89,7 @@ 15px - 9px - 9px - 18px - 18px - -1px + 9px + 9px + 18px + 18px + -1px 30px 23px @@ -111,7 +111,7 @@ 14px 20px 14px - 34px + 34px 8px 8px @@ -125,6 +125,6 @@ 66px 66px 16px - 22px + 14px 14px \ No newline at end of file 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 624e689985..fc372e59cf 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 @@ -89,11 +89,11 @@ 24px 28px - 17px - 17px - 36px - 36px - -2px + 17px + 17px + 36px + 36px + -2px 30px 40px @@ -101,7 +101,7 @@ 15px 15px 5px - 50px + 50px 37px 26px 37px @@ -121,6 +121,7 @@ 120px 120px 30px + 122px 28px \ No newline at end of file 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 4e5e031906..d4922bc498 100644 --- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml @@ -90,11 +90,11 @@ 24px 28px - 17px - 17px - 36px - 36px - -2px + 17px + 17px + 36px + 36px + -2px 30px 40px @@ -108,7 +108,7 @@ 26px 37px 26px - 50px + 50px 15px 15px @@ -122,7 +122,7 @@ 120px 120px 30px - 14px + 22px 28px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java index 972aa61212..ff9a355949 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java @@ -131,6 +131,9 @@ public class MockIntentHandler implements IntentHandler { query.setRadius( 1000 ); geoSearch.getFromLocationAsyn( query ); break; + case 11: + MarkerServiceHandler.getADASController().setSettingStatus( intent.getBooleanExtra( "status", false ) ); + break; } } } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java index 468c965b26..7be4dd6e4e 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java @@ -31,4 +31,5 @@ public interface IMogoADASController extends IProvider { */ void killADAS(); + void setSettingStatus(boolean show); } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index c38edf1b56..f0602070b2 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -166,4 +166,9 @@ public class MogoADASController implements IMogoADASController { } return false; } + + @Override + public void setSettingStatus( boolean show ) { + AutopilotServiceManage.getInstance().setSettingStatus( show ); + } }