Merge branch 'feature/v1.0.0' of gitlab.zhidaoauto.com:ecos/yycp-service/Launcher into feature/v1.0.0

# Conflicts:
#	app/src/main/java/com/mogo/launcher/MogoApplication.java
#	config.gradle
#	gradle.properties
This commit is contained in:
lidongxiu
2020-02-10 09:50:18 +08:00
37 changed files with 553 additions and 174 deletions

2
.idea/misc.xml generated
View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
</project>

View File

@@ -71,6 +71,7 @@ dependencies {
implementation rootProject.ext.dependencies.carcallprovider
implementation rootProject.ext.dependencies.carcall
implementation rootProject.ext.dependencies.modulemedia
implementation rootProject.ext.dependencies.modulefreshnews
implementation rootProject.ext.dependencies.modulepush,{
exclude group:'com.mogo.module',module:'module-common'

View File

@@ -8,6 +8,8 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.auto.zhidao.logsdk.CrashSystem;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.launcher.news.FreshNewsConstants;
import com.mogo.module.adcard.AdCardConstants;
import com.mogo.module.back.BackToMainHomeManager;
import com.mogo.module.carchatting.card.CallChatConstant;
import com.mogo.module.common.MogoModule;
@@ -43,14 +45,15 @@ public class MogoApplication extends AbsMogoApplication {
// MogoModulePaths.addModule( new MogoModule( Demo2Constants.TAG, "CARD_DEMO2" ) );
DebugConfig.setNetMode(BuildConfig.NET_ENV);
//运营位卡片,需要默认显示,放在第一个加载
// MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, OnLineCarConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI));
MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME));
MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(MediaConstants.TAG, MediaConstants.MODULE_TYPE));
MogoModulePaths.addModule(new MogoModule( FreshNewsConstants.TAG, FreshNewsConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(PushUIConstants.TAG, PushUIConstants.TAG));
// BackToMainHomeManager.addMainHomeView();
// BackToMainHomeManager.addMainHomeView();
}
@Override

View File

@@ -107,6 +107,7 @@ ext {
modulepush : "com.mogo.module:module-push:${MOGO_MODULE_PUSH_VERSION}",
//运营位卡片
moduleadcard : "com.mogo.module:module-adcard:${MOGO_MODULE_AD_CARD_VERSION}",
modulefreshnews : "com.mogo.module:module-freshnews:${MOGO_MODULE_FRESH_NEWS_VERSION}",
//统一返回键
mogomoduleback : "com.mogo.module:module-back:${MOGO_MODULE_BACK_VERSION}",
// 长链

View File

@@ -53,6 +53,7 @@ MOGO_MODULE_MEDIA_VERSION=1.0.0-SNAPSHOT
MOGO_MODULE_PUSH_VERSION=1.0.0-SNAPSHOT
MOGO_MODULE_SEARCH_VERSION=1.0.0-SNAPSHOT
MOGO_MODULE_AD_CARD_VERSION=1.0.0-SNAPSHOT
MOGO_MODULE_FRESH_NEWS_VERSION=1.0.0-SNAPSHOT
MOGO_MODULE_BACK_VERSION=1.0.0-SNAPSHOT

View File

@@ -297,4 +297,8 @@ public class AMapMarkerWrapper implements IMogoMarker, Observer {
public Marker getMarker() {
return mMarker;
}
public MogoMarkerOptions getMogoMarkerOptions() {
return mMogoMarkerOptions;
}
}

View File

@@ -15,7 +15,9 @@ import com.amap.api.navi.model.AimLessModeCongestionInfo;
import com.amap.api.navi.model.AimLessModeStat;
import com.amap.api.navi.model.NaviInfo;
import com.autonavi.tbt.TrafficFacilityInfo;
import com.mogo.map.MogoLatLng;
import com.mogo.utils.logger.Logger;
import java.util.List;
/**
* @author congtaowang
@@ -229,4 +231,6 @@ public abstract class AMapNaviListenerAdapter implements AMapNaviListener {
public void onNaviRouteNotify( AMapNaviRouteNotifyData aMapNaviRouteNotifyData ) {
}
}

View File

@@ -6,8 +6,11 @@ import android.text.TextUtils;
import com.amap.api.maps.AMap;
import com.amap.api.navi.model.AMapNaviPath;
import com.amap.api.navi.model.AMapNaviStep;
import com.amap.api.navi.model.NaviLatLng;
import com.mogo.map.MogoLatLng;
import com.mogo.map.impl.amap.overlay.RouteOverLayWrapper;
import java.util.ArrayList;
import java.util.List;
/**
@@ -33,14 +36,14 @@ public class CalculatePathItem {
return mPath;
}
public RouteOverLayWrapper getOverLazWrapper( boolean createIfNull ) {
if ( mOverLazWrapper == null && createIfNull ) {
mOverLazWrapper = new RouteOverLayWrapper( mContext, mAMap, mPath );
public RouteOverLayWrapper getOverLazWrapper(boolean createIfNull) {
if (mOverLazWrapper == null && createIfNull) {
mOverLazWrapper = new RouteOverLayWrapper(mContext, mAMap, mPath);
}
return mOverLazWrapper;
}
public CalculatePathItem( Context context, AMap amap, int id, AMapNaviPath path ) {
public CalculatePathItem(Context context, AMap amap, int id, AMapNaviPath path) {
mContext = context;
mAMap = amap;
this.mId = id;
@@ -52,41 +55,41 @@ public class CalculatePathItem {
}
public String getTime() {
if ( mTimeBuilder == null ) {
if (mTimeBuilder == null) {
final int time = mPath.getAllTime();
mTimeBuilder = new StringBuilder();
fillFormatTime( time, mTimeBuilder );
fillFormatTime(time, mTimeBuilder);
}
return mTimeBuilder.toString();
}
private StringBuilder mTimeBuilder;
private void fillFormatTime( int seconds, StringBuilder builder ) {
// int days = seconds / ( 24 * 60 * 60 );
// if ( days > 0 ) {
// builder.append( days ).append( "天" );
// }
// seconds -= days * 24 * 60 * 60;
int hours = seconds / ( 60 * 60 );
if ( hours > 0 ) {
builder.append( hours ).append( "小时" );
private void fillFormatTime(int seconds, StringBuilder builder) {
// int days = seconds / ( 24 * 60 * 60 );
// if ( days > 0 ) {
// builder.append( days ).append( "天" );
// }
// seconds -= days * 24 * 60 * 60;
int hours = seconds / (60 * 60);
if (hours > 0) {
builder.append(hours).append("小时");
}
seconds -= hours * 60 * 60;
int min = seconds / 60;
builder.append( min > 1 ? min : 1 ).append( "分钟" );
builder.append(min > 1 ? min : 1).append("分钟");
}
private String mDistanceCacheStr = "";
public String getDistance() {
if ( TextUtils.isEmpty( mDistanceCacheStr ) ) {
if (TextUtils.isEmpty(mDistanceCacheStr)) {
int distance = mPath.getAllLength();
if ( distance == -1 ) {
if (distance == -1) {
mDistanceCacheStr = "路程总程未获取";
}
if ( distance >= 1000 ) {
mDistanceCacheStr = String.format( "%.1f公里", ( float ) distance / 1000 );
if (distance >= 1000) {
mDistanceCacheStr = String.format("%.1f公里", (float) distance / 1000);
} else {
mDistanceCacheStr = distance + "";
}
@@ -97,14 +100,14 @@ public class CalculatePathItem {
private StringBuilder mDescBuilder = null;
public String getDesc() {
if ( mDescBuilder == null ) {
if (mDescBuilder == null) {
mDescBuilder = new StringBuilder();
int lightsSize = getTrafficNumber();
if ( lightsSize > 0 ) {
mDescBuilder.append( "红绿灯" ).append( lightsSize ).append( "" );
if (lightsSize > 0) {
mDescBuilder.append("红绿灯").append(lightsSize).append("");
}
mDescBuilder.append( " " );
mDescBuilder.append( "收费" ).append( mPath.getTollCost() ).append( "" );
mDescBuilder.append(" ");
mDescBuilder.append("收费").append(mPath.getTollCost()).append("");
}
return mDescBuilder.toString();
@@ -112,11 +115,11 @@ public class CalculatePathItem {
public int getTrafficNumber() {
int trafficLightNumber = 0;
if ( mPath == null ) {
if (mPath == null) {
return trafficLightNumber;
}
List< AMapNaviStep > steps = mPath.getSteps();
for ( AMapNaviStep step : steps ) {
List<AMapNaviStep> steps = mPath.getSteps();
for (AMapNaviStep step : steps) {
trafficLightNumber += step.getTrafficLightNumber();
}
return trafficLightNumber;
@@ -126,9 +129,21 @@ public class CalculatePathItem {
mContext = null;
mAMap = null;
mPath = null;
if ( mOverLazWrapper != null ) {
if (mOverLazWrapper != null) {
mOverLazWrapper.destroy();
}
mOverLazWrapper = null;
}
public List<MogoLatLng> getCoordList() {
ArrayList<MogoLatLng> mogoLatLngs = new ArrayList<>();
for (NaviLatLng latlng : mPath.getCoordList()
) {
MogoLatLng mogoLatLng =
new MogoLatLng(latlng.getLatitude(), latlng.getLongitude());
mogoLatLngs.add(mogoLatLng);
}
return mogoLatLngs;
}
}

View File

@@ -162,6 +162,13 @@ public class NaviClient implements IMogoNavi {
return null;
}
@Override public List<MogoLatLng> getCalculatedPathPos() {
if ( mAMapNaviListener != null ) {
return mAMapNaviListener.getCalculatedPathPos();
}
return null;
}
@Override
public OnCalculatePathItemClickInteraction getItemClickInteraction() {
if ( mAMapNaviListener != null ) {

View File

@@ -15,6 +15,7 @@ import com.amap.api.navi.model.AMapNaviCameraInfo;
import com.amap.api.navi.model.AMapNaviInfo;
import com.amap.api.navi.model.AMapNaviLocation;
import com.amap.api.navi.model.NaviInfo;
import com.mogo.map.MogoLatLng;
import com.mogo.map.impl.amap.AMapWrapper;
import com.mogo.map.impl.amap.message.AMapMessageManager;
import com.mogo.map.impl.amap.utils.ObjectUtils;
@@ -231,6 +232,16 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter {
return null;
}
public List<MogoLatLng> getCalculatedPathPos() {
if ( mNaviOverlayHelper != null ) {
return mNaviOverlayHelper.getCalculatedPathPos();
}
return null;
}
public OnCalculatePathItemClickInteraction getItemClickInteraction() {
if ( mNaviOverlayHelper != null ) {
return mNaviOverlayHelper.getItemClickInteraction();

View File

@@ -12,6 +12,8 @@ import com.amap.api.navi.AMapNavi;
import com.amap.api.navi.model.AMapNaviLocation;
import com.amap.api.navi.model.AMapNaviPath;
import com.amap.api.navi.model.NaviInfo;
import com.amap.api.navi.model.NaviLatLng;
import com.mogo.map.MogoLatLng;
import com.mogo.map.impl.amap.AMapWrapper;
import com.mogo.map.impl.amap.R;
import com.mogo.map.impl.amap.overlay.RouteOverLayWrapper;
@@ -53,14 +55,14 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
// 规划的路线显示边距
private Rect mBoundRect = null;
private List< CalculatePathItem > mCalculatePathItems;
private List< MogoCalculatePath > mPaths = new ArrayList<>();
private List<CalculatePathItem> mCalculatePathItems;
private List<MogoCalculatePath> mPaths = new ArrayList<>();
private int mSelectedPathId;
private CalculatePathItem mSelectedCalculatePathItem;
private OnCalculatePathItemClickInteraction mLineClickInteraction;
public NaviOverlayHelper( AMapNavi mAMapNavi, AMap mAMap, Context mContext ) {
public NaviOverlayHelper(AMapNavi mAMapNavi, AMap mAMap, Context mContext) {
this.mAMapNavi = mAMapNavi;
this.mAMap = mAMap;
this.mContext = mContext;
@@ -73,11 +75,11 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
public void showCalculatedPaths() {
clearCalculatedOverlay();
mCalculatePathItems = getSortedPaths();
if ( mCalculatePathItems == null || mCalculatePathItems.isEmpty() ) {
if (mCalculatePathItems == null || mCalculatePathItems.isEmpty()) {
return;
}
showPathsBound( mCalculatePathItems.get( 0 ).getPath().getBoundsForPath() );
renderPathOverlay( mCalculatePathItems );
showPathsBound(mCalculatePathItems.get(0).getPath().getBoundsForPath());
renderPathOverlay(mCalculatePathItems);
}
/**
@@ -85,40 +87,41 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
*
* @return 排序好的路径规划列表
*/
private List< CalculatePathItem > getSortedPaths() {
private List<CalculatePathItem> getSortedPaths() {
checkAMapInstance();
final Map< Integer, AMapNaviPath > pathMap = mAMapNavi.getNaviPaths();
if ( pathMap == null || pathMap.isEmpty() ) {
final Map<Integer, AMapNaviPath> pathMap = mAMapNavi.getNaviPaths();
if (pathMap == null || pathMap.isEmpty()) {
return null;
}
TreeMap< Integer, AMapNaviPath > sortedMap = new TreeMap< Integer, AMapNaviPath >( new Comparator< Integer >() {
@Override
public int compare( Integer obj1, Integer obj2 ) {
if ( obj1 != null ) {
return obj1.compareTo( obj2 );
TreeMap<Integer, AMapNaviPath> sortedMap =
new TreeMap<Integer, AMapNaviPath>(new Comparator<Integer>() {
@Override
public int compare(Integer obj1, Integer obj2) {
if (obj1 != null) {
return obj1.compareTo(obj2);
}
if (obj2 != null) {
return obj2.compareTo(obj1);
}
return 0;
}
if ( obj2 != null ) {
return obj2.compareTo( obj1 );
}
return 0;
}
} );
sortedMap.putAll( pathMap );
});
sortedMap.putAll(pathMap);
final List< CalculatePathItem > items = new ArrayList<>();
for ( Map.Entry< Integer, AMapNaviPath > entry : sortedMap.entrySet() ) {
if ( entry == null || entry.getKey() == null || entry.getValue() == null ) {
final List<CalculatePathItem> items = new ArrayList<>();
for (Map.Entry<Integer, AMapNaviPath> entry : sortedMap.entrySet()) {
if (entry == null || entry.getKey() == null || entry.getValue() == null) {
continue;
}
items.add( new CalculatePathItem( mContext, mAMap, entry.getKey(), entry.getValue() ) );
items.add(new CalculatePathItem(mContext, mAMap, entry.getKey(), entry.getValue()));
}
return items;
}
private void calculateBoundArea() {
if ( mBoundRect == null ) {
if (mBoundRect == null) {
mBoundRect = new Rect();
final int padding = WindowUtils.dip2px( mContext, 80 );
final int padding = WindowUtils.dip2px(mContext, 80);
mBoundRect.left = padding;
mBoundRect.right = padding;
mBoundRect.top = padding;
@@ -128,57 +131,59 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
/**
* 将规划好的路径显示在视野内
*
* @param bounds
*/
private void showPathsBound( LatLngBounds bounds ) {
private void showPathsBound(LatLngBounds bounds) {
checkAMapInstance();
mAMap.animateCamera( CameraUpdateFactory.newLatLngBoundsRect( bounds, mBoundRect.left, mBoundRect.right, mBoundRect.top, mBoundRect.bottom ) );
mAMap.animateCamera(
CameraUpdateFactory.newLatLngBoundsRect(bounds, mBoundRect.left, mBoundRect.right,
mBoundRect.top, mBoundRect.bottom));
}
private void checkAMapInstance() {
if ( mAMap == null ) {
if (mAMap == null) {
mAMap = AMapWrapper.getAMap();
}
}
public void renderPathOverlay( List< CalculatePathItem > paths ) {
if ( paths == null || paths.size() == 0 ) {
public void renderPathOverlay(List<CalculatePathItem> paths) {
if (paths == null || paths.size() == 0) {
return;
}
for ( int i = 0; i < paths.size(); i++ ) {
final CalculatePathItem item = paths.get( i );
if ( item == null || item.getPath() == null ) {
for (int i = 0; i < paths.size(); i++) {
final CalculatePathItem item = paths.get(i);
if (item == null || item.getPath() == null) {
continue;
}
RouteOverLayWrapper wrapper = item.getOverLazWrapper( true );
wrapper.setTrafficLightsVisible( false );
RouteOverLayWrapper wrapper = item.getOverLazWrapper(true);
wrapper.setTrafficLightsVisible(false);
// 默认选中第一个
if ( i == 0 ) {
if (i == 0) {
mSelectedPathId = item.getId();
mSelectedCalculatePathItem = item;
wrapper.setStartBitmap( R.drawable.ic_navi_start ).setEndBitmap( R.drawable.ic_navi_target );
mAMapNavi.selectRouteId( item.getId() );
wrapper.setStartBitmap(R.drawable.ic_navi_start)
.setEndBitmap(R.drawable.ic_navi_target);
mAMapNavi.selectRouteId(item.getId());
}
wrapper.addToMap();
wrapper.setTransparency( i == 0 ? AMAP_ROUTE_OVERLAY_TRANSPARENCY_SELECTED : AMAP_ROUTE_OVERLAY_TRANSPARENCY_UNSELECTED );
wrapper.setTransparency(i == 0 ? AMAP_ROUTE_OVERLAY_TRANSPARENCY_SELECTED
: AMAP_ROUTE_OVERLAY_TRANSPARENCY_UNSELECTED);
}
}
public void clearCalculatedOverlay() {
if ( mCalculatePathItems != null && !mCalculatePathItems.isEmpty() ) {
for ( CalculatePathItem calculatePathItem : mCalculatePathItems ) {
if ( calculatePathItem == null ) {
if (mCalculatePathItems != null && !mCalculatePathItems.isEmpty()) {
for (CalculatePathItem calculatePathItem : mCalculatePathItems) {
if (calculatePathItem == null) {
continue;
}
RouteOverLayWrapper wrapper = calculatePathItem.getOverLazWrapper( false );
if ( wrapper != null ) {
RouteOverLayWrapper wrapper = calculatePathItem.getOverLazWrapper(false);
if (wrapper != null) {
wrapper.destroy();
}
}
mCalculatePathItems.clear();
}
if ( mPaths != null ) {
if (mPaths != null) {
mPaths.clear();
}
}
@@ -187,68 +192,67 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
* 是否切换成功
*
* @param polyline 选中的线
* @return
*/
public boolean handleClickedPolyline( Polyline polyline, boolean isNaviing ) {
if ( polyline == null ) {
public boolean handleClickedPolyline(Polyline polyline, boolean isNaviing) {
if (polyline == null) {
return false;
}
if ( mPaths != null && !mPaths.isEmpty() ) {
for ( MogoCalculatePath path : mPaths ) {
if ( TextUtils.equals( path.getTagId(), polyline.getId() ) ) {
if ( mLineClickInteraction != null ) {
mLineClickInteraction.onItemClicked( path.getTagId() );
if (mPaths != null && !mPaths.isEmpty()) {
for (MogoCalculatePath path : mPaths) {
if (TextUtils.equals(path.getTagId(), polyline.getId())) {
if (mLineClickInteraction != null) {
mLineClickInteraction.onItemClicked(path.getTagId());
break;
}
}
}
}
return handleClickedPolyline( polyline.getId() );
return handleClickedPolyline(polyline.getId());
}
private boolean handleClickedPolyline( String id ) {
if ( id == null ) {
private boolean handleClickedPolyline(String id) {
if (id == null) {
return false;
}
Logger.i( TAG, "polyline id = " + id );
mSelectedCalculatePathItem = isCalculatePolyline( id );
if ( mSelectedCalculatePathItem == null ) {
Logger.i(TAG, "polyline id = " + id);
mSelectedCalculatePathItem = isCalculatePolyline(id);
if (mSelectedCalculatePathItem == null) {
return false;
}
mSelectedPathId = mSelectedCalculatePathItem.getId();
if ( mCalculatePathItems != null ) {
for ( CalculatePathItem item : mCalculatePathItems ) {
final RouteOverLayWrapper wrapper = item.getOverLazWrapper( false );
if ( wrapper == null ) {
if (mCalculatePathItems != null) {
for (CalculatePathItem item : mCalculatePathItems) {
final RouteOverLayWrapper wrapper = item.getOverLazWrapper(false);
if (wrapper == null) {
continue;
}
wrapper.setTransparency(
item == mSelectedCalculatePathItem
? AMAP_ROUTE_OVERLAY_TRANSPARENCY_SELECTED
: AMAP_ROUTE_OVERLAY_TRANSPARENCY_UNSELECTED
item == mSelectedCalculatePathItem
? AMAP_ROUTE_OVERLAY_TRANSPARENCY_SELECTED
: AMAP_ROUTE_OVERLAY_TRANSPARENCY_UNSELECTED
);
}
}
return true;
}
private CalculatePathItem isCalculatePolyline( String id ) {
private CalculatePathItem isCalculatePolyline(String id) {
CalculatePathItem result = null;
if ( mCalculatePathItems == null || mCalculatePathItems.isEmpty() ) {
if (mCalculatePathItems == null || mCalculatePathItems.isEmpty()) {
return result;
}
for ( CalculatePathItem calculatePathItem : mCalculatePathItems ) {
if ( calculatePathItem == null ) {
for (CalculatePathItem calculatePathItem : mCalculatePathItems) {
if (calculatePathItem == null) {
continue;
}
final RouteOverLayWrapper wrapper = calculatePathItem.getOverLazWrapper( false );
if ( wrapper == null ) {
final RouteOverLayWrapper wrapper = calculatePathItem.getOverLazWrapper(false);
if (wrapper == null) {
continue;
}
if ( wrapper.getTrafficColorfulPolyline() == null ) {
if (wrapper.getTrafficColorfulPolyline() == null) {
continue;
}
if ( TextUtils.equals( wrapper.getTrafficColorfulPolyline().getId(), id ) ) {
if (TextUtils.equals(wrapper.getTrafficColorfulPolyline().getId(), id)) {
result = calculatePathItem;
}
}
@@ -261,67 +265,85 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction {
/**
* 车辆拐弯时绘制转向箭头
*
* @param naviInfo
*/
public void handleNaviInfoUpdate( NaviInfo naviInfo ) {
if ( mSelectedCalculatePathItem != null ) {
RouteOverLayWrapper wrapper = mSelectedCalculatePathItem.getOverLazWrapper( false );
if ( wrapper != null ) {
wrapper.drawArrow( naviInfo );
public void handleNaviInfoUpdate(NaviInfo naviInfo) {
if (mSelectedCalculatePathItem != null) {
RouteOverLayWrapper wrapper = mSelectedCalculatePathItem.getOverLazWrapper(false);
if (wrapper != null) {
wrapper.drawArrow(naviInfo);
}
}
}
public void handlePassedLocation( AMapNaviLocation location ) {
if ( mSelectedCalculatePathItem != null ) {
RouteOverLayWrapper wrapper = mSelectedCalculatePathItem.getOverLazWrapper( false );
if ( wrapper != null ) {
wrapper.updatePolyline( location );
public void handlePassedLocation(AMapNaviLocation location) {
if (mSelectedCalculatePathItem != null) {
RouteOverLayWrapper wrapper = mSelectedCalculatePathItem.getOverLazWrapper(false);
if (wrapper != null) {
wrapper.updatePolyline(location);
}
}
}
public List< MogoCalculatePath > getCalculateStrategies() {
if ( mCalculatePathItems != null && !mCalculatePathItems.isEmpty() ) {
for ( CalculatePathItem calculatePathItem : mCalculatePathItems ) {
public List<MogoCalculatePath> getCalculateStrategies() {
if (mCalculatePathItems != null && !mCalculatePathItems.isEmpty()) {
for (CalculatePathItem calculatePathItem : mCalculatePathItems) {
MogoCalculatePath path = new MogoCalculatePath();
path.setDistance( calculatePathItem.getDistance() );
path.setPathId( calculatePathItem.getId() );
path.setStrategyName( calculatePathItem.getStrategyName() );
path.setTime( calculatePathItem.getTime() );
path.setTrafficLights( calculatePathItem.getTrafficNumber() );
mPaths.add( path );
final RouteOverLayWrapper wrapper = calculatePathItem.getOverLazWrapper( true );
if ( wrapper == null ) {
path.setDistance(calculatePathItem.getDistance());
path.setPathId(calculatePathItem.getId());
path.setStrategyName(calculatePathItem.getStrategyName());
path.setTime(calculatePathItem.getTime());
List<NaviLatLng> coordList = calculatePathItem.getPath().getCoordList();
ArrayList<MogoLatLng> mogoLatLngs = new ArrayList<>();
for (NaviLatLng latlng : coordList
) {
MogoLatLng mogoLatLng =
new MogoLatLng(latlng.getLatitude(), latlng.getLongitude());
mogoLatLngs.add(mogoLatLng);
}
path.setCoordList(mogoLatLngs);
path.setTrafficLights(calculatePathItem.getTrafficNumber());
mPaths.add(path);
final RouteOverLayWrapper wrapper = calculatePathItem.getOverLazWrapper(true);
if (wrapper == null) {
continue;
}
if ( wrapper.getTrafficColorfulPolyline() == null ) {
if (wrapper.getTrafficColorfulPolyline() == null) {
continue;
}
path.setTagId( wrapper.getTrafficColorfulPolyline().getId() );
path.setTagId(wrapper.getTrafficColorfulPolyline().getId());
}
}
return mPaths;
}
public List<MogoLatLng> getCalculatedPathPos() {
if (mSelectedCalculatePathItem != null) {
return mSelectedCalculatePathItem.getCoordList();
}
//if (mPaths != null && !mPaths.isEmpty()) {
// return mPaths.get(0).getCoordList();
//}
return null;
}
@Override
public void onItemClicked( String tagId ) {
handleClickedPolyline( tagId );
mAMapNavi.selectRouteId( getSelectedPathId() );
public void onItemClicked(String tagId) {
handleClickedPolyline(tagId);
mAMapNavi.selectRouteId(getSelectedPathId());
}
public OnCalculatePathItemClickInteraction getItemClickInteraction() {
return this;
}
public void setLineClickInteraction( OnCalculatePathItemClickInteraction lineClickInteraction ) {
public void setLineClickInteraction(OnCalculatePathItemClickInteraction lineClickInteraction) {
mLineClickInteraction = lineClickInteraction;
}
public void setCalculatePathDisplayBounds( Rect bounds ) {
if ( bounds != null ) {
public void setCalculatePathDisplayBounds(Rect bounds) {
if (bounds != null) {
mBoundRect = bounds;
}
}

View File

@@ -79,6 +79,17 @@ public interface IMogoNavi {
*/
List< MogoCalculatePath > getCalculatedStrategies();
/**
* 获取路线坐标点
*
* @return 规划的路线上所有的坐标点
*/
List< MogoLatLng > getCalculatedPathPos();
/**
* 获取列表Item点击回调
*

View File

@@ -1,5 +1,8 @@
package com.mogo.map.navi;
import com.mogo.map.MogoLatLng;
import java.util.List;
/**
* @author congtaowang
* @since 2020-01-08
@@ -38,6 +41,17 @@ public class MogoCalculatePath {
*/
private int mPathId;
private List<MogoLatLng> coordList;
public List<MogoLatLng> getCoordList() {
return coordList;
}
public void setCoordList(List<MogoLatLng> coordList) {
this.coordList = coordList;
}
public MogoCalculatePath() {
}

View File

@@ -107,6 +107,13 @@ public class MogoNavi implements IMogoNavi {
return null;
}
@Override public List<MogoLatLng> getCalculatedPathPos() {
if (mDelegate != null) {
return mDelegate.getCalculatedPathPos();
}
return null;
}
@Override
public OnCalculatePathItemClickInteraction getItemClickInteraction() {
if (mDelegate != null) {

View File

@@ -108,6 +108,13 @@ public class AppsFragment extends MvpFragment< AppsView, AppsPresenter > impleme
mLoadingView.setVisibility( View.GONE );
}
@Override
public void exit() {
if ( mExit != null ) {
mExit.performClick();
}
}
@Override
public Animation onCreateAnimation( int transit, boolean enter, int nextAnim ) {
TranslateAnimation animation = null;

View File

@@ -1,19 +1,19 @@
package com.mogo.module.apps;
import android.content.Intent;
import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.module.apps.applaunch.AppLaunchFilter;
import com.mogo.module.apps.applaunch.AppLauncher;
import com.mogo.module.apps.applaunch.CardAppLauncher;
import com.mogo.module.apps.model.AppInfo;
import com.mogo.module.apps.model.AppsModel;
import com.mogo.module.apps.utils.LaunchUtils;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.cardmanager.IMogoCardManager;
import com.mogo.utils.ThreadPoolService;
import com.mogo.utils.TipToast;
import com.mogo.utils.UiThreadHandler;
import java.util.HashMap;
@@ -30,9 +30,16 @@ public class AppsPresenter extends Presenter< AppsView > {
private static final String TAG = "AppsPresenter";
private IMogoAnalytics mAnalytics;
private AppLaunchFilter mLauncher;
private IMogoCardManager mCardManager;
public AppsPresenter( AppsView view ) {
super( view );
mCardManager = ( IMogoCardManager ) ARouter.getInstance().build( MogoServicePaths.PATH_CARD_MANAGER ).navigation( getContext() );
CardAppLauncher cardAppLauncher = new CardAppLauncher( this, mCardManager );
cardAppLauncher.setNext( new AppLauncher() );
mLauncher = cardAppLauncher;
}
@Override
@@ -68,9 +75,9 @@ public class AppsPresenter extends Presenter< AppsView > {
trackAppClicked( appInfo );
try {
LaunchUtils.launchByPkg( getContext(), appInfo.getPackageName() );
mLauncher.launch( getContext(), appInfo );
} catch ( Exception e ) {
TipToast.shortTip( R.string.module_apps_str_no_app );
}
}
@@ -92,5 +99,12 @@ public class AppsPresenter extends Presenter< AppsView > {
super.onDestroy( owner );
AppsListChangedLiveData.getInstance().release();
mView = null;
mLauncher.destroy();
}
public void exit() {
if ( mView != null ) {
mView.exit();
}
}
}

View File

@@ -20,4 +20,9 @@ public interface AppsView extends IView {
* @param appInfos
*/
void renderApps( Map< Integer, List< AppInfo > > appInfos );
/**
* 退出列表页面
*/
void exit();
}

View File

@@ -0,0 +1,18 @@
package com.mogo.module.apps.applaunch;
import android.content.Context;
import com.mogo.module.apps.model.AppInfo;
/**
* @author congtaowang
* @since 2020-02-09
* <p>
* 按指定方式启动指定的app
*/
public interface AppLaunchFilter {
void launch( Context context, AppInfo appInfo );
void destroy();
}

View File

@@ -0,0 +1,38 @@
package com.mogo.module.apps.applaunch;
import android.content.Context;
import com.mogo.module.apps.R;
import com.mogo.module.apps.model.AppInfo;
import com.mogo.module.apps.utils.LaunchUtils;
import com.mogo.utils.TipToast;
import com.mogo.utils.logger.Logger;
/**
* @author congtaowang
* @since 2020-02-09
* <p>
* 描述
*/
public class AppLauncher extends BaseAppLauncher {
private static final String TAG = "AppLauncher";
@Override
public void launch( Context context, AppInfo appInfo ) {
try {
LaunchUtils.launchByPkg( context, appInfo.getPackageName() );
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
TipToast.shortTip( R.string.module_apps_str_no_app );
}
}
@Override
public void destroy() {
if ( getNext() != null ) {
getNext().destroy();
setNext( null );
}
}
}

View File

@@ -0,0 +1,20 @@
package com.mogo.module.apps.applaunch;
/**
* @author congtaowang
* @since 2020-02-09
* <p>
* 描述
*/
public abstract class BaseAppLauncher implements AppLaunchFilter {
private AppLaunchFilter mNext;
public AppLaunchFilter getNext() {
return mNext;
}
public void setNext( AppLaunchFilter next ) {
this.mNext = next;
}
}

View File

@@ -0,0 +1,57 @@
package com.mogo.module.apps.applaunch;
import android.content.Context;
import com.mogo.module.apps.AppsPresenter;
import com.mogo.module.apps.model.AppInfo;
import com.mogo.service.cardmanager.IMogoCardManager;
import java.util.HashMap;
import java.util.Map;
/**
* @author congtaowang
* @since 2020-02-09
* <p>
* 描述
*/
public class CardAppLauncher extends BaseAppLauncher {
private static Map< String, String > sCardApps = new HashMap<>();
static {
sCardApps.put( "com.zhidao.roadcondition.split", "CARD_TYPE_ROAD_CONDITION" );
sCardApps.put( "com.zhidao.roadcondition", "CARD_TYPE_ROAD_CONDITION" );
sCardApps.put( "com.zhidao.imdemo", "CARD_TYPE_CARS_CHATTING" );
}
private AppsPresenter mAppsPresenter;
private IMogoCardManager mCardManager;
public CardAppLauncher( AppsPresenter mAppsPresenter, IMogoCardManager mCardManager ) {
this.mAppsPresenter = mAppsPresenter;
this.mCardManager = mCardManager;
}
@Override
public void launch( Context context, AppInfo appInfo ) {
if ( sCardApps.containsKey( appInfo.getPackageName() ) ) {
mCardManager.switch2( sCardApps.get( appInfo.getPackageName() ) );
mAppsPresenter.exit();
} else {
if ( getNext() != null ) {
getNext().launch( context, appInfo );
}
}
}
@Override
public void destroy() {
mAppsPresenter = null;
mCardManager = null;
if ( getNext() != null ) {
getNext().destroy();
setNext( null );
}
}
}

View File

@@ -0,0 +1,17 @@
package com.mogo.module.apps.model;
/**
* @author congtaowang
* @since 2020-02-09
* <p>
* 描述
*/
public class CardAppInfo extends AppInfo {
private String mCardType;
public CardAppInfo( AppInfo app, String cardType ) {
super( app.getName(), app.getPackageName(), app.getVersionName(), app.getVersionCode(), app.getIcon() );
this.mCardType = cardType;
}
}

View File

@@ -6,6 +6,7 @@ package com.mogo.module.common.entity;
*/
public class MarkerNoveltyInfo {
private String type;
private String sn;
private MarkerLocation location;
/**
* @see MarkerPoiTypeEnum
@@ -45,6 +46,13 @@ public class MarkerNoveltyInfo {
this.type = type;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public class ContentData {
private String content;
@@ -53,6 +61,7 @@ public class MarkerNoveltyInfo {
private String infoId;
private long likeNum;
private String title;
private String gasPrices;
private boolean displayNavigation;
private String styleType;
@@ -120,6 +129,14 @@ public class MarkerNoveltyInfo {
this.styleType = styleType;
}
public String getGasPrices() {
return gasPrices;
}
public void setGasPrices(String gasPrices) {
this.gasPrices = gasPrices;
}
@Override
public String toString() {
return "ContentData{" +
@@ -129,6 +146,7 @@ public class MarkerNoveltyInfo {
", infoId='" + infoId + '\'' +
", likeNum=" + likeNum +
", title='" + title + '\'' +
", gasPrices='" + gasPrices + '\'' +
", displayNavigation=" + displayNavigation +
", styleType='" + styleType + '\'' +
'}';
@@ -139,6 +157,7 @@ public class MarkerNoveltyInfo {
public String toString() {
return "MarkerNoveltyInfo{" +
"type='" + type + '\'' +
", sn='" + sn + '\'' +
", location=" + location +
", poiType='" + poiType + '\'' +
", contentData=" + contentData +

View File

@@ -123,8 +123,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mUploadRoadCondition = findViewById( R.id.module_entrance_id_upload_road_condition );
mUploadRoadCondition.setOnClickListener( view -> {
ShareControl shareControl = new ShareControl();
shareControl.showDialog( getActivity() );
ShareControl.getInstance(getActivity()).showDialog();
} );
mVRMode = findViewById( R.id.module_entrance_id_vr_mode );

View File

@@ -1,6 +1,7 @@
package com.mogo.module.main;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.FrameLayout;
@@ -234,7 +235,7 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
// 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。
mMogoModuleHandler.loadModules();
loadContainerModules();
loadCardModules();
new Handler().postDelayed(() -> loadCardModules(), 5000);
// 显示左边遮罩
mLeftShadowFrame.setVisibility(View.VISIBLE);

View File

@@ -45,7 +45,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
override fun onCalculateSuccess() {
var calculatedStrategies = SearchServiceHolder.getNavi()
.calculatedStrategies
if (calculatedStrategies != null && calculatedStrategies.size > 0) {
mAdapter.setDatas(calculatedStrategies)
mAdapter.selectTag = calculatedStrategies[0].tagId

View File

@@ -406,6 +406,8 @@ public class MogoServiceProvider implements IMogoModuleProvider,
// 部分非用户操作导致地图视图变化:绘线、圈点等不触发用户刷新
// 消费状态
if ( mStatusManager.isUserInteracted() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
return;
}

View File

@@ -15,7 +15,7 @@ public interface IShareControl {
* 显示对话框
*/
@Keep
void showDialog(Context context);
void showDialog(/*Context context*/);
/**
* 对话框消失

View File

@@ -1,6 +1,9 @@
package com.mogo.module.share;
import android.content.Context;
import com.mogo.map.MogoNavi;
import com.mogo.map.impl.amap.navi.NaviClient;
import com.mogo.module.share.dialog.LaucherShareDialog;
/**
@@ -9,15 +12,36 @@ import com.mogo.module.share.dialog.LaucherShareDialog;
* @since 2020-01-10
*/
public class ShareControl implements IShareControl {
private static volatile ShareControl sInstance;
private Context mContext;
private ShareControl(Context context) {
mContext = context;
}
public static ShareControl getInstance(Context context) {
if (sInstance == null) {
synchronized (ShareControl.class) {
if (sInstance == null) {
sInstance = new ShareControl(context);
}
}
}
return sInstance;
}
@Override
public void showDialog(Context context) {
LaucherShareDialog shareDialog = new LaucherShareDialog(context);
public void showDialog() {
LaucherShareDialog shareDialog = new LaucherShareDialog(mContext);
shareDialog.setCanceledOnTouchOutside(true);
shareDialog.show();
}
@Override
public void dismissDialog() {
LaucherShareDialog shareDialog = new LaucherShareDialog(mContext);
shareDialog.dismiss();
}
}

View File

@@ -329,7 +329,6 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
@Override
public void onStartNavi() { //开始导航
Logger.d(TAG, "onStartNavi -------> ");
initModelData();
getNavigationData();
}
@@ -441,6 +440,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
sendShareReceiver("1");
Logger.d(TAG, "mogoIntentListener 上报路况 ----> ");
traceTypeData("1");
ShareControl.getInstance(getActivity()).dismissDialog();
} else if (intentStr.equals(TanluConstants.SHARE_ROAD_CLOSURE)) { //分享封路(封路了) --ok
traceData("2");
sendShareReceiver("3");
@@ -452,8 +452,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
Logger.d(TAG, "mogoIntentListener 分享交通检查 ----> ");
traceTypeData("3");
} else if (intentStr.equals(TanluConstants.GO_TO_SHARE)) { //我要分享 --ok
ShareControl shareControl = new ShareControl();
shareControl.showDialog(getActivity());
ShareControl.getInstance(getActivity()).showDialog();
Logger.d(TAG, "mogoIntentListener 我要分享 ----> ");
}
}
@@ -906,7 +905,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
/**
* 上报分享信息 TODO
* 上报分享信息
*/
private void uploadShareInfo(String poiType, String poiImgUrl, String nickname, String headImgUrl) {
double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
@@ -951,7 +950,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
/**
* 导航路线数据事件 TODO
* 导航路线数据事件
*/
public void getNavigationData() {
// Double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
@@ -969,11 +968,16 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
// }
// });
mTanluModelData.getNaviInformation(new NaviCallback() {
mTanluModelData.getNaviInformation(mMogoMapService.getNavi(getContext()).getCalculatedPathPos(),
new NaviCallback() {
@Override
public void onSuccess(NaviResult data) {
Log.d(TAG, "getNavigationData onSuccess ----->");
List<Information> informationList = data.getResult().getInformations();
Log.d(TAG, "getNavigationData onSuccess informationList =" + informationList);
if (informationList == null || (informationList != null && informationList.size() == 0)) {
return;
}
//清除探路之前的数据
mMarkerManager.removeMarkers(TanluConstants.MODEL_NAME);
@@ -999,7 +1003,6 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
.longitude(informationList.get(i).lon);
optionList.add(options);
Log.d(TAG, "lat =" + informationList.get(i).lat + ">>>lon =" + informationList.get(i).lon);
}
Logger.d(TAG, "getNavigationData optionList.size() = " + optionList.size());
mMarkerManager.addMarkers(TanluConstants.MODEL_NAME, optionList, true);
@@ -1117,6 +1120,11 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
speakSuccessVoice(o.getResult().getInformations(), discription == null ? "" : discription);
List<Information> informationList = o.getResult().getInformations();
Log.d(TAG, "getVoiceControlRoadData onSuccess informationList =" + informationList);
if (informationList == null || (informationList != null && informationList.size() == 0)) {
return;
}
//清除探路之前的数据
mMarkerManager.removeMarkers(TanluConstants.MODEL_NAME);
//添加埋点数据

View File

@@ -8,10 +8,10 @@ import java.util.List;
* @since 2020-02-03
*/
public class NaviRoadRequest {
public List<Double> coordinates;
public List<String> coordinates;
public int limit;
public NaviRoadRequest(List<Double> coordinates, int limit) {
public NaviRoadRequest(List<String> coordinates, int limit) {
this.coordinates = coordinates;
this.limit = limit;
}

View File

@@ -10,6 +10,7 @@ import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.ParamsProvider;
import com.mogo.commons.network.SubscribeImpl;
import com.mogo.commons.network.Utils;
import com.mogo.map.MogoLatLng;
import com.mogo.module.tanlu.callback.AlongTheWayCallback;
import com.mogo.module.tanlu.callback.NaviCallback;
import com.mogo.module.tanlu.callback.RoadLineCallback;
@@ -287,14 +288,34 @@ public class TanluModelData {
}
/**
* 获取导航沿途情报 TODO
* 组装需要的请求list
*
* @return
*/
public void getNaviInformation(final NaviCallback callback) {
Gson gson = new Gson();
private List<String> getLatLngRequest(List<MogoLatLng> latLnglist) {
List<String> resultList = new ArrayList<>();
for (int i = 0; i < latLnglist.size(); i++) {
resultList.add(latLnglist.get(i).lng + "," + latLnglist.get(i).lat);
}
return resultList;
}
/**
* 获取导航沿途情报
*/
public void getNaviInformation(List<MogoLatLng> mogoLatLnglist, final NaviCallback callback) {
Gson gson = new Gson();
if (mogoLatLnglist == null) {
return;
}
NaviRoadRequest naviRoadRequest = new NaviRoadRequest(getLatLngRequest(mogoLatLnglist), 10);
String naviStr = gson.toJson(naviRoadRequest);
Log.d(TAG, "getNaviInformation naviStr = " + naviStr);
final Map<String, Object> params = new ParamsProvider.Builder(mContext)
.append("sn", Utils.getSn())
// .append("data", uploadShareStr)
.append("data", naviStr)
.build();
mTanluApiService.getNaviInformation(params)

View File

@@ -2,6 +2,7 @@ package com.mogo.module.tanlu.video
import android.content.Context
import android.util.AttributeSet
import android.util.Log
import android.view.Surface
import android.view.View
import android.widget.ImageView
@@ -77,6 +78,33 @@ class SimpleCoverVideoPlayer : StandardGSYVideoPlayer {
override fun changeUiToCompleteShow() {
super.changeUiToCompleteShow()
// setViewShowState(mBottomContainer, View.INVISIBLE)
Log.d("liyz", "changeUiToCompleteShow ------------>")
}
override fun hideAllWidget() {
super.hideAllWidget()
Log.d("liyz", "hideAllWidget ------------>")
mBottomContainer.visibility = View.VISIBLE
}
override fun changeUiToPrepareingClear() {
super.changeUiToPrepareingClear()
mBottomContainer.visibility = View.VISIBLE
}
override fun changeUiToPlayingBufferingClear() {
super.changeUiToPlayingBufferingClear()
mBottomContainer.visibility = View.VISIBLE
}
override fun changeUiToClear() {
super.changeUiToClear()
mBottomContainer.visibility = View.VISIBLE
}
override fun changeUiToCompleteClear() {
super.changeUiToCompleteClear()
mBottomContainer.visibility = View.INVISIBLE
}
override fun onAutoCompletion() {

View File

@@ -66,7 +66,8 @@
android:layout_below="@+id/layout_top_view"
android:layout_marginLeft="@dimen/tanlu_module_card_margin_left"
android:layout_marginRight="@dimen/tanlu_module_card_margin_left"
android:background="@drawable/shape_bg_222533_9px">
>
<!-- android:background="@drawable/shape_bg_222533_9px"-->
<com.mogo.module.tanlu.video.SimpleCoverVideoPlayer
android:id="@+id/video_player_main"

View File

@@ -14,7 +14,7 @@
<dimen name="tanlu_module_full_loading_height">96px</dimen>
<dimen name="tanlu_module_full_bottom_height">90px</dimen>
<dimen name="tanlu_module_full_bottom_width">700px</dimen>
<dimen name="tanlu_module_full_bottom_margin">10px</dimen>
<dimen name="tanlu_module_full_bottom_margin">5px</dimen>
<dimen name="tanlu_module_full_top_height">72px</dimen>
<dimen name="tanlu_module_full_back_width">25px</dimen>

View File

@@ -15,7 +15,7 @@
<dimen name="tanlu_module_full_loading_height">96px</dimen>
<dimen name="tanlu_module_full_bottom_height">100px</dimen>
<dimen name="tanlu_module_full_bottom_width">700px</dimen>
<dimen name="tanlu_module_full_bottom_margin">10px</dimen>
<dimen name="tanlu_module_full_bottom_margin">5px</dimen>
<dimen name="tanlu_module_full_top_height">135px</dimen>
<dimen name="tanlu_module_full_back_width">50px</dimen>

View File

@@ -15,7 +15,7 @@
<dimen name="tanlu_module_full_loading_height">96px</dimen>
<dimen name="tanlu_module_full_bottom_height">144px</dimen>
<dimen name="tanlu_module_full_bottom_width">760px</dimen>
<dimen name="tanlu_module_full_bottom_margin">10px</dimen>
<dimen name="tanlu_module_full_bottom_margin">5px</dimen>
<dimen name="tanlu_module_full_top_height">135px</dimen>
<dimen name="tanlu_module_full_back_width">50px</dimen>