summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodManagerService.java10
-rw-r--r--services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java10
-rw-r--r--services/core/java/com/android/server/inputmethod/UserDataRepository.java12
-rw-r--r--services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java1
-rw-r--r--services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/UserDataRepositoryTest.java16
5 files changed, 15 insertions, 34 deletions
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index 5285dca83eaf..2d7761026239 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -1282,7 +1282,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
@SuppressWarnings("GuardedBy") final IntFunction<InputMethodBindingController>
bindingControllerFactory = userId -> new InputMethodBindingController(userId,
InputMethodManagerService.this);
- mUserDataRepository = new UserDataRepository(mContext, mHandler, mUserManagerInternal,
+ mUserDataRepository = new UserDataRepository(mHandler, mUserManagerInternal,
bindingControllerForTesting != null ? bindingControllerForTesting
: bindingControllerFactory);
for (int id : mUserManagerInternal.getUserIds()) {
@@ -1291,7 +1291,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
final InputMethodSettings settings = InputMethodSettingsRepository.get(mCurrentUserId);
final var userData = getUserData(mCurrentUserId);
- userData.mSwitchingController.resetCircularListLocked(settings);
+ userData.mSwitchingController.resetCircularListLocked(mContext, settings);
userData.mHardwareKeyboardShortcutController.update(settings);
mMenuController = new InputMethodMenuController(this);
@@ -2958,7 +2958,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
}
final var userData = getUserData(userId);
- userData.mSwitchingController.resetCircularListLocked(settings);
+ userData.mSwitchingController.resetCircularListLocked(mContext, settings);
userData.mHardwareKeyboardShortcutController.update(settings);
}
@@ -3036,7 +3036,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
}
final var userData = getUserData(userId);
- userData.mSwitchingController.resetCircularListLocked(settings);
+ userData.mSwitchingController.resetCircularListLocked(mContext, settings);
userData.mHardwareKeyboardShortcutController.update(settings);
sendOnNavButtonFlagsChangedLocked();
}
@@ -5301,7 +5301,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
updateDefaultVoiceImeIfNeededLocked();
final var userData = getUserData(userId);
- userData.mSwitchingController.resetCircularListLocked(settings);
+ userData.mSwitchingController.resetCircularListLocked(mContext, settings);
userData.mHardwareKeyboardShortcutController.update(settings);
sendOnNavButtonFlagsChangedLocked();
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java b/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java
index 0203ab05535c..bb1b9df6cf4c 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java
@@ -477,12 +477,9 @@ final class InputMethodSubtypeSwitchingController {
}
@NonNull
- private final Context mContext;
- @NonNull
private ControllerImpl mController;
- InputMethodSubtypeSwitchingController(@NonNull Context context) {
- mContext = context;
+ InputMethodSubtypeSwitchingController() {
mController = ControllerImpl.createFrom(null, Collections.emptyList());
}
@@ -491,11 +488,12 @@ final class InputMethodSubtypeSwitchingController {
mController.onUserActionLocked(imi, subtype);
}
- public void resetCircularListLocked(@NonNull InputMethodSettings settings) {
+ public void resetCircularListLocked(@NonNull Context context,
+ @NonNull InputMethodSettings settings) {
mController = ControllerImpl.createFrom(mController,
getSortedInputMethodAndSubtypeList(
false /* includeAuxiliarySubtypes */, false /* isScreenLocked */,
- false /* forImeMenu */, mContext, settings));
+ false /* forImeMenu */, context, settings));
}
@Nullable
diff --git a/services/core/java/com/android/server/inputmethod/UserDataRepository.java b/services/core/java/com/android/server/inputmethod/UserDataRepository.java
index 423226af3cb4..3da4a14b10be 100644
--- a/services/core/java/com/android/server/inputmethod/UserDataRepository.java
+++ b/services/core/java/com/android/server/inputmethod/UserDataRepository.java
@@ -18,7 +18,6 @@ package com.android.server.inputmethod;
import android.annotation.NonNull;
import android.annotation.UserIdInt;
-import android.content.Context;
import android.content.pm.UserInfo;
import android.os.Handler;
import android.util.SparseArray;
@@ -36,15 +35,12 @@ final class UserDataRepository {
private final IntFunction<InputMethodBindingController> mBindingControllerFactory;
- @NonNull
- private final Context mContext;
-
@GuardedBy("ImfLock.class")
@NonNull
UserData getOrCreate(@UserIdInt int userId) {
UserData userData = mUserData.get(userId);
if (userData == null) {
- userData = new UserData(userId, mBindingControllerFactory.apply(userId), mContext);
+ userData = new UserData(userId, mBindingControllerFactory.apply(userId));
mUserData.put(userId, userData);
}
return userData;
@@ -58,10 +54,8 @@ final class UserDataRepository {
}
UserDataRepository(
- @NonNull Context context,
@NonNull Handler handler, @NonNull UserManagerInternal userManagerInternal,
@NonNull IntFunction<InputMethodBindingController> bindingControllerFactory) {
- mContext = context;
mBindingControllerFactory = bindingControllerFactory;
userManagerInternal.addUserLifecycleListener(
new UserManagerInternal.UserLifecycleListener() {
@@ -105,10 +99,10 @@ final class UserDataRepository {
* Intended to be instantiated only from this file.
*/
private UserData(@UserIdInt int userId,
- @NonNull InputMethodBindingController bindingController, @NonNull Context context) {
+ @NonNull InputMethodBindingController bindingController) {
mUserId = userId;
mBindingController = bindingController;
- mSwitchingController = new InputMethodSubtypeSwitchingController(context);
+ mSwitchingController = new InputMethodSubtypeSwitchingController();
mHardwareKeyboardShortcutController = new HardwareKeyboardShortcutController();
}
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java
index 2dfb30312cca..42bd75a7a67e 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/InputMethodManagerServiceTestBase.java
@@ -181,7 +181,6 @@ public class InputMethodManagerServiceTestBase {
// InputMethodManagerService.
doNothing().when(mContext).enforceCallingPermission(anyString(), anyString());
doNothing().when(mContext).sendBroadcastAsUser(any(), any());
- doReturn(mContext).when(mContext).createContextAsUser(any(), anyInt());
doReturn(null).when(mContext).registerReceiver(any(), any());
doReturn(null)
.when(mContext)
diff --git a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/UserDataRepositoryTest.java b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/UserDataRepositoryTest.java
index 7592d3417fe2..f9f45057f57f 100644
--- a/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/UserDataRepositoryTest.java
+++ b/services/tests/InputMethodSystemServerTests/src/com/android/server/inputmethod/UserDataRepositoryTest.java
@@ -18,22 +18,16 @@ package com.android.server.inputmethod;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import android.content.Context;
import android.content.pm.UserInfo;
import android.os.ConditionVariable;
import android.os.Handler;
import android.os.Looper;
import android.platform.test.ravenwood.RavenwoodRule;
-import androidx.test.platform.app.InstrumentationRegistry;
-
import com.android.server.pm.UserManagerInternal;
import org.junit.After;
@@ -67,14 +61,10 @@ public final class UserDataRepositoryTest {
private IntFunction<InputMethodBindingController> mBindingControllerFactory;
- private Context mMockedContext;
-
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
SecureSettingsWrapper.startTestMode();
- mMockedContext = spy(InstrumentationRegistry.getInstrumentation().getTargetContext());
- doReturn(mMockedContext).when(mMockedContext).createContextAsUser(any(), anyInt());
mHandler = new Handler(Looper.getMainLooper());
mBindingControllerFactory = new IntFunction<InputMethodBindingController>() {
@@ -96,7 +86,7 @@ public final class UserDataRepositoryTest {
// Create UserDataRepository and capture the user lifecycle listener
final var captor = ArgumentCaptor.forClass(UserManagerInternal.UserLifecycleListener.class);
final var bindingControllerFactorySpy = spy(mBindingControllerFactory);
- final var repository = new UserDataRepository(mMockedContext, mHandler,
+ final var repository = new UserDataRepository(mHandler,
mMockUserManagerInternal, bindingControllerFactorySpy);
verify(mMockUserManagerInternal, times(1)).addUserLifecycleListener(captor.capture());
@@ -123,7 +113,7 @@ public final class UserDataRepositoryTest {
public void testUserDataRepository_removesUserInfoOnUserRemovedEvent() {
// Create UserDataRepository and capture the user lifecycle listener
final var captor = ArgumentCaptor.forClass(UserManagerInternal.UserLifecycleListener.class);
- final var repository = new UserDataRepository(mMockedContext, mHandler,
+ final var repository = new UserDataRepository(mHandler,
mMockUserManagerInternal,
userId -> new InputMethodBindingController(userId, mMockInputMethodManagerService));
@@ -146,7 +136,7 @@ public final class UserDataRepositoryTest {
@Test
public void testGetOrCreate() {
- final var repository = new UserDataRepository(mMockedContext, mHandler,
+ final var repository = new UserDataRepository(mHandler,
mMockUserManagerInternal, mBindingControllerFactory);
synchronized (ImfLock.class) {