Add device locale as first choice in locale picker

pull/437/head
Alex Baker 8 years ago
parent 7fdb88d076
commit 81be7421a7

@ -64,6 +64,10 @@ public class Locale {
hasUserOverrides = !(deviceLocale.equals(appLocale) && appDirectionality == deviceDirectionality) && atLeastJellybeanMR1(); hasUserOverrides = !(deviceLocale.equals(appLocale) && appDirectionality == deviceDirectionality) && atLeastJellybeanMR1();
} }
public java.util.Locale getDeviceLocale() {
return deviceLocale;
}
public java.util.Locale getLocale() { public java.util.Locale getLocale() {
return appLocale; return appLocale;
} }

@ -41,6 +41,7 @@ public class LocalePickerDialog extends InjectingDialogFragment {
@Override @Override
public Dialog onCreateDialog(Bundle savedInstanceState) { public Dialog onCreateDialog(Bundle savedInstanceState) {
final List<Locale> locales = new ArrayList<>(); final List<Locale> locales = new ArrayList<>();
locales.add(locale.withLanguage(null)); // device locale
for (String override : getResources().getStringArray(R.array.localization)) { for (String override : getResources().getStringArray(R.array.localization)) {
locales.add(locale.withLanguage(override)); locales.add(locale.withLanguage(override));
} }
@ -59,13 +60,6 @@ public class LocalePickerDialog extends InjectingDialogFragment {
} }
}) })
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
.setNeutralButton(R.string.default_value, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
callback.onLocaleSelected(null);
}
})
.show(); .show();
} }

@ -7,6 +7,7 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.preference.Preference; import android.preference.Preference;
import com.google.common.base.Strings;
import com.jakewharton.processphoenix.ProcessPhoenix; import com.jakewharton.processphoenix.ProcessPhoenix;
import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
@ -188,10 +189,10 @@ public abstract class BaseBasicPreferences extends InjectingPreferenceActivity i
@Override @Override
public void onLocaleSelected(Locale newValue) { public void onLocaleSelected(Locale newValue) {
if (newValue == null) { String override = newValue.getLanguageOverride();
if (Strings.isNullOrEmpty(override)) {
preferences.remove(R.string.p_language); preferences.remove(R.string.p_language);
} else { } else {
String override = newValue.getLanguageOverride();
preferences.setString(R.string.p_language, override); preferences.setString(R.string.p_language, override);
tracker.reportEvent(Tracking.Events.SET_PREFERENCE, R.string.p_language, override); tracker.reportEvent(Tracking.Events.SET_PREFERENCE, R.string.p_language, override);
} }

Loading…
Cancel
Save