|
|
@@ -43,6 +43,7 @@ public class AllMenuDriver implements PushMessageBroker.IPushMessageListener, ID
|
|
|
private IEventListener listener;
|
|
|
private NavigationBar navigationBar;
|
|
|
private boolean hasNewNoti = false;
|
|
|
+ private boolean isDispatched = false;
|
|
|
|
|
|
public AllMenuDriver(Context context, ConstraintLayout drawerView, IEventListener listener) {
|
|
|
this.context = context;
|
|
|
@@ -135,6 +136,7 @@ public class AllMenuDriver implements PushMessageBroker.IPushMessageListener, ID
|
|
|
|
|
|
private void dispatchMessage() {
|
|
|
if (hasUnreadMessage() || hasNewNoti()) {
|
|
|
+ isDispatched = true;
|
|
|
navigationBar.setNotiMarker(true, true);
|
|
|
}
|
|
|
}
|
|
|
@@ -147,6 +149,7 @@ public class AllMenuDriver implements PushMessageBroker.IPushMessageListener, ID
|
|
|
}
|
|
|
|
|
|
private void dispatchMessageInternal() {
|
|
|
+ disposeMessageInternal();
|
|
|
disposable = Completable.timer(400, TimeUnit.MILLISECONDS, AndroidSchedulers.mainThread())
|
|
|
.subscribe(this::dispatchMessage);
|
|
|
}
|
|
|
@@ -164,6 +167,10 @@ public class AllMenuDriver implements PushMessageBroker.IPushMessageListener, ID
|
|
|
***********************************/
|
|
|
public void updateNotiMarker(boolean hasNewNoti) {
|
|
|
this.hasNewNoti = hasNewNoti;
|
|
|
+ if (false == isDispatched && hasNewNoti()) {
|
|
|
+ // 아직 발송안하고 새 알림이 있을 경우
|
|
|
+ dispatchMessageInternal();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/***********************************
|
|
|
@@ -201,5 +208,6 @@ public class AllMenuDriver implements PushMessageBroker.IPushMessageListener, ID
|
|
|
public void onDrawerCloseEnd() {
|
|
|
navigationBar.setNotiMarker(false, false);
|
|
|
hasNewNoti = false;
|
|
|
+ isDispatched = false;
|
|
|
}
|
|
|
}
|