diff options
author | 2014-03-27 17:46:35 +0900 | |
---|---|---|
committer | 2014-03-27 17:46:35 +0900 | |
commit | a785fa8edd7f7a1f91d45c5e66562d92cf5698af (patch) | |
tree | a8c2103d4f9ac62db01e9dc74c4ecb69917acd88 /java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java | |
parent | 3c38e1f269ad34a663db672e5cfb291fb1931987 (diff) | |
download | latinime-a785fa8edd7f7a1f91d45c5e66562d92cf5698af.tar.gz latinime-a785fa8edd7f7a1f91d45c5e66562d92cf5698af.tar.xz latinime-a785fa8edd7f7a1f91d45c5e66562d92cf5698af.zip |
Dictionary migration in Java side.
Bug: 13406708
Change-Id: If83938e4b4810d2e8353c70cdd8ef3ea97a29571
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()]; |