Skip to content

Instantly share code, notes, and snippets.

@shirish87
Created November 24, 2014 03:21
Show Gist options
  • Save shirish87/114f59889cb4c05d1fbf to your computer and use it in GitHub Desktop.
Save shirish87/114f59889cb4c05d1fbf to your computer and use it in GitHub Desktop.
package com.buggycoder.io.lib.proc;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import java.util.concurrent.atomic.AtomicBoolean;
public abstract class WrappedHandler {
private final Handler mHandler;
private final AtomicBoolean mIsPostDisabled = new AtomicBoolean(false);
public WrappedHandler(Looper looper) {
mHandler = new Handler(looper) {
@Override
public void handleMessage(Message msg) {
if (isPostEnabled()) {
WrappedHandler.this.handleMessage(msg);
}
}
};
}
public Handler getHanlder() {
return mHandler;
}
public boolean post(Runnable r) {
return isPostEnabled() && mHandler.post(r);
}
public boolean postAtTime(Runnable r, long uptimeMillis) {
return isPostEnabled() && mHandler.postAtTime(r, uptimeMillis);
}
public boolean postAtTime(Runnable r, Object token, long uptimeMillis) {
return isPostEnabled() && mHandler.postAtTime(r, token, uptimeMillis);
}
public boolean postDelayed(Runnable r, long delayMillis) {
return isPostEnabled() && mHandler.postDelayed(r, delayMillis);
}
public boolean sendMessage(Message msg) {
return isPostEnabled() && mHandler.sendMessage(msg);
}
public boolean sendEmptyMessage(int what) {
return isPostEnabled() && mHandler.sendEmptyMessage(what);
}
public boolean sendEmptyMessageDelayed(int what, long delayMillis) {
return isPostEnabled() && mHandler.sendEmptyMessageDelayed(what, delayMillis);
}
public boolean sendEmptyMessageAtTime(int what, long uptimeMillis) {
return isPostEnabled() && mHandler.sendEmptyMessageAtTime(what, uptimeMillis);
}
public boolean sendMessageDelayed(Message msg, long delayMillis) {
return isPostEnabled() && mHandler.sendMessageDelayed(msg, delayMillis);
}
public boolean sendMessageAtTime(Message msg, long uptimeMillis) {
return isPostEnabled() && mHandler.sendMessageAtTime(msg, uptimeMillis);
}
public boolean sendMessageAtFrontOfQueue(Message msg) {
return isPostEnabled() && mHandler.sendMessageAtFrontOfQueue(msg);
}
public boolean postAtFrontOfQueue(Runnable r) {
return isPostEnabled() && mHandler.postAtFrontOfQueue(r);
}
public void removeCallbacks(Runnable r) {
mHandler.removeCallbacks(r);
}
public void removeCallbacks(Runnable r, Object token) {
mHandler.removeCallbacks(r, token);
}
public void removeMessages(int what) {
mHandler.removeMessages(what);
}
public void removeMessages(int what, Object object) {
mHandler.removeMessages(what, object);
}
public void removeCallbacksAndMessages(Object token) {
mHandler.removeCallbacksAndMessages(token);
}
public boolean hasMessages(int what) {
return mHandler.hasMessages(what);
}
public boolean hasMessages(int what, Object object) {
return mHandler.hasMessages(what, object);
}
public String getMessageName(Message message) {
return mHandler.getMessageName(message);
}
public Message obtainMessage() {
return mHandler.obtainMessage();
}
public Message obtainMessage(int what) {
return mHandler.obtainMessage(what);
}
public Message obtainMessage(int what, Object obj) {
return mHandler.obtainMessage(what, obj);
}
public Message obtainMessage(int what, int arg1, int arg2) {
return mHandler.obtainMessage(what, arg1, arg2);
}
public Message obtainMessage(int what, int arg1, int arg2, Object obj) {
return mHandler.obtainMessage(what, arg1, arg2, obj);
}
public boolean isPostEnabled() {
return !mIsPostDisabled.get();
}
public void enablePost() {
mIsPostDisabled.set(false);
}
public void disablePost() {
mIsPostDisabled.set(true);
}
public void destroy() {
removeCallbacksAndMessages(null);
disablePost();
}
public abstract void handleMessage(Message msg);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment