From a785fa8edd7f7a1f91d45c5e66562d92cf5698af Mon Sep 17 00:00:00 2001 From: Keisuke Kuroyanagi Date: Thu, 27 Mar 2014 17:46:35 +0900 Subject: Dictionary migration in Java side. Bug: 13406708 Change-Id: If83938e4b4810d2e8353c70cdd8ef3ea97a29571 --- .../latin/utils/BinaryDictionaryUtils.java | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java') 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 attributeMap) { final String[] keyArray = new String[attributeMap.size()]; -- cgit v1.2.3-83-g751a