package cn.mutils.app.ui.web;
import proguard.annotation.Keep;
import proguard.annotation.KeepClassMembers;
import proguard.annotation.KeepImplementations;
import cn.mutils.app.os.IContextProvider;
/**
* Web message dispatcher of framework
*
* @param <MESSAGE>
*/
@Keep
@KeepClassMembers
@KeepImplementations
public interface IWebMessageDispatcher<MESSAGE> extends IContextProvider {
/**
* Whether to intercept translate message
*
* @return Return true to intercept dispatching
*/
boolean preTranslateMessage();
/**
* Translate dispatcher to MESSAGE
*/
MESSAGE translateMessage();
/**
* Dispatch message
*/
void onMessage(MESSAGE message);
/**
* Give result of dispatched message to web message manager
*/
void notifyManager(MESSAGE message);
/**
* Get web message manager
*/
IWebMessageManager getManager();
/**
* Set web message manager
*/
void setManager(IWebMessageManager manager);
}