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.