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

Commit d1184494 authored by Robert Greenwalt's avatar Robert Greenwalt Committed by Android (Google) Code Review
Browse files

Merge "Make status bar indicators reflect the network actually in use." into lmp-dev

parents b242cf53 23dd1769
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -257,7 +257,7 @@ public class SignalClusterView
                    (mMobileVisible ? "VISIBLE" : "GONE"),
                    (mMobileVisible ? "VISIBLE" : "GONE"),
                    mMobileStrengthId, mMobileTypeId));
                    mMobileStrengthId, mMobileTypeId));


        mMobileType.setVisibility(!mWifiVisible || mRoaming ? View.VISIBLE : View.GONE);
        mMobileType.setVisibility((mRoaming || mMobileTypeId != 0) ? View.VISIBLE : View.GONE);
    }
    }
}
}
+72 −44
Original line number Original line Diff line number Diff line
@@ -128,6 +128,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
    private boolean mConnected = false;
    private boolean mConnected = false;
    private int mConnectedNetworkType = ConnectivityManager.TYPE_NONE;
    private int mConnectedNetworkType = ConnectivityManager.TYPE_NONE;
    private String mConnectedNetworkTypeName;
    private String mConnectedNetworkTypeName;
    private int mLastConnectedNetworkType = ConnectivityManager.TYPE_NONE;

    private int mInetCondition = 0;
    private int mInetCondition = 0;
    private int mLastInetCondition = 0;
    private int mLastInetCondition = 0;
    private static final int INET_CONDITION_THRESHOLD = 50;
    private static final int INET_CONDITION_THRESHOLD = 50;
@@ -221,7 +223,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
        filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
        filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
        filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);
        filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);
        filter.addAction(TelephonyIntents.SPN_STRINGS_UPDATED_ACTION);
        filter.addAction(TelephonyIntents.SPN_STRINGS_UPDATED_ACTION);
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION_IMMEDIATE);
        filter.addAction(ConnectivityManager.INET_CONDITION_ACTION);
        filter.addAction(ConnectivityManager.INET_CONDITION_ACTION);
        filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
        filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
        filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
        filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
@@ -462,7 +464,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
                        intent.getBooleanExtra(TelephonyIntents.EXTRA_SHOW_PLMN, false),
                        intent.getBooleanExtra(TelephonyIntents.EXTRA_SHOW_PLMN, false),
                        intent.getStringExtra(TelephonyIntents.EXTRA_PLMN));
                        intent.getStringExtra(TelephonyIntents.EXTRA_PLMN));
            refreshViews();
            refreshViews();
        } else if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION) ||
        } else if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION_IMMEDIATE) ||
                 action.equals(ConnectivityManager.INET_CONDITION_ACTION)) {
                 action.equals(ConnectivityManager.INET_CONDITION_ACTION)) {
            updateConnectivity(intent);
            updateConnectivity(intent);
            refreshViews();
            refreshViews();
@@ -669,21 +671,28 @@ public class NetworkControllerImpl extends BroadcastReceiver
        }
        }
    }
    }


    private int inetConditionForNetwork(int networkType) {
        return (mInetCondition == 1 && mConnectedNetworkType == networkType) ? 1 : 0;
    }

    private final void updateDataNetType() {
    private final void updateDataNetType() {
        int inetCondition;
        mDataTypeIconId = mQSDataTypeIconId = 0;
        if (mIsWimaxEnabled && mWimaxConnected) {
        if (mIsWimaxEnabled && mWimaxConnected) {
            // wimax is a special 4g network not handled by telephony
            // wimax is a special 4g network not handled by telephony
            mDataIconList = TelephonyIcons.DATA_4G[mInetCondition];
            inetCondition = inetConditionForNetwork(ConnectivityManager.TYPE_WIMAX);
            mDataIconList = TelephonyIcons.DATA_4G[inetCondition];
            mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_4g;
            mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_4g;
            mQSDataTypeIconId = TelephonyIcons.QS_DATA_4G[mInetCondition];
            mQSDataTypeIconId = TelephonyIcons.QS_DATA_4G[inetCondition];
            mContentDescriptionDataType = mContext.getString(
            mContentDescriptionDataType = mContext.getString(
                    R.string.accessibility_data_connection_4g);
                    R.string.accessibility_data_connection_4g);
        } else {
        } else {
            inetCondition = inetConditionForNetwork(ConnectivityManager.TYPE_MOBILE);
            final boolean showDataTypeIcon = (inetCondition > 0);
            switch (mDataNetType) {
            switch (mDataNetType) {
                case TelephonyManager.NETWORK_TYPE_UNKNOWN:
                case TelephonyManager.NETWORK_TYPE_UNKNOWN:
                    if (!mShowAtLeastThreeGees) {
                    if (!mShowAtLeastThreeGees) {
                        mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_G[inetCondition];
                        mDataTypeIconId = 0;
                        mQSDataTypeIconId = 0;
                        mContentDescriptionDataType = "";
                        mContentDescriptionDataType = "";
                        break;
                        break;
                    } else {
                    } else {
@@ -691,9 +700,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
                    }
                    }
                case TelephonyManager.NETWORK_TYPE_EDGE:
                case TelephonyManager.NETWORK_TYPE_EDGE:
                    if (!mShowAtLeastThreeGees) {
                    if (!mShowAtLeastThreeGees) {
                        mDataIconList = TelephonyIcons.DATA_E[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_E[inetCondition];
                        mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_e;
                        mDataTypeIconId = showDataTypeIcon ?
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_E[mInetCondition];
                                R.drawable.stat_sys_data_fully_connected_e : 0;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_E[inetCondition];
                        mContentDescriptionDataType = mContext.getString(
                        mContentDescriptionDataType = mContext.getString(
                                R.string.accessibility_data_connection_edge);
                                R.string.accessibility_data_connection_edge);
                        break;
                        break;
@@ -701,9 +711,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
                        // fall through
                        // fall through
                    }
                    }
                case TelephonyManager.NETWORK_TYPE_UMTS:
                case TelephonyManager.NETWORK_TYPE_UMTS:
                    mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
                    mDataIconList = TelephonyIcons.DATA_3G[inetCondition];
                    mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_3g;
                    mDataTypeIconId = showDataTypeIcon ?
                    mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
                                R.drawable.stat_sys_data_fully_connected_3g : 0;
                    mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[inetCondition];
                    mContentDescriptionDataType = mContext.getString(
                    mContentDescriptionDataType = mContext.getString(
                            R.string.accessibility_data_connection_3g);
                            R.string.accessibility_data_connection_3g);
                    break;
                    break;
@@ -712,15 +723,17 @@ public class NetworkControllerImpl extends BroadcastReceiver
                case TelephonyManager.NETWORK_TYPE_HSPA:
                case TelephonyManager.NETWORK_TYPE_HSPA:
                case TelephonyManager.NETWORK_TYPE_HSPAP:
                case TelephonyManager.NETWORK_TYPE_HSPAP:
                    if (mHspaDataDistinguishable) {
                    if (mHspaDataDistinguishable) {
                        mDataIconList = TelephonyIcons.DATA_H[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_H[inetCondition];
                        mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_h;
                        mDataTypeIconId = showDataTypeIcon ?
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_H[mInetCondition];
                                R.drawable.stat_sys_data_fully_connected_h : 0;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_H[inetCondition];
                        mContentDescriptionDataType = mContext.getString(
                        mContentDescriptionDataType = mContext.getString(
                                R.string.accessibility_data_connection_3_5g);
                                R.string.accessibility_data_connection_3_5g);
                    } else {
                    } else {
                        mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_3G[inetCondition];
                        mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_3g;
                        mDataTypeIconId = showDataTypeIcon ?
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
                                R.drawable.stat_sys_data_fully_connected_3g : 0;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[inetCondition];
                        mContentDescriptionDataType = mContext.getString(
                        mContentDescriptionDataType = mContext.getString(
                                R.string.accessibility_data_connection_3g);
                                R.string.accessibility_data_connection_3g);
                    }
                    }
@@ -728,9 +741,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
                case TelephonyManager.NETWORK_TYPE_CDMA:
                case TelephonyManager.NETWORK_TYPE_CDMA:
                    if (!mShowAtLeastThreeGees) {
                    if (!mShowAtLeastThreeGees) {
                        // display 1xRTT for IS95A/B
                        // display 1xRTT for IS95A/B
                        mDataIconList = TelephonyIcons.DATA_1X[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_1X[inetCondition];
                        mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_1x;
                        mDataTypeIconId = showDataTypeIcon ?
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_1X[mInetCondition];
                                R.drawable.stat_sys_data_fully_connected_1x : 0;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_1X[inetCondition];
                        mContentDescriptionDataType = mContext.getString(
                        mContentDescriptionDataType = mContext.getString(
                                R.string.accessibility_data_connection_cdma);
                                R.string.accessibility_data_connection_cdma);
                        break;
                        break;
@@ -739,9 +753,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
                    }
                    }
                case TelephonyManager.NETWORK_TYPE_1xRTT:
                case TelephonyManager.NETWORK_TYPE_1xRTT:
                    if (!mShowAtLeastThreeGees) {
                    if (!mShowAtLeastThreeGees) {
                        mDataIconList = TelephonyIcons.DATA_1X[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_1X[inetCondition];
                        mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_1x;
                        mDataTypeIconId = showDataTypeIcon ?
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_1X[mInetCondition];
                                R.drawable.stat_sys_data_fully_connected_1x : 0;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_1X[inetCondition];
                        mContentDescriptionDataType = mContext.getString(
                        mContentDescriptionDataType = mContext.getString(
                                R.string.accessibility_data_connection_cdma);
                                R.string.accessibility_data_connection_cdma);
                        break;
                        break;
@@ -752,39 +767,43 @@ public class NetworkControllerImpl extends BroadcastReceiver
                case TelephonyManager.NETWORK_TYPE_EVDO_A:
                case TelephonyManager.NETWORK_TYPE_EVDO_A:
                case TelephonyManager.NETWORK_TYPE_EVDO_B:
                case TelephonyManager.NETWORK_TYPE_EVDO_B:
                case TelephonyManager.NETWORK_TYPE_EHRPD:
                case TelephonyManager.NETWORK_TYPE_EHRPD:
                    mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
                    mDataIconList = TelephonyIcons.DATA_3G[inetCondition];
                    mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_3g;
                    mDataTypeIconId = showDataTypeIcon ?
                    mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
                                R.drawable.stat_sys_data_fully_connected_3g : 0;
                    mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[inetCondition];
                    mContentDescriptionDataType = mContext.getString(
                    mContentDescriptionDataType = mContext.getString(
                            R.string.accessibility_data_connection_3g);
                            R.string.accessibility_data_connection_3g);
                    break;
                    break;
                case TelephonyManager.NETWORK_TYPE_LTE:
                case TelephonyManager.NETWORK_TYPE_LTE:
                    boolean show4GforLTE = mContext.getResources().getBoolean(R.bool.config_show4GForLTE);
                    boolean show4GforLTE = mContext.getResources().getBoolean(R.bool.config_show4GForLTE);
                    if (show4GforLTE) {
                    if (show4GforLTE) {
                        mDataIconList = TelephonyIcons.DATA_4G[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_4G[inetCondition];
                        mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_4g;
                        mDataTypeIconId = showDataTypeIcon ?
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_4G[mInetCondition];
                                R.drawable.stat_sys_data_fully_connected_4g : 0;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_4G[inetCondition];
                        mContentDescriptionDataType = mContext.getString(
                        mContentDescriptionDataType = mContext.getString(
                                R.string.accessibility_data_connection_4g);
                                R.string.accessibility_data_connection_4g);
                    } else {
                    } else {
                        mDataIconList = TelephonyIcons.DATA_LTE[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_LTE[inetCondition];
                        mDataTypeIconId = TelephonyIcons.ICON_LTE;
                        mDataTypeIconId = showDataTypeIcon ? TelephonyIcons.ICON_LTE : 0;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_LTE[mInetCondition];
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_LTE[inetCondition];
                        mContentDescriptionDataType = mContext.getString(
                        mContentDescriptionDataType = mContext.getString(
                                R.string.accessibility_data_connection_lte);
                                R.string.accessibility_data_connection_lte);
                    }
                    }
                    break;
                    break;
                default:
                default:
                    if (!mShowAtLeastThreeGees) {
                    if (!mShowAtLeastThreeGees) {
                        mDataIconList = TelephonyIcons.DATA_G[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_G[inetCondition];
                        mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_g;
                        mDataTypeIconId = showDataTypeIcon ?
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_G[mInetCondition];
                                R.drawable.stat_sys_data_fully_connected_g : 0;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_G[inetCondition];
                        mContentDescriptionDataType = mContext.getString(
                        mContentDescriptionDataType = mContext.getString(
                                R.string.accessibility_data_connection_gprs);
                                R.string.accessibility_data_connection_gprs);
                    } else {
                    } else {
                        mDataIconList = TelephonyIcons.DATA_3G[mInetCondition];
                        mDataIconList = TelephonyIcons.DATA_3G[inetCondition];
                        mDataTypeIconId = R.drawable.stat_sys_data_fully_connected_3g;
                        mDataTypeIconId = showDataTypeIcon ?
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[mInetCondition];
                                R.drawable.stat_sys_data_fully_connected_3g : 0;
                        mQSDataTypeIconId = TelephonyIcons.QS_DATA_3G[inetCondition];
                        mContentDescriptionDataType = mContext.getString(
                        mContentDescriptionDataType = mContext.getString(
                                R.string.accessibility_data_connection_3g);
                                R.string.accessibility_data_connection_3g);
                    }
                    }
@@ -967,9 +986,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
    }
    }


    private void updateWifiIcons() {
    private void updateWifiIcons() {
        int inetCondition = inetConditionForNetwork(ConnectivityManager.TYPE_WIFI);
        if (mWifiConnected) {
        if (mWifiConnected) {
            mWifiIconId = WifiIcons.WIFI_SIGNAL_STRENGTH[mInetCondition][mWifiLevel];
            mWifiIconId = WifiIcons.WIFI_SIGNAL_STRENGTH[inetCondition][mWifiLevel];
            mQSWifiIconId = WifiIcons.QS_WIFI_SIGNAL_STRENGTH[mInetCondition][mWifiLevel];
            mQSWifiIconId = WifiIcons.QS_WIFI_SIGNAL_STRENGTH[inetCondition][mWifiLevel];
            mContentDescriptionWifi = mContext.getString(
            mContentDescriptionWifi = mContext.getString(
                    AccessibilityContentDescriptions.WIFI_CONNECTION_STRENGTH[mWifiLevel]);
                    AccessibilityContentDescriptions.WIFI_CONNECTION_STRENGTH[mWifiLevel]);
        } else {
        } else {
@@ -1028,10 +1048,11 @@ public class NetworkControllerImpl extends BroadcastReceiver
    private void updateWimaxIcons() {
    private void updateWimaxIcons() {
        if (mIsWimaxEnabled) {
        if (mIsWimaxEnabled) {
            if (mWimaxConnected) {
            if (mWimaxConnected) {
                int inetCondition = inetConditionForNetwork(ConnectivityManager.TYPE_WIMAX);
                if (mWimaxIdle)
                if (mWimaxIdle)
                    mWimaxIconId = WimaxIcons.WIMAX_IDLE;
                    mWimaxIconId = WimaxIcons.WIMAX_IDLE;
                else
                else
                    mWimaxIconId = WimaxIcons.WIMAX_SIGNAL_STRENGTH[mInetCondition][mWimaxSignal];
                    mWimaxIconId = WimaxIcons.WIMAX_SIGNAL_STRENGTH[inetCondition][mWimaxSignal];
                mContentDescriptionWimax = mContext.getString(
                mContentDescriptionWimax = mContext.getString(
                        AccessibilityContentDescriptions.WIMAX_CONNECTION_STRENGTH[mWimaxSignal]);
                        AccessibilityContentDescriptions.WIMAX_CONNECTION_STRENGTH[mWimaxSignal]);
            } else {
            } else {
@@ -1208,6 +1229,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
            mContentDescriptionCombinedSignal = mHasMobileDataFeature
            mContentDescriptionCombinedSignal = mHasMobileDataFeature
                ? mContentDescriptionDataType : mContentDescriptionWifi;
                ? mContentDescriptionDataType : mContentDescriptionWifi;


            int inetCondition = inetConditionForNetwork(ConnectivityManager.TYPE_MOBILE);

            mDataTypeIconId = 0;
            mDataTypeIconId = 0;
            mQSDataTypeIconId = 0;
            mQSDataTypeIconId = 0;
            if (isCdma()) {
            if (isCdma()) {
@@ -1266,7 +1289,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
         || mLastWimaxIconId                != mWimaxIconId
         || mLastWimaxIconId                != mWimaxIconId
         || mLastDataTypeIconId             != mDataTypeIconId
         || mLastDataTypeIconId             != mDataTypeIconId
         || mLastAirplaneMode               != mAirplaneMode
         || mLastAirplaneMode               != mAirplaneMode
         || mLastLocale                     != mLocale)
         || mLastLocale                     != mLocale
         || mLastConnectedNetworkType       != mConnectedNetworkType)
        {
        {
            // NB: the mLast*s will be updated later
            // NB: the mLast*s will be updated later
            for (SignalCluster cluster : mSignalClusters) {
            for (SignalCluster cluster : mSignalClusters) {
@@ -1301,6 +1325,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
            mLastInetCondition = mInetCondition;
            mLastInetCondition = mInetCondition;
        }
        }


        if (mLastConnectedNetworkType != mConnectedNetworkType) {
            mLastConnectedNetworkType = mConnectedNetworkType;
        }

        // the wimax icon on phones
        // the wimax icon on phones
        if (mLastWimaxIconId != mWimaxIconId) {
        if (mLastWimaxIconId != mWimaxIconId) {
            mLastWimaxIconId = mWimaxIconId;
            mLastWimaxIconId = mWimaxIconId;