package org.commcare.android.util;
import org.javarosa.core.services.locale.Localization;
import org.javarosa.core.services.locale.Localizer;
import org.javarosa.core.util.NoLocalizedTextException;
public class ChangeLocaleUtil{
public static String[] removeDefault(String[] raw){
String[] output = new String[raw.length -1];
int index = 0;
for(int i=0; i<raw.length; i++){
String rawInput = raw[i];
if(!rawInput.equals("default")){
output[index] = rawInput;
index++;
}
}
return output;
}
public static String[] translateLocales(String[] raw){
String[] translated = new String[raw.length];
for(int i=0;i<raw.length;i++){
try{
translated[i] = Localization.get(raw[i]);
} catch(NoLocalizedTextException e){
translated[i] = raw[i];
}
}
return translated;
}
public static String[] getLocaleCodes(){
Localizer lizer = Localization.getGlobalLocalizerAdvanced();
String[] rawLocales = lizer.getAvailableLocales();
String[] rawDefaultRemoved = removeDefault(rawLocales);
return rawDefaultRemoved;
}
public static String[] getLocaleNames(){
String[] rawDefaultRemoved = getLocaleCodes();
String[] localeNames = translateLocales(rawDefaultRemoved);
return localeNames;
}
}