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.

Loading

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.

Background running removed

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.

Improved layout

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.

Show two digits under 100

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.

DigiHUD free

True full screen view

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.

Loading

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.

Background running removed

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.

Start on power connected

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.

Improved layout

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.

Larger digits make better use of the screen area.

Show two digits under 100

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.

Speed precision to 1/10th enabled

Google Map View

Fixed:

  • Google map would redraw the map completely when the location updated causing the map to flash. it appears that this could also cause the app to crash on some devices
  • Blue line indicating the route (appears when the route is being recorded) would draw from the equator to the current location
  • Map not re-initialised after screen rotation events
  • Routes viewed in Google Earth showed broken way-point icons

Feature descriptions added

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.

Bug fixes

  • Found and fixed a bug that could stop some of the recorded routes being displayed. This was happening when trying to get the address from lat/lon coordinates.
  • Ensure that the timer and elapsed time (used in the calculation of average speed) continue regardless of whether location updates are happening. This should improve accuracy of the average speed.
  • Window Mode crashing

Minimum Android version increased to 16

The minimum version of Android that the app will now run on is 16. Earlier versions of android will keep the previous applicable version.

Loading