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

Commit c9cc35c9 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by android-build-merger
Browse files

Merge "Fix "No Service" in QS when Airplane Mode" into qt-dev

am: e55986b8

Change-Id: Ifbfe0e38dedfb2c2a0cb2c20e8eef1b282fda530
parents 4c96a642 e55986b8
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -311,20 +311,23 @@ public class CarrierTextController {

        displayText = updateCarrierTextWithSimIoError(displayText, carrierNames, subOrderBySlot,
                allSimsMissing);
        boolean airplaneMode = false;
        // APM (airplane mode) != no carrier state. There are carrier services
        // (e.g. WFC = Wi-Fi calling) which may operate in APM.
        if (!anySimReadyAndInService && WirelessUtils.isAirplaneModeOn(mContext)) {
            displayText = getAirplaneModeMessage();
            airplaneMode = true;
        }

        if (TextUtils.isEmpty(displayText)) {
        if (TextUtils.isEmpty(displayText) && !airplaneMode) {
            displayText = TextUtils.join(mSeparator, carrierNames);
        }
        final CarrierTextCallbackInfo info = new CarrierTextCallbackInfo(
                displayText,
                carrierNames,
                !allSimsMissing,
                subsIds);
                subsIds,
                airplaneMode);
        postToCallback(info);
    }

@@ -525,14 +528,22 @@ public class CarrierTextController {
        public final CharSequence[] listOfCarriers;
        public final boolean anySimReady;
        public final int[] subscriptionIds;
        public boolean airplaneMode;

        @VisibleForTesting
        public CarrierTextCallbackInfo(CharSequence carrierText, CharSequence[] listOfCarriers,
                boolean anySimReady, int[] subscriptionIds) {
            this(carrierText, listOfCarriers, anySimReady, subscriptionIds, false);
        }

        @VisibleForTesting
        public CarrierTextCallbackInfo(CharSequence carrierText, CharSequence[] listOfCarriers,
                boolean anySimReady, int[] subscriptionIds, boolean airplaneMode) {
            this.carrierText = carrierText;
            this.listOfCarriers = listOfCarriers;
            this.anySimReady = anySimReady;
            this.subscriptionIds = subscriptionIds;
            this.airplaneMode = airplaneMode;
        }
    }

+39 −33
Original line number Diff line number Diff line
@@ -139,6 +139,10 @@ public class QSCarrierGroup extends LinearLayout implements

    @Override
    public void updateCarrierInfo(CarrierTextController.CarrierTextCallbackInfo info) {
        if (info.airplaneMode) {
            setVisibility(View.GONE);
        } else {
            setVisibility(View.VISIBLE);
            if (info.anySimReady) {
                boolean[] slotSeen = new boolean[SIM_SLOTS];
                if (info.listOfCarriers.length == info.subscriptionIds.length) {
@@ -156,7 +160,8 @@ public class QSCarrierGroup extends LinearLayout implements
                        }
                        mInfos[slot].visible = true;
                        slotSeen[slot] = true;
                    mCarrierGroups[slot].setCarrierText(info.listOfCarriers[i].toString().trim());
                        mCarrierGroups[slot].setCarrierText(
                                info.listOfCarriers[i].toString().trim());
                        mCarrierGroups[slot].setVisibility(View.VISIBLE);
                    }
                    for (int i = 0; i < SIM_SLOTS; i++) {
@@ -178,6 +183,7 @@ public class QSCarrierGroup extends LinearLayout implements
                    mCarrierGroups[i].setVisibility(View.GONE);
                }
            }
        }
        handleUpdateState();
    }