EDIT: updated to version 0.6 (see readme.txt below for changes)
I've written a CountDown Timer app and I'd like input/suggestions on features which should be changed or added. The attached zip includes the readme.txt file and the Desktop-installable files. If you'd like to install OTA, the link is: http://johnstoneham.com/bb/CountDown.jad
For those installing OTA, I will paste the readme.txt here.
PLEASE NOTE: Time entry is done as a single number, with 2-digit groups automagically parsed into HH MM SS (e.g. 130 is 1 minute 30 second). This is done so that the time can be entered quickly in one text-entry field, without having to change from an hours field to a minutes field to a seconds field (which always bugged me about setting the time on the built-in alarm).
ALSO NOTE: The secondary alerts do not have a "seconds" part (e.g. a value of 2 for a secondary alert means 2 minutes, not 2 seconds).
Anyway, let me know what you think, and I'll be looking forward to your suggestions!
Copyright (c) 2006 by John Stoneham
Desktop installable files:
-contains this readme file, countdown.alx, countdown.cod,
countdown.jad and countdown.jar
Current version readme:
OS requirements: 4.0 or higher
CountDown Timer is intended to serve one purpose: to be a simple, easy-to-use,
countdown-style timer with 0-time, secondary, and repeating alerts for
BlackBerry java-enabled devices. It is NOT intended to be a general purpose
chronograph or stopwatch with split times and millisecond accuracy.
Most of the settings should be fairly self-explanatory, however I should first
mention the unique way CountDown Timer displays and reads time values. Time
values do not contain separators between hours, minutes, and seconds, such as
":" or "|". Imagine a 4-digit number where the first 2 digits are minutes and
the last 2 digits are seconds, such as 1230 representing a time of 12 minutes
30 seconds, and it will be second nature almost immediately. However, the
number doesn't have to be 4 digits. If you only enter a 1- or 2-digit number
it would be in seconds, and a 5- or 6-digit number would be hours, minutes,
seconds. NOTE: Secondary alerts and repeating alerts DO NOT have a seconds part.
A value of 1 for a secondary alert would be 1 minute, not 1 second, and a value
of 100 for a secondary alert would be 1 hour, not 1 minute. See below for more
on secondary and repeating alerts.
A couple of examples will make the main time entry clear:
To enter a time of 30 seconds, enter: 30
To enter a time of 1 minute 0 seconds, enter 100
-If the number entered exceeds 2 digits, the two least
significant digits represent seconds. If you enter 60
to represent 1 minute, it will be converted to 100
when you click the Start Button.
To enter a time of 1 minute 30 seconds, enter 130
-Note that you could also enter 90, which would be
converted to 130 when you click the Start button.
This means it's possible to enter a value such as 190,
which would equal 1 minute 90 seconds, or 1 minutes plus
1 minute 30 seconds, which is 2 minutes 30 seconds. An
entry of 190 would be converted to 230 when you click
the Start button.
To enter a time of 10 minutes 0 seconds, enter 1000
To enter a time of 1 hour 30 minutes, enter 13000
-If the number entered exceeds 4 digits, the left-most
digits represent hours: HH MM SS (although the hours part
can be up to 4 digits, resulting in an 8-digit number).
Note, as explained above, that you could also enter 9000
here, which would be converted to 13000 when you click
the Start button.
Q - Reset timer
ENTER - Start/Pause timer
P (O/P) - Minimize
L - Elapsed/Remaining toggle
Z - Zoom timer display
ESC - Quit/Minimize dialog
While counting down, the Start button becomes a Pause button. If you pause a
countdown, the button becomes a Resume button unless the time entry value has
changed while the countdown was running, in which case the button then becomes
a Start button again. If you edit the value of the time entry, either while
the timer is running or paused, this new value becomes the new countdown value
whenever the Start/Pause button is clicked. This means that you can edit the
timer entry field while the timer is running, but the new value will not take
effect until you click the Start/Pause/Resume button, or when you click the
Reset button. The Reset button, as its name implies, resets the timer to the
current value of the main timer entry field (which may be a new value). The
reset will take effect even if the timer is running, allowing for a quick
restart of a new countdown. Whenever the Start or Reset buttons are clicked,
the current values of the main timer and secondary alerts are saved and will
be the default values the next time the app is started. If you've edited a time
value but haven't used it (i.e. you haven't clicked the Start/Pause/Resume or
Reset buttons) that value won't be saved when you exit the app. You must use
a value to save it.
The ENTER key is a shortcut for pressing the Start/Pause/Resume button. This is
mainly useful when entering a value in the Timer entry field or one of the
alerts. Pressing ENTER in one of the time entry fields has the same effect as
clicking the Start/Pause/Resume button (that button will then have focus and be
selected). On some devices, this shortcut will work when outside the time entry
fields as well, but this behavior is unsupported.
When the total elasped time has expired, the main alert will play if "Tone" is
checked, and the device will vibrate if "Vibrate" is checked. An alternate tune
is available, called "Mosquito", which is faster and has a higher pitch than the
standard tune (which is called "Encounters"). The Mosquito tune may be more
noticeable and easier to hear in loud surroundings.
If you would like to see the elasped time displayed instead of time remaining,
select the "Elapsed" checkbox. This acts as a toggle and can be selected while
a countdown is running. The "L" key is a shortcut for selecting the Elapsed
checkbox, and is valid anywhere on the screen except for the time entry fields.
Pressing the "L" key toggles the Elasped checkbox and the countdown display will
then change between Elapsed Time and Remaining Time.
The "Z" key will zoom the current countdown time (the other screen elements are
not effected). There are 4 zoom levels, and pressing the "Z" key will toggle
between them. NOTE: Zooming is disabled when the time is greater than 100 hours.
There are three ways to minimize the app, which will cause it to continue a
running countdown in the background. The "P" key (the single "O/P" key on the
7100/8100) is a shortcut key to minimize, which causes the app to immediately go
to the background. Pressing ESC will bring up a Quit Dialog box, one option of
which is "Minimize". Also, when the Quit Dialog is open, pressing ESC again will
minimize the app; this means that a quick shortcut to minimize the app is double
clicking the ESC key. If "Restore" is checked, when the specified time has
elapsed the timer will become the foreground app again and vibrate and play the
alert tone if those items are checked. If "Restore" is unchecked, it will remain
in the background but still vibrate and/or play the alert tone if those items
are checked. NOTE: Secondary alerts will not cause the app to restore, even if
"Restore" is checked.
There are 4 additional time entry fields: Alert 1, Alert 2, Repeat Start, and
Repeat Every. Unlike the main time entry field, these fields DO NOT have a
"seconds" part (a value of 1 means 1 minute, and a value of 100 means 1 hour).
The Alert fields indicate that a secondary alert will sound when X time remains
in the countdown. Repeat Start marks a secondary alert as well, and it also sets
a threshhold time at which a repeating alert will begin. The actual value of the
repeat time is indicated by the Repeat Every field: an alert will sound at every
X interval, but as counted up from 0. For example, if Repeat Start is 6, and
Repeat Every is 2, an alert will sound with 6 minutes remaining, 4 minutes
remaining, and 2 minutes remaining. However, if Repeat Start is 7 and Repeat
Every is 2, an alert will sound with 7 minutes remaining, but the repeat alert
will actually begin with 6 minutes remaining (not 5), and repeat again with 4
minutes and 2 minutes remainining. If Repeat Start is 0 and Repeat Every is NOT
0, then the repeating alert begins when the countdown itself begins. All these
values can be edited while a countdown is in progress; however, they will not
take effect until the current countdown is reset or paused and restarted. If you
try to enter a value that would be out of range (for example, if the main timer
was set to 10 minutes and you try to enter a value of 30 minutes for an alert),
it will be reset to 0 when you press the Start/Pause/Resume or Reset buttons to
reflect the fact that the alert would have no effect.
NOTE: Secondary alerts will not vibrate unless *only* Vibrate is checked (i.e.,
Vibrate is checked but Tone is unchecked). In other words, secondary alerts are
"tone-only" alerts unless the main alert is "vibrate-only".
Sept 1, 2006
First public release, ver 0.1
-most initial planned features are implemented
Sept 22, 2006
-increased size of Count Down field
-tweak in default cursor placement in time entry field
Sept 24, 2006
-added Alert and Repeat fields, support for secondary and repeating alerts
-rearranged layout to accommodate the above features
-added "P" (O/P) minimize shortcut key
-fixed display sync (displayed time was 1 second less than the internal time)
Release 0.4 (same day!)
-added Restart button
-added Minimize option in Quit Dialog, and double-ESC shortcut
-removed Minimize button (it was now redundant)
-rearranged layout again due to the above changes
Sept 27, 2006
-added an option to display elapsed time
-added the "Mosquito" tune
-added "Q" (reset), "ENTER" (start/pause), and "L" (elapsed/remaining)
-fixed a bug where changes in the secondary and repeating alerts did not take
effect when the Reset button was clicked before clicking the Start button
-fixed a bug in which an exception was thrown if the Start button was pressed
while one of the time entry fields was completely empty
-fixed a stupid bug in the "vibrate only" setting
-relabeled the "Start Timer"/"Pause Timer" button to "Start"/"Pause" so that
there is enough room on the 8100 (Pearl) display for the Elapsed checkbox
Sept 28, 2006
*enforce maximum allowable time for main time and secondary/repeat times
*Start/Pause button now indicates "Resume" when a countdown is paused
-general code cleanup
-more specific description of time entry and alerts in the docs
Oct 23, 2006
-added zooming feature and "z" shortcut key