opt left notice

This commit is contained in:
tongchenfei
2020-10-25 16:45:20 +08:00
parent 3fad15ff4c
commit d83fb24b4e
9 changed files with 155 additions and 11 deletions

View File

@@ -427,6 +427,7 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
}
private void exitVrMode(){
EntranceViewHolder.getInstance().forceHideNoticeView();
mApis.getStatusManagerApi().setVrMode(TYPE_ENTRANCE, false);
tvEnterVrMode.setVisibility(View.VISIBLE);
mMove2CurrentLocation.setVisibility(View.VISIBLE);

View File

@@ -49,6 +49,16 @@ public class MogoEntranceButtonControllerImpl implements IMogoEntranceButtonCont
EntranceViewHolder.getInstance().hideLeftNoticeView(view);
}
@Override
public void showLeftNoticeByType(int noticeType, int iconRes, String content) {
EntranceViewHolder.getInstance().showLeftNoticeByType(noticeType, iconRes, content);
}
@Override
public void hideLeftNoticeByType(int noticeType) {
EntranceViewHolder.getInstance().hideLeftNoticeByType(noticeType);
}
@Override
public void init( Context context ) {

View File

@@ -1,10 +1,14 @@
package com.mogo.module.extensions.utils;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.extensions.R;
import com.mogo.module.extensions.bean.BottomLayerViewWrapper;
import com.mogo.utils.logger.Logger;
@@ -13,6 +17,8 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import static com.mogo.service.entrance.IMogoEntranceButtonController.NOTICE_TYPE_SEEK_HELP;
/**
* 入口页view管理
* @author tongchenfei
@@ -119,22 +125,72 @@ public class EntranceViewHolder {
}
public void showLeftNoticeView(View view) {
if (leftNoticeContainer != null) {
realShowLeftNoticeView(view);
}else{
preAddLeftNoticeView = view;
if(MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
if (leftNoticeContainer != null) {
realShowLeftNoticeView(view);
} else {
preAddLeftNoticeView = view;
}
}
}
public void hideLeftNoticeView(View view) {
if (preAddLeftNoticeView != null && preAddLeftNoticeView == view) {
preAddLeftNoticeView = null;
if(MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
if (preAddLeftNoticeView != null && preAddLeftNoticeView == view) {
preAddLeftNoticeView = null;
}
if (leftNoticeContainer != null) {
realHideLeftNoticeView(view);
}
}
}
public void forceHideNoticeView(){
preAddLeftNoticeView = null;
currentShowNoticeType = 0;
if (leftNoticeContainer != null) {
realHideLeftNoticeView(view);
leftNoticeContainer.removeAllViews();
}
}
private int currentShowNoticeType = 0;
public void showLeftNoticeByType(int noticeType, int iconRes, String content){
if(MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
currentShowNoticeType = noticeType;
if (leftNoticeContainer != null) {
realShowLeftNoticeView(generateNoticeViewByType(noticeType, iconRes, content));
} else {
preAddLeftNoticeView = generateNoticeViewByType(noticeType, iconRes, content);
}
}
}
public void hideLeftNoticeByType(int noticeType) {
if(MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
if (currentShowNoticeType == noticeType) {
forceHideNoticeView();
}
}
}
private View generateNoticeViewByType(int noticeType,int iconRes, String content) {
View view =
LayoutInflater.from(leftNoticeContainer.getContext()).inflate(R.layout.item_vr_left_notice, leftNoticeContainer, false);
ImageView icon = view.findViewById(R.id.module_ext_iv_left_notice_icon);
if (noticeType == NOTICE_TYPE_SEEK_HELP) {
// 自车求助,是橘色的背景
icon.setBackgroundResource(R.drawable.module_ext_left_notice_icon_orange_bg);
}else{
// 其他是红色背景
icon.setBackgroundResource(R.drawable.module_ext_left_notice_icon_red_bg);
}
icon.setImageResource(iconRes);
TextView tvContent = view.findViewById(R.id.module_ext_vr_mode_left_notice_container);
tvContent.setText(content);
return view;
}
private void realShowLeftNoticeView(View view){
leftNoticeContainer.removeAllViews();
leftNoticeContainer.addView(view);