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.

 

 

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