package cn.mutils.app.push;
import proguard.annotation.Keep;
import proguard.annotation.KeepClassMembers;
import proguard.annotation.KeepImplementations;
import cn.mutils.app.os.IContextProvider;
/**
* Push dispatcher of framework
*/
@Keep
@KeepClassMembers
@KeepImplementations
public interface IPushDispatcher<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);
/**
* Get push manager
*/
IPushManager getManager();
/**
* Set push manager
*/
void setManager(IPushManager manager);
}