1. m1增加topView蒙层
2. 1.1.8 优化目的地车友位置
This commit is contained in:
@@ -50,6 +50,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;
|
||||
@@ -205,6 +206,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);
|
||||
@@ -630,6 +633,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
|
||||
TopViewAnimHelper.getInstance().clear();
|
||||
TopViewNoLinkageAnimHelper.getInstance().removeAllView();
|
||||
TopViewNoLinkageAnimHelper.getInstance().clear();
|
||||
NoMapTopViewShaderHelper.getInstance().release();
|
||||
EntranceViewHolder.getInstance().release();
|
||||
}
|
||||
|
||||
@@ -691,11 +695,12 @@ 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
|
||||
@@ -708,7 +713,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -58,8 +58,6 @@ public class TopViewAnimHelper {
|
||||
private Transition transition;
|
||||
private TextView cameraMode;
|
||||
|
||||
private View shader;
|
||||
|
||||
private float topHeight = 0f;
|
||||
|
||||
private Handler handler = new Handler();
|
||||
@@ -105,8 +103,6 @@ public class TopViewAnimHelper {
|
||||
tvTurnInfo = rootView.findViewById(R.id.module_map_id_navi_next_info_turn_info);
|
||||
tvDestinationOnlineCar = rootView.findViewById(R.id.module_ext_id_destination_online_car);
|
||||
|
||||
shader = rootView.findViewById(R.id.module_ext_id_top_container_shader);
|
||||
|
||||
topContainer.setSlideListener(this::startLatestTopOutAnim);
|
||||
|
||||
ivTurnIcon = rootView.findViewById(R.id.module_map_id_navi_next_info_road_turn_icon);
|
||||
@@ -382,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,
|
||||
@@ -393,9 +391,6 @@ public class TopViewAnimHelper {
|
||||
TransitionManager.beginDelayedTransition(topMotionLayout, transition);
|
||||
// }
|
||||
checkCameraModePosition(false);
|
||||
if (DebugConfig.isMapBased()) {
|
||||
shader.setVisibility(View.VISIBLE);
|
||||
}
|
||||
if (naviBg.getVisibility() == View.VISIBLE) {
|
||||
// 约束设置需要在applyTo()方法之前执行,visiable设置需要在applyTo()
|
||||
// 方法之后执行才能生效,所以分开了两个判断,至于为什么这么做才能生效,不得而知
|
||||
@@ -429,18 +424,15 @@ public class TopViewAnimHelper {
|
||||
getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_unit_textSize_small));
|
||||
|
||||
// 改变目的地车友的约束
|
||||
constraintSet.clear(tvDestinationOnlineCar.getId());
|
||||
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));
|
||||
|
||||
tvDestinationOnlineCar.getLayoutParams().height =
|
||||
(int) getDimen(R.dimen.module_ext_navi_info_panel_small_height);
|
||||
tvDestinationOnlineCar.setBackgroundResource(R.drawable.module_ext_dw_navi_info_panel_small_bkg);
|
||||
|
||||
}
|
||||
constraintSet.applyTo(topMotionLayout);
|
||||
ivTurnIcon.getLayoutParams().height =
|
||||
@@ -449,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;
|
||||
@@ -497,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);
|
||||
@@ -507,10 +505,6 @@ public class TopViewAnimHelper {
|
||||
TransitionManager.beginDelayedTransition(topMotionLayout, transition);
|
||||
checkCameraModePosition(false);
|
||||
|
||||
if (DebugConfig.isMapBased()) {
|
||||
shader.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if (naviBg.getVisibility() == View.VISIBLE) {
|
||||
// 约束设置需要在applyTo()方法之前执行,visiable设置需要在applyTo()
|
||||
// 方法之后执行才能生效,所以分开了两个判断,至于为什么这么做才能生效,不得而知
|
||||
@@ -533,17 +527,13 @@ public class TopViewAnimHelper {
|
||||
constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.BOTTOM,
|
||||
naviBg.getId(), ConstraintSet.BOTTOM, 0);
|
||||
|
||||
constraintSet.clear(tvDestinationOnlineCar.getId());
|
||||
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));
|
||||
|
||||
tvDestinationOnlineCar.getLayoutParams().height =
|
||||
(int) getDimen(R.dimen.module_ext_navi_info_panel_height);
|
||||
tvDestinationOnlineCar.setBackgroundResource(R.drawable.module_ext_dw_navi_info_panel_bkg);
|
||||
|
||||
}
|
||||
constraintSet.applyTo(topMotionLayout);
|
||||
|
||||
@@ -553,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;
|
||||
@@ -581,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);
|
||||
@@ -609,17 +607,14 @@ public class TopViewAnimHelper {
|
||||
naviBg.getId(), ConstraintSet.BOTTOM, 0);
|
||||
|
||||
// 目的地车友
|
||||
constraintSet.clear(tvDestinationOnlineCar.getId());
|
||||
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));
|
||||
|
||||
tvDestinationOnlineCar.getLayoutParams().height =
|
||||
(int) getDimen(R.dimen.module_ext_navi_info_panel_height);
|
||||
tvDestinationOnlineCar.setBackgroundResource(R.drawable.module_ext_dw_navi_info_panel_bkg);
|
||||
|
||||
constraintSet.applyTo(topMotionLayout);
|
||||
scene = Scene.NAVI_WITH_ROAD_EVENT;
|
||||
} else {
|
||||
@@ -628,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,
|
||||
@@ -651,7 +650,8 @@ public class TopViewAnimHelper {
|
||||
(int) getDimen(R.dimen.module_ext_navi_info_turn_icon_margin_bottom));
|
||||
|
||||
// 目的地车友
|
||||
constraintSet.clear(tvDestinationOnlineCar.getId());
|
||||
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));
|
||||
@@ -659,10 +659,6 @@ public class TopViewAnimHelper {
|
||||
ConstraintSet.RIGHT, naviBg.getId(), ConstraintSet.RIGHT,
|
||||
(int) getDimen(R.dimen.module_ext_navi_small_margin_right));
|
||||
|
||||
tvDestinationOnlineCar.getLayoutParams().height =
|
||||
(int) getDimen(R.dimen.module_ext_navi_info_panel_small_height);
|
||||
tvDestinationOnlineCar.setBackgroundResource(R.drawable.module_ext_dw_navi_info_panel_small_bkg);
|
||||
|
||||
constraintSet.applyTo(topMotionLayout);
|
||||
scene = Scene.NAVI;
|
||||
}
|
||||
@@ -747,6 +743,9 @@ public class TopViewAnimHelper {
|
||||
naviBg.setVisibility(visibility);
|
||||
tvNextDistanceUnit.setVisibility(visibility);
|
||||
tvTurnInfo.setVisibility(visibility);
|
||||
if(DebugConfig.isSupportedSearchDestinationOnlineCarList()) {
|
||||
tvDestinationOnlineCar.setVisibility(visibility);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -54,8 +54,6 @@ public class TopViewNoLinkageAnimHelper {
|
||||
private Transition transition;
|
||||
private TextView cameraMode;
|
||||
|
||||
private View shader;
|
||||
|
||||
private float topHeight = 0f;
|
||||
|
||||
private Handler handler = new Handler();
|
||||
@@ -100,8 +98,6 @@ public class TopViewNoLinkageAnimHelper {
|
||||
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);
|
||||
|
||||
shader = rootView.findViewById(R.id.module_ext_id_top_container_shader);
|
||||
|
||||
topContainerNoLinkage.setSlideListener(this::startLatestTopOutAnim);
|
||||
|
||||
ivTurnIcon = rootView.findViewById(R.id.module_map_id_navi_next_info_road_turn_icon);
|
||||
@@ -367,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,
|
||||
@@ -375,9 +374,6 @@ public class TopViewNoLinkageAnimHelper {
|
||||
R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP);
|
||||
TransitionManager.beginDelayedTransition(topMotionLayout, transition);
|
||||
checkCameraModePosition(false);
|
||||
if (DebugConfig.isMapBased()) {
|
||||
shader.setVisibility(View.VISIBLE);
|
||||
}
|
||||
constraintSet.applyTo(topMotionLayout);
|
||||
|
||||
int scene = Scene.AIMLESS_WITH_ROAD_EVENT;
|
||||
@@ -412,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);
|
||||
|
||||
Reference in New Issue
Block a user