public static List<KeyboardAddOnAndBuilder> getEnabledKeyboards(Context askContext) {
    final List<KeyboardAddOnAndBuilder> allAddOns = msInstance.getAllAddOns(askContext);
    Logger.i(
        TAG, "Creating enabled addons list. I have a total of " + allAddOns.size() + " addons");

    // getting shared prefs to determine which to create.
    final SharedPreferences sharedPreferences =
        PreferenceManager.getDefaultSharedPreferences(askContext);

    final ArrayList<KeyboardAddOnAndBuilder> enabledAddOns = new ArrayList<>();
    for (int addOnIndex = 0; addOnIndex < allAddOns.size(); addOnIndex++) {
      final KeyboardAddOnAndBuilder addOn = allAddOns.get(addOnIndex);

      final boolean addOnEnabled =
          sharedPreferences.getBoolean(addOn.getId(), addOn.getKeyboardDefaultEnabled());

      if (addOnEnabled) {
        enabledAddOns.add(addOn);
      }
    }

    // Fix: issue 219
    // Check if there is any keyboards created if not, lets create a default english keyboard
    if (enabledAddOns.size() == 0) {
      final SharedPreferences.Editor editor = sharedPreferences.edit();
      final KeyboardAddOnAndBuilder addOn = allAddOns.get(0);
      editor.putBoolean(addOn.getId(), true);
      SharedPreferencesCompat.EditorCompat.getInstance().apply(editor);
      enabledAddOns.add(addOn);
    }

    if (BuildConfig.TESTING_BUILD) {
      for (final KeyboardAddOnAndBuilder addOn : enabledAddOns) {
        Logger.d(TAG, "Factory provided addon: %s", addOn.getId());
      }
    }

    return enabledAddOns;
  }