package com.doumee.lib_coremodel.base.livedata;
import androidx.annotation.IntDef;
import androidx.annotation.Nullable;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.Observer;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* 提供观察状态事件
* @author Jenly
*/
public class StatusEvent extends SingleLiveEvent {
public void observe(LifecycleOwner owner, final StatusObserver observer) {
super.observe(owner, new Observer() {
@Override
public void onChanged(@Nullable Integer t) {
if (t != null) {
observer.onStatusChanged(t);
}
}
});
}
public interface StatusObserver{
void onStatusChanged(@Status int status);
}
/**
* 状态
*/
@IntDef({Status.LOADING, Status.SUCCESS, Status.FAILURE, Status.ERROR})
@Retention(RetentionPolicy.SOURCE)
public @interface Status {
int LOADING = 0;
int SUCCESS = 1;
int FAILURE = 2;
int ERROR = 3;
}
}