diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java index e45a024502..9a5b19cda2 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java @@ -42,6 +42,8 @@ public class NaviClient implements IMogoNavi { private NaviClient( Context context ) { mAMapNavi = AMapNavi.getInstance( context ); + mAMapNavi.setEmulatorNaviSpeed( 120 ); + mAMapNavi.setUseInnerVoice( true ); mAMapNaviListener = new NaviListenerAdapter( context, mAMapNavi, this ); mAMapNavi.addAMapNaviListener( mAMapNaviListener ); } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java index bbe2174e17..bdc3124a74 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java @@ -3,6 +3,7 @@ package com.mogo.module.extensions.anim; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.graphics.BlendMode; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; @@ -91,7 +92,7 @@ public class JSurfaceView extends SurfaceView implements Runnable, SurfaceHolder return; } //绘制透明色 - mCanvas.drawColor( Color.parseColor( "#0C0C0C" ) ); + mCanvas.drawColor( Color.parseColor( "#EE0C0C0C" ) ); Bitmap mBitmap = BitmapFactory.decodeResource( getResources(), mFrames[mCurrentPos % mFrames.length] ); Paint paint = new Paint(); diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml index f7b06af490..0944ce6754 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/dp_120" - android:background="#0C0C0C " + android:background="#EE0C0C0C" android:orientation="vertical" android:paddingLeft="@dimen/dp_70" android:paddingRight="@dimen/dp_70"> diff --git a/modules/mogo-module-main/build.gradle b/modules/mogo-module-main/build.gradle index 744c162ffb..b7f3d015bb 100644 --- a/modules/mogo-module-main/build.gradle +++ b/modules/mogo-module-main/build.gradle @@ -26,6 +26,11 @@ android { } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + } dependencies { diff --git a/modules/mogo-module-main/src/main/AndroidManifest.xml b/modules/mogo-module-main/src/main/AndroidManifest.xml index a793893503..5b83761576 100644 --- a/modules/mogo-module-main/src/main/AndroidManifest.xml +++ b/modules/mogo-module-main/src/main/AndroidManifest.xml @@ -12,6 +12,7 @@ android:resumeWhilePausing="true" android:screenOrientation="landscape" android:stateNotNeeded="true" + android:theme="@style/Main" android:taskAffinity="" android:windowSoftInputMode="adjustPan"> 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 f439f025e8..f82da866e7 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 @@ -2,6 +2,7 @@ package com.mogo.module.main; import android.os.Bundle; import android.view.View; +import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -25,6 +26,7 @@ import com.mogo.module.main.cards.OrientedViewPager; import com.mogo.module.main.cards.VerticalStackTransformer; import com.mogo.module.main.fragmentmanager.FragmentStack; import com.mogo.module.main.fragmentmanager.FragmentStackTransactionListener; +import com.mogo.module.main.windowview.WindowViewHandler; import com.mogo.module.map.VoiceConstants; import com.mogo.module.service.ServiceConst; import com.mogo.service.MogoServicePaths; @@ -58,6 +60,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme private View mCards; private View mApps; private View mEntrance; + private FrameLayout mFloatingLayout; /** * 主模块管控定位,可以向各个模块发送统一定位信息 @@ -103,6 +106,9 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mCards = findViewById( R.id.module_main_id_cards_container ); mApps = findViewById( R.id.module_main_id_apps_fragment_container ); mEntrance = findViewById( R.id.module_main_id_entrance_fragment_container ); + mFloatingLayout = findViewById( R.id.module_main_id_floating_view ); + + WindowViewHandler.init( mFloatingLayout ); } private void hide() { @@ -110,6 +116,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mCards.setVisibility( View.GONE ); mApps.setVisibility( View.GONE ); mEntrance.setVisibility( View.GONE ); + mFloatingLayout.setVisibility( View.GONE ); } private void show() { @@ -117,6 +124,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mCards.setVisibility( View.VISIBLE ); mApps.setVisibility( View.VISIBLE ); mEntrance.setVisibility( View.VISIBLE ); + mFloatingLayout.setVisibility( View.VISIBLE ); } @Override @@ -187,8 +195,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme @Override public boolean onMarkerClicked( IMogoMarker marker ) { switch2( marker.getOwner() ); - if (mMogoModuleHandler != null) { - mMogoModuleHandler.onMarkerReceive(marker); + if ( mMogoModuleHandler != null ) { + mMogoModuleHandler.onMarkerReceive( marker ); } return false; } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/DispatchTouchEventWrapper.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/DispatchTouchEventWrapper.java similarity index 98% rename from services/mogo-service/src/main/java/com/mogo/service/impl/windowview/DispatchTouchEventWrapper.java rename to modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/DispatchTouchEventWrapper.java index 28f5aba4a6..71960ecf1e 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/DispatchTouchEventWrapper.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/DispatchTouchEventWrapper.java @@ -1,4 +1,4 @@ -package com.mogo.service.impl.windowview; +package com.mogo.module.main.windowview; import android.view.MotionEvent; import android.view.View; diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/IWindowViewHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/IWindowViewHandler.java similarity index 98% rename from services/mogo-service/src/main/java/com/mogo/service/impl/windowview/IWindowViewHandler.java rename to modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/IWindowViewHandler.java index 30577aca6f..8199f7cb58 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/IWindowViewHandler.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/IWindowViewHandler.java @@ -1,4 +1,4 @@ -package com.mogo.service.impl.windowview; +package com.mogo.module.main.windowview; import android.content.Context; import android.view.MotionEvent; diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/MogoWindowManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java similarity index 94% rename from services/mogo-service/src/main/java/com/mogo/service/impl/windowview/MogoWindowManager.java rename to modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java index 528c869a58..b98d58898e 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/MogoWindowManager.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java @@ -1,4 +1,4 @@ -package com.mogo.service.impl.windowview; +package com.mogo.module.main.windowview; import android.content.Context; import android.view.View; diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/WindowViewHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/WindowViewHandler.java similarity index 54% rename from services/mogo-service/src/main/java/com/mogo/service/impl/windowview/WindowViewHandler.java rename to modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/WindowViewHandler.java index 9e782f3a4e..e8a75877ad 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/windowview/WindowViewHandler.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/WindowViewHandler.java @@ -1,11 +1,9 @@ -package com.mogo.service.impl.windowview; +package com.mogo.module.main.windowview; -import android.content.Context; -import android.graphics.PixelFormat; -import android.os.Build; -import android.view.Gravity; import android.view.View; +import android.view.ViewGroup; import android.view.WindowManager; +import android.widget.FrameLayout; import com.mogo.utils.logger.Logger; @@ -29,8 +27,6 @@ public class WindowViewHandler { */ private static View sView = null; - private static WindowManager sWindowManager; - private static int sX, sY; /** @@ -38,18 +34,20 @@ public class WindowViewHandler { */ private static boolean sMovable = false; + public static FrameLayout sFloatingLayout = null; + + public static void init( FrameLayout frameLayout ) { + sFloatingLayout = frameLayout; + } + public static void addView( View view, int priority, int x, int y, boolean movable ) { if ( view == null ) { return; } - if ( sWindowManager == null ) { - try { - sWindowManager = ( WindowManager ) view.getContext().getApplicationContext().getSystemService( Context.WINDOW_SERVICE ); - } catch ( Exception e ) { - Logger.e( TAG, e, "error. " ); - return; - } + if ( sFloatingLayout == null ) { + Logger.e( TAG, "no floating frame. " ); + return; } if ( sView == view ) { @@ -69,7 +67,7 @@ public class WindowViewHandler { Logger.w( TAG, "过滤低优先级布局" ); return; } - sWindowManager.removeViewImmediate( sView ); + sFloatingLayout.removeView( sView ); sView = view; sX = x; sY = y; @@ -80,6 +78,9 @@ public class WindowViewHandler { } public static void removeView( View view ) { + if ( sFloatingLayout == null ) { + return; + } if ( sView != view ) { Logger.w( TAG, "view do not added." ); return; @@ -87,7 +88,7 @@ public class WindowViewHandler { if ( view == null ) { return; } - sWindowManager.removeViewImmediate( view ); + sFloatingLayout.removeView( view ); sView = null; sPriority = Integer.MIN_VALUE; sMovable = false; @@ -99,35 +100,10 @@ public class WindowViewHandler { return; } - WindowManager.LayoutParams params = new WindowManager.LayoutParams(); - params.height = WindowManager.LayoutParams.WRAP_CONTENT; - params.width = WindowManager.LayoutParams.WRAP_CONTENT; - params.type = getFitWindowParamsType(); - params.format = PixelFormat.RGBA_8888; - params.gravity = Gravity.LEFT | Gravity.TOP; - params.x = sX; - params.y = sY; - params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; - sWindowManager.addView( sView, params ); - - if ( false ) { - attachMovementEvent( sView, params ); - } - } - - private static int getFitWindowParamsType() { - int type; - if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1 ) { - // Need request permission. - type = WindowManager.LayoutParams.TYPE_PHONE; - } else if ( Build.MODEL.equalsIgnoreCase( "MI 5" ) ) { - // MI 5 phone not display crawler dot in android 7.0 - type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; - } else { - // It's will be dismissed automatically 3s after showing in Android 25. - type = WindowManager.LayoutParams.TYPE_TOAST; - } - return type; + FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT ); + params.leftMargin = sX; + params.topMargin = sY; + sFloatingLayout.addView( sView, params ); } public static void attachMovementEvent( View view, WindowManager.LayoutParams params ) { diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml index 5ce9c5b276..b252410750 100644 --- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml +++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml @@ -40,9 +40,9 @@ android:id="@+id/module_main_id_cards_container" android:layout_width="match_parent" android:layout_height="match_parent" - android:overScrollMode="never" android:layout_marginBottom="@dimen/dp_211" android:clipToPadding="false" + android:overScrollMode="never" android:paddingBottom="@dimen/dp_20" /> + + + + + + + + + \ No newline at end of file