From f1338b12a9264a1b2594aeb2c7565c595f39b8a7 Mon Sep 17 00:00:00 2001 From: Charles Chen Date: Tue, 2 Jun 2020 14:58:47 +0800 Subject: [PATCH] Make InputMethodService be an UI context IMS handles configuration and display changes from the server side and render views to inteact with users. Thus IMS should be marked as an UI context fixes: 157027563 Test: atest ContextTest Change-Id: I0a2307c4764acf8b9fc0254a9ee2fc8a344bb7ef --- .../inputmethodservice/AbstractInputMethodService.java | 6 ++++++ .../tests/coretests/src/android/content/ContextTest.java | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/core/java/android/inputmethodservice/AbstractInputMethodService.java b/core/java/android/inputmethodservice/AbstractInputMethodService.java index b0fca006d1e24..d7ca63a549879 100644 --- a/core/java/android/inputmethodservice/AbstractInputMethodService.java +++ b/core/java/android/inputmethodservice/AbstractInputMethodService.java @@ -260,4 +260,10 @@ public abstract class AbstractInputMethodService extends Service */ public void notifyUserActionIfNecessary() { } + + /** @hide */ + @Override + public final boolean isUiContext() { + return true; + } } diff --git a/core/tests/coretests/src/android/content/ContextTest.java b/core/tests/coretests/src/android/content/ContextTest.java index f13a11e9edfba..17d1389a66026 100644 --- a/core/tests/coretests/src/android/content/ContextTest.java +++ b/core/tests/coretests/src/android/content/ContextTest.java @@ -23,12 +23,14 @@ import static android.view.Display.DEFAULT_DISPLAY; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import android.app.ActivityThread; import android.content.res.Configuration; import android.graphics.PixelFormat; import android.hardware.display.DisplayManager; import android.hardware.display.VirtualDisplay; +import android.inputmethodservice.InputMethodService; import android.media.ImageReader; import android.os.UserHandle; import android.view.Display; @@ -135,6 +137,13 @@ public class ContextTest { assertThat(systemUiContext.isUiContext()).isTrue(); } + @Test + public void testIsUiContext_InputMethodService_returnsTrue() { + final InputMethodService ims = new InputMethodService(); + + assertTrue(ims.isUiContext()); + } + @Test public void testGetDisplayFromDisplayContextDerivedContextOnPrimaryDisplay() { verifyGetDisplayFromDisplayContextDerivedContext(false /* onSecondaryDisplay */);