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();
}
public java.util.Locale getDeviceLocale() {
return deviceLocale;
}
public java.util.Locale getLocale() {
return appLocale;
}

@ -41,6 +41,7 @@ public class LocalePickerDialog extends InjectingDialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final List<Locale> locales = new ArrayList<>();
locales.add(locale.withLanguage(null)); // device locale
for (String override : getResources().getStringArray(R.array.localization)) {
locales.add(locale.withLanguage(override));
}
@ -59,13 +60,6 @@ public class LocalePickerDialog extends InjectingDialogFragment {
}
})
.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();
}

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

Loading…
Cancel
Save