From a995bf4031dd19ff9c17dd4bf7969c713dc16dcf Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Thu, 25 Apr 2013 18:14:40 +0900 Subject: [PATCH] Put temp files within app files Bug: 8715614 Change-Id: I307d83923070994525cf0d27aad403e881a89314 --- .../android/inputmethod/latin/BinaryDictionaryGetter.java | 8 +++++++- .../android/inputmethod/latin/DictionaryInfoUtils.java | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java index 294312843..ddd72f18e 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java @@ -72,10 +72,16 @@ final class BinaryDictionaryGetter { public static String getTempFileName(final String id, final Context context) throws IOException { final String safeId = DictionaryInfoUtils.replaceFileNameDangerousCharacters(id); + final File directory = new File(DictionaryInfoUtils.getWordListTempDirectory(context)); + if (!directory.exists()) { + if (!directory.mkdirs()) { + Log.e(TAG, "Could not create the temporary directory"); + } + } // If the first argument is less than three chars, createTempFile throws a // RuntimeException. We don't really care about what name we get, so just // put a three-chars prefix makes us safe. - return File.createTempFile("xxx" + safeId, null).getAbsolutePath(); + return File.createTempFile("xxx" + safeId, null, directory).getAbsolutePath(); } /** diff --git a/java/src/com/android/inputmethod/latin/DictionaryInfoUtils.java b/java/src/com/android/inputmethod/latin/DictionaryInfoUtils.java index dcfa483f8..df7bad8d0 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryInfoUtils.java +++ b/java/src/com/android/inputmethod/latin/DictionaryInfoUtils.java @@ -128,6 +128,13 @@ public class DictionaryInfoUtils { return context.getFilesDir() + File.separator + "dicts"; } + /** + * Helper method to get the top level temp directory. + */ + public static String getWordListTempDirectory(final Context context) { + return context.getFilesDir() + File.separator + "tmp"; + } + /** * Reverse escaping done by replaceFileNameDangerousCharacters. */