添加左侧提示框回调
This commit is contained in:
@@ -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 ) {
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.alibaba.android.arouter.facade.template.IProvider;
|
||||
import com.mogo.service.windowview.IMogoEntranceViewListener;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
@@ -110,4 +111,16 @@ public interface IMogoEntranceButtonController extends IProvider {
|
||||
* @param noticeType {@link #NOTICE_TYPE_SUDDENLY_BREAK}...
|
||||
*/
|
||||
void hideLeftNoticeByType(int noticeType);
|
||||
|
||||
/**
|
||||
* 添加view状态回调监听
|
||||
* @param listener 回调监听
|
||||
*/
|
||||
void addEntranceViewListener(IMogoEntranceViewListener listener);
|
||||
|
||||
/**
|
||||
* 移除view状态回调监听
|
||||
* @param listener 回调监听
|
||||
*/
|
||||
void removeEntranceViewListener(IMogoEntranceViewListener listener);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.mogo.service.windowview;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
/**
|
||||
* EntranceView状态监听
|
||||
*
|
||||
* @author tongchenfei
|
||||
*/
|
||||
public interface IMogoEntranceViewListener {
|
||||
/**
|
||||
* 新view展示
|
||||
* 只针对左侧提示(LeftNotice)
|
||||
* @param type 展示的类型
|
||||
*/
|
||||
void onViewAdded(int type);
|
||||
|
||||
/**
|
||||
* view移除
|
||||
* 只针对左侧提示(LeftNotice)
|
||||
* @param type 移除的type
|
||||
*/
|
||||
void onViewRemoved(int type);
|
||||
|
||||
/**
|
||||
* view添加动画开始之前
|
||||
* @param view 添加的view
|
||||
* @deprecated 暂时没用
|
||||
*/
|
||||
@Deprecated
|
||||
void beforeViewAddAnim(View view);
|
||||
|
||||
/**
|
||||
* view 移除动画开始之前
|
||||
* @param view 移除的view
|
||||
* @deprecated 暂时没用
|
||||
*/
|
||||
@Deprecated
|
||||
void beforeViewRemoveAnim(View view);
|
||||
}
|
||||
Reference in New Issue
Block a user