package com.doumee.lib_coremodel.util;
|
|
import android.os.CountDownTimer;
|
|
import androidx.databinding.ObservableBoolean;
|
import androidx.databinding.ObservableInt;
|
|
public class TimeCount extends CountDownTimer {
|
|
public final ObservableInt time=new ObservableInt(0);
|
public final ObservableBoolean finish=new ObservableBoolean(true);
|
|
public static interface CallBack{
|
void onTick(long sec);
|
void onFinish();
|
}
|
|
private CallBack callBack;
|
|
/**
|
* @param millisInFuture 总时间
|
* @param countDownInterval 时间间隔
|
*/
|
public TimeCount(long millisInFuture, long countDownInterval) {
|
super(millisInFuture, countDownInterval);
|
time.set((int) (millisInFuture/1000));
|
finish.set(true);
|
}
|
|
public TimeCount(long millisInFuture, long countDownInterval,CallBack callBack) {
|
super(millisInFuture, countDownInterval);
|
time.set((int) (millisInFuture/1000));
|
finish.set(true);
|
this.callBack = callBack;
|
}
|
|
|
|
@Override
|
public void onTick(long millisUntilFinished) {
|
time.set((int) (millisUntilFinished/1000));
|
if(callBack!=null){
|
callBack.onTick(time.get());
|
}
|
if(time.get()>0&&finish.get()){
|
finish.set(false);
|
if(callBack!=null){
|
callBack.onFinish();
|
}
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
finish.set(true);
|
if(callBack!=null){
|
callBack.onFinish();
|
}
|
}
|
}
|