Sort languages

pull/437/head
Alex Baker 10 years ago
parent 2027c74ff7
commit be7b8732b9

@ -6,17 +6,17 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.os.Bundle; import android.os.Bundle;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.DialogFragmentComponent; import org.tasks.injection.DialogFragmentComponent;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.injection.InjectingDialogFragment; import org.tasks.injection.InjectingDialogFragment;
import java.util.Arrays; import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
@ -41,19 +41,18 @@ public class LocalePickerDialog extends InjectingDialogFragment {
@Override @Override
public Dialog onCreateDialog(Bundle savedInstanceState) { public Dialog onCreateDialog(Bundle savedInstanceState) {
final String[] translations = context.getResources().getStringArray(R.array.localization); final Map<String, String> translations = new HashMap<>();
final List<String> display = Lists.transform(Arrays.asList(translations), new Function<String, String>() { for (String translation : getResources().getStringArray(R.array.localization)) {
@Override translations.put(localeFromString(translation).getDisplayName(), translation);
public String apply(String locale) { }
return localeFromString(locale).getDisplayName(); final List<String> display = new ArrayList<>(translations.keySet());
} Collections.sort(display);
});
return dialogBuilder.newDialog() return dialogBuilder.newDialog()
.setItems(toArray(display, String.class), new DialogInterface.OnClickListener() { .setItems(toArray(display, String.class), new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialogInterface, int i) { public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss(); dialogInterface.dismiss();
callback.onLocaleSelected(translations[i]); callback.onLocaleSelected(translations.get(display.get(i)));
} }
}) })
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)

Loading…
Cancel
Save