From 6007a1b7a91437a211bf53dee248b78d95636bdb Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Thu, 20 Mar 2014 16:23:45 +0900 Subject: [PATCH] Refactor KeyboardTextsSet class Change-Id: Ibb59a9d4902db9ec0e00244304be9ab35b215a50 --- .../keyboard/internal/KeyboardTextsSet.java | 14 ++++++++------ .../keyboard/internal/MoreKeySpecSplitTests.java | 5 ++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java index 976038c10..bdc36ed45 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java @@ -43,18 +43,19 @@ public final class KeyboardTextsSet { mTextsTable = KeyboardTextsTable.getTextsTable(language); } + // TODO: Consolidate this method with {@link #setLocale(Locale)}. public void loadStringResources(final Context context) { + final Resources res = context.getResources(); final int referenceId = context.getApplicationInfo().labelRes; - loadStringResourcesInternal(context, RESOURCE_NAMES, referenceId); + final String resourcePackageName = res.getResourcePackageName(referenceId); + loadStringResourcesInternal(res, RESOURCE_NAMES, resourcePackageName); } @UsedForTesting - void loadStringResourcesInternal(final Context context, final String[] resourceNames, - final int referenceId) { - final Resources res = context.getResources(); - final String packageName = res.getResourcePackageName(referenceId); + void loadStringResourcesInternal(final Resources res, final String[] resourceNames, + final String resourcePackageName) { for (final String resName : resourceNames) { - final int resId = res.getIdentifier(resName, "string", packageName); + final int resId = res.getIdentifier(resName, "string", resourcePackageName); mResourceNameToTextsMap.put(resName, res.getString(resId)); } } @@ -77,6 +78,7 @@ public final class KeyboardTextsSet { return size; } + // TODO: Resolve text reference when creating {@link KeyboardTextsTable} class. public String resolveTextReference(final String rawText) { if (TextUtils.isEmpty(rawText)) { return null; diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java index 42a94f420..d01c2ec79 100644 --- a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java +++ b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java @@ -51,10 +51,13 @@ public class MoreKeySpecSplitTests extends InstrumentationTestCase { }.runInLocale(targetContext.getResources(), TEST_LOCALE); final String[] testResourceNames = getAllResourceIdNames( com.android.inputmethod.latin.tests.R.string.class); - mTextsSet.loadStringResourcesInternal(instrumentation.getContext(), testResourceNames, + final Context testContext = instrumentation.getContext(); + final Resources testRes = testContext.getResources(); + final String testResPackageName = testRes.getResourcePackageName( // This dummy raw resource is needed to be able to load string resources from a test // APK successfully. com.android.inputmethod.latin.tests.R.raw.dummy_resource_for_testing); + mTextsSet.loadStringResourcesInternal(testRes, testResourceNames, testResPackageName); } private static String[] getAllResourceIdNames(final Class resourceIdClass) {