/*
*
* StateHandler.java
*
* Created by Wuwang on 2016/11/8
* Copyright © 2016年 深圳哎吖科技. All rights reserved.
*/
package com.aiyaapp.camera.sdk.base;
import java.util.ArrayList;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
public class ActionObservable {
private ArrayList<ActionObserver> mObservers;
private Handler mHandler;
public ActionObservable(){
mObservers=new ArrayList<>();
initHandler();
}
private void initHandler(){
mHandler=new Handler(Looper.getMainLooper()){
@Override
public void handleMessage(Message msg) {
for (int i=0;i<mObservers.size();i++) {
mObservers.get(i).onAction((Event)msg.obj);
}
}
};
}
public void notifyState(Event state){
Message msg=mHandler.obtainMessage();
msg.obj=state;
mHandler.sendMessage(msg);
}
public void registerObserver(ActionObserver observer){
if(!mObservers.contains(observer)){
mObservers.add(observer);
}
}
public void unRegisterObserver(ActionObserver observer){
mObservers.remove(observer);
}
public void unRegisterAll(){
mObservers.clear();
}
}