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

Commit acd4cd90 authored by Pawit Pornkitprasan's avatar Pawit Pornkitprasan Committed by dhacker29
Browse files

MSimNetworkController: fix Quick Settings

Proper values are sent based on the SIM set as the data SIM

Change-Id: I2e70e52af54261d54b9527157ae69ae26bec97f1
parent 8f566390
Loading
Loading
Loading
Loading
+47 −3
Original line number Diff line number Diff line
@@ -533,11 +533,13 @@ public class MSimNetworkController extends NetworkController {
    }

    private final void updateTelephonySignalStrength(int subscription) {
        int dataSub = MSimTelephonyManager.getDefault().getPreferredDataSubscription();
        Slog.d(TAG, "updateTelephonySignalStrength: subscription =" + subscription);
        if (!hasService(subscription) &&
                (mMSimDataServiceState[subscription] != ServiceState.STATE_IN_SERVICE)) {
            if (DEBUG) Slog.d(TAG, " No service");
            mMSimPhoneSignalIconId[subscription] = R.drawable.stat_sys_signal_null;
            if (subscription == dataSub) mQSPhoneSignalIconId = R.drawable.ic_qs_signal_no_signal;
            mMSimDataSignalIconId[subscription] = R.drawable.stat_sys_signal_null;
        } else {
            if (mMSimSignalStrength[subscription] == null || (mMSimServiceState == null)) {
@@ -547,6 +549,8 @@ public class MSimNetworkController extends NetworkController {
                            + " mMSimServiceState " + mMSimServiceState[subscription]);
                }
                mMSimPhoneSignalIconId[subscription] = R.drawable.stat_sys_signal_null;
                if (subscription == dataSub) mQSPhoneSignalIconId =
                        R.drawable.ic_qs_signal_no_signal;
                mMSimDataSignalIconId[subscription] = R.drawable.stat_sys_signal_null;
                mMSimContentDescriptionPhoneSignal[subscription] = mContext.getString(
                        AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0]);
@@ -574,6 +578,8 @@ public class MSimNetworkController extends NetworkController {
                Slog.d(TAG, "updateTelephonySignalStrength iconList = " + iconList + "iconLevel = "
                        + iconLevel + " mInetCondition = " + mInetCondition);
                mMSimPhoneSignalIconId[subscription] = iconList[iconLevel];
                if (subscription == dataSub) mQSPhoneSignalIconId =
                        TelephonyIcons.QS_TELEPHONY_SIGNAL_STRENGTH[mInetCondition][iconLevel];
                mMSimContentDescriptionPhoneSignal[subscription] = mContext.getString(
                        AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[iconLevel]);

@@ -595,6 +601,7 @@ public class MSimNetworkController extends NetworkController {
                // wimax is a special 4g network not handled by telephony
                mDataIconList = TelephonyIcons.DATA_4G[mInetCondition];
                mMSimDataTypeIconId[subscription] = R.drawable.stat_sys_data_fully_connected_4g;
                mQSDataTypeIconId = TelephonyIcons.QS_DATA_4G[mInetCondition];
                mMSimContentDescriptionDataType[subscription] = mContext.getString(
                        R.string.accessibility_data_connection_4g);
            } else {
@@ -608,6 +615,7 @@ public class MSimNetworkController extends NetworkController {
                        if (!mShowAtLeastThreeGees) {
                            mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
                            mMSimDataTypeIconId[subscription] = 0;
                            mQSDataTypeIconId = 0;
                            mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                    R.string.accessibility_data_connection_gprs);
                            break;
@@ -619,6 +627,7 @@ public class MSimNetworkController extends NetworkController {
                            mDataIconList = TelephonyIcons.DATA_E[mInetCondition];
                            mMSimDataTypeIconId[subscription] =
                                    R.drawable.stat_sys_data_fully_connected_e;
                            mQSDataTypeIconId = TelephonyIcons.QS_DATA_E[mInetCondition];
                            mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                    R.string.accessibility_data_connection_edge);
                            break;
@@ -630,6 +639,7 @@ public class MSimNetworkController extends NetworkController {
                        mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
                        mMSimDataTypeIconId[subscription] =
                                R.drawable.stat_sys_data_fully_connected_3g;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
                        mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                R.string.accessibility_data_connection_3g);
                        break;
@@ -640,12 +650,14 @@ public class MSimNetworkController extends NetworkController {
                            mDataIconList = TelephonyIcons.DATA_H[mInetCondition];
                            mMSimDataTypeIconId[subscription] =
                                    R.drawable.stat_sys_data_fully_connected_h;
                            mQSDataTypeIconId = TelephonyIcons.QS_DATA_H[mInetCondition];
                            mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                    R.string.accessibility_data_connection_3_5g);
                        } else {
                            mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
                            mMSimDataTypeIconId[subscription] =
                                    R.drawable.stat_sys_data_fully_connected_3g;
                            mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
                            mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                    R.string.accessibility_data_connection_3g);
                        }
@@ -655,12 +667,14 @@ public class MSimNetworkController extends NetworkController {
                            mDataIconList = TelephonyIcons.DATA_HP[mInetCondition];
                            mMSimDataTypeIconId[subscription] =
                                    R.drawable.stat_sys_data_fully_connected_hp;
                            mQSDataTypeIconId = TelephonyIcons.QS_DATA_HP[mInetCondition];
                            mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                    R.string.accessibility_data_connection_HP);
                        } else {
                            mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
                            mMSimDataTypeIconId[subscription] =
                                    R.drawable.stat_sys_data_fully_connected_3g;
                            mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
                            mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                    R.string.accessibility_data_connection_3g);
                        }
@@ -670,6 +684,7 @@ public class MSimNetworkController extends NetworkController {
                        mDataIconList = TelephonyIcons.DATA_1X[mInetCondition];
                        mMSimDataTypeIconId[subscription] =
                                R.drawable.stat_sys_data_fully_connected_1x;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_1X[mInetCondition];
                        mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                R.string.accessibility_data_connection_cdma);
                        break;
@@ -677,6 +692,7 @@ public class MSimNetworkController extends NetworkController {
                        mDataIconList = TelephonyIcons.DATA_1X[mInetCondition];
                        mMSimDataTypeIconId[subscription] =
                                R.drawable.stat_sys_data_fully_connected_1x;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_1X[mInetCondition];
                        mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                R.string.accessibility_data_connection_cdma);
                        break;
@@ -687,6 +703,7 @@ public class MSimNetworkController extends NetworkController {
                        mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
                        mMSimDataTypeIconId[subscription] =
                                R.drawable.stat_sys_data_fully_connected_3g;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
                        mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                R.string.accessibility_data_connection_3g);
                        break;
@@ -694,6 +711,7 @@ public class MSimNetworkController extends NetworkController {
                        mDataIconList = TelephonyIcons.DATA_4G[mInetCondition];
                        mMSimDataTypeIconId[subscription] =
                                R.drawable.stat_sys_data_fully_connected_4g;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_4G[mInetCondition];
                        mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                R.string.accessibility_data_connection_4g);
                        break;
@@ -702,12 +720,14 @@ public class MSimNetworkController extends NetworkController {
                            mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
                            mMSimDataTypeIconId[subscription] =
                                    R.drawable.stat_sys_data_fully_connected_g;
                            mQSDataTypeIconId = TelephonyIcons.QS_DATA_G[mInetCondition];
                            mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                    R.string.accessibility_data_connection_gprs);
                        } else {
                            mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
                            mMSimDataTypeIconId[subscription] =
                                R.drawable.stat_sys_data_fully_connected_3g;
                            mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
                            mMSimContentDescriptionDataType[subscription] = mContext.getString(
                                    R.string.accessibility_data_connection_3g);
                        }
@@ -726,9 +746,13 @@ public class MSimNetworkController extends NetworkController {
        if (isCdma(subscription)) {
            if (isCdmaEri(subscription)) {
                mMSimDataTypeIconId[subscription] = R.drawable.stat_sys_data_fully_connected_roam;
                if (subscription == dataSub) mQSDataTypeIconId =
                        TelephonyIcons.QS_DATA_R[mInetCondition];
            }
        } else if (mPhone.isNetworkRoaming(subscription)) {
            mMSimDataTypeIconId[subscription] = R.drawable.stat_sys_data_fully_connected_roam;
            if (subscription == dataSub) mQSDataTypeIconId =
                    TelephonyIcons.QS_DATA_R[mInetCondition];
        }
    }

@@ -919,11 +943,13 @@ public class MSimNetworkController extends NetworkController {
        String mobileLabel = "";
        String wifiLabel = "";
        int N;
        int dataSub = MSimTelephonyManager.getDefault().getPreferredDataSubscription();
        Slog.d(TAG,"refreshViews subscription =" + subscription + "mMSimDataConnected ="
                + mMSimDataConnected[subscription]);
        Slog.d(TAG,"refreshViews mMSimDataActivity =" + mMSimDataActivity[subscription]);
        if (!mHasMobileDataFeature) {
            mMSimDataSignalIconId[subscription] = mMSimPhoneSignalIconId[subscription] = 0;
            mQSPhoneSignalIconId = 0;
            mobileLabel = "";
        } else {
            // We want to show the carrier name if in service and either:
@@ -1009,6 +1035,7 @@ public class MSimNetworkController extends NetworkController {
            mAirplaneIconId = R.drawable.stat_sys_signal_flightmode;
            mMSimPhoneSignalIconId[subscription] = mMSimDataSignalIconId[subscription]
                    = mMSimDataTypeIconId[subscription] = 0;
            if (subscription == dataSub) mQSPhoneSignalIconId = 0;
            mNoMSimIconId[subscription] = 0;

            // combined values from connected wifi take precedence over airplane mode
@@ -1050,19 +1077,28 @@ public class MSimNetworkController extends NetworkController {
            Slog.d(TAG, "refreshViews: Data not connected!! Set no data type icon / Roaming for"
                    + " subscription: " + subscription);
            mMSimDataTypeIconId[subscription] = 0;
            if (subscription == dataSub) mQSDataTypeIconId = 0;
            if (isCdma(subscription)) {
                if (isCdmaEri(subscription)) {
                    mMSimDataTypeIconId[subscription] =
                            R.drawable.stat_sys_data_fully_connected_roam;
                    if (subscription == dataSub) mQSDataTypeIconId =
                            TelephonyIcons.QS_DATA_R[mInetCondition];
                }
            } else if (mPhone.isNetworkRoaming(subscription)) {
                mMSimDataTypeIconId[subscription] = R.drawable.stat_sys_data_fully_connected_roam;
                if (subscription == dataSub) mQSDataTypeIconId =
                        TelephonyIcons.QS_DATA_R[mInetCondition];
            }
        }

        if (!mAirplaneMode && mMSimState[subscription] == IccCardConstants.State.ABSENT) {
            mMSimPhoneSignalIconId[subscription] = mMSimDataSignalIconId[subscription]
                    = mMSimDataTypeIconId[subscription] = 0;
            if (subscription == dataSub) {
                mQSDataTypeIconId = 0;
                mQSPhoneSignalIconId = 0;
            }
        }

        if (DEBUG) {
@@ -1092,6 +1128,17 @@ public class MSimNetworkController extends NetworkController {
                    + " mBluetoothTetherIconId=0x" + Integer.toHexString(mBluetoothTetherIconId));
        }

        // Use data SIM for QuickSettings display
        mDataConnected = mMSimDataConnected[dataSub];
        mDataActivity = mMSimDataActivity[dataSub];
        mNetworkName = mMSimNetworkName[dataSub];
        mContentDescriptionPhoneSignal = mMSimContentDescriptionPhoneSignal[dataSub];
        mContentDescriptionDataType = mMSimContentDescriptionDataType[dataSub];

        for (NetworkSignalChangedCallback cb : mSignalsChangedCallbacks) {
            notifySignalsChangedCallbacks(cb);
        }

        if (mMSimLastPhoneSignalIconId[subscription] != mMSimPhoneSignalIconId[subscription]
         || mLastWifiIconId                 != mWifiIconId
         || mLastWimaxIconId                != mWimaxIconId
@@ -1103,9 +1150,6 @@ public class MSimNetworkController extends NetworkController {
            for (MSimSignalCluster cluster : mSimSignalClusters) {
                refreshSignalCluster(cluster, subscription);
            }
            for (NetworkSignalChangedCallback cb : mSignalsChangedCallbacks) {
                notifySignalsChangedCallbacks(cb);
            }
        }

        if (mLastAirplaneMode != mAirplaneMode) {