diff options
author | Artur Dryomov <artur.dryomov@gmail.com> | 2013-09-15 02:29:10 +0300 |
---|---|---|
committer | Artur Dryomov <artur.dryomov@gmail.com> | 2013-09-15 02:34:30 +0300 |
commit | a5b4a547d55c23794f9b47cc194cfacab2e0e7d9 (patch) | |
tree | fcf9f4937fd17a78989f2294fc301d3fc04ee0ec /android | |
parent | 10ca4e0b79725729bf866aba6ba99fd5cbee859e (diff) |
Fix possible timer duplicates.
Change-Id: I070e36c4a82ca245a641e53466cdaf10dd01e95c
Diffstat (limited to 'android')
-rw-r--r-- | android/sdremote/src/org/libreoffice/impressremote/communication/Timer.java | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/android/sdremote/src/org/libreoffice/impressremote/communication/Timer.java b/android/sdremote/src/org/libreoffice/impressremote/communication/Timer.java index 4e13910ef6ad..937ccc533a69 100644 --- a/android/sdremote/src/org/libreoffice/impressremote/communication/Timer.java +++ b/android/sdremote/src/org/libreoffice/impressremote/communication/Timer.java @@ -45,24 +45,41 @@ public class Timer implements Runnable { return mTotalMinutes != 0; } + public int getMinutesLeft() { + return mTotalMinutes - mPassedMinutes; + } + + public boolean isTimeUp() { + return getMinutesLeft() <= 0; + } + public void start() { if (!isSet()) { return; } + tearDownTimerHandler(); + setUpTimerHandler(); + } + + private void tearDownTimerHandler() { + mTimerHandler.removeCallbacks(this); + } + + private void setUpTimerHandler() { mTimerHandler.postDelayed(this, TimeUnit.MINUTES.toMillis(UPDATE_PERIOD_IN_MINUTES)); } @Override public void run() { - updatePassedMinutes(); + increasePassedMinutes(); mTimerListener.onTimerUpdated(); start(); } - private void updatePassedMinutes() { + private void increasePassedMinutes() { mPassedMinutes++; } @@ -72,7 +89,7 @@ public class Timer implements Runnable { } public void pause() { - mTimerHandler.removeCallbacks(this); + tearDownTimerHandler(); } public void reset() { @@ -83,14 +100,6 @@ public class Timer implements Runnable { public void resume() { start(); } - - public boolean isTimeUp() { - return getMinutesLeft() <= 0; - } - - public int getMinutesLeft() { - return mTotalMinutes - mPassedMinutes; - } } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |