items;//视频地址和图片地址
public String getAddr() {
+ if (TextUtils.isEmpty(addr)) {
+ return "未知";
+ }
return addr;
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWayItem.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWayItem.java
index 9f367ee7fe..efc6a88649 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWayItem.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerExploreWayItem.java
@@ -2,6 +2,8 @@
package com.mogo.module.common.entity;
+import android.text.TextUtils;
+
import java.io.Serializable;
@SuppressWarnings("unused")
@@ -11,6 +13,9 @@ public class MarkerExploreWayItem implements Serializable {
private String url;
public String getThumbnail() {
+ if (TextUtils.isEmpty(thumbnail)) {
+ return "";
+ }
return thumbnail;
}
@@ -19,6 +24,9 @@ public class MarkerExploreWayItem implements Serializable {
}
public String getUrl() {
+ if (TextUtils.isEmpty(url)) {
+ return "";
+ }
return url;
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerHobbyDatum.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerHobbyDatum.java
index 4cf8e1504c..5d69c78ec0 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerHobbyDatum.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerHobbyDatum.java
@@ -2,6 +2,8 @@
package com.mogo.module.common.entity;
+import android.text.TextUtils;
+
import java.io.Serializable;
@SuppressWarnings("unused")
@@ -12,6 +14,9 @@ public class MarkerHobbyDatum implements Serializable {
private int isCheck;
public String getContent() {
+ if (TextUtils.isEmpty(content)) {
+ return "未知";
+ }
return content;
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerLocation.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerLocation.java
index 9895187033..16ccc2cf36 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerLocation.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerLocation.java
@@ -2,6 +2,8 @@
package com.mogo.module.common.entity;
+import android.text.TextUtils;
+
import java.io.Serializable;
@SuppressWarnings("unused")
@@ -37,6 +39,9 @@ public class MarkerLocation implements Serializable {
}
public String getAddress() {
+ if (TextUtils.isEmpty(address)) {
+ return "未知";
+ }
return address;
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java
new file mode 100644
index 0000000000..1b013807f9
--- /dev/null
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java
@@ -0,0 +1,115 @@
+
+package com.mogo.module.common.entity;
+
+/**
+ * 新鲜事儿Marker数据
+ */
+public class MarkerNoveltyInfo {
+ private String type;
+ private MarkerLocation location;
+ private MarkerUserInfo userInfo;
+ /**
+ * @see MarkerPoiTypeEnum
+ */
+ private String poiType;
+ private ContentData contentData;
+
+
+ public ContentData getContentData() {
+ return contentData;
+ }
+
+ public void setContentData(ContentData contentData) {
+ this.contentData = contentData;
+ }
+
+ public MarkerLocation getLocation() {
+ return location;
+ }
+
+ public void setLocation(MarkerLocation location) {
+ this.location = location;
+ }
+
+ public String getPoiType() {
+ return poiType;
+ }
+
+ public void setPoiType(String poiType) {
+ this.poiType = poiType;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public MarkerUserInfo getUserInfo() {
+ return userInfo;
+ }
+
+ public void setUserInfo(MarkerUserInfo userInfo) {
+ this.userInfo = userInfo;
+ }
+
+ public class ContentData {
+ private String content;
+ private String iconUrl;
+ private String imgUrl;
+ private String infoId;
+ private Long likeNum;
+ private String title;
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getIconUrl() {
+ return iconUrl;
+ }
+
+ public void setIconUrl(String iconUrl) {
+ this.iconUrl = iconUrl;
+ }
+
+ public String getImgUrl() {
+ return imgUrl;
+ }
+
+ public void setImgUrl(String imgUrl) {
+ this.imgUrl = imgUrl;
+ }
+
+ public String getInfoId() {
+ return infoId;
+ }
+
+ public void setInfoId(String infoId) {
+ this.infoId = infoId;
+ }
+
+ public Long getLikeNum() {
+ return likeNum;
+ }
+
+ public void setLikeNum(Long likeNum) {
+ this.likeNum = likeNum;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ }
+}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java
new file mode 100644
index 0000000000..5045d0d203
--- /dev/null
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java
@@ -0,0 +1,21 @@
+package com.mogo.module.common.entity;
+
+/**
+ * author : donghongyu
+ * e-mail : 1358506549@qq.com
+ * date : 2020-01-1514:47
+ * desc : 车机启动状态
+ * version: 1.0
+ */
+public interface MarkerPoiTypeEnum {
+ //加油站
+ public String GAS_STATION = "10001";
+ //交通检查
+ public String TRAFFIC_CHECK = "10002";
+ //封路
+ public String ROAD_CLOSED = "10003";
+ //商场打折
+ public String SHOP_DISCOUNT = "10004";
+ //4S店
+ public String FOURS_SHOP = "10005";
+}
\ No newline at end of file
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShareMusic.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShareMusic.java
index 2f9feeff19..4af69a02dd 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShareMusic.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShareMusic.java
@@ -2,6 +2,8 @@
package com.mogo.module.common.entity;
+import android.text.TextUtils;
+
import java.io.Serializable;
@SuppressWarnings("unused")
@@ -54,6 +56,9 @@ public class MarkerShareMusic implements Serializable {
}
public String getMediaImg() {
+ if (TextUtils.isEmpty(mediaImg)) {
+ return "";
+ }
return mediaImg;
}
@@ -62,6 +67,9 @@ public class MarkerShareMusic implements Serializable {
}
public String getMediaName() {
+ if (TextUtils.isEmpty(mediaName)) {
+ return "未知";
+ }
return mediaName;
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShowEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShowEntity.java
index fd2b18276b..9bfab11dec 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShowEntity.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShowEntity.java
@@ -1,5 +1,7 @@
package com.mogo.module.common.entity;
+import android.text.TextUtils;
+
import java.util.Objects;
/**
@@ -13,6 +15,8 @@ public class MarkerShowEntity {
// false - 没选中,true - 选中
private boolean isChecked;
+ // false - 非高亮,true - 高亮
+ private boolean isHighlighted;
// icon 地址,例如:头像,唱片图片,探路缩略,可能为空展示默认图
private String iconUrl;
// 要展示的文本
@@ -32,6 +36,14 @@ public class MarkerShowEntity {
isChecked = checked;
}
+ public boolean isHighlighted() {
+ return isHighlighted;
+ }
+
+ public void setHighlighted(boolean highlighted) {
+ isHighlighted = highlighted;
+ }
+
public String getIconUrl() {
return iconUrl;
}
@@ -41,6 +53,9 @@ public class MarkerShowEntity {
}
public String getTextContent() {
+ if (TextUtils.isEmpty(textContent)) {
+ return "未知";
+ }
return textContent;
}
@@ -77,8 +92,7 @@ public class MarkerShowEntity {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MarkerShowEntity that = (MarkerShowEntity) o;
- return isChecked == that.isChecked &&
- Objects.equals(iconUrl, that.iconUrl) &&
+ return Objects.equals(iconUrl, that.iconUrl) &&
Objects.equals(textContent, that.textContent) &&
Objects.equals(markerType, that.markerType) &&
Objects.equals(bindObj, that.bindObj) &&
@@ -87,13 +101,14 @@ public class MarkerShowEntity {
@Override
public int hashCode() {
- return Objects.hash(isChecked, iconUrl, textContent, markerType, bindObj, markerLocation);
+ return Objects.hash(iconUrl, textContent, markerType, bindObj, markerLocation);
}
@Override
public String toString() {
return "MarkerShowEntity{" +
"isChecked=" + isChecked +
+ ", isHighlighted=" + isHighlighted +
", iconUrl='" + iconUrl + '\'' +
", textContent='" + textContent + '\'' +
", markerType='" + markerType + '\'' +
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java
index 5c29773053..ec6271c154 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java
@@ -90,6 +90,9 @@ public class MarkerUserInfo implements Serializable {
}
public String getSn() {
+ if (TextUtils.isEmpty(sn)) {
+ return "";
+ }
return sn;
}
@@ -98,6 +101,9 @@ public class MarkerUserInfo implements Serializable {
}
public String getUserHead() {
+ if (TextUtils.isEmpty(userHead)) {
+ return "";
+ }
return userHead;
}
@@ -114,6 +120,9 @@ public class MarkerUserInfo implements Serializable {
}
public String getUserName() {
+ if (TextUtils.isEmpty(userName)) {
+ return "";
+ }
return userName;
}
diff --git a/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_default_user_head.png b/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_default_user_head.png
new file mode 100644
index 0000000000..d5df99fa78
Binary files /dev/null and b/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_default_user_head.png differ
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java
index 959e14392f..3395db70fd 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java
@@ -11,8 +11,13 @@ 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;
/**
* @author congtaowang
@@ -36,6 +41,9 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
private View mMsgContainer;
private TextView mMsgCounter;
+ private IMogoFragmentManager mMogoFragmentManager;
+ private IMogoAnalytics mAnalytics;
+
@Override
protected int getLayoutId() {
return R.layout.module_ext_layout_extensions;
@@ -47,8 +55,12 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
mVoiceMsg = findViewById( R.id.module_ext_id_voice_msg );
mVoiceIcon.setOnClickListener( view -> {
+ mVoiceMsg.performClick();
+ } );
+ mVoiceMsg.setOnClickListener( view -> {
+ AIAssist.startAssistant( getContext() );
+ mAnalytics.track( "Launcher_xiaozhi_Click", null );
} );
- mVoiceMsg.setOnClickListener( view -> {} );
mTime = findViewById( R.id.module_ext_id_time );
mDate = findViewById( R.id.module_ext_id_date );
@@ -65,6 +77,15 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
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
@@ -76,6 +97,7 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
@Override
public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
super.onActivityCreated( savedInstanceState );
+ mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( getContext() );
mVoiceIcon.startAnim();
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleProvider.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleProvider.java
index 991ef5d737..2484719833 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleProvider.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsModuleProvider.java
@@ -77,4 +77,14 @@ public class ExtensionsModuleProvider implements IMogoModuleProvider {
public IMogoMarkerClickListener getMarkerClickListener() {
return null;
}
+
+ @Override
+ public String getAppPackage() {
+ return null;
+ }
+
+ @Override
+ public String getAppName() {
+ return null;
+ }
}
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 8c4ab7e9b0..cae414cf21 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
@@ -51,7 +51,7 @@ public class JSurfaceView extends SurfaceView implements Runnable, SurfaceHolder
private void init() {
mHolder = getHolder();
mHolder.addCallback( this );
- setZOrderOnTop( false );
+ setZOrderOnTop( true );
mHolder.setFormat( PixelFormat.TRANSLUCENT );
}
@@ -92,7 +92,7 @@ public class JSurfaceView extends SurfaceView implements Runnable, SurfaceHolder
return;
}
//绘制透明色
- mCanvas.drawColor( Color.parseColor( "#1F000000" ) );
+ mCanvas.drawColor( Color.TRANSPARENT, PorterDuff.Mode.CLEAR );
Bitmap mBitmap = BitmapFactory.decodeResource( getResources(), mFrames[mCurrentPos % mFrames.length] );
Paint paint = new Paint();
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java
index 353ea158b7..b3bbc3bed7 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java
@@ -80,4 +80,14 @@ public class EntranceProvider implements IMogoModuleProvider {
public IMogoMarkerClickListener getMarkerClickListener() {
return null;
}
+
+ @Override
+ public String getAppPackage() {
+ return null;
+ }
+
+ @Override
+ public String getAppName() {
+ return null;
+ }
}
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 9c760baf55..deb4f5b845 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
@@ -1,11 +1,13 @@
package com.mogo.module.main;
import android.os.Bundle;
+import android.os.SystemClock;
import android.view.View;
import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.viewpager.widget.ViewPager;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.MvpActivity;
@@ -24,18 +26,20 @@ import com.mogo.module.main.cards.MogoModulesManager;
import com.mogo.module.main.cards.OnPageChangeListenerAdapter;
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;
-import com.mogo.service.connection.IMogoSocketManager;
+import com.mogo.service.analytics.IMogoAnalytics;
+import com.mogo.service.cardmanager.IMogoCardManager;
+import com.mogo.service.fragmentmanager.IMogoFragmentManager;
+import com.mogo.service.impl.fragmentmanager.FragmentStack;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.utils.logger.Logger;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* @author congtaowang
@@ -52,6 +56,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
private IMogoMapService mMogoMapService;
private IMogoMapUIController mMogoMapUIController;
private MogoModulesHandler mMogoModuleHandler;
+ private IMogoCardManager mMogoCardManager;
+ private IMogoFragmentManager mMogoFragmentManager;
private OrientedViewPager mCardsContainer;
private CardModulesAdapter mCardModulesAdapter;
@@ -70,6 +76,13 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
private int mCurrentPosition = 0;
+ // 是否是点击Marker进行的页面切换,false-不是,true-是
+ private boolean isClickMarker;
+
+ private long mCardStartShowTime = 0;
+
+ private IMogoAnalytics mAnalytics;
+
@Override
protected int getLayoutId() {
return R.layout.module_main_activity_main;
@@ -81,27 +94,80 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mCardsContainer.setOrientation( OrientedViewPager.Orientation.VERTICAL );
mCardsContainer.setOnPageChangeListener( new OnPageChangeListenerAdapter() {
+
+ private boolean mCardFlipStatus = false;
+
@Override
public void onPageSelected( int position ) {
try {
mCurrentPosition = position;
- mMogoModuleHandler.setEnable( mCardModulesAdapter.getProvider( position ).getModuleName() );
- mShadowFrame.setVisibility( View.VISIBLE );
+ final IMogoModuleProvider provider = mCardModulesAdapter.getProvider( position );
+ mMogoModuleHandler.setEnable( provider.getModuleName() );
+ if ( !isClickMarker ) {
+ mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() );
+ }
+ trackCardSelectedEvent( provider );
} catch ( Exception e ) {
e.printStackTrace();
}
}
+
+ @Override
+ public void onPageScrolled( int position, float positionOffset, int positionOffsetPixels ) {
+ super.onPageScrolled( position, positionOffset, positionOffsetPixels );
+ }
+
+ @Override
+ public void onPageScrollStateChanged( int state ) {
+ super.onPageScrollStateChanged( state );
+ if ( state == ViewPager.SCROLL_STATE_DRAGGING ) {
+ if ( !mCardFlipStatus ) {
+ mCardFlipStatus = true;
+ final IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition );
+ trackCardFlipEvent( provider );
+ }
+ } else if ( state == ViewPager.SCROLL_STATE_IDLE ) {
+ mCardFlipStatus = false;
+ }
+ }
+
+ /**
+ * 卡片展示时长埋点
+ * @param provider
+ */
+ private void trackCardSelectedEvent( IMogoModuleProvider provider ) {
+ if ( provider == null ) {
+ return;
+ }
+ Map< String, Object > properties = new HashMap<>();
+ properties.put( "appname", provider.getAppName() );
+ properties.put( "packagename", provider.getAppPackage() );
+ properties.put( "activeTime", System.currentTimeMillis() - mCardStartShowTime );
+ mAnalytics.track( "Launcher_Card_Show", properties );
+ mCardStartShowTime = System.currentTimeMillis();
+ }
+
+ /**
+ * 卡片滑动埋点,WTF
+ */
+ private void trackCardFlipEvent( IMogoModuleProvider provider ) {
+ if ( provider == null ) {
+ return;
+ }
+ Map< String, Object > properties = new HashMap<>();
+ properties.put( "appname", provider.getAppName() );
+ properties.put( "packagename", provider.getAppPackage() );
+ mAnalytics.track( "Launcher_Card_Slide", properties );
+ }
} );
- FragmentStack.getInstance().init( this, R.id.module_main_id_search_fragment );
- FragmentStack.getInstance().setFragmentStackTransactionListener( new FragmentStackTransactionListener() {
- @Override
- public void onTransaction() {
- if ( FragmentStack.getInstance().isEmpty() ) {
- show();
- } else if ( FragmentStack.getInstance().getStackSize() == 1 ) {
- hide();
- }
+ mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation( this );
+ mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment );
+ mMogoFragmentManager.registerMainFragmentStackTransactionListener( ( size ) -> {
+ if ( size == 0 ) {
+ show();
+ } else if ( size == 1 ) {
+ hide();
}
} );
mHeader = findViewById( R.id.module_main_id_header_fragment_container );
@@ -153,14 +219,11 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mMogoMapUIController = mMogoMapService.getMapUIController();
mMogoModuleHandler.loadModules();
- mMogoModuleHandler.onMapLoadedCallback( new Runnable() {
- @Override
- public void run() {
- Logger.d( TAG, "map loaded." + Thread.currentThread().getName() );
- loadModules();
- mShadowFrame.setVisibility( View.VISIBLE );
- mMogoMapUIController.setPointToCenter( 0.66145, 0.590688 );
- }
+ mMogoModuleHandler.onMapLoadedCallback( () -> {
+ Logger.d( TAG, "map loaded." + Thread.currentThread().getName() );
+ loadModules();
+ mShadowFrame.setVisibility( View.VISIBLE );
+ mMogoMapUIController.setPointToCenter( 0.66145, 0.590688 );
} );
// 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。
mMogoModuleHandler.loadMap( R.id.module_main_id_map_fragment_container );
@@ -171,6 +234,9 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mLocationClient = mMogoMapService.getSingletonLocationClient( getApplicationContext() );
mLocationClient.addLocationListener( this );
mLocationClient.start();
+
+ mMogoCardManager = ( IMogoCardManager ) ARouter.getInstance().build( MogoServicePaths.PATH_CARD_MANAGER ).navigation( this );
+ mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( this );
}
private void loadModules() {
@@ -181,6 +247,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mCardsContainer.setPageTransformer( true, new VerticalStackTransformer( this ) );
mCardsContainer.setAdapter( mCardModulesAdapter );
mCardsContainer.setCurrentItem( mCurrentPosition );
+
+ mCardStartShowTime = System.currentTimeMillis();
}
@@ -199,10 +267,12 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
public boolean onMarkerClicked( IMogoMarker marker ) {
+ isClickMarker = true;
switch2( marker.getOwner() );
if ( mMogoModuleHandler != null ) {
mMogoModuleHandler.onMarkerReceive( marker );
}
+ isClickMarker = false;
return false;
}
@@ -212,6 +282,9 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
int position = mCardModulesAdapter.getProviderPosition( cardType );
if ( position != -1 ) {
mCardsContainer.setCurrentItem( position, Math.abs( mCurrentPosition - position ) == 1 );
+ if ( !isClickMarker ) {
+ mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() );
+ }
} else {
Logger.e( TAG, "Can't find type of %s's position", cardType );
}
@@ -221,7 +294,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
public void onBackPressed() {
if ( FragmentStack.getInstance().isEmpty() ) {
- super.onBackPressed();
return;
}
FragmentStack.getInstance().pop();
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java
index 905d597035..0fe4ebc494 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java
@@ -24,14 +24,13 @@ public class MainPresenter extends Presenter< MainView > {
@Override
public void onCreate( @NonNull LifecycleOwner owner ) {
super.onCreate( owner );
- CardSwitchLiveData.getInstance().observeForever( new Observer< String >() {
- @Override
- public void onChanged( String s ) {
- if ( TextUtils.isEmpty( s ) ) {
- return;
- }
- mView.switch2( s );
+ CardSwitchLiveData.getInstance().observeForever( to -> {
+ if ( TextUtils.isEmpty( to ) ) {
+ return;
}
+ mView.switch2( to );
} );
}
+
+
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MogoCardManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MogoCardManager.java
index 5fcd499113..b34f781b5a 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MogoCardManager.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MogoCardManager.java
@@ -5,8 +5,13 @@ import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.module.main.livedata.CardSwitchLiveData;
import com.mogo.service.MogoServicePaths;
+import com.mogo.service.cardmanager.IMogoCardChangedListener;
import com.mogo.service.cardmanager.IMogoCardManager;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
/**
* @author congtaowang
* @since 2020-01-06
@@ -16,11 +21,36 @@ import com.mogo.service.cardmanager.IMogoCardManager;
@Route( path = MogoServicePaths.PATH_CARD_MANAGER )
public class MogoCardManager implements IMogoCardManager {
+ private static final Map< String, IMogoCardChangedListener > sListeners = new HashMap<>();
+
@Override
public void switch2( String cardType ) {
CardSwitchLiveData.getInstance().postValue( cardType );
}
+ @Override
+ public void registerCardChangedListener( String tag, IMogoCardChangedListener listener ) {
+ sListeners.put( tag, listener );
+ }
+
+ @Override
+ public void unregisterCardChangedListener( String tag ) {
+ sListeners.remove( tag );
+ }
+
+ @Override
+ public void invoke( int position, String moduleName ) {
+ if ( sListeners != null && !sListeners.isEmpty() ) {
+ Iterator< IMogoCardChangedListener > iterator = sListeners.values().iterator();
+ while ( iterator.hasNext() ) {
+ IMogoCardChangedListener listener = iterator.next();
+ if ( listener != null ) {
+ listener.onSwitched( position, moduleName );
+ }
+ }
+ }
+ }
+
@Override
public void init( Context context ) {
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java
index 7b58e433e1..1ca561946f 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java
@@ -77,7 +77,15 @@ public interface MogoModulesHandler extends IMogoMapListener,
/**
* 卡片接收到Marker传入数据
+ *
* @param marker marker
*/
- void onMarkerReceive(IMogoMarker marker);
+ void onMarkerReceive( IMogoMarker marker );
+
+ /**
+ * 当前卡片名称
+ *
+ * @return
+ */
+ String getCurrentModuleName();
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
index a6a4ed7bf1..dec3600f87 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
@@ -100,6 +100,9 @@ public class MogoModulesManager implements MogoModulesHandler,
for ( MogoModule module : modules ) {
IMogoModuleProvider provider = mModuleProviders.get( module );
if ( provider.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
+ if ( mEnableModuleName == null ) {
+ mEnableModuleName = provider.getModuleName();
+ }
providers.add( provider );
}
}
@@ -355,6 +358,7 @@ public class MogoModulesManager implements MogoModulesHandler,
try {
getApplicationContext().unregisterReceiver( mReceiver );
} catch ( Exception e ) {
+ e.printStackTrace();
}
}
mReceiver = null;
@@ -374,4 +378,9 @@ public class MogoModulesManager implements MogoModulesHandler,
listener.onMarkerClicked( marker );
}
}
+
+ @Override
+ public String getCurrentModuleName() {
+ return mEnableModuleName;
+ }
}
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragmentProvider.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragmentProvider.java
index 86038c722e..c817646cc3 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragmentProvider.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragmentProvider.java
@@ -81,4 +81,14 @@ public class MapFragmentProvider implements IMogoModuleProvider {
public IMogoMarkerClickListener getMarkerClickListener() {
return null;
}
+
+ @Override
+ public String getAppPackage() {
+ return null;
+ }
+
+ @Override
+ public String getAppName() {
+ return null;
+ }
}
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
index 01d71bc90c..4dcf0f939b 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
@@ -32,8 +32,9 @@ import java.util.Map;
*
* 描述
*/
-public class MapPresenter extends Presenter< MapView >
- implements IMogoIntentListener, IMogoVoiceCmdCallBack {
+public class MapPresenter extends Presenter< MapView > implements
+ IMogoIntentListener,
+ IMogoVoiceCmdCallBack {
private static final String TAG = "MapPresenter";
@@ -58,8 +59,6 @@ public class MapPresenter extends Presenter< MapView >
.build( MogoServicePaths.PATH_SEARCH_MANAGER )
.navigation( getContext() );
- registerVoiceCmd();
-
IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() );
mogoNavi.setCalculatePathDisplayBounds( new Rect(
ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.dp_730 )
@@ -84,26 +83,24 @@ public class MapPresenter extends Presenter< MapView >
}
private void registerVoiceCmd() {
- if ( VoiceConstants.sVoiceCmds.isEmpty() ) {
- Logger.w( TAG, "no unwakeup words" );
- return;
- }
for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) {
- mMogoIntentManager.registerIntentListener( entry.getKey(), this );
-// AIAssist.getInstance( getContext() ).registerUnWakeupCommand( entry.getKey(), entry.getValue(), this );
+ AIAssist.getInstance( getContext() ).registerUnWakeupCommand( entry.getKey(), entry.getValue(), this );
+ }
+
+ for ( String cmd : VoiceConstants.sCmds ) {
+ mMogoIntentManager.registerIntentListener( cmd, this );
}
}
private void unregisterVoiceCmd() {
- if ( VoiceConstants.sVoiceCmds.isEmpty() ) {
- Logger.w( TAG, "no unwakeup words" );
- return;
- }
for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) {
- mMogoIntentManager.unregisterIntentListener( entry.getKey() );
-// AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( entry.getKey(), this );
+ AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( entry.getKey(), this );
+ }
+
+ for ( String cmd : VoiceConstants.sCmds ) {
+ mMogoIntentManager.unregisterIntentListener( cmd );
}
}
@@ -118,92 +115,90 @@ public class MapPresenter extends Presenter< MapView >
@Override
public void onCmdSelected( String cmd ) {
switch ( cmd ) {
- case VoiceConstants.CMD_MAP_TRAFFIC_MODE:
case VoiceConstants.CMD_MAP_TRAFFIC_MODE_UN_WAKEUP:
+ case VoiceConstants.CMD_MAP_TRAFFIC_MODE:
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开", null );
mView.getUIController().setTrafficEnabled( true );
mSearchManager.showSearch();
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开", null );
break;
- case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE:
case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE_UN_WAKEUP:
+ case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE:
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已关闭", null );
mView.getUIController().setTrafficEnabled( false );
mSearchManager.showMain();
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已关闭", null );
break;
- case VoiceConstants.CMD_MAP_ZOOM_IN:
case VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP:
- mView.getUIController().changeZoom( true );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已放大", null );
+ case VoiceConstants.CMD_MAP_ZOOM_IN:
+ mView.getUIController().changeZoom( true );
break;
- case VoiceConstants.CMD_MAP_ZOOM_OUT:
case VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP:
AIAssist.getInstance( getContext() ).speakTTSVoice( "已缩小", null );
+ case VoiceConstants.CMD_MAP_ZOOM_OUT:
mView.getUIController().changeZoom( false );
break;
- case VoiceConstants.CMD_MAP_2D:
case VoiceConstants.CMD_MAP_2D_UN_WAKEUP:
- case VoiceConstants.CMD_MAP_NORTH_UP_MODE:
+ case VoiceConstants.CMD_MAP_2D:
case VoiceConstants.CMD_MAP_NORTH_UP_MODE_UN_WAKEUP:
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ case VoiceConstants.CMD_MAP_NORTH_UP_MODE:
mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
- case VoiceConstants.CMD_MAP_3D:
case VoiceConstants.CMD_MAP_3D_UN_WAKEUP:
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ case VoiceConstants.CMD_MAP_3D:
mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
- case VoiceConstants.CMD_MAP_DAY_TIME_MODE:
case VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP:
- mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ case VoiceConstants.CMD_MAP_DAY_TIME_MODE:
+ mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
break;
- case VoiceConstants.CMD_MAP_GO_COMPANY:
case VoiceConstants.CMD_MAP_GO_COMPANY_UN_WAKEUP:
+ case VoiceConstants.CMD_MAP_GO_COMPANY:
mSearchManager.goCompany();
break;
- case VoiceConstants.CMD_MAP_GO_HOME:
case VoiceConstants.CMD_MAP_GO_HOME_UN_WAKEUP:
+ case VoiceConstants.CMD_MAP_GO_HOME:
mSearchManager.goHome();
break;
- case VoiceConstants.CMD_MAP_HISTORY:
case VoiceConstants.CMD_MAP_HISTORY_UN_WAKEUP:
+ case VoiceConstants.CMD_MAP_HISTORY:
mSearchManager.showSearch();
break;
- case VoiceConstants.CMD_MAP_STOP_NAVI_MODE:
case VoiceConstants.CMD_MAP_STOP_NAVI_MODE_UN_WAKEUP:
+ case VoiceConstants.CMD_MAP_STOP_NAVI_MODE:
mSearchManager.showMain();
break;
- case VoiceConstants.CMD_MAP_NIGHT_MODE:
case VoiceConstants.CMD_MAP_NIGHT_MODE_UN_WAKEUP:
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ case VoiceConstants.CMD_MAP_NIGHT_MODE:
mView.getUIController().changeMapMode( EnumMapUI.Type_Night );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
- case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE:
case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE_UN_WAKEUP:
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE:
mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night );
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
- case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE:
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE_UN_WAKEUP:
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE:
mView.getUIController().displayOverview();
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
- case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE:
case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE_UN_WAKEUP:
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
+ case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE:
mView.getUIController().recoverLockMode();
- AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
- case VoiceConstants.CMD_MAP_CAR_UP_MODE:
case VoiceConstants.CMD_MAP_CAR_UP_MODE_UN_WAKEUP:
- mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
- break;
- default:
+ case VoiceConstants.CMD_MAP_CAR_UP_MODE:
+ mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
break;
}
}
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java
index df5fb4dde7..6ae747efef 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java
@@ -1,6 +1,8 @@
package com.mogo.module.map;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -24,14 +26,14 @@ public class VoiceConstants {
*/
public static final String CMD_MAP_GO_HOME = "com.ileja.navi.map.go.home";
public static final String CMD_MAP_GO_HOME_UN_WAKEUP = "CMD_MAP_GO_HOME_UN_WAKEUP";
- public static final String[] CMD_MAP_ZOOM_IN_GO_HOME = {"我要回家","导航回家","带我回家"};
+ public static final String[] CMD_MAP_ZOOM_IN_GO_HOME = {"我要回家", "导航回家", "带我回家"};
/**
* 去公司
*/
public static final String CMD_MAP_GO_COMPANY = "com.ileja.navi.map.go.company";
public static final String CMD_MAP_GO_COMPANY_UN_WAKEUP = "CMD_MAP_GO_COMPANY_UN_WAKEUP";
- public static final String[] CMD_MAP_ZOOM_IN_GO_COMPANY = {"我要去公司","导航去公司","带我去公司"};
+ public static final String[] CMD_MAP_ZOOM_IN_GO_COMPANY = {"我要去公司", "导航去公司", "带我去公司"};
/**
* 导航历史记录
@@ -41,7 +43,6 @@ public class VoiceConstants {
public static final String[] CMD_MAP_HISTORY_TRIGGER_WORDS = {"查询导航历史记录"};
-
/**
* 缩小地图
*/
@@ -129,20 +130,22 @@ public class VoiceConstants {
/**
* 车头朝上
*/
- public static final String CMD_MAP_CAR_UP_MODE = "com.ileja.navi.mode.car_up";
+ public static final String CMD_MAP_CAR_UP_MODE = "com.ileja.traffic.head.up";
public static final String CMD_MAP_CAR_UP_MODE_UN_WAKEUP = "CMD_MAP_CAR_UP_MODE_UN_WAKEUP";
public static final String[] CMD_MAP_CAR_UP_MODE_TRIGGER_WORDS = {"车头朝上"};
/**
* 北朝上
*/
- public static final String CMD_MAP_NORTH_UP_MODE = "com.ileja.navi.mode.north_up";
+ public static final String CMD_MAP_NORTH_UP_MODE = "com.ileja.traffic.north.up";
public static final String CMD_MAP_NORTH_UP_MODE_UN_WAKEUP = "CMD_MAP_NORTH_UP_MODE_UN_WAKEUP";
public static final String[] CMD_MAP_NORTH_UP_MODE_TRIGGER_WORDS = {"北朝上"};
public static final Map< String, String[] > sVoiceCmds = new HashMap<>();
+ public static final List< String > sCmds = new ArrayList<>();
static {
+ // 免唤醒
sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_IN_TRIGGER_WORDS );
sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_OUT_TRIGGER_WORDS );
sVoiceCmds.put( VoiceConstants.CMD_MAP_2D_UN_WAKEUP, VoiceConstants.CMD_MAP_2D_TRIGGER_WORDS );
@@ -161,5 +164,23 @@ public class VoiceConstants {
sVoiceCmds.put( VoiceConstants.CMD_MAP_HISTORY_UN_WAKEUP, VoiceConstants.CMD_MAP_HISTORY_TRIGGER_WORDS );
sVoiceCmds.put( VoiceConstants.CMD_MAP_STOP_NAVI_MODE_UN_WAKEUP, VoiceConstants.CMD_MAP_STOP_NAVI_MODE_TRIGGER_WORDS );
sVoiceCmds.put( VoiceConstants.CMD_MAP_GEO_NEARBY_WAKEUP, VoiceConstants.CMD_MAP_GEO_NEARBY_TRIGGER_WORDS );
+ // 唤醒
+ sCmds.add( VoiceConstants.CMD_MAP_ZOOM_IN );
+ sCmds.add( VoiceConstants.CMD_MAP_ZOOM_OUT );
+ sCmds.add( VoiceConstants.CMD_MAP_2D );
+ sCmds.add( VoiceConstants.CMD_MAP_3D );
+ sCmds.add( VoiceConstants.CMD_MAP_DAY_TIME_MODE );
+ sCmds.add( VoiceConstants.CMD_MAP_NIGHT_MODE );
+ sCmds.add( VoiceConstants.CMD_MAP_TRAFFIC_MODE );
+ sCmds.add( VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE );
+ sCmds.add( VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE );
+ sCmds.add( VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE );
+ sCmds.add( VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE );
+ sCmds.add( VoiceConstants.CMD_MAP_CAR_UP_MODE );
+ sCmds.add( VoiceConstants.CMD_MAP_NORTH_UP_MODE );
+ sCmds.add( VoiceConstants.CMD_MAP_GO_HOME );
+ sCmds.add( VoiceConstants.CMD_MAP_GO_COMPANY );
+ sCmds.add( VoiceConstants.CMD_MAP_HISTORY );
+ sCmds.add( VoiceConstants.CMD_MAP_STOP_NAVI_MODE );
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
index 73b4798ea3..5721a7b94a 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
@@ -67,6 +67,9 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
)
}
+ // 是否开启导航
+ var isStartedNavi = false
+
override fun onViewCreated(
view: View,
savedInstanceState: Bundle?
@@ -96,6 +99,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
tv_navi_navi.setOnClickListener {
SearchServiceHolder.getNavi()
.startNavi(false)
+ isStartedNavi = true
SearchServiceHolder.fragmentManager.clearAll()
}
@@ -122,10 +126,12 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
SearchServiceHolder.statusManager.setSearchUIShow(
MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, false
)
- SearchServiceHolder.getNavi()
- .clearCalculatePaths()
+ if (!isStartedNavi) {
+ SearchServiceHolder.getNavi().clearCalculatePaths()
+ }
}
+
companion object {
fun newInstance(searchPoi: MogoLatLng): Fragment {
var bundle = Bundle()
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java
index c55cf62928..4bd1f58d00 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java
@@ -79,4 +79,14 @@ public class SearchFragmentProvider implements IMogoModuleProvider {
public IMogoMarkerClickListener getMarkerClickListener() {
return null;
}
+
+ @Override
+ public String getAppPackage() {
+ return null;
+ }
+
+ @Override
+ public String getAppName() {
+ return null;
+ }
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
index 4686b82471..28a9cf8288 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
@@ -14,12 +14,17 @@ import com.mogo.module.common.entity.MarkerCarChat;
import com.mogo.module.common.entity.MarkerCardResult;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerLocation;
+import com.mogo.module.common.entity.MarkerNoveltyInfo;
import com.mogo.module.common.entity.MarkerOnlineCar;
+import com.mogo.module.common.entity.MarkerPoiTypeEnum;
import com.mogo.module.common.entity.MarkerResponse;
import com.mogo.module.common.entity.MarkerShareMusic;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.service.marker.MapMarkerAdapter;
import com.mogo.service.MogoServicePaths;
+import com.mogo.service.analytics.IMogoAnalytics;
+import com.mogo.service.cardmanager.IMogoCardChangedListener;
+import com.mogo.service.cardmanager.IMogoCardManager;
import com.mogo.service.connection.IMogoOnMessageListener;
import com.mogo.service.connection.IMogoSocketManager;
import com.mogo.service.imageloader.IMogoImageloader;
@@ -27,7 +32,9 @@ import com.mogo.service.map.IMogoMapService;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.utils.logger.Logger;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* author : donghongyu
@@ -49,6 +56,8 @@ public class MarkerServiceHandler {
private static IMogoStatusManager mMogoStatusManager;
private static IMogoImageloader mImageloader;
private static IMogoSocketManager mMogoSocketManager;
+ private static IMogoCardManager mMogoCardManager;
+ private static IMogoAnalytics mMogoAnalytics;
private static Context mContext;
@@ -57,14 +66,17 @@ public class MarkerServiceHandler {
mMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(context);
mImageloader = (IMogoImageloader) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_IMAGE_LOADER).navigation(context);
mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_MANAGER).navigation(context);
+ mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_MANAGER).navigation(context);
+ mMogoSocketManager = (IMogoSocketManager) ARouter.getInstance().build(MogoServicePaths.PATH_SOCKET_MANAGER).navigation();
+ mMogoCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation();
+ mMogoAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation();
+
mMarkerManager = mMapService.getMarkerManager(context);
mNavi = mMapService.getNavi(context);
mMapUIController = mMapService.getMapUIController();
-
mogoMarkerClickListener = new MoGoMarkerClickListener();
// 长连接
- mMogoSocketManager = (IMogoSocketManager) ARouter.getInstance().build(MogoServicePaths.PATH_SOCKET_MANAGER).navigation();
mMogoSocketManager.registerOnMessageListener(401001, new IMogoOnMessageListener() {
@Override
@@ -80,6 +92,15 @@ public class MarkerServiceHandler {
}
}
});
+
+ getMogoCardManager().registerCardChangedListener("LAUNCHER_MARKER_MODULE", new IMogoCardChangedListener() {
+
+ @Override
+ public void onSwitched(int position, String moduleName) {
+ Logger.e(TAG, "======moduleName:" + moduleName);
+ highlightedMarker(moduleName);
+ }
+ });
}
public static IMogoMapService getMapService() {
@@ -110,6 +131,13 @@ public class MarkerServiceHandler {
return mMogoStatusManager;
}
+ public static IMogoCardManager getMogoCardManager() {
+ return mMogoCardManager;
+ }
+
+ public static IMogoAnalytics getMogoAnalytics() {
+ return mMogoAnalytics;
+ }
private static IMogoMarker lastMarker;
@@ -121,37 +149,112 @@ public class MarkerServiceHandler {
@Override
public boolean onMarkerClicked(IMogoMarker marker) {
Logger.e(TAG, "onMarkerClicked 点击了大而全中的Marker:" + marker);
- if (lastMarker != null) {
- // 判断点击的是否是同一个
- if (marker.equals(lastMarker)) {
- Logger.w(TAG, "onMarkerClicked 与上一次点击的Marker一样,不做处理:" + marker);
- return false;
+ try {
+ if (lastMarker != null) {
+ // 判断点击的是否是同一个
+ if (marker.equals(lastMarker)) {
+ Logger.w(TAG, "onMarkerClicked 与上一次点击的Marker一样,不做处理:" + marker);
+ return false;
+ }
+
+ // 将上次选中 Marker 设置为未选中状态
+ MarkerShowEntity lastMarkerShowEntity = (MarkerShowEntity) lastMarker.getObject();
+
+ Logger.e(TAG, "onMarkerClicked 点击了大而全中的Marker lastMarkerShowEntity:" + lastMarkerShowEntity);
+
+ lastMarkerShowEntity.setChecked(false);
+ lastMarkerShowEntity.setHighlighted(false);
+
+ drawMapMarker(lastMarkerShowEntity);
+
+ lastMarker.remove();
}
- // 将上次选中 Marker 设置为未选中状态
- MarkerShowEntity lastMarkerShowEntity = (MarkerShowEntity) lastMarker.getObject();
+ // 将当前的Marker设置为选中
+ MarkerShowEntity markerShowEntity = (MarkerShowEntity) marker.getObject();
+ Logger.e(TAG, "onMarkerClicked 点击了大而全中的Marker markerShowEntity:" + markerShowEntity);
- Logger.e(TAG, "onMarkerClicked 点击了大而全中的Marker lastMarkerShowEntity:" + lastMarkerShowEntity);
+ markerShowEntity.setChecked(true);
+ markerShowEntity.setHighlighted(true);
- lastMarkerShowEntity.setChecked(false);
- drawMapMarker(lastMarkerShowEntity);
+ lastMarker = drawMapMarker(markerShowEntity);
+ if (lastMarker != null) {
+ lastMarker.setAlpha(1f);
+ }
- lastMarker.remove();
+ marker.remove();
+
+ final Map properties = new HashMap<>();
+ switch (lastMarker.getOwner()) {
+ case ServiceConst.CARD_TYPE_CARS_CHATTING:
+ properties.put("type", 3);
+ break;
+ case ServiceConst.CARD_TYPE_USER_DATA:
+ properties.put("type", 5);
+ break;
+ case ServiceConst.CARD_TYPE_ROAD_CONDITION:
+ properties.put("type", 2);
+ break;
+ case ServiceConst.CARD_TYPE_NOVELTY:
+ MarkerShowEntity showEntity = (MarkerShowEntity) lastMarker.getObject();
+ Object bindObj = showEntity.getBindObj();
+ if (bindObj instanceof MarkerNoveltyInfo) {
+ switch (((MarkerNoveltyInfo) bindObj).getPoiType()) {
+ case MarkerPoiTypeEnum.GAS_STATION:
+ properties.put("type", 4);
+ break;
+ case MarkerPoiTypeEnum.TRAFFIC_CHECK:
+ properties.put("type", 8);
+ break;
+ case MarkerPoiTypeEnum.ROAD_CLOSED:
+ properties.put("type", 7);
+ break;
+ case MarkerPoiTypeEnum.SHOP_DISCOUNT:
+ properties.put("type", 9);
+ break;
+ case MarkerPoiTypeEnum.FOURS_SHOP:
+ properties.put("type", 10);
+ break;
+ }
+ }
+ break;
+ case ServiceConst.CARD_TYPE_SHARE_MUSIC:
+ properties.put("type", 6);
+ break;
+ }
+
+ getMogoAnalytics().track("Launcher_Icon_Click", properties);
+
+ } catch (Exception e) {
+ e.printStackTrace();
}
-
- // 将当前的Marker设置为选中
- MarkerShowEntity markerShowEntity = (MarkerShowEntity) marker.getObject();
- Logger.e(TAG, "onMarkerClicked 点击了大而全中的Marker markerShowEntity:" + markerShowEntity);
-
- markerShowEntity.setChecked(true);
-
- lastMarker = drawMapMarker(markerShowEntity);
-
- marker.remove();
return false;
}
}
+ // 对指定类型高亮处理
+ public static void highlightedMarker(String typeTag) {
+ try {
+ Map> allMarker = getMarkerManager().getAllMarkers();
+ for (Map.Entry> entry : allMarker.entrySet()) {
+ String keyStr = entry.getKey();
+ List markerList = entry.getValue();
+
+ 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();
+ }
+
+ }
/**
* 绘制Marker
@@ -164,13 +267,14 @@ public class MarkerServiceHandler {
if (response != null && response.getResult() != null) {
MarkerCardResult markerCardResult = response.getResult();
- List carChat = markerCardResult.getCarChat();
- List onlineCar = markerCardResult.getOnlineCar();
- List exploreWay = markerCardResult.getExploreWay();
- List shareMusic = markerCardResult.getShareMusic();
+ List carChatList = markerCardResult.getCarChat();
+ List onlineCarList = markerCardResult.getOnlineCar();
+ List exploreWayList = markerCardResult.getExploreWay();
+ List shareMusicList = markerCardResult.getShareMusic();
+ List noveltyInfoList = markerCardResult.getNoveltyInfo();
- if (carChat != null) {
- for (MarkerCarChat markerCarChat : carChat) {
+ if (carChatList != null) {
+ for (MarkerCarChat markerCarChat : carChatList) {
MarkerLocation markerLocation = markerCarChat.getLocation();
MarkerShowEntity markerShowEntity = new MarkerShowEntity();
@@ -184,8 +288,8 @@ public class MarkerServiceHandler {
}
}
- if (onlineCar != null) {
- for (MarkerOnlineCar markerOnlineCar : onlineCar) {
+ if (onlineCarList != null) {
+ for (MarkerOnlineCar markerOnlineCar : onlineCarList) {
MarkerLocation markerLocation = markerOnlineCar.getLocation();
MarkerShowEntity markerShowEntity = new MarkerShowEntity();
@@ -197,10 +301,11 @@ public class MarkerServiceHandler {
drawMapMarker(markerShowEntity);
}
+ analyticData(3, onlineCarList.size());
}
- if (exploreWay != null) {
- for (MarkerExploreWay markerExploreWay : exploreWay) {
+ if (exploreWayList != null) {
+ for (MarkerExploreWay markerExploreWay : exploreWayList) {
if (!markerExploreWay.getCanLive()) {
MarkerLocation markerLocation = markerExploreWay.getLocation();
@@ -213,10 +318,11 @@ public class MarkerServiceHandler {
drawMapMarker(markerShowEntity);
}
}
+ analyticData(1, exploreWayList.size());
}
- if (shareMusic != null) {
- for (MarkerShareMusic markerShareMusic : shareMusic) {
+ if (shareMusicList != null) {
+ for (MarkerShareMusic markerShareMusic : shareMusicList) {
MarkerLocation markerLocation = markerShareMusic.getLocation();
MarkerShowEntity markerShowEntity = new MarkerShowEntity();
@@ -228,53 +334,99 @@ public class MarkerServiceHandler {
drawMapMarker(markerShowEntity);
}
+ analyticData(4, shareMusicList.size());
}
+ if (noveltyInfoList != null) {
+ int num_gas_station = 0;
+ int num_traffic_check = 0;
+ int num_road_closed = 0;
+ int num_shop_discount = 0;
+ int num_fours_shop = 0;
+
+ for (MarkerNoveltyInfo noveltyInfo : noveltyInfoList) {
+ MarkerLocation markerLocation = noveltyInfo.getLocation();
+
+ MarkerShowEntity markerShowEntity = new MarkerShowEntity();
+ markerShowEntity.setBindObj(noveltyInfo);
+ markerShowEntity.setMarkerLocation(markerLocation);
+ markerShowEntity.setMarkerType(noveltyInfo.getType());
+ markerShowEntity.setTextContent(noveltyInfo.getLocation().getAddress());
+
+ drawMapMarker(markerShowEntity);
+
+ switch (noveltyInfo.getPoiType()) {
+ case MarkerPoiTypeEnum.GAS_STATION:
+ num_gas_station++;
+ break;
+ case MarkerPoiTypeEnum.TRAFFIC_CHECK:
+ num_traffic_check++;
+ break;
+ case MarkerPoiTypeEnum.ROAD_CLOSED:
+ num_road_closed++;
+ break;
+ case MarkerPoiTypeEnum.SHOP_DISCOUNT:
+ num_shop_discount++;
+ break;
+ case MarkerPoiTypeEnum.FOURS_SHOP:
+ num_fours_shop++;
+ break;
+ }
+ }
+ analyticData(2, num_gas_station);
+ analyticData(6, num_road_closed);
+ analyticData(5, num_traffic_check);
+ analyticData(7, num_shop_discount);
+ analyticData(8, num_fours_shop);
+ }
}
- getMapUIController().changeZoom(10);
+ getMapUIController().changeZoom(12);
}
/**
- * 绘制Marker
+ * 统计地图内数据获取
+ *
+ * @param type 类型
+ * @param num marker数量
+ */
+ private static void analyticData(int type, int num) {
+ try {
+ final Map properties = new HashMap<>();
+ properties.put("type", type);
+ properties.put("num", num);
+ getMogoAnalytics().track("Launcher_Data_Get", properties);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 绘制Marker,这里绘制的会使用markerShowEntities队列进行维护
*/
public static IMogoMarker drawMapMarker(MarkerShowEntity markerShowEntity) {
- Logger.e(TAG, "绘制Marker====markerTag:" + markerShowEntity);
+ Logger.e(TAG, "绘制Marker====drawMapMarker:" + markerShowEntity);
+ try {
+ if (markerShowEntity.getMarkerLocation() != null) {
+ View markerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity);
- if (markerShowEntity.getMarkerLocation() != null) {
- View markerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity);
+ MogoMarkerOptions options = new MogoMarkerOptions()
+ .owner(markerShowEntity.getMarkerType())
+ .latitude(markerShowEntity.getMarkerLocation().getLat())
+ .longitude(markerShowEntity.getMarkerLocation().getLon());
+ options.icon(markerView);
- MogoMarkerOptions options = new MogoMarkerOptions()
- .owner(markerShowEntity.getMarkerType())
- .latitude(markerShowEntity.getMarkerLocation().getLat())
- .longitude(markerShowEntity.getMarkerLocation().getLon());
- options.icon(markerView);
-
- IMogoMarker marker = getMarkerManager().addMarker(markerShowEntity.getMarkerType(), options);
- marker.setOnMarkerClickListener(mogoMarkerClickListener);
- marker.setObject(markerShowEntity);
- return marker;
- } else {
- Logger.e(TAG, "Location 必须进行初始化!!!!!");
+ IMogoMarker marker = getMarkerManager().addMarker(markerShowEntity.getMarkerType(), options);
+ marker.setOnMarkerClickListener(mogoMarkerClickListener);
+ marker.setObject(markerShowEntity);
+ marker.setAlpha(0.7f);
+ return marker;
+ } else {
+ Logger.e(TAG, "Location 必须进行初始化!!!!!");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
}
return null;
}
-
- //TODO 这里是用来测试的
- public static void drawMapMarker() {
-// Logger.e(TAG, "=====绘制Marker====");
-//
-// MapMarkerView mapMarkerView = new MapMarkerView(mContext);
-//
-// MogoMarkerOptions options = new MogoMarkerOptions()
-// .icon(mapMarkerView)
-// .owner("CARD_TYPE_USER_DATA")
-// .latitude(39.574525d + new Random().nextDouble())
-// .longitude(116.21733d + new Random().nextDouble());
-// IMogoMarker marker = getMarkerManager().addMarker("CARD_TYPE_USER_DATA", options);
-// marker.setOnMarkerClickListener(mogoMarkerClickListener);
-// marker.setObject("我是Marker上面绑定的数据");
-//
-// getMapUIController().changeZoom(8);
- }
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
index cb76e39465..89feb55cb7 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
@@ -472,12 +472,10 @@ public class MogoServiceProvider implements IMogoModuleProvider,
@Override
public void onStartNavi() {
-
}
@Override
public void onStopNavi() {
-
}
@Override
@@ -527,4 +525,14 @@ public class MogoServiceProvider implements IMogoModuleProvider,
mStatusManager.setADASUIShow( getModuleName(), status == 1 );
}
}
+
+ @Override
+ public String getAppPackage() {
+ return null;
+ }
+
+ @Override
+ public String getAppName() {
+ return null;
+ }
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
index dc6877a773..596b6507b5 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
@@ -47,4 +47,9 @@ public class ServiceConst {
*/
public static final String CARD_TYPE_USER_DATA = "CARD_TYPE_USER_DATA";
+ /**
+ * 卡片 新鲜事
+ */
+ public static final String CARD_TYPE_NOVELTY = "CARD_TYPE_NOVELTY";
+
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerBaseView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerBaseView.java
index 04127ff0f4..44a2edbc7b 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerBaseView.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerBaseView.java
@@ -11,6 +11,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.service.MarkerServiceHandler;
+import com.mogo.module.service.R;
import com.mogo.service.imageloader.IMogoImageLoaderListener;
import com.mogo.service.imageloader.MogoImageView;
import com.mogo.utils.WindowUtils;
@@ -29,7 +30,7 @@ public abstract class MapMarkerBaseView extends ConstraintLayout {
protected Context mContext;
protected MogoImageView ivUserHead;
- protected ImageView ivIconForeground;
+ protected ImageView ivIcon;
protected ImageView ivCar;
public MapMarkerBaseView(Context context) {
@@ -55,6 +56,7 @@ public abstract class MapMarkerBaseView extends ConstraintLayout {
public abstract void updateView(MarkerShowEntity markerShowEntity);
protected void loadImageWithMarker(MarkerShowEntity markerShowEntity) {
+
if (!TextUtils.isEmpty(markerShowEntity.getIconUrl())) {
MarkerServiceHandler
.getImageloader()
@@ -69,15 +71,17 @@ public abstract class MapMarkerBaseView extends ConstraintLayout {
@Override
public void onCompleted(Bitmap bitmap) {
- // 刷新图标
- Logger.d(TAG, "loaded.");
+ Logger.d(TAG, "loadImageWithMarker loaded.");
}
@Override
public void onFailure(Exception e) {
-
+ Logger.e(TAG, "loadImageWithMarker onFailure.");
}
});
+ } else {
+ ivUserHead.setBackgroundResource(R.drawable.icon_default_user_head);
}
+
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java
index 59a065fc77..9d7bc1fd75 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java
@@ -11,7 +11,9 @@ import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
+import com.mogo.module.common.entity.MarkerNoveltyInfo;
import com.mogo.module.common.entity.MarkerOnlineCar;
+import com.mogo.module.common.entity.MarkerPoiTypeEnum;
import com.mogo.module.common.entity.MarkerShareMusic;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.service.R;
@@ -28,7 +30,7 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
private String TAG = "MapMarkerInfoView";
private TextView tvMarkerContent;
- private ConstraintLayout llMarkerContent;
+ private ConstraintLayout clMarkerContent;
private ImageView ivReverseTriangle;
public MapMarkerInfoView(Context context) {
@@ -51,8 +53,8 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
protected void initView(Context context) {
LayoutInflater.from(context).inflate(R.layout.view_map_marker_info, this);
ivUserHead = findViewById(R.id.ivUserHead);
- ivIconForeground = findViewById(R.id.ivIconForeground);
- llMarkerContent = findViewById(R.id.llMarkerContent);
+ ivIcon = findViewById(R.id.ivIcon);
+ clMarkerContent = findViewById(R.id.clMarkerContent);
ivReverseTriangle = findViewById(R.id.ivReverseTriangle);
ivCar = findViewById(R.id.ivCar);
tvMarkerContent = findViewById(R.id.tvMarkerContent);
@@ -64,53 +66,103 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
Object bindObj = markerShowEntity.getBindObj();
switch (markerShowEntity.getMarkerType()) {
- case ServiceConst
- .CARD_TYPE_CARS_CHATTING:
- ivIconForeground.setVisibility(View.GONE);
- case ServiceConst
- .CARD_TYPE_USER_DATA:
- ivIconForeground.setVisibility(View.GONE);
+ case ServiceConst.CARD_TYPE_CARS_CHATTING:
+ case ServiceConst.CARD_TYPE_USER_DATA:
+ ivUserHead.setVisibility(View.VISIBLE);
+ ivIcon.setVisibility(View.INVISIBLE);
+ loadImageWithMarker(markerShowEntity);
+ ivCar.setImageResource(R.drawable.icon_map_marker_car_blue);
+ ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
if (bindObj instanceof MarkerOnlineCar) {
if (((MarkerOnlineCar) bindObj).getUserInfo().getGenderValue() == 0) {
- llMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info);
+ clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info);
ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue);
} else {
- llMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_purple_info);
+ clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_purple_info);
ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_purple);
}
}
- loadImageWithMarker(markerShowEntity);
+
break;
- case ServiceConst
- .CARD_TYPE_ROAD_CONDITION:
+ case ServiceConst.CARD_TYPE_ROAD_CONDITION:
+ ivUserHead.setVisibility(View.INVISIBLE);
+ ivIcon.setVisibility(View.VISIBLE);
+
+ ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up);
+ clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info);
+ ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue);
+ ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
break;
- case ServiceConst
- .CARD_TYPE_SHARE_MUSIC:
+ case ServiceConst.CARD_TYPE_NOVELTY:
+ ivUserHead.setVisibility(View.INVISIBLE);
+ ivIcon.setVisibility(View.VISIBLE);
+ ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
+
+ if (bindObj instanceof MarkerNoveltyInfo) {
+ switch (((MarkerNoveltyInfo) bindObj).getPoiType()) {
+ case MarkerPoiTypeEnum.GAS_STATION:
+ ivIcon.setImageResource(R.drawable.icon_map_marker_refuel);
+ clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_orange_info);
+ ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_orange);
+ break;
+ case MarkerPoiTypeEnum.TRAFFIC_CHECK:
+ ivIcon.setImageResource(R.drawable.icon_map_marker_road_check);
+ clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_green_info);
+ ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_green);
+ break;
+ case MarkerPoiTypeEnum.ROAD_CLOSED:
+ ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_off);
+ clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info);
+ ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue);
+ break;
+ case MarkerPoiTypeEnum.SHOP_DISCOUNT:
+
+ break;
+ case MarkerPoiTypeEnum.FOURS_SHOP:
+
+ break;
+ default:
+ ivIcon.setImageResource(R.drawable.icon_map_marker_road_check);
+ clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_green_info);
+ ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_green);
+ break;
+ }
+ }
+ break;
+ case ServiceConst.CARD_TYPE_SHARE_MUSIC:
+ ivUserHead.setVisibility(View.INVISIBLE);
+ ivIcon.setVisibility(View.VISIBLE);
+
+ clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_purple_info);
+ ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_purple);
+ ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
+
if (bindObj instanceof MarkerShareMusic) {
// 2 为书籍听书,3 为新闻,1 为qq音乐,int
switch (((MarkerShareMusic) bindObj).getShareType()) {
case 1:
- ivUserHead.setImageResource(R.drawable.icon_map_marker_misic);
+ ivIcon.setImageResource(R.drawable.icon_map_marker_misic);
break;
case 2:
- ivUserHead.setImageResource(R.drawable.icon_map_marker_book);
+ ivIcon.setImageResource(R.drawable.icon_map_marker_book);
break;
case 3:
- ivUserHead.setImageResource(R.drawable.icon_map_marker_news);
+ ivIcon.setImageResource(R.drawable.icon_map_marker_news);
break;
}
}
-// ivIconForeground.setVisibility(View.VISIBLE);
- llMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_purple_info);
- ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_purple);
break;
}
-
- ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
if (!TextUtils.isEmpty(markerShowEntity.getTextContent())) {
- tvMarkerContent.setText(markerShowEntity.getTextContent());
+ String content;
+ if (markerShowEntity.getTextContent().length() > 8) {
+ content = markerShowEntity.getTextContent().substring(0, 7) + "...";
+ } else {
+ content = markerShowEntity.getTextContent();
+ }
+ tvMarkerContent.setText(content);
}
} catch (Exception e) {
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java
index e3c2114314..65e52f9ed9 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java
@@ -8,7 +8,9 @@ import android.widget.ImageView;
import androidx.annotation.Nullable;
+import com.mogo.module.common.entity.MarkerNoveltyInfo;
import com.mogo.module.common.entity.MarkerOnlineCar;
+import com.mogo.module.common.entity.MarkerPoiTypeEnum;
import com.mogo.module.common.entity.MarkerShareMusic;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.service.R;
@@ -44,11 +46,9 @@ public class MapMarkerView extends MapMarkerBaseView {
}
protected void initView(Context context) {
- setBackground(null);
-
LayoutInflater.from(context).inflate(R.layout.view_map_marker, this);
ivUserHead = findViewById(R.id.ivUserHead);
- ivIconForeground = findViewById(R.id.ivIconForeground);
+ ivIcon = findViewById(R.id.ivIcon);
ivCar = findViewById(R.id.ivCar);
ivBg = findViewById(R.id.ivBg);
}
@@ -56,14 +56,14 @@ public class MapMarkerView extends MapMarkerBaseView {
public void updateView(MarkerShowEntity markerShowEntity) {
try {
Object bindObj = markerShowEntity.getBindObj();
-
switch (markerShowEntity.getMarkerType()) {
- case ServiceConst
- .CARD_TYPE_CARS_CHATTING:
- ivIconForeground.setVisibility(View.GONE);
- case ServiceConst
- .CARD_TYPE_USER_DATA:
- ivIconForeground.setVisibility(View.GONE);
+ case ServiceConst.CARD_TYPE_CARS_CHATTING:
+ case ServiceConst.CARD_TYPE_USER_DATA:
+ ivUserHead.setVisibility(View.VISIBLE);
+ ivIcon.setVisibility(View.INVISIBLE);
+ loadImageWithMarker(markerShowEntity);
+ ivCar.setImageResource(R.drawable.icon_map_marker_car_blue);
+ ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
if (bindObj instanceof MarkerOnlineCar) {
if (((MarkerOnlineCar) bindObj).getUserInfo().getGenderValue() == 0) {
@@ -72,33 +72,71 @@ public class MapMarkerView extends MapMarkerBaseView {
ivBg.setImageResource(R.drawable.bg_map_marker_purple);
}
}
- loadImageWithMarker(markerShowEntity);
break;
- case ServiceConst
- .CARD_TYPE_ROAD_CONDITION:
+ case ServiceConst.CARD_TYPE_ROAD_CONDITION:
+ ivUserHead.setVisibility(View.INVISIBLE);
+ ivIcon.setVisibility(View.VISIBLE);
+
+ ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up);
+ ivBg.setImageResource(R.drawable.bg_map_marker_blue);
+ ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
break;
- case ServiceConst
- .CARD_TYPE_SHARE_MUSIC:
+ case ServiceConst.CARD_TYPE_NOVELTY:
+ ivUserHead.setVisibility(View.INVISIBLE);
+ ivIcon.setVisibility(View.VISIBLE);
+
+ ivBg.setImageResource(R.drawable.bg_map_marker_green);
+ ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
+
+ if (bindObj instanceof MarkerNoveltyInfo) {
+ switch (((MarkerNoveltyInfo) bindObj).getPoiType()) {
+ case MarkerPoiTypeEnum.GAS_STATION:
+ ivIcon.setImageResource(R.drawable.icon_map_marker_refuel);
+ ivBg.setImageResource(R.drawable.bg_map_marker_oragne);
+ break;
+ case MarkerPoiTypeEnum.TRAFFIC_CHECK:
+ ivIcon.setImageResource(R.drawable.icon_map_marker_road_check);
+ ivBg.setImageResource(R.drawable.bg_map_marker_green);
+ break;
+ case MarkerPoiTypeEnum.ROAD_CLOSED:
+ ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_off);
+ ivBg.setImageResource(R.drawable.bg_map_marker_dark_blue);
+ break;
+ case MarkerPoiTypeEnum.SHOP_DISCOUNT:
+
+ break;
+ case MarkerPoiTypeEnum.FOURS_SHOP:
+
+ break;
+ default:
+ ivIcon.setImageResource(R.drawable.icon_map_marker_road_check);
+ ivBg.setImageResource(R.drawable.bg_map_marker_green);
+ break;
+ }
+ }
+ break;
+ case ServiceConst.CARD_TYPE_SHARE_MUSIC:
+ ivUserHead.setVisibility(View.INVISIBLE);
+ ivIcon.setVisibility(View.VISIBLE);
+ ivBg.setImageResource(R.drawable.bg_map_marker_purple);
+ ivCar.setImageResource(R.drawable.icon_map_marker_location_blue);
+
if (bindObj instanceof MarkerShareMusic) {
// 2 为书籍听书,3 为新闻,1 为qq音乐,int
switch (((MarkerShareMusic) bindObj).getShareType()) {
case 1:
- ivUserHead.setImageResource(R.drawable.icon_map_marker_misic);
+ ivIcon.setImageResource(R.drawable.icon_map_marker_misic);
break;
case 2:
- ivUserHead.setImageResource(R.drawable.icon_map_marker_book);
+ ivIcon.setImageResource(R.drawable.icon_map_marker_book);
break;
case 3:
- ivUserHead.setImageResource(R.drawable.icon_map_marker_news);
+ ivIcon.setImageResource(R.drawable.icon_map_marker_news);
break;
}
}
-
-// ivIconForeground.setVisibility(View.VISIBLE);
- ivBg.setImageResource(R.drawable.bg_map_marker_purple);
break;
}
- ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
} catch (Exception e) {
e.printStackTrace();
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
index f2f2200a00..a30ca0e83b 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
@@ -57,7 +57,7 @@ public class RefreshModel {
if ( mRefreshApiService != null ) {
final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build();
final RefreshBody refreshBody = new RefreshBody();
- refreshBody.limit = 20;
+ refreshBody.limit = 5;
refreshBody.location = new RefreshBody.LatLon( latLng.lat, latLng.lng );
refreshBody.radius = radius;
query.put( "data", GsonUtil.jsonFromObject( refreshBody ) );
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_blue.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_blue.png
index d1e30fb103..29a7b70972 100644
Binary files a/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_blue.png and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_blue.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_dark_blue.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_dark_blue.png
new file mode 100644
index 0000000000..50e6c63713
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_dark_blue.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_green.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_green.png
index 3e9e8a7ea3..41b6835055 100644
Binary files a/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_green.png and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_green.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_oragne.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_oragne.png
new file mode 100644
index 0000000000..40ff4b36b2
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_oragne.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_purple.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_purple.png
index fdcb1b68bd..db52b50a30 100644
Binary files a/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_purple.png and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/bg_map_marker_purple.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_default.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_default.png
deleted file mode 100644
index d24606ab1d..0000000000
Binary files a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_default.png and /dev/null differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_location.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_location.png
deleted file mode 100644
index 0807021a55..0000000000
Binary files a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_location.png and /dev/null differ
diff --git a/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_orange_green.xml b/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_triangle_orange.xml
similarity index 100%
rename from modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_orange_green.xml
rename to modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_triangle_orange.xml
diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml
index d58f79028f..0613e51004 100644
--- a/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml
+++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml
@@ -12,7 +12,7 @@
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_64"
android:src="@drawable/icon_map_marker_car_gray"
- android:translationY="-5dp"
+ android:translationY="-10dp"
app:layout_constraintEnd_toEndOf="@+id/ivBg"
app:layout_constraintStart_toStartOf="@+id/ivBg"
app:layout_constraintTop_toBottomOf="@+id/ivBg" />
@@ -22,7 +22,7 @@
android:layout_width="@dimen/dp_68"
android:layout_height="@dimen/dp_85"
android:layout_gravity="center"
- android:src="@drawable/bg_map_marker_green"
+ android:src="@drawable/bg_map_marker_blue"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -36,22 +36,22 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:miv_failureHolder="@drawable/icon_default"
- app:miv_overlayImageId="@drawable/icon_default"
- app:miv_placeHolder="@drawable/icon_default"
+ app:miv_failureHolder="@drawable/icon_default_user_head"
+ app:miv_overlayImageId="@drawable/icon_default_user_head"
+ app:miv_placeHolder="@drawable/icon_default_user_head"
app:miv_shape="circle" />
\ No newline at end of file
diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml
index 0351e95296..19b71da718 100644
--- a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml
+++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml
@@ -13,16 +13,16 @@
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_64"
android:src="@drawable/icon_map_marker_car_gray"
- android:translationY="-5dp"
+ android:translationY="-10dp"
app:layout_constraintEnd_toEndOf="@+id/ivReverseTriangle"
app:layout_constraintStart_toStartOf="@+id/ivReverseTriangle"
app:layout_constraintTop_toBottomOf="@+id/ivReverseTriangle" />
@@ -33,29 +33,32 @@
android:layout_height="@dimen/dp_60"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:miv_failureHolder="@drawable/icon_default"
- app:miv_overlayImageId="@drawable/icon_default"
- app:miv_placeHolder="@drawable/icon_default"
+ app:miv_failureHolder="@drawable/icon_default_user_head"
+ app:miv_overlayImageId="@drawable/icon_default_user_head"
+ app:miv_placeHolder="@drawable/icon_default_user_head"
app:miv_shape="circle" />
-
+ android:src="@drawable/bg_shape_reverse_triangle_blue"
+ app:layout_constraintEnd_toEndOf="@+id/clMarkerContent"
+ app:layout_constraintStart_toStartOf="@+id/clMarkerContent"
+ app:layout_constraintTop_toBottomOf="@+id/clMarkerContent" />
+
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
index ca2db2c2b0..2f208f5efd 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java
@@ -66,15 +66,14 @@ public class LaucherShareDialog extends Dialog implements View.OnClickListener {
@Override
public void onClick(View view) {
int id = view.getId();
- if (id == R.id.btn_block_layout) {
+ if (id == R.id.btn_block_layout) { //拥堵
sendShareReceiver("1");
} else if (id == R.id.oil_price_layout) {
//TODO
-
- } else if (id == R.id.traffic_check_layout) {
- sendShareReceiver("2");
- } else if (id == R.id.road_closure_layout) {
+ } else if (id == R.id.traffic_check_layout) { //交通检查
sendShareReceiver("2");
+ } else if (id == R.id.road_closure_layout) { //封路
+ sendShareReceiver("3");
}
dismiss();
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java
index 97cc3f9be1..c40193a41a 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java
@@ -11,4 +11,8 @@ public class TanluConstants {
public static final String TAG = "/tanlu/ui";
public static final String NAVI_INFO = "navi_info";
public static final String MODEL_NAME = "CARD_TYPE_ROAD_CONDITION";
+
+
+ public static final String UPLOAD_ROAD_CONDITION = "upload_road_condition";
+
}
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java
index 818fe19ed8..f62392ca7d 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java
@@ -6,6 +6,7 @@ import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
+import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.RelativeLayout;
@@ -15,10 +16,21 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
+import com.amap.api.services.core.LatLonPoint;
+import com.amap.api.services.core.PoiItem;
+import com.amap.api.services.geocoder.GeocodeAddress;
+import com.amap.api.services.geocoder.GeocodeQuery;
+import com.amap.api.services.geocoder.GeocodeResult;
+import com.amap.api.services.geocoder.GeocodeSearch;
+import com.amap.api.services.geocoder.RegeocodeResult;
+import com.amap.api.services.poisearch.PoiResult;
+import com.amap.api.services.poisearch.PoiSearch;
+import com.google.gson.JsonObject;
import com.mogo.commons.mvp.IView;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.map.MogoLatLng;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationClient;
@@ -35,9 +47,11 @@ import com.mogo.map.search.geo.MogoPoiItem;
import com.mogo.map.search.poisearch.IMogoPoiSearchListener;
import com.mogo.map.search.poisearch.MogoPoiResult;
import com.mogo.map.uicontroller.EnumMapUI;
+import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.entity.MarkerExploreWay;
-import com.mogo.module.common.entity.MarkerResponse;
import com.mogo.module.common.entity.MarkerShowEntity;
+import com.mogo.module.service.receiver.MogoReceiver;
+import com.mogo.module.tanlu.R;
import com.mogo.module.tanlu.callback.AlongTheWayCallback;
import com.mogo.module.tanlu.callback.RoadLineCallback;
import com.mogo.module.tanlu.callback.VoiceSearchCallback;
@@ -48,21 +62,22 @@ import com.mogo.module.tanlu.model.InformationAndLiveCarResult;
import com.mogo.module.tanlu.model.PathLineResult;
import com.mogo.module.tanlu.model.TanluModelData;
import com.mogo.module.tanlu.model.VoiceSearchResult;
-import com.mogo.module.tanlu.util.Utils;
-import com.mogo.service.MogoServicePaths;
-import com.mogo.service.cardmanager.IMogoCardManager;
-import com.mogo.service.connection.IMogoOnMessageListener;
-import com.mogo.service.connection.IMogoSocketManager;
-import com.mogo.service.imageloader.IMogoImageLoaderListener;
-import com.mogo.service.imageloader.IMogoImageloader;
-import com.mogo.service.map.IMogoMapService;
-import com.mogo.service.module.IMogoModuleLifecycle;
-import com.mogo.module.tanlu.R;
import com.mogo.module.tanlu.model.event.MarkerInfo;
+import com.mogo.module.tanlu.util.Utils;
import com.mogo.module.tanlu.video.FullMediaActivity;
import com.mogo.module.tanlu.video.SimpleCoverVideoPlayer;
import com.mogo.module.tanlu.view.AutoZoomInImageView;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.service.cardmanager.IMogoCardManager;
+import com.mogo.service.connection.IMogoSocketManager;
+import com.mogo.service.imageloader.IMogoImageLoaderListener;
+import com.mogo.service.imageloader.IMogoImageloader;
+import com.mogo.service.intent.IMogoIntentListener;
+import com.mogo.service.intent.IMogoIntentManager;
+import com.mogo.service.map.IMogoMapService;
+import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoRegisterCenter;
+import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.utils.TipToast;
import com.mogo.utils.logger.Logger;
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
@@ -84,7 +99,7 @@ import static com.mogo.module.tanlu.video.VideoInitKt.initVideo;
* @description 探路卡片
* @since 2020-01-02
*/
-public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView > >
+public class TanluCardViewFragment extends MvpFragment>
implements IView,
IMogoMarkerClickListener,
IMogoModuleLifecycle,
@@ -103,6 +118,10 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
private IMogoSocketManager mMogoSocketManager;
private IMogoLocationClient mLocationClient;
private IMogoCardManager iMogoCardManager;
+ private IMogoStatusManager mMogoStatusManager;
+ private IMogoIntentManager mogoIntentManager; //免唤醒
+ private IMogoMapUIController mMApUIController;
+ private GeocodeSearch mGeocodeSearch;
//声音控制文字
private String voiceGetInfoMationTts;
@@ -125,12 +144,14 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
private TextView mDistanceTv;
private TextView mTimeTv;
- private List< MarkerExploreWay > markerExploreWayList = new ArrayList<>();
+ private List markerExploreWayList = new ArrayList<>();
private int currentPosition = 0; //卡片媒体当前位置
private Bitmap mMarkerIcon;
+ private Bitmap multiMarkerIcon;
private TanluModelData mTanluModelData;
- private List< MogoLatLng > passedByPoints;
+ private List passedByPoints;
private IMogoRegisterCenter mMogoRegisterCenter;
+ private String mKeywords;
@Override
@@ -141,70 +162,152 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
protected void initViews() {
initVideo();
- simpleCoverVideoPlayer = findViewById( R.id.video_player_main );
- autoZoomInImageView = findViewById( R.id.tanlu_photo_imageView );
- mPreviousTv = findViewById( R.id.tv_previous_res );
- mNextTv = findViewById( R.id.tv_next_res );
- mRootLayout = findViewById( R.id.layout_data_show );
- mEmptyLayout = findViewById( R.id.layout_empty_data_show );
- mEmptyTv = findViewById( R.id.tv_main_empty );
- mAddressTv = findViewById( R.id.tv_information_media_content );
- mDistanceTv = findViewById( R.id.tv_distance_video );
- mTimeTv = findViewById( R.id.tv_information_media_time );
+ simpleCoverVideoPlayer = findViewById(R.id.video_player_main);
+ autoZoomInImageView = findViewById(R.id.tanlu_photo_imageView);
+ mPreviousTv = findViewById(R.id.tv_previous_res);
+ mNextTv = findViewById(R.id.tv_next_res);
+ mRootLayout = findViewById(R.id.layout_data_show);
+ mEmptyLayout = findViewById(R.id.layout_empty_data_show);
+ mEmptyTv = findViewById(R.id.tv_main_empty);
+ mAddressTv = findViewById(R.id.tv_information_media_content);
+ mDistanceTv = findViewById(R.id.tv_distance_video);
+ mTimeTv = findViewById(R.id.tv_information_media_time);
- mPreviousTv.setOnClickListener( this );
- mNextTv.setOnClickListener( this );
- mEmptyTv.setOnClickListener( this );
+ mPreviousTv.setOnClickListener(this);
+ mNextTv.setOnClickListener(this);
+ mEmptyTv.setOnClickListener(this);
- simpleCoverVideoPlayer.setVisibility( View.VISIBLE );
- autoZoomInImageView.setVisibility( View.GONE );
+ simpleCoverVideoPlayer.setVisibility(View.VISIBLE);
+ autoZoomInImageView.setVisibility(View.GONE);
//视频配置 TODO 需要去掉
// gsyVideoOptionBuilder.setUrl(mVideoUrl).setCacheWithPlay(false).setPlayTag(TAG)
// .build(simpleCoverVideoPlayer);
- simpleCoverVideoPlayer.getStartButton().setOnClickListener( new View.OnClickListener() {
+ simpleCoverVideoPlayer.getStartButton().setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick( View view ) {
- Logger.d( TAG, "simpleCoverVideoPlayer onClick -------> " );
- FullMediaActivity.Companion.launch( getActivity(), mVideoUrl, mImageUrl, mTitle, mGenerateTime );
+ public void onClick(View view) {
+ Logger.d(TAG, "simpleCoverVideoPlayer onClick -------> ");
+ FullMediaActivity.Companion.launch(getActivity(), mVideoUrl, mImageUrl, mTitle, mGenerateTime);
}
- } );
+ });
}
private void initInterface() {
//图片配置
- mogoImageloader = ( IMogoImageloader ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_IMAGE_LOADER ).navigation();
+ mogoImageloader = (IMogoImageloader) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_IMAGE_LOADER).navigation();
//地图marker
- mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getActivity() );
+ mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(getActivity());
+ mMarkerManager = mMogoMapService.getMarkerManager(getContext());
+
//切换卡片操作
- iMogoCardManager = ( IMogoCardManager ) ARouter.getInstance().build( MogoServicePaths.PATH_CARD_MANAGER ).navigation( getActivity() );
+ iMogoCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation(getActivity());
- mMogoRegisterCenter = ( IMogoRegisterCenter ) ARouter.getInstance().build( MogoServicePaths.PATH_REGISTER_CENTER ).navigation( getContext() );
+ mMogoRegisterCenter = (IMogoRegisterCenter) ARouter.getInstance().build(MogoServicePaths.PATH_REGISTER_CENTER).navigation(getContext());
+ mMogoRegisterCenter.registerMogoModuleLifecycle(TanluConstants.MODEL_NAME, this);
+ //语音操作
+ //唤醒
+ mogoIntentManager = (IMogoIntentManager) ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation(getContext());
+ //地图操作
+ mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(getContext());
+ mMApUIController = mMogoMapService.getMapUIController();
+ mGeocodeSearch = new GeocodeSearch(getContext());
- mMogoRegisterCenter.registerMogoModuleLifecycle( TanluConstants.MODEL_NAME, this );
+ mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_MANAGER).navigation(getContext());
+
+ //poi查询
+ mGeocodeSearch.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() {
+ @Override
+ public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
+ Logger.d(TAG, "onRegeocodeSearched -----> ");
+ }
+
+ @Override
+ public void onGeocodeSearched(GeocodeResult p0, int p1) {
+ Logger.d(TAG, "onGeocodeSearched ------mKeywords =" + mKeywords + ">>p1 =" + p1);
+ if (p1 == 1000) {
+ if (p0.getGeocodeAddressList() != null && p0.getGeocodeAddressList().size() != 0) {
+ GeocodeAddress geocodeAddress = p0.getGeocodeAddressList().get(0);
+ LatLonPoint latLon = geocodeAddress.getLatLonPoint();
+ Double longit; //经度
+ Double lat; //维度
+ if (mKeywords.equals("附近")) {
+ longit = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude();
+ lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
+ } else {
+ longit = latLon.getLongitude();
+ lat = latLon.getLatitude();
+ }
+ Log.d(TAG, "geoSearch keywords = $keywords --cityCode = $cityCode " +
+ "--longitude= longit --latitude = $lat");
+ getVoiceControlRoadData(mKeywords, lat, longit);
+ } else {
+ String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode();
+ PoiSearch.Query query = new PoiSearch.Query(mKeywords, "", cityCode);
+ PoiSearch poiSearch = new PoiSearch(getContext(), query);
+ poiSearch.setOnPoiSearchListener(new PoiSearch.OnPoiSearchListener() {
+ @Override
+ public void onPoiSearched(PoiResult p0, int p1) {
+ Logger.d(TAG, "setOnPoiSearchListener ------mKeywords =" + mKeywords + ">>p1 =" + p1);
+ if (p1 == 1000) {
+ if (p0.getPois() != null && p0.getPois().size() != 0) {
+ PoiItem poi = p0.getPois().get(0);
+ LatLonPoint latLon = poi.getLatLonPoint();
+
+ Double longit; //经度
+ Double lat; //维度
+ if (mKeywords.equals("附近")) {
+ longit = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude();
+ lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
+ } else {
+ longit = latLon.getLongitude();
+ lat = latLon.getLatitude();
+ }
+ getVoiceControlRoadData(mKeywords, lat, longit);
+ Logger.d(TAG, "poi search keywords = $keywords --cityCode = $cityCode " +
+ "--longitude= $long --latitude = $lat");
+ } else {
+ Logger.e(TAG, "poi == null");
+ }
+ } else {
+ Logger.e(TAG, "poi search result code = $p1");
+ }
+ }
+
+ @Override
+ public void onPoiItemSearched(PoiItem poiItem, int i) {
+
+ }
+ });
+ poiSearch.searchPOIAsyn();
+ }
+ } else {
+ speakFailVoice(searchfaileVoiceStrings[2]);
+ }
+ }
+ });
}
-
@Override
- public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
- super.onActivityCreated( savedInstanceState );
- getViewLifecycleOwner().getLifecycle().addObserver( mPresenter );
- EventBus.getDefault().register( this );
+ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ getViewLifecycleOwner().getLifecycle().addObserver(mPresenter);
+ EventBus.getDefault().register(this);
initInterface();
initModelData();
handleRoadLineMessage();
initMap();
initStrings();
+ initListener();
//TODO切换探路卡片
// iMogoCardManager.switch2(TanluConstants.MODEL_NAME);
}
private void initModelData() {
- if ( mTanluModelData == null ) {
- mTanluModelData = new TanluModelData( getContext() );
+ if (mTanluModelData == null) {
+ mTanluModelData = new TanluModelData(getContext());
}
}
@@ -212,7 +315,7 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
* 初始化导航 TODO
*/
private void initMap() {
- mMogoRegisterCenter.registerMogoNaviListener( TanluConstants.MODEL_NAME, new IMogoNaviListener() {
+ mMogoRegisterCenter.registerMogoNaviListener(TanluConstants.MODEL_NAME, new IMogoNaviListener() {
@Override
public void onInitNaviFailure() {
@@ -224,14 +327,14 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
}
@Override
- public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
+ public void onNaviInfoUpdate(MogoNaviInfo naviinfo) {
}
@Override
- public void onStartNavi() {
-// initModelData();
-// getNavigationLineData();
+ public void onStartNavi() { //开始导航
+ initModelData();
+ getNavigationLineData();
}
@Override
@@ -248,47 +351,125 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
public void onoCalculateFailed() {
}
- } );
+ });
//监听marker点击
- mMogoRegisterCenter.registerMogoMarkerClickListener( TanluConstants.MODEL_NAME, new IMogoMarkerClickListener() {
+ mMogoRegisterCenter.registerMogoMarkerClickListener(TanluConstants.MODEL_NAME, new IMogoMarkerClickListener() {
@Override
- public boolean onMarkerClicked( IMogoMarker marker ) {
+ public boolean onMarkerClicked(IMogoMarker marker) {
//点击marker以后,确认他的位置?然后点击下一个操作 TODO
MarkerExploreWay exploreWay = extractFromMarker(marker);
- if ( exploreWay == null ) {
+ if (exploreWay == null) {
return false;
}
- if ( exploreWay.getFileType() == 0 ) { //图片
- refreshPhotoData( exploreWay );
- } else if ( exploreWay.getFileType() == 1 ) { //视频
- handleData( exploreWay );
+ if (exploreWay.getFileType() == 0) { //图片
+ refreshPhotoData(exploreWay);
+ } else if (exploreWay.getFileType() == 1) { //视频
+ handleData(exploreWay);
}
//更新位置currentPosition
- for ( int i = 0; i < markerExploreWayList.size(); i++ ) {
- if ( markerExploreWayList.get( i ) == exploreWay ) {
+ for (int i = 0; i < markerExploreWayList.size(); i++) {
+ if (markerExploreWayList.get(i) == exploreWay) {
currentPosition = i;
break;
}
- Logger.d( TAG, "onMarkerClicked currentPosition = " + currentPosition );
+ Logger.d(TAG, "onMarkerClicked currentPosition = " + currentPosition);
}
return false;
}
- } );
-
+ });
}
- private MarkerExploreWay extractFromMarker( IMogoMarker marker ) {
- if ( marker == null ) {
+
+ /**
+ * 处理关键词搜索
+ *
+ * @return
+ */
+ private void handleActionFoo(String keywords) {
+ Logger.d(TAG, "handleActionFoo keywords = " + keywords);
+ speakSearchingVoice();
+ GeocodeQuery geocodeQuery;
+ String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode();
+
+ geocodeQuery = new GeocodeQuery(keywords, cityCode);
+ geocodeQuery.setLocationName(keywords);
+ mGeocodeSearch.getFromLocationNameAsyn(geocodeQuery);
+ }
+
+ /**
+ * 注册listener监听
+ */
+ private void initListener() {
+ //某某路堵不堵,某某地点堵不堵,附近堵不堵,播放路况 TODO
+ //唤醒
+ mogoIntentManager.registerIntentListener(MogoReceiver.ADAS_ACTION, mogoIntentListener);
+ //免唤醒
+ AIAssist.getInstance(getActivity()).registerUnWakeupCommandCallback(TanluConstants.UPLOAD_ROAD_CONDITION, mogoVoiceListener);
+ }
+
+ /**
+ * 唤醒语音
+ */
+ private IMogoIntentListener mogoIntentListener = new IMogoIntentListener() {
+ @Override
+ public void onIntentReceived(String intentStr, Intent intent) {
+ String data = intent.getStringExtra("data");
+ Logger.e(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data);
+
+ JsonObject jsonObject = new JsonObject();
+ mKeywords = jsonObject.get("location").toString();
+ handleActionFoo(mKeywords);
+ }
+ };
+
+
+ /**
+ * 免唤醒语音监听
+ */
+ private IMogoVoiceCmdCallBack mogoVoiceListener = new IMogoVoiceCmdCallBack() {
+ @Override
+ public void onCmdSelected(String cmd) {
+ Logger.e(TAG, "免唤醒 onCmdSelected mogoVoiceListener cmd =" + cmd);
+ if (cmd.equals(TanluConstants.UPLOAD_ROAD_CONDITION)) {
+ //
+ Logger.d(TAG, "");
+ }
+ }
+
+ @Override
+ public void onCmdAction(String speakText) {
+
+ }
+
+ @Override
+ public void onCmdCancel(String speakText) {
+
+ }
+
+ @Override
+ public void onSpeakEnd(String speakText) {
+
+ }
+
+ @Override
+ public void onSpeakSelectTimeOut(String speakText) {
+
+ }
+ };
+
+
+ private MarkerExploreWay extractFromMarker(IMogoMarker marker) {
+ if (marker == null) {
return null;
}
- if ( marker.getObject() instanceof MarkerShowEntity ) {
- MarkerShowEntity showEntity = ( ( MarkerShowEntity ) marker.getObject() );
- if ( showEntity.getBindObj() instanceof MarkerExploreWay ) {
- return ( ( MarkerExploreWay ) showEntity.getBindObj() );
+ if (marker.getObject() instanceof MarkerShowEntity) {
+ MarkerShowEntity showEntity = ((MarkerShowEntity) marker.getObject());
+ if (showEntity.getBindObj() instanceof MarkerExploreWay) {
+ return ((MarkerExploreWay) showEntity.getBindObj());
}
}
return null;
@@ -313,7 +494,7 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
// });
- //TODO 更加广播类型判断
+ //TODO 广播类型判断
// getNavigationLineData();
// getRoadLineData();
@@ -323,10 +504,10 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
* @param view
*/
@Override
- public void onClick( View view ) {
+ public void onClick(View view) {
int id = view.getId();
- if ( id == R.id.tv_previous_res ) { //上一个
-// 判断是图片还是视频,第一个时,上一个不可点击
+ if (id == R.id.tv_previous_res) { //上一个
+ //判断是图片还是视频,第一个时,上一个不可点击
Logger.d(TAG, " tv_previous_res --1-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size());
if (currentPosition < 0) {
return;
@@ -337,52 +518,47 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
handleData(markerExploreWayList.get(currentPosition));
}
-// getRoadLineData();
-// getVoiceControlRoadData("中关村");
-// getNavigationLineData();
-// getNaviRoadLineInfo();
-
- } else if ( id == R.id.tv_next_res ) { //下一个
+ } else if (id == R.id.tv_next_res) { //下一个
//判断是图片还是视频,最后一个时,下一个不可点击
- Logger.d( TAG, " tv_next_res --1-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size() );
- if ( currentPosition > markerExploreWayList.size() ) {
+ Logger.d(TAG, " tv_next_res --1-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size());
+ if (currentPosition > markerExploreWayList.size()) {
return;
}
currentPosition++;
- Logger.d( TAG, " tv_next_res --2-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size() );
- if ( markerExploreWayList.size() > currentPosition ) {
- handleData( markerExploreWayList.get( currentPosition ) );
+ Logger.d(TAG, " tv_next_res --2-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size());
+ if (markerExploreWayList.size() > currentPosition) {
+ handleData(markerExploreWayList.get(currentPosition));
}
- } else if ( id == R.id.tv_main_empty ) { //TODO上报路况,逻辑
- Logger.d( TAG, "tv_main_empty click -----> " );
- sendShareReceiver( "1" );
+ } else if (id == R.id.tv_main_empty) { //TODO上报路况,逻辑
+ Logger.d(TAG, "tv_main_empty click -----> ");
+ sendShareReceiver("1");
}
}
/**
* 发送广播
*/
- private void sendShareReceiver( String type ) {
- Logger.d( "liyz", "LaucherShareDialog sendShareReceiver ---->" );
+ private void sendShareReceiver(String type) {
+ Logger.d("liyz", "LaucherShareDialog sendShareReceiver ---->");
Intent intent = new Intent();
- intent.setAction( "com.zhidao.roadcondition.share" );
- intent.putExtra( "type", type );
- getContext().sendBroadcast( intent );
+ intent.setAction("com.zhidao.roadcondition.share");
+ intent.putExtra("type", type);
+ getContext().sendBroadcast(intent);
}
/**
* 执行图片动画
*/
private void handleImageAnimation() {
- autoZoomInImageView.post( new Runnable() {
+ autoZoomInImageView.post(new Runnable() {
@Override
public void run() {
//放大增量是0.3,放大时间是1000毫秒,放大开始时间是600毫秒以后
autoZoomInImageView.init()
- .startZoomInByScaleDeltaAndDuration( 0.2f, 1000, 500 );
+ .startZoomInByScaleDeltaAndDuration(0.2f, 1000, 500);
}
- } );
+ });
}
/**
@@ -392,7 +568,7 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
* @return
*/
@Override
- public boolean onMarkerClicked( IMogoMarker marker ) {
+ public boolean onMarkerClicked(IMogoMarker marker) {
return true;
}
@@ -401,44 +577,44 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
*
* @param exploreWay
*/
- private void handleData( MarkerExploreWay exploreWay ) {
- if ( exploreWay != null ) {
- if ( exploreWay.getFileType() == 0 ) { //图片
- refreshPhotoData( exploreWay );
- } else if ( exploreWay.getFileType() == 1 ) { //视频
- refreshVideoData( exploreWay );
+ private void handleData(MarkerExploreWay exploreWay) {
+ if (exploreWay != null) {
+ if (exploreWay.getFileType() == 0) { //图片
+ refreshPhotoData(exploreWay);
+ } else if (exploreWay.getFileType() == 1) { //视频
+ refreshVideoData(exploreWay);
}
} else {
- Logger.e( TAG, "handleData exploreWay == null " );
+ Logger.e(TAG, "handleData exploreWay == null ");
}
}
/**
* 刷新单个视频数据,更新位置positon
*/
- private void refreshVideoData( MarkerExploreWay markerExploreWay ) {
- if ( markerExploreWay.getItems() == null ) {
+ private void refreshVideoData(MarkerExploreWay markerExploreWay) {
+ if (markerExploreWay.getItems() == null) {
return;
}
- if ( markerExploreWay.getItems().size() == 0 ) {
+ if (markerExploreWay.getItems().size() == 0) {
return;
}
- String videoUrl = markerExploreWay.getItems().get( 0 ).getUrl();
- mImageUrl = markerExploreWay.getItems().get( 0 ).getThumbnail();
+ String videoUrl = markerExploreWay.getItems().get(0).getUrl();
+ mImageUrl = markerExploreWay.getItems().get(0).getThumbnail();
mGenerateTime = markerExploreWay.getGenerateTime();
mTitle = markerExploreWay.getAddr();
- mAddressTv.setText( markerExploreWay.getAddr() );
- mDistanceTv.setText( handleDistance( markerExploreWay.getDistance() ) );
- mTimeTv.setText( formatDate( markerExploreWay.getGenerateTime() ) );
+ mAddressTv.setText(markerExploreWay.getAddr());
+ mDistanceTv.setText(handleDistance(markerExploreWay.getDistance()));
+ mTimeTv.setText(formatDate(markerExploreWay.getGenerateTime()));
//判断是图片还是视频,第一个时,上一个不可点击
- simpleCoverVideoPlayer.setVisibility( View.VISIBLE );
+ simpleCoverVideoPlayer.setVisibility(View.VISIBLE);
//视频配置
mVideoUrl = videoUrl;
- gsyVideoOptionBuilder.setUrl( videoUrl ).setCacheWithPlay( false ).setPlayTag( TAG )
- .build( simpleCoverVideoPlayer );
- if ( mImageUrl == null ) {
+ gsyVideoOptionBuilder.setUrl(videoUrl).setCacheWithPlay(false).setPlayTag(TAG)
+ .build(simpleCoverVideoPlayer);
+ if (mImageUrl == null) {
return;
}
}
@@ -446,45 +622,45 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
/**
* 刷新单个图片数据
*/
- private void refreshPhotoData( MarkerExploreWay markerExploreWay ) {
- if ( markerExploreWay.getItems() == null ) {
+ private void refreshPhotoData(MarkerExploreWay markerExploreWay) {
+ if (markerExploreWay.getItems() == null) {
return;
}
- if ( markerExploreWay.getItems().size() == 0 ) {
+ if (markerExploreWay.getItems().size() == 0) {
return;
}
- mAddressTv.setText( markerExploreWay.getAddr() );
- mDistanceTv.setText( handleDistance( markerExploreWay.getDistance() ) );
- mTimeTv.setText( formatDate( markerExploreWay.getGenerateTime() ) );
- String thumbnailUrl = markerExploreWay.getItems().get( 0 ).getUrl();
- Logger.d( TAG, "refreshPhotoData thumbnailUrl ------>" + thumbnailUrl );
- autoZoomInImageView.setVisibility( View.VISIBLE );
- simpleCoverVideoPlayer.setVisibility( View.GONE );
- mogoImageloader.downloadImage( getActivity(), thumbnailUrl, new IMogoImageLoaderListener() {
+ mAddressTv.setText(markerExploreWay.getAddr());
+ mDistanceTv.setText(handleDistance(markerExploreWay.getDistance()));
+ mTimeTv.setText(formatDate(markerExploreWay.getGenerateTime()));
+ String thumbnailUrl = markerExploreWay.getItems().get(0).getUrl();
+ Logger.d(TAG, "refreshPhotoData thumbnailUrl ------>" + thumbnailUrl);
+ autoZoomInImageView.setVisibility(View.VISIBLE);
+ simpleCoverVideoPlayer.setVisibility(View.GONE);
+ mogoImageloader.downloadImage(getActivity(), thumbnailUrl, new IMogoImageLoaderListener() {
@Override
public void onStart() {
}
@Override
- public void onCompleted( Bitmap bitmap ) {
- autoZoomInImageView.setImageBitmap( bitmap );
+ public void onCompleted(Bitmap bitmap) {
+ autoZoomInImageView.setImageBitmap(bitmap);
//动画
-// handleImageAnimation();
+ handleImageAnimation();
}
@Override
- public void onFailure( Exception e ) {
- Logger.e( TAG, "onFailure ------>" + e );
+ public void onFailure(Exception e) {
+ Logger.e(TAG, "onFailure ------>" + e);
}
- } );
+ });
}
@NonNull
@Override
protected Presenter createPresenter() {
- return new Presenter( this ) {
+ return new Presenter(this) {
};
}
@@ -494,42 +670,42 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
*/
@Override
public void onPerform() {
- Logger.d( TAG, "tanlu卡片 有效 ---->" );
- mMarkerManager = mMogoMapService.getMarkerManager( getActivity() );
- List< IMogoMarker > markers = mMarkerManager.getMarkers( TanluConstants.MODEL_NAME );
- if ( markers != null && markers.size() > 0 ) {
- mEmptyLayout.setVisibility( View.GONE );
- mRootLayout.setVisibility( View.VISIBLE );
- Logger.d( TAG, "onPerform markers.size() =" + markers.size() );
- for ( int i = 0; i < markers.size(); i++ ) {
- MarkerExploreWay exploreWay = extractFromMarker(markers.get( i ));
- if ( exploreWay == null ) {
+ Logger.d(TAG, "tanlu卡片 onPerform 有效 ---->");
+ mMarkerManager = mMogoMapService.getMarkerManager(getActivity());
+ List markers = mMarkerManager.getMarkers(TanluConstants.MODEL_NAME);
+ if (markers != null && markers.size() > 0) {
+ mEmptyLayout.setVisibility(View.GONE);
+ mRootLayout.setVisibility(View.VISIBLE);
+ Logger.d(TAG, "onPerform markers.size() =" + markers.size());
+ for (int i = 0; i < markers.size(); i++) {
+ MarkerExploreWay exploreWay = extractFromMarker(markers.get(i));
+ if (exploreWay == null) {
break;
}
- markerExploreWayList.add(exploreWay );
+ markerExploreWayList.add(exploreWay);
}
- if ( markers.size() == 1 ) {
- mPreviousTv.setVisibility( View.GONE );
- mNextTv.setVisibility( View.GONE );
+ if (markers.size() == 1) {
+ mPreviousTv.setVisibility(View.GONE);
+ mNextTv.setVisibility(View.GONE);
} else {
- mPreviousTv.setVisibility( View.VISIBLE );
- mNextTv.setVisibility( View.VISIBLE );
+ mPreviousTv.setVisibility(View.VISIBLE);
+ mNextTv.setVisibility(View.VISIBLE);
}
//展示第一个数据
- MarkerExploreWay markerExploreWay = markerExploreWayList.get( 0 );
- if ( markerExploreWay != null ) {
- if ( markerExploreWay.getFileType() == 0 ) { //图片
- refreshPhotoData( markerExploreWay );
- } else if ( markerExploreWay.getFileType() == 1 ) { //视频
- refreshVideoData( markerExploreWay );
+ MarkerExploreWay markerExploreWay = markerExploreWayList.get(0);
+ if (markerExploreWay != null) {
+ if (markerExploreWay.getFileType() == 0) { //图片
+ refreshPhotoData(markerExploreWay);
+ } else if (markerExploreWay.getFileType() == 1) { //视频
+ refreshVideoData(markerExploreWay);
}
}
} else {
- mEmptyLayout.setVisibility( View.VISIBLE );
- mRootLayout.setVisibility( View.GONE );
- mEmptyTv.setText( Html.fromHtml( getContext().getString( R.string.main_empty_content ) ) );
+ mEmptyLayout.setVisibility(View.VISIBLE);
+ mRootLayout.setVisibility(View.GONE);
+ mEmptyTv.setText(Html.fromHtml(getContext().getString(R.string.main_empty_content)));
}
}
@@ -538,7 +714,7 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
*/
@Override
public void onDisable() {
- Logger.d( TAG, "tanlu卡片 无效 ----->" );
+ Logger.d(TAG, "tanlu卡片 无效 ----->");
}
@Override
@@ -552,32 +728,32 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
}
@Override
- public void onTouch( MotionEvent motionEvent ) {
+ public void onTouch(MotionEvent motionEvent) {
// Logger.d( TAG, "地图触摸事件" );
}
@Override
- public void onPOIClick( MogoPoi poi ) {
- if ( poi != null ) {
- TipToast.shortTip( poi.getName() );
+ public void onPOIClick(MogoPoi poi) {
+ if (poi != null) {
+ TipToast.shortTip(poi.getName());
}
- TanluServiceHandler.getPoiSearch().searchPOIIdAsyn( poi.getPoiId() );
+ TanluServiceHandler.getPoiSearch().searchPOIIdAsyn(poi.getPoiId());
}
@Override
- public void onPoiSearched( MogoPoiResult result, int errorCode ) {
+ public void onPoiSearched(MogoPoiResult result, int errorCode) {
}
@Override
- public void onPoiItemSearched( MogoPoiItem item, int errorCode ) {
- if ( item == null ) {
+ public void onPoiItemSearched(MogoPoiItem item, int errorCode) {
+ if (item == null) {
return;
}
}
@Override
- public void onLocationChanged( MogoLocation location ) {
+ public void onLocationChanged(MogoLocation location) {
// if (location.getErrCode() == 0) {
// Logger.d(TAG, "onLocationChanged 当前位置 -->" + location.getAddress());
// } else {
@@ -586,32 +762,32 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
}
@Override
- public void onMapClick( MogoLatLng latLng ) {
+ public void onMapClick(MogoLatLng latLng) {
}
@Override
- public void onLockMap( boolean isLock ) {
+ public void onLockMap(boolean isLock) {
}
@Override
- public void onMapModeChanged( EnumMapUI ui ) {
- Logger.d( TAG, ui.name() );
+ public void onMapModeChanged(EnumMapUI ui) {
+ Logger.d(TAG, ui.name());
}
@Override
- public void onMapChanged( MogoLatLng location, float zoom, float tilt, float bearing ) {
+ public void onMapChanged(MogoLatLng location, float zoom, float tilt, float bearing) {
}
@Override
public void onDestroyView() {
super.onDestroyView();
- EventBus.getDefault().unregister( this );
- getViewLifecycleOwner().getLifecycle().removeObserver( mPresenter );
- TanluServiceHandler.getLocationClient().removeLocationListener( this );
- mMogoRegisterCenter.unregisterMogoNaviListener( TanluConstants.MODEL_NAME );
+ EventBus.getDefault().unregister(this);
+ getViewLifecycleOwner().getLifecycle().removeObserver(mPresenter);
+ TanluServiceHandler.getLocationClient().removeLocationListener(this);
+ mMogoRegisterCenter.unregisterMogoNaviListener(TanluConstants.MODEL_NAME);
}
/**
@@ -619,35 +795,42 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
*
* @param event
*/
- @Subscribe( threadMode = ThreadMode.MAIN )
- public void onMarkerInfo( final MarkerInfo event ) {
- Logger.d( TAG, "onMarkerInfo ------>" );
- mMarkerIcon = BitmapFactory.decodeResource( getResources(), R.drawable.ic_search_poi_location );
- mogoImageloader.downloadImage( getActivity(), event.imageUrl, new IMogoImageLoaderListener() {
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onMarkerInfo(final MarkerInfo event) {
+ Logger.d(TAG, "onMarkerInfo ------>");
+ if (event.type.equals("1")) { //上报路况
+ mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_block_up);
+ } else if (event.type.equals("2")) { //交通检查
+ mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_traffic_check);
+ } else if (event.type.equals("3")) { //封路
+ mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_road_closure);
+ }
+
+ mogoImageloader.downloadImage(getActivity(), event.imageUrl, new IMogoImageLoaderListener() {
@Override
public void onStart() {
- Logger.d( TAG, "onMarkerInfo onStart ------>" );
+ Logger.d(TAG, "onMarkerInfo onStart ------>");
}
@Override
- public void onCompleted( Bitmap bitmap ) {
- Logger.d( TAG, "onMarkerInfo onCompleted ------>" );
+ public void onCompleted(Bitmap bitmap) {
+ Logger.d(TAG, "onMarkerInfo onCompleted ------>");
MogoMarkerOptions options = new MogoMarkerOptions()
- .icon( mMarkerIcon )
- .latitude( event.lat )
- .owner( TanluConstants.MODEL_NAME )
- .longitude( event.lon );
+ .icon(mMarkerIcon)
+ .latitude(event.lat)
+ .owner(TanluConstants.MODEL_NAME)
+ .longitude(event.lon);
- mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() );
- mMarkerManager = mMogoMapService.getMarkerManager( getContext() );
- IMogoMarker marker = mMarkerManager.addMarker( TanluConstants.MODEL_NAME, options );
+ IMogoMarker marker = mMarkerManager.addMarker("share_tag", options);
+
+ //TODO 请求分享接口
}
@Override
- public void onFailure( Exception e ) {
- Logger.e( TAG, "onMarkerInfo onFailure -----e =" + e );
+ public void onFailure(Exception e) {
+ Logger.e(TAG, "onMarkerInfo onFailure -----e =" + e);
}
- } );
+ });
}
/**
@@ -656,182 +839,213 @@ public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView
public void getNavigationLineData() {
Double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
Double lon = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude();
- Logger.e( TAG, "getNavigationLineData lon = " + lon + ">>>>> lat= " + lat );
- mTanluModelData.getNavigationLineData( lon, lat, new AlongTheWayCallback() {
+ Logger.e(TAG, "getNavigationLineData lon = " + lon + ">>>>> lat= " + lat);
+ mTanluModelData.getNavigationLineData(lon, lat, new AlongTheWayCallback() {
@Override
- public void onSuccess( InformationAndLiveCarResult data ) {
- Logger.d( TAG, "getNavigationLineData onSuccess " );
+ public void onSuccess(InformationAndLiveCarResult data) {
+ Logger.d(TAG, "getNavigationLineData onSuccess ");
//不做任何处理,直接出发推送,重新请求接口,划线
}
@Override
- public void onFail( String message, int code ) {
- Logger.e( TAG, "getNavigationLineData onFail message = " + message + ">>>code= " + code );
+ public void onFail(String message, int code) {
+ Logger.e(TAG, "getNavigationLineData onFail message = " + message + ">>>code= " + code);
}
- } );
+ });
}
/**
* 通勤族 事件,监听消息自己请求路线数据
*/
public void getRoadLineData() {
- mTanluModelData.getRoadLineData( new RoadLineCallback() {
+ mTanluModelData.getRoadLineData(new RoadLineCallback() {
@Override
- public void onSuccess( PathLineResult o ) {
+ public void onSuccess(PathLineResult o) {
//绘制线路线
- if ( o != null && o.getPointList() != null && o.getPointList().size() > 0 ) {
- drawMapLine( o.getPointList() );
+ if (o != null && o.getPointList() != null && o.getPointList().size() > 0) {
+ drawMapLine(o.getPointList());
} else {
- Logger.e( TAG, "getRoadLineData onSuccess o.getPointList() == null" );
+ Logger.e(TAG, "getRoadLineData onSuccess o.getPointList() == null");
}
}
@Override
- public void onFail( String message, int code ) {
- Logger.d( TAG, "getRoadLineData onFail message =" + message + ">>>code =" + code );
+ public void onFail(String message, int code) {
+ Logger.d(TAG, "getRoadLineData onFail message =" + message + ">>>code =" + code);
}
- } );
+ });
}
/**
* 导航路线,监听消息自己请求路线数据
*/
public void getNaviRoadLineInfo() {
- mTanluModelData.getNaviRoadLineInfo( new RoadLineCallback() {
+ mTanluModelData.getNaviRoadLineInfo(new RoadLineCallback() {
@Override
- public void onSuccess( PathLineResult o ) {
+ public void onSuccess(PathLineResult o) {
//绘制线路线
- if ( o != null && o.getPointList() != null && o.getPointList().size() > 0 ) {
- drawMapLine( o.getPointList() );
+ if (o != null && o.getPointList() != null && o.getPointList().size() > 0) {
+ drawMapLine(o.getPointList());
} else {
- Logger.e( TAG, "getNaviRoadLineInfo onSuccess o.getPointList() == null" );
+ Logger.e(TAG, "getNaviRoadLineInfo onSuccess o.getPointList() == null");
}
}
@Override
- public void onFail( String message, int code ) {
- Logger.d( TAG, "getNaviRoadLineInfo onFail message =" + message + ">>>code =" + code );
+ public void onFail(String message, int code) {
+ Logger.d(TAG, "getNaviRoadLineInfo onFail message =" + message + ">>>code =" + code);
}
- } );
+ });
}
/**
* 绘制线路
*/
- private void drawMapLine( List< Center > pointList ) {
- int intervalNum = Utils.getIntervalValue( pointList.size() );
- Logger.d( TAG, "drawMapLine intervalNum = $intervalNum -- pointList.size = ${pointList.size}" );
+ private void drawMapLine(List pointList) {
+ int intervalNum = Utils.getIntervalValue(pointList.size());
+ Logger.d(TAG, "drawMapLine intervalNum = $intervalNum -- pointList.size = ${pointList.size}");
int listSize = pointList.size();
//沿途最多15个点
- for ( int i = 0; i < listSize; i += intervalNum ) {
- passedByPoints.add( new MogoLatLng( pointList.get( i ).getLat(), ( pointList.get( i ).getLon() ) ) );
+ for (int i = 0; i < listSize; i += intervalNum) {
+ passedByPoints.add(new MogoLatLng(pointList.get(i).getLat(), (pointList.get(i).getLon())));
}
- Logger.d( TAG, "drawMapLine passedByPoints.size() ----> " + passedByPoints.size() );
- MogoLatLng startLatLng = new MogoLatLng( pointList.get( 0 ).getLat(), pointList.get( 0 ).getLon() );
- MogoLatLng endLatLng = new MogoLatLng( pointList.get( listSize - 1 ).getLat(), pointList.get( listSize - 1 ).getLon() );
- mMarkerManager.addRouteWay( getContext(), startLatLng, endLatLng, passedByPoints );
+ Logger.d(TAG, "drawMapLine passedByPoints.size() ----> " + passedByPoints.size());
+ MogoLatLng startLatLng = new MogoLatLng(pointList.get(0).getLat(), pointList.get(0).getLon());
+ MogoLatLng endLatLng = new MogoLatLng(pointList.get(listSize - 1).getLat(), pointList.get(listSize - 1).getLon());
+ mMarkerManager.addRouteWay(getContext(), startLatLng, endLatLng, passedByPoints);
}
/**
* 声音控制道路数据
*/
- public void getVoiceControlRoadData( String keywords ) {
- Double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
- Double lon = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude();
- String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode();
+ public void getVoiceControlRoadData(String keywords, final double lat, final double lon) {
String adCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getAdCode();
- Logger.d( TAG, "getVoiceControlRoadData lat =" + lat + ">>>lon =" + lon + ">>>cityCode=" + cityCode + ">>>adCode =" + adCode );
- mTanluModelData.getVoiceControlRoadData( keywords, cityCode, lon, lat, adCode, new VoiceSearchCallback() {
+ String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode();
+ Logger.d(TAG, "getVoiceControlRoadData lat =" + lat + ">>>lon =" + lon + ">>>cityCode=" + cityCode + ">>>adCode =" + adCode);
+ mTanluModelData.getVoiceControlRoadData(keywords, cityCode, lon, lat, adCode, new VoiceSearchCallback() {
@Override
- public void onSuccess( VoiceSearchResult o ) {
+ public void onSuccess(VoiceSearchResult o) {
String discription = o.getDescription();
- Logger.d( TAG, "getVoiceControlRoadData discription = " + discription );
- if ( o.getInformations() != null && o.getInformations().size() > 0 ) {
- speakSuccessVoice( o.getInformations(), discription == null ? "" : discription );
+ Logger.d(TAG, "getVoiceControlRoadData discription = " + discription);
+ if (o.getInformations() != null && o.getInformations().size() > 0) {
+ speakSuccessVoice(o.getInformations(), discription == null ? "" : discription);
+
+ List informationList = o.getInformations();
+ //移动
+ MogoLatLng latLng = new MogoLatLng(lat, lon);
+ mMApUIController.moveToCenter(latLng);
+
+ //清除探路之前的数据
+ mMarkerManager.removeMarkers(TanluConstants.MODEL_NAME);
+ mMogoStatusManager.setUserInteractionStatus(TanluConstants.MODEL_NAME, true, false);
+
+ //打点 TODO
+ ArrayList optionList = new ArrayList<>();
+ for (int i = 0; i < informationList.size(); i++) {
+ //根据type确定添加的图片
+ if (informationList.get(i).type == 0) { //图片
+ multiMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_search_poi_location);
+ } else if (informationList.get(i).type == 1) { //视频
+
+ }
+
+ MogoMarkerOptions options = new MogoMarkerOptions()
+ .icon(multiMarkerIcon)
+ .latitude(informationList.get(i).lat)
+ .owner(TanluConstants.MODEL_NAME)
+ .longitude(informationList.get(i).lon);
+
+ optionList.add(options);
+ }
+
+ mMarkerManager.addMarkers(TanluConstants.MODEL_NAME, optionList, true);
+ //直接使用当前数据list,作为切换的数据源
+
+
} else {
- if ( !TextUtils.isEmpty( discription ) ) {
- AIAssist.getInstance( getContext() ).speakTTSVoice( discription, null );
+ if (!TextUtils.isEmpty(discription)) {
+ AIAssist.getInstance(getContext()).speakTTSVoice(discription, null);
} else {
- AIAssist.getInstance( getContext() ).speakTTSVoice( "未找到其他车主分享的路况信息", null );
+ AIAssist.getInstance(getContext()).speakTTSVoice("未找到其他车主分享的路况信息", null);
}
}
- //TODO 展示数据
- //清除探路之前的数据
-
- //直接使用当前数据list,作为切换的数据源
-
}
@Override
- public void onFail( String message, int code ) {
- Logger.e( TAG, "getVoiceControlRoadData onFail message = " + message + ">>>code= " + code );
- speakFailVoice( searchfaileVoiceStrings[2] );
+ public void onFail(String message, int code) {
+ Logger.e(TAG, "getVoiceControlRoadData onFail message = " + message + ">>>code= " + code);
+ speakFailVoice(searchfaileVoiceStrings[2]);
}
- } );
+ });
}
Random random = new Random();
- private void speakSuccessVoice( List< Information > informations, String trafficStatus ) {
- switch ( informations.size() ) {
+ private void speakSuccessVoice(List informations, String
+ trafficStatus) {
+ switch (informations.size()) {
case 0:
- Logger.d( TAG, "speakSuccessVoice ----> " + random.nextInt( 3 ) );
- speakFailVoice( searchfaileVoiceStrings[random.nextInt( 3 )] );
+ Logger.d(TAG, "speakSuccessVoice ----> " + random.nextInt(3));
+ speakFailVoice(searchfaileVoiceStrings[random.nextInt(3)]);
break;
case 1:
- trackVoiceSearch( 1 );
- AIAssist.getInstance( getContext() ).speakTTSVoice( (
- String.format( voiceGetInfoMationTts, "1" ) + trafficStatus ), null );
+ trackVoiceSearch(1);
+ AIAssist.getInstance(getContext()).speakTTSVoice((
+ String.format(voiceGetInfoMationTts, "1") + trafficStatus), null);
case 2:
- trackVoiceSearch( 1 );
- AIAssist.getInstance( getContext() ).speakTTSVoice( (
+ trackVoiceSearch(1);
+ AIAssist.getInstance(getContext()).speakTTSVoice((
String.format(
voiceGetInfoMationTts,
"2"
- ) + trafficStatus ), null );
+ ) + trafficStatus), null);
case 3:
- trackVoiceSearch( 1 );
- AIAssist.getInstance( getContext() ).speakTTSVoice( (
+ trackVoiceSearch(1);
+ AIAssist.getInstance(getContext()).speakTTSVoice((
String.format(
voiceGetInfoMationTts,
"3"
- ) + trafficStatus ), null );
+ ) + trafficStatus), null);
default:
- trackVoiceSearch( 1 );
- AIAssist.getInstance( getContext() ).speakTTSVoice( (
+ trackVoiceSearch(1);
+ AIAssist.getInstance(getContext()).speakTTSVoice((
String.format(
voiceGetInfoMationTts,
"多"
- ) + trafficStatus ), null );
+ ) + trafficStatus), null);
}
}
private void initStrings() {
voiceGetInfoMationTts =
- getContext().getResources().getString( R.string.voice_get_informations_tts );
+ getContext().getResources().getString(R.string.voice_get_informations_tts);
searchingVoiceStrings =
- getContext().getResources().getStringArray( R.array.searching_voice_string_array );
+ getContext().getResources().getStringArray(R.array.searching_voice_string_array);
searchfaileVoiceStrings =
- getContext().getResources().getStringArray( R.array.search_fail_voice_array );
+ getContext().getResources().getStringArray(R.array.search_fail_voice_array);
}
- private void speakFailVoice( String string ) {
- AIAssist.getInstance( getContext() ).speakTTSVoice( string, null );
+ private void speakFailVoice(String string) {
+ AIAssist.getInstance(getContext()).speakTTSVoice(string, null);
+ }
+
+ private void speakSearchingVoice() {
+ AIAssist.getInstance(getContext()).speakTTSVoice(searchingVoiceStrings[random.nextInt(3)], null);
}
//上报语音搜索
- private void trackVoiceSearch( int type ) {
+ private void trackVoiceSearch(int type) {
}
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java
index 1d40495348..cdc123a787 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java
@@ -83,4 +83,14 @@ public class TanluCardViewProvider implements IMogoModuleProvider {
public IMogoMarkerClickListener getMarkerClickListener() {
return null;
}
+
+ @Override
+ public String getAppPackage() {
+ return "";
+ }
+
+ @Override
+ public String getAppName() {
+ return "探路";
+ }
}
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java
index 5e196a1cd8..3ddfc14bc3 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java
@@ -13,16 +13,16 @@ import java.util.ArrayList;
* @since 2020-01-05
*/
public class Information extends BaseData implements Parcelable {
- private int type;
- private Double lon;
- private Double lat;
- private String addr;
- private Long generateTime;
- private String cityName;
- private ArrayList items;
- private int distance;
- private String nickName;
- private String headImgUrl;
+ public int type;
+ public Double lon;
+ public Double lat;
+ public String addr;
+ public Long generateTime;
+ public String cityName;
+ public ArrayList items;
+ public int distance;
+ public String nickName;
+ public String headImgUrl;
@Override
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/event/MarkerInfo.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/event/MarkerInfo.java
index f5a6ba68a0..355929a04d 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/event/MarkerInfo.java
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/event/MarkerInfo.java
@@ -8,12 +8,12 @@ import java.io.Serializable;
* @since 2020-01-08
*/
public class MarkerInfo implements Serializable {
- public int type; //封路,还是上报
+ public String type; //封路,还是上报
public String imageUrl;
public Long lon; //经度
public Long lat; //纬度
- public MarkerInfo(int type, String imageUrl, Long lon, Long lat) {
+ public MarkerInfo(String type, /*String imageUrl,*/ Long lon, Long lat) {
this.type = type;
this.imageUrl = imageUrl;
this.lon = lon;
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/MarkerInfoReceiver.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/MarkerInfoReceiver.kt
index bfcb102fb6..b203816a41 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/MarkerInfoReceiver.kt
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/MarkerInfoReceiver.kt
@@ -13,11 +13,11 @@ import org.greenrobot.eventbus.EventBus
class MarkerInfoReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == "com.zhidao.roadcondition.marker.info"){
- var imageUrl = intent.getStringExtra("imageUrl")
+ var type = intent.getStringExtra("type")
var lat = intent.getLongExtra("lat",0)
var lon = intent.getLongExtra("lon",0) //经度
- Log.d("MarkerInfoReceiver", "imageUrl = $imageUrl ---->lat = $lat ---->lon = $lon")
- EventBus.getDefault().post(MarkerInfo(1, imageUrl, lon, lat))
+ Log.d("MarkerInfoReceiver", "type = $type ---->lat = $lat ---->lon = $lon")
+ EventBus.getDefault().post(MarkerInfo(type, lon, lat))
}
}
}
diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_block_up.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_block_up.png
new file mode 100644
index 0000000000..aa80dfe42f
Binary files /dev/null and b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_block_up.png differ
diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_oil_price.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_oil_price.png
new file mode 100644
index 0000000000..2d3321bbdc
Binary files /dev/null and b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_oil_price.png differ
diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_road_closure.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_road_closure.png
new file mode 100644
index 0000000000..7726fc04d4
Binary files /dev/null and b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_road_closure.png differ
diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_traffic_check.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_traffic_check.png
new file mode 100644
index 0000000000..18e28e06f7
Binary files /dev/null and b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_traffic_check.png differ
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java b/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java
index d3ef9f6bdb..e8fe14fe8b 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java
@@ -15,7 +15,6 @@ import java.util.Map;
@Keep
public interface IMogoAnalytics extends IProvider {
-
/**
* 埋点
*
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/cardmanager/IMogoCardChangedListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/cardmanager/IMogoCardChangedListener.java
new file mode 100644
index 0000000000..acc829f05d
--- /dev/null
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/cardmanager/IMogoCardChangedListener.java
@@ -0,0 +1,12 @@
+package com.mogo.service.cardmanager;
+
+/**
+ * @author congtaowang
+ * @since 2020-01-14
+ *
+ * 卡片切换监听
+ */
+public interface IMogoCardChangedListener {
+
+ void onSwitched( int position, String moduleName );
+}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/cardmanager/IMogoCardManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/cardmanager/IMogoCardManager.java
index 2d68cfbe26..30c0ed5f17 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/cardmanager/IMogoCardManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/cardmanager/IMogoCardManager.java
@@ -16,4 +16,22 @@ public interface IMogoCardManager extends IProvider {
* @param cardType
*/
void switch2( String cardType );
+
+ /**
+ * 注册卡片切换监听
+ */
+ void registerCardChangedListener( String tag, IMogoCardChangedListener listener );
+
+ /**
+ * 注销卡片监听
+ */
+ void unregisterCardChangedListener( String tag );
+
+ /**
+ * 回调
+ *
+ * @param position 卡片位置
+ * @param moduleName 卡片名称
+ */
+ void invoke( int position, String moduleName );
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/FragmentStackTransactionListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/FragmentStackTransactionListener.java
similarity index 51%
rename from modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/FragmentStackTransactionListener.java
rename to services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/FragmentStackTransactionListener.java
index 628a6ec496..67c1fa3642 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/FragmentStackTransactionListener.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/FragmentStackTransactionListener.java
@@ -1,4 +1,4 @@
-package com.mogo.module.main.fragmentmanager;
+package com.mogo.service.fragmentmanager;
/**
* @author congtaowang
@@ -8,5 +8,8 @@ package com.mogo.module.main.fragmentmanager;
*/
public interface FragmentStackTransactionListener {
- void onTransaction();
+ /**
+ * @param size 栈内的fragment数量
+ */
+ void onTransaction( int size );
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java
index e0087416d4..1d209b6c31 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java
@@ -1,5 +1,7 @@
package com.mogo.service.fragmentmanager;
+import androidx.appcompat.app.AppCompatActivity;
+
import com.alibaba.android.arouter.facade.template.IProvider;
/**
@@ -33,4 +35,26 @@ public interface IMogoFragmentManager extends IProvider {
* 退出栈中所有fragment
*/
void clearAll();
+
+ /**
+ * 主页注册栈变化监听
+ *
+ * @param listener
+ */
+ void registerMainFragmentStackTransactionListener( FragmentStackTransactionListener listener );
+
+ /**
+ * 其他注册栈变化监听
+ *
+ * @param listener
+ */
+ void addMainFragmentStackTransactionListener( FragmentStackTransactionListener listener );
+
+ /**
+ * 初始化
+ *
+ * @param activity
+ * @param containerId
+ */
+ void init( AppCompatActivity activity, int containerId );
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java
index a9391d094d..d53d29693b 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java
@@ -96,4 +96,18 @@ public interface IMogoModuleProvider extends IProvider {
*/
@Deprecated
IMogoMarkerClickListener getMarkerClickListener();
+
+ /**
+ * 获取模块对应 app 的包名
+ *
+ * @return
+ */
+ String getAppPackage();
+
+ /**
+ * 获取对应模块 app 名称
+ *
+ * @return
+ */
+ String getAppName();
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceListener.java
index 1bb1ae30c8..af8ebc6e3e 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceListener.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceListener.java
@@ -1,7 +1,5 @@
package com.mogo.service.voice;
-import android.content.Intent;
-
import com.mogo.service.intent.IMogoIntentListener;
/**
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceManager.java
index 6fc50fc84e..4a7538d320 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceManager.java
@@ -1,8 +1,5 @@
package com.mogo.service.voice;
-import android.content.Intent;
-
-import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.intent.IMogoIntentManager;
/**
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/FragmentStack.java b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java
similarity index 70%
rename from modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/FragmentStack.java
rename to services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java
index 963bdb25c2..67e41628c2 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/FragmentStack.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java
@@ -1,4 +1,4 @@
-package com.mogo.module.main.fragmentmanager;
+package com.mogo.service.impl.fragmentmanager;
import android.app.Activity;
@@ -7,8 +7,11 @@ import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.mogo.service.fragmentmanager.FragmentDescriptor;
+import com.mogo.service.fragmentmanager.FragmentStackTransactionListener;
import com.mogo.utils.logger.Logger;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Stack;
/**
@@ -31,6 +34,7 @@ public class FragmentStack {
private FragmentDescriptor mCurrentFragment;
private FragmentStackTransactionListener mFragmentStackTransactionListener;
+ private List< FragmentStackTransactionListener > mFragmentStackTransactionListeners = new ArrayList<>();
private FragmentStack() {
}
@@ -82,9 +86,12 @@ public class FragmentStack {
mFragmentStack.push( descriptor );
mCurrentFragment = descriptor;
- if ( descriptor.isNotifyMainModule() && getFragmentStackTransactionListener() != null ) {
- getFragmentStackTransactionListener().onTransaction();
+ if ( descriptor.isNotifyMainModule() ) {
+ if ( mFragmentStackTransactionListener != null ) {
+ mFragmentStackTransactionListener.onTransaction(getStackSize());
+ }
}
+ invokeCallback();
}
public void pop() {
@@ -100,9 +107,12 @@ public class FragmentStack {
}
if ( mFragmentStack.isEmpty() ) {
mFragmentTransaction.commitAllowingStateLoss();
- if ( mCurrentFragment.isNotifyMainModule() && getFragmentStackTransactionListener() != null ) {
- getFragmentStackTransactionListener().onTransaction();
+ if ( mCurrentFragment.isNotifyMainModule() ) {
+ if ( mFragmentStackTransactionListener != null ) {
+ mFragmentStackTransactionListener.onTransaction(getStackSize());
+ }
}
+ invokeCallback();
mCurrentFragment = null;
return;
}
@@ -112,12 +122,23 @@ public class FragmentStack {
mFragmentTransaction.commitAllowingStateLoss();
}
- if ( mCurrentFragment.isNotifyMainModule() && getFragmentStackTransactionListener() != null ) {
- getFragmentStackTransactionListener().onTransaction();
+ if ( mCurrentFragment.isNotifyMainModule() ) {
+ if ( mFragmentStackTransactionListener != null ) {
+ mFragmentStackTransactionListener.onTransaction(getStackSize());
+ }
}
+ invokeCallback();
mCurrentFragment = fragment;
}
+ private void invokeCallback() {
+ if ( mFragmentStackTransactionListeners != null ) {
+ for ( FragmentStackTransactionListener fragmentStackTransactionListener : mFragmentStackTransactionListeners ) {
+ fragmentStackTransactionListener.onTransaction(getStackSize());
+ }
+ }
+ }
+
public boolean isEmpty() {
return mFragmentStack.isEmpty();
}
@@ -126,8 +147,8 @@ public class FragmentStack {
return mFragmentStack.size();
}
- public FragmentStackTransactionListener getFragmentStackTransactionListener() {
- return mFragmentStackTransactionListener;
+ public void addFragmentStackTransactionListener( FragmentStackTransactionListener fragmentStackTransactionListener ) {
+ this.mFragmentStackTransactionListeners.add( fragmentStackTransactionListener );
}
public void setFragmentStackTransactionListener( FragmentStackTransactionListener fragmentStackTransactionListener ) {
@@ -145,8 +166,9 @@ public class FragmentStack {
mFragmentTransaction.commitAllowingStateLoss();
mFragmentStack.clear();
mCurrentFragment = null;
- if ( getFragmentStackTransactionListener() != null ) {
- getFragmentStackTransactionListener().onTransaction();
+ if ( mFragmentStackTransactionListener != null ) {
+ mFragmentStackTransactionListener.onTransaction(getStackSize());
}
+ invokeCallback();
}
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/MogoFragmentManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/MogoFragmentManager.java
similarity index 55%
rename from modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/MogoFragmentManager.java
rename to services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/MogoFragmentManager.java
index 4ab993e679..587aeadb50 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/fragmentmanager/MogoFragmentManager.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/MogoFragmentManager.java
@@ -1,10 +1,13 @@
-package com.mogo.module.main.fragmentmanager;
+package com.mogo.service.impl.fragmentmanager;
import android.content.Context;
+import androidx.appcompat.app.AppCompatActivity;
+
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.fragmentmanager.FragmentDescriptor;
+import com.mogo.service.fragmentmanager.FragmentStackTransactionListener;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
/**
@@ -36,6 +39,21 @@ public class MogoFragmentManager implements IMogoFragmentManager {
FragmentStack.getInstance().clearAll();
}
+ @Override
+ public void registerMainFragmentStackTransactionListener( FragmentStackTransactionListener listener ) {
+ FragmentStack.getInstance().setFragmentStackTransactionListener( listener );
+ }
+
+ @Override
+ public void addMainFragmentStackTransactionListener( FragmentStackTransactionListener listener ) {
+ FragmentStack.getInstance().addFragmentStackTransactionListener( listener );
+ }
+
+ @Override
+ public void init( AppCompatActivity activity, int containerId ) {
+ FragmentStack.getInstance().init( activity, containerId );
+ }
+
@Override
public void init( Context context ) {
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MogoVoiceManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MogoVoiceManager.java
index 1115692e91..3aa8e3643c 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MogoVoiceManager.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MogoVoiceManager.java
@@ -20,21 +20,17 @@ public class MogoVoiceManager implements IMogoVoiceManager {
@Override
public void unregisterIntentListener( String command ) {
- IntentManager.getInstance().unregisterIntentListener( command );
}
@Override
public void invoke( String command, Intent intent ) {
- IntentManager.getInstance().invoke( command, intent );
}
@Override
public void registerIntentListener( String intent, IMogoIntentListener listener ) {
- IntentManager.getInstance().registerIntentListener( intent, listener );
}
@Override
public void init( Context context ) {
- IntentManager.getInstance().init( context );
}
}