For context:
CIQ 2 (and lower devices) such as FR935 only supported full-screen widgets and not glances.
CIQ 3 devices such FR945:
- still have a distinct "widget" app type (both in manifest.xml and in compilation output)
- allow widgets to run in either (full-screen) "widget" or "glance" mode (controlled by user setting)
- if the user runs a widget in glance mode but the app does not override AppBase.getGlanceView(), a default glance will be provided consisting of the launcher icon and app name. This was very convenient for devs who wished to port an old widget from CIQ 2 to CIQ 3 devices, as it meant little or no code changes had to be made to achieve equivalent functionality
CIQ 4 devices such as FR955:
- no longer have distinct "widget" app type. When building an app with "widget" in the manifest, the output type is actually "watch-app" (device app)
- device apps can have a glance view, but only if getGlanceView is explicitly overriden
This is why it's interesting that the docs suggest another way to get the default glance view is to return null from getGlanceView(). For CIQ 4+ devices, there would seemingly be no other way to accomplish this (except to recreate the default glance view in code.)
However, it doesn't seem to work at all.
- In the sim, for both CIQ 3 and CIQ 4+ devices, if getGlanceView() returns null, the behaviour is the same as if getGlanceView() was not overriden at all. In the case of the sim, for both CIQ 3 and CIQ 4+, the app just runs in "normal mode" (with no glance)
- On a real CIQ 3 device (fr945lte), if getGlanceView() returns null, the default glance view is indeed provided. This is great, but it was already possible by simply omitting getGlanceView.
- On a real CIQ 4+ device (fr955), if getGlanceView() returns null, a "default glance view" is provided, but it's only the launcher icon, and not the app name. This is a shame because it would really be nice to have the equivalent "default glance view" functionality in CIQ 4+ devices, so that if you're porting a widget/glance from CIQ 2/3 to CIQ 4, all you have to is provide a simple implementation of getGlanceView that return null.
Indeed, there have been a few user complaints about popular old widgets that were ported to new devices, but lack a glance, because the dev didn't realize they had to explicitly override getGlanceView(), starting with CIQ 4.
(I would argue that the CIQ compiler should automatically add a default glance view implementation to apps with a type of "widget", when building for CIQ 4+).