Since the last release I’ve received a number of reports that the odometer had stopped remembering its value between sessions. This minor update should fix this issue.
Thanks to everyone who reported this issue.
This is an update that should address many of the crash reports received since the previous release went live. Issues were identified within the app lifecycle startup code that could cause a device to crash due to not requesting Location permission at the correct time.
As with all releases, if you experience problems with the app please send me a message with any information relating to what was happening at the time so I can try and improve the app.
This update fixes a crash in Window Mode, improves the screen layout slightly and removes the navigation bar for true full screen viewing. Unfortunately I’ve had to remove a feature too, so let’s address that first.
I’ve always wanted DigiHUD to be able to run in the background. For my own use it’s great I can start the app, reset the values and drop it in my pocket knowing that my walk will be recorded. It’s caused some confusion though, especially for people who don’t expect it to carry on running when they hit Home, but generally it’s been seen as a great feature.
Google have recently, and quite rightly, started to crack down on what apps can do with the device Location. Starting in Android 10 (P), apps that need to access the device Location in the background must specifically request permission and only to perform a function that the app relies upon for normal operation. In August this year all new Play Store apps will be reviewed by Google to ensure they have a very good reason to access Location in the background, and in November all existing apps will be reviewed. Any apps that can’t meet the new requirements will have to stop using background location or be removed from the Play Store.
Even if you can justify using it, Google are placing restrictions on the frequency that background location can be received, here’s a quote from their guidance (linked to below):
If background location access is essential for your app, keep in mind that Android preserves device battery life by setting background location limits on devices that run Android 8.0 (API level 26) and higher. On these versions of Android, if your app is running in the background, it can receive location updates only a few times each hour.
Google Developer documentation
For a speedometer app, this frequency of updates is as good as useless. The majority of DigiHUD users are using Android 8 or later. I’m not prepared to provide a feature that I know is not accurate as this would undermine confidence in the app and have a negative impact on it’s reputation, so this has unfortunately forced my hand and I’ve removed background running from the app. I’m very unhappy about having to make this change but have no other option.
There’s an improvement to the speed digit layout as I felt the speed wasn’t taking up as much space as it could (or deserved). The digits can now resize to fill the space available. There’s still more to do in the future with regards to layout.
Driving as I do in the UK there aren’t many occasions when I need a speedometer that goes above 100 mph. Travelling in France it was fine as I was regularly driving above 100 kmh. So, for day to day driving it’s pointless the app showing me three speed digits, especially in portrait mode where the digits are small anyway. That’s why I’ve added a new setting “Always show three speed digits?“. It’s unchecked by default, but if you always want three speed digits then just check it.
The navigation bar will slide out of view after a second or two to give a true full screen view of the app (removing the annoying bright bar which is distracting in nighttime use. Tapping the screen will show the navigation bar again. Available on supported devices.
Please get in touch via the contact form if you experience any issues with this release.
This patch addresses an issue with Window Mode freezing or crashing on some versions of Android. The details of the last release are below.
I’ve always wanted DigiHUD to be able to run in the background. For my own use it’s great I can start the app, reset the values and drop it in my pocket knowing that my walk will be recorded. It’s caused some confusion though, especially for people who don’t expect it to carry on running when they hit Home, but generally it’s been seen as a great feature.
Google have recently, and quite rightly, started to crack down on what apps can do with the device Location. Starting in Android 10 (P), apps that need to access the device Location in the background must specifically request permission and only to perform a function that the app relies upon for normal operation. In August this year all new Play Store apps will be reviewed by Google to ensure they have a very good reason to access Location in the background, and in November all existing apps will be reviewed. Any apps that can’t meet the new requirements will have to stop using background location or be removed from the Play Store.
Even if you can justify using it, Google are placing restrictions on the frequency that background location can be received, here’s a quote from their guidance (linked to below):
If background location access is essential for your app, keep in mind that Android preserves device battery life by setting background location limits on devices that run Android 8.0 (API level 26) and higher. On these versions of Android, if your app is running in the background, it can receive location updates only a few times each hour.
Google Developer documentation
For a speedometer app, this frequency of updates is as good as useless. The majority of DigiHUD users are using Android 8 or later. I’m not prepared to provide a feature that I know is not accurate as this would undermine confidence in the app and have a negative impact on it’s reputation, so this has unfortunately forced my hand and I’ve removed background running from the app. I’m very unhappy about having to make this change but have no other option.
A while back Google stopped apps from creating a ‘listener’ that would run in the background listening for certain system events, in the case of DigiHUD Pro it was the event that let the app know when the power cable was plugged in. That broke the ‘Start on power connected’ feature.
Previously, apps could start a ‘Listener’ Service which would survive reboots, and therefore the app itself didn’t need to be run for the Service to start.
I’ve had to create a workaround for this by starting a service when the app closes (if the Setting is checked). As per Google’s guidelines the service adds a Notification so you can see that it’s running. Tapping the notification will also open the app. The notification also has a ‘close’ option to kill the service.
Unfortunately this means that the app has to have been started manually and closed since a reboot for it to detect when the power cable is connected.
A fix for ‘Close on power disconnected’ has also been added.
There’s an improvement to the speed digit layout as I felt the speed wasn’t taking up as much space as it could (or deserved). The digits can now resize to fill the space available. There’s still more to do in the future with regards to layout.
Driving as I do in the UK there aren’t many occasions when I need a speedometer that goes above 100 mph. Travelling in France it was fine as I was regularly driving above 100 kmh. So, for day to day driving it’s pointless the app showing me three speed digits, especially in portrait mode where the digits are small anyway. That’s why I’ve added a new setting “Always show three speed digits?“. It’s unchecked by default, but if you always want three speed digits then just check it.
Fixed:
I’ve added brief descriptive text to some of the dialog boxes. It’s not always clear what these features do so hopefully this will help.
The minimum version of Android that the app will now run on is 16. Earlier versions of android will keep the previous applicable version.