Skip to content

[Bug Report] Drawer is setting the locale hundreds of time making it sluggish #969

@ChristopheVersieux

Description

@ChristopheVersieux

Bug Report Checklist

  • I have written the bug report in English with a clear, descriptive title.
  • I confirmed there are no existing bug reportsopen or closed — that already cover this issue.
  • I checked the CHANGELOG to ensure the bug hasn’t already been fixed.
  • I reproduced the bug on the latest GitHub release.
  • I included clear reproduction steps, expected vs. actual behavior, and any relevant logs or screenshots.
  • This submission describes one bug only.
  • I understand that incomplete or vague reports may be closed without investigation.
  • I optionally donated to support the MultiLauncher mission.

App version

Latest

Android version

all

How did you download the software?

Google Play

Bug description

Hello

getLocalizedString in the Adapter is reconfiguring the locale for every item completely destroying the performances f the drawer.

I would advise to set the locale once in activity after onCreate

    val locale = prefs.appLanguage.locale()
    
    // DEBUG: Toast to verify expected locale
    android.widget.Toast.makeText(this, "Target: ${locale.toLanguageTag()} | System: ${java.util.Locale.getDefault().toLanguageTag()}", android.widget.Toast.LENGTH_LONG).show()

    val localeList = androidx.core.os.LocaleListCompat.create(locale)
    androidx.appcompat.app.AppCompatDelegate.setApplicationLocales(localeList)

Source:

Steps to reproduce the bug

Open app drawere
Scroll a long list of app and look at logcat

Expected behavior

App list should scroll smoothly

Screenshots/Screen recordings

Image

Logs

2025-12-28 18:59:43.598 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.611 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.611 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.611 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.612 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.612 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.612 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.613 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.613 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.613 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.613 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.613 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.646 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.646 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.646 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.647 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.647 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.647 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.647 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.647 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.648 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.648 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.648 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]
2025-12-28 18:59:43.661 30167-30167 Configuration app.mlauncher V Updating configuration, locales updated from [en_US_#u-fw-mon-mu-celsius,fr_FR_#u-fw-mon-mu-celsius] to [en]

Additional information

No response

Terms and Conditions

  • I have read all the rules above and filled in the requiered fields to the best of my ability.
  • I accept that if I fail to follow the rules listed above that i will be blocked from interactions with this project.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions