Closed Bug 1480854 Opened Last year Closed Last year

Nightly icon looks too small on Android when you have a dark wallpaper

Categories

(Firefox for Android :: General, defect)

All
Android
defect
Not set

Tracking

()

VERIFIED FIXED
Firefox 64
Tracking Status
firefox61 --- unaffected
firefox62 --- unaffected
firefox63 + verified
firefox64 --- verified

People

(Reporter: marcia, Assigned: JanH)

References

Details

Attachments

(6 files)

Seen while running the latest nightly. After the landing of Bug 1349522, the Nightly icon which I have the in the app drawer at the bottom looks at a bit small (see attached screenshot).
It turns out it looks better on the screenshot that it does on the actual device. On device, because of the dark background the icon just looks smaller than everything else in the launcher.
I really don't like this change even with a light theme. It makes our icon look tiny especially vs the Chrome icon.
I have added a screenshot attachment from an Sony Xperia Z5. I think it the icon looks smaller on this device.
Not only does it look smaller, but it actually doesn't fit with the icon style on all devices:

- The style fits on devices with Android O or P: the shape of the background adapts to round/square or rounded square. E.g. Samsung Galaxy Note 8 (Android 8.0): https://www.screencast.com/t/KBhPAw5u2a
- But on older Android versions, the square background makes it look weird, because the other icons are round, with no background. Focus' icon looks better on Android < 8. E.g. on Honor 8 (Android 7.0): https://www.screencast.com/t/PfOnuXvQV8qM
I agree with everybody’s comment. The icon looking smaller is a direct result trying to fit our icon shape inside a circle, then colouring that circle with a dark background (similar to what we did on iOS).

This problem disappears when our apps appear side by side inside the app drawer.

I will ask our visual designers for recommendation.
Attached is a screenshot of the new Nightly icon on Amazon Fire OS (black background, high-resolution tablet). It looks like it wants to hide behind the others. I really hope you will not leave it like that.

(BTW: The fuzzyness of Mozilla’s icons on Amazon devices is another issue. The stock browser icon locks much more crisp.)
Duplicate of this bug: 1482738
This was why sticking with our old implementation (no frame) was recommended. Icon implementation across different Android manufacturers are so fragmented, that trying to fit our icon inside a frame will bring us negative consequences.

Nevertheless, if our app wants to target API level 26, we have no choice but to default to adaptive icons.

In fact, if we target the new API and do *not* provide an adaptive icon then Android will force-place our icon in a frame.

It seems that, if we want to take advantage of features in new APIs, then our icons must sit inside a frame and look small compared to other apps who don’t follow the rules.

I see two potential ways out of this problem:

1. Tell the OS to always use our old, unframed icons, unless it specifically asks for the adaptive version. This is the solution that will achieve the best visual outcome. However, I’m not sure if this approach is technically feasible?

2. Change our dark background colour to something lighter, like white or grey-10. Our icon will still look smaller than an unframed icon, but compared to the one with a dark background, a little bigger.

Ultimately, understand that targetting newer APIs means smaller-looking icons – not out of desire, but out of necessity (when our icon is framed, it will look smaller. So it seems as if our hands are tied. Can anybody recommend other solutions that doesn’t involve saying “Don’t compile with newer APIs”?
Duplicate of this bug: 1483830
Couldn't we have at least kept the old, "un-plated" icons fur use on Android versions prior to Oreo? (Asking design-wise, technically it should be possible without problems)
Flags: needinfo?(bram)
Or if we want the new version with a background everywhere, at least do the same thing we did for Focus and
a) use a round background for the pre-O icon, as well as
b) use a full-scale icon that fills the whole available space, since a non-adaptive icon doesn't require empty space at the margins
(In reply to Jan Henning [:JanH] from comment #11)
> Couldn't we have at least kept the old, "un-plated" icons fur use on Android
> versions prior to Oreo?

Yes. I think that we should keep the old, un-plated icons for Android versions older than Oreo – using adaptive icons only when we have to.
Flags: needinfo?(bram)
Hardware: Unspecified → All
Tracked for 63 since it's a recent regression.
Jan, do you think that you could work on this one or should I ping Susheel to find an owner? (tracked regression affecting 63). Thanks!
Flags: needinfo?(jh+bugzilla)
I can revert the previous icons on pre-Oreo - if we still want to tweak the adaptive icons themselves, we need another follow-up bug.
Assignee: nobody → jh+bugzilla
Flags: needinfo?(jh+bugzilla)
Splinter patch because I'm using phabsend, which doesn't support binary patches yet.
Attachment #9007460 - Flags: review?(nchen)
Attachment #9007460 - Flags: review?(nchen) → review+
Pushed by mozilla@buttercookie.de:
https://hg.mozilla.org/integration/mozilla-inbound/rev/56f980324015
Use classic icons again on platforms prior to Oreo. r=jchen
Attached image screenshot-nexus-6p.jpg
Hi! I'm seeing this issue too, however I'm on Android 8.1.0 whereas the comments above seem to suggest this was thought to only be happening pre-Oreo (so <8.0)?

This image is what it looks like on my Nexus 6P (I've edited the screenshot afterwards to reduce the brightness to make it more representative of what I see on my phone with the below-average brightness level I use). Compared to the other icons on the screen, the Firefox for Android beta icon looks positively tiny - so much so I thought it must have been a bug, rather than a design/tradeoff decision.

Is what I'm seeing on Android 8.1.0 expected?
Backout by nbeleuzu@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/0e38d6dfc780
Backed out changeset 56f980324015 for lint bustage. CLOSED TREE
Blocks: 1491386
Pushed by mozilla@buttercookie.de:
https://hg.mozilla.org/integration/mozilla-inbound/rev/1cff3816f35a
Use classic icons again on platforms prior to Oreo. r=jchen
Apparently there's a lint check for round icons being really completely round.
Flags: needinfo?(jh+bugzilla)
Comment on attachment 9007460 [details] [diff] [review]
Bug_1480854_classic_icons_pre-O.patch

Approval Request Comment
[Feature/Bug causing the regression]: Bug 1349522.
[User impact if declined]: We'll use an icon design looking like an adaptive icon (i.e. a smaller icon placed on a background colour) even on Android versions that don't support adaptive icons by default, which means our icon will look out of place compared to other apps.
[Is this code covered by automated tests?]: No
[Has the fix been verified in Nightly?]: Not yet, but tested with the unofficial branding locally.
[Needs manual test from QE? If yes, steps to reproduce]: Check that on Android N and below we're using the previous icon style as our launcher icon again.
[List of other uplifts needed for the feature/fix]: none
[Is the change risky?]: No.
[Why is the change risky/not risky?]: Just reverting the image files used on Android N and below to the old icon.
[String changes made/needed]: none
Attachment #9007460 - Flags: approval-mozilla-beta?
https://hg.mozilla.org/mozilla-central/rev/1cff3816f35a
Status: NEW → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → Firefox 64
Comment on attachment 9007460 [details] [diff] [review]
Bug_1480854_classic_icons_pre-O.patch

Approved for 63 beta 7, thanks.
Attachment #9007460 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to uplift the patch that actually landed, not the one attached here.
Flags: needinfo?(jh+bugzilla) → needinfo?(ebalazs)
janH: I uplifted that patch. Thanks
Flags: needinfo?(ebalazs)
Verified as fixed in the latest Nightly 64.0a1 (2018-09-17) and Beta 63.0b7 on Xiaomi Mi4i (Android 5.0.2), LG G4 (Android 5.1) and Nokia 6 (Android 7.1.1).
Status: RESOLVED → VERIFIED
Hi all, I’ve received feedback from our team, and wanted to post it here:

Sean Martell wrote:
> […] this will be a bug no matter what background color you choose, because you'll always find a wallpaper that is similar in brightness/hue to the bg color. It also happens with white and bright wallpaper.

Stephen Horlander wrote:
> It [the background image] is going to be potentially problematic based on variable factors we can't control. I think we just have to live with that.

So I would recommend closing this issue as mark it as WONTFIX, as whatever background colour we choose for our icon will conflict with wallpapers of certain colours.

However, there’s one very important point to make related to attachment 9009172 [details] in comment 20.

In situations where we’re penalised for playing by the rules (ie. situations where most of the icons aren’t adaptive and looks “correct”, while a minority of adaptive icons will always look smaller), would it be possible for us to swap our icons for the non-adaptive version?

I know that we’ve already kept non-adaptive icons useable for Android versions that don’t support it. But is it possible to somehow also use our non-adaptive icons in Android 8.0 and 8.1 (where many other app icons are still not adaptive)? Then we’re only adaptive in the newest version of Android. Maybe this is impossible?
(In reply to Bram Pitoyo [:bram] from comment #33)
> Sean Martell wrote:
> > […] this will be a bug no matter what background color you choose, because you'll always find a wallpaper that is similar in brightness/hue to the bg color. It also happens with white and bright wallpaper.
> 
> Stephen Horlander wrote:
> > It [the background image] is going to be potentially problematic based on variable factors we can't control. I think we just have to live with that.

Yes, I guess there's simply no good universal solution for icons that used to be a distinct shape on a transparent background, when adaptive icons now force us to use a non-transparent background.

(In reply to Bram Pitoyo [:bram] from comment #33)
> I know that we’ve already kept non-adaptive icons useable for Android
> versions that don’t support it. But is it possible to somehow also use our
> non-adaptive icons in Android 8.0 and 8.1 (where many other app icons are
> still not adaptive)? Then we’re only adaptive in the newest version of
> Android. Maybe this is impossible?

We could decide not to ship an adaptive icon at all, or to only provide it starting from some Android version later than Oreo. The only problem is that since at the same time we're also targetting API26 or higher (and there's no going back on that one), some launchers might elect to force-convert the non-adaptive icon into an adaptive one, usually by simply placing it onto a white background. What I don't know is to what extent that force-conversion also extends to the OS itself (the Recents screen, app chooser dialogues, App settings, etc.), although looking at the framework sources I think that currently only launchers do this.

So if we didn't ship an adaptive icon ourselves, we'd have to live with the fact that while some launchers will then simply display the legacy icon as desired, other launchers will force-convert our icon into an adaptive icon [1] and we won't have any control over the result of that.

Regarding the comparison with other apps - starting from November API26 will be mandatory for all future updates distributed through the Play Store, so other apps will face the same problem and our icon will look less and less out of place as more and more apps will be forced to use adaptive icons, too.
We only had to switch now because
- even though Firefox 63 is set to ship in October, we have to be prepared for dot releases or other possible delays that require a 63.x release in November, after the new target API requirements are in force
- the change has to ride the trains, so Nightly/Beta receive the new icons even earlier

[1] AFAIK the Pixel Launcher certainly does, possibly the generic Google Now Launcher as well. Then of course a number of other manufacturers might use customised launchers for their own devices and finally users can install other third-party launchers as well, each of which might do their own thing here.
Another thing to note is that in Android O, the AOSP launcher had an easily configurable feature flag for this icon conversion [2], while on P the feature flag has disappeared [3], which might have a bearing on the likely behaviour of third-party/manufacturer launchers forked from it.
[2] http://androidxref.com/8.1.0_r33/xref/packages/apps/Launcher3/src/com/android/launcher3/graphics/LauncherIcons.java#299
[3] http://androidxref.com/9.0.0_r3/xref/packages/apps/Launcher3/src/com/android/launcher3/graphics/LauncherIcons.java#244
Duplicate of this bug: 1501633
Duplicate of this bug: 1505900
You need to log in before you can comment on or make changes to this bug.