TokencodeBackend: Revert back to Handler in favor of AlarmService

AlarmService wound up holding wakelocks and draining the battery.  Use
Handler instead, and add checks to make sure we don't try to update the
UI when the display is off.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
TokencodeFragment: Clean up handling of "missing PIN" cases and dialog

Hide the tokencode if we're prompting the user for a missing PIN, but
don't hide it on the user-initiated "change PIN" dialog.  Make sure the
UI gets promptly updated after a PIN is entered.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
TokencodeWidgetService: Fix bogus ProgressBar update

If mInterval == 0, setProgressBar() can be set with max == -1.  Fix this.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Switch to Holo.Light theme

Let's give this a try for a while and see how it looks.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
ImportMethodFragment: Gray out the Next button until an item is selected

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
FileSelect: Move Select button to right side

This makes "Select" consistent with "Next" on the other import screens.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
TokenInfo: Cache isPINRequired() status

This value changes if a PIN is set through computeTokencode(), so remember
the initial response.  Also, add a convenience method to tell us if we're
missing a PIN.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
TokencodeWidgetService: Show "NO PIN" if the PIN is missing

This prevents the widget from displaying an invalid tokencode.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
TokencodeWidgetService: Use REORDER_TO_FRONT to fix activity stack

Repeatedly clicking <widget> <home> would create multiple copies of
MainActivity on the stack, and not all of them would necessarily be in
sync (e.g. with the current PIN).  Use FLAG_ACTIVITY_REORDER_TO_FRONT
to ensure that there is only one copy of MainActivity when started from
the PendingIntent.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>