Created
November 24, 2014 03:21
-
-
Save shirish87/114f59889cb4c05d1fbf to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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