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

Commit 5f1f7852 authored by Cosmin Băieș's avatar Cosmin Băieș
Browse files

Check IME info nullability before switching

This moves the nullability check of the input method info outside of the
InputMethodSubtypeSwitchingController, to maintain consistency with
other methods.

Flag: EXEMPT refactor
Bug: 347693610
Test: presubmit
Change-Id: I4141d1c909b8d96fd6ee7bf72cd82a0f2e0ef6d0
parent 1a16f030
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -4233,6 +4233,9 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
            @NonNull UserData userData) {
            @NonNull UserData userData) {
        final var bindingController = userData.mBindingController;
        final var bindingController = userData.mBindingController;
        final var currentImi = bindingController.getSelectedMethod();
        final var currentImi = bindingController.getSelectedMethod();
        if (currentImi == null) {
            return false;
        }
        final ImeSubtypeListItem nextSubtype = userData.mSwitchingController
        final ImeSubtypeListItem nextSubtype = userData.mSwitchingController
                .getNextInputMethodLocked(onlyCurrentIme, currentImi,
                .getNextInputMethodLocked(onlyCurrentIme, currentImi,
                        bindingController.getCurrentSubtype(),
                        bindingController.getCurrentSubtype(),
@@ -4250,6 +4253,9 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
    private boolean shouldOfferSwitchingToNextInputMethodLocked(@NonNull UserData userData) {
    private boolean shouldOfferSwitchingToNextInputMethodLocked(@NonNull UserData userData) {
        final var bindingController = userData.mBindingController;
        final var bindingController = userData.mBindingController;
        final var currentImi = bindingController.getSelectedMethod();
        final var currentImi = bindingController.getSelectedMethod();
        if (currentImi == null) {
            return false;
        }
        final ImeSubtypeListItem nextSubtype = userData.mSwitchingController
        final ImeSubtypeListItem nextSubtype = userData.mSwitchingController
                .getNextInputMethodLocked(false /* onlyCurrentIme */, currentImi,
                .getNextInputMethodLocked(false /* onlyCurrentIme */, currentImi,
                        bindingController.getCurrentSubtype(),
                        bindingController.getCurrentSubtype(),
+1 −4
Original line number Original line Diff line number Diff line
@@ -686,11 +686,8 @@ final class InputMethodSubtypeSwitchingController {
     */
     */
    @Nullable
    @Nullable
    public ImeSubtypeListItem getNextInputMethodLocked(boolean onlyCurrentIme,
    public ImeSubtypeListItem getNextInputMethodLocked(boolean onlyCurrentIme,
            @Nullable InputMethodInfo imi, @Nullable InputMethodSubtype subtype,
            @NonNull InputMethodInfo imi, @Nullable InputMethodSubtype subtype,
            @SwitchMode int mode, boolean forward) {
            @SwitchMode int mode, boolean forward) {
        if (imi == null) {
            return null;
        }
        if (Flags.imeSwitcherRevamp()) {
        if (Flags.imeSwitcherRevamp()) {
            return mRotationList.next(imi, subtype, onlyCurrentIme,
            return mRotationList.next(imi, subtype, onlyCurrentIme,
                    isRecency(mode, forward), forward);
                    isRecency(mode, forward), forward);