BlackBerry Forums Support Community               

Closed Thread
 
LinkBack Thread Tools
Old 09-01-2006, 09: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:
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!

README.TXT
Code:
COUNTDOWN TIMER
----------------

Version 0.6
Copyright (c) 2006 by John Stoneham
captnjameskirk@yahoo.com

***File locations***

  Desktop installable files:
  http://johnstoneham.com/bb/timer.zip
    -contains this readme file, countdown.alx, countdown.cod, 
     countdown.jad and countdown.jar
    
  OTA location:
  http://johnstoneham.com/bb/CountDown.jad
  
  Current version readme:
  http://johnstoneham.com/bb/timer.txt
    
  
***Description***

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.  

TIME ENTRY:  
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.

SHORTCUT KEYS:
Q        - Reset timer
ENTER    - Start/Pause timer
P (O/P)  - Minimize
L        - Elapsed/Remaining toggle
Z        - Zoom timer display
ESC      - Quit/Minimize dialog

START/STOP/PAUSE/RESET:
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.

MINIMIZE:
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.

SECONDARY ALERTS:
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". 

***Changelog***

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 timer.zip (41.7 KB, 167 views)

Last edited by obijohn : 10-23-2006 at 07:05 AM.
Offline  
Old 09-01-2006, 02:01 PM   #2 (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

I forgot to mention that this probably requires OS 4.0 (4.1 is definitely ok). The API docs say that the audio functions I'm using require 4.0 or higher, so I guess that's true. I have tested it on just about every model in the Simulator pack and it appears to work fine on them all, but I only have 1 "real" unit (a 7100t running 4.1).

If you test it and it works on your unit, please post a reply to this thread stating the model you have and your OS version if you know it, so I can keep track of what models it's known to work on.

Thanks everyone!
Offline  
Old 09-01-2006, 07:37 PM   #3 (permalink)
Talking BlackBerry Encyclopedia
 
Dispatcher35's Avatar
 
Join Date: Feb 2006
Location: Marlborough, MA
Model: 8350i
PIN: 4026f12b
Carrier: Nextel
Posts: 235
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Just installed it and tried it on a 7100i with 4.1 and worked like a champ. Only thing is the alert tone could be a little louder.

Mike
__________________

Marlborough, MA
BB PIN=4026F12b~~AIM=Mikeyp158
[email address]
Offline  
Old 09-01-2006, 08:46 PM   #4 (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

Quote:
Originally Posted by Dispatcher35
Just installed it and tried it on a 7100i with 4.1 and worked like a champ. Only thing is the alert tone could be a little louder.

Mike
Thanks, glad it works ok for you! Unfortunately, RIM has not exposed an API that allows apps to play the tones and alerts already stored on the phone; the app has to create it's own, and the options are limited. The alert I'm using (anyone notice what it is?) already is at it's loudest volume, which is one reason I thought that vibrate should be offered in addition to the tone.
Offline  
Old 09-03-2006, 12:47 PM   #5 (permalink)
New Member
 
Join Date: Sep 2006
Model: 7130e
Posts: 1
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default Thanks

This is great for playing cards, (raising the blinds). Works great on my 7130e.

Thanks
D.
Offline  
Old 09-03-2006, 01:25 PM   #6 (permalink)
Latino Hasta La Muerte
 
Join Date: Jan 2005
Location: Denville, NJ.
Model: 7250
OS: 4.1
PIN: G!!!
Carrier: Verizon
Posts: 9,045
Post Thanks: 52
Thanked 305 Times in 293 Posts
Default

Very nice little app! I especially like that it's a very small application, eschewing a fancy interface for a no-nonsense countdown timer to save space. Does exactly what it's supposed to do, no more, no less.
Offline  
Old 09-03-2006, 02:23 PM   #7 (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

Quote:
Originally Posted by rambo47
Very nice little app! I especially like that it's a very small application, eschewing a fancy interface for a no-nonsense countdown timer to save space. Does exactly what it's supposed to do, no more, no less.
Thanks! One of my goals was for it to consume very few resources when "minimized" and running in the background.
Offline  
Old 09-20-2006, 08:55 PM   #8 (permalink)
Thumbs Must Hurt
 
Join Date: Sep 2004
Model: 8700
Carrier: T-mo
Posts: 162
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Features request:

May be a better time selection field and larger display of the count down.

Also, ability to set alerts before the timer expires.. like if it is a 15min count down, I would like to set multiple alerts at 10, 5, 1 minutes, etc. This would be helpful for chairing time-limited talks, etc.

P
Offline  
Old 09-22-2006, 03:34 PM   #9 (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

Quote:
Originally Posted by patrickh
Features request:

May be a better time selection field and larger display of the count down.
Done (I hope). I've enlarged the countdown display and given it a slightly different font, so it's much more visible. As for the time selection field, what I've done with my latest version (not yet uploaded, see below) is to have the cursor automatically jump to the end of the minutes section of the time field when you start the app. Like this: 25|00
This should be more convenient than starting at the very front or end of the field (like |2500 which it currently does, or 2500| which is the next best option). I've decided to stay with my original idea of not using separate fields for hours/minutes/seconds, for the reasons I've already explained.

Quote:
Also, ability to set alerts before the timer expires.. like if it is a 15min count down, I would like to set multiple alerts at 10, 5, 1 minutes, etc. This would be helpful for chairing time-limited talks, etc.
P
I've done a version of this as well, but before I upload it I wanted to get a general opinion on what would be more useful: a) repeating sub-alerts, e.g. every 5 minutes or 2 minutes or whatever until the total countdown is done and the final alert sounds; or b) a non-repeating x-minute warning, e.g. a single 5-minute or 2-minute warning before the countdown is done.

Actually, I could probably do this as a user-selectable option, now that I think about it. So you could chose either a non-repeating x-minute warning or a repeating x-minute alert until the final alert sounds, or none.

Let me know what you guys think. I may just go with this last idea, since it will be fairly easy to extend what I've already started.

I'll wait a day or so for some more input before uploading the new version, but if no one responds I'll go with my last idea.

Thanks for the input so far!
Offline  
Old 09-22-2006, 04:21 PM   #10 (permalink)
CrackBerry Addict
 
Join Date: Oct 2004
Model: 9800
OS: 6.0.0.337
Carrier: (`.at&t.)
Posts: 825
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

I think you should have two optional sections for user to configure alerts before timer hits 0.

So they set their time, lets say 2500
then there is an Optional alert section with two areas that can be configured

Sound alert at __x1__ time and then repeat every _x2__ time(s).
Sound alert at __y1__ time and then repeat every _y2__ time(s).

so for an example they could sound alert at 1500 and repeat 0 times
then sound alert at 500 and repeat every minute.

This gives the user the ability to set a "marker" so to speak but then a separate repeating interval.

With your way I could only have one non repeating alert or a repeating one.
So the user couldn't alert when 10 minutes are left and then every minute for the last 3. With the options above they could.
and a user could enter a value for x1 or nothing else or x1, x2. or x1 y1. or x1, y1 y2.
Offline  
Old 09-22-2006, 04:38 PM   #11 (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

Hmmm, this sort of sounds like a cascading alert. I realize it's not what you meant exactly, but it is another nice idea (I think). For example, a cascading alert would sound whenever the remaining time is 50% of the elapsed time since the previous alert. So if you set the timer for 20 minutes, it would go off with 10 minutes remaining, then 5 more remaining, then 2.5 minutes remaining... etc. Of course there would have to be a cutoff at, for example, the 30 second mark.

Anyway, that's not exactly what you mean, but I like the idea so I may incorporate it as well.
Offline  
Old 09-24-2006, 08:33 AM   #12 (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

I've incorporated some of the suggested changes. See the first post in this thread for the updated readme.txt file which explains all the changes.

Enjoy!
Offline  
Old 09-24-2006, 11:27 AM   #13 (permalink)
Thumbs Must Hurt
 
Join Date: Sep 2004
Model: 8700
Carrier: T-mo
Posts: 162
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

You need a reset timer menu item / button..

I also suggest a quick double-ESC to minimize (move to background)..
Offline  
Old 09-24-2006, 12:50 PM   #14 (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

Quote:
Originally Posted by patrickh
You need a reset timer menu item / button..
Will do. Can't believe I didn't catch that one myself!
Quote:
I also suggest a quick double-ESC to minimize (move to background)..
Good idea. With the shortcut minimize keys and double-ESC, I can probably remove the Minimize button altogether. Should I leave it, or no?
Offline  
Old 09-24-2006, 05:36 PM   #15 (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

Ok, suggestions again incorporated into new version. See first post in thread.
Offline  
Old 09-24-2006, 08:53 PM   #16 (permalink)
BlackBerry Extraordinaire
 
cooperpwc's Avatar
 
Join Date: Mar 2006
Location: Toronto Canada
Model: 8700R
Carrier: Rogers
Posts: 1,001
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Quote:
Originally Posted by obijohn
Unfortunately, RIM has not exposed an API that allows apps to play the tones and alerts already stored on the phone; the app has to create it's own, and the options are limited.
The interesting thing is that the folks at RexWireless have found a way to tap into the Blackberry tunes and alerts system. ToDoMatrix adds itself as setting that can be fully adjusted in each profile. I'm not suggesting that you would want to go that far for your Timer app (which I'm about to test) but I thought that it would interest you to know.
Offline  
Old 09-24-2006, 09:09 PM   #17 (permalink)
BlackBerry Extraordinaire
 
cooperpwc's Avatar
 
Join Date: Mar 2006
Location: Toronto Canada
Model: 8700R
Carrier: Rogers
Posts: 1,001
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Perfect simple app. Thanks! It's a keeper.
Offline  
Old 09-24-2006, 09:30 PM   #18 (permalink)
Thumbs Must Hurt
 
Join Date: Jun 2006
Location: Lancaster, PA
Model: 8310
Carrier: AT&T Cingular
Posts: 143
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

pretty cool utility. I never carry a watch, or a stopwatch...now this will come in handy for a ton of stuff.

Added this and the NFL tracker, both pretty awesome tools.

Thanks!
Offline  
Old 09-24-2006, 10:54 PM   #19 (permalink)
Crimson Tide Moderator
 
JSanders's Avatar
 
Join Date: Oct 2004
Location: North of the moss line
Model: 9xx0
OS: 7.0sumtin
PIN: t low
Carrier: Verizon
Posts: 41,907
Post Thanks: 60
Thanked 244 Times in 182 Posts
Default

Great App, I've used it as timekeeper for my child's soccer games.
Offline  
Old 09-25-2006, 06:00 AM   #20 (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

Quote:
Originally Posted by cooperpwc
The interesting thing is that the folks at RexWireless have found a way to tap into the Blackberry tunes and alerts system. ToDoMatrix adds itself as setting that can be fully adjusted in each profile. I'm not suggesting that you would want to go that far for your Timer app (which I'm about to test) but I thought that it would interest you to know.
There are a couple of problems with this.
1) Implementing the feature you describe requires code signing keys issued by RIM (and paid for by the developer). Since I'm releasing this free, I can't afford to pay for the keys. I guess if I was going to charge $59 for an app like ToDoMatrix, then maybe I would consider it as an option.
2) Even if I paid for the keys, this type of alert can only be set by the user outside the app by editing the device profiles. There is no way to select and play a device ringtone/tune directly within an app.

Basically, the app itself cannot access the tunes on the device at all. For some reason, RIM just doesn't allow this. The way the above method works is the app issues a "play notification alert" command and whatever alert tune has been assigned in the user profile will play. And to do this requires the developer paying for code signing keys to get access to the necessary commands to create and access settings in the profiles.

To me, this whole thing is idiotic. Let's say I wrote a countdown timer for Windows. Can you imagine having to open the Windows Control Panel and edit the system Sound Properties to assign a particular tune for the timer to play, instead of simply being able to assign it in the application itself? And on top of this, Microsoft charging the developer a fee for the privilege of using such a wonderful setup? That's just crazy!
Offline  
Closed Thread


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On





Copyright 2004-2014 BlackBerryForums.com.
The names RIM and BlackBerry are registered Trademarks of BlackBerry Inc.