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

Commit 32727669 authored by Felix Stern's avatar Felix Stern Committed by Automerger Merge Worker
Browse files

Merge "Removed lock of showInputMethodMenu when showing the dialog" into...

Merge "Removed lock of showInputMethodMenu when showing the dialog" into udc-dev am: ab9ca8fe am: c136aa4f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22422744



Change-Id: I689956e201e1bcf3cd60708fbdf1359bb634c775
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 21cb0d46 c136aa4f
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.server.inputmethod;
import static com.android.server.inputmethod.InputMethodManagerService.DEBUG;
import static com.android.server.inputmethod.InputMethodUtils.NOT_A_SUBTYPE_ID;

import android.annotation.Nullable;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
@@ -66,8 +65,8 @@ final class InputMethodMenuController {
    private boolean mShowImeWithHardKeyboard;

    @GuardedBy("ImfLock.class")
    @Nullable
    private InputMethodDialogWindowContext mDialogWindowContext;
    private final InputMethodDialogWindowContext mDialogWindowContext =
            new InputMethodDialogWindowContext();

    InputMethodMenuController(InputMethodManagerService service) {
        mService = service;
@@ -125,13 +124,11 @@ final class InputMethodMenuController {
                }
            }

            if (mDialogWindowContext == null) {
                mDialogWindowContext = new InputMethodDialogWindowContext();
            }
            final Context dialogWindowContext = mDialogWindowContext.get(displayId);
            mDialogBuilder = new AlertDialog.Builder(dialogWindowContext);
            mDialogBuilder.setOnCancelListener(dialog -> hideInputMethodMenu());

            // TODO(b/277061090): refactor UI components should not be created while holding a lock.
            final Context dialogContext = mDialogBuilder.getContext();
            final TypedArray a = dialogContext.obtainStyledAttributes(null,
                    com.android.internal.R.styleable.DialogPreference,
@@ -199,10 +196,11 @@ final class InputMethodMenuController {
            attrs.privateFlags |= WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_USERS;
            attrs.setTitle("Select input method");
            w.setAttributes(attrs);
            // TODO(b/277062834) decouple/remove dependency on IMMS
            mService.updateSystemUiLocked();
            mService.sendOnNavButtonFlagsChangedLocked();
            mSwitchingDialog.show();
        }
        mSwitchingDialog.show();
    }

    private boolean isScreenLocked() {
@@ -276,6 +274,7 @@ final class InputMethodMenuController {
        private final int mTextViewResourceId;
        private final List<ImeSubtypeListItem> mItemsList;
        public int mCheckedItem;

        private ImeSubtypeListAdapter(Context context, int textViewResourceId,
                List<ImeSubtypeListItem> itemsList, int checkedItem) {
            super(context, textViewResourceId, itemsList);