commit | 54c236a071faca01bc2a8902ed4e83da63b774f4 | [log] [tgz] |
---|---|---|
author | Vipin Sapra <vipin.sapra@gmail.com> | Wed May 13 09:02:00 2015 -0700 |
committer | Vipin Sapra <vipin.sapra@gmail.com> | Wed May 13 09:02:00 2015 -0700 |
tree | 6fc819e113089dbdd5c85554519386c1b6c5c5f2 | |
parent | e9b0fcbc79c39445c0a270dd9dbd08146d05c404 [diff] |
Possible fix for https://code.google.com/p/android/issues/detail?id=152085 There is a bug identified in Android NetworkInfo API (http://developer.android.com/reference/android/net/NetworkInfo.html) since Android Lollipop 5.0.0 release. On Android 4.4 and prior, the NetworkInfo API was correctly reporting disconnection reason. In Android 5.0+, this NetworkInfo API does not correctly report the reason of disconnection. The submitted framework modification appears to fix this issue and report the reason. Change-Id: I4d2d1a03cee7faf89c08298a83de67028714eac7 Signed-off-by: Vipin Sapra <vipin.sapra@gmail.com>
diff --git a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java index 21bc671..dfe8236 100644 --- a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java +++ b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
@@ -1740,8 +1740,14 @@ @Override public void exit() { if (DBG) log("DcActiveState: exit dc=" + this); + String reason = mNetworkInfo.getReason(); + if (mDisconnectParams != null && mDisconnectParams.mReason != null) { + reason = mDisconnectParams.mReason; + } else if (mDcFailCause != null) { + reason = mDcFailCause.toString(); + } mNetworkInfo.setDetailedState(NetworkInfo.DetailedState.DISCONNECTED, - mNetworkInfo.getReason(), mNetworkInfo.getExtraInfo()); + reason, mNetworkInfo.getExtraInfo()); mNetworkAgent.sendNetworkInfo(mNetworkInfo); mNetworkAgent = null; }