godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.34k stars 21.06k forks source link

Android Adaptive Icons #18256

Closed tijmenennik closed 4 years ago

tijmenennik commented 6 years ago

Godot version: 3.0.3

OS/device including version: Android devices with Android Oreo (8.0.0) or higher.

Issue description: Godot does not support Android Adaptive Icons and Android's roundIcon (https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive.html), therefore Android games exported from Godot do not have icons that adapt to the user's system settings. Since this is the new standard way of defining app icons on Android, I think Godot should support it too in the export options.

Steps to reproduce: Run a game on an Android 8.0.0+ device and see how the icon does not adapt it's shape to the other app icons. The icon also doesn't animate like the other icons do when the user interacts with it.

xsellier commented 6 years ago

About this feature I would go a bit further, since android allows application to use their own icons, it would have been great if you can add files to the res folder directly from the project itself.

https://developer.android.com/guide/topics/ui/notifiers/notifications

In the export panel, I suggest to add a path field allowing the developer to select a path to the res directory, and this directory will be copied during the export to the res directory of exported apk.

alvarlagerlof commented 6 years ago

There this now.

https://arstechnica.com/gadgets/2017/12/google-fights-fragmentation-new-android-features-to-be-forced-on-apps-in-2018/

Google has published a timeline for mandatory API level adoption. Generally, API levels that are a year old will become mandatory for new and updated apps. This will begin in August 2018, when targeting API level 26 (Android 8.0, released August 2017) will be mandatory for new apps. A month later, the requirement kicks in for all app updates.

Android 8.0 (API level 26) introduces adaptive launcher icons, which can display a variety of shapes across different device models. For example, an adaptive launcher icon can display a circular shape on one OEM device, and display a squircle on another device. Each device OEM provides a mask, which the system then uses to render all adaptive icons with the same shape. Adaptive launcher icons are also used in shortcuts, the Settings app, sharing dialogs, and the overview screen.

So to update an app after August you need to use and adaptive icon. Therefore this should be quite a priority.

akien-mga commented 6 years ago

@alvarlagerlof As I read it the requirement is only to target API level 26 (which Godot 3.0.3 does, and the upcoming 2.1.5 will too).

Adaptive icons are a feature available in API level 26, but its availability doesn't mean that it's a requirement to support it.

I'm not saying that we shouldn't work on supporting it though, but it doesn't seem to be urgent as per this new app update policy.

alvarlagerlof commented 6 years ago

Ah, I see. But this happens, and it doesn't look too good.

screenshot_20180620-150811

kristijandraca-xx commented 6 years ago

For now, I found a workaround.

replace android:icon="@drawable/icon" with these two

android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"

under platform/android/AndroidManifest.xml.template

also, add you mipmap folders in res folder recompile apks and add them to your project. More about compiling apks read here http://docs.godotengine.org/en/3.0/development/compiling/compiling_for_android.html

wombatwingdings commented 5 years ago

Thanks for the workaround. I don't think we're able to add the two layers (foreground and background) Google talks of in the res/mipmap-v26/ic_launcher.xml file though. If we created that XML file, I doubt Godot would currently do anything with it?

ricardoalcantara commented 5 years ago

@kristijandraca I tried that workaround but nothing's changed, not even the apk, I copied it to my git folder and the git didn't even marked the apk as changed, have I done something wrong?

VitaZheltyakov commented 4 years ago

We need to fix this problem urgently. The lack of adaptive icons greatly reduces the download of the application. I have lost 30% of users on all apps since August.

SmithJohnFirst commented 4 years ago

This issue does not have a milestone. This means that this problem will not be fixed soon. This means that users of my applications will look at these terrible icons for a long time. This makes me very sad.

Calinou commented 4 years ago

@SmithJohnFirst Godot is a community-developed project. We don't have hard ETAs on anything, as people work on what they want to work on.

If you want it to happen faster, you'll have to contribute this feature or pay someone to do it.

VitaZheltyakov commented 4 years ago

1

MadEqua commented 4 years ago

I'll work on this and we should have adaptive icons soon.

It will also fix the fact that the proper density icons are not really being used by the currently exported apps. The icons are added to the apk, but not being present on the resources.arsc file they are just "dead weight".