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