new preference category

This commit is contained in:
Adith 2024-10-14 04:34:39 +11:00
parent b851712370
commit 4fc2bbd786
4 changed files with 56 additions and 1 deletions

View file

@ -8,6 +8,8 @@ public class Prefs {
public static final String UPLOADS_SHOWING = "uploadsshowing"; public static final String UPLOADS_SHOWING = "uploadsshowing";
public static final String MANAGED_EXIF_TAGS = "managed_exif_tags"; public static final String MANAGED_EXIF_TAGS = "managed_exif_tags";
public static final String DESCRIPTION_LANGUAGE = "languageDescription"; 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 APP_UI_LANGUAGE = "appUiLanguage";
public static final String KEY_THEME_VALUE = "appThemePref"; public static final String KEY_THEME_VALUE = "appThemePref";

View file

@ -79,6 +79,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
private ListPreference themeListPreference; private ListPreference themeListPreference;
private Preference descriptionLanguageListPreference; private Preference descriptionLanguageListPreference;
private Preference descriptionSecondaryLanguageListPreference;
private Preference appUiLanguageListPreference; private Preference appUiLanguageListPreference;
private String keyLanguageListPreference; private String keyLanguageListPreference;
private TextView recentLanguagesTextView; private TextView recentLanguagesTextView;
@ -152,6 +153,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
appUiLanguageListPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() { appUiLanguageListPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override @Override
public boolean onPreferenceClick(Preference preference) { public boolean onPreferenceClick(Preference preference) {
System.out.println("Clicked appui");
prepareAppLanguages(appUiLanguageListPreference.getKey()); prepareAppLanguages(appUiLanguageListPreference.getKey());
return true; return true;
} }
@ -178,6 +180,28 @@ public class SettingsFragment extends PreferenceFragmentCompat {
} }
}); });
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"); Preference betaTesterPreference = findPreference("becomeBetaTester");
betaTesterPreference.setOnPreferenceClickListener(preference -> { betaTesterPreference.setOnPreferenceClickListener(preference -> {
Utils.handleWebUrl(getActivity(), Uri.parse(getResources().getString(R.string.beta_opt_in_link))); Utils.handleWebUrl(getActivity(), Uri.parse(getResources().getString(R.string.beta_opt_in_link)));
@ -205,6 +229,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
findPreference("useAuthorName").setEnabled(false); findPreference("useAuthorName").setEnabled(false);
findPreference("displayNearbyCardView").setEnabled(false); findPreference("displayNearbyCardView").setEnabled(false);
findPreference("descriptionDefaultLanguagePref").setEnabled(false); findPreference("descriptionDefaultLanguagePref").setEnabled(false);
findPreference("descriptionSecondaryLanguagePref").setEnabled(false);
findPreference("displayLocationPermissionForCardView").setEnabled(false); findPreference("displayLocationPermissionForCardView").setEnabled(false);
findPreference(CampaignView.CAMPAIGNS_DEFAULT_PREFERENCE).setEnabled(false); findPreference(CampaignView.CAMPAIGNS_DEFAULT_PREFERENCE).setEnabled(false);
findPreference("managed_exif_tags").setEnabled(false); findPreference("managed_exif_tags").setEnabled(false);
@ -278,6 +303,8 @@ public class SettingsFragment extends PreferenceFragmentCompat {
*/ */
private void prepareAppLanguages(final String keyListPreference) { private void prepareAppLanguages(final String keyListPreference) {
System.out.println("gets to prepare app languages");
// Gets current language code from shared preferences // Gets current language code from shared preferences
final String languageCode = getCurrentLanguageCode(keyListPreference); final String languageCode = getCurrentLanguageCode(keyListPreference);
final List<Language> recentLanguages = recentLanguagesDao.getRecentLanguages(); final List<Language> recentLanguages = recentLanguagesDao.getRecentLanguages();
@ -300,7 +327,16 @@ public class SettingsFragment extends PreferenceFragmentCompat {
} else { } else {
selectedLanguages.put(0, languageCode); 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( LanguagesAdapter languagesAdapter = new LanguagesAdapter(
getActivity(), getActivity(),
@ -368,9 +404,12 @@ public class SettingsFragment extends PreferenceFragmentCompat {
getActivity().recreate(); getActivity().recreate();
final Intent intent = new Intent(getActivity(), MainActivity.class); final Intent intent = new Intent(getActivity(), MainActivity.class);
startActivity(intent); startActivity(intent);
}else { }else if(keyListPreference.equals("descriptionDefaultLanguagePref")){
descriptionLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale)); descriptionLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
} }
else{
descriptionSecondaryLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
}
dialog.dismiss(); dialog.dismiss();
} }
}); });
@ -496,6 +535,8 @@ public class SettingsFragment extends PreferenceFragmentCompat {
defaultKvStore.putString(Prefs.APP_UI_LANGUAGE, userSelectedValue); defaultKvStore.putString(Prefs.APP_UI_LANGUAGE, userSelectedValue);
} else if (preferenceKey.equals("descriptionDefaultLanguagePref")) { } else if (preferenceKey.equals("descriptionDefaultLanguagePref")) {
defaultKvStore.putString(Prefs.DESCRIPTION_LANGUAGE, userSelectedValue); defaultKvStore.putString(Prefs.DESCRIPTION_LANGUAGE, userSelectedValue);
} else if (preferenceKey.equals("descriptionSecondaryLanguagePref")) {
defaultKvStore.putString(Prefs.SECONDARY_LANGUAGE, userSelectedValue);
} }
} }
@ -511,6 +552,9 @@ public class SettingsFragment extends PreferenceFragmentCompat {
if (preferenceKey.equals("descriptionDefaultLanguagePref")) { if (preferenceKey.equals("descriptionDefaultLanguagePref")) {
return defaultKvStore.getString(Prefs.DESCRIPTION_LANGUAGE, ""); return defaultKvStore.getString(Prefs.DESCRIPTION_LANGUAGE, "");
} }
if (preferenceKey.equals("descriptionSecondaryLanguagePref")) {
return defaultKvStore.getString(Prefs.SECONDARY_LANGUAGE, "");
}
return null; return null;
} }

View file

@ -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="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="review_is_uploaded_by">%1$s is uploaded by: %2$s</string>
<string name="default_description_language">Default description language</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">Nominating for deletion</string>
<string name="delete_helper_show_deletion_title_success">Success</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> <string name="delete_helper_show_deletion_message_if">Nominated %1$s for deletion.</string>

View file

@ -25,12 +25,20 @@
app:singleLineTitle="false" app:singleLineTitle="false"
android:title="@string/app_ui_language" /> android:title="@string/app_ui_language" />
<Preference <Preference
android:key="descriptionDefaultLanguagePref" android:key="descriptionDefaultLanguagePref"
app:useSimpleSummaryProvider="true" app:useSimpleSummaryProvider="true"
app:singleLineTitle="false" app:singleLineTitle="false"
android:title="@string/default_description_language" /> 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 <SwitchPreference
android:defaultValue="true" android:defaultValue="true"
android:key="displayNearbyCardView" android:key="displayNearbyCardView"