HandyShopper for Palm OS
by Christopher Antos, Copyright © 1998-2011, All Rights Reserved.
History of Changes
IMPORTANT - HS2CONVERT has been renamed to HS3CONVERT. If you use the converter tool (or any application
that uses it, such as Desktop Shopper or the HS2Edit Excel spreadsheet),
always update the converter on your desktop computer in addition to updating
HandyShopper on your handheld device.
v3.1.3 - build 7422 - Feb 22, 2011
- Fixed 'Learn Your Shopping Order' to work properly on Palm OS devices.
- Fixed a crash on devices older than OS 4.0 (due to trying to draw a color line on a black-and-white device).
- Fixed the list view table to make the 'click' sounds at the usual times again.
v3.1.2 - build 6228 - Feb 28, 2010
- Start a new lookup session when using the context menu, jog wheel, or D-pad to check off an item.
- Improved behavior on devices with D-pad Navigation (the blue aura around the active control); it should get in the way less now.
- Fixed Import when the thousands separator is the space character.
- Fixed popup list of stores on OS 5.0 and higher to scroll the current store into view.
- Fixed Copy Item so that the item gets sorted into position after being edited.
- Fixed New and Copy Item so they can be undone.
- Fixed AutoOrder corruption; you may need to reset your AutoOrder information by going to the Preferences screen and choosing "Clear Order for Every Store" from the "Extras" menu.
- Other esoteric fixes.
v3.1.1 - build 5429 - June 29, 2009
- Fixed issues in HS3Convert when a database has AutoOrder information.
v3.1 - build 5406 - June 6, 2009
- Deferred Items - Items can now be deferred for purchase later. Tap the checkbox to check off an item (i.e. when you've put it in your cart), or tap the checkbox and slide the stylus to the right to defer the item (i.e. you will purchase it later, not in this shopping trip). Deferred items are indicated by an arrow instead of a checkmark.
- Learn Your Shopping Order - HandyShopper can now (optionally) learn your shopping order and sort items accordingly. To use this, go to the Sort page of the Tools|Options dialog and check the "Learn your shopping order" box. Tap the (i) button next to the checkbox for more information.
- Fixed the UnitPrice column when the Units column doesn't contain any digits.
- Fixed the list of databases after renaming a database.
- When "Record completion date" is checked the date is now recorded only by the Checkout command and only on checked-off items.
- When "Automatically reset quantity" is checked and an item's Quantity is set to 0, the item is always marked as not needed. Previously in the All view it was marked as not needed, but in the Need view it was marked as completed (checked off). But it makes little sense to have a completed item with Quantity 0 (such an item shows up in the Need list, but is excluded from the Total).
- The Reset command could in some cases accidentally throw off the counts of needed items in stores.
v3.0.6 - build 4406 - August 6, 2008
- Fixed a rare potential crash that could occur in a new empty database if stores were created
before any categories or items were created.
- Fixed the center button in the Details screen to work properly on devices that support hardware
navigation (the blue aura that highlights the current control).
v3.0.5 - build 4325 - July 25, 2008
- On devices with a 5-way d-pad, the default action for pressing the center button now checks off
the highlighted item. There is a new "Hold center button to check item" option in the Misc tab of
the Preferences screen (not all devices support press+hold). The change in behavior is needed
because the Treo detection fix in v3.0 build 3930 led to HS finally realizing that several other
devices also had 5-way d-pads, which in turn led to some unexpected quirks on certain devices.
- The Details screen now supports hardware navigation mode on devices that have the hardware
navigation feature (the blue aura that highlights the current control). Up/down still go to the
- The Best Buy screen now shows the percentage difference and unit price difference between the
v3.0.4 - build 4313 - July 13, 2008
- Using the d-pad Left button in the list of items now shows the Stores popup list, just like on
the Windows Mobile version (previously it showed the Databases popup list).
v3.0.1 - build 4020 - April 20, 2008
- Sorting by category behaved unpredictably once a database was upgraded to the new category format (i.e. the new 100 category limit).
- The record counts in the list of databases were off by one for databases that were upgraded to the new category format.
- Under certain conditions soon after using Edit Categories the program could crash ("bad write to Categories list") or overwrite the wrong record.
- HS3Convert was only outputting the first digit for per-store prices.
v3.0 - build 3930 - March 30, 2008
- Categories - Now supports up to 100 user-defined categories (up from 15).
- Storage Cards - To make it easier to share a storage card between a Palm OS device and a Windows Mobile device, HandyShopper now also finds databases in the /My Documents folder on storage cards.
- Storage Cards - The Palm Install Tool sometimes installs databases to the /Palm/Launcher folder on a storage card, so HandyShopper now also finds databases in the /Palm/Launcher folder on storage cards.
- When HandyShopper is launched, it returns to the list of databases or to the most recently used database, whichever was last active when HandyShopper was exited (previously it always returned to the most recently used database).
- The popup context menu in the list of databases has a new Copy... command to make a copy of the selected database.
- The popup context menu in the list of databases can now also be popped up by tapping and holding the stylus on the name of a database for a moment.
- Fixed the crash some people encounter when creating a new database from the dropdown list of databases.
- HS3Convert had trouble with store names if the -i flag was not used.
- HS3Convert was mistakenly skewing column widths somewhat.
- The list of databases wasn't showing up in sorted order.
- Category icons didn't show up correctly.
- Now properly detects the direction pad on all Treo devices (previously it didn't realize the Treo devices had left/right buttons).
- It wasn't resorting databases that had been created by the converter or the Windows Mobile version.
- Attempting to filter by the Unfiled category had no effect.
- Filtering by a specific category also listed Unfiled records.
- Fixed a potential crash in the categories popup list (more commonly appeared as a random icon next to certain entries in the categories popup list).
- Mistaken error when trying to create the first category in a database that has no categories yet.
- The stores in a database could get lost when converting the database to the new category format.
- Sorting by category behaved unpredictably due to a data size/alignment bug.
- Fixed problem in the Lookup feature when items have certain international characters in their text.
- Other esoteric fixes.
v2.9c - build 7908 - July 8, 2005
- The Databases screen now lists databases from all cards and internal
drives, rather than only from the first one.
- The menu command to Move a database to a card now prompts for which card
if there is more than one card (for example on T5 devices with internal
- The price warning indicator has changed on color and grayscale devices:
Now it is a red triangle in the upper right corner of the price field, like on
HandyShopper for the Pocket PC. Monochrome devices still draw a slash through
- Fixed per-store data problem from beta build 7601. It could result in
crashes or corrupted per-store data when editing per-store aisles or prices in
the list view, or in the stores screen.
- The bug was caused by the aisle sort speed improvements. Seriously,
folks, the main problem behind sorting speed is that handheld devices are
slow. If sorting speed is extremely important, get a newer/faster Palm
device, or get a Pocket PC device instead. Pocket PC devices have faster
microprocessors and the apps don't run under an emulation layer, so
processor-intensive calculations like sorting run at full speed instead of
1/4 speed or whatever on Palm devices. For example my Dell x50v Pocket PC
sorts a 40,000 record database in just 3.6 seconds. So sorry, but
no more sort speed optimizations.
- Treat '.5oz' the same as '0.5oz' in the Units field.
- The Aisle field is now an auto-shift field (when using Graffiti the first
letter is automatically capitalized).
- Detect Zire31 two-button devices and adjust the one-handed mode controls
- Minor speed improvements when comparing aisle fields. Please no more
suggestions on how to improve it further e.g. by using OS functions. The
custom comparison function is already 400% faster than using comparable OS
functions (yes even on ARM devices).
- Fixed the next/prev buttons in the Select Stores screen when opened
directly from the view and the view is filtered by a store.
- Fixed the dpad when editing a field in the main list view. (And build
7908 includes a follow-up fix from build 7904, to allow the direction pad, etc
to still scroll the list when using the Lookup feature).
- Fixed the popup calculator after a Lookup takes long enough to show the
- Fixed sorting by Quantity when 'Automatically reset quantities' is
- Fixed Importing from Memopad when the memo includes the Total at the end.
Previously the Total was being added as an item; now it gets ignored properly.
- Fixed possible fatal error after tapping a Date field in the list view,
selecting the Choose Date command, and choosing a date.
- The T5 invented yet another new, different, non-standard way for a
direction pad to work, creating incompatibilities with most apps that
recognize a direction pad. This is wearing a bit thin, but ok, HandyShopper
has been updated to support the T5 and Treo 650 direction pads.
- Fixed the Stores dropdown in landscape mode (it was shifting to the right
- Some OS 6.x fixes, workarounds, and compatibility changes.
- And some obscure fixes more complicated than it's worth to explain.
v2.9b - build 6802 - August 2, 2004
- The Lookup tool now remembers the current scroll position of the list when
starting a search, and restores the scroll position when the Lookup tool is
- Really fixed blank aisles to sort the way they did before build 6512
again: ascending order puts blank aisles at the top, and descending order puts
blank aisles at the bottom.
- Fixed tapping the Lookup button (magnifying glass button) to escape out of
the lookup filter. Previously although it did clear the filter, it neglected
to refresh the view in certain cases.
- Fixed using the global Find. Previously tapping one of the found items
always switched the view to "All Stores", but it was supposed to only switch
to "All Stores" if the tapped item was not in the current store.
- Fixed the scrollbar in certain screens, where it scrolled upward slowly
(OS 5.x devices were a little slow, but OS 4.x and lower devices could seem to
hang for 30 seconds or more).
- Miscellaneous tweaks for OS 6.x compatibility.
v2.9a - build 6715 - July 15, 2004
- While the Lookup is scanning the items, it continues to respond to
Graffiti or keyboard input and restarts an updated scan. This improves the
Lookup feature's usability on slow devices, and also enables Graffiti2
two-stroke letters to work with slow devices and/or large databases.
Note: The Lookup feature does its best to allow you to continue
inputting lookup text. Any other kind of input causes the Lookup to stop
responding to input until the scan is finished (for example tapping button
controls, using command shortcuts, using the menus, etc). However, some
devices can send unexpected "inputs" to applications, which are not documented
in the Palm OS developer information and are not predictable (in fact, in some
cases the same events can mean different things on different devices). This
means that unfortunately in some cases the Lookup may stop responding to input
more aggressively than might be desirable, but it has no choice because it
must protect the application from potentially crashing or misbehaving.
- Added an option to make the Lookup feature only check the beginning of the
Description field (normally it finds matching words anywhere in the
Description, Custom Text, or Note fields). The option is at the bottom of the
"Misc" page in the Options screen, and applies to all databases. This option
makes the Lookup feature much less powerful and is not very good at finding
items, but it can be somewhat faster (especially on old slow devices) and
finds the same items as the original Lookup feature did.
- Fixed the Best Buy screen so it recalculates the price per unit after
pasting text into the edit controls.
- Fixed blank aisles to sort the way they did before build 6512 again:
ascending order puts blank aisles at the top, and descending order puts blank
aisles at the bottom.
- In certain cases, deleting an item could throw off the count of needed
items, which shows up next to each database name in the list of databases, and
also in the Stores dropdown. This has been fixed. Simply open each database
to make HandyShopper automatically recalculate the needed item counters.
- Fixed the D-pad controls in the various screens.
- Fixed a bug that could cause the main list view to draw the wrong record
in a row after editing a record in the Details screen, if a combination of
several factors came together at the same time (including the Sort settings,
which fields were edited, what the values were, and what subsequent actions
were done). Special thanks to Jim Schulz for providing excellent repro steps
for the bug.
- Fixed the scrollbar in the main list view when there are more than about
32000 items to be displayed in the view.
- Fixed HS2 and HS2Convert to refuse to attempt to add another item when a
database is completely full (65533 or 65534 items depending on whether the
database has any Stores defined).
- Fixed the left-arrow button that clears the Lookup field, so it behaves
properly when tapped while an item is being edited.
v2.9 - build 6512 - May 12, 2004
Features back-ported from the upcoming HandyShopper 3.0 for the Pocket PC:
- New and improved Lookup capability which filters the list as you write.
This also helps you reuse existing items in your list and avoid creating
duplicate items: start writing part of the item description, and the list
gets filtered to All show matching items (not just Needed items). To clear
the filter, tap the back-arrow next to the lookup field.
- New and improved Aisle fields are now freeform text fields that can
contain up to 6 characters, even for per-store Aisles. Sorting by Aisle
recognizes numbers inside the text and treats them specially, so that for
example "4" sorts before "27", and "67a" sorts before "067z". This means you
can enter aisle numbers naturally, without needing to prefix them with zeros
to get them to sort the way you want. (And matching support in
- New and improved Reset Items and Purge Items commands.
- The Select Stores screen includes up/down buttons to go to the
- The list of databases now shows the number of Needed items / Total items
for each database that is in RAM (versus on an expansion card).
- Added Note command to the popup context menu.
- Previously an OS feature/limitation enabled icon sets to accidentally
supplant the bitmap images HS2 used for a handful of controls, most notably
the "i" info button in the main list view, and the calculator when entering
prices or quantities. HS2 now works around this, and it should no longer be
possible for an icon set to mistakenly supplant any of HS2's bitmap images.
As a bonus side effect, Hi-Res Sony OS 4.x devices now always draw the
calculator in Hi-Res.
- Fixed the Note screen title bar so that tapping it pops up the menu.
- Fixed pressing the center D-pad button in the Note screen on Palm Tungsten
- Fixed Private items so that pressing the center D-pad button does not open
- Fixed crash when deleting the last item in the view while the Dynamic
Input Area (a.k.a. virtual Graffiti area) is collapsed (hidden).
- Fixed crash related to cancelling from the Details screen when the Dynamic
Input Area (a.k.a. virtual Graffiti area) will end up going from expanded to
- Fixed press+hold of the jog button or D-pad button when one-handed mode is
- Fixed the New Database and Rename Database screens to only allow ASCII
characters, since the Palm OS only supports ASCII characters for database
- Better support for the Treo 600 direction pad. However, the Treo 600
Simulator does not accurately simulate the real Treo 600 direction pad, so at
least for now HandyShopper does not detect press+hold of the center button on
real Treo 600 devices.
- Fixed how the Details screen works after changing a field by which the
list is sorted. Previously it didn't sort the changed item to the right
- Fixed how Next/Previous works in the Details screen, after changing a
field by which the list is sorted. Previously they didn't necessarily go to
the correct next or previous item.
- Fixed Export to MemoPad command when including a total and one or
more items have no price. Previously the total would either be too large or
- When a database is corrupted in such a way that it contains an invisible
second list of stores, HS2Convert gives a warning and discards the second list
of stores (previously it gave an error and refused to convert the database).
v2.8c - build 6119 - January 19, 2004
- Fixed potential crash caused by how Agendus 7 modifies your existing icon
- Detect both the "Zire" and the "Zire 21" devices and enable one-handed
mode to work on both devices with only two buttons.
- Fixed a bug in sorting, related to using the Details or Note screens while
you were editing an item that would need to be sorted into position later.
- Hacked around an OS bug in the Treo 600 direction pad, to enable
press+hold of the center button to check off an item, and press+release to go
to the Details screen. This is an ugly workaround, and might sometimes get
confused about whether you did a press+hold or a press+release.
- Worked around an OS bug in the Handera 330 'Scale to fit' mode, which
caused a fatal alert if the row height changed due to editing a multiline text
- Fixed an obscure crash if the last item in the view is being edited but
does not match the current filter, and the row height changes due to editing a
multiline text field.
- Fixed an obscure bug in Undo that was found while reviewing the code and
porting HandyShopper to the Pocket PC.
- Fixed an obscure drawing bug having to do with scrolling after using the
lookup field to find an item near the end of a database.
v2.8b - build 6013 - December 13, 2003
- Fixed a scrolling bug in the list view.
- Fixed crash on Tungsten T3 devices when choosing a date in the list view.
- Fixed the list of databases which could sometimes forget about an expansion card.
v2.8a - build 5903 - November 3, 2003
- Added support for devices with a collapsible Graffiti area (for example
devices with a 320x480 screen). Any Palm OS 5.3 or higher device with a
collapsible Graffiti area is supported, regardless of the screen resolution or
size. Sony Clie devices with a collapsible Graffiti area also supported.
The collapsible Graffiti area on other devices is not supported, and
HandyShopper will behave as if the device has a normal Graffiti area.
Tungsten T3: The T3 is a Palm OS 5.2 device, not a 5.3 device, and it
does not seem to correctly support the official PalmSource API for collapsible
Graffiti areas. It is necessary to install a patch before HandyShopper can
take full advantage of the collapsible Graffiti area on these devices. As of
this writing, Palm has not produced an official patch, but you can download a
temporary patch from Red
- Tap+hold in the Quantity field skips the popup list and lets you edit the
field directly without having to choose 'Other' from the popup list.
- One-handed mode now supports Palm Zire devices that have only the Datebook
and Address buttons. The Datebook button is 'undo' and the Address button is
'check off item'.
- One-handed mode now supports the Treo 600 and Kyocera 6035. Note that on
the Kyocera 6035 the jog push action shows the phone status bar, but the rest
of the one-handed mode controls work as normal.
- Fixed the 'Use white backgrounds' option for icons (broken as of v2.8).
- Fixed the OK button from the Details screen so that it goes back to
editing the item (blinking cursor).
- Fixed various problems in the Edit Categories screen (broken as of v2.8):
fixed the blank Edit Categories form on OS 3.3 and lower devices; fixed
renaming a category; fixed occassional crash (especially on OS 5.x).
- Various cosmetic fixes.
v2.8 - build 5530 - July 30, 2003
- Bluetooth support.
- Graffiti works in the Units popup list.
- A new Cards checkbox in the Databases screen lets you control
whether HandyShopper lists databases from an expansion card. Devices with
Palm OS 3.x and third party expansion slots default to not listing databases
from an expansion card. This is because some of these third party expansion
slots (especially the MemPlug Compact Flash slot) have bugs that can lead to
crashes. Therefore whenever HandyShopper crashes on one of these devices,
then it goes back to the default of not listing databases from an expansion
card (since that might have been why HandyShopper crashed).
- The Checkout command is included on the popup actions menu.
- Added support for the jog controls on Fossil watches.
- Added customizable icons for categories (and matching
support in HS2Convert).
- Added a small font for high resolution OS 5.x devices. Sony OS 5.x
devices can use the small font, but not Sony OS 4.x devices cannot.
- Use proper colors for the highlight in one-handed mode. This fixes the
highlight when using certain color themes in Colorize, Khroma, or etc.
- Fixed bug that added ".PRC" to databases when moving them to a card; now
it correctly adds ".PDB" instead. To update the databases, move them to the
handheld, then move them back to the card.
- Fixed bug that scrolled the top of the Units list incorrectly and could
- Fixed renaming a database so that it doesn't complain when tapping Ok
without changing the database name.
- Fixed the up/down hard keys in the Details screen to include private
records when security is set to "Show Private Records".
- Fixed crash on OS 3.5 when an icon contains a 16-bit image, but no
monochrome, grayscale, or 8-bit color icon.
- Fixed crash on new unreleased devices (i.e. a future version of the Palm
OS) when exporting to the Memopad.
v2.7.5c - build 5311 - May 11, 2003
- The Stores dropdown now shows the number of needed items at each store.
- The UnitPrice column now allows the number of units to be anywhere in the
Units field (not just at the beginning).
- The databases dropdown and the Databases... screen now avoid
scanning the expansion card more than once per time that you launch
HandyShopper. They still need to re-scan the expansion card if you move a
database to/from a card or rename a database on a card. But if there are more
than 32 databases on the card then HandyShopper needs to scan the card each
time you use the databases dropdown or the Databases... screen.
- Fixed possible crash in the Copy To... command.
- Fixed reverse sort by Category.
- Fixed possible crash when sorting by Icon.
- Fixed Import From MemoPad to show private records when appropriate.
v2.7.5b - build 5304 - May 4, 2003
- The menu commands to Beam, Rename, or Delete databases have been removed
and replaced by a new Databases... command that lists all the databases
and shows a dropdown arrow next to each database. The dropdown arrow pops up
a menu with commands to Beam, Rename, or Delete a database. The popup menu
also has a new command to Move a database to/from an expansion card.
- Fixed scrolling bug in the Select Stores screen.
- ClockPop Hack interferes with HandyShopper and could cause it to crash
because ClockPop registers a custom font, replacing HandyShopper's font.
Hacks must never do that, because it is impossible for them to restore a
custom font that was previously registered, and that can lead to serious
incompatibilities with apps. HandyShopper now tries to guard against such
misbehaving Hacks; it cannot completely eradicate the incompatibilities, but
the remaining ones should hopefully just be cosmetic.
- Fixed the up/down hard keys to scroll the list in the Edit Units screen.
- Fixed the Export command to leave off the "HS2_" prefix when exporting the
v2.7.5a - build 5226 - April 26, 2003
- Added Details command to the popup context menu.
- To speed up reading from expansion cards, HandyShopper now only reads the
/PALM/Programs/HandyShopper directory on expansion cards.
- Fixed bugs when changing the icon for a database stored on an expansion
- Fixed scrolling bug in the Open Database screen (and other screens that
list the databases).
- Fixed so that when launched, HandyShopper opens the last database that was
open, even if it was on an expansion card.
- Fixed the Edit menu in the New Database screen.
- Fixed progress meter with large databases.
- MemPlug expansion slots for Handspring devices are not fully compliant
with the VFS APIs for accessing expansion cards, so to avoid crashes if
HandyShopper detects MemPlug then it disables expansion card support.
v2.7.5 - build 5224 - April 24, 2003
- VFS support for expansion cards. HandyShopper looks for databases in a
/PALM/Launcher directory or /PALM/Programs/HandyShopper directory on the
expansion card. Use a separate file manager app such as Filez to move
databases to an expansion card.
- Fixed long standing rare bug where the stores list could get wiped out
- Fixed bug that could cause problems after checking off an item (it could
crash, mess up the bold stores, cause Undo to create duplicate items, or other
- Fixed bold stores after deleting a store.
- Fixed bold stores after Undo.
- Fixed redraw and editing problems with masked records.
- Fixed sorting by Units.
- Fixed obscure crash related to the Quantity field.
- Show an error message when trying to rename a list to the name of some
already existing list.
v2.7.4 - build 5122 - March 22, 2003
- Inspired by Bob Moynihan's great work prototyping a faster way to sort the
lists, I've completely redesigned the sorting code. The result is that
sorting is anywhere from about 250% to 350% faster (depending on the items in
your list, and whether sorting by per-store prices or aisles).
- Supports the OK button on the new Kyocera 7135 phone; the OK button works
like a jog button does on other devices (activates one-handed mode, etc).
- Worked around some OS 5.0 limitations and got Graffiti working again in
the Stores, Aisles, and Quantity popup lists.
- The alarm sound can be chosen also in the Select Alarm screen now.
- The icon selection screen now has a scrollbar, and uses the same layout as
Agendus - a vertical list eight icons wide. This enables you to organize your
icons better and even create section headings for groups of icons. (Note that
the new layout doesn't mess up the arrangement of your existing icon set; it's
just turned 90 degrees).
- Hooked up the Edit menu in the Enter Unit screen, to allow cut/copy/paste.
- Fixed pressing and holding the Select button on the Tungsten T to check off the highlighted item.
- Fixed flicker or leftover display from the popup calculator after changing the value and tapping OK.
- Fixed minor bugs in the Select Icon screen.
- Fixed snoozed alarm sounds on OS pre-4.0 devices so they play the right sound.
- Fixed bug where the list didn't automatically re-sort itself after editing the categories from the Category dropdown in the list view.
- Fixed blank screen after dismissing the row color chooser when using ScreenPrefs, Colorize, or etc. to force 16-bit color mode.
- Worked around hardware bug in Handera devices, that could cause the Needed column checkboxes to be drawn incorrectly, or even lock up the device.
v2.7.3 - build 5009 - February 9, 2003
- Added high resolution support Sony OS 4.x devices, including drawing the
OS5 format high resolution icons on Sony OS 4.x devices.
v2.7.2 - build 5002 - February 2, 2003
- Added the Checkout command to the dpad context menu.
- Added dpad support in the icon selection form.
- Improved sorting speed by about 7%.
- Various cosmetic tweaks on high resolution OS 5.0 devices.
- Use a different app font ID to avoid collision with the OS 5.0 popup Clock.
- Fix expanding the description and custom text columns.
- Fix resizing the alarm widget in the description column when adding/removing an alarm.
- Fix field color when expanding the description field, and on color devices draw a red slash thru prices instead of just drawing red prices.
- Fix bug when drawing an icon on low density devices if there is only a high density image.
- Worked around Handera hardware bug that could cause lockups or screen garbage.
- Fixed the popup calculator to handle parse errors properly.
- Finally (really) fixed HS2Convert to force the database to get sorted on the handheld next time you open the database.
- Fixed long standing bug which caused HS2 to skip the last record from each page in the Find results (i.e. it skipped the overflow record that didn't fit on the page).
v2.7.1 - build 4804 - December 4, 2002
- Full support for the Five Way navigator control on Palm Tungsten devices.
- The calculator and other buttons now use high density images on Palm OS 5.0 devices.
- The app icon is high density on OS 5.0 devices.
- The UnitPrice column sometimes accidentally drew a slash through prices even when Per-Store Prices were not being used at all. This has been fixed.
- HS2Convert didn't understand the 2.7 database format. This has been fixed.
v2.7 - build 4729 - November 29, 2002
- The narrow font supports high density Palm OS 5.0 devices (including the Palm Tungsten series)
- The Units field has been extended to hold up to 15 characters (it used to hold 4 characters).
- The new UnitPrice column automatically computes the per-unit price based
on the Price and Units columns (this works for per-store prices too).
- HS2Convert supports both of the above.
- Tapping on the UnitPrice column pops up the Best Buy screen with that item's info ready to compare.
- Grayscale devices draw a slash through the price if another store has a lower price.
- The popup quicklist for Units has been extended to 50 entries (was 32 previously).
- The popup quicklist for Units now has Other/Edit/None at the top to avoid the need for scrolling.
- Now an alert box pops up when setting an alarm for the past or on an item that is not marked as Needed.
- The new Icon column (optional) shows the item's icon. Tapping it pops up
the icon selector; tap and hold to pop up the Details screen. When the Icon
column is hidden, item icons (if assigned) still show up in the right margin
of the description column as before.
- Can sort by Alarm and Icon columns (also HS2Convert).
- The Alarm icon is red for alarms before today.
- The Set Alarm screen shows today in bold.
- The prev/next buttons in the Select Icon screen continue to scroll as long as they are pressed.
- Tabs in the Details and Preferences screens look better on high resolution
OS 5.0 devices; on other devices the look has changed only slightly.
- Fixed in build 4729.1 -- shows correct icon; build 4729 accidentally showed the icon next to the correct icon.
- Alarms only play for Needed items.
- Fixed alarm sounds. Previously it always played the stock "Alarm" sound
unless the item explicitly was assigned an alarm sound; now it correctly uses
the default alarm sound from the database in that case.
- Icons are more "discoverable" in the Details screen; when no icon is
assigned the icon selector says "Icon" instead of just being blank.
- Minor speed improvements for sorting (hopefully with more improvements to come in future releases).
- Fixed HS2Convert bug when a category name begins with a double quote mark.
- Fixed HS2 bug on OS 3.5 and lower where HS2 would crash if an Alarm went off while a popup list was active.
- Fixed bug where if an alarm came due for an item that was not marked as
Needed, then although the alarm was correctly ignored the reminder sounds were
accidentally played later on.
v2.6 - build 4611 - October 11, 2002
- New improved layout in the Details screen.
- Alarm sounds can be set individually for each item.
- Icons can be assigned individually for each item. Tapping on the item's
icon in the view is a shortcut that opens the Details screen for the item.
- HS2Convert supports the new alarm sound and icon fields.
- Sony Jog Assist no longer interferes with HandyShopper.
- Fixed crash when going to the Set Alarm screen.
- Fixed some unnecessary repainting.
- Fixed crash associated with editing a Quantity that wasn't an integer from 0 to 9, and then tapping in a different field.
- Fixed a bug in HS2Convert that neglected to tell HandyShopper that the list needed to be sorted.
v2.5.2 - build 4402 - August 2, 2002
- Back by popular demand - the "navigator tip window" is optionally
available again. Turn it on from the Misc page of the Preferences screen.
- New Item" is a menu command now, so the /N shortcut works and
Treo/keyboard users can create new items without using the stylus.
- The Page Up/Down buttons work in the Select Icon screen.
- Checkout still wasn't sorting items properly. Now it really does.
- Worked around Palm OS bug that made Lookup use the wrong selection colors.
- Fixed a bug in HS2Convert that randomized the column widths, and could
complain about the Date column width being invalid when it was actually fine.
v2.5.1 - build 4224 - June 24, 2002
- Fixed a crash when "white icon backgrounds" was selected on certain early OS 3.5 devices.
- Graffiti works again the popup list of databases.
- The popup list of databases is fast again.
- When private records are masked, exporting to MemoPad now omits them.
v2.5 - build 4219 - June 19, 2002
- Each database can have an icon assigned to it. HandyShopper supports the
Action Names icon standard.
- The 'Navigator' control has been replaced with a standard scrollbar.
- On VFS-enabled devices, HandyShopper refreshes the list of databases to
detect new databases (i.e. after having been copied from a memory card).
- Goto from an alarm (or the global Find command) showed the right item, but
failed to select the item. This has been fixed.
- Build 4112 accidentally broke Checkout so that it didn't necessarily sort
the items at all, and could skip items in certain cases. This has been fixed,
and Checkout sorts only the items being checked out, to avoid sorting the
whole database (the rest of the list is already in sorted order, so it's
faster to sort only the items being checked out).
- Using graffiti to select a database in the Select Database screen
highlighted the right database but tapping Ok (or Delete, etc) only used the
correct database if the list of databases was scrolled to the top. This has
- Using the Graffiti 'new line' stroke in the Open Database screen was
supposed to be a shortcut for opening the selected database, but did nothing.
This has been fixed.
- Fixed a bug in HS2Convert that mistakenly complained about and rejected
Yen, Pound, or Euro symbols in the user-defined Currency symbol.
Build 4112 - May 12, 2002
- After clearing an alarm, subsequent alarms could fail to go off until a
new alarm was set. This has been fixed.
- The Checkout command sorted the database each time, which could take a
long time and needlessly shift the order of items. This has been fixed.
- On OS 2.0, opening the Preferences screen would crash because OS 2.0
doesn't support Midi sounds (which were added as part of the Alarms feature).
This has been fixed by disabling the Midi sound selection on OS 2.0.
- Export to MemoPad did not use per-store prices when computing the Total. This has been fixed.
- Selecting a category or priority in the Total screen didn't update the number of items properly.
- Fixed an obscure crash: tap on the last item in the database, tap New,
tap Details, tap Note, enter some text, tap Done. This now works properly,
- The Preferences->Menu->Extra->Refresh Alarms command sometimes
thought it had no work to do. This has been fixed.
Build 4025 - April 25, 2002
- Now you can set Alarms on any item in any HandyShopper database. Snooze
works on all Palm OS versions 2.0 through 5.0, but only 4.0 and higher (i.e.
any OS version with the Attention Manager) support the Goto command.
- The minimum column width has been reduced to 5 pixels (previously it was 12 pixels).
- Column widths are remembered even after the column is hidden. Use the
Reset Column Widths checkbox in the Preferences screen to revert to the
- The Edit Stores screen now supports incremental searching in the list by
writing Graffiti, and the current store is initially highlighted.
- The popup context menu has Auto-delete and Private checkboxes (tap and
hold on an item to pop up the context menu).
- The system Find feature was not very responsive to canceling. This has been fixed.
- Hidden (filtered) items could sometimes randomly appear in the view. This has been fixed.
- Tapping in Price field was supposed to select the entire price (so the
popup calculator could work), but instead put the blinking insertion point at
the beginning of the price. This has been fixed.
- Tap in the description, then tap+hold was not popping up the context menu. This has been fixed.
- Handspring devices in grayscale mode couldn't draw the dropdown arrow
properly in the title bar. This has been fixed.
- Frequently the entire view was refreshed when only one or two records
needed to be refreshed. This has been fixed.
- Shrinking the description field height (e.g. deleting some text) repainted
using the wrong row color if that row was just previously being edited.
- Use proper colors for the highlight in one-handed mode.
- Use proper colors in the calculator.
- Fixed various table redraw bugs.
- In the Best Buy or Per Store Price calculator, tapping anywhere other than a button could crash.
Build 3928 - March 28, 2002
- Columns in the table can be resized by dragging the column separator.
- Jog dial behavior is revised; pushing the jog dial while in one-handed
mode now checks off the highlighted item, rather than cancelling one-handed
- The Copy button in the Edit Stores screen is now able to copy from Unfiled
to a store (assigns a store to all items that are not yet associated with any
- Fixed intermittent problem where items that should have been filtered from the view would accidentally appear.
- Various fixes to the Price field in the table.
- Undo failed when trying to undo deletion of an item that had been auto-deleted because its description was empty.
Build 3914 - March 14, 2002
- The new scrollbar-like control in the main view is the 'Navigator' and
enables you to quickly jump to anywhere in the list. Additionally,
HandyShopper is much faster when using the Up/Down buttons to scroll through
the list, or when using any command whose action affects only the records in
the current view.
- The font is selectable separately for each database.
- Some grayscale-capable devices have poor quality screens, so now
HandyShopper has a menu command to toggle grayscale mode on/off.
- Export to Memopad now has an option to use dashes instead of bullet characters.
- Import from Memopad gives a reminder that items are imported into the current database.
- Sony Clie devices could lock up when Hi-Res Assist was enabled, apparently
due to a hardware problem in the Clie devices. HandyShopper now works around
the problem and the devices no longer lock up.
- HS2Convert was still messing up per-store prices.
- The selected tab in the Preferences screen is drawn a little better on
hires handheld devices.
- Devices with OS versions earlier than 3.5 could crash when exiting
HandyShopper. This has been fixed.
- Beaming could get confused when receiving a HandyShopper database if
HandyShopper was the currently active app.
- Fixed rare crash while editing in the table view.
- Fixed column headers in the Select Stores screen when the left-handed
preference is set (see Lefty, http://www.strout.net/pilotsoft).
Build 3901 - March 1, 2002
- Alternating rows use a custom background color on OS 3.5 and higher, and
the color can be selected separately for each database.
- HandyShopper now supports Lefty, for the convenience of left-handed users.
- Now supports the Handspring Treo jog dial.
- Fixed two data corruption bugs in HS2Convert, having to do with per-store
prices and aisles. The bugs were first available in build 3816.
- The Priority popup list in the Reset Items screen was broken and caused a
crash. This has been fixed.
- Certain screens worked on OS 4.0 and higher, but were cut off on earlier
OS versions. This has been fixed.
- Exporting to Memopad accidentally wrote alphabetic aisles as numeric
aisles; this has been fixed. Importing from Memopad works both for alphabetic
aisles and also for their accidental numeric representations.
Build 3816 - February 16, 2002
- HandyShopper now supports masking private records on OS 3.5 and higher.
- HandyShopper now adds an Undo button to the command bar on OS 3.5 and higher.
- HandyShopper now uses the item description as the title for the Select
Stores form, to help make it clear which item is being edited.
- Popup list of databases now supports incremental searching using Graffiti.
- Added the Euro symbol and other missing symbols to the narrow font.
- Improved MegaWiki compatibility.
- OS 5.0 compatible.
- Build 3705 was recalled due to a nasty bug in per-store prices. Apologies
to anyone who got bitten by it. The bug is fixed and per-store prices should
work correctly again.
- The global Find feature didn't search the CustomText field. This has been fixed.
- Purging items earlier than a particular date had several problems: (1) it
always purged items earlier than today, (2) it set the popup control text to
"Choose date..." instead of the selected date, (3) it crashed after it was
finished. These are fixed and now work properly.
- The global Units list is backed up by HotSync now (but see FAQ #18).
- After deleting all the text from a Note the table didn't refresh properly,
making it appear as though the record still had a Note attached.
- Fix bug when not all the columns fit in the table.
- Tapping on the calculator show/hide button, moving the pen off the button,
and releasing the pen confused the popup calculator.
- Fix string resource that never got unlocked, in the Total screen. (This
could be what caused a weird crash for some users with Visors).
- Fixed drawing bug in the main view table, after importing items from Memopad.
- Tapping outside the popup calculator before tapping the Equals sign lost
the result of the calculation in progress. This has been fixed.
- Fix crash when switching to another app while both the popup calculator and menu are open.
- Various other popup calculator bug fixes.
- Fixed or worked around various problems reported by debug ROMs.
- ...and various other obscure bug fixes.
Build 3705 - January 5, 2002
- The Handera jog dial only worked in no-stylus mode. Now it also scrolls
the view in normal mode (the Sony jog dial already worked for both).
- Certain international currency symbols didn't work on Palm OS 4.0 devices.
Previously HandyShopper relied on the Palm OS to say whether any of the
characters in the user's currency symbol were digits, but it seems the Palm OS
has an unusual definition of a "digit". So now HandyShopper is hard-coded to
recognize "0" through "9" as digits. Hopefully this won't cause problems for
- Changing the priority from the Details screen didn't re-sort the item to the proper position.
- HS2Convert (the converter tool) mistakenly always set
RoundPricesToWholeNumbers=Yes and ColumnCoupon=No regardless of what the
actual settings were. This has been fixed.
- HS2Convert could crash while reading databases from very old builds of
HS2. It was supposed to give an error, but with certain databases the crash
occurred before it had a chance to report the error. Now HS2Convert gives the
proper error message and explains how to upgrade the database to a format that
HS2Convert can understand.
Build 3409 - October 9, 2001
- Introduces the HS2Convert converter tool.
- Added support for the HS2Convert tool. HS2Convert can't sort the list on
the PC the same way the handheld sorts it, so HS2 now recognizes when a list
has been converted and automatically sorts it next time you open the list.
- Added support for the Sony Clie jog dial.
- The Best Buy form now has a popup calculator.
- The Best Buy form now has Tip text.
- The Edit Stores form supports the up/down hard buttons.
- When receiving a beamed database that has the same name as an existing
database, HS2 added the existing database to the list of databases (even when
it wasn't an HS2 database) even when the user chose not to overwrite the
- On OS 3.5 and lower, the overdue ! for dates didn't show up when using the narrow font.
- Import from Memopad didn't understand negative prices.
- Import from Memopad now sets items to the Default Priority per the
Database tab in the Preferences screen.
- When a new item is inserted in the table, or when an item is moved due to
sorting, the height of the new row was not reset properly.
- When deleting a store, any items that were associated with only that
particular store (and no others), the items did not properly show up in the
Build 3026 - June 26, 2001
- Build 3023 added Handera support, but this inadvertently made the tabs in
the Preferences screen get erased when tapped, on OS 3.3 and lower. This is
Build 3023 - June 23, 2001
- Limited support for Handera 330 devices. The jog dial controls the
No-Stylus mode. Also improved the drawing so it looks better in the
Scale-to-fit mode. There is no support for the retractable silk screen area,
- Argh. In build 3017 the Select Stores fix had a subtle typo, which
effectively made the device unstable after closing the Select Stores form, and
the device would need to be reset (poke the reset hole) soon after.
- Tapping the Note button in the Details form neglected to save the changes
made in the Details form, before opening the Note form.
- In a test database, where HS2 had crashed a few times from the Select
Stores problem, someone was able to generate an item that was so badly
corrupted that it could not be used anymore. There is a new menu command that
can find and fix certain kinds of damage. It scans the current database, and
repairs any damaged items that it can find. It reports how many (if any)
damaged items were found and repaired. The command successfully repaired the
test database. The new menu command is located in the Preferences form -- go
to the Preferences form, tap the Menu graffiti circle, select Extra, then
select the Repair Items... command.
Build 3017 - June 17, 2001
I don't normally give props to people who have helped, but Douglas, Cheryl,
and Phil (below) have gone above and beyond the call of duty, helping to
finally track down some long-standing and particularly nasty bugs. Thanks!
- Popup lists didn't work on the Qualcomm or Kyocera smartphones.
- The Copy button in the Edit Stores form didn't copy per-store prices or
aisles correctly, and could crash or damage the per-store data (still).
Unfortunately, if the per-store data in your database has become seriously
damaged to the point that HandyShopper is crashing, then you may need to purge
the per-store data by opening the Preferences screen, tapping the Menu
graffiti button, and selecting the menu command Extra -> Purge Per-Store
Info. Special thanks to Douglas Goudie for narrowing this down and providing
superlative repro steps.
- The Select Stores form sometimes did not show checkmarks next to all the
stores the item is associated with. This was especially likely if the item had
been copied from another database. Special thanks to Cheryl Wheeler for her
detailed help tracking down yet another unusually troublesome bug (this is
something like the 4th or 5th important bug she's helped with -- credit is
- Prices could be accidentally drawn in red if more than one store shared
the lowest price.
Build 3009.2 - June 9, 2001
- Added large and small color icons for the application launcher.
- The exclamation mark for overdue dates is drawn in red.
- The price field is drawn properly on color devices.
- The selected item indicator is drawn properly on color devices (actually
it wasn't drawn quite right on B&W devices previously, either).
- The titlebar down arrow is drawn in the correct color.
- The Notes form title is drawn in the correct color.
- The selection color in No-Stylus mode is drawn in the correct color.
- The price is drawn in red, when the current store does not have the lowest
recorded price for the item.
- The selected page tab in the Options form is drawn in the same color as
the form's frame.
- The Details form can switch to the Next/Previous item. Choose the
commands from the menu, or use the physical Up/Down buttons.
- No-Stylus mode can be enabled with the Ronamatic stroke (up from Graffiti
area to the top half of screen). However, when a field is being edited, the
Ronamatic stroke respects the system preferences.
- On devices with OS 3.5 or higher, HS2 is automatically installed into the
- New database names are prefixed with "HS2_" to avoid conflicts with other
apps. The "HS2_" prefix is used whenever creating new databases or renaming
existing databases, but the prefix is hidden for display purposes. NOTE:
Existing databases are *NOT* automatically updated with the prefix. You can
manually rename each of your databases to use the new "HS2_" prefix -- for
each database, use the Rename Database command and just tap OK. The hidden
HS2_ prefix is applied when you tap OK.
- Checking off the last item would crash while using No-Stylus mode.
- Using the newline stroke in the Best Buy screen crashed.
- The first character in the Lookup field could be duplicated in a particular case.
- Build 2811 broke private records, so that they were no longer hidden.
This has been fixed.
- The Copy button in the Edit Stores screen was broken, and usually ended up
not actually doing anything.
- Tapping where the calculator toggle button had last been on the screen,
would erroneously treat it as a hotspot and activate the calculator. This has
- Build 2811 broke the progress meter on OS 3.0, making it crash. This is
fixed in build 3009.2 (but not 3009).
- Cutting text from an item's description could sometimes lock up or crash
the device, requiring a reset. Special thanks to Phil Nunnally for a
carefully constructed test database that reproduced the problem 100% of the
Build 2811 - Original release of HandyShopper 2 - April 11, 2001
Highlights of changes since the last beta build 2029 (Aug. 29, 2000).
- Added 'Copy item to...' to the menus.
- Launch'Em support for the sysAppLaunchCmdOpenDB command.
- The Reset command has a new option to reset items to the checked-out state.
- Tap and hold the stylus on the Description column for half a second to pop
up the item context menu.
- The date field has a new 'wide' option that shows the year.
- Now you can copy items/prices/aisles from one store, to another store, by
using the new Copy button in the Stores screen.
- Tip screens give quick helpful tips.
- ...and various other minor features.
- Fixed an obscure bug in the Details screen, that could overwrite the wrong
item under unusual circumstances.
- Deleting a store that had needed items did not update the bold stores properly.
- Fixed bug about tap+drag not working in table fields where only part of
the field's text is visible.
- Fixed crash when the Q and $ columns are visible, trying to choose a
number in the Quantity popup, and sorting by Quantity.
- The 'Copy to' command used the Sort order of the From database. Now it
properly uses the Sort order of the To database.
- Fixed some drawing problems when the Description and Custom Text fields
resized taller (especially on OS 3.0).
- Fixed the Edit Stores button in the Stores screen, which could sometimes
accidentally delete the item and then crash.
- For most non-US locales, six-digits prices with decimal places didn't fit
even with the "Wide" setting, because the width was computed assuming a period
for the decimal separator, instead of a comma. Now the correct decimal
separator is used.
- Fixed an obscure problem where editing the Description, then changing the
Category, then editing the Description some more so that the field grew or
shrunk vertically, the next item could be overwritten.
- Cancelling out of the Details screen would always force a re-sort if the
database is sorted by category.
- Imported items have the Auto-Delete and Taxable flags set per the preferences.
- When the currently selected category was delete, the view became confused.
- When a category with no items was displayed, new items disappeared from
the view, until choosing a different category or store.
- After choosing (and exiting) the Edit Stores button from the Select Stores
screen, now you're (usually) returned back to the Select Stores screen.
- ...and various other minor fixes.