Loading services/java/com/android/server/TelephonyRegistry.java +7 −3 Original line number Diff line number Diff line Loading @@ -94,6 +94,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { private Bundle mCellLocation = new Bundle(); private int mDataConnectionNetworkType; static final int PHONE_STATE_PERMISSION_MASK = PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR | PhoneStateListener.LISTEN_CALL_STATE | Loading Loading @@ -187,7 +189,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { } if ((events & PhoneStateListener.LISTEN_DATA_CONNECTION_STATE) != 0) { try { r.callback.onDataConnectionStateChanged(mDataConnectionState); r.callback.onDataConnectionStateChanged(mDataConnectionState, mDataConnectionNetworkType); } catch (RemoteException ex) { remove(r.binder); } Loading Loading @@ -345,7 +348,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { } public void notifyDataConnection(int state, boolean isDataConnectivityPossible, String reason, String apn, String[] apnTypes, String interfaceName) { String reason, String apn, String[] apnTypes, String interfaceName, int networkType) { if (!checkNotifyPermission("notifyDataConnection()" )) { return; } Loading @@ -356,11 +359,12 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { mDataConnectionApn = apn; mDataConnectionApnTypes = apnTypes; mDataConnectionInterfaceName = interfaceName; mDataConnectionNetworkType = networkType; for (int i = mRecords.size() - 1; i >= 0; i--) { Record r = mRecords.get(i); if ((r.events & PhoneStateListener.LISTEN_DATA_CONNECTION_STATE) != 0) { try { r.callback.onDataConnectionStateChanged(state); r.callback.onDataConnectionStateChanged(state, networkType); } catch (RemoteException ex) { remove(r.binder); } Loading services/java/com/android/server/status/StatusBarPolicy.java +9 −9 Original line number Diff line number Diff line Loading @@ -782,7 +782,7 @@ public class StatusBarPolicy { public void onServiceStateChanged(ServiceState state) { mServiceState = state; updateSignalStrength(); updateCdmaRoamingIcon(); updateCdmaRoamingIcon(state); updateDataIcon(); } Loading @@ -796,9 +796,9 @@ public class StatusBarPolicy { } @Override public void onDataConnectionStateChanged(int state) { public void onDataConnectionStateChanged(int state, int networkType) { mDataState = state; updateDataNetType(); updateDataNetType(networkType); updateDataIcon(); } Loading Loading @@ -835,7 +835,7 @@ public class StatusBarPolicy { } private boolean isCdma() { return ((mPhone != null) && (mPhone.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA)); return (mSignalStrength != null) && !mSignalStrength.isGsm(); } private boolean isEvdo() { Loading Loading @@ -889,6 +889,7 @@ public class StatusBarPolicy { else if (asu >= 4) iconLevel = 2; else iconLevel = 1; // Though mPhone is a Manager, this call is not an IPC if (mPhone.isNetworkRoaming()) { iconList = sSignalImages_r; } else { Loading Loading @@ -956,8 +957,7 @@ public class StatusBarPolicy { return (levelEvdoDbm < levelEvdoSnr) ? levelEvdoDbm : levelEvdoSnr; } private final void updateDataNetType() { int net = mPhone.getNetworkType(); private final void updateDataNetType(int net) { switch (net) { case TelephonyManager.NETWORK_TYPE_EDGE: Loading Loading @@ -1211,7 +1211,7 @@ public class StatusBarPolicy { } } private final void updateCdmaRoamingIcon() { private final void updateCdmaRoamingIcon(ServiceState state) { if (!hasService()) { mService.setIconVisibility(mCdmaRoamingIndicatorIcon, false); return; Loading @@ -1223,8 +1223,8 @@ public class StatusBarPolicy { } int[] iconList = sRoamingIndicatorImages_cdma; int iconIndex = mPhone.getCdmaEriIconIndex(); int iconMode = mPhone.getCdmaEriIconMode(); int iconIndex = state.getCdmaEriIconIndex(); int iconMode = state.getCdmaEriIconMode(); if (iconIndex == -1) { Log.e(TAG, "getCdmaEriIconIndex returned null, skipping ERI icon update"); Loading telephony/java/android/telephony/PhoneStateListener.java +11 −2 Original line number Diff line number Diff line Loading @@ -205,6 +205,13 @@ public class PhoneStateListener { // default implementation empty } /** * @hide * same as above, but with the network type. Both called. */ public void onDataConnectionStateChanged(int state, int networkType) { } /** * Callback invoked when data activity state changes. * Loading Loading @@ -264,8 +271,9 @@ public class PhoneStateListener { Message.obtain(mHandler, LISTEN_CALL_STATE, state, 0, incomingNumber).sendToTarget(); } public void onDataConnectionStateChanged(int state) { Message.obtain(mHandler, LISTEN_DATA_CONNECTION_STATE, state, 0, null).sendToTarget(); public void onDataConnectionStateChanged(int state, int networkType) { Message.obtain(mHandler, LISTEN_DATA_CONNECTION_STATE, state, networkType, null). sendToTarget(); } public void onDataActivity(int direction) { Loading Loading @@ -299,6 +307,7 @@ public class PhoneStateListener { PhoneStateListener.this.onCallStateChanged(msg.arg1, (String)msg.obj); break; case LISTEN_DATA_CONNECTION_STATE: PhoneStateListener.this.onDataConnectionStateChanged(msg.arg1, msg.arg2); PhoneStateListener.this.onDataConnectionStateChanged(msg.arg1); break; case LISTEN_DATA_ACTIVITY: Loading telephony/java/android/telephony/ServiceState.java +41 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,8 @@ public class ServiceState implements Parcelable { private int mSystemId; private int mCdmaRoamingIndicator; private int mCdmaDefaultRoamingIndicator; private int mCdmaEriIconIndex; private int mCdmaEriIconMode; /** * Create a new ServiceState from a intent notifier Bundle Loading Loading @@ -166,6 +168,8 @@ public class ServiceState implements Parcelable { mSystemId = s.mSystemId; mCdmaRoamingIndicator = s.mCdmaRoamingIndicator; mCdmaDefaultRoamingIndicator = s.mCdmaDefaultRoamingIndicator; mCdmaEriIconIndex = s.mCdmaEriIconIndex; mCdmaEriIconMode = s.mCdmaEriIconMode; } /** Loading @@ -184,6 +188,8 @@ public class ServiceState implements Parcelable { mSystemId = in.readInt(); mCdmaRoamingIndicator = in.readInt(); mCdmaDefaultRoamingIndicator = in.readInt(); mCdmaEriIconIndex = in.readInt(); mCdmaEriIconMode = in.readInt(); } public void writeToParcel(Parcel out, int flags) { Loading @@ -199,6 +205,8 @@ public class ServiceState implements Parcelable { out.writeInt(mSystemId); out.writeInt(mCdmaRoamingIndicator); out.writeInt(mCdmaDefaultRoamingIndicator); out.writeInt(mCdmaEriIconIndex); out.writeInt(mCdmaEriIconMode); } public int describeContents() { Loading Loading @@ -253,6 +261,20 @@ public class ServiceState implements Parcelable { return this.mCdmaDefaultRoamingIndicator; } /** * @hide */ public int getCdmaEriIconIndex() { return this.mCdmaEriIconIndex; } /** * @hide */ public int getCdmaEriIconMode() { return this.mCdmaEriIconMode; } /** * Get current registered operator name in long alphanumeric format * Loading Loading @@ -412,8 +434,11 @@ public class ServiceState implements Parcelable { mSystemId = -1; mCdmaRoamingIndicator = -1; mCdmaDefaultRoamingIndicator = -1; mCdmaEriIconIndex = -1; mCdmaEriIconMode = -1; } // TODO - can't this be combined with the above func.. public void setStateOff() { mState = STATE_POWER_OFF; mRoaming = false; Loading @@ -427,6 +452,8 @@ public class ServiceState implements Parcelable { mSystemId = -1; mCdmaRoamingIndicator = -1; mCdmaDefaultRoamingIndicator = -1; mCdmaEriIconIndex = -1; mCdmaEriIconMode = -1; } public void setState(int state) { Loading @@ -451,6 +478,20 @@ public class ServiceState implements Parcelable { this.mCdmaDefaultRoamingIndicator = roaming; } /** * @hide */ public void setCdmaEriIconIndex(int index) { this.mCdmaEriIconIndex = index; } /** * @hide */ public void setCdmaEriIconMode(int mode) { this.mCdmaEriIconMode = mode; } public void setOperatorName(String longName, String shortName, String numeric) { mOperatorAlphaLong = longName; mOperatorAlphaShort = shortName; Loading telephony/java/com/android/internal/telephony/DefaultPhoneNotifier.java +4 −1 Original line number Diff line number Diff line Loading @@ -93,13 +93,16 @@ public class DefaultPhoneNotifier implements PhoneNotifier { } public void notifyDataConnection(Phone sender, String reason) { TelephonyManager telephony = TelephonyManager.getDefault(); try { mRegistry.notifyDataConnection( convertDataState(sender.getDataConnectionState()), sender.isDataConnectivityPossible(), reason, sender.getActiveApn(), sender.getActiveApnTypes(), sender.getInterfaceName(null)); sender.getInterfaceName(null), ((telephony!=null) ? telephony.getNetworkType() : TelephonyManager.NETWORK_TYPE_UNKNOWN)); } catch (RemoteException ex) { // system process is dead } Loading Loading
services/java/com/android/server/TelephonyRegistry.java +7 −3 Original line number Diff line number Diff line Loading @@ -94,6 +94,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { private Bundle mCellLocation = new Bundle(); private int mDataConnectionNetworkType; static final int PHONE_STATE_PERMISSION_MASK = PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR | PhoneStateListener.LISTEN_CALL_STATE | Loading Loading @@ -187,7 +189,8 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { } if ((events & PhoneStateListener.LISTEN_DATA_CONNECTION_STATE) != 0) { try { r.callback.onDataConnectionStateChanged(mDataConnectionState); r.callback.onDataConnectionStateChanged(mDataConnectionState, mDataConnectionNetworkType); } catch (RemoteException ex) { remove(r.binder); } Loading Loading @@ -345,7 +348,7 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { } public void notifyDataConnection(int state, boolean isDataConnectivityPossible, String reason, String apn, String[] apnTypes, String interfaceName) { String reason, String apn, String[] apnTypes, String interfaceName, int networkType) { if (!checkNotifyPermission("notifyDataConnection()" )) { return; } Loading @@ -356,11 +359,12 @@ class TelephonyRegistry extends ITelephonyRegistry.Stub { mDataConnectionApn = apn; mDataConnectionApnTypes = apnTypes; mDataConnectionInterfaceName = interfaceName; mDataConnectionNetworkType = networkType; for (int i = mRecords.size() - 1; i >= 0; i--) { Record r = mRecords.get(i); if ((r.events & PhoneStateListener.LISTEN_DATA_CONNECTION_STATE) != 0) { try { r.callback.onDataConnectionStateChanged(state); r.callback.onDataConnectionStateChanged(state, networkType); } catch (RemoteException ex) { remove(r.binder); } Loading
services/java/com/android/server/status/StatusBarPolicy.java +9 −9 Original line number Diff line number Diff line Loading @@ -782,7 +782,7 @@ public class StatusBarPolicy { public void onServiceStateChanged(ServiceState state) { mServiceState = state; updateSignalStrength(); updateCdmaRoamingIcon(); updateCdmaRoamingIcon(state); updateDataIcon(); } Loading @@ -796,9 +796,9 @@ public class StatusBarPolicy { } @Override public void onDataConnectionStateChanged(int state) { public void onDataConnectionStateChanged(int state, int networkType) { mDataState = state; updateDataNetType(); updateDataNetType(networkType); updateDataIcon(); } Loading Loading @@ -835,7 +835,7 @@ public class StatusBarPolicy { } private boolean isCdma() { return ((mPhone != null) && (mPhone.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA)); return (mSignalStrength != null) && !mSignalStrength.isGsm(); } private boolean isEvdo() { Loading Loading @@ -889,6 +889,7 @@ public class StatusBarPolicy { else if (asu >= 4) iconLevel = 2; else iconLevel = 1; // Though mPhone is a Manager, this call is not an IPC if (mPhone.isNetworkRoaming()) { iconList = sSignalImages_r; } else { Loading Loading @@ -956,8 +957,7 @@ public class StatusBarPolicy { return (levelEvdoDbm < levelEvdoSnr) ? levelEvdoDbm : levelEvdoSnr; } private final void updateDataNetType() { int net = mPhone.getNetworkType(); private final void updateDataNetType(int net) { switch (net) { case TelephonyManager.NETWORK_TYPE_EDGE: Loading Loading @@ -1211,7 +1211,7 @@ public class StatusBarPolicy { } } private final void updateCdmaRoamingIcon() { private final void updateCdmaRoamingIcon(ServiceState state) { if (!hasService()) { mService.setIconVisibility(mCdmaRoamingIndicatorIcon, false); return; Loading @@ -1223,8 +1223,8 @@ public class StatusBarPolicy { } int[] iconList = sRoamingIndicatorImages_cdma; int iconIndex = mPhone.getCdmaEriIconIndex(); int iconMode = mPhone.getCdmaEriIconMode(); int iconIndex = state.getCdmaEriIconIndex(); int iconMode = state.getCdmaEriIconMode(); if (iconIndex == -1) { Log.e(TAG, "getCdmaEriIconIndex returned null, skipping ERI icon update"); Loading
telephony/java/android/telephony/PhoneStateListener.java +11 −2 Original line number Diff line number Diff line Loading @@ -205,6 +205,13 @@ public class PhoneStateListener { // default implementation empty } /** * @hide * same as above, but with the network type. Both called. */ public void onDataConnectionStateChanged(int state, int networkType) { } /** * Callback invoked when data activity state changes. * Loading Loading @@ -264,8 +271,9 @@ public class PhoneStateListener { Message.obtain(mHandler, LISTEN_CALL_STATE, state, 0, incomingNumber).sendToTarget(); } public void onDataConnectionStateChanged(int state) { Message.obtain(mHandler, LISTEN_DATA_CONNECTION_STATE, state, 0, null).sendToTarget(); public void onDataConnectionStateChanged(int state, int networkType) { Message.obtain(mHandler, LISTEN_DATA_CONNECTION_STATE, state, networkType, null). sendToTarget(); } public void onDataActivity(int direction) { Loading Loading @@ -299,6 +307,7 @@ public class PhoneStateListener { PhoneStateListener.this.onCallStateChanged(msg.arg1, (String)msg.obj); break; case LISTEN_DATA_CONNECTION_STATE: PhoneStateListener.this.onDataConnectionStateChanged(msg.arg1, msg.arg2); PhoneStateListener.this.onDataConnectionStateChanged(msg.arg1); break; case LISTEN_DATA_ACTIVITY: Loading
telephony/java/android/telephony/ServiceState.java +41 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,8 @@ public class ServiceState implements Parcelable { private int mSystemId; private int mCdmaRoamingIndicator; private int mCdmaDefaultRoamingIndicator; private int mCdmaEriIconIndex; private int mCdmaEriIconMode; /** * Create a new ServiceState from a intent notifier Bundle Loading Loading @@ -166,6 +168,8 @@ public class ServiceState implements Parcelable { mSystemId = s.mSystemId; mCdmaRoamingIndicator = s.mCdmaRoamingIndicator; mCdmaDefaultRoamingIndicator = s.mCdmaDefaultRoamingIndicator; mCdmaEriIconIndex = s.mCdmaEriIconIndex; mCdmaEriIconMode = s.mCdmaEriIconMode; } /** Loading @@ -184,6 +188,8 @@ public class ServiceState implements Parcelable { mSystemId = in.readInt(); mCdmaRoamingIndicator = in.readInt(); mCdmaDefaultRoamingIndicator = in.readInt(); mCdmaEriIconIndex = in.readInt(); mCdmaEriIconMode = in.readInt(); } public void writeToParcel(Parcel out, int flags) { Loading @@ -199,6 +205,8 @@ public class ServiceState implements Parcelable { out.writeInt(mSystemId); out.writeInt(mCdmaRoamingIndicator); out.writeInt(mCdmaDefaultRoamingIndicator); out.writeInt(mCdmaEriIconIndex); out.writeInt(mCdmaEriIconMode); } public int describeContents() { Loading Loading @@ -253,6 +261,20 @@ public class ServiceState implements Parcelable { return this.mCdmaDefaultRoamingIndicator; } /** * @hide */ public int getCdmaEriIconIndex() { return this.mCdmaEriIconIndex; } /** * @hide */ public int getCdmaEriIconMode() { return this.mCdmaEriIconMode; } /** * Get current registered operator name in long alphanumeric format * Loading Loading @@ -412,8 +434,11 @@ public class ServiceState implements Parcelable { mSystemId = -1; mCdmaRoamingIndicator = -1; mCdmaDefaultRoamingIndicator = -1; mCdmaEriIconIndex = -1; mCdmaEriIconMode = -1; } // TODO - can't this be combined with the above func.. public void setStateOff() { mState = STATE_POWER_OFF; mRoaming = false; Loading @@ -427,6 +452,8 @@ public class ServiceState implements Parcelable { mSystemId = -1; mCdmaRoamingIndicator = -1; mCdmaDefaultRoamingIndicator = -1; mCdmaEriIconIndex = -1; mCdmaEriIconMode = -1; } public void setState(int state) { Loading @@ -451,6 +478,20 @@ public class ServiceState implements Parcelable { this.mCdmaDefaultRoamingIndicator = roaming; } /** * @hide */ public void setCdmaEriIconIndex(int index) { this.mCdmaEriIconIndex = index; } /** * @hide */ public void setCdmaEriIconMode(int mode) { this.mCdmaEriIconMode = mode; } public void setOperatorName(String longName, String shortName, String numeric) { mOperatorAlphaLong = longName; mOperatorAlphaShort = shortName; Loading
telephony/java/com/android/internal/telephony/DefaultPhoneNotifier.java +4 −1 Original line number Diff line number Diff line Loading @@ -93,13 +93,16 @@ public class DefaultPhoneNotifier implements PhoneNotifier { } public void notifyDataConnection(Phone sender, String reason) { TelephonyManager telephony = TelephonyManager.getDefault(); try { mRegistry.notifyDataConnection( convertDataState(sender.getDataConnectionState()), sender.isDataConnectivityPossible(), reason, sender.getActiveApn(), sender.getActiveApnTypes(), sender.getInterfaceName(null)); sender.getInterfaceName(null), ((telephony!=null) ? telephony.getNetworkType() : TelephonyManager.NETWORK_TYPE_UNKNOWN)); } catch (RemoteException ex) { // system process is dead } Loading