Merge remote-tracking branch 'origin/feature/v1.0.0' into feature/v1.0.0

# Conflicts:
#	app/build.gradle
#	modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragment.java
This commit is contained in:
zhangyuanzhen
2020-01-06 21:02:21 +08:00
133 changed files with 1576 additions and 75 deletions

View File

@@ -102,4 +102,10 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
mWeatherDesc.setText( desc );
mWeatherContainer.setVisibility( hidden ? View.GONE : View.VISIBLE );
}
@Override
public void renderMsgInfo( boolean hasMsg, int amount ) {
mMsgContainer.setVisibility( hasMsg ? View.VISIBLE : View.GONE );
mMsgCounter.setText( amount > 99 ? getString( R.string.module_ext_str_dots ) : String.valueOf( amount ) );
}
}

View File

@@ -8,11 +8,15 @@ import android.content.IntentFilter;
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.extensions.weather.Phenomena;
import com.mogo.module.extensions.weather.WeatherCallback;
import com.mogo.module.extensions.weather.WeatherInfo;
import com.mogo.module.extensions.weather.WeatherModel;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.statusmanager.IMogoMsgCenter;
import com.mogo.service.statusmanager.IMogoMsgCenterListener;
import com.mogo.utils.logger.Logger;
import java.util.Calendar;
@@ -24,7 +28,7 @@ import java.util.Calendar;
* <p>
* 描述
*/
public class ExtensionsPresenter extends Presenter< ExtensionsView > implements WeatherCallback {
public class ExtensionsPresenter extends Presenter< ExtensionsView > implements WeatherCallback, IMogoMsgCenterListener {
private static final String TAG = "ExtensionsPresenter";
@@ -46,6 +50,8 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
}
};
private IMogoMsgCenter mMsgCenter;
public ExtensionsPresenter( ExtensionsView view ) {
super( view );
@@ -60,6 +66,8 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
mWeatherModel.init( this );
mWeatherModel.queryWeatherInformation();
refreshTimeAndDate();
mMsgCenter = ( IMogoMsgCenter ) ARouter.getInstance().build( MogoServicePaths.PATH_MSG_CENTER ).navigation();
mMsgCenter.registerMsgCenterListener( this );
}
/**
@@ -100,12 +108,21 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
mView.renderWeatherInfo( temp, desc, resId );
}
@Override
public void onMsgChanged( boolean hasMsg, int amount ) {
if ( mView != null ) {
}
}
@Override
public void onDestroy( @NonNull LifecycleOwner owner ) {
super.onDestroy( owner );
if ( mWeatherModel != null ) {
mWeatherModel.destroy();
}
if ( mMsgCenter != null ) {
mMsgCenter.unregisterMsgCenterListener( this );
}
}
}

View File

@@ -27,4 +27,12 @@ public interface ExtensionsView extends IView {
* @param iconId 图标
*/
void renderWeatherInfo( String temp, String desc, int iconId );
/**
* 刷新消息信息
*
* @param hasMsg 是否有消息
* @param amount 消息数量
*/
void renderMsgInfo( boolean hasMsg, int amount );
}

View File

@@ -101,6 +101,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/dp_28"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@+id/module_ext_id_weather_container"
app:layout_constraintTop_toTopOf="parent">
@@ -119,7 +120,6 @@
android:gravity="center"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_20"
android:visibility="invisible"
tools:text="···" />
</FrameLayout>

View File

@@ -13,4 +13,5 @@
<item>周五</item>
<item>周六</item>
</string-array>
<string name="module_ext_str_dots">···</string>
</resources>

View File

@@ -27,6 +27,11 @@ android {
}
}
compileOptions {
targetCompatibility 1.8
sourceCompatibility 1.8
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

View File

@@ -1,8 +1,8 @@
package com.mogo.module.map;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -10,8 +10,12 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.map.IMogoMap;
import com.mogo.map.IMogoUiSettings;
import com.mogo.map.MogoLatLng;
import com.mogo.map.MogoMapView;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.map.IMogoMapService;
/**
@@ -27,6 +31,20 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
private MogoMapView mMogoMapView;
private IMogoMap mMogoMap;
private View mSearch;
private View mHome;
private View mCompany;
private View mUploadRoadCondition;
private View mVRMode;
private View mMove2CurrentLocation;
private IMogoMapService mService;
private IMogoMapUIController mMApUIController;
private IMogoLocationClient mMogoLocationClient;
@Override
protected int getLayoutId() {
return R.layout.module_map_fragment_map;
@@ -42,6 +60,34 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
ARouter.getInstance().build(MogoModulePaths.PATH_MODULE_NAV_ACTIVITY).navigation(getActivity());
}
});
mSearch = findViewById( R.id.module_map_id_search );
mSearch.setOnClickListener( view -> {
} );
mHome = findViewById( R.id.module_map_id_home );
mHome.setOnClickListener( view -> {
} );
mCompany = findViewById( R.id.module_map_id_company );
mCompany.setOnClickListener( view -> {
} );
mUploadRoadCondition = findViewById( R.id.module_map_id_upload_road_condition );
mUploadRoadCondition.setOnClickListener( view -> {
} );
mVRMode = findViewById( R.id.module_map_id_vr_mode );
mVRMode.setOnClickListener( view -> {
} );
mMove2CurrentLocation = findViewById( R.id.module_map_id_move2_current_location );
mMove2CurrentLocation.setOnClickListener( view -> {
final MogoLocation location = mMogoLocationClient.getLastKnowLocation();
if ( location != null ) {
mMApUIController.moveToCenter( new MogoLatLng( location.getLatitude(), location.getLongitude() ) );
}
} );
}
@NonNull
@@ -57,6 +103,9 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
mMogoMapView.onCreate( savedInstanceState );
}
initMapView();
mService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() );
mMApUIController = mService.getMapUIController();
mMogoLocationClient = mService.getLocationClient( getContext() );
}
@Override

View File

@@ -8,7 +8,7 @@ package com.mogo.module.service;
*/
public class AutoRefreshStrategy {
public static final long ONE_MINUTE = 5 * 1_000L;
public static final long ONE_MINUTE = 60 * 1_000L;
/**
* 距离(米)

View File

@@ -2,7 +2,6 @@ package com.mogo.module.service;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@@ -19,9 +18,7 @@ import com.mogo.map.MogoLatLng;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.navi.MogoNaviInfo;
@@ -59,7 +56,6 @@ public class MogoServiceProvider implements IMogoModuleProvider,
*/
private AutoRefreshStrategy mAutoRefreshStrategy = new AutoRefreshStrategy();
private MogoLatLng mLastAutoRefreshLocation = null;
private long mLastRefreshTime = 0;
private IMogoMarkerManager mMarkerManager;
private IMogoMapUIController mUiController;
@@ -85,7 +81,6 @@ public class MogoServiceProvider implements IMogoModuleProvider,
private MogoLatLng mLastCustomRefreshCenterLocation;
private IMogoMapService mMogoMapService;
private IMogoMarker mCameraCenterMarker = null;
private IMogoStatusManager mStatusManager;
/**
@@ -315,18 +310,6 @@ public class MogoServiceProvider implements IMogoModuleProvider,
return;
}
if ( mCameraCenterMarker == null ) {
mCameraCenterMarker = mMarkerManager.addMarker( ServiceConst.TYPE,
new MogoMarkerOptions()
.icon( BitmapFactory.decodeResource( mContext.getResources(), R.drawable.ic_search_poi_location ) )
.latitude( latLng.lat )
.longitude( latLng.lng )
.owner( ServiceConst.TYPE )
);
} else {
mCameraCenterMarker.setPosition( latLng.lat, latLng.lng );
}
if ( mLastZoomLevel != zoom ) {
refreshCameraPosition();
}

View File

@@ -0,0 +1,30 @@
package com.mogo.module.service.entity;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerActivitiesScope {
@SerializedName("content")
private String mContent;
@SerializedName("isCheck")
private Long mIsCheck;
public String getContent() {
return mContent;
}
public void setContent(String content) {
mContent = content;
}
public Long getIsCheck() {
return mIsCheck;
}
public void setIsCheck(Long isCheck) {
mIsCheck = isCheck;
}
}

View File

@@ -0,0 +1,40 @@
package com.mogo.module.service.entity;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerCarChat {
@SerializedName("location")
private MarkerLocation mLocation;
@SerializedName("type")
private String mType;
@SerializedName("userInfo")
private MarkerUserInfo mUserInfo;
public MarkerLocation getLocation() {
return mLocation;
}
public void setLocation(MarkerLocation location) {
mLocation = location;
}
public String getType() {
return mType;
}
public void setType(String type) {
mType = type;
}
public MarkerUserInfo getUserInfo() {
return mUserInfo;
}
public void setUserInfo(MarkerUserInfo userInfo) {
mUserInfo = userInfo;
}
}

View File

@@ -0,0 +1,30 @@
package com.mogo.module.service.entity;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerCarInfo {
@SerializedName("carBrandLogoUrl")
private String mCarBrandLogoUrl;
@SerializedName("carTypeName")
private String mCarTypeName;
public String getCarBrandLogoUrl() {
return mCarBrandLogoUrl;
}
public void setCarBrandLogoUrl(String carBrandLogoUrl) {
mCarBrandLogoUrl = carBrandLogoUrl;
}
public String getCarTypeName() {
return mCarTypeName;
}
public void setCarTypeName(String carTypeName) {
mCarTypeName = carTypeName;
}
}

View File

@@ -0,0 +1,51 @@
package com.mogo.module.service.entity;
import java.util.List;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerCardResult {
@SerializedName("carChat")
private List<MarkerCarChat> mCarChat;
@SerializedName("exploreWay")
private List<MarkerExploreWay> mExploreWay;
@SerializedName("onlineCar")
private List<MarkerOnlineCar> mOnlineCar;
@SerializedName("shareMusic")
private List<MarkerShareMusic> mShareMusic;
public List<MarkerCarChat> getCarChat() {
return mCarChat;
}
public void setCarChat(List<MarkerCarChat> carChat) {
mCarChat = carChat;
}
public List<MarkerExploreWay> getExploreWay() {
return mExploreWay;
}
public void setExploreWay(List<MarkerExploreWay> exploreWay) {
mExploreWay = exploreWay;
}
public List<MarkerOnlineCar> getOnlineCar() {
return mOnlineCar;
}
public void setOnlineCar(List<MarkerOnlineCar> onlineCar) {
mOnlineCar = onlineCar;
}
public List<MarkerShareMusic> getShareMusic() {
return mShareMusic;
}
public void setShareMusic(List<MarkerShareMusic> shareMusic) {
mShareMusic = shareMusic;
}
}

View File

@@ -0,0 +1,40 @@
package com.mogo.module.service.entity;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerDynamicData {
@SerializedName("id")
private String mId;
@SerializedName("name")
private String mName;
@SerializedName("type")
private Long mType;
public String getId() {
return mId;
}
public void setId(String id) {
mId = id;
}
public String getName() {
return mName;
}
public void setName(String name) {
mName = name;
}
public Long getType() {
return mType;
}
public void setType(Long type) {
mType = type;
}
}

View File

@@ -0,0 +1,131 @@
package com.mogo.module.service.entity;
import java.util.List;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerExploreWay {
@SerializedName("addr")
private String mAddr;
@SerializedName("canLive")
private Long mCanLive;
@SerializedName("cityName")
private String mCityName;
@SerializedName("direction")
private Long mDirection;
@SerializedName("distance")
private Long mDistance;
@SerializedName("fileType")
private Long mFileType;
@SerializedName("generateTime")
private Long mGenerateTime;
@SerializedName("items")
private List<MarkerExploreWayItem> mItems;
@SerializedName("location")
private MarkerLocation mLocation;
@SerializedName("sn")
private String mSn;
@SerializedName("type")
private String mType;
@SerializedName("userInfo")
private MarkerUserInfo mUserInfo;
public String getAddr() {
return mAddr;
}
public void setAddr(String addr) {
mAddr = addr;
}
public Long getCanLive() {
return mCanLive;
}
public void setCanLive(Long canLive) {
mCanLive = canLive;
}
public String getCityName() {
return mCityName;
}
public void setCityName(String cityName) {
mCityName = cityName;
}
public Long getDirection() {
return mDirection;
}
public void setDirection(Long direction) {
mDirection = direction;
}
public Long getDistance() {
return mDistance;
}
public void setDistance(Long distance) {
mDistance = distance;
}
public Long getFileType() {
return mFileType;
}
public void setFileType(Long fileType) {
mFileType = fileType;
}
public Long getGenerateTime() {
return mGenerateTime;
}
public void setGenerateTime(Long generateTime) {
mGenerateTime = generateTime;
}
public List<MarkerExploreWayItem> getItems() {
return mItems;
}
public void setItems(List<MarkerExploreWayItem> items) {
mItems = items;
}
public MarkerLocation getLocation() {
return mLocation;
}
public void setLocation(MarkerLocation location) {
mLocation = location;
}
public String getSn() {
return mSn;
}
public void setSn(String sn) {
mSn = sn;
}
public String getType() {
return mType;
}
public void setType(String type) {
mType = type;
}
public MarkerUserInfo getUserInfo() {
return mUserInfo;
}
public void setUserInfo(MarkerUserInfo userInfo) {
mUserInfo = userInfo;
}
}

View File

@@ -0,0 +1,30 @@
package com.mogo.module.service.entity;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerExploreWayItem {
@SerializedName("thumbnail")
private String mThumbnail;
@SerializedName("url")
private String mUrl;
public String getThumbnail() {
return mThumbnail;
}
public void setThumbnail(String thumbnail) {
mThumbnail = thumbnail;
}
public String getUrl() {
return mUrl;
}
public void setUrl(String url) {
mUrl = url;
}
}

View File

@@ -0,0 +1,30 @@
package com.mogo.module.service.entity;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerHobbyDatum {
@SerializedName("content")
private String mContent;
@SerializedName("isCheck")
private Long mIsCheck;
public String getContent() {
return mContent;
}
public void setContent(String content) {
mContent = content;
}
public Long getIsCheck() {
return mIsCheck;
}
public void setIsCheck(Long isCheck) {
mIsCheck = isCheck;
}
}

View File

@@ -0,0 +1,50 @@
package com.mogo.module.service.entity;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerLocation {
@SerializedName("address")
private String mAddress;
@SerializedName("angle")
private String mAngle;
@SerializedName("lat")
private String mLat;
@SerializedName("lon")
private String mLon;
public String getAddress() {
return mAddress;
}
public void setAddress(String address) {
mAddress = address;
}
public String getAngle() {
return mAngle;
}
public void setAngle(String angle) {
mAngle = angle;
}
public String getLat() {
return mLat;
}
public void setLat(String lat) {
mLat = lat;
}
public String getLon() {
return mLon;
}
public void setLon(String lon) {
mLon = lon;
}
}

View File

@@ -0,0 +1,101 @@
package com.mogo.module.service.entity;
import java.util.List;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerOnlineCar {
@SerializedName("activitiesScope")
private List<MarkerActivitiesScope> mActivitiesScope;
@SerializedName("carInfo")
private MarkerCarInfo mCarInfo;
@SerializedName("compatibility")
private Long mCompatibility;
@SerializedName("dynamicData")
private MarkerDynamicData mDynamicData;
@SerializedName("hobbyData")
private List<MarkerHobbyDatum> mHobbyData;
@SerializedName("isFocus")
private Long mIsFocus;
@SerializedName("location")
private MarkerLocation mLocation;
@SerializedName("type")
private String mType;
@SerializedName("userInfo")
private MarkerUserInfo mUserInfo;
public List<MarkerActivitiesScope> getActivitiesScope() {
return mActivitiesScope;
}
public void setActivitiesScope(List<MarkerActivitiesScope> activitiesScope) {
mActivitiesScope = activitiesScope;
}
public MarkerCarInfo getCarInfo() {
return mCarInfo;
}
public void setCarInfo(MarkerCarInfo carInfo) {
mCarInfo = carInfo;
}
public Long getCompatibility() {
return mCompatibility;
}
public void setCompatibility(Long compatibility) {
mCompatibility = compatibility;
}
public MarkerDynamicData getDynamicData() {
return mDynamicData;
}
public void setDynamicData(MarkerDynamicData dynamicData) {
mDynamicData = dynamicData;
}
public List<MarkerHobbyDatum> getHobbyData() {
return mHobbyData;
}
public void setHobbyData(List<MarkerHobbyDatum> hobbyData) {
mHobbyData = hobbyData;
}
public Long getIsFocus() {
return mIsFocus;
}
public void setIsFocus(Long isFocus) {
mIsFocus = isFocus;
}
public MarkerLocation getLocation() {
return mLocation;
}
public void setLocation(MarkerLocation location) {
mLocation = location;
}
public String getType() {
return mType;
}
public void setType(String type) {
mType = type;
}
public MarkerUserInfo getUserInfo() {
return mUserInfo;
}
public void setUserInfo(MarkerUserInfo userInfo) {
mUserInfo = userInfo;
}
}

View File

@@ -0,0 +1,50 @@
package com.mogo.module.service.entity;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerResponse {
@SerializedName("code")
private Long mCode;
@SerializedName("msg")
private String mMsg;
@SerializedName("result")
private MarkerCardResult mResult;
@SerializedName("sign")
private String mSign;
public Long getCode() {
return mCode;
}
public void setCode(Long code) {
mCode = code;
}
public String getMsg() {
return mMsg;
}
public void setMsg(String msg) {
mMsg = msg;
}
public MarkerCardResult getResult() {
return mResult;
}
public void setResult(MarkerCardResult result) {
mResult = result;
}
public String getSign() {
return mSign;
}
public void setSign(String sign) {
mSign = sign;
}
}

View File

@@ -0,0 +1,80 @@
package com.mogo.module.service.entity;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerShareMusic {
@SerializedName("id")
private String mId;
@SerializedName("likeNumber")
private Long mLikeNumber;
@SerializedName("location")
private MarkerLocation mLocation;
@SerializedName("musicName")
private String mMusicName;
@SerializedName("shareContentText")
private String mShareContentText;
@SerializedName("type")
private String mType;
@SerializedName("userInfo")
private MarkerUserInfo mUserInfo;
public String getId() {
return mId;
}
public void setId(String id) {
mId = id;
}
public Long getLikeNumber() {
return mLikeNumber;
}
public void setLikeNumber(Long likeNumber) {
mLikeNumber = likeNumber;
}
public MarkerLocation getLocation() {
return mLocation;
}
public void setLocation(MarkerLocation location) {
mLocation = location;
}
public String getMusicName() {
return mMusicName;
}
public void setMusicName(String musicName) {
mMusicName = musicName;
}
public String getShareContentText() {
return mShareContentText;
}
public void setShareContentText(String shareContentText) {
mShareContentText = shareContentText;
}
public String getType() {
return mType;
}
public void setType(String type) {
mType = type;
}
public MarkerUserInfo getUserInfo() {
return mUserInfo;
}
public void setUserInfo(MarkerUserInfo userInfo) {
mUserInfo = userInfo;
}
}

View File

@@ -0,0 +1,70 @@
package com.mogo.module.service.entity;
import com.google.gson.annotations.SerializedName;
@SuppressWarnings("unused")
public class MarkerUserInfo {
@SerializedName("age")
private Long mAge;
@SerializedName("gender")
private Long mGender;
@SerializedName("sn")
private String mSn;
@SerializedName("userHead")
private String mUserHead;
@SerializedName("userId")
private Long mUserId;
@SerializedName("userName")
private String mUserName;
public Long getAge() {
return mAge;
}
public void setAge(Long age) {
mAge = age;
}
public Long getGender() {
return mGender;
}
public void setGender(Long gender) {
mGender = gender;
}
public String getSn() {
return mSn;
}
public void setSn(String sn) {
mSn = sn;
}
public String getUserHead() {
return mUserHead;
}
public void setUserHead(String userHead) {
mUserHead = userHead;
}
public Long getUserId() {
return mUserId;
}
public void setUserId(Long userId) {
mUserId = userId;
}
public String getUserName() {
return mUserName;
}
public void setUserName(String userName) {
mUserName = userName;
}
}

View File

@@ -0,0 +1,42 @@
package com.mogo.module.service.marker;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.LinearLayout;
import androidx.annotation.Nullable;
import com.mogo.module.service.R;
/**
* author : donghongyu
* e-mail : 1358506549@qq.com
* date : 2020-01-0619:55
* desc : 地图Marker图标带文本信息
* version: 1.0
*/
public class MapMarkerInfoView extends LinearLayout {
public MapMarkerInfoView(Context context) {
super(context);
initView(context);
}
public MapMarkerInfoView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initView(context);
}
public MapMarkerInfoView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
}
private void initView(Context context) {
LayoutInflater.from(context).inflate(R.layout.view_map_marker_info, this);
}
}

View File

@@ -0,0 +1,42 @@
package com.mogo.module.service.marker;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.LinearLayout;
import androidx.annotation.Nullable;
import com.mogo.module.service.R;
/**
* author : donghongyu
* e-mail : 1358506549@qq.com
* date : 2020-01-0619:55
* desc : 地图Marker图标
* version: 1.0
*/
public class MapMarkerView extends LinearLayout {
public MapMarkerView(Context context) {
super(context);
initView(context);
}
public MapMarkerView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initView(context);
}
public MapMarkerView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
}
private void initView(Context context) {
LayoutInflater.from(context).inflate(R.layout.view_map_marker, this);
}
}

View File

@@ -21,7 +21,7 @@ import retrofit2.http.QueryMap;
public interface RefreshApiService {
@FormUrlEncoded
@POST( "" )
@POST( "/yycp-launcherSnapshot/launcherSnapshot/querySnapshotAsync" )
Observable< BaseData > refreshData( @QueryMap Map< String, Object > params,
@FieldMap Map< String, Object > parameters );
}

View File

@@ -38,10 +38,6 @@ public class RefreshModel {
}
public void refreshData( MogoLatLng latLng, int radius, final RefreshCallback callback ) {
if ( callback != null ) {
callback.onSuccess();
return;
}
if ( mRefreshApiService != null ) {
final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build();
final Map< String, Object > field = new HashMap<>();

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_140"
android:layout_height="@dimen/dp_155"
android:background="@drawable/bg_map_marker_green"
android:orientation="vertical" >
<ImageView
android:id="@+id/ivIcon"
android:layout_width="@dimen/dp_76"
android:layout_height="@dimen/dp_76"
android:layout_gravity="center"
android:src="@drawable/icon_default" />
</LinearLayout >

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_map_marker_green_info"
android:gravity="center_vertical"
android:orientation="horizontal" >
<ImageView
android:id="@+id/ivIcon"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_80"
android:src="@drawable/icon_default" />
<TextView
android:id="@+id/tvMarkerContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="诗一样的女子"
android:textColor="#ffffff"
android:textSize="@dimen/sp_32" />
</LinearLayout >

View File

@@ -2,7 +2,6 @@ package com.mogo.tanlu.fragment;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
@@ -20,6 +19,7 @@ import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.model.MogoPoi;
import com.mogo.map.search.geo.MogoPoiItem;
import com.mogo.map.search.poisearch.IMogoPoiSearchListener;
@@ -28,6 +28,7 @@ import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.service.MogoServicePaths;
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.tanlu.R;
import com.mogo.tanlu.video.FullMediaActivity;
@@ -37,6 +38,8 @@ import com.mogo.utils.TipToast;
import com.mogo.utils.logger.Logger;
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
import java.util.List;
import static com.mogo.tanlu.video.VideoInitKt.initVideo;
/**
@@ -57,7 +60,9 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
//map
private IMogoMarker mPoiMarker;
private int position = -1;
// private int position = -1;
private IMogoMarkerManager mMarkerManager;
private IMogoMapService mMogoMapService;
//media
private GSYVideoOptionBuilder gsyVideoOptionBuilder = new GSYVideoOptionBuilder();
@@ -79,7 +84,6 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
@Override
protected void initViews() {
initVideo();
position = getArguments().getInt("position");
simpleCoverVideoPlayer = findViewById(R.id.video_player_main);
autoZoomInImageView = findViewById(R.id.tanlu_photo_imageView);
mPreviousTv = findViewById(R.id.tv_previous_res);
@@ -104,18 +108,9 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
//图片配置
mogoImageloader = (IMogoImageloader) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_IMAGE_LOADER).navigation();
//地图marker
mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(getActivity());
//当前定位信息
TanluServiceHandler.getPoiSearch().setPoiSearchListener(this);
// mLocation = TanluServiceHandler.getLocationClient().getLastKnowLocation();
TanluServiceHandler.getLocationClient().addLocationListener(new IMogoLocationListener() {
@Override
public void onLocationChanged(MogoLocation location) {
// mLocation = location;
Logger.d(TAG, "demo模块定位定位间隔4s");
}
});
}
@Override
@@ -177,9 +172,9 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
autoZoomInImageView.post(new Runnable() {
@Override
public void run() {
//放大增量是0.3放大时间是1000毫秒放大开始时间是1000毫秒以后
//放大增量是0.3放大时间是1000毫秒放大开始时间是600毫秒以后
autoZoomInImageView.init()
.startZoomInByScaleDeltaAndDuration(0.3f, 1000, 1500);
.startZoomInByScaleDeltaAndDuration(0.2f, 1000, 500);
}
});
@@ -199,6 +194,7 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
return true;
}
@NonNull
@Override
protected Presenter createPresenter() {
@@ -209,14 +205,20 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
//TODO C位事件,如何获取数据,需要有默认数据
@Override
public void onPerform() {
Logger.d(TAG, "tanlu卡片 有效");
Logger.d(TAG, "tanlu卡片 有效 ---->");
mMarkerManager = mMogoMapService.getMarkerManager(getActivity());
List<IMogoMarker> markers = mMarkerManager.getMarkers("CARD_TYPE_ROAD_CODITION");
for (int i = 0; i < markers.size(); i++) {
markers.get(i).getObject();
}
}
//TODO 离开C位事件
@Override
public void onDisable() {
Logger.e(TAG, "tanlu卡片 无效");
Logger.e(TAG, "tanlu卡片 无效 ----->");
}
@Override
@@ -287,7 +289,6 @@ public class TanluCardViewFragment extends MvpFragment<IView, Presenter<IView>>
@Override
public void onDestroyView() {
Logger.w(TAG, "onDestroyView position=" + position);
super.onDestroyView();
getViewLifecycleOwner().getLifecycle().removeObserver(mPresenter);
TanluServiceHandler.getLocationClient().removeLocationListener(this);

View File

@@ -10,7 +10,6 @@
android:layout_height="50dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:miv_placeHolder="@drawable/ic_amap_app_main_current_location_bkg"
app:miv_shape="circle" />
<ImageView

View File

@@ -39,19 +39,18 @@
<!--视频播放器和图片播放器-->
<RelativeLayout
android:id="@+id/media_layout"
android:layout_below="@+id/layout_top_view"
android:layout_width="400dp"
android:layout_height="225dp">
android:layout_height="225dp"
android:layout_below="@+id/layout_top_view">
<com.mogo.tanlu.video.SimpleCoverVideoPlayer
android:id="@+id/video_player_main"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
android:visibility="gone" />
<com.mogo.tanlu.view.AutoZoomInImageView
android:id="@+id/tanlu_photo_imageView"
android:src="@drawable/default_image"
android:layout_width="match_parent"
android:layout_height="match_parent" />
@@ -61,17 +60,17 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@drawable/shape_bg_222533_6px_bottom"
android:layout_below="@+id/media_layout">
android:layout_below="@+id/media_layout"
android:background="@drawable/shape_bg_222533_6px_bottom">
<ImageView
android:id="@+id/username_image_video"
android:layout_width="40dp"
android:layout_height="40dp"
android:visibility="gone"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:src="@mipmap/ic_launcher" />
android:src="@mipmap/ic_launcher"
android:visibility="gone" />
<TextView
android:id="@+id/tv_username_video"
@@ -79,11 +78,11 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:visibility="gone"
android:layout_toRightOf="@+id/username_image_video"
android:text="你好小智"
android:textColor="@color/white"
android:textSize="18dp" />
android:textSize="18dp"
android:visibility="gone" />
<TextView
android:id="@+id/tv_information_media_time"
@@ -94,9 +93,9 @@
android:paddingLeft="15dp"
android:paddingRight="17dp"
android:text="2019-10-10"
android:visibility="gone"
android:textColor="@color/color_9A9A9A"
android:textSize="16dp" />
android:textSize="16dp"
android:visibility="gone" />
<TextView
@@ -104,10 +103,10 @@
android:layout_width="110dp"
android:layout_height="45dp"
android:layout_centerVertical="true"
android:gravity="center_vertical|center_horizontal"
android:layout_marginLeft="35dp"
android:text="上一个"
android:background="@drawable/shape_bg_222533"
android:gravity="center_vertical|center_horizontal"
android:text="上一个"
android:textColor="@color/white"
android:textSize="18dp" />
@@ -116,11 +115,11 @@
android:id="@+id/tv_next_res"
android:layout_width="110dp"
android:layout_height="45dp"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:gravity="center_vertical|center_horizontal"
android:layout_centerVertical="true"
android:layout_marginRight="35dp"
android:background="@drawable/shape_bg_222533"
android:gravity="center_vertical|center_horizontal"
android:text="下一个"
android:textColor="@color/white"
android:textSize="18dp" />