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

Commit b2f6699e authored by Yohei Yukawa's avatar Yohei Yukawa Committed by Android (Google) Code Review
Browse files

Merge "Remove the dependency on StatusBarManagerService from IMMS"

parents fc3f2707 c98d2f3e
Loading
Loading
Loading
Loading
+14 −16
Original line number Diff line number Diff line
@@ -105,7 +105,6 @@ import android.os.Parcel;
import android.os.Process;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.ServiceManager;
import android.os.ShellCallback;
import android.os.ShellCommand;
import android.os.SystemClock;
@@ -190,7 +189,7 @@ import com.android.server.inputmethod.InputMethodManagerInternal.InputMethodList
import com.android.server.inputmethod.InputMethodSubtypeSwitchingController.ImeSubtypeListItem;
import com.android.server.inputmethod.InputMethodUtils.InputMethodSettings;
import com.android.server.pm.UserManagerInternal;
import com.android.server.statusbar.StatusBarManagerService;
import com.android.server.statusbar.StatusBarManagerInternal;
import com.android.server.utils.PriorityDump;
import com.android.server.wm.WindowManagerInternal;

@@ -339,7 +338,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
    // Ongoing notification
    private NotificationManager mNotificationManager;
    KeyguardManager mKeyguardManager;
    private @Nullable StatusBarManagerService mStatusBar;
    @Nullable private StatusBarManagerInternal mStatusBarManagerInternal;
    private final Notification.Builder mImeSwitcherNotification;
    private final PendingIntent mImeSwitchPendingIntent;
    private boolean mShowOngoingImeSwitcherForPhones;
@@ -1650,9 +1649,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
            // Called on ActivityManager thread.
            // TODO: Dispatch this to a worker thread as needed.
            if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) {
                StatusBarManagerService statusBarService = (StatusBarManagerService) ServiceManager
                        .getService(Context.STATUS_BAR_SERVICE);
                mService.systemRunning(statusBarService);
                mService.systemRunning();
            }
        }

@@ -1933,7 +1930,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
    /**
     * TODO(b/32343335): The entire systemRunning() method needs to be revisited.
     */
    public void systemRunning(StatusBarManagerService statusBar) {
    public void systemRunning() {
        synchronized (ImfLock.class) {
            if (DEBUG) {
                Slog.d(TAG, "--- systemReady");
@@ -1946,7 +1943,8 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
                        !mUserManagerInternal.isUserUnlockingOrUnlocked(currentUserId));
                mKeyguardManager = mContext.getSystemService(KeyguardManager.class);
                mNotificationManager = mContext.getSystemService(NotificationManager.class);
                mStatusBar = statusBar;
                mStatusBarManagerInternal =
                        LocalServices.getService(StatusBarManagerInternal.class);
                hideStatusBarIconLocked();
                updateSystemUiLocked(mImeWindowVis, mBackDisposition);
                mShowOngoingImeSwitcherForPhones = mRes.getBoolean(
@@ -2965,11 +2963,11 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
                    final CharSequence contentDescription = applicationInfo != null
                            ? userAwarePackageManager.getApplicationLabel(applicationInfo)
                            : null;
                    if (mStatusBar != null) {
                        mStatusBar.setIcon(mSlotIme, packageName, iconId, 0,
                    if (mStatusBarManagerInternal != null) {
                        mStatusBarManagerInternal.setIcon(mSlotIme, packageName, iconId, 0,
                                contentDescription  != null
                                        ? contentDescription.toString() : null);
                        mStatusBar.setIconVisibility(mSlotIme, true);
                        mStatusBarManagerInternal.setIconVisibility(mSlotIme, true);
                    }
                }
            } finally {
@@ -2980,8 +2978,8 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub

    @GuardedBy("ImfLock.class")
    private void hideStatusBarIconLocked() {
        if (mStatusBar != null) {
            mStatusBar.setIconVisibility(mSlotIme, false);
        if (mStatusBarManagerInternal != null) {
            mStatusBarManagerInternal.setIconVisibility(mSlotIme, false);
        }
    }

@@ -3160,9 +3158,9 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
            }
            // mImeWindowVis should be updated before calling shouldShowImeSwitcherLocked().
            final boolean needsToShowImeSwitcher = shouldShowImeSwitcherLocked(vis);
            if (mStatusBar != null) {
                mStatusBar.setImeWindowStatus(mCurTokenDisplayId, getCurTokenLocked(), vis,
                        backDisposition, needsToShowImeSwitcher);
            if (mStatusBarManagerInternal != null) {
                mStatusBarManagerInternal.setImeWindowStatus(mCurTokenDisplayId,
                        getCurTokenLocked(), vis, backDisposition, needsToShowImeSwitcher);
            }
            final InputMethodInfo imi = mMethodMap.get(getSelectedMethodIdLocked());
            if (imi != null && needsToShowImeSwitcher) {
+25 −0
Original line number Diff line number Diff line
@@ -49,6 +49,31 @@ public interface StatusBarManagerInternal {
    void dismissKeyboardShortcutsMenu();
    void toggleKeyboardShortcutsMenu(int deviceId);

    /**
     * Used by InputMethodManagerService to notify the IME status.
     *
     * @param displayId The display to which the IME is bound to.
     * @param token The IME token.
     * @param vis Bit flags about the IME visibility.
     *            (e.g. {@link android.inputmethodservice.InputMethodService#IME_ACTIVE})
     * @param backDisposition Bit flags about the IME back disposition.
     *         (e.g. {@link android.inputmethodservice.InputMethodService#BACK_DISPOSITION_DEFAULT})
     * @param showImeSwitcher {@code true} when the IME switcher button should be shown.
     */
    void setImeWindowStatus(int displayId, IBinder token, int vis,
            int backDisposition, boolean showImeSwitcher);

    /**
     * See {@link android.app.StatusBarManager#setIcon(String, int, int, String)}.
     */
    void setIcon(String slot, String iconPackage, int iconId, int iconLevel,
            String contentDescription);

    /**
     * See {@link android.app.StatusBarManager#setIconVisibility(String, boolean)}.
     */
    void setIconVisibility(String slot, boolean visibility);

    void showChargingAnimation(int batteryLevel);

    /**
+19 −0
Original line number Diff line number Diff line
@@ -483,6 +483,25 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
            }
        }

        @Override
        public void setImeWindowStatus(int displayId, IBinder token, int vis, int backDisposition,
                boolean showImeSwitcher) {
            StatusBarManagerService.this.setImeWindowStatus(displayId, token, vis, backDisposition,
                    showImeSwitcher);
        }

        @Override
        public void setIcon(String slot, String iconPackage, int iconId, int iconLevel,
                String contentDescription) {
            StatusBarManagerService.this.setIcon(slot, iconPackage, iconId, iconLevel,
                    contentDescription);
        }

        @Override
        public void setIconVisibility(String slot, boolean visibility) {
            StatusBarManagerService.this.setIconVisibility(slot, visibility);
        }

        @Override
        public void showChargingAnimation(int batteryLevel) {
            if (mBar != null) {