This commit is contained in:
unknown
2020-11-13 17:36:37 +08:00
515 changed files with 13820 additions and 623 deletions

View File

@@ -7,13 +7,7 @@ package com.mogo.module.extensions;
* 描述
*/
public class ExtensionsModuleConst {
/**
* 快捷操作入口:定位、
*/
public static final String PATH_ENTRANCE = "/extension/entrance";
public static final String TYPE = "extension";
public static final String TYPE_ENTRANCE = "entrance";

View File

@@ -3,6 +3,7 @@ package com.mogo.module.extensions.entrance;
import android.content.Intent;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.Debug;
import android.os.Handler;
import android.text.TextUtils;
import android.util.TypedValue;
@@ -48,6 +49,7 @@ import com.mogo.module.extensions.R;
import com.mogo.module.extensions.navi.NaviInfoView;
import com.mogo.module.extensions.userinfo.UserInfo;
import com.mogo.module.extensions.utils.EntranceViewHolder;
import com.mogo.module.extensions.utils.NoMapTopViewShaderHelper;
import com.mogo.module.extensions.utils.TopViewAnimHelper;
import com.mogo.module.extensions.utils.TopViewNoLinkageAnimHelper;
import com.mogo.module.share.manager.ServiceApisManager;
@@ -203,6 +205,8 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
seekHelpGroup = findViewById(R.id.module_ext_id_seek_help_notice_group);
seekHelpNum = findViewById(R.id.module_ext_id_seek_help_notice_number);
NoMapTopViewShaderHelper.getInstance().initShaderView(findViewById(R.id.module_ext_id_top_container_shader));
mUploadRoadCondition = findViewById(R.id.module_entrance_id_upload_road_condition);
mUpload = findViewById(R.id.module_entrance_id_upload);
mUploading = findViewById(R.id.module_entrance_id_uploading);
@@ -396,6 +400,14 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
debugTopView();
if (!DebugConfig.isMapBased()) {
// 不基于地图的版本需要隐藏一些按钮
mMove2CurrentLocation.setVisibility(View.GONE);
mWeatherContainer.setVisibility(View.GONE);
mMsgContainer.setVisibility(View.GONE);
mUserHeadImg.setVisibility(View.GONE);
}
isShowGuide = SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()).getBoolean(getSpGuide(), false);
Logger.d(TAG, " isShowGuide = " + isShowGuide + " --isGreaterThanOneDay = " + isGreaterThanOneDay());
if (isShowGuide && isGreaterThanOneDay()) {
@@ -620,6 +632,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
TopViewAnimHelper.getInstance().clear();
TopViewNoLinkageAnimHelper.getInstance().removeAllView();
TopViewNoLinkageAnimHelper.getInstance().clear();
NoMapTopViewShaderHelper.getInstance().release();
EntranceViewHolder.getInstance().release();
}
@@ -661,6 +674,9 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
@Override
public void onStartNavi() {
if (!DebugConfig.isMapBased()) {
return;
}
TopViewAnimHelper.getInstance().showNaviView();
mMApUIController.changeMapMode(mCameraMode.isSelected() ? EnumMapUI.NorthUP_2D :
EnumMapUI.CarUp_2D);
@@ -678,21 +694,25 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
mCameraMode.setVisibility(View.VISIBLE);
}
mApis.getAnalyticsApi().track("Navigation_begin", new HashMap<>());
if ( DebugConfig.isSupportedSearchDestinationOnlineCarList() ) {
mOnlineCarEntrance.setVisibility( View.VISIBLE );
} else {
mOnlineCarEntrance.setVisibility( View.GONE );
}
// 目的地车友的显示隐藏控制准备迁移到TopViewAnimHelper中
// if ( DebugConfig.isSupportedSearchDestinationOnlineCarList() ) {
// mOnlineCarEntrance.setVisibility( View.VISIBLE );
// } else {
// mOnlineCarEntrance.setVisibility( View.GONE );
// }
}
@Override
public void onStopNavi() {
if (!DebugConfig.isMapBased()) {
return;
}
TopViewAnimHelper.getInstance().hideNaviView();
mExitNavi.setVisibility(View.GONE);
mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D);
mDisplayOverview.setVisibility(View.GONE);
mCameraMode.setVisibility(View.GONE);
mOnlineCarEntrance.setVisibility( View.GONE );
// mOnlineCarEntrance.setVisibility( View.GONE );
MapCenterPointStrategy.setMapCenterPointByScene(mMApUIController, Scene.AIMLESS);
}
@@ -767,6 +787,9 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
@Override
public void renderWeatherInfo(String temp, String desc, int iconId) {
if (!DebugConfig.isMapBased()) {
return;
}
boolean hidden = false;
if (iconId != 0) {
mWeatherIcon.setImageResource(iconId);
@@ -783,6 +806,9 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
@Override
public void renderMsgInfo(boolean hasMsg, int amount) {
if (!DebugConfig.isMapBased()) {
return;
}
mMsgContainer.setVisibility(hasMsg ? View.VISIBLE : View.GONE);
mMsgCounter.setText(amount > MAX_DISPLAY_MSG_AMOUNT ?
getString(R.string.module_ext_str_dots) : String.valueOf(amount));
@@ -790,6 +816,9 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
@Override
public void renderUserInfo(UserInfo userInfo) {
if (!DebugConfig.isMapBased()) {
return;
}
if (userInfo != null) {
Logger.d(TAG, "renderUserInfo: " + userInfo);
RequestOptions options =

View File

@@ -7,6 +7,7 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.network.Utils;
import com.mogo.module.common.MogoApisHandler;
@@ -18,12 +19,10 @@ import com.mogo.module.extensions.net.UserInfoNetApiServices;
import com.mogo.module.extensions.userinfo.UserInfo;
import com.mogo.module.extensions.userinfo.UserInfoConstant;
import com.mogo.module.extensions.userinfo.UserInfoResponse;
import com.mogo.module.extensions.utils.ExtensionsConfig;
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.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.network.IMogoNetwork;
import com.mogo.service.statusmanager.IMogoMsgCenter;
@@ -103,7 +102,7 @@ public class EntrancePresenter extends Presenter<EntranceView> implements Weathe
if (userInfo != null) {
mView.renderUserInfo(userInfo);
}
if(ExtensionsConfig.needRequestUserInfo()){
if( DebugConfig.isNeedRequestUserInfo()){
// 相当于每次onResume都会请求一下个人信息目的是能够相对及时的同步手机端的个人信息修改
requestUserInfo();
}

View File

@@ -12,7 +12,7 @@ import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.service.module.ModuleType;
@@ -23,7 +23,7 @@ import com.mogo.service.module.ModuleType;
* <p>
* 描述
*/
@Route( path = ExtensionsModuleConst.PATH_ENTRANCE )
@Route( path = MogoModulePaths.PATH_ENTRANCE )
public class EntranceProvider implements IMogoModuleProvider {
EntranceFragment mFragment;

View File

@@ -1,20 +0,0 @@
package com.mogo.module.extensions.utils;
/**
* 个性化config
*
* @author tongchenfei
*/
public class ExtensionsConfig {
public static final String NEED_REQUEST_USER_INFO = "NEED_REQUEST_USER_INFO";
private static boolean needRequestUserInfo = false;
public static boolean needRequestUserInfo() {
return needRequestUserInfo;
}
public static void setNeedRequestUserInfo(boolean needRequestUserInfo) {
ExtensionsConfig.needRequestUserInfo = needRequestUserInfo;
}
}

View File

@@ -0,0 +1,62 @@
package com.mogo.module.extensions.utils;
import android.view.View;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.utils.logger.Logger;
/**
*
*/
public class NoMapTopViewShaderHelper {
private static final String TAG = "NoMapTopViewShaderHelper";
private static final NoMapTopViewShaderHelper ourInstance = new NoMapTopViewShaderHelper();
public static NoMapTopViewShaderHelper getInstance() {
return ourInstance;
}
private NoMapTopViewShaderHelper() {
}
private View shader;
private int showCount = 0;
public void initShaderView(View shader) {
this.shader = shader;
}
public void showShader(){
if (this.shader == null) {
Logger.e(TAG, "shader view is null!");
return;
}
if (DebugConfig.isMapBased()) {
Logger.d(TAG, "基于地图版本不加shader");
return;
}
if (showCount == 0) {
shader.setVisibility(View.VISIBLE);
}
showCount++;
}
public void hideShader(){
if (this.shader == null) {
Logger.e(TAG, "shader view is null!");
return;
}
if (DebugConfig.isMapBased()) {
Logger.d(TAG, "基于地图版本不加shader");
return;
}
if (showCount == 1) {
shader.setVisibility(View.GONE);
}
showCount--;
}
public void release(){
shader = null;
}
}

View File

@@ -17,6 +17,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet;
import androidx.constraintlayout.widget.Group;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.map.MapCenterPointStrategy;
@@ -51,6 +52,8 @@ public class TopViewAnimHelper {
private TextView tvTurnInfo;
private TopView topContainer;
private TextView tvDestinationOnlineCar;
private ConstraintSet constraintSet;
private Transition transition;
private TextView cameraMode;
@@ -98,6 +101,7 @@ public class TopViewAnimHelper {
topContainer = rootView.findViewById(R.id.module_entrance_id_top_container);
tvNextDistanceUnit = rootView.findViewById(R.id.module_map_id_navi_next_info_distance_unit);
tvTurnInfo = rootView.findViewById(R.id.module_map_id_navi_next_info_turn_info);
tvDestinationOnlineCar = rootView.findViewById(R.id.module_ext_id_destination_online_car);
topContainer.setSlideListener(this::startLatestTopOutAnim);
@@ -374,6 +378,8 @@ public class TopViewAnimHelper {
arriveTimeGroup.setVisibility(View.GONE);
}
NoMapTopViewShaderHelper.getInstance().showShader();
constraintSet.clone(topMotionLayout);
constraintSet.clear(R.id.module_entrance_id_top_container,
@@ -417,6 +423,16 @@ public class TopViewAnimHelper {
tvNextDistanceUnit.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_unit_textSize_small));
// 改变目的地车友的约束
constraintSet.clear(tvDestinationOnlineCar.getId(),ConstraintSet.LEFT);
constraintSet.clear(tvDestinationOnlineCar.getId(),ConstraintSet.TOP);
constraintSet.connect(tvDestinationOnlineCar.getId(),
ConstraintSet.BOTTOM, naviBg.getId(), ConstraintSet.BOTTOM,
(int) getDimen(R.dimen.module_ext_navi_small_margin_bottom));
constraintSet.connect(tvDestinationOnlineCar.getId(),
ConstraintSet.RIGHT, naviBg.getId(), ConstraintSet.RIGHT,
(int) getDimen(R.dimen.module_ext_navi_small_margin_right));
}
constraintSet.applyTo(topMotionLayout);
ivTurnIcon.getLayoutParams().height =
@@ -425,6 +441,10 @@ public class TopViewAnimHelper {
(int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_width);
naviBg.getLayoutParams().height =
(int) topMotionLayout.getContext().getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height);
tvDestinationOnlineCar.getLayoutParams().height =
(int) getDimen(R.dimen.module_ext_button_height_small);
tvDestinationOnlineCar.setBackgroundResource(R.drawable.module_ext_dw_navi_info_panel_small_bkg);
int scene = 0;
if (naviBg.getVisibility() == View.VISIBLE) {
scene = Scene.NAVI_WITH_ROAD_EVENT;
@@ -473,8 +493,10 @@ public class TopViewAnimHelper {
arriveTimeGroup.setVisibility(View.VISIBLE);
tvNextDistance.setTextSize(TypedValue.COMPLEX_UNIT_PX,getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_textSize));
tvNextDistanceUnit.setTextSize(TypedValue.COMPLEX_UNIT_PX,getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_unit_textSize));
}
NoMapTopViewShaderHelper.getInstance().hideShader();
constraintSet.clone(topMotionLayout);
constraintSet.clear(R.id.module_entrance_id_top_container, ConstraintSet.TOP);
@@ -504,6 +526,14 @@ public class TopViewAnimHelper {
ConstraintSet.TOP, 0);
constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.BOTTOM,
naviBg.getId(), ConstraintSet.BOTTOM, 0);
constraintSet.clear(tvDestinationOnlineCar.getId(),ConstraintSet.RIGHT);
constraintSet.clear(tvDestinationOnlineCar.getId(),ConstraintSet.BOTTOM);
constraintSet.connect(tvDestinationOnlineCar.getId(), ConstraintSet.LEFT,
naviBg.getId(), ConstraintSet.LEFT);
constraintSet.connect(tvDestinationOnlineCar.getId(), ConstraintSet.TOP,
naviBg.getId(), ConstraintSet.BOTTOM,
(int) getDimen(R.dimen.module_ext_camera_button_marginTop));
}
constraintSet.applyTo(topMotionLayout);
@@ -513,6 +543,10 @@ public class TopViewAnimHelper {
(int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_width);
naviBg.getLayoutParams().height =
(int) topMotionLayout.getContext().getResources().getDimension(R.dimen.module_ext_navi_info_panel_height);
tvDestinationOnlineCar.getLayoutParams().height =
(int) getDimen(R.dimen.module_ext_button_height);
tvDestinationOnlineCar.setBackgroundResource(R.drawable.module_ext_dw_navi_info_panel_bkg);
int scene = 0;
if (naviBg.getVisibility() == View.VISIBLE) {
scene = Scene.NAVI;
@@ -541,6 +575,10 @@ public class TopViewAnimHelper {
tvNextDistance.setTextSize(TypedValue.COMPLEX_UNIT_PX,getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_textSize));
tvNextDistanceUnit.setTextSize(TypedValue.COMPLEX_UNIT_PX,getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_unit_textSize));
tvDestinationOnlineCar.getLayoutParams().height =
(int) getDimen(R.dimen.module_ext_button_height);
tvDestinationOnlineCar.setBackgroundResource(R.drawable.module_ext_dw_navi_info_panel_bkg);
// 调整约束
constraintSet.clone(topMotionLayout);
constraintSet.clear(tvNextDistance.getId(), ConstraintSet.BOTTOM);
@@ -567,6 +605,16 @@ public class TopViewAnimHelper {
ConstraintSet.TOP, 0);
constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.BOTTOM,
naviBg.getId(), ConstraintSet.BOTTOM, 0);
// 目的地车友
constraintSet.clear(tvDestinationOnlineCar.getId(),ConstraintSet.RIGHT);
constraintSet.clear(tvDestinationOnlineCar.getId(),ConstraintSet.BOTTOM);
constraintSet.connect(tvDestinationOnlineCar.getId(), ConstraintSet.LEFT,
naviBg.getId(), ConstraintSet.LEFT);
constraintSet.connect(tvDestinationOnlineCar.getId(), ConstraintSet.TOP,
naviBg.getId(), ConstraintSet.BOTTOM,
(int) getDimen(R.dimen.module_ext_camera_button_marginTop));
constraintSet.applyTo(topMotionLayout);
scene = Scene.NAVI_WITH_ROAD_EVENT;
} else {
@@ -575,6 +623,10 @@ public class TopViewAnimHelper {
arriveTimeGroup.setVisibility(View.GONE);
tvNextDistance.setTextSize(TypedValue.COMPLEX_UNIT_PX,getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_textSize_small));
tvNextDistanceUnit.setTextSize(TypedValue.COMPLEX_UNIT_PX,getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_unit_textSize_small));
tvDestinationOnlineCar.getLayoutParams().height =
(int) getDimen(R.dimen.module_ext_button_height_small);
tvDestinationOnlineCar.setBackgroundResource(R.drawable.module_ext_dw_navi_info_panel_small_bkg);
// 调整约束
constraintSet.clone(topMotionLayout);
constraintSet.connect(tvNextDistance.getId(), ConstraintSet.BOTTOM,
@@ -596,6 +648,17 @@ public class TopViewAnimHelper {
constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.BOTTOM,
naviBg.getId(), ConstraintSet.BOTTOM,
(int) getDimen(R.dimen.module_ext_navi_info_turn_icon_margin_bottom));
// 目的地车友
constraintSet.clear(tvDestinationOnlineCar.getId(),ConstraintSet.LEFT);
constraintSet.clear(tvDestinationOnlineCar.getId(),ConstraintSet.TOP);
constraintSet.connect(tvDestinationOnlineCar.getId(),
ConstraintSet.BOTTOM, naviBg.getId(), ConstraintSet.BOTTOM,
(int) getDimen(R.dimen.module_ext_navi_small_margin_bottom));
constraintSet.connect(tvDestinationOnlineCar.getId(),
ConstraintSet.RIGHT, naviBg.getId(), ConstraintSet.RIGHT,
(int) getDimen(R.dimen.module_ext_navi_small_margin_right));
constraintSet.applyTo(topMotionLayout);
scene = Scene.NAVI;
}
@@ -680,6 +743,9 @@ public class TopViewAnimHelper {
naviBg.setVisibility(visibility);
tvNextDistanceUnit.setVisibility(visibility);
tvTurnInfo.setVisibility(visibility);
if(DebugConfig.isSupportedSearchDestinationOnlineCarList()) {
tvDestinationOnlineCar.setVisibility(visibility);
}
}

View File

@@ -15,6 +15,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet;
import androidx.constraintlayout.widget.Group;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.map.MapCenterPointStrategy;
@@ -362,6 +363,9 @@ public class TopViewNoLinkageAnimHelper {
}
topContainerNoLinkage.setChildAddedListener(child -> {
topContainerNoLinkage.setChildAddedListener(null);
NoMapTopViewShaderHelper.getInstance().showShader();
constraintSet.clone(topMotionLayout);
constraintSet.clear(R.id.module_entrance_id_top_container_no_linkage,
@@ -370,7 +374,6 @@ public class TopViewNoLinkageAnimHelper {
R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP);
TransitionManager.beginDelayedTransition(topMotionLayout, transition);
checkCameraModePosition(false);
constraintSet.applyTo(topMotionLayout);
int scene = Scene.AIMLESS_WITH_ROAD_EVENT;
@@ -405,6 +408,7 @@ public class TopViewNoLinkageAnimHelper {
statusListenerMap.get(view).beforeViewRemoveAnim(view);
}
isTopViewOut = true;
NoMapTopViewShaderHelper.getInstance().hideShader();
constraintSet.clone(topMotionLayout);
constraintSet.clear(R.id.module_entrance_id_top_container_no_linkage, ConstraintSet.TOP);