private long timeReadingAndCheckDict(
      final File file,
      final List<String> words,
      final SparseArray<List<Integer>> bigrams,
      final HashMap<String, List<String>> shortcutMap,
      final int bufferType) {
    long now, diff = -1;

    FusionDictionary dict = null;
    try {
      final DictDecoder dictDecoder =
          BinaryDictIOUtils.getDictDecoder(file, 0, file.length(), bufferType);
      now = System.currentTimeMillis();
      dict = dictDecoder.readDictionaryBinary(false /* deleteDictIfBroken */);
      diff = System.currentTimeMillis() - now;
    } catch (IOException e) {
      Log.e(TAG, "IOException while reading dictionary", e);
    } catch (UnsupportedFormatException e) {
      Log.e(TAG, "Unsupported format", e);
    }

    checkDictionary(dict, words, bigrams, shortcutMap);
    return diff;
  }