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

Commit 2413c248 authored by LuK1337's avatar LuK1337
Browse files

SystemUI: Fix multiple issues with hiding unprovisioned SIMs

* Use View.GONE instead of View.INVISIBLE when setting
  dot and mobile group's visibility so that we don't
  leave empty space.
* Always fallback to STATE_HIDDEN when SIM is unprovisioned
  so that we don't end up showing unnecessary empty icon
  after toggling airplane mode twice with mobile data off.
* Make sure to call IconController.setMobileIcons() after
  provisioning changes so that signal icon is always hidden.

Change-Id: I546a326eb52b0496f5fbd9057d368b1a90827d58
parent 4d12c537
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -250,17 +250,21 @@ public class StatusBarMobileView extends FrameLayout implements DarkReceiver,
        mVisibleState = state;
        switch (state) {
            case STATE_ICON:
                if (mState == null || (mState.visible && mState.provisioned)) {
                    mMobileGroup.setVisibility(View.VISIBLE);
                    mDotView.setVisibility(View.GONE);
                    break;
                }
            case STATE_DOT:
                if (mState == null || (mState.visible && mState.provisioned)) {
                    mMobileGroup.setVisibility(View.INVISIBLE);
                    mDotView.setVisibility(View.VISIBLE);
                    break;
                }
            case STATE_HIDDEN:
            default:
                mMobileGroup.setVisibility(View.INVISIBLE);
                mDotView.setVisibility(View.INVISIBLE);
                mMobileGroup.setVisibility(View.GONE);
                mDotView.setVisibility(View.GONE);
                break;
        }
    }
+3 −0
Original line number Diff line number Diff line
@@ -113,6 +113,9 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba
                    // after disabling one of the SIMs.
                    state.typeId = 0;
                }
                // Make sure that applyMobileState() gets called
                mIconController.setMobileIcons(
                        mSlotMobile, MobileIconState.copyStates(mMobileStates));
            }
        }
    }