Skip to content

Commit c48ee60

Browse files
Robert GreenwaltAndroid Git Automerger
authored andcommitted
am 6626398: Merge "Fix for updating TCP buffer size when switching network type"
* commit '6626398a72ae592e3a9184c9b0868df0fc1f1724': Fix for updating TCP buffer size when switching network type
2 parents 21bf465 + 6626398 commit c48ee60

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

core/java/android/net/MobileDataStateTracker.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,17 @@ public void onReceive(Context context, Intent intent) {
184184
if (!TextUtils.equals(apnType, mApnType)) {
185185
return;
186186
}
187-
mNetworkInfo.setSubtype(TelephonyManager.getDefault().getNetworkType(),
188-
TelephonyManager.getDefault().getNetworkTypeName());
187+
188+
int oldSubtype = mNetworkInfo.getSubtype();
189+
int newSubType = TelephonyManager.getDefault().getNetworkType();
190+
String subTypeName = TelephonyManager.getDefault().getNetworkTypeName();
191+
mNetworkInfo.setSubtype(newSubType, subTypeName);
192+
if (newSubType != oldSubtype && mNetworkInfo.isConnected()) {
193+
Message msg = mTarget.obtainMessage(EVENT_NETWORK_SUBTYPE_CHANGED,
194+
oldSubtype, 0, mNetworkInfo);
195+
msg.sendToTarget();
196+
}
197+
189198
PhoneConstants.DataState state = Enum.valueOf(PhoneConstants.DataState.class,
190199
intent.getStringExtra(PhoneConstants.STATE_KEY));
191200
String reason = intent.getStringExtra(PhoneConstants.STATE_CHANGE_REASON_KEY);

core/java/android/net/NetworkStateTracker.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@ public interface NetworkStateTracker {
6868
*/
6969
public static final int EVENT_RESTORE_DEFAULT_NETWORK = 6;
7070

71+
/**
72+
* msg.what = EVENT_NETWORK_SUBTYPE_CHANGED
73+
* msg.obj = NetworkInfo object
74+
*/
75+
public static final int EVENT_NETWORK_SUBTYPE_CHANGED = 7;
76+
7177
/**
7278
* -------------------------------------------------------------
7379
* Control Interface

services/java/com/android/server/ConnectivityService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2490,6 +2490,11 @@ public void handleMessage(Message msg) {
24902490
// @see bug/4455071
24912491
handleConnectivityChange(info.getType(), false);
24922492
break;
2493+
case NetworkStateTracker.EVENT_NETWORK_SUBTYPE_CHANGED:
2494+
info = (NetworkInfo) msg.obj;
2495+
type = info.getType();
2496+
updateNetworkSettings(mNetTrackers[type]);
2497+
break;
24932498
case EVENT_CLEAR_NET_TRANSITION_WAKELOCK:
24942499
String causedBy = null;
24952500
synchronized (ConnectivityService.this) {

0 commit comments

Comments
 (0)