From 7ef21e69436feab8232da3d33d28b11f557b7585 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 13 Feb 2020 16:24:01 +0800 Subject: [PATCH] opt --- app/src/main/AndroidManifest.xml | 2 + .../map/impl/amap/AMapNaviViewWrapper.java | 1 + .../module/extensions/ExtensionsFragment.java | 18 ------ .../com/mogo/module/main/MainActivity.java | 11 ++-- .../service/marker/MapMarkerManager.java | 55 ++++++++++--------- 5 files changed, 37 insertions(+), 50 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0253617fc1..5740c3ed5a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="com.mogo.launcher"> + + { - if ( size == 0 ) { - mVoiceIcon.setVisibility( View.VISIBLE ); - } else { - mVoiceIcon.setVisibility( View.INVISIBLE ); - } - } ); } @NonNull @@ -154,7 +137,6 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP @Override public void renderAITipWords( String word ) { if ( !TextUtils.isEmpty( word ) ) { - Logger.d( TAG, "current word: %s", word ); mVoiceMsg.setText( word ); } } 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 02bd6ed7df..06daa4c10c 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 @@ -83,7 +83,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme private int mCurrentPosition = 0; // 是否是点击Marker进行的页面切换,false-不是,true-是 - private boolean isClickMarker; + private boolean mIsClickMarker; private long mCardStartShowTime = 0; @@ -147,7 +147,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mCurrentPosition = position; provider = mCardModulesAdapter.getProvider( mCurrentPosition ); mMogoModuleHandler.setModuleEnable( provider.getModuleName() ); - if ( !isClickMarker ) { + if ( !mIsClickMarker ) { mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() ); } } catch ( Exception e ) { @@ -343,12 +343,12 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme @Override public boolean onMarkerClicked( IMogoMarker marker ) { - isClickMarker = true; + mIsClickMarker = true; switch2( marker.getOwner() ); if ( mMogoModuleHandler != null ) { mMogoModuleHandler.onMarkerClicked( marker ); } - isClickMarker = false; + mIsClickMarker = false; return false; } @@ -360,9 +360,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme if ( position != -1 ) { int lastFactPosition = mCardModulesAdapter.getFactPosition( mCurrentPosition ); mCardsContainer.setCurrentItem( mCurrentPosition + position - lastFactPosition, Math.abs( lastFactPosition - position ) == 1 ); - if ( !isClickMarker ) { - mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() ); - } } else { Logger.e( TAG, "Can't find type of %s's position", cardType ); } 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 9229488497..3a9f2e0340 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.os.Handler; import android.os.Looper; +import android.text.TextUtils; import android.view.View; import com.mogo.map.MogoLatLng; @@ -52,6 +53,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag private static IMogoMarker lastMarker; private static MapMarkerManager mMarkerManager; + private static String mLastHighLightModule = null; + private MapMarkerManager() { } @@ -77,8 +80,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag .getMogoSocketManager() .registerOnMessageListener(401001, this); - MarkerServiceHandler.getMogoCardManager() - .registerCardChangedListener("LAUNCHER_MARKER_MODULE", new IMogoCardChangedListener() { + MarkerServiceHandler.getMogoCardManager().registerCardChangedListener("LAUNCHER_MARKER_MODULE", new IMogoCardChangedListener() { @Override public void onSwitched(int position, String moduleName) { @@ -90,6 +92,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag } else { isOnLineCard = false; } + mLastHighLightModule = moduleName; } }); } @@ -186,31 +189,33 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 对指定类型高亮处理 public synchronized static void highlightedMarker(final String typeTag) { - Handler handler = new Handler(); - handler.post(new Runnable() { - @Override - public void run() { - try { - Map> allMarker = MarkerServiceHandler.getMarkerManager().getAllMarkers(); - for (Map.Entry> entry : allMarker.entrySet()) { - String keyStr = entry.getKey(); - List markerList = entry.getValue(); + try { - if (keyStr.equals(typeTag)) { - for (IMogoMarker marker : markerList) { - marker.setAlpha(1f); - } - } else { - for (IMogoMarker marker : markerList) { - marker.setAlpha(0.7f); - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } + if ( TextUtils.equals( mLastHighLightModule, typeTag ) ) { + return; } - }); + // 上一次高亮的变暗 + List lastHighLightList = MarkerServiceHandler.getMarkerManager().getMarkers( mLastHighLightModule ); + setMarkersAlpha(lastHighLightList, 0.7f); + + // 将当前高亮 + List currentHighLightList = MarkerServiceHandler.getMarkerManager().getMarkers( typeTag ); + setMarkersAlpha(currentHighLightList, 1f); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static void setMarkersAlpha(List markers,float alpha){ + if ( markers == null || markers.isEmpty() ) { + return; + } + for ( IMogoMarker mogoMarker : markers ) { + if ( mogoMarker == null || mogoMarker.isDestroyed() ) { + continue; + } + mogoMarker.setAlpha( alpha ); + } } /**