So an updated version of DigiHUD Pro was released the other day to fix a couple of bugs and add some new features (take a look in the Play Store listing for the details).

I also was required by Google to ensure my apps target Android 8.0 if updated from 1st November 2018:

 

It’s taken so long to get this update out because Google have made it increasingly difficult impossible to support the later versions of Android and use a third-party development environment, which in my case was Eclipse. I’ve nothing against using Google’s Android Studio it’s just that everything was setup perfectly and I was happy the way it was.

I resigned myself to the fact I had to switch and set about migrating. Oh if only it was a one-click job! Being new to Android Studio meant having to learn how everything worked whilst I re-created the apps in it. What a nightmare that was.

I digress. I realise now that a simple run-through of the app just wasn’t enough and that I hadn’t understood the gravity of moving to the later APIs. Some things that have worked since day one are now broken and I must either find a way to fix them, or remove them.

Here’s an example.. You can get the app to start when the device is connected to power, and you can get it to close the app when it disconnects. It was really simple to implement using system ‘Broadcasts’ (think “Hey everyone, the power got connected”), and “Receivers” (“The power was connected, I need to do XYZ”). This has now changed, I believe to reduce the amount of processing apps do while they are idle in the background or when not running at all. It helps reduce battery use which, of course, is a good thing.

Unfortunately these were two of the features I didn’t think to test on an Android 8 or 9 device.

Hopefully the next update will be out soon.

 

 

I saw a review of the free version of DigiHUD today that mentioned the maximum value of the trip counters. Here’s Ryan Scott’s review:

Really like this app and use it exclusively to accurately log mileage on my Dodge diesel to track mpg’s. I only give it 4 stars due to trip meters only reading in the thousands. I would consider paying for the pro version if the trip meters read higher.

I realised that it’s not in the description or the app itself what the maximum values are, for either the free or Pro version. It’s impossible to put everything that the app can do into the description because of the character limit.

Putting it all in the app itself is either too late (because it won’t be installed if you don’t know about some ‘killer feature’) or it just won’t be seen. Nobody wants to read a huge pile of text about what the app can do or how to use it, I get that, and apps should be intuitive and not need instruction manuals. You probably don’t want to see a huge window open when you start the app listing its features and giving instructions on how to use it.

Here’s a Pro screenshot showing how the values can be set to show greater precision and also the number of digits the trip counters can have. That’s a million miles/kilometres.

DigiHUD Precision

Trip counter showing optional leading zeros

It’s worth mentioning that the free version also shows some values to two decimal places when in landscape view.

 

I plan to get a video of two phones side by side in a car with one running the internal GPS receiver and the other running an external receiver but for now here’s a short video of the Pro version in a test mode, taken using screen capture.

It shows the difference in update speed very well but because it’s not in a car where you can see the road for reference it doesn’t give a good view of how the lag is reduced.

The test runs continuously from 0MPH to 121 and back to 0.

Back when I was building the initial app I was using an HTC Wilfdfire, and after that a Samsung Galaxy S3, and life was good. These were the only Android devices I’d used (or seen) and it turned out that these phones were lulling me into a false sense of security – every device has a hardware menu key, right? Wrong.

DigiHUD was always meant to be a full-screen app, with none of the Android furniture like a status bar to detract from it’s purpose in life – to show the information as simply and cleanly as possible. In HUD mode especially, and with the usual issue of a double image due to laminated glass, it needs to be as clear as possible. What use is a status bar in HUD mode?

So I’d built a simple full-screen app with a menu accessible by the menu key. Job done. Well, it was…until I unleashed it on an unsuspecting public and more and more people started using it. Suddenly I found that if you were using a tablet then you could basically change no settings at all, except those just needing a press on the item itself (like the speed unit). Feedback poured in.

I’d decided that I could open the Menu by tapping on the screen. For me this was very natural to use as a single tap gave me all of the options available, and this worked well as an alternative to a physical menu key (or as well as), until I found that for some reason it didn’t work on tablets!

Google weren’t helping either:

Beginning with Android 3.0 (API level 11), Android-powered devices are no longer required to provide a dedicated Menu button. With this change, Android apps should migrate away from a dependence on the traditional 6-item menu panel and instead provide an action bar to present common user actions.

Now I have to provide an Action Bar, just to expose the Menu? Great. What about my full-screen cleanliness?

My eventual solution (after a lot of trial and error and changing of code) was to

  • keep the screen-tap menu
  • make the menu available to a physical menu key if present
  • offer the option of showing the Action Bar if desired
  • always show the Action Bar for devices identified as Tablets (I’m at the mercy of Android to correctly identify tablet devices here)

If all device manufacturers followed Samsung’s example and included a hardware menu key then I would have saved many hours working on this ‘simple’ issue. Or if Android always exposed a menu icon in the software navigation that would help too (I think HTC do with their later phones like the M8). Instead, for devices with no hardware keys, we lose more screen real estate by showing the software navigation and an Action Bar.

Although my solution may not be the most elegant or seamless it does at least allow the Menu to be available on all devices. I have a game installed that relies on a hardware menu key and is therefore as good as unusable on my LG G3.

Pro Menu

Pro Menu