This commit is contained in:
wangcongtao
2020-02-13 16:24:01 +08:00
parent d0f9e80268
commit 7ef21e6943
5 changed files with 37 additions and 50 deletions

View File

@@ -3,6 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.mogo.launcher">
<!-- android:sharedUserId="android.uid.system"-->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application

View File

@@ -139,6 +139,7 @@ public class AMapNaviViewWrapper implements IMogoMapView,
}
private void initListeners() {
mMapView.setOnMarkerClickListener( this );
mMarkerClickHandler = new AMapMarkerClickHandler();
mMapView.setOnMapLoadedListener( this );

View File

@@ -13,13 +13,8 @@ import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.voice.AIAssist;
import com.mogo.module.extensions.anim.AnimRes;
import com.mogo.module.extensions.anim.JSurfaceView;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
/**
* @author congtaowang
@@ -46,7 +41,6 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
private View mMsgContainer;
private TextView mMsgCounter;
private IMogoFragmentManager mMogoFragmentManager;
private IMogoAnalytics mAnalytics;
@Override
@@ -81,17 +75,6 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
ARouter.getInstance().build( "/push/ui/message" ).navigation( getContext() );
} );
mMsgCounter = findViewById( R.id.module_ext_id_msg_counter );
// mVoiceIcon.setFrames( AnimRes.sRes );
mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation( getContext() );
mMogoFragmentManager.addMainFragmentStackTransactionListener( size -> {
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 );
}
}

View File

@@ -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 );
}

View File

@@ -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<String, List<IMogoMarker>> allMarker = MarkerServiceHandler.getMarkerManager().getAllMarkers();
for (Map.Entry<String, List<IMogoMarker>> entry : allMarker.entrySet()) {
String keyStr = entry.getKey();
List<IMogoMarker> 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<IMogoMarker> lastHighLightList = MarkerServiceHandler.getMarkerManager().getMarkers( mLastHighLightModule );
setMarkersAlpha(lastHighLightList, 0.7f);
// 将当前高亮
List<IMogoMarker> currentHighLightList = MarkerServiceHandler.getMarkerManager().getMarkers( typeTag );
setMarkersAlpha(currentHighLightList, 1f);
} catch (Exception e) {
e.printStackTrace();
}
}
private static void setMarkersAlpha(List<IMogoMarker> markers,float alpha){
if ( markers == null || markers.isEmpty() ) {
return;
}
for ( IMogoMarker mogoMarker : markers ) {
if ( mogoMarker == null || mogoMarker.isDestroyed() ) {
continue;
}
mogoMarker.setAlpha( alpha );
}
}
/**