Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing #5755 with UI automator tests #5890

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

Mc-Hhuang
Copy link

Implementing per-app language preferences.
Fixes #5755

What changes did you make and why?

Gradle Files:
Add Appcompat_version= “1.7.0” and added a new dependency for app-compat-resources.

AndroidManifest.xml:
AppLocalesMetedataHolderService handles language setting persistence and provides the infrasturture for language switching on Android 12 and below.

MainActivity.java:
loadLocale() method was removed as the language handling now occurs through AppCompat API.

SettingsFragments.java:
Uses LocaleListCompat methods to create the list of locales based on selected language
Uses AppCompatDelegate methods to apply the locale across the app UI.
AppCompatDelegate.setApplicationLocales() is used to handle compatability issues across Adroid versions and handles persistent stoage of language switching so you don’t need to manually restart the activity.

Tests Performed (required):
AppLanguagesSystemTest.java in test package fr.free.nrw.commons.ui:
Added a new system test which sues a UI automator to verify the apps languages can be set through the system settings and reflect in the UI.
Tested ProdDebug on Pixel 6 with API level 33.

Screenshots (for UI changes only)
Screenshot 2024-10-25 at 1 49 52 pm
Screenshot 2024-10-25 at 1 49 59 pm

Adith101 and others added 7 commits October 12, 2024 18:41
…system settings

This commit introduces a UI Automator test in the 'AppLanguagesSystemTest.java' file under the 'fr.free.nrw.commons.ui' package. The test verifies the following:
- Navigates through Android system settings.
- Scrolls to and selects 'Languages & input'.
- Opens 'App languages' and checks if the 'Commons' app appears in the list.
The test uses UiScrollable and UiSelector to find and interact with system UI elements.
@Adeeth101
Copy link

Just to be clear, this is a pr made by my group member.

@nicolas-raoul
Copy link
Member

Would you mind fixing the conflict? Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow changing app language via System > Languages > App Languages
5 participants