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 <a href="mailto:jenly1314@gmail.com">Jenly</a>
|
*/
|
public class StatusEvent extends SingleLiveEvent<Integer> {
|
|
|
public void observe(LifecycleOwner owner, final StatusObserver observer) {
|
super.observe(owner, new Observer<Integer>() {
|
@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;
|
}
|
}
|