Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9f960e0 authored by Narayan Kamath's avatar Narayan Kamath Committed by Gerrit Code Review
Browse files

Merge "Fixed cancel() not working correctly"

parents e05b7b50 3cd12a51
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package android.os;

import android.util.Log;

/**
 * Schedule a countdown until a time in the future, with
 * regular notifications on intervals along the way.
@@ -57,6 +55,11 @@ public abstract class CountDownTimer {

    private long mStopTimeInFuture;
    
    /**
    * boolean representing if the timer was cancelled
    */
    private boolean mCancelled = false;

    /**
     * @param millisInFuture The number of millis in the future from the call
     *   to {@link #start()} until the countdown is done and {@link #onFinish()}
@@ -72,7 +75,8 @@ public abstract class CountDownTimer {
    /**
     * Cancel the countdown.
     */
    public final void cancel() {
    public synchronized final void cancel() {
        mCancelled = true;
        mHandler.removeMessages(MSG);
    }

@@ -80,6 +84,7 @@ public abstract class CountDownTimer {
     * Start the countdown.
     */
    public synchronized final CountDownTimer start() {
        mCancelled = false;
        if (mMillisInFuture <= 0) {
            onFinish();
            return this;
@@ -112,6 +117,10 @@ public abstract class CountDownTimer {
        public void handleMessage(Message msg) {

            synchronized (CountDownTimer.this) {
                if (mCancelled) {
                    return;
                }

                final long millisLeft = mStopTimeInFuture - SystemClock.elapsedRealtime();

                if (millisLeft <= 0) {