Loading packages/SystemUI/res/values/arrays.xml +20 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,26 @@ <string-array name="telephony_data_activity_lte_sim3"> </string-array> <!-- Array to show forbidden icons --> <string-array name="telephony_data_type_forbidden"> <item>array/telephony_data_type_forbidden_icons</item> <item>array/telephony_data_type_forbidden_icons</item> <item>array/telephony_data_type_forbidden_icons</item> </string-array> <string-array name="telephony_data_type_forbidden_icons"> </string-array> <!--Array to show greyed icons --> <string-array name="telephony_data_type_disconnected"> <item>array/telephony_data_type_disconnected_icons</item> <item>array/telephony_data_type_disconnected_icons</item> <item>array/telephony_data_type_disconnected_icons</item> </string-array> <string-array name="telephony_data_type_disconnected_icons"> </string-array> <!--signal strength--> <!--Add three items to support TSTS--> <string-array name="multi_signal_strength"> Loading packages/SystemUI/res/values/config.xml +2 −0 Original line number Diff line number Diff line Loading @@ -320,5 +320,7 @@ <bool name="config_show_long_operator_name">false</bool> <bool name="config_show_long_operator_name_when_roaming">false</bool> <!-- Show forbidden and greyed data icon when data is disabled --> <bool name="config_data_signal_control">false</bool> </resources> packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +7 −0 Original line number Diff line number Diff line Loading @@ -778,6 +778,13 @@ public class SignalClusterView if (mContext.getResources().getBoolean(R.bool.show_roaming_and_network_icons) &&(mTelephonyManager != null && mTelephonyManager.isNetworkRoaming(mSubId))) { if (!(mContext.getResources().getBoolean(R.bool.config_data_signal_control))) { mRoaming.setImageDrawable(getContext().getResources().getDrawable( R.drawable.stat_sys_data_fully_connected_roam)); } else { mRoaming.setImageDrawable(null); } mRoaming.setImageDrawable(getContext().getResources().getDrawable( R.drawable.stat_sys_data_fully_connected_roam)); } else { Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +84 −4 Original line number Diff line number Diff line Loading @@ -15,12 +15,16 @@ */ package com.android.systemui.statusbar.policy; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.database.ContentObserver; import android.net.NetworkCapabilities; import android.os.Handler; import android.os.Looper; import android.os.SystemProperties; import android.provider.Settings; import android.telephony.CellLocation; import android.telephony.gsm.GsmCellLocation; import android.telephony.PhoneStateListener; Loading Loading @@ -68,6 +72,8 @@ public class MobileSignalController extends SignalController< private String mLastDataSpn; private boolean mLastShowPlmn; private String mLastPlmn; private boolean mIsDataSignalControlEnabled; // Since some pieces of the phone state are interdependent we store it locally, // this could potentially become part of MobileState for simplification/complication Loading @@ -87,6 +93,7 @@ public class MobileSignalController extends SignalController< private final int STATUS_BAR_STYLE_DATA_VOICE = 3; private final int STATUS_BAR_STYLE_EXTENDED = 4; private int mStyle = STATUS_BAR_STYLE_ANDROID_DEFAULT; private DataEnabledSettingObserver mDataEnabledSettingObserver; // TODO: Reduce number of vars passed in, if we have the NetworkController, probably don't // need listener lists anymore. Loading @@ -109,6 +116,14 @@ public class MobileSignalController extends SignalController< mNetworkNameSeparator = getStringIfExists(R.string.status_bar_network_name_separator); mNetworkNameDefault = getStringIfExists( com.android.internal.R.string.lockscreen_carrier_default); mIsDataSignalControlEnabled = mContext.getResources() .getBoolean(R.bool.config_data_signal_control); if (mIsDataSignalControlEnabled) { mDataEnabledSettingObserver = new DataEnabledSettingObserver(new Handler(), context); mLastState.isForbidden = mCurrentState.isForbidden = !(isMobileDataEnabled(mSubscriptionInfo.getSubscriptionId())); } if (config.readIconsFromXml) { TelephonyIcons.readIconsFromXml(context); Loading Loading @@ -151,6 +166,11 @@ public class MobileSignalController extends SignalController< return getIcons().mDataContentDescription; } public void setForbiddenState(boolean isForbidden) { mCurrentState.isForbidden = isForbidden; notifyListenersIfNecessary(); } public void setAirplaneMode(boolean airplaneMode) { mCurrentState.airplaneMode = airplaneMode; notifyListenersIfNecessary(); Loading Loading @@ -186,6 +206,9 @@ public class MobileSignalController extends SignalController< | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE | PhoneStateListener.LISTEN_DATA_ACTIVITY | PhoneStateListener.LISTEN_CARRIER_NETWORK_CHANGE); if (mIsDataSignalControlEnabled) { mDataEnabledSettingObserver.register(); } } /** Loading @@ -193,8 +216,10 @@ public class MobileSignalController extends SignalController< */ public void unregisterListener() { mPhone.listen(mPhoneStateListener, 0); if (mIsDataSignalControlEnabled) { mDataEnabledSettingObserver.unregister(); } } /** * Produce a mapping of data network types to icon groups for simple and quick use in * updateTelephony. Loading Loading @@ -739,9 +764,14 @@ public class MobileSignalController extends SignalController< Log.d(mTag, "singleSignalIcon:" + getResourceName(singleSignalIcon)); } if (mIsDataSignalControlEnabled) { dataActivityId = (mCurrentState.dataConnected && slotId >= 0) ? TelephonyIcons.getDataActivity(slotId, mCurrentState.dataActivity) : getCustomStatusBarIcon(slotId); } else { dataActivityId = (mCurrentState.dataConnected && slotId >= 0) ? TelephonyIcons.getDataActivity(slotId, mCurrentState.dataActivity) : 0; } // Convert the icon to unstacked if necessary. int unstackedSignalIcon = TelephonyIcons.convertMobileStrengthIcon(singleSignalIcon); if (DEBUG) { Loading Loading @@ -804,6 +834,24 @@ public class MobileSignalController extends SignalController< singleSignalIcon, stackedDataIcon, stackedVoiceIcon, dataActivityId); } private boolean isMobileDataEnabled(int subId) { //Checks for data enabled or not from the given subId. return TelephonyManager.getDefault().getDataEnabled(subId); } private int getCustomStatusBarIcon(int slotId) { int dataTypeIcon = 0 ; if (!mCurrentState.dataConnected && mCurrentState.isForbidden) { // Show Forbidden icon incase both data is Disabled and // disconnected dataTypeIcon = TelephonyIcons.getForbiddenDataIcon(slotId); } else { // Show greyed icon incase data is enabled and not preferred dataTypeIcon = TelephonyIcons.getDataDisconnectedIcon(slotId); } return dataTypeIcon; } private int getSimSlotIndex() { int slotId = -1; if (mSubscriptionInfo != null) { Loading Loading @@ -1057,6 +1105,7 @@ public class MobileSignalController extends SignalController< boolean airplaneMode; boolean carrierNetworkChangeMode; boolean isDefault; boolean isForbidden; boolean userSetup; int dataActivity; int voiceLevel; Loading @@ -1072,6 +1121,7 @@ public class MobileSignalController extends SignalController< dataConnected = state.dataConnected; isDefault = state.isDefault; isEmergency = state.isEmergency; isForbidden = state.isForbidden; airplaneMode = state.airplaneMode; carrierNetworkChangeMode = state.carrierNetworkChangeMode; userSetup = state.userSetup; Loading @@ -1090,6 +1140,7 @@ public class MobileSignalController extends SignalController< builder.append("dataConnected=").append(dataConnected).append(','); builder.append("isDefault=").append(isDefault).append(','); builder.append("isEmergency=").append(isEmergency).append(','); builder.append("isForbidden= ").append(isForbidden).append(','); builder.append("airplaneMode=").append(airplaneMode).append(','); builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode) .append(','); Loading @@ -1107,6 +1158,7 @@ public class MobileSignalController extends SignalController< && ((MobileState) o).dataSim == dataSim && ((MobileState) o).dataConnected == dataConnected && ((MobileState) o).isEmergency == isEmergency && ((MobileState) o).isForbidden == isForbidden && ((MobileState) o).airplaneMode == airplaneMode && ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode && ((MobileState) o).userSetup == userSetup Loading @@ -1115,4 +1167,32 @@ public class MobileSignalController extends SignalController< && ((MobileState) o).imsRadioTechnology == imsRadioTechnology; } } //Observer to moniter enabling and disabling of MobileData private class DataEnabledSettingObserver extends ContentObserver { ContentResolver mResolver; public DataEnabledSettingObserver(Handler handler, Context context) { super(handler); mResolver = context.getContentResolver(); } public void register() { String contentUri; if (TelephonyManager.getDefault().getSimCount() == 1) { contentUri = Settings.Global.MOBILE_DATA; } else { contentUri = Settings.Global.MOBILE_DATA + mSubscriptionInfo.getSubscriptionId(); } mResolver.registerContentObserver(Settings.Global.getUriFor(contentUri), false, this); } public void unregister() { mResolver.unregisterContentObserver(this); } @Override public void onChange(boolean selfChange) { setForbiddenState(!isMobileDataEnabled(mSubscriptionInfo.getSubscriptionId())); } } } packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java +43 −1 Original line number Diff line number Diff line Loading @@ -295,6 +295,7 @@ class TelephonyIcons { static final String NS = "com.android.systemui"; static String[] mDataTypeArray, mDataTypeGenerationArray; static String[] mForbiddenDataArray, mDataDisconnectedArray; static String[] mDataTypeDescriptionArray, mDataTypeGenerationDescArray; static String[] mDataActivityArray; static String[] mSignalStrengthArray, mSignalStrengthRoamingArray; Loading @@ -302,6 +303,8 @@ class TelephonyIcons { static String[] mSignalStrengthDesc; static int[] mSelectedDataTypeIcon; static int[] mForbiddenDataTypeIcon; static int[] mDataDisconnectedTypeIcon; static int[] mSelectedQSDataTypeIcon; static String[] mSelectedDataTypeDesc; static int[] mSelectedDataActivityIndex; Loading @@ -319,6 +322,8 @@ class TelephonyIcons { mRes = context.getResources(); try { mForbiddenDataArray = mRes.getStringArray(R.array.telephony_data_type_forbidden); mDataDisconnectedArray = mRes.getStringArray(R.array.telephony_data_type_disconnected); mDataTypeArray = mRes.getStringArray(R.array.multi_data_type); mDataTypeDescriptionArray = mRes.getStringArray( R.array.telephony_data_type_description); Loading @@ -343,6 +348,14 @@ class TelephonyIcons { && mDataTypeArray.length != 0) { mSelectedDataTypeIcon = new int[mDataTypeArray.length]; } if (mForbiddenDataTypeIcon == null && mForbiddenDataArray.length != 0) { mForbiddenDataTypeIcon = new int[mForbiddenDataArray.length]; } if (mDataDisconnectedTypeIcon == null && mDataDisconnectedArray.length != 0) { mDataDisconnectedTypeIcon = new int[mDataDisconnectedArray.length]; } if (mSelectedQSDataTypeIcon == null && mDataTypeArray.length != 0) { mSelectedQSDataTypeIcon = new int[mDataTypeArray.length]; Loading Loading @@ -399,7 +412,16 @@ class TelephonyIcons { String resName = mDataTypeArray[slot]; int resId = mRes.getIdentifier(resName, null, NS); String[] dataTypeArray = mRes.getStringArray(resId); if (mRes.getBoolean(R.bool.config_data_signal_control)) { String forbiddenresName = mForbiddenDataArray[slot]; String dataDisconnectedResName = mDataDisconnectedArray[slot]; int forbiddenresId = mRes.getIdentifier(forbiddenresName, null, NS); int dataDisconnectedResId = mRes.getIdentifier(dataDisconnectedResName , null, NS); String[] forbiddenTypeArray = mRes.getStringArray(forbiddenresId); String[] dataDisconnectedTypeArray = mRes.getStringArray(dataDisconnectedResId); setForbiddenResource(slot, type, forbiddenTypeArray); setDataDisconnectedResource(slot, type, dataDisconnectedTypeArray); } log(TAG, "data type item name: " + resName + " id:" + resId); switch (type) { Loading Loading @@ -595,6 +617,26 @@ class TelephonyIcons { return mSelectedDataTypeIcon[slot]; } private static void setForbiddenResource(int slot, int type, String[] forbiddenTypeArray) { mForbiddenDataTypeIcon[slot] = mRes.getIdentifier(forbiddenTypeArray[type], null, NS); } private static void setDataDisconnectedResource(int slot, int type, String[] disconnectedTypeArray) { mDataDisconnectedTypeIcon[slot] = mRes.getIdentifier(disconnectedTypeArray[type], null, NS); } public static int getForbiddenDataIcon(int slot) { log(TAG, "getForbiddenDataIcon " + String.format("sub=%d", slot)); return mForbiddenDataTypeIcon[slot]; } public static int getDataDisconnectedIcon(int slot) { log(TAG, "getDisconnectedDataIcon " + String.format("sub=%d", slot)); return mDataDisconnectedTypeIcon[slot]; } static int getDataTypeDesc(int slot) { return mRes.getIdentifier(mSelectedDataTypeDesc[slot], null, NS); } Loading Loading
packages/SystemUI/res/values/arrays.xml +20 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,26 @@ <string-array name="telephony_data_activity_lte_sim3"> </string-array> <!-- Array to show forbidden icons --> <string-array name="telephony_data_type_forbidden"> <item>array/telephony_data_type_forbidden_icons</item> <item>array/telephony_data_type_forbidden_icons</item> <item>array/telephony_data_type_forbidden_icons</item> </string-array> <string-array name="telephony_data_type_forbidden_icons"> </string-array> <!--Array to show greyed icons --> <string-array name="telephony_data_type_disconnected"> <item>array/telephony_data_type_disconnected_icons</item> <item>array/telephony_data_type_disconnected_icons</item> <item>array/telephony_data_type_disconnected_icons</item> </string-array> <string-array name="telephony_data_type_disconnected_icons"> </string-array> <!--signal strength--> <!--Add three items to support TSTS--> <string-array name="multi_signal_strength"> Loading
packages/SystemUI/res/values/config.xml +2 −0 Original line number Diff line number Diff line Loading @@ -320,5 +320,7 @@ <bool name="config_show_long_operator_name">false</bool> <bool name="config_show_long_operator_name_when_roaming">false</bool> <!-- Show forbidden and greyed data icon when data is disabled --> <bool name="config_data_signal_control">false</bool> </resources>
packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +7 −0 Original line number Diff line number Diff line Loading @@ -778,6 +778,13 @@ public class SignalClusterView if (mContext.getResources().getBoolean(R.bool.show_roaming_and_network_icons) &&(mTelephonyManager != null && mTelephonyManager.isNetworkRoaming(mSubId))) { if (!(mContext.getResources().getBoolean(R.bool.config_data_signal_control))) { mRoaming.setImageDrawable(getContext().getResources().getDrawable( R.drawable.stat_sys_data_fully_connected_roam)); } else { mRoaming.setImageDrawable(null); } mRoaming.setImageDrawable(getContext().getResources().getDrawable( R.drawable.stat_sys_data_fully_connected_roam)); } else { Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +84 −4 Original line number Diff line number Diff line Loading @@ -15,12 +15,16 @@ */ package com.android.systemui.statusbar.policy; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.database.ContentObserver; import android.net.NetworkCapabilities; import android.os.Handler; import android.os.Looper; import android.os.SystemProperties; import android.provider.Settings; import android.telephony.CellLocation; import android.telephony.gsm.GsmCellLocation; import android.telephony.PhoneStateListener; Loading Loading @@ -68,6 +72,8 @@ public class MobileSignalController extends SignalController< private String mLastDataSpn; private boolean mLastShowPlmn; private String mLastPlmn; private boolean mIsDataSignalControlEnabled; // Since some pieces of the phone state are interdependent we store it locally, // this could potentially become part of MobileState for simplification/complication Loading @@ -87,6 +93,7 @@ public class MobileSignalController extends SignalController< private final int STATUS_BAR_STYLE_DATA_VOICE = 3; private final int STATUS_BAR_STYLE_EXTENDED = 4; private int mStyle = STATUS_BAR_STYLE_ANDROID_DEFAULT; private DataEnabledSettingObserver mDataEnabledSettingObserver; // TODO: Reduce number of vars passed in, if we have the NetworkController, probably don't // need listener lists anymore. Loading @@ -109,6 +116,14 @@ public class MobileSignalController extends SignalController< mNetworkNameSeparator = getStringIfExists(R.string.status_bar_network_name_separator); mNetworkNameDefault = getStringIfExists( com.android.internal.R.string.lockscreen_carrier_default); mIsDataSignalControlEnabled = mContext.getResources() .getBoolean(R.bool.config_data_signal_control); if (mIsDataSignalControlEnabled) { mDataEnabledSettingObserver = new DataEnabledSettingObserver(new Handler(), context); mLastState.isForbidden = mCurrentState.isForbidden = !(isMobileDataEnabled(mSubscriptionInfo.getSubscriptionId())); } if (config.readIconsFromXml) { TelephonyIcons.readIconsFromXml(context); Loading Loading @@ -151,6 +166,11 @@ public class MobileSignalController extends SignalController< return getIcons().mDataContentDescription; } public void setForbiddenState(boolean isForbidden) { mCurrentState.isForbidden = isForbidden; notifyListenersIfNecessary(); } public void setAirplaneMode(boolean airplaneMode) { mCurrentState.airplaneMode = airplaneMode; notifyListenersIfNecessary(); Loading Loading @@ -186,6 +206,9 @@ public class MobileSignalController extends SignalController< | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE | PhoneStateListener.LISTEN_DATA_ACTIVITY | PhoneStateListener.LISTEN_CARRIER_NETWORK_CHANGE); if (mIsDataSignalControlEnabled) { mDataEnabledSettingObserver.register(); } } /** Loading @@ -193,8 +216,10 @@ public class MobileSignalController extends SignalController< */ public void unregisterListener() { mPhone.listen(mPhoneStateListener, 0); if (mIsDataSignalControlEnabled) { mDataEnabledSettingObserver.unregister(); } } /** * Produce a mapping of data network types to icon groups for simple and quick use in * updateTelephony. Loading Loading @@ -739,9 +764,14 @@ public class MobileSignalController extends SignalController< Log.d(mTag, "singleSignalIcon:" + getResourceName(singleSignalIcon)); } if (mIsDataSignalControlEnabled) { dataActivityId = (mCurrentState.dataConnected && slotId >= 0) ? TelephonyIcons.getDataActivity(slotId, mCurrentState.dataActivity) : getCustomStatusBarIcon(slotId); } else { dataActivityId = (mCurrentState.dataConnected && slotId >= 0) ? TelephonyIcons.getDataActivity(slotId, mCurrentState.dataActivity) : 0; } // Convert the icon to unstacked if necessary. int unstackedSignalIcon = TelephonyIcons.convertMobileStrengthIcon(singleSignalIcon); if (DEBUG) { Loading Loading @@ -804,6 +834,24 @@ public class MobileSignalController extends SignalController< singleSignalIcon, stackedDataIcon, stackedVoiceIcon, dataActivityId); } private boolean isMobileDataEnabled(int subId) { //Checks for data enabled or not from the given subId. return TelephonyManager.getDefault().getDataEnabled(subId); } private int getCustomStatusBarIcon(int slotId) { int dataTypeIcon = 0 ; if (!mCurrentState.dataConnected && mCurrentState.isForbidden) { // Show Forbidden icon incase both data is Disabled and // disconnected dataTypeIcon = TelephonyIcons.getForbiddenDataIcon(slotId); } else { // Show greyed icon incase data is enabled and not preferred dataTypeIcon = TelephonyIcons.getDataDisconnectedIcon(slotId); } return dataTypeIcon; } private int getSimSlotIndex() { int slotId = -1; if (mSubscriptionInfo != null) { Loading Loading @@ -1057,6 +1105,7 @@ public class MobileSignalController extends SignalController< boolean airplaneMode; boolean carrierNetworkChangeMode; boolean isDefault; boolean isForbidden; boolean userSetup; int dataActivity; int voiceLevel; Loading @@ -1072,6 +1121,7 @@ public class MobileSignalController extends SignalController< dataConnected = state.dataConnected; isDefault = state.isDefault; isEmergency = state.isEmergency; isForbidden = state.isForbidden; airplaneMode = state.airplaneMode; carrierNetworkChangeMode = state.carrierNetworkChangeMode; userSetup = state.userSetup; Loading @@ -1090,6 +1140,7 @@ public class MobileSignalController extends SignalController< builder.append("dataConnected=").append(dataConnected).append(','); builder.append("isDefault=").append(isDefault).append(','); builder.append("isEmergency=").append(isEmergency).append(','); builder.append("isForbidden= ").append(isForbidden).append(','); builder.append("airplaneMode=").append(airplaneMode).append(','); builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode) .append(','); Loading @@ -1107,6 +1158,7 @@ public class MobileSignalController extends SignalController< && ((MobileState) o).dataSim == dataSim && ((MobileState) o).dataConnected == dataConnected && ((MobileState) o).isEmergency == isEmergency && ((MobileState) o).isForbidden == isForbidden && ((MobileState) o).airplaneMode == airplaneMode && ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode && ((MobileState) o).userSetup == userSetup Loading @@ -1115,4 +1167,32 @@ public class MobileSignalController extends SignalController< && ((MobileState) o).imsRadioTechnology == imsRadioTechnology; } } //Observer to moniter enabling and disabling of MobileData private class DataEnabledSettingObserver extends ContentObserver { ContentResolver mResolver; public DataEnabledSettingObserver(Handler handler, Context context) { super(handler); mResolver = context.getContentResolver(); } public void register() { String contentUri; if (TelephonyManager.getDefault().getSimCount() == 1) { contentUri = Settings.Global.MOBILE_DATA; } else { contentUri = Settings.Global.MOBILE_DATA + mSubscriptionInfo.getSubscriptionId(); } mResolver.registerContentObserver(Settings.Global.getUriFor(contentUri), false, this); } public void unregister() { mResolver.unregisterContentObserver(this); } @Override public void onChange(boolean selfChange) { setForbiddenState(!isMobileDataEnabled(mSubscriptionInfo.getSubscriptionId())); } } }
packages/SystemUI/src/com/android/systemui/statusbar/policy/TelephonyIcons.java +43 −1 Original line number Diff line number Diff line Loading @@ -295,6 +295,7 @@ class TelephonyIcons { static final String NS = "com.android.systemui"; static String[] mDataTypeArray, mDataTypeGenerationArray; static String[] mForbiddenDataArray, mDataDisconnectedArray; static String[] mDataTypeDescriptionArray, mDataTypeGenerationDescArray; static String[] mDataActivityArray; static String[] mSignalStrengthArray, mSignalStrengthRoamingArray; Loading @@ -302,6 +303,8 @@ class TelephonyIcons { static String[] mSignalStrengthDesc; static int[] mSelectedDataTypeIcon; static int[] mForbiddenDataTypeIcon; static int[] mDataDisconnectedTypeIcon; static int[] mSelectedQSDataTypeIcon; static String[] mSelectedDataTypeDesc; static int[] mSelectedDataActivityIndex; Loading @@ -319,6 +322,8 @@ class TelephonyIcons { mRes = context.getResources(); try { mForbiddenDataArray = mRes.getStringArray(R.array.telephony_data_type_forbidden); mDataDisconnectedArray = mRes.getStringArray(R.array.telephony_data_type_disconnected); mDataTypeArray = mRes.getStringArray(R.array.multi_data_type); mDataTypeDescriptionArray = mRes.getStringArray( R.array.telephony_data_type_description); Loading @@ -343,6 +348,14 @@ class TelephonyIcons { && mDataTypeArray.length != 0) { mSelectedDataTypeIcon = new int[mDataTypeArray.length]; } if (mForbiddenDataTypeIcon == null && mForbiddenDataArray.length != 0) { mForbiddenDataTypeIcon = new int[mForbiddenDataArray.length]; } if (mDataDisconnectedTypeIcon == null && mDataDisconnectedArray.length != 0) { mDataDisconnectedTypeIcon = new int[mDataDisconnectedArray.length]; } if (mSelectedQSDataTypeIcon == null && mDataTypeArray.length != 0) { mSelectedQSDataTypeIcon = new int[mDataTypeArray.length]; Loading Loading @@ -399,7 +412,16 @@ class TelephonyIcons { String resName = mDataTypeArray[slot]; int resId = mRes.getIdentifier(resName, null, NS); String[] dataTypeArray = mRes.getStringArray(resId); if (mRes.getBoolean(R.bool.config_data_signal_control)) { String forbiddenresName = mForbiddenDataArray[slot]; String dataDisconnectedResName = mDataDisconnectedArray[slot]; int forbiddenresId = mRes.getIdentifier(forbiddenresName, null, NS); int dataDisconnectedResId = mRes.getIdentifier(dataDisconnectedResName , null, NS); String[] forbiddenTypeArray = mRes.getStringArray(forbiddenresId); String[] dataDisconnectedTypeArray = mRes.getStringArray(dataDisconnectedResId); setForbiddenResource(slot, type, forbiddenTypeArray); setDataDisconnectedResource(slot, type, dataDisconnectedTypeArray); } log(TAG, "data type item name: " + resName + " id:" + resId); switch (type) { Loading Loading @@ -595,6 +617,26 @@ class TelephonyIcons { return mSelectedDataTypeIcon[slot]; } private static void setForbiddenResource(int slot, int type, String[] forbiddenTypeArray) { mForbiddenDataTypeIcon[slot] = mRes.getIdentifier(forbiddenTypeArray[type], null, NS); } private static void setDataDisconnectedResource(int slot, int type, String[] disconnectedTypeArray) { mDataDisconnectedTypeIcon[slot] = mRes.getIdentifier(disconnectedTypeArray[type], null, NS); } public static int getForbiddenDataIcon(int slot) { log(TAG, "getForbiddenDataIcon " + String.format("sub=%d", slot)); return mForbiddenDataTypeIcon[slot]; } public static int getDataDisconnectedIcon(int slot) { log(TAG, "getDisconnectedDataIcon " + String.format("sub=%d", slot)); return mDataDisconnectedTypeIcon[slot]; } static int getDataTypeDesc(int slot) { return mRes.getIdentifier(mSelectedDataTypeDesc[slot], null, NS); } Loading