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; } }