Skip to content

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

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
new preference category
  • Loading branch information
Adith101 committed Oct 13, 2024
commit 4fc2bbd78655a942849e4c5c5a2149e31dbf1792
2 changes: 2 additions & 0 deletions app/src/main/java/fr/free/nrw/commons/settings/Prefs.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ public class Prefs {
public static final String UPLOADS_SHOWING = "uploadsshowing";
public static final String MANAGED_EXIF_TAGS = "managed_exif_tags";
public static final String DESCRIPTION_LANGUAGE = "languageDescription";
public static final String SECONDARY_LANGUAGE = "languageSecondary";

public static final String APP_UI_LANGUAGE = "appUiLanguage";
public static final String KEY_THEME_VALUE = "appThemePref";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {

private ListPreference themeListPreference;
private Preference descriptionLanguageListPreference;
private Preference descriptionSecondaryLanguageListPreference;
private Preference appUiLanguageListPreference;
private String keyLanguageListPreference;
private TextView recentLanguagesTextView;
Expand Down Expand Up @@ -152,6 +153,7 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
appUiLanguageListPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
System.out.println("Clicked appui");
prepareAppLanguages(appUiLanguageListPreference.getKey());
return true;
}
Expand All @@ -178,6 +180,28 @@ public boolean onPreferenceClick(Preference preference) {
}
});

descriptionSecondaryLanguageListPreference = findPreference("descriptionSecondaryLanguagePref");
assert descriptionSecondaryLanguageListPreference != null;
keyLanguageListPreference = descriptionSecondaryLanguageListPreference.getKey();
languageCode = getCurrentLanguageCode(keyLanguageListPreference);
assert languageCode != null;
if (languageCode.equals("")) {
// If current language code is empty, means none selected by user yet so use phone local
descriptionSecondaryLanguageListPreference.setSummary(Locale.getDefault().getDisplayLanguage());
} else {
// If any language is selected by user previously, use it
Locale defLocale = createLocale(languageCode);
descriptionSecondaryLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
}
descriptionSecondaryLanguageListPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
System.out.println("clickedseco");
prepareAppLanguages(descriptionSecondaryLanguageListPreference.getKey());
return true;
}
});

Preference betaTesterPreference = findPreference("becomeBetaTester");
betaTesterPreference.setOnPreferenceClickListener(preference -> {
Utils.handleWebUrl(getActivity(), Uri.parse(getResources().getString(R.string.beta_opt_in_link)));
Expand Down Expand Up @@ -205,6 +229,7 @@ public boolean onPreferenceClick(Preference preference) {
findPreference("useAuthorName").setEnabled(false);
findPreference("displayNearbyCardView").setEnabled(false);
findPreference("descriptionDefaultLanguagePref").setEnabled(false);
findPreference("descriptionSecondaryLanguagePref").setEnabled(false);
findPreference("displayLocationPermissionForCardView").setEnabled(false);
findPreference(CampaignView.CAMPAIGNS_DEFAULT_PREFERENCE).setEnabled(false);
findPreference("managed_exif_tags").setEnabled(false);
Expand Down Expand Up @@ -278,6 +303,8 @@ private void prepareTheme() {
*/
private void prepareAppLanguages(final String keyListPreference) {

System.out.println("gets to prepare app languages");

// Gets current language code from shared preferences
final String languageCode = getCurrentLanguageCode(keyListPreference);
final List<Language> recentLanguages = recentLanguagesDao.getRecentLanguages();
Expand All @@ -300,7 +327,16 @@ private void prepareAppLanguages(final String keyListPreference) {
} else {
selectedLanguages.put(0, languageCode);
}
} else if (keyListPreference.equals("descriptionSecondaryLanguagePref")) {

assert languageCode != null;
if (languageCode.equals("")) {
selectedLanguages.put(0, Locale.getDefault().getLanguage());

} else {
selectedLanguages.put(0, languageCode);
}
}

LanguagesAdapter languagesAdapter = new LanguagesAdapter(
getActivity(),
Expand Down Expand Up @@ -368,9 +404,12 @@ public void onItemClick(AdapterView<?> adapterView, View view, int i,
getActivity().recreate();
final Intent intent = new Intent(getActivity(), MainActivity.class);
startActivity(intent);
}else {
}else if(keyListPreference.equals("descriptionDefaultLanguagePref")){
descriptionLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
}
else{
descriptionSecondaryLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
}
dialog.dismiss();
}
});
Expand Down Expand Up @@ -496,6 +535,8 @@ private void saveLanguageValue(final String userSelectedValue, final String pref
defaultKvStore.putString(Prefs.APP_UI_LANGUAGE, userSelectedValue);
} else if (preferenceKey.equals("descriptionDefaultLanguagePref")) {
defaultKvStore.putString(Prefs.DESCRIPTION_LANGUAGE, userSelectedValue);
} else if (preferenceKey.equals("descriptionSecondaryLanguagePref")) {
defaultKvStore.putString(Prefs.SECONDARY_LANGUAGE, userSelectedValue);
}
}

Expand All @@ -511,6 +552,9 @@ private String getCurrentLanguageCode(final String preferenceKey) {
if (preferenceKey.equals("descriptionDefaultLanguagePref")) {
return defaultKvStore.getString(Prefs.DESCRIPTION_LANGUAGE, "");
}
if (preferenceKey.equals("descriptionSecondaryLanguagePref")) {
return defaultKvStore.getString(Prefs.SECONDARY_LANGUAGE, "");
}
return null;
}

Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -544,6 +544,7 @@ Upload your first media by tapping on the add button.</string>
<string name="dialog_box_text_nomination">Why should %1$s be deleted?</string>
<string name="review_is_uploaded_by">%1$s is uploaded by: %2$s</string>
<string name="default_description_language">Default description language</string>
<string name="secondary_description_language">Secondary Description Language</string>
<string name="delete_helper_show_deletion_title">Nominating for deletion</string>
<string name="delete_helper_show_deletion_title_success">Success</string>
<string name="delete_helper_show_deletion_message_if">Nominated %1$s for deletion.</string>
Expand Down
8 changes: 8 additions & 0 deletions app/src/main/res/xml/preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,20 @@
app:singleLineTitle="false"
android:title="@string/app_ui_language" />


<Preference
android:key="descriptionDefaultLanguagePref"
app:useSimpleSummaryProvider="true"
app:singleLineTitle="false"
android:title="@string/default_description_language" />

<!-- New Secondary Language Picker -->
<Preference
android:key="descriptionSecondaryLanguagePref"
app:useSimpleSummaryProvider="true"
app:singleLineTitle="false"
android:title="@string/secondary_description_language" />

<SwitchPreference
android:defaultValue="true"
android:key="displayNearbyCardView"
Expand Down