/talkback_preics/src/com/google/android/marvin/talkback/formatter/TalkBackWebContentHandler.java

http://eyes-free.googlecode.com/ · Java · 42 lines · 25 code · 6 blank · 11 comment · 1 complexity · 72c2cee44d1a244631b022b8f7fd3d76 MD5 · raw file

  1. // Copyright 2010 Google Inc. All Rights Reserved.
  2. package com.google.android.marvin.talkback.formatter;
  3. import com.google.android.marvin.talkback.R;
  4. import android.content.res.Resources;
  5. import java.util.HashMap;
  6. /**
  7. * A wrapper for WebContentHandler containing Android-specific code for loading
  8. * tag descriptions from resources.
  9. *
  10. * @author credo@google.com (Tim Credo)
  11. */
  12. public class TalkBackWebContentHandler extends WebContentHandler {
  13. public TalkBackWebContentHandler(Resources res) {
  14. super(loadMapFromStringArrays(
  15. res, R.array.html_input_to_desc_keys, R.array.html_input_to_desc_values),
  16. loadMapFromStringArrays(
  17. res, R.array.html_role_to_desc_keys, R.array.html_role_to_desc_values),
  18. loadMapFromStringArrays(
  19. res, R.array.html_tag_to_desc_keys, R.array.html_tag_to_desc_values));
  20. }
  21. /**
  22. * Load a HashMap from resources. Keys and values are provided as two string
  23. * arrays.
  24. */
  25. private static HashMap<String, String> loadMapFromStringArrays(
  26. Resources res, int keysResource, int valuesResource) {
  27. String[] keys = res.getStringArray(keysResource);
  28. String[] values = res.getStringArray(valuesResource);
  29. int maxIndex = Math.min(keys.length, values.length);
  30. HashMap<String, String> map = new HashMap<String, String>();
  31. for (int i = 0; i < maxIndex; i++) {
  32. map.put(keys[i], values[i]);
  33. }
  34. return map;
  35. }
  36. }