Skip to content
New issue

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

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

Already on GitHub? # 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!

Copy link
Member

@nicolas-raoul nicolas-raoul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you mind rebasing from main and fixing the conflict? Thanks! :-)

@Adeeth101
Copy link

Hello @nicolas-raoul

Huge apologies for the late reply. Ill fix it today.

# for free to join this conversation on GitHub. Already have an account? # 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