-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Fixing #5755 with UI automator tests #5890
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
base: main
Are you sure you want to change the base?
Fixing #5755 with UI automator tests #5890
Conversation
…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.
Just to be clear, this is a pr made by my group member. |
Would you mind fixing the conflict? Thanks! |
There was a problem hiding this 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! :-)
Hello @nicolas-raoul Huge apologies for the late reply. Ill fix it today. |
This seems like a very good patch over all. Thank you! I think I can resolve most merge conflicts, but I have some other questions before merging that way.
|
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)

