Minor update v9.42.7 Ironing out the kinks:

Please share:


Minor update v9.42.7 Ironing out the kinks:
► Embarrassing bug preventing background color pick in phone app
► Rare crash in contact selector screen
► Rare ANR related to deadlock in background Weather update
► Instruct user how to enable “Phone” permission if “deny, don’t ask” was selected earlier (following long support session with a user 🙂

Sorry about these issues. I push out this update 15 minutes after the background color picker bug was reported [thank you Kerstin Butkereit].
Please report bugs, it improves the experience thousands of others!

THE ANDROID WEAR 1.5 PARADOX
I take this opportunity to share my relief over a long time worry I had in connection to this app. I frequently get testimonials from owners of 1st generation watches (Sony Smartwatch 3, LG G Watch, Moto 360, ASUS Zen Watch 1) expressing how happy they are the app is still maintained for their watches. I was really worried coming November 1 this could not be continued.

TARGET API REQUIREMENT STARTING NOVEMBER 2018
A new Google policy prevents app developers to update their apps, if they target earlier versions of Android. That’s the reason I had to bring both phone and watch components of Bubble Cloud to Android 8, Oreo compliance. But there was one component which cannot be brought to anything higher than API 22…

RUNTIME PERMISSIONS
API 23 brought runtime permissions, which means apps cannot obtain permissions at install time, they have to ask for it as you use the app. This is all nice, except for one small oversight. Android Wear 1.5 does not have the API routines to ask for the permissions to “Display over other apps” and change screen brightness by “writing device settings”. Google forgot…

API 23 CANNOT DISPLAY OVER OTHER APPS
So if an app obtains this permission at install time, they can change brightness and display over other apps (that’s how the app drawer implemented in all mini launchers on Android Wear). But if an app targets API 23 or higher, it has to ask for these permissions at runtime. But it cannot, because Android Wear 1.5 doesn’t allow. So, we are stuck targeting API 22…

TARGET API 26 REQUIREMENT STARTING NOVEMBER 2018
But starting November, no apps can be updated unless they target at least API 26. This is what I was so worried about:
► We cannot go higher than API 22, because we won’t get the necessary permissions.
► We cannot update if we don’t go to at least API 26.
…sounds like a contradiction!

LOOPHOLE: THE EMBEDDED WEAR APP
Intentionally or not, Google left a means of escape: embedded watch apps are not checked for TARGET API!!! I can still embed the APK used by older watches into the phone app, and it will get installed on your watch automatically after you update the companion app on your phone.

I could not have known this would work. I could only hope it would.

Android Wear 1.5 users: this is the very first update, which came to you this way. I was not allowed to upload the updated APK to the Play Store in the official way. But I have just tested it: the update did come to my Gen 1 Moto 360 via the embedded APK.

WEAR OS / ANDROID WEAR 2.x WAS NEVER IN DANGER
All that I explained above only affect older watches. Anything over Android Wear 2.0 gets the version of Bubble Cloud targeting Android 8, Oreo (API 26). You have seen the permission request screens when you first opened my app. Updates to new watches were not in jeopardy, but I am happy to announce older watches are also in the clear…

…at least for the time being.

Author: greg

the dev