Fix internet panel doesn't show data rat after dds changed
The internet panel does not listen dds changed. Bug: 193029917 Test: atest NetworkProviderWorkerTest Change-Id: I58544ec2fd3f2bba5c6590ce54bcf68d0c83b06b
This commit is contained in:
@@ -20,7 +20,10 @@ import static com.android.settings.network.InternetUpdater.INTERNET_ETHERNET;
|
|||||||
import static com.android.settingslib.mobile.MobileMappings.getIconKey;
|
import static com.android.settingslib.mobile.MobileMappings.getIconKey;
|
||||||
import static com.android.settingslib.mobile.MobileMappings.mapIconSets;
|
import static com.android.settingslib.mobile.MobileMappings.mapIconSets;
|
||||||
|
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -60,11 +63,22 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
|||||||
private SubscriptionsChangeListener mSubscriptionsListener;
|
private SubscriptionsChangeListener mSubscriptionsListener;
|
||||||
private MobileDataEnabledListener mDataEnabledListener;
|
private MobileDataEnabledListener mDataEnabledListener;
|
||||||
private DataConnectivityListener mConnectivityListener;
|
private DataConnectivityListener mConnectivityListener;
|
||||||
private int mDefaultDataSubid = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
final Handler mHandler;
|
final Handler mHandler;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final NetworkProviderTelephonyCallback mTelephonyCallback;
|
final NetworkProviderTelephonyCallback mTelephonyCallback;
|
||||||
|
private final BroadcastReceiver mConnectionChangeReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
final String action = intent.getAction();
|
||||||
|
if (action.equals(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) {
|
||||||
|
Log.d(TAG, "ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED");
|
||||||
|
updateListener();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private TelephonyManager mTelephonyManager;
|
private TelephonyManager mTelephonyManager;
|
||||||
private Config mConfig = null;
|
private Config mConfig = null;
|
||||||
private TelephonyDisplayInfo mTelephonyDisplayInfo =
|
private TelephonyDisplayInfo mTelephonyDisplayInfo =
|
||||||
@@ -80,10 +94,10 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
|||||||
mMobileDataObserver = new DataContentObserver(mHandler, this);
|
mMobileDataObserver = new DataContentObserver(mHandler, this);
|
||||||
|
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mDefaultDataSubid = getDefaultDataSubscriptionId();
|
mDefaultDataSubId = getDefaultDataSubscriptionId();
|
||||||
|
Log.d(TAG, "Init, SubId: " + mDefaultDataSubId);
|
||||||
mTelephonyManager = mContext.getSystemService(
|
mTelephonyManager = mContext.getSystemService(
|
||||||
TelephonyManager.class).createForSubscriptionId(mDefaultDataSubid);
|
TelephonyManager.class).createForSubscriptionId(mDefaultDataSubId);
|
||||||
mTelephonyCallback = new NetworkProviderTelephonyCallback();
|
mTelephonyCallback = new NetworkProviderTelephonyCallback();
|
||||||
mSubscriptionsListener = new SubscriptionsChangeListener(context, this);
|
mSubscriptionsListener = new SubscriptionsChangeListener(context, this);
|
||||||
mDataEnabledListener = new MobileDataEnabledListener(context, this);
|
mDataEnabledListener = new MobileDataEnabledListener(context, this);
|
||||||
@@ -98,12 +112,15 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
|||||||
@Override
|
@Override
|
||||||
protected void onSlicePinned() {
|
protected void onSlicePinned() {
|
||||||
Log.d(TAG, "onSlicePinned");
|
Log.d(TAG, "onSlicePinned");
|
||||||
mMobileDataObserver.register(mContext, mDefaultDataSubid);
|
mMobileDataObserver.register(mContext, mDefaultDataSubId);
|
||||||
mSubscriptionsListener.start();
|
mSubscriptionsListener.start();
|
||||||
mDataEnabledListener.start(mDefaultDataSubid);
|
mDataEnabledListener.start(mDefaultDataSubId);
|
||||||
mConnectivityListener.start();
|
mConnectivityListener.start();
|
||||||
mSignalStrengthListener.resume();
|
mSignalStrengthListener.resume();
|
||||||
mTelephonyManager.registerTelephonyCallback(mHandler::post, mTelephonyCallback);
|
mTelephonyManager.registerTelephonyCallback(mHandler::post, mTelephonyCallback);
|
||||||
|
IntentFilter filter = new IntentFilter();
|
||||||
|
filter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
|
||||||
|
mContext.registerReceiver(mConnectionChangeReceiver, filter);
|
||||||
super.onSlicePinned();
|
super.onSlicePinned();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,6 +133,9 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
|||||||
mConnectivityListener.stop();
|
mConnectivityListener.stop();
|
||||||
mSignalStrengthListener.pause();
|
mSignalStrengthListener.pause();
|
||||||
mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
|
mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
|
||||||
|
if (mConnectionChangeReceiver != null) {
|
||||||
|
mContext.unregisterReceiver(mConnectionChangeReceiver);
|
||||||
|
}
|
||||||
super.onSliceUnpinned();
|
super.onSliceUnpinned();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,14 +157,14 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
|||||||
notifySliceChange();
|
notifySliceChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private void updateListener() {
|
||||||
public void onSubscriptionsChanged() {
|
|
||||||
int defaultDataSubId = getDefaultDataSubscriptionId();
|
int defaultDataSubId = getDefaultDataSubscriptionId();
|
||||||
if (mDefaultDataSubid == defaultDataSubId) {
|
if (mDefaultDataSubId == defaultDataSubId) {
|
||||||
Log.d(TAG, "onSubscriptionsChanged: no change");
|
Log.d(TAG, "DDS: no change");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Log.d(TAG, "onSubscriptionsChanged: defaultDataSubId:" + defaultDataSubId);
|
mDefaultDataSubId = defaultDataSubId;
|
||||||
|
Log.d(TAG, "DDS: defaultDataSubId:" + mDefaultDataSubId);
|
||||||
if (SubscriptionManager.isUsableSubscriptionId(defaultDataSubId)) {
|
if (SubscriptionManager.isUsableSubscriptionId(defaultDataSubId)) {
|
||||||
mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
|
mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
|
||||||
mMobileDataObserver.unregister(mContext);
|
mMobileDataObserver.unregister(mContext);
|
||||||
@@ -160,6 +180,12 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
|||||||
updateSlice();
|
updateSlice();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSubscriptionsChanged() {
|
||||||
|
Log.d(TAG, "onSubscriptionsChanged");
|
||||||
|
updateListener();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSignalStrengthChanged() {
|
public void onSignalStrengthChanged() {
|
||||||
Log.d(TAG, "onSignalStrengthChanged");
|
Log.d(TAG, "onSignalStrengthChanged");
|
||||||
@@ -283,7 +309,7 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
|||||||
*/
|
*/
|
||||||
public String getNetworkTypeDescription() {
|
public String getNetworkTypeDescription() {
|
||||||
return updateNetworkTypeName(mContext, mConfig, mTelephonyDisplayInfo,
|
return updateNetworkTypeName(mContext, mConfig, mTelephonyDisplayInfo,
|
||||||
mDefaultDataSubid);
|
mDefaultDataSubId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user