/trunk/project/src/com/anysoftkeyboard/dictionaries/DictionaryAddOnAndBuilder.java

http://softkeyboard.googlecode.com/
Java | 92 lines | 76 code | 16 blank | 0 comment | 9 complexity | d90a6d8dcc1d21ebb4e191aeb9609ad7 MD5 | raw file

✨ Summary
  1. package com.anysoftkeyboard.dictionaries;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import android.content.Context;
  5. import com.anysoftkeyboard.addons.AddOnImpl;
  6. public class DictionaryAddOnAndBuilder extends AddOnImpl {
  7. private static final String DICTIONARY_PREF_PREFIX = "dictionary_";
  8. private static final int INVALID_RES_ID = 0;
  9. private final String mLanguage;
  10. private final String mAssetsFilename;
  11. private final int mDictionaryResId;
  12. private final int mAutoTextResId;
  13. private final int mInitialSuggestionsResId;
  14. private DictionaryAddOnAndBuilder(Context packageContext, String id,
  15. int nameResId, String description, int sortIndex, String dictionaryLanguage,
  16. String assetsFilename, int dictResId, int autoTextResId, int initialSuggestionsResId) {
  17. super(packageContext, DICTIONARY_PREF_PREFIX + id, nameResId, description, sortIndex);
  18. mLanguage = dictionaryLanguage;
  19. mAssetsFilename = assetsFilename;
  20. mDictionaryResId = dictResId;
  21. mAutoTextResId = autoTextResId;
  22. mInitialSuggestionsResId = initialSuggestionsResId;
  23. }
  24. public DictionaryAddOnAndBuilder(Context packageContext, String id,
  25. int nameResId, String description, int sortIndex, String dictionaryLanguage, String assetsFilename, int initialSuggestionsResId) {
  26. this(packageContext, id, nameResId, description, sortIndex, dictionaryLanguage, assetsFilename, INVALID_RES_ID, INVALID_RES_ID, initialSuggestionsResId);
  27. }
  28. public DictionaryAddOnAndBuilder(Context packageContext, String id,
  29. int nameResId, String description, int sortIndex, String dictionaryLanguage, int dictionaryResId, int autoTextResId, int initialSuggestionsResId) {
  30. this(packageContext, id, nameResId, description, sortIndex, dictionaryLanguage, null, dictionaryResId, autoTextResId, initialSuggestionsResId);
  31. }
  32. public String getLanguage()
  33. {
  34. return mLanguage;
  35. }
  36. public int getAutoTextResId()
  37. {
  38. return mAutoTextResId;
  39. }
  40. public Dictionary createDictionary() throws Exception
  41. {
  42. if (mDictionaryResId == INVALID_RES_ID)
  43. return new BinaryDictionary(getName(), getPackageContext().getAssets().openFd(mAssetsFilename));
  44. else
  45. return new ResourceBinaryDictionary(getName(), getPackageContext(), mDictionaryResId);
  46. }
  47. public AutoText createAutoText()
  48. {
  49. if (mAutoTextResId == INVALID_RES_ID)
  50. return null;
  51. else
  52. return new AutoText(getPackageContext().getResources(), mAutoTextResId);
  53. }
  54. public List<CharSequence> createInitialSuggestions()
  55. {
  56. if (mInitialSuggestionsResId == INVALID_RES_ID)
  57. {
  58. return null;
  59. }
  60. else
  61. {
  62. String[] initialSuggestions = getPackageContext().getResources().getStringArray(mInitialSuggestionsResId);
  63. if (initialSuggestions != null)
  64. {
  65. List<CharSequence> suggestionsList= new ArrayList<CharSequence>(initialSuggestions.length);
  66. for(String suggestion : initialSuggestions)
  67. suggestionsList.add(suggestion);
  68. return suggestionsList;
  69. }
  70. else
  71. {
  72. return null;
  73. }
  74. }
  75. }
  76. }