* Basic group management
* Assign cards to groups
* Fix lint
* Fix findbugs 'dodgy code'
* Group name as unique key
* More group tests
* Import/export groups
* Implement group renaming and deleting
* Fix findBugs
* Fix chip marking in edit activity
* Group import/export tests
* Fix some state bugs
* Some last fixes
* Remove redundant if statement
* Fix findBugs
* Deduplicate code
* Cleanup
* Fix groups not showing up with new card
* Fix capture and enter button touching
* Fix dialog button look
This is mostly the work of Android Studio's
Refactor > Migrate to AndroidX...
option. That mostly worked. The two places which were manually updated
were:
- The reference to AppBarLayout$ScrollingViewBehavior in
loyalty_card_edit_activity.xml
- The suggested constraintlayout version, 2.0.0-beta4 caused build
issues that 1.1.3 avoids
This new option will control if the screen orientation
lock option is displayed or not. If set, the orientation lock
is forced and the unlock option is hidden.
When a barcode is displayed the screen's brightness is set to
the maximum, in an attempt to provide the best chance for a barcode
scanner to capture the barcode. However, it may not always
be desired to increase the brightness, for example when using
the app in low light.
This change adds a setting to control the screen brightening
behavior when a barcode is viewed.
This adds config options for the colors used for the store text
and background when displaying the store name in the single
card view or the thumbnail for the card list.
This changes the layout when viewing a single card. The new layout
will have a colored area at the top which displays the first letter
of the company, and after that the barcode. The note will be displayed
on the card list screen and is presently omitted here.
As this layout is experimental, the layout for editing a card is
not yet updated. To achieve this the card viewing activity is split
into two separate classes, where one handles viewing and one handles
editing. When the view layout finalizes the edit icon can be updated
as time allows.
The preferred way to create a shortcut is through the launcher.
Although it is possible for an app to create shortcuts, there is
concern that allowing the app to do so may not be desirable
due to potentials for abuse.
As there is support now for adding shortcuts through the launcher,
this app do not need to also support creating them itself.
When a shortcut launches the view activity, if the activity
already exists it will get onNewIntent() called. This needs to
clear out the view items so the next card will be redrawn.
This will prevent shortcuts from creating many views, and causing
them to leak. However, do not use singleTop for all launches
of the view activity, else the edit mode cannot be entered.
When a card is being added or created, a checkbox will now
be presented asking if a shortcut should be made. If selected,
when saving a shortcut will be added to the home screen. The
shortcut will directly launch the given card in view mode.
This adds app shortcuts for the most recently used cards.
When a new card is accessed, it is added to the shortcuts list.
When the list exceeds its maximum size, the least recently
used shortcut is discarded.
Android limits the maximum number of shortcuts to 5, however
it recommends in its documentation to limit this to 4. This
commit limits this to 3, however, as that is aesthetically pleasing.
This case was hit at least once by a user, though the scenario
is not known. If it is hit, post a message and bail gracefully,
until the reason can be determined.
When passing a phone to a clerk to scan the barcode, if the
phone is rotated and the screen reloads it can be bothersome
or confusion. To avoid this situation, a new option is
added to lock the screen.
A menu icon is now added which defaults as unlocked. When
touched the app sets its orientation to the "natural" orientation
of the device. When touched again the sensor dictates the
orientation of the device.
If someone is editing an existing card, or is adding a card
and wants to change the value, update the name of the button
from "Enter card" to "Edit card", to give the impression that
a new card id need not by typed from scratch.