Add @UsedForTesting and @ExternallyReferenced annotations
Bug: 7268357 Change-Id: I0b7e0c19f04af9ae30874d0a4c26ad81bc80be8cmain
parent
243c1fecc6
commit
15f6d4ae34
|
@ -1,64 +1,11 @@
|
||||||
-keep class com.android.inputmethod.latin.BinaryDictionary {
|
# Keep classes and methods that have the @UsedForTesting annotation
|
||||||
int mDictLength;
|
-keep @com.android.inputmethod.annotations.UsedForTesting class *
|
||||||
<init>(...);
|
-keepclassmembers class * {
|
||||||
|
@com.android.inputmethod.annotations.UsedForTesting *;
|
||||||
}
|
}
|
||||||
|
|
||||||
-keep class com.android.inputmethod.keyboard.ProximityInfo {
|
# Keep classes and methods that have the @ExternallyReferenced annotation
|
||||||
<init>(com.android.inputmethod.keyboard.ProximityInfo);
|
-keep @com.android.inputmethod.annotations.ExternallyReferenced class *
|
||||||
|
-keepclassmembers class * {
|
||||||
|
@com.android.inputmethod.annotations.ExternallyReferenced *;
|
||||||
}
|
}
|
||||||
|
|
||||||
-keep class com.android.inputmethod.latin.Suggest {
|
|
||||||
<init>(...);
|
|
||||||
com.android.inputmethod.latin.SuggestedWords getSuggestions(...);
|
|
||||||
}
|
|
||||||
|
|
||||||
-keep class com.android.inputmethod.latin.AutoCorrection {
|
|
||||||
java.lang.CharSequence getAutoCorrectionWord();
|
|
||||||
}
|
|
||||||
|
|
||||||
-keep class com.android.inputmethod.latin.Utils {
|
|
||||||
boolean equalsIgnoreCase(...);
|
|
||||||
}
|
|
||||||
|
|
||||||
-keep class com.android.inputmethod.latin.InputPointers {
|
|
||||||
*;
|
|
||||||
}
|
|
||||||
|
|
||||||
-keep class com.android.inputmethod.latin.ResizableIntArray {
|
|
||||||
*;
|
|
||||||
}
|
|
||||||
|
|
||||||
-keep class com.android.inputmethod.latin.spellcheck.SpellCheckerSettingsFragment {
|
|
||||||
*;
|
|
||||||
}
|
|
||||||
|
|
||||||
-keep class com.android.inputmethod.keyboard.MainKeyboardView {
|
|
||||||
# Keep getter/setter methods for ObjectAnimator
|
|
||||||
int getLanguageOnSpacebarAnimAlpha();
|
|
||||||
void setLanguageOnSpacebarAnimAlpha(int);
|
|
||||||
int getAltCodeKeyWhileTypingAnimAlpha();
|
|
||||||
void setAltCodeKeyWhileTypingAnimAlpha(int);
|
|
||||||
}
|
|
||||||
|
|
||||||
-keep class com.android.inputmethod.keyboard.MoreKeysKeyboard$Builder$MoreKeysKeyboardParams {
|
|
||||||
<init>(...);
|
|
||||||
}
|
|
||||||
|
|
||||||
-keepclasseswithmembernames class * {
|
|
||||||
native <methods>;
|
|
||||||
}
|
|
||||||
|
|
||||||
-keep class com.android.inputmethod.research.ResearchLogger {
|
|
||||||
void flush();
|
|
||||||
void publishCurrentLogUnit(...);
|
|
||||||
}
|
|
||||||
|
|
||||||
-keep class com.android.inputmethod.keyboard.KeyboardLayoutSet$Builder {
|
|
||||||
void setTouchPositionCorrectionEnabled(...);
|
|
||||||
}
|
|
||||||
|
|
||||||
# The support library contains references to newer platform versions.
|
|
||||||
# Don't warn about those in case this app is linking against an older
|
|
||||||
# platform version. We know about them, and they are safe.
|
|
||||||
-dontwarn android.support.v4.**
|
|
||||||
-dontwarn android.support.v13.**
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2012 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.inputmethod.annotations;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Denotes that the class, method or field should not be eliminated by ProGuard,
|
||||||
|
* because it is externally referenced. (See proguard.flags)
|
||||||
|
*/
|
||||||
|
public @interface ExternallyReferenced {
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2012 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.inputmethod.annotations;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Denotes that the class, method or field should not be eliminated by ProGuard,
|
||||||
|
* so that unit tests can access it. (See proguard.flags)
|
||||||
|
*/
|
||||||
|
public @interface UsedForTesting {
|
||||||
|
}
|
|
@ -34,6 +34,7 @@ import android.util.Xml;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
import android.view.inputmethod.InputMethodSubtype;
|
import android.view.inputmethod.InputMethodSubtype;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.compat.EditorInfoCompatUtils;
|
import com.android.inputmethod.compat.EditorInfoCompatUtils;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
|
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardParams;
|
import com.android.inputmethod.keyboard.internal.KeyboardParams;
|
||||||
|
@ -265,7 +266,7 @@ public final class KeyboardLayoutSet {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// For test only
|
@UsedForTesting
|
||||||
public void disableTouchPositionCorrectionDataForTest() {
|
public void disableTouchPositionCorrectionDataForTest() {
|
||||||
mParams.mDisableTouchPositionCorrectionDataForTest = true;
|
mParams.mDisableTouchPositionCorrectionDataForTest = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ import android.widget.PopupWindow;
|
||||||
|
|
||||||
import com.android.inputmethod.accessibility.AccessibilityUtils;
|
import com.android.inputmethod.accessibility.AccessibilityUtils;
|
||||||
import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
|
import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
|
||||||
|
import com.android.inputmethod.annotations.ExternallyReferenced;
|
||||||
import com.android.inputmethod.keyboard.PointerTracker.DrawingProxy;
|
import com.android.inputmethod.keyboard.PointerTracker.DrawingProxy;
|
||||||
import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
|
import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyDrawParams;
|
import com.android.inputmethod.keyboard.internal.KeyDrawParams;
|
||||||
|
@ -417,20 +418,23 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
|
||||||
return animator;
|
return animator;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getter/setter methods for {@link ObjectAnimator}.
|
@ExternallyReferenced
|
||||||
public int getLanguageOnSpacebarAnimAlpha() {
|
public int getLanguageOnSpacebarAnimAlpha() {
|
||||||
return mLanguageOnSpacebarAnimAlpha;
|
return mLanguageOnSpacebarAnimAlpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ExternallyReferenced
|
||||||
public void setLanguageOnSpacebarAnimAlpha(final int alpha) {
|
public void setLanguageOnSpacebarAnimAlpha(final int alpha) {
|
||||||
mLanguageOnSpacebarAnimAlpha = alpha;
|
mLanguageOnSpacebarAnimAlpha = alpha;
|
||||||
invalidateKey(mSpaceKey);
|
invalidateKey(mSpaceKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ExternallyReferenced
|
||||||
public int getAltCodeKeyWhileTypingAnimAlpha() {
|
public int getAltCodeKeyWhileTypingAnimAlpha() {
|
||||||
return mAltCodeKeyWhileTypingAnimAlpha;
|
return mAltCodeKeyWhileTypingAnimAlpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ExternallyReferenced
|
||||||
public void setAltCodeKeyWhileTypingAnimAlpha(final int alpha) {
|
public void setAltCodeKeyWhileTypingAnimAlpha(final int alpha) {
|
||||||
mAltCodeKeyWhileTypingAnimAlpha = alpha;
|
mAltCodeKeyWhileTypingAnimAlpha = alpha;
|
||||||
updateAltCodeKeyWhileTyping();
|
updateAltCodeKeyWhileTyping();
|
||||||
|
|
|
@ -20,6 +20,7 @@ import android.graphics.Paint;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
|
import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
|
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardParams;
|
import com.android.inputmethod.keyboard.internal.KeyboardParams;
|
||||||
|
@ -39,7 +40,7 @@ public final class MoreKeysKeyboard extends Keyboard {
|
||||||
return mDefaultKeyCoordX;
|
return mDefaultKeyCoordX;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* package for test */
|
@UsedForTesting
|
||||||
static class MoreKeysKeyboardParams extends KeyboardParams {
|
static class MoreKeysKeyboardParams extends KeyboardParams {
|
||||||
public boolean mIsFixedOrder;
|
public boolean mIsFixedOrder;
|
||||||
/* package */int mTopRowAdjustment;
|
/* package */int mTopRowAdjustment;
|
||||||
|
|
|
@ -27,6 +27,7 @@ import android.util.TypedValue;
|
||||||
import android.util.Xml;
|
import android.util.Xml;
|
||||||
import android.view.InflateException;
|
import android.view.InflateException;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.keyboard.Key;
|
import com.android.inputmethod.keyboard.Key;
|
||||||
import com.android.inputmethod.keyboard.Keyboard;
|
import com.android.inputmethod.keyboard.Keyboard;
|
||||||
import com.android.inputmethod.keyboard.KeyboardId;
|
import com.android.inputmethod.keyboard.KeyboardId;
|
||||||
|
@ -177,7 +178,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// For test only
|
@UsedForTesting
|
||||||
public void disableTouchPositionCorrectionDataForTest() {
|
public void disableTouchPositionCorrectionDataForTest() {
|
||||||
mParams.mTouchPositionCorrection.setEnabled(false);
|
mParams.mTouchPositionCorrection.setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ package com.android.inputmethod.keyboard.internal;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.latin.CollectionUtils;
|
import com.android.inputmethod.latin.CollectionUtils;
|
||||||
import com.android.inputmethod.latin.R;
|
import com.android.inputmethod.latin.R;
|
||||||
|
|
||||||
|
@ -64,7 +65,7 @@ public final class KeyboardTextsSet {
|
||||||
loadStringResourcesInternal(context, RESOURCE_NAMES, R.string.english_ime_name);
|
loadStringResourcesInternal(context, RESOURCE_NAMES, R.string.english_ime_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* package for test */
|
@UsedForTesting
|
||||||
void loadStringResourcesInternal(Context context, final String[] resourceNames,
|
void loadStringResourcesInternal(Context context, final String[] resourceNames,
|
||||||
int referenceId) {
|
int referenceId) {
|
||||||
final Resources res = context.getResources();
|
final Resources res = context.getResources();
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package com.android.inputmethod.keyboard.internal;
|
package com.android.inputmethod.keyboard.internal;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.latin.LatinImeLogger;
|
import com.android.inputmethod.latin.LatinImeLogger;
|
||||||
|
|
||||||
public final class TouchPositionCorrection {
|
public final class TouchPositionCorrection {
|
||||||
|
@ -66,7 +67,7 @@ public final class TouchPositionCorrection {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// For test only
|
@UsedForTesting
|
||||||
public void setEnabled(final boolean enabled) {
|
public void setEnabled(final boolean enabled) {
|
||||||
mEnabled = enabled;
|
mEnabled = enabled;
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,7 +81,6 @@ public final class BinaryDictionary extends Dictionary {
|
||||||
/**
|
/**
|
||||||
* Constructor for the binary dictionary. This is supposed to be called from the
|
* Constructor for the binary dictionary. This is supposed to be called from the
|
||||||
* dictionary factory.
|
* dictionary factory.
|
||||||
* All implementations should pass null into flagArray, except for testing purposes.
|
|
||||||
* @param context the context to access the environment from.
|
* @param context the context to access the environment from.
|
||||||
* @param filename the name of the file to read through native code.
|
* @param filename the name of the file to read through native code.
|
||||||
* @param offset the offset of the dictionary data within the file.
|
* @param offset the offset of the dictionary data within the file.
|
||||||
|
@ -174,7 +173,7 @@ public final class BinaryDictionary extends Dictionary {
|
||||||
return suggestions;
|
return suggestions;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* package for test */ boolean isValidDictionary() {
|
public boolean isValidDictionary() {
|
||||||
return mNativeDict != 0;
|
return mNativeDict != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -267,8 +267,7 @@ public class ExpandableDictionary extends Dictionary {
|
||||||
|
|
||||||
// This reloads the dictionary if required, and returns whether it's currently updating its
|
// This reloads the dictionary if required, and returns whether it's currently updating its
|
||||||
// contents or not.
|
// contents or not.
|
||||||
// @VisibleForTesting
|
private boolean reloadDictionaryIfRequired() {
|
||||||
boolean reloadDictionaryIfRequired() {
|
|
||||||
synchronized (mUpdatingLock) {
|
synchronized (mUpdatingLock) {
|
||||||
// If we need to update, start off a background task
|
// If we need to update, start off a background task
|
||||||
if (mRequiresReload) startDictionaryLoadingTaskLocked();
|
if (mRequiresReload) startDictionaryLoadingTaskLocked();
|
||||||
|
@ -613,25 +612,6 @@ public class ExpandableDictionary extends Dictionary {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Used for testing purposes and in the spell checker
|
|
||||||
* This function will wait for loading from database to be done
|
|
||||||
*/
|
|
||||||
void waitForDictionaryLoading() {
|
|
||||||
while (mUpdatingDictionary) {
|
|
||||||
try {
|
|
||||||
Thread.sleep(100);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
//
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected final void blockingReloadDictionaryIfRequired() {
|
|
||||||
reloadDictionaryIfRequired();
|
|
||||||
waitForDictionaryLoading();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Local to reverseLookUp, but do not allocate each time.
|
// Local to reverseLookUp, but do not allocate each time.
|
||||||
private final char[] mLookedUpString = new char[BinaryDictionary.MAX_WORD_LENGTH];
|
private final char[] mLookedUpString = new char[BinaryDictionary.MAX_WORD_LENGTH];
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
package com.android.inputmethod.latin;
|
package com.android.inputmethod.latin;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
|
|
||||||
// TODO: This class is not thread-safe.
|
// TODO: This class is not thread-safe.
|
||||||
public final class InputPointers {
|
public final class InputPointers {
|
||||||
private final int mDefaultCapacity;
|
private final int mDefaultCapacity;
|
||||||
|
@ -39,7 +41,8 @@ public final class InputPointers {
|
||||||
mTimes.add(index, time);
|
mTimes.add(index, time);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addPointer(int x, int y, int pointerId, int time) {
|
@UsedForTesting
|
||||||
|
void addPointer(int x, int y, int pointerId, int time) {
|
||||||
mXCoordinates.add(x);
|
mXCoordinates.add(x);
|
||||||
mYCoordinates.add(y);
|
mYCoordinates.add(y);
|
||||||
mPointerIds.add(pointerId);
|
mPointerIds.add(pointerId);
|
||||||
|
@ -66,7 +69,8 @@ public final class InputPointers {
|
||||||
* @param startPos the starting index of the pointers in {@code src}.
|
* @param startPos the starting index of the pointers in {@code src}.
|
||||||
* @param length the number of pointers to be appended.
|
* @param length the number of pointers to be appended.
|
||||||
*/
|
*/
|
||||||
public void append(InputPointers src, int startPos, int length) {
|
@UsedForTesting
|
||||||
|
void append(InputPointers src, int startPos, int length) {
|
||||||
if (length == 0) {
|
if (length == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,7 @@ import android.view.inputmethod.InputMethodSubtype;
|
||||||
|
|
||||||
import com.android.inputmethod.accessibility.AccessibilityUtils;
|
import com.android.inputmethod.accessibility.AccessibilityUtils;
|
||||||
import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
|
import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.compat.CompatUtils;
|
import com.android.inputmethod.compat.CompatUtils;
|
||||||
import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
|
import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
|
||||||
import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
|
import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
|
||||||
|
@ -132,14 +133,14 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
|
||||||
private View mKeyPreviewBackingView;
|
private View mKeyPreviewBackingView;
|
||||||
private View mSuggestionsContainer;
|
private View mSuggestionsContainer;
|
||||||
private SuggestionStripView mSuggestionStripView;
|
private SuggestionStripView mSuggestionStripView;
|
||||||
/* package for tests */ Suggest mSuggest;
|
@UsedForTesting Suggest mSuggest;
|
||||||
private CompletionInfo[] mApplicationSpecifiedCompletions;
|
private CompletionInfo[] mApplicationSpecifiedCompletions;
|
||||||
private ApplicationInfo mTargetApplicationInfo;
|
private ApplicationInfo mTargetApplicationInfo;
|
||||||
|
|
||||||
private InputMethodManagerCompatWrapper mImm;
|
private InputMethodManagerCompatWrapper mImm;
|
||||||
private Resources mResources;
|
private Resources mResources;
|
||||||
private SharedPreferences mPrefs;
|
private SharedPreferences mPrefs;
|
||||||
/* package for tests */ final KeyboardSwitcher mKeyboardSwitcher;
|
@UsedForTesting final KeyboardSwitcher mKeyboardSwitcher;
|
||||||
private final SubtypeSwitcher mSubtypeSwitcher;
|
private final SubtypeSwitcher mSubtypeSwitcher;
|
||||||
private boolean mShouldSwitchToLastSubtype = true;
|
private boolean mShouldSwitchToLastSubtype = true;
|
||||||
|
|
||||||
|
@ -422,7 +423,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
|
||||||
}
|
}
|
||||||
|
|
||||||
// Has to be package-visible for unit tests
|
// Has to be package-visible for unit tests
|
||||||
/* package for test */
|
@UsedForTesting
|
||||||
void loadSettings() {
|
void loadSettings() {
|
||||||
// Note that the calling sequence of onCreate() and onCurrentInputMethodSubtypeChanged()
|
// Note that the calling sequence of onCreate() and onCurrentInputMethodSubtypeChanged()
|
||||||
// is not guaranteed. It may even be called at the same time on a different thread.
|
// is not guaranteed. It may even be called at the same time on a different thread.
|
||||||
|
@ -1848,7 +1849,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
|
||||||
|
|
||||||
// TODO: make this private
|
// TODO: make this private
|
||||||
// Outside LatinIME, only used by the test suite.
|
// Outside LatinIME, only used by the test suite.
|
||||||
/* package for tests */
|
@UsedForTesting
|
||||||
boolean isShowingPunctuationList() {
|
boolean isShowingPunctuationList() {
|
||||||
if (mSuggestionStripView == null) return false;
|
if (mSuggestionStripView == null) return false;
|
||||||
return mCurrentSettings.mSuggestPuncList == mSuggestionStripView.getSuggestions();
|
return mCurrentSettings.mSuggestPuncList == mSuggestionStripView.getSuggestions();
|
||||||
|
@ -2232,7 +2233,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
|
||||||
|
|
||||||
// TODO: Make this private
|
// TODO: Make this private
|
||||||
// Outside LatinIME, only used by the {@link InputTestsBase} test suite.
|
// Outside LatinIME, only used by the {@link InputTestsBase} test suite.
|
||||||
/* package for test */
|
@UsedForTesting
|
||||||
void loadKeyboard() {
|
void loadKeyboard() {
|
||||||
// When the device locale is changed in SetupWizard etc., this method may get called via
|
// When the device locale is changed in SetupWizard etc., this method may get called via
|
||||||
// onConfigurationChanged before SoftInputWindow is shown.
|
// onConfigurationChanged before SoftInputWindow is shown.
|
||||||
|
|
|
@ -19,6 +19,7 @@ package com.android.inputmethod.latin;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.keyboard.Keyboard;
|
import com.android.inputmethod.keyboard.Keyboard;
|
||||||
import com.android.inputmethod.keyboard.ProximityInfo;
|
import com.android.inputmethod.keyboard.ProximityInfo;
|
||||||
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
||||||
|
@ -71,7 +72,8 @@ public final class Suggest {
|
||||||
mLocale = locale;
|
mLocale = locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* package for test */ Suggest(final Context context, final File dictionary,
|
@UsedForTesting
|
||||||
|
Suggest(final Context context, final File dictionary,
|
||||||
final long startOffset, final long length, final Locale locale) {
|
final long startOffset, final long length, final Locale locale) {
|
||||||
final Dictionary mainDict = DictionaryFactory.createDictionaryForTest(context, dictionary,
|
final Dictionary mainDict = DictionaryFactory.createDictionaryForTest(context, dictionary,
|
||||||
startOffset, length /* useFullEditDistance */, false, locale);
|
startOffset, length /* useFullEditDistance */, false, locale);
|
||||||
|
|
|
@ -18,6 +18,7 @@ package com.android.inputmethod.latin;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
|
import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
|
||||||
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput;
|
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput;
|
||||||
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput.FusionDictionaryBufferInterface;
|
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput.FusionDictionaryBufferInterface;
|
||||||
|
@ -129,7 +130,8 @@ public final class UserHistoryDictIOUtils {
|
||||||
/**
|
/**
|
||||||
* Constructs a new FusionDictionary from BigramDictionaryInterface.
|
* Constructs a new FusionDictionary from BigramDictionaryInterface.
|
||||||
*/
|
*/
|
||||||
/* packages for test */ static FusionDictionary constructFusionDictionary(
|
@UsedForTesting
|
||||||
|
static FusionDictionary constructFusionDictionary(
|
||||||
final BigramDictionaryInterface dict, final UserHistoryDictionaryBigramList bigrams) {
|
final BigramDictionaryInterface dict, final UserHistoryDictionaryBigramList bigrams) {
|
||||||
final FusionDictionary fusionDict = new FusionDictionary(new Node(),
|
final FusionDictionary fusionDict = new FusionDictionary(new Node(),
|
||||||
new FusionDictionary.DictionaryOptions(new HashMap<String, String>(), false,
|
new FusionDictionary.DictionaryOptions(new HashMap<String, String>(), false,
|
||||||
|
@ -193,7 +195,8 @@ public final class UserHistoryDictIOUtils {
|
||||||
/**
|
/**
|
||||||
* Adds all unigrams and bigrams in maps to OnAddWordListener.
|
* Adds all unigrams and bigrams in maps to OnAddWordListener.
|
||||||
*/
|
*/
|
||||||
/* package for test */ static void addWordsFromWordMap(final Map<Integer, String> unigrams,
|
@UsedForTesting
|
||||||
|
static void addWordsFromWordMap(final Map<Integer, String> unigrams,
|
||||||
final Map<Integer, Integer> frequencies,
|
final Map<Integer, Integer> frequencies,
|
||||||
final Map<Integer, ArrayList<PendingAttribute>> bigrams, final OnAddWordListener to) {
|
final Map<Integer, ArrayList<PendingAttribute>> bigrams, final OnAddWordListener to) {
|
||||||
for (Map.Entry<Integer, String> entry : unigrams.entrySet()) {
|
for (Map.Entry<Integer, String> entry : unigrams.entrySet()) {
|
||||||
|
|
|
@ -21,6 +21,7 @@ import android.content.SharedPreferences;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.keyboard.ProximityInfo;
|
import com.android.inputmethod.keyboard.ProximityInfo;
|
||||||
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
||||||
import com.android.inputmethod.latin.UserHistoryDictIOUtils.BigramDictionaryInterface;
|
import com.android.inputmethod.latin.UserHistoryDictIOUtils.BigramDictionaryInterface;
|
||||||
|
@ -75,7 +76,7 @@ public final class UserHistoryDictionary extends ExpandableDictionary {
|
||||||
private final SharedPreferences mPrefs;
|
private final SharedPreferences mPrefs;
|
||||||
|
|
||||||
// Should always be false except when we use this class for test
|
// Should always be false except when we use this class for test
|
||||||
/* package for test */ boolean isTest = false;
|
@UsedForTesting boolean isTest = false;
|
||||||
|
|
||||||
private static final ConcurrentHashMap<String, SoftReference<UserHistoryDictionary>>
|
private static final ConcurrentHashMap<String, SoftReference<UserHistoryDictionary>>
|
||||||
sLangDictCache = CollectionUtils.newConcurrentHashMap();
|
sLangDictCache = CollectionUtils.newConcurrentHashMap();
|
||||||
|
@ -390,6 +391,7 @@ public final class UserHistoryDictionary extends ExpandableDictionary {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@UsedForTesting
|
||||||
void forceAddWordForTest(final String word1, final String word2, final boolean isValid) {
|
void forceAddWordForTest(final String word1, final String word2, final boolean isValid) {
|
||||||
mBigramListLock.lock();
|
mBigramListLock.lock();
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package com.android.inputmethod.latin.makedict;
|
package com.android.inputmethod.latin.makedict;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.latin.Constants;
|
import com.android.inputmethod.latin.Constants;
|
||||||
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput.CharEncoding;
|
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput.CharEncoding;
|
||||||
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput.FusionDictionaryBufferInterface;
|
import com.android.inputmethod.latin.makedict.BinaryDictInputOutput.FusionDictionaryBufferInterface;
|
||||||
|
@ -167,6 +168,7 @@ public final class BinaryDictIOUtils {
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
* @throws UnsupportedFormatException
|
* @throws UnsupportedFormatException
|
||||||
*/
|
*/
|
||||||
|
@UsedForTesting
|
||||||
public static int getTerminalPosition(final FusionDictionaryBufferInterface buffer,
|
public static int getTerminalPosition(final FusionDictionaryBufferInterface buffer,
|
||||||
final String word) throws IOException, UnsupportedFormatException {
|
final String word) throws IOException, UnsupportedFormatException {
|
||||||
if (word == null) return FormatSpec.NOT_VALID_WORD;
|
if (word == null) return FormatSpec.NOT_VALID_WORD;
|
||||||
|
@ -254,6 +256,7 @@ public final class BinaryDictIOUtils {
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
* @throws UnsupportedFormatException
|
* @throws UnsupportedFormatException
|
||||||
*/
|
*/
|
||||||
|
@UsedForTesting
|
||||||
public static void deleteWord(final FusionDictionaryBufferInterface buffer,
|
public static void deleteWord(final FusionDictionaryBufferInterface buffer,
|
||||||
final String word) throws IOException, UnsupportedFormatException {
|
final String word) throws IOException, UnsupportedFormatException {
|
||||||
buffer.position(0);
|
buffer.position(0);
|
||||||
|
@ -706,6 +709,8 @@ public final class BinaryDictIOUtils {
|
||||||
* @throws UnsupportedFormatException
|
* @throws UnsupportedFormatException
|
||||||
*/
|
*/
|
||||||
// TODO: Support batch insertion.
|
// TODO: Support batch insertion.
|
||||||
|
// TODO: Remove @UsedForTesting once UserHistoryDictionary is implemented by BinaryDictionary.
|
||||||
|
@UsedForTesting
|
||||||
public static void insertWord(final FusionDictionaryBufferInterface buffer,
|
public static void insertWord(final FusionDictionaryBufferInterface buffer,
|
||||||
final OutputStream destination, final String word, final int frequency,
|
final OutputStream destination, final String word, final int frequency,
|
||||||
final ArrayList<WeightedString> bigramStrings,
|
final ArrayList<WeightedString> bigramStrings,
|
||||||
|
@ -959,6 +964,7 @@ public final class BinaryDictIOUtils {
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
* @throws UnsupportedFormatException
|
* @throws UnsupportedFormatException
|
||||||
*/
|
*/
|
||||||
|
@UsedForTesting
|
||||||
public static CharGroupInfo findWordFromBuffer(final FusionDictionaryBufferInterface buffer,
|
public static CharGroupInfo findWordFromBuffer(final FusionDictionaryBufferInterface buffer,
|
||||||
final String word) throws IOException, UnsupportedFormatException {
|
final String word) throws IOException, UnsupportedFormatException {
|
||||||
int position = getTerminalPosition(buffer, word);
|
int position = getTerminalPosition(buffer, word);
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package com.android.inputmethod.latin.makedict;
|
package com.android.inputmethod.latin.makedict;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.latin.makedict.FormatSpec.FileHeader;
|
import com.android.inputmethod.latin.makedict.FormatSpec.FileHeader;
|
||||||
import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
|
import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
|
||||||
import com.android.inputmethod.latin.makedict.FusionDictionary.CharGroup;
|
import com.android.inputmethod.latin.makedict.FusionDictionary.CharGroup;
|
||||||
|
@ -1651,6 +1652,7 @@ public final class BinaryDictInputOutput {
|
||||||
* @param dict an optional dictionary to add words to, or null.
|
* @param dict an optional dictionary to add words to, or null.
|
||||||
* @return the created (or merged) dictionary.
|
* @return the created (or merged) dictionary.
|
||||||
*/
|
*/
|
||||||
|
@UsedForTesting
|
||||||
public static FusionDictionary readDictionaryBinary(
|
public static FusionDictionary readDictionaryBinary(
|
||||||
final FusionDictionaryBufferInterface buffer, final FusionDictionary dict)
|
final FusionDictionaryBufferInterface buffer, final FusionDictionary dict)
|
||||||
throws IOException, UnsupportedFormatException {
|
throws IOException, UnsupportedFormatException {
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package com.android.inputmethod.latin.spellcheck;
|
package com.android.inputmethod.latin.spellcheck;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.keyboard.ProximityInfo;
|
import com.android.inputmethod.keyboard.ProximityInfo;
|
||||||
import com.android.inputmethod.latin.CollectionUtils;
|
import com.android.inputmethod.latin.CollectionUtils;
|
||||||
import com.android.inputmethod.latin.Constants;
|
import com.android.inputmethod.latin.Constants;
|
||||||
|
@ -23,7 +24,7 @@ import com.android.inputmethod.latin.Constants;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
public final class SpellCheckerProximityInfo {
|
public final class SpellCheckerProximityInfo {
|
||||||
/* public for test */
|
@UsedForTesting
|
||||||
final public static int NUL = Constants.NOT_A_CODE;
|
final public static int NUL = Constants.NOT_A_CODE;
|
||||||
|
|
||||||
// This must be the same as MAX_PROXIMITY_CHARS_SIZE else it will not work inside
|
// This must be the same as MAX_PROXIMITY_CHARS_SIZE else it will not work inside
|
||||||
|
|
|
@ -16,14 +16,18 @@
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
LATINIME_CORE_SOURCE_DIRECTORY := ../../java/src/com/android/inputmethod/latin
|
LATINIME_BASE_SOURCE_DIRECTORY := ../../java/src/com/android/inputmethod
|
||||||
|
LATINIME_CORE_SOURCE_DIRECTORY := $(LATINIME_BASE_SOURCE_DIRECTORY)/latin
|
||||||
|
LATINIME_ANNOTATIONS_SOURCE_DIRECTORY := $(LATINIME_BASE_SOURCE_DIRECTORY)/annotations
|
||||||
MAKEDICT_CORE_SOURCE_DIRECTORY := $(LATINIME_CORE_SOURCE_DIRECTORY)/makedict
|
MAKEDICT_CORE_SOURCE_DIRECTORY := $(LATINIME_CORE_SOURCE_DIRECTORY)/makedict
|
||||||
|
|
||||||
LOCAL_MAIN_SRC_FILES := $(call all-java-files-under,$(MAKEDICT_CORE_SOURCE_DIRECTORY))
|
LOCAL_MAIN_SRC_FILES := $(call all-java-files-under,$(MAKEDICT_CORE_SOURCE_DIRECTORY))
|
||||||
LOCAL_TOOL_SRC_FILES := $(call all-java-files-under,src)
|
LOCAL_TOOL_SRC_FILES := $(call all-java-files-under,src)
|
||||||
|
LOCAL_ANNOTATIONS_SRC_FILES := $(call all-java-files-under,$(LATINIME_ANNOTATIONS_SOURCE_DIRECTORY))
|
||||||
LOCAL_SRC_FILES := $(LOCAL_TOOL_SRC_FILES) \
|
LOCAL_SRC_FILES := $(LOCAL_TOOL_SRC_FILES) \
|
||||||
$(filter-out $(addprefix %/, $(notdir $(LOCAL_TOOL_SRC_FILES))), $(LOCAL_MAIN_SRC_FILES)) \
|
$(filter-out $(addprefix %/, $(notdir $(LOCAL_TOOL_SRC_FILES))), $(LOCAL_MAIN_SRC_FILES)) \
|
||||||
$(call all-java-files-under,tests) \
|
$(call all-java-files-under,tests) \
|
||||||
|
$(LOCAL_ANNOTATIONS_SRC_FILES) \
|
||||||
$(LATINIME_CORE_SOURCE_DIRECTORY)/Constants.java
|
$(LATINIME_CORE_SOURCE_DIRECTORY)/Constants.java
|
||||||
|
|
||||||
LOCAL_JAR_MANIFEST := etc/manifest.txt
|
LOCAL_JAR_MANIFEST := etc/manifest.txt
|
||||||
|
|
|
@ -19,24 +19,15 @@ package com.android.inputmethod.latin.makedict;
|
||||||
import com.android.inputmethod.latin.makedict.FusionDictionary.DictionaryOptions;
|
import com.android.inputmethod.latin.makedict.FusionDictionary.DictionaryOptions;
|
||||||
import com.android.inputmethod.latin.makedict.FusionDictionary.Node;
|
import com.android.inputmethod.latin.makedict.FusionDictionary.Node;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unit tests for BinaryDictInputOutput.
|
* Unit tests for BinaryDictInputOutput.
|
||||||
*/
|
*/
|
||||||
public class BinaryDictInputOutputTest extends TestCase {
|
public class BinaryDictInputOutputTest extends TestCase {
|
||||||
|
|
||||||
public void setUp() throws Exception {
|
|
||||||
super.setUp();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void tearDown() throws Exception {
|
|
||||||
super.tearDown();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test the flattened array contains the expected number of nodes, and
|
// Test the flattened array contains the expected number of nodes, and
|
||||||
// that it does not contain any duplicates.
|
// that it does not contain any duplicates.
|
||||||
public void testFlattenNodes() {
|
public void testFlattenNodes() {
|
||||||
|
@ -55,5 +46,4 @@ public class BinaryDictInputOutputTest extends TestCase {
|
||||||
assertFalse("Flattened array contained the same node twice", result.contains(n));
|
assertFalse("Flattened array contained the same node twice", result.contains(n));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,4 +13,4 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
java -classpath ${ANDROID_HOST_OUT}/framework/junit.jar:${ANDROID_HOST_OUT}/../common/obj/JAVA_LIBRARIES/dicttool_intermediates/classes junit.textui.TestRunner com.android.inputmethod.latin.makedict.BinaryDictInputOutputTest
|
java -classpath ${ANDROID_HOST_OUT}/framework/junit.jar:${ANDROID_HOST_OUT}/framework/dicttool_aosp.jar junit.textui.TestRunner com.android.inputmethod.latin.makedict.BinaryDictInputOutputTest
|
||||||
|
|
|
@ -19,6 +19,7 @@ package com.android.inputmethod.keyboard.internal;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
|
||||||
|
import com.android.inputmethod.annotations.VisibleForTesting;
|
||||||
import com.android.inputmethod.latin.CollectionUtils;
|
import com.android.inputmethod.latin.CollectionUtils;
|
||||||
import com.android.inputmethod.latin.R;
|
import com.android.inputmethod.latin.R;
|
||||||
|
|
||||||
|
@ -64,7 +65,7 @@ public final class KeyboardTextsSet {
|
||||||
loadStringResourcesInternal(context, RESOURCE_NAMES, R.string.english_ime_name);
|
loadStringResourcesInternal(context, RESOURCE_NAMES, R.string.english_ime_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* package for test */
|
@VisibleForTesting
|
||||||
void loadStringResourcesInternal(Context context, final String[] resourceNames,
|
void loadStringResourcesInternal(Context context, final String[] resourceNames,
|
||||||
int referenceId) {
|
int referenceId) {
|
||||||
final Resources res = context.getResources();
|
final Resources res = context.getResources();
|
||||||
|
|
Loading…
Reference in New Issue