diff options
author | 2014-03-28 08:07:25 +0000 | |
---|---|---|
committer | 2014-03-28 08:07:26 +0000 | |
commit | 781e3df73b7a3821ca54ba019c6a0f6597e24800 (patch) | |
tree | 8aae5e8e5054a30636b993aada37ecdec8061813 /java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java | |
parent | 35645ac39aee1864658a0c00ee82836a93822ebb (diff) | |
parent | a785fa8edd7f7a1f91d45c5e66562d92cf5698af (diff) | |
download | latinime-781e3df73b7a3821ca54ba019c6a0f6597e24800.tar.gz latinime-781e3df73b7a3821ca54ba019c6a0f6597e24800.tar.xz latinime-781e3df73b7a3821ca54ba019c6a0f6597e24800.zip |
Merge "Dictionary migration in Java side."
Diffstat (limited to 'java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java b/java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java index 638830046..b4658b531 100644 --- a/java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java @@ -26,6 +26,8 @@ import java.io.File; import java.io.IOException; import java.util.Locale; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public final class BinaryDictionaryUtils { private static final String TAG = BinaryDictionaryUtils.class.getSimpleName(); @@ -64,6 +66,31 @@ public final class BinaryDictionaryUtils { return header; } + public static boolean renameDict(final File dictFile, final File newDictFile) { + if (dictFile.isFile()) { + return dictFile.renameTo(newDictFile); + } else if (dictFile.isDirectory()) { + final String dictName = dictFile.getName(); + final String newDictName = newDictFile.getName(); + if (newDictFile.exists()) { + return false; + } + for (final File file : dictFile.listFiles()) { + if (!file.isFile()) { + continue; + } + final String fileName = file.getName(); + final String newFileName = fileName.replaceFirst( + Pattern.quote(dictName), Matcher.quoteReplacement(newDictName)); + if (!file.renameTo(new File(dictFile, newFileName))) { + return false; + } + } + return dictFile.renameTo(newDictFile); + } + return false; + } + public static boolean createEmptyDictFile(final String filePath, final long dictVersion, final Locale locale, final Map<String, String> attributeMap) { final String[] keyArray = new String[attributeMap.size()]; |