View Single Post
Old 09-01-2006, 08:51 AM   #1 (permalink)
Thumbs Must Hurt
Join Date: Oct 2004
Model: 7100t
Carrier: T-Mobile
Posts: 71
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default new CountDown Timer (need opinions/feedback)

Please Login to Remove!

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:

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!


Version 0.6
Copyright (c) 2006 by John Stoneham

***File locations***

  Desktop installable files:
    -contains this readme file, countdown.alx, countdown.cod, 
     countdown.jad and countdown.jar
  OTA location:
  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
  Release 0.2
  -increased size of Count Down field
  -tweak in default cursor placement in time entry field

Sept 24, 2006
  Release 0.3
  -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
  Release 0.5
  -added an option to display elapsed time
  -added the "Mosquito" tune
  -added "Q" (reset), "ENTER" (start/pause), and "L" (elapsed/remaining) 
   shortcut keys
  -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

  Release 0.5.1
  -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
  Release 0.5.2
  -usability fixes:
   *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
  Release 0.6
  -added zooming feature and "z" shortcut key
Attached Files
File Type: zip (41.7 KB, 167 views)

Last edited by obijohn : 10-23-2006 at 06:05 AM.
Offline   Reply With Quote