package org.commcare.utils; import android.content.Context; import org.commcare.util.ArrayDataSource; import org.javarosa.core.services.locale.Localization; import org.javarosa.core.util.NoLocalizedTextException; /** * ArrayDataSource that uses the Android 'values' resources */ public class AndroidArrayDataSource implements ArrayDataSource { private final Context context; public AndroidArrayDataSource(Context context){ this.context = context; } @Override public String[] getArray(String key) { try { return Localization.getArray(key); } catch (NoLocalizedTextException e){ //default to Android resources } int resourceId = context.getResources().getIdentifier(key, "array", context.getPackageName()); if (resourceId == 0) { throw new RuntimeException("Localized array data for '" + key + "' not found"); } return context.getResources().getStringArray(resourceId); } }