Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 08195569 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "check display id update" into qt-dev

* changes:
  Unify context in ViewRoot
  Add test API getDisplayId for cts test
parents 3415499a 5299ad09
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3391,6 +3391,7 @@ package android.view.contentcapture {
package android.view.inputmethod {

  public final class InputMethodManager {
    method public int getDisplayId();
    method public boolean isInputMethodPickerShown();
  }

+1 −1
Original line number Diff line number Diff line
@@ -173,6 +173,6 @@ public final class ImeInsetsSourceConsumer extends InsetsSourceConsumer {
    }

    private InputMethodManager getImm() {
        return mController.getViewRoot().mDisplayContext.getSystemService(InputMethodManager.class);
        return mController.getViewRoot().mContext.getSystemService(InputMethodManager.class);
    }
}
+6 −14
Original line number Diff line number Diff line
@@ -283,13 +283,7 @@ public final class ViewRootImpl implements ViewParent,
    @GuardedBy("mWindowCallbacks")
    final ArrayList<WindowCallbacks> mWindowCallbacks = new ArrayList<>();
    @UnsupportedAppUsage
    final Context mContext;
    /**
     * TODO(b/116349163): Check if we can merge this into {@link #mContext}.
     * @hide
     */
    @NonNull
    public Context mDisplayContext;
    public final Context mContext;

    @UnsupportedAppUsage
    final IWindowSession mWindowSession;
@@ -595,7 +589,6 @@ public final class ViewRootImpl implements ViewParent,

    public ViewRootImpl(Context context, Display display) {
        mContext = context;
        mDisplayContext = context.createDisplayContext(display);
        mWindowSession = WindowManagerGlobal.getWindowSession();
        mDisplay = display;
        mBasePackageName = context.getBasePackageName();
@@ -1379,7 +1372,7 @@ public final class ViewRootImpl implements ViewParent,
        } else {
            mDisplay = preferredDisplay;
        }
        mDisplayContext = mContext.createDisplayContext(mDisplay);
        mContext.updateDisplay(mDisplay.getDisplayId());
    }

    void pokeDrawLockIfNeeded() {
@@ -2725,7 +2718,7 @@ public final class ViewRootImpl implements ViewParent,
                    .mayUseInputMethod(mWindowAttributes.flags);
            if (imTarget != mLastWasImTarget) {
                mLastWasImTarget = imTarget;
                InputMethodManager imm = mDisplayContext.getSystemService(InputMethodManager.class);
                InputMethodManager imm = mContext.getSystemService(InputMethodManager.class);
                if (imm != null && imTarget) {
                    imm.onPreWindowFocus(mView, hasWindowFocus);
                    imm.onPostWindowFocus(mView, mView.findFocus(),
@@ -2859,7 +2852,7 @@ public final class ViewRootImpl implements ViewParent,
            mLastWasImTarget = WindowManager.LayoutParams
                    .mayUseInputMethod(mWindowAttributes.flags);

            InputMethodManager imm = mDisplayContext.getSystemService(InputMethodManager.class);
            InputMethodManager imm = mContext.getSystemService(InputMethodManager.class);
            if (imm != null && mLastWasImTarget && !isInLocalFocusMode()) {
                imm.onPreWindowFocus(mView, hasWindowFocus);
            }
@@ -4564,8 +4557,7 @@ public final class ViewRootImpl implements ViewParent,
                    enqueueInputEvent(event, null, 0, true);
                } break;
                case MSG_CHECK_FOCUS: {
                    InputMethodManager imm =
                            mDisplayContext.getSystemService(InputMethodManager.class);
                    InputMethodManager imm = mContext.getSystemService(InputMethodManager.class);
                    if (imm != null) {
                        imm.checkFocus();
                    }
@@ -5110,7 +5102,7 @@ public final class ViewRootImpl implements ViewParent,
        @Override
        protected int onProcess(QueuedInputEvent q) {
            if (mLastWasImTarget && !isInLocalFocusMode()) {
                InputMethodManager imm = mDisplayContext.getSystemService(InputMethodManager.class);
                InputMethodManager imm = mContext.getSystemService(InputMethodManager.class);
                if (imm != null) {
                    final InputEvent event = q.mEvent;
                    if (DEBUG_IMF) Log.v(mTag, "Sending input event to IME: " + event);
+11 −1
Original line number Diff line number Diff line
@@ -510,7 +510,7 @@ public final class InputMethodManager {
            return null;
        }
        final InputMethodManager fallbackImm =
                viewRootImpl.mDisplayContext.getSystemService(InputMethodManager.class);
                viewRootImpl.mContext.getSystemService(InputMethodManager.class);
        if (fallbackImm == null) {
            Log.e(TAG, "b/117267690: Failed to get non-null fallback IMM. view=" + view);
            return null;
@@ -2887,6 +2887,16 @@ public final class InputMethodManager {
        }
    }

    /**
     * <p>This is used for CTS test only. Do not use this method outside of CTS package.<p/>
     * @return the ID of this display which this {@link InputMethodManager} resides
     * @hide
     */
    @TestApi
    public int getDisplayId() {
        return mDisplayId;
    }

    void doDump(FileDescriptor fd, PrintWriter fout, String[] args) {
        final Printer p = new PrintWriterPrinter(fout);
        p.println("Input method client state for " + this + ":");