The help subsystem has been brought up to date with the software.
Drag and drop can be used to reorder items and participants (on the Totals page). It is now easier to see what is being dragged.
The various navigation bar actions on the Totals page are now grayed out when they are not appropriate. For example, the delete icon is grayed if there are no participants to delete and the "Clear Filter" menu choice is grayed out if we are not filtering for any participant.
When the last participant was deleted their costs were not added to the unallocated amount. This has been corrected.
You can now use drag and drop to reorder the participants list on the Totals page. When that is done the order of assignment buttons on the items page will change and the list will be sequenced from 1, so some participant numbers will change.
When the list is in multiple selection mode the delete icon is enabled regardless of whether any bills are selected for deletion.
It is now possible to press and hold on an item in the Items page then drag it to another location in the item list and drop it there.
Icons and menu items are now grayed out when they are not appropriate on a number of pages. Previously those options simply did not respond, so there's no functional change, just a more intuitive user interface.
When restoring an archive from the Data Management page you can now elect whether or not to restore program settings. Additionally, the messages used when archiving or restoring are improved.
Previously importing an archive using "share" or "open with" would import bills but not the corresponding people or venues, this has been corrected.
In rare cases after using "Exit" to shut down DivisiBill, restarting it shortly thereafter would fail. Subsequent attempts to start it were fine. This has been corrected.
The status bar at the top of each page was showing up red instead of matching the in-use theme (dark or light). This has been corrected.
Pressing the back button during initialization could cause a fault. It now correctly just requests another press to end the program.
When a new Venue is being created or an existing one edited the error message makes it clear when a duplicate name is proposed.
This change also eliminates the "fake" back button on the right of the page in favor of the real one on the left.
Until you have viewed the licensing information the "Purchase Pro Subscription" button is replaced by a "Pro Subscription Information" button.
It was not possible to purchase OCR scans, that has been corrected.
The boxes surrounding page images are now consistent in shape and stroke width and fit the images exactly (previously they could have space between them and the image).
Selecting the 'Help Index' choice from the flyout now opens the help text at the list of pages.
The release notes and help pages now follow the application theme, previously they always had a black background with white text.
The release notes are now visible within the help system as well as on their own page and are consistently formatted in both places.
The image page now has an icon to allow an image to be rotated if it happens to be oriented incorrectly.
The "Total of Rounded" help text has been enhanced to better explain the value.
The command now reliably restores the location (or lack of it) and notes as well as the name.
Various improvements have been made to venue related help, some clarifications but mostly adding links to other pages where appropriate. Also, the venue list help page is now located correctly by the 'Help' command.
The search for nearby venues on the venue edit page has been improved to show the distance to each possible venue.
The 'Search' button on the venue edit page now returns the closest restaurants in order of distance, which has a better chance of returning the one you want at the start of the list.
Also, if the response to an attempt to search for nearby venues is slow, you now have an opportunity to cancel the query.
A "search" button has been added to the venue edit page so that you can request a list of the names of nearby venues. This can save time, especially when adding a new venue. To use it, tap the search button, then tap the name closest to what you want and edit it as needed.
The handling of new venue creation has been improved in several ways.
The "No Local Stored Bills" message is no longer shown for a new or renamed venue as it is the normal, expected case.
Venue locations are set automatically and can be edited by double tapping on the location. Previously venue location changes could be made but they were not saved.
Setting the venue location from the map after changing the venue name no longer reverts the name back to its original value.
The 'Target' field gets focus when the popup is opened.
The bill count now shows either the number of bills that are archive candidates or the number that are restore candidates.
It is possible to cancel an archive selection if you decide not to use it.
When an archive is done we remember the newest file archived so that future archive runs can optionally start from the same day. This may occasionally lead to the same bill being archived twice but better that than not at all.
The items and Totals page menus now both contain an 'Adjust Total' selection which allows you to add an adjustment to the bill to make the after-tax amount come to a value you specify. This can be useful when aligning an itemized bill with a credit card amount, for example.
Selecting this menu item will open dialog to allow you to specify what your target number is. Tap 'Done' when you are satisfied, and a line item for 'Adjustment' will be added with its cost shared proportionally between participants.
The Android status bar could be colored red when automatically switching to the release notes during startup. This has been corrected, the release notes status bar now matches the notes.
The release notes and help pages now follow the application theme, previously they always had a black background with white text.
The line corresponding to the item being edited is now bold as well as being enlarged slightly.
Whenever a numeric input field is tapped the number within it is selected and the on screen keyboard is shown so you can simply type a new number without having to delete the existing one first.
To dismiss the on screen keyboard tap the return button; this may be labeled "done" or have a symbol on it, often a check mark ().
The Android status bar is the top line of the screen containing small icons. It would often show up with a purple background, this has been corrected:
The help for the subscription feature on the Settings page has been reworded to make it clearer that it is an optional annual subscription and to emphasize its benefits.
Occasionally a user will change the Play Store identity used on their device, this is a very rare situation, but it is allowed. When this happens most of the locally persisted data will not change, but the user identity stored with any license should override the one stored with the app so that the new user's cloud storage is accessible.
There is more space around the individual shares count buttons (the ones that show up when you long-press a participant button).
Sometimes the archive Restore button on the "Manage Data" page would remain enabled even after the selected archive was "forgotten".
The current venue was not always being identified in the list of venues. This has been corrected. Also, venue renaming (especially of the current venue) has been made more reliable.
The report page clear button now saves the cleared text so it can be restored using the "UnClear" button (which appends the cleared text to the end of whatever is there).
A bill with coupons applied after tax would show an incorrect value for the sum of the coupons (it was actually showing what the coupon would be worth before tax). The sum of any coupons is once again shown.
You can now send or open zip or xml files to DivisiBill, if they are archived DivisiBill data it will open them and permit them to be restored much as the restore from the Data Management page does.
Restoring an archive created before 6.3.7 would fail to restore bills (people and venues were fine). This has been corrected but any archives created with 6.3.7 will need to be re-created using 6.3.8 or later in order to restore bills correctly.
The initial web request waits for 30s between failed calls, it is now possible to retry the call without waiting by tapping the "Retry" button. The existing "Give Up" button is unchanged.
Instead of a bill explanation and a bill image (if there was one) being attached to an email message, we now attach an explanation and a bill archive. The archive is a zip file holding any bill image and also an xml representation of the bill, its participants and its venue. The attached archive can be used with the restore function on the data management page to load the bill and any image to another instance of DivisiBill.
When inserting an item on the items page it will now be inserted after the selected item (it was previously inserted before the selected item). If no item is currently selected the new item will be added at the end of the list. The new item will be selected once it has been added.
If you want to insert an item before the first one, select the first one, insert the new item, then delete the first one. The selection will switch to the new item and tapping "Undelete" will restore the former first item after the new one.
The process of calculating fair shares of a bill was failing when the total amount of an after-tax coupon exceeded the bill amount (which has never been seen in practice) and the user was tipping on tax.
In general, the idea is to distribute costs based on the amount a participant purchased and to tip on the amount that was ordered, regardless of any coupon which might be used to reduce the final total. However, there's an exception to that rule when tipping on tax. Because a coupon causes the taxable amount to go down it causes the tax, and thus the tip, to go down.
The Image browse command was not working, this has been corrected.
Sometime, the on screen keyboard would cover the data input fields, this change corrects that.
Several pages (Totals, People, Items, People Lists and venue Lists) have been optimized to speed them up a little. The only functional changes are minor formatting enhancements.
Requesting a payment summary from a specific item now presumes you intend it for the first sharer of that item unless you are filtering for a particular participant in which case they are assumed to be the target.
Swipe on Lists of Bills, People, Venues, Venue Lists, People lists and Totals were not working,due to a bug in .NET 10, this has been corrected.
The status bar (the purple area at the top of each page) is currently always visible in .NET 10. Since it is there, this change shows the status bar icons in it all the time rather than requiring a swipe down to show them.
A new install with cloud access enabled could fault if there were no stored person or venue lists, this has been corrected.
The activity indicator was typically scrolled off the end of the page and thus not visible - it is now larger and overlaid on the center of the page regardless of scrolling.
Restoring an archive and requesting existing items be deleted first could crash on a new install because it would attempt to use a bills folder that did not exist yet. This has been corrected.
The bill list no longer shows the status of remote images if remote access is not allowed.
The application infrastructure has been upgraded to .NET 10. This should make no functional difference except that a few actions will be slightly faster.
Improvements to Archive and Restore
Various minor improvements and corrections have been made to the archive and restore experience and to the user interface on the Manage Data page:
The "Restore" button on the data management page has been split into two buttons. A "Select" button to allow an archive to be selected and a "Restore" button to actually perform the restore of the most recently selected archive. Once an archive is selected the display shows the range of dates it contains and the number of bills in that range. If you change the dates the count of bills will be adjusted accordingly and if you tap restore only the bills within that date range will be restored.
A number of improvements have been made that would not normally be visible, including:
This change adds a "Permanently Remove All My Cloud Data" button on the Data Management page. It is enabled by checking the "I understand this cannot be undone" check box. Once enabled, tapping it will remove any bills, bill images, lists of venues, or lists of people that have been saved to the cloud for you.
Occasionally the same image file was being uploaded twice. Because it's the same it did no harm but it did consume bandwidth unnecessarily so it has been corrected.
You can now request that remote data be encrypted by adding a password in the cloud settings. This password is used to derive a key that is used to encrypt data before it is sent to the cloud and decrypt it after it is received from the cloud. If you forget your password you will still be able to read your remote data on the system where the password was entered, but forgotten passwords cannot be recovered.
If you change the password, subsequent bills (or images) sent to the cloud will be encrypted with the new password. Previously backed up bills will still be readable (they continue to use the old password but all the encryption keys you use are stored in order to permit recovery).
Your encryption keys are stored only on your device but can be archived and restored if you wish. If you uninstall DivisiBill, or lose access to your device you will lose access to any bills encrypted with a key derived from any password you do not remember.
The license check would not be attempted if "Only on WiFi" was set and WiFi was not available. This has been corrected, the license check is done as long as there is any Internet connection, even just a metered phone one.
If "Allow Cloud Backup" is off the rest of the cloud options are ignored and if "Only With WiFi" is turned on, then "Images only With WiFi" is turned on as well.
Bills that were stored both locally and remotely were not being added to the remote list so if the user chose to hide local meals and show remote ones the bills that were both local and remote did not show up, this has been corrected.
If a remote bill is made the current one and it has only a remotely stored image both the bill and the image will be downloaded.
A new option on the "Settings" page allows bill images to be uploaded to the cloud along with bills. This is off by default because it can use a lot of bandwidth and storage. When this option is on, any bill that has an image and is uploaded to the cloud will have its image uploaded as well. If a bill is downloaded from the cloud and it has an image stored in the cloud that image will be downloaded along with the bill.
Images are typically much larger than bills (a few hundred kB vs. a few kB) so there is an option to only upload images when WiFi is available. Actual costs vary, but as an example uploading using the Google Fi phone network costs $10 per GB, so you could typically upload hundreds of bills for a penny but only a few images.
After selecting a different current bill, a bill list will scroll to keep the current bill in view. The scrolling used to be done always.
The app displays a message showing a count of bills using the venue only if the venue name has been changed.
When the app location changes by a significant amount (more than 20m currently) the distances to venues reported in the bill list are updated. This was being done in the list sorted by distance, but not otherwise, that has been corrected and now all bill lists are updated, regardless of how they are sorted.
If this is the first use of a new version of DivisiBill the release notes page will be shown after startup instead of the items page.
DivisiBill once again covers the entire page, including the device status bar at the top of the page. You can swipe down from the top margin to see the device status bar temporarily.
All bill archives are now created within zip compressed containers which typically reduces their size by a factor of 10.
There's now an option on the "Manage Data" page to allow bill images to be archived along with bills.
Archive restore from a zip container will now restore the first XML file and search the container for JPG images of any bills restored from that XML file.
The venue for the current bill is now indicated by an icon in a venue list.
The "Properties" selection now allows use of the hamburger menu to navigate away from it. The Properties page shown by tapping the venue name on the "Items" or "Totals" pages returns only to those pages, as before.
Occasionally, the hamburger icon would be hidden when it should be present. This has been corrected so that the hamburger icon is always shown when it is appropriate to navigate to another page.
If a venue location was updated and meals grouped by venue were being shown the location shown with the venue would not be updated, it is now.
Previously tapping the 'Save' icon was not correctly saving any image file associated with the bill, or entering the newly saved bill into the bill list. These errors have been corrected.
In a bill list that is grouped by venue, double tapping on a venue name will open the venue edit page for that venue.
You are prompted for confirmation before renaming a venue that is currently in use.
When a venue location changes, the list of bills by distance was not being updated; this has been corrected.
Rarely, a stored bill would have non-contiguous DinerIDs, for example 1 and 6. In this case, the dinerID would be shown on the assignment button, which was unnecessary and confusing. If deleted, the diner could not be undeleted. These problems have been corrected.
When you navigate to a list of bills we scroll the current bill into view (or the current venue if bills are grouped by venue).
Tapping a selected bill in the center already deselected it, the same action now works when bills are grouped by venue.
The bill list pages now have a command to scroll the current bill into view (or the current venue if bills are grouped by venue).
You can tap in the center of a bill list item to select or deselect it but for the past couple of releases that tap would be mistaken for a swipe initiation. This no longer happens, swipe actions may only be initiated from right or left of center.
The bill list now shows an icon to denote the current bill.
On Android tapping in the center of a different meal list item would just clear the current selection. This has been corrected and now also selects the new bill.
The scroll button size change when tapped is now more obvious.
Any list that could get longer than a single page (items, bills, people, venues, people lists and venue lists) is scrollable and has indicators (an up or down arrow in a circle) showing the direction in which there are unseen elements. The indicators also act as buttons and can be tapped or long pressed to scroll up or down a page or move to the ends of the list.
These buttons used to be different on some lists, now they look and work identically across all lists and provide visual feedback when used.
When grouping bills by venue on a bill list page only the first few bills for each venue are shown.
To see all the bills for a venue you can tap to expand the venue heading to see the most recent bills. If there are too many to show conveniently there will be an "all bills" button at the end of the short list that you can tap to open a new page containing all the bills for that venue in creation order (newest first).
The individual entries in a bill list are laid out slightly more neatly, especially when the list is grouped by venue name so there is no venue name on individual entries.
When scrolling the list of bills using the scroll buttons they are hidden and no scrolling animation is used. When the scroll completes the appropriate button or buttons reappear. Scrolling to the beginning or end of the list using a long press on one of the buttons is now much quicker. Scrolling using swipe up or down is unchanged.
The scroll buttons themselves are larger and surrounded by a semi-transparent area.
When showing distances smaller ones are simply shown as 'close'. The threshold for 'close' was 100m, now it is 10m because GPS can be quite accurate and manual entry even more so.
A long press to scroll to the beginning or end of a list was already allowed on the Bill list pages, now it is allowed for the people list and venue list too.
If you double tap the venue name on a bill properties page it takes you to the venue definition. The application used to create a venue record of there wasn't one, now it asks first and if it does create one for the venue it has no default location.
When cloud access was turned on as a result of a request to show remote bills the remote/local status icons on each bill were not shown. This has been corrected.
Because a double tap did not work wall, scrolling to the start or end of the list is now triggered by a long press of the scroll buttons.
When a meal group is moved (because it is in a list sorted by date and the meal with that date is deleted or a newer one added) the list will scroll to the new location so as to keep the group in view.
When you are viewing a list of bills grouped together by venue and you click to expand a group the currently expanded group will be collapsed automatically
On the items page you may change the current sharing of an item by tapping in the left margin or by selecting the item, using the menu for the page and selecting 'Change'. It used to alternate between no sharing and sharing proportionally, now it includes sharing equally as well.
The notification for restore completion is replaced with automatic navigation to the Bill List by Age Page.
If multiple bills are selected for deletion but one of them is the current bill it will not be deleted. It was incorrectly being counted as having been deleted.
When 'Show Venues' is selected on a list of bills, the list changes to a list of Venues. Tap on a venue to see a list of bills for that venue.
The Scroll Up/Down buttons on the list of bills now accept a double tap to scroll to the beginning or end of the list respectively.
Some older versions of DivisiBill could create bills with no stored venue name, These now show up as "Unknown Venue".
An attempt to archive with no bills selected now produces an error message rather than just creating an archive with no bills in it.
When restoring a bill from an archive or downloading it from the cloud the application now checks for the presence of an image or a deleted image.
User initiated feedback is sent regardless of telemetry settings since the intent is clear.
After a web service call failed but a retry succeeded the app would behave as if the call had failed. This has been corrected.
It is now possible to select a set of bills on a "Bill List" page and then go to the "Manage Data" page and request that only the selected bills be archived.
Restoring an archive now checks whether restored bills are backed up to the cloud and either marks them as being available remotely or initiates a backup of those which are not.
Bills stored in the cloud were inaccessible in 6.2.20, this has been corrected.
A progress bar has been added to the popup used to report slow web service calls. The progress bar shows how much time remains before abandoning the current request and trying again.
An intermittent problem where the timeout on a call was ignored has been corrected.
The image truncation was confusing - it has been made more obvious that the image is truncated.
Most occurrences of a switch have been replaced by a checkbox and some minor reformatting has been done on the Settings and Properties pages.
If the web service is not responsive the app waits 30s before giving up instead of waiting 100s as it did before.
The dialog that pops up when waiting for a result or to retry a call to a a web service has a countdown to retry and a count of seconds since the last try. With this change the visible count is not updated when the app is in the background (although the timer remains active and will resume at the correct time). Timing accuracy has also been improved.
A new "Only Related People and Venues" checkbox is added to the data management page. It allows you to limit archived or restored people and venues to just those relating to the bills to be archived or restored.
If you switch away from the app while it is trying to connect to the web service it will now pause the connection attempt and resume it when you return to the app. If the connection attempt fails it will retry it after a short delay.
During initialization DivisiBill may ask the user whether they wish to send telemetry in the event of a failure. The appearance of this dialog has been improved.
When DivisiBill starts it checks a web service for licensing, if this check did not quickly succeed it would display a series of questions. Now it shows a popup while it retries errors and/or waits for responses. the popup closes automatically if a good response is received or you elect to continue without waiting for licenses.
When purchasing additional scans the message showed an incorrect number remaining, this has been corrected.
Purchasing a subscription showed two messages after switching back from the "purchase a subscription" UI. Now only one is shown.
Replaced "OCR license" with "scan" in user alerts to better reflect the functionality for consistency and clarity.
The Settings page now has text to tap to open up the help text licensing page and the licensing user interface has been simplified.
The Settings page was referring to the Coupon After Tax setting for the current bill rather than the default value for all new bills. this has been corrected.
The Settings page now has a button to open up the help text licensing page so you can get more information on licensing before purchasing a license or subscription.
The app now explicitly handles the case where no camera is present (or where the camera permission has been denied by the user).
Wherever a list is longer than a page an indicator button shows at the top and/or bottom of the visible items to indicate that there are more items off-screen in that direction. Either scroll the list or click the button to see more items. This applies to all but the totals list (which is too short to need it).
Make it clear that if there's a problem accessing the web service the 'continue' option always means 'continue without a license'.
The Rounded Amount for a newly loaded bill could show up a zero instead of its actual value. This also distorted calculations of the payment amount. This has been corrected.
DivisiBill waits for the user to stop providing input during data entry before attempting to format the text (if it is a number) or update other items based on what's entered. This happens on the properties, items and settings pages. This delay has been increased, it is possible to signal 'done' immediately by pressing the 'enter' key (which may be labeled 'done' or simply have a symbol on it) if you do not wish to wait.
A tip delta is used generally because you want a specific tip amount and it's not an exact 1/4 percent multiple of the bill subtotal. If one was in use Divisibill did not correctly divide it among participants and reported an error "Oops, rounding error...". This has been corrected.
Occasionally a change to the rounded amount was not noticed and it showed as $0, this has been corrected.
A newly created venue now gets the current location by default. The location can be cleared by double tapping on it, or changed by single tapping.
If you went directly to the camera page to take a picture of a bill to create an image the OCR button on the image page did not work. This has been corrected by ensuring that the OCR button also saves the current image if necessary.
The font size has been increased slightly and when an entry field is selected it is enlarged further to make data entry easier.
If you press enter after typing a value on an on-screen-keyboard the keyboard will be dismissed and focus will be removed from the field.
The Tip Delta amount is the difference between the calculated tip percentage and the actual tip amount. It is now recalculated along with the tip rate whenever the tip amount is changed, and zeroed when the tip rate is changed. It is shown with a 'non default' notation if it is set.
Lists longer than a page now show up/down buttons to notify off-screen items and allow easy scrolling to them.
Each bill summary now includes an item count.
When deleting a bill the image for the current bill was being deleted instead of the image corresponding to the bill being deleted. This has been corrected.
The help files have been updated to be consistent with version 6.2.7.
A brand new install creates dummy bills and because they were not stored locally the multi-bill select did not delete them. This has been corrected.
An undelete image operation on a bill with a current image as well as a deleted one just swaps the two images, so that a second undelete puts back the original one. Note that an image you just selected or created on the image page does not count as a new one until you exit the page.
The app would fault if you attempted to add an item while the selected item was not visible because it was filtered out.
Lists of bills now include an indication whether or not each bill has a stored image associated with it. If the bill has a stored image ten at the end of each entry (by the cloud/local icons) is a new icon.
The details page shown when you double tap a bill in the list now shows whether a bill has a recoverable image. If such a bill is selected the Image page now permits its deleted image to be recovered by using the "Undelete" menu selection (or using the Undelete button shown if there is no current image).
Deleting an image from an old bill should have created a new one but instead it was simply deleting the image from the existing bill. This has been corrected and a new bill is now created rather than modifying the existing one.
In parallel with initialization the app evaluates whether each local bill is stored in the cloud in order to show this status. To do this it downloads names for all the cloud bills. It used to do this 100 at a time, now it does 1000 at a time which can be considerably faster (1s vs. 6s for 3000 bills in testing, likely faster in production depending on your Internet speed).
Once the evaluation described above completes (typically in a few seconds), the status of individual bills is accurately displayed.
The local/remote icons in the bill list are not useful if cloud access is not available, so we hide them in that case. For example, when the user does not permit cloud access or cloud access is not available.
When downloading bills completes the message displayed now shows the number of downloads that succeeded and/or failed.
Canceling a download is now more reliable.
Rather than showing a busy indicator for the whole page during bill download we show one for each bill until it is downloaded.
If deleting multiple bills takes significant time or if some of the deletions fail (perhaps because the process was canceled) a status message is shown.
When deleting a single bill, if it is the selected bill then we select an alternate (ideally the next bill in the list).
When undeleting bills into a list sorted by name or distance the undeleted bill could be inserted in the wrong place in the list.
When undeleting venues into a list sorted by distance the undeleted venue could be inserted in the wrong place in the list.
These problems have been corrected.
Previously it would fail silently, now it displays a message.
When a pro license is discovered where previously there had been none a message is displayed. We no longer wait solely for the user to acknowledge that message before continuing, it disappears on its own after a few seconds.
The build and various dependent libraries are upgraded to .NET 9. This should make no functional difference except that a few actions will be faster.
Experimental upgrade to .NET 9. No user visible changes.
The "About" page (a tab on the "Information and Problems" page) now has a "Show Web Service Information" checkbox.
If checked it shows the base URL used to reach the web service and details about the service itself if they are available.
Swipe up and down through a long list of items is unreliable so this introduces command menu alternatives.
Prior to this release (November 2024) the DivisiBill sources were private, this moves them into open source on GitHub here. To build the released code you need to define a variety of secrets but the app runs without them. Without the defined secrets OCR and cloud storage are not available but all other features work.