Loading services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +14 −16 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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(); } } Loading Loading @@ -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"); Loading @@ -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( Loading Loading @@ -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 { Loading @@ -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); } } Loading Loading @@ -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) { Loading services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java +25 −0 Original line number Diff line number Diff line Loading @@ -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); /** Loading services/core/java/com/android/server/statusbar/StatusBarManagerService.java +19 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading
services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +14 −16 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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(); } } Loading Loading @@ -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"); Loading @@ -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( Loading Loading @@ -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 { Loading @@ -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); } } Loading Loading @@ -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) { Loading
services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java +25 −0 Original line number Diff line number Diff line Loading @@ -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); /** Loading
services/core/java/com/android/server/statusbar/StatusBarManagerService.java +19 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading