添加左侧提示框回调

This commit is contained in:
tongchenfei
2020-10-28 16:21:46 +08:00
parent 3fb3fe93fd
commit 11177a7e99
4 changed files with 86 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ import com.mogo.module.extensions.utils.EntranceViewHolder;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.entrance.ButtonIndex;
import com.mogo.service.entrance.IMogoEntranceButtonController;
import com.mogo.service.windowview.IMogoEntranceViewListener;
/**
* @author congtaowang
@@ -59,6 +60,16 @@ public class MogoEntranceButtonControllerImpl implements IMogoEntranceButtonCont
EntranceViewHolder.getInstance().hideLeftNoticeByType(noticeType);
}
@Override
public void addEntranceViewListener(IMogoEntranceViewListener listener) {
EntranceViewHolder.getInstance().addEntranceViewListener(listener);
}
@Override
public void removeEntranceViewListener(IMogoEntranceViewListener listener) {
EntranceViewHolder.getInstance().removeEntranceViewListener(listener);
}
@Override
public void init( Context context ) {

View File

@@ -11,6 +11,7 @@ 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.service.windowview.IMogoEntranceViewListener;
import com.mogo.utils.logger.Logger;
import java.util.ArrayList;
@@ -146,6 +147,9 @@ public class EntranceViewHolder {
}
public void forceHideNoticeView(){
for (IMogoEntranceViewListener listener : listeners) {
listener.onViewRemoved(currentShowNoticeType);
}
preAddLeftNoticeView = null;
currentShowNoticeType = 0;
if (leftNoticeContainer != null) {
@@ -156,6 +160,11 @@ public class EntranceViewHolder {
private int currentShowNoticeType = 0;
public void showLeftNoticeByType(int noticeType, int iconRes, String content){
if(MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
if (currentShowNoticeType != noticeType && currentShowNoticeType != 0) {
for (IMogoEntranceViewListener listener : listeners) {
listener.onViewRemoved(currentShowNoticeType);
}
}
currentShowNoticeType = noticeType;
if (leftNoticeContainer != null) {
realShowLeftNoticeView(generateNoticeViewByType(noticeType, iconRes, content));
@@ -196,6 +205,9 @@ public class EntranceViewHolder {
leftNoticeContainer.removeAllViews();
leftNoticeContainer.addView(view);
preAddLeftNoticeView = null;
for (IMogoEntranceViewListener listener : listeners) {
listener.onViewAdded(currentShowNoticeType);
}
}
private void realHideLeftNoticeView(View view) {
@@ -203,6 +215,16 @@ public class EntranceViewHolder {
leftNoticeContainer.setVisibility(View.GONE);
}
private List<IMogoEntranceViewListener> listeners = new ArrayList<>();
public void addEntranceViewListener(IMogoEntranceViewListener listener) {
listeners.add(listener);
}
public void removeEntranceViewListener(IMogoEntranceViewListener listener) {
listeners.remove(listener);
}
public void release(){
rootViewGroup = null;
}