Getting a User's Attention in Your Palm OS Applications
Alarm and Attention Managers
Even though Palm OS is not mainly a multitasking system, you definitely experienced the situations when, for example, reminders pop up to inform you about meetings, or an SMS message was just received, and so forth. Palm OS provides several managers that may be used together, to get full control over notifying the user about various events occurring in the system. Again, under term "event" I mean everything that needs a user's attention. So, coming back to formal definitions, Palm OS has Notification Manager, Attention Manager, and Alarm Manager. Notifications were discussed in previous articles, so here we will deal with Attentions.
Attention Manager is a mechanism by which your application can buzz the user if it has something to tell him. If, for instance, you develop a driver, you can interact with the user from the driver's callback functions if needed. Besides, some applications work with communication devices that have no user interface, so Attention Manager features is a way to go. It is important to notice that Attention Manager itself is responsible only for interactions with user rather than events generation. Hence, it is usually used in conjunction with other managers (like Alarm Manager) to perform desired functionality.
Alarm Manager handles real-time monitoring to detect when some point in time was reached. It can be used to perform periodic tasks or show alarms at the appropriate time. In the last case, an application is responsible for providing any required user interface because Alarm Manager doesn't have one on its own. The same is correct for sounds and other effects. You also may use Attention Manager to signal to the user about an event that occurred.
In the following sections, you will see how to use both managers in more detail.
Working with Attention Manager
To get started, let us take a look at different types of attention-getting attempts. The Palm documentation defines two of them: "insistent" and "subtle." They are actually the same, but differ in the manner of "irritation" the user experiences in each case. Insistent attempts interrupt the regular working flowby producing special effects to gain your attention. Subtle attempts behave like an additional indicator on the screen to inform you about less-critical eventsincoming e-mail or an SMS message. This type of attempts doesn't usually use any special effects.
Let me briefly overview each type of Attention. As was stated, an Insistent attention tries to catch the user's eye, so Attention Manager displays a dialog. You may find two types of them: Details and List.
Areas within red rectangles are drawn by the application that performs this attempt. Attention Manager will provide just a dialog box and draw a title and buttons. The function of all buttons on forms is intuitively clear from their titles. The user can accept, snooze, clear, or go to an attention item. All the rest is up to you. It will take you only a few minutes playing around with such alerts to understand all the available options.
The first picture shows an alert set to be risen at specified time. The second one illustrates the situation when several events have occurred, and now there is a list of them. To reach the details of each event, simply tap it. When may this happen? For example, when another application tries to get the user's attention. Here, your program is able to paint an icon and couple of text lines. Please note that the checkbox is provided by Attention Manager.
Events that were snoozed will be redisplayed again after some time. Attention Manager has the only "snooze" timer, so if you select this option, it will influence all events as a whole. Also, to ensure that the user will pay attention to the displayed dialog, any soft- and hardware buttons are disables at that moment.
Another type of attention attempt is subtle one. You can see an example in the following picture:
Every standard form with a title will show a blinking indicator (I've marked it by red color), except in the following cases:
- Attention Manager's queue is empty
- Modal Dialog style is used for the title
- The title is too narrow to show anything else
- The application draws in the title area
- A custom title is used
Besides, the indicator will blink in a different manner depending on whether the user has seen all notifications or not.
Wrong Usage Scenarios
The Attention Manager was designed for specific usage. Its intended goal is to provide a mechanism for gaining the user's attention in cases that don't require immediate reaction. You can treat it as some convenient way to remind or inform the user about important but suspendable events. For emergency cases, it is not a way to go.
Next, Attention Manager doesn't deal with displayed items themselves, so dismissing the reminder doesn't influence actual data. Attention Manager should not replace regular error messages that are displaying. Thus, use it as it was supposed to be.