Loading core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java +4 −40 Original line number Original line Diff line number Diff line Loading @@ -16,9 +16,6 @@ package com.android.internal.inputmethod; package com.android.internal.inputmethod; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.inputmethod.InputMethodUtils.InputMethodSettings; import android.content.Context; import android.content.Context; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.text.TextUtils; import android.text.TextUtils; Loading @@ -26,7 +23,9 @@ import android.util.Slog; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodSubtype; import android.view.inputmethod.InputMethodSubtype; import java.util.ArrayDeque; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.inputmethod.InputMethodUtils.InputMethodSettings; import java.util.ArrayList; import java.util.ArrayList; import java.util.Collections; import java.util.Collections; import java.util.Comparator; import java.util.Comparator; Loading @@ -42,24 +41,8 @@ import java.util.TreeMap; public class InputMethodSubtypeSwitchingController { public class InputMethodSubtypeSwitchingController { private static final String TAG = InputMethodSubtypeSwitchingController.class.getSimpleName(); private static final String TAG = InputMethodSubtypeSwitchingController.class.getSimpleName(); private static final boolean DEBUG = false; private static final boolean DEBUG = false; // TODO: Turn on this flag and add CTS when the platform starts expecting that all IMEs return // true for supportsSwitchingToNextInputMethod(). private static final boolean REQUIRE_SWITCHING_SUPPORT = false; private static final int MAX_HISTORY_SIZE = 4; private static final int NOT_A_SUBTYPE_ID = InputMethodUtils.NOT_A_SUBTYPE_ID; private static final int NOT_A_SUBTYPE_ID = InputMethodUtils.NOT_A_SUBTYPE_ID; private static class SubtypeParams { public final InputMethodInfo mImi; public final InputMethodSubtype mSubtype; public final long mTime; public SubtypeParams(InputMethodInfo imi, InputMethodSubtype subtype) { mImi = imi; mSubtype = subtype; mTime = System.currentTimeMillis(); } } public static class ImeSubtypeListItem implements Comparable<ImeSubtypeListItem> { public static class ImeSubtypeListItem implements Comparable<ImeSubtypeListItem> { public final CharSequence mImeName; public final CharSequence mImeName; public final CharSequence mSubtypeName; public final CharSequence mSubtypeName; Loading Loading @@ -213,7 +196,6 @@ public class InputMethodSubtypeSwitchingController { } } } } private final ArrayDeque<SubtypeParams> mTypedSubtypeHistory = new ArrayDeque<SubtypeParams>(); private final Object mLock = new Object(); private final Object mLock = new Object(); private final InputMethodSettings mSettings; private final InputMethodSettings mSettings; private InputMethodAndSubtypeList mSubtypeList; private InputMethodAndSubtypeList mSubtypeList; Loading Loading @@ -269,25 +251,7 @@ public class InputMethodSubtypeSwitchingController { // TODO: write unit tests for this method and the logic that determines the next subtype // TODO: write unit tests for this method and the logic that determines the next subtype public void onCommitText(InputMethodInfo imi, InputMethodSubtype subtype) { public void onCommitText(InputMethodInfo imi, InputMethodSubtype subtype) { synchronized (mTypedSubtypeHistory) { // TODO: Implement this. if (subtype == null) { Slog.w(TAG, "Invalid InputMethodSubtype: " + imi.getId() + ", " + subtype); return; } if (DEBUG) { Slog.d(TAG, "onCommitText: " + imi.getId() + ", " + subtype); } if (REQUIRE_SWITCHING_SUPPORT) { if (!imi.supportsSwitchingToNextInputMethod()) { Slog.w(TAG, imi.getId() + " doesn't support switching to next input method."); return; } } if (mTypedSubtypeHistory.size() >= MAX_HISTORY_SIZE) { mTypedSubtypeHistory.poll(); } mTypedSubtypeHistory.addFirst(new SubtypeParams(imi, subtype)); } } } public void resetCircularListLocked(Context context) { public void resetCircularListLocked(Context context) { Loading core/tests/inputmethodtests/src/android/os/InputMethodSubtypeSwitchingControllerTest.java +6 −6 Original line number Original line Diff line number Diff line Loading @@ -33,12 +33,12 @@ import java.util.Arrays; import java.util.List; import java.util.List; public class InputMethodSubtypeSwitchingControllerTest extends InstrumentationTestCase { public class InputMethodSubtypeSwitchingControllerTest extends InstrumentationTestCase { final private static String DUMMY_PACKAGE_NAME = "dymmy package name"; private static final String DUMMY_PACKAGE_NAME = "dymmy package name"; final private static String DUMMY_SETTING_ACTIVITY_NAME = ""; private static final String DUMMY_SETTING_ACTIVITY_NAME = ""; final private static boolean DUMMY_IS_AUX_IME = false; private static final boolean DUMMY_IS_AUX_IME = false; final private static boolean DUMMY_FORCE_DEFAULT = false; private static final boolean DUMMY_FORCE_DEFAULT = false; final private static int DUMMY_IS_DEFAULT_RES_ID = 0; private static final int DUMMY_IS_DEFAULT_RES_ID = 0; final private static String SYSTEM_LOCALE = "en_US"; private static final String SYSTEM_LOCALE = "en_US"; private static InputMethodSubtype createDummySubtype(final String locale) { private static InputMethodSubtype createDummySubtype(final String locale) { final InputMethodSubtypeBuilder builder = new InputMethodSubtypeBuilder(); final InputMethodSubtypeBuilder builder = new InputMethodSubtypeBuilder(); Loading Loading
core/java/com/android/internal/inputmethod/InputMethodSubtypeSwitchingController.java +4 −40 Original line number Original line Diff line number Diff line Loading @@ -16,9 +16,6 @@ package com.android.internal.inputmethod; package com.android.internal.inputmethod; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.inputmethod.InputMethodUtils.InputMethodSettings; import android.content.Context; import android.content.Context; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.text.TextUtils; import android.text.TextUtils; Loading @@ -26,7 +23,9 @@ import android.util.Slog; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodSubtype; import android.view.inputmethod.InputMethodSubtype; import java.util.ArrayDeque; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.inputmethod.InputMethodUtils.InputMethodSettings; import java.util.ArrayList; import java.util.ArrayList; import java.util.Collections; import java.util.Collections; import java.util.Comparator; import java.util.Comparator; Loading @@ -42,24 +41,8 @@ import java.util.TreeMap; public class InputMethodSubtypeSwitchingController { public class InputMethodSubtypeSwitchingController { private static final String TAG = InputMethodSubtypeSwitchingController.class.getSimpleName(); private static final String TAG = InputMethodSubtypeSwitchingController.class.getSimpleName(); private static final boolean DEBUG = false; private static final boolean DEBUG = false; // TODO: Turn on this flag and add CTS when the platform starts expecting that all IMEs return // true for supportsSwitchingToNextInputMethod(). private static final boolean REQUIRE_SWITCHING_SUPPORT = false; private static final int MAX_HISTORY_SIZE = 4; private static final int NOT_A_SUBTYPE_ID = InputMethodUtils.NOT_A_SUBTYPE_ID; private static final int NOT_A_SUBTYPE_ID = InputMethodUtils.NOT_A_SUBTYPE_ID; private static class SubtypeParams { public final InputMethodInfo mImi; public final InputMethodSubtype mSubtype; public final long mTime; public SubtypeParams(InputMethodInfo imi, InputMethodSubtype subtype) { mImi = imi; mSubtype = subtype; mTime = System.currentTimeMillis(); } } public static class ImeSubtypeListItem implements Comparable<ImeSubtypeListItem> { public static class ImeSubtypeListItem implements Comparable<ImeSubtypeListItem> { public final CharSequence mImeName; public final CharSequence mImeName; public final CharSequence mSubtypeName; public final CharSequence mSubtypeName; Loading Loading @@ -213,7 +196,6 @@ public class InputMethodSubtypeSwitchingController { } } } } private final ArrayDeque<SubtypeParams> mTypedSubtypeHistory = new ArrayDeque<SubtypeParams>(); private final Object mLock = new Object(); private final Object mLock = new Object(); private final InputMethodSettings mSettings; private final InputMethodSettings mSettings; private InputMethodAndSubtypeList mSubtypeList; private InputMethodAndSubtypeList mSubtypeList; Loading Loading @@ -269,25 +251,7 @@ public class InputMethodSubtypeSwitchingController { // TODO: write unit tests for this method and the logic that determines the next subtype // TODO: write unit tests for this method and the logic that determines the next subtype public void onCommitText(InputMethodInfo imi, InputMethodSubtype subtype) { public void onCommitText(InputMethodInfo imi, InputMethodSubtype subtype) { synchronized (mTypedSubtypeHistory) { // TODO: Implement this. if (subtype == null) { Slog.w(TAG, "Invalid InputMethodSubtype: " + imi.getId() + ", " + subtype); return; } if (DEBUG) { Slog.d(TAG, "onCommitText: " + imi.getId() + ", " + subtype); } if (REQUIRE_SWITCHING_SUPPORT) { if (!imi.supportsSwitchingToNextInputMethod()) { Slog.w(TAG, imi.getId() + " doesn't support switching to next input method."); return; } } if (mTypedSubtypeHistory.size() >= MAX_HISTORY_SIZE) { mTypedSubtypeHistory.poll(); } mTypedSubtypeHistory.addFirst(new SubtypeParams(imi, subtype)); } } } public void resetCircularListLocked(Context context) { public void resetCircularListLocked(Context context) { Loading
core/tests/inputmethodtests/src/android/os/InputMethodSubtypeSwitchingControllerTest.java +6 −6 Original line number Original line Diff line number Diff line Loading @@ -33,12 +33,12 @@ import java.util.Arrays; import java.util.List; import java.util.List; public class InputMethodSubtypeSwitchingControllerTest extends InstrumentationTestCase { public class InputMethodSubtypeSwitchingControllerTest extends InstrumentationTestCase { final private static String DUMMY_PACKAGE_NAME = "dymmy package name"; private static final String DUMMY_PACKAGE_NAME = "dymmy package name"; final private static String DUMMY_SETTING_ACTIVITY_NAME = ""; private static final String DUMMY_SETTING_ACTIVITY_NAME = ""; final private static boolean DUMMY_IS_AUX_IME = false; private static final boolean DUMMY_IS_AUX_IME = false; final private static boolean DUMMY_FORCE_DEFAULT = false; private static final boolean DUMMY_FORCE_DEFAULT = false; final private static int DUMMY_IS_DEFAULT_RES_ID = 0; private static final int DUMMY_IS_DEFAULT_RES_ID = 0; final private static String SYSTEM_LOCALE = "en_US"; private static final String SYSTEM_LOCALE = "en_US"; private static InputMethodSubtype createDummySubtype(final String locale) { private static InputMethodSubtype createDummySubtype(final String locale) { final InputMethodSubtypeBuilder builder = new InputMethodSubtypeBuilder(); final InputMethodSubtypeBuilder builder = new InputMethodSubtypeBuilder(); Loading