[Settings] Do not insert subInfo repeatedly
Bug: 264322977 Test: manual Change-Id: If1e9144c9d682befe5bccd3fa506ad82e2807b09
This commit is contained in:
@@ -45,7 +45,6 @@ import com.android.settings.widget.SummaryUpdater;
|
|||||||
import com.android.settings.wifi.WifiSummaryUpdater;
|
import com.android.settings.wifi.WifiSummaryUpdater;
|
||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.mobile.dataservice.DataServiceUtils;
|
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
||||||
@@ -238,10 +237,8 @@ public class InternetPreferenceController extends AbstractPreferenceController i
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) {
|
mSubInfoEntityList = subInfoEntityList;
|
||||||
mSubInfoEntityList = subInfoEntityList;
|
updateState(mPreference);
|
||||||
updateState(mPreference);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -42,7 +42,6 @@ import android.util.Log;
|
|||||||
import com.android.settings.network.telephony.MobileNetworkUtils;
|
import com.android.settings.network.telephony.MobileNetworkUtils;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.mobile.dataservice.DataServiceUtils;
|
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkDatabase;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkDatabase;
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoDao;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoDao;
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
||||||
@@ -53,7 +52,6 @@ import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
@@ -71,7 +69,12 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
|
|||||||
private static final String TAG = "MobileNetworkRepository";
|
private static final String TAG = "MobileNetworkRepository";
|
||||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||||
|
|
||||||
private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();
|
private static ExecutorService sExecutor = Executors.newSingleThreadExecutor();
|
||||||
|
private static Map<String, SubscriptionInfoEntity> sCacheSubscriptionInfoEntityMap =
|
||||||
|
new ArrayMap<>();
|
||||||
|
private static Map<String, MobileNetworkInfoEntity> sCacheMobileNetworkInfoEntityMap =
|
||||||
|
new ArrayMap<>();
|
||||||
|
private static Map<String, UiccInfoEntity> sCacheUiccInfoEntityMap = new ArrayMap<>();
|
||||||
|
|
||||||
private SubscriptionManager mSubscriptionManager;
|
private SubscriptionManager mSubscriptionManager;
|
||||||
private TelephonyManager mTelephonyManager;
|
private TelephonyManager mTelephonyManager;
|
||||||
@@ -130,8 +133,8 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
|
|||||||
mDataContentObserver = new MobileDataContentObserver(
|
mDataContentObserver = new MobileDataContentObserver(
|
||||||
new Handler(Looper.getMainLooper()));
|
new Handler(Looper.getMainLooper()));
|
||||||
mDataContentObserver.setOnMobileDataChangedListener(() -> {
|
mDataContentObserver.setOnMobileDataChangedListener(() -> {
|
||||||
mExecutor.execute(() -> {
|
sExecutor.execute(() -> {
|
||||||
insertMobileNetworkInfo(context);
|
insertMobileNetworkInfo(context, String.valueOf(mSubId));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
mFilter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
|
mFilter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
|
||||||
@@ -192,19 +195,25 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void observeAllSubInfo(LifecycleOwner lifecycleOwner) {
|
private void observeAllSubInfo(LifecycleOwner lifecycleOwner) {
|
||||||
Log.d(TAG, "Observe subInfo.");
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "Observe subInfo.");
|
||||||
|
}
|
||||||
mMobileNetworkDatabase.queryAvailableSubInfos().observe(
|
mMobileNetworkDatabase.queryAvailableSubInfos().observe(
|
||||||
lifecycleOwner, this::onAvailableSubInfoChanged);
|
lifecycleOwner, this::onAvailableSubInfoChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void observeAllUiccInfo(LifecycleOwner lifecycleOwner) {
|
private void observeAllUiccInfo(LifecycleOwner lifecycleOwner) {
|
||||||
Log.d(TAG, "Observe UICC info.");
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "Observe UICC info.");
|
||||||
|
}
|
||||||
mMobileNetworkDatabase.queryAllUiccInfo().observe(
|
mMobileNetworkDatabase.queryAllUiccInfo().observe(
|
||||||
lifecycleOwner, this::onAllUiccInfoChanged);
|
lifecycleOwner, this::onAllUiccInfoChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void observeAllMobileNetworkInfo(LifecycleOwner lifecycleOwner) {
|
private void observeAllMobileNetworkInfo(LifecycleOwner lifecycleOwner) {
|
||||||
Log.d(TAG, "Observe mobile network info.");
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "Observe mobile network info.");
|
||||||
|
}
|
||||||
mMobileNetworkDatabase.queryAllMobileNetworkInfo().observe(
|
mMobileNetworkDatabase.queryAllMobileNetworkInfo().observe(
|
||||||
lifecycleOwner, this::onAllMobileNetworkInfoChanged);
|
lifecycleOwner, this::onAllMobileNetworkInfoChanged);
|
||||||
}
|
}
|
||||||
@@ -321,35 +330,44 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void insertSubInfo(Context context, SubscriptionInfo info) {
|
public void insertSubInfo(Context context, SubscriptionInfo info) {
|
||||||
mExecutor.execute(() -> {
|
SubscriptionInfoEntity subInfoEntity =
|
||||||
SubscriptionInfoEntity subInfoEntity =
|
convertToSubscriptionInfoEntity(context, info);
|
||||||
convertToSubscriptionInfoEntity(context, info);
|
String subId = String.valueOf(mSubId);
|
||||||
if (subInfoEntity != null) {
|
if (subInfoEntity != null) {
|
||||||
int subId = info.getSubscriptionId();
|
if (!sCacheSubscriptionInfoEntityMap.containsKey(subId)
|
||||||
mSubscriptionInfoMap.put(subId, info);
|
|| (sCacheSubscriptionInfoEntityMap.get(subId) != null
|
||||||
|
&& !sCacheSubscriptionInfoEntityMap.get(subId).equals(subInfoEntity))) {
|
||||||
|
sCacheSubscriptionInfoEntityMap.put(subId, subInfoEntity);
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "convert subId " + subId + "to SubscriptionInfoEntity: "
|
Log.d(TAG, "convert subId " + subId + "to SubscriptionInfoEntity: "
|
||||||
+ subInfoEntity);
|
+ subInfoEntity);
|
||||||
}
|
}
|
||||||
mMobileNetworkDatabase.insertSubsInfo(subInfoEntity);
|
mMobileNetworkDatabase.insertSubsInfo(subInfoEntity);
|
||||||
|
insertUiccInfo(subId);
|
||||||
|
insertMobileNetworkInfo(context, subId);
|
||||||
mMetricsFeatureProvider.action(mContext,
|
mMetricsFeatureProvider.action(mContext,
|
||||||
SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_SUB_INFO);
|
SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_SUB_INFO);
|
||||||
} else if (DEBUG) {
|
} else if (DEBUG) {
|
||||||
Log.d(TAG, "Can not insert subInfo, the entity is null");
|
Log.d(TAG, "Can not insert subInfo, the entity is null");
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteAllInfoBySubId(String subId) {
|
public void deleteAllInfoBySubId(String subId) {
|
||||||
mExecutor.execute(() -> {
|
if (DEBUG) {
|
||||||
mMobileNetworkDatabase.deleteSubInfoBySubId(subId);
|
Log.d(TAG, "deleteAllInfoBySubId, subId = " + subId);
|
||||||
mMobileNetworkDatabase.deleteUiccInfoBySubId(subId);
|
}
|
||||||
mMobileNetworkDatabase.deleteMobileNetworkInfoBySubId(subId);
|
mMobileNetworkDatabase.deleteSubInfoBySubId(subId);
|
||||||
});
|
mMobileNetworkDatabase.deleteUiccInfoBySubId(subId);
|
||||||
|
mMobileNetworkDatabase.deleteMobileNetworkInfoBySubId(subId);
|
||||||
mAvailableSubInfoEntityList.removeIf(info -> info.subId.equals(subId));
|
mAvailableSubInfoEntityList.removeIf(info -> info.subId.equals(subId));
|
||||||
mActiveSubInfoEntityList.removeIf(info -> info.subId.equals(subId));
|
mActiveSubInfoEntityList.removeIf(info -> info.subId.equals(subId));
|
||||||
mUiccInfoEntityList.removeIf(info -> info.subId.equals(subId));
|
mUiccInfoEntityList.removeIf(info -> info.subId.equals(subId));
|
||||||
mMobileNetworkInfoEntityList.removeIf(info -> info.subId.equals(subId));
|
mMobileNetworkInfoEntityList.removeIf(info -> info.subId.equals(subId));
|
||||||
|
mSubscriptionInfoMap.remove(Integer.parseInt(subId));
|
||||||
|
sCacheSubscriptionInfoEntityMap.remove(subId);
|
||||||
|
sCacheUiccInfoEntityMap.remove(subId);
|
||||||
|
sCacheMobileNetworkInfoEntityMap.remove(subId);
|
||||||
mMetricsFeatureProvider.action(mContext,
|
mMetricsFeatureProvider.action(mContext,
|
||||||
SettingsEnums.ACTION_MOBILE_NETWORK_DB_DELETE_DATA);
|
SettingsEnums.ACTION_MOBILE_NETWORK_DB_DELETE_DATA);
|
||||||
}
|
}
|
||||||
@@ -368,8 +386,6 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
|
|||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
getUiccInfoBySubscriptionInfo(uiccSlotInfos, subInfo);
|
getUiccInfoBySubscriptionInfo(uiccSlotInfos, subInfo);
|
||||||
insertUiccInfo();
|
|
||||||
insertMobileNetworkInfo(context);
|
|
||||||
SubscriptionInfo firstRemovableSubInfo = SubscriptionUtil.getFirstRemovableSubscription(
|
SubscriptionInfo firstRemovableSubInfo = SubscriptionUtil.getFirstRemovableSubscription(
|
||||||
context);
|
context);
|
||||||
SubscriptionInfo subscriptionOrDefault = SubscriptionUtil.getSubscriptionOrDefault(
|
SubscriptionInfo subscriptionOrDefault = SubscriptionUtil.getSubscriptionOrDefault(
|
||||||
@@ -406,24 +422,32 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void insertUiccInfo() {
|
public void insertUiccInfo(String subId) {
|
||||||
UiccInfoEntity uiccInfoEntity = convertToUiccInfoEntity();
|
UiccInfoEntity uiccInfoEntity = convertToUiccInfoEntity();
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "uiccInfoEntity = " + uiccInfoEntity);
|
Log.d(TAG, "uiccInfoEntity = " + uiccInfoEntity);
|
||||||
}
|
}
|
||||||
mMobileNetworkDatabase.insertUiccInfo(uiccInfoEntity);
|
if (!sCacheUiccInfoEntityMap.containsKey(subId)
|
||||||
mMetricsFeatureProvider.action(mContext,
|
|| !sCacheUiccInfoEntityMap.get(subId).equals(uiccInfoEntity)) {
|
||||||
SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_UICC_INFO);
|
sCacheUiccInfoEntityMap.put(subId, uiccInfoEntity);
|
||||||
|
mMobileNetworkDatabase.insertUiccInfo(uiccInfoEntity);
|
||||||
|
mMetricsFeatureProvider.action(mContext,
|
||||||
|
SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_UICC_INFO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void insertMobileNetworkInfo(Context context) {
|
public void insertMobileNetworkInfo(Context context, String subId) {
|
||||||
MobileNetworkInfoEntity mobileNetworkInfoEntity = convertToMobileNetworkInfoEntity(context);
|
MobileNetworkInfoEntity mobileNetworkInfoEntity = convertToMobileNetworkInfoEntity(context);
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "mobileNetworkInfoEntity = " + mobileNetworkInfoEntity);
|
Log.d(TAG, "mobileNetworkInfoEntity = " + mobileNetworkInfoEntity);
|
||||||
}
|
}
|
||||||
mMobileNetworkDatabase.insertMobileNetworkInfo(mobileNetworkInfoEntity);
|
if (!sCacheMobileNetworkInfoEntityMap.containsKey(subId)
|
||||||
mMetricsFeatureProvider.action(mContext,
|
|| !sCacheMobileNetworkInfoEntityMap.get(subId).equals(mobileNetworkInfoEntity)) {
|
||||||
SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_MOBILE_NETWORK_INFO);
|
sCacheMobileNetworkInfoEntityMap.put(subId, mobileNetworkInfoEntity);
|
||||||
|
mMobileNetworkDatabase.insertMobileNetworkInfo(mobileNetworkInfoEntity);
|
||||||
|
mMetricsFeatureProvider.action(mContext,
|
||||||
|
SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_MOBILE_NETWORK_INFO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public MobileNetworkInfoEntity convertToMobileNetworkInfoEntity(Context context) {
|
public MobileNetworkInfoEntity convertToMobileNetworkInfoEntity(Context context) {
|
||||||
@@ -468,42 +492,56 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void insertAvailableSubInfoToEntity(List<SubscriptionInfo> availableInfoList) {
|
private void insertAvailableSubInfoToEntity(List<SubscriptionInfo> availableInfoList) {
|
||||||
if ((availableInfoList == null || availableInfoList.size() == 0)
|
sExecutor.execute(() -> {
|
||||||
&& mAvailableSubInfoEntityList.size() != 0) {
|
|
||||||
if (DEBUG) {
|
|
||||||
Log.d(TAG, "availableSudInfoList from framework is empty, remove all subs");
|
|
||||||
}
|
|
||||||
|
|
||||||
SubscriptionInfoEntity[] availableInfoArray = mAvailableSubInfoEntityList.toArray(
|
SubscriptionInfoEntity[] availableInfoArray = mAvailableSubInfoEntityList.toArray(
|
||||||
new SubscriptionInfoEntity[0]);
|
new SubscriptionInfoEntity[0]);
|
||||||
for (SubscriptionInfoEntity info : availableInfoArray) {
|
if ((availableInfoList == null || availableInfoList.size() == 0)
|
||||||
deleteAllInfoBySubId(info.subId);
|
&& mAvailableSubInfoEntityList.size() != 0) {
|
||||||
}
|
|
||||||
|
|
||||||
} else if (availableInfoList != null) {
|
|
||||||
SubscriptionInfo[] infoArray = availableInfoList.toArray(new SubscriptionInfo[0]);
|
|
||||||
for (SubscriptionInfo subInfo : infoArray) {
|
|
||||||
mSubscriptionInfoMap.remove(subInfo.getSubscriptionId());
|
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "insert subInfo to subInfoEntity, subInfo = " + subInfo);
|
Log.d(TAG, "availableSudInfoList from framework is empty, remove all subs");
|
||||||
}
|
}
|
||||||
if (subInfo.isEmbedded()
|
|
||||||
&& subInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING) {
|
|
||||||
if (DEBUG) {
|
|
||||||
Log.d(TAG, "Do not insert the provision eSIM");
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
insertSubInfo(mContext, subInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!mSubscriptionInfoMap.isEmpty()) {
|
for (SubscriptionInfoEntity info : availableInfoArray) {
|
||||||
Iterator<Integer> iterator = mSubscriptionInfoMap.keySet().iterator();
|
deleteAllInfoBySubId(info.subId);
|
||||||
while (iterator.hasNext()) {
|
}
|
||||||
deleteAllInfoBySubId(String.valueOf(iterator.next()));
|
|
||||||
|
} else if (availableInfoList != null) {
|
||||||
|
SubscriptionInfo[] infoArray = availableInfoList.toArray(new SubscriptionInfo[0]);
|
||||||
|
// Remove the redundant subInfo
|
||||||
|
if (availableInfoList.size() <= mAvailableSubInfoEntityList.size()) {
|
||||||
|
for (SubscriptionInfo subInfo : infoArray) {
|
||||||
|
int subId = subInfo.getSubscriptionId();
|
||||||
|
if (mSubscriptionInfoMap.containsKey(subId)) {
|
||||||
|
mSubscriptionInfoMap.remove(subId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mSubscriptionInfoMap.isEmpty()) {
|
||||||
|
for (Integer key : mSubscriptionInfoMap.keySet()) {
|
||||||
|
if (key != null) {
|
||||||
|
deleteAllInfoBySubId(String.valueOf(key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert all new available subInfo to database.
|
||||||
|
for (SubscriptionInfo subInfo : infoArray) {
|
||||||
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "insert subInfo to subInfoEntity, subInfo = " + subInfo);
|
||||||
|
}
|
||||||
|
if (subInfo.isEmbedded()
|
||||||
|
&& subInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING) {
|
||||||
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "Do not insert the provision eSIM");
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
mSubscriptionInfoMap.put(mSubId, subInfo);
|
||||||
|
insertSubInfo(mContext, subInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAirplaneModeOn() {
|
public boolean isAirplaneModeOn() {
|
||||||
|
@@ -41,7 +41,6 @@ import com.android.settingslib.RestrictedPreference;
|
|||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.mobile.dataservice.DataServiceUtils;
|
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
||||||
@@ -203,10 +202,8 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) {
|
mSubInfoEntityList = subInfoEntityList;
|
||||||
mSubInfoEntityList = subInfoEntityList;
|
update();
|
||||||
update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -215,19 +212,14 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) {
|
public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mUiccInfoEntityList, uiccInfoEntityList)) {
|
mUiccInfoEntityList = uiccInfoEntityList;
|
||||||
mUiccInfoEntityList = uiccInfoEntityList;
|
update();
|
||||||
update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAllMobileNetworkInfoChanged(
|
public void onAllMobileNetworkInfoChanged(
|
||||||
List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
|
List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mMobileNetworkInfoEntityList,
|
mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
|
||||||
mobileNetworkInfoEntityList)) {
|
update();
|
||||||
mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -37,7 +37,6 @@ import com.android.settingslib.RestrictedPreference;
|
|||||||
import com.android.settingslib.Utils;
|
import com.android.settingslib.Utils;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.mobile.dataservice.DataServiceUtils;
|
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
||||||
@@ -224,10 +223,8 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) {
|
public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, activeSubInfoList)) {
|
mSubInfoEntityList = activeSubInfoList;
|
||||||
mSubInfoEntityList = activeSubInfoList;
|
update();
|
||||||
update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -38,7 +38,6 @@ import com.android.settingslib.RestrictedPreference;
|
|||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settingslib.mobile.dataservice.DataServiceUtils;
|
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
||||||
@@ -178,11 +177,9 @@ public class NetworkProviderSimListController extends AbstractPreferenceControll
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) {
|
mSubInfoEntityList = subInfoEntityList;
|
||||||
mSubInfoEntityList = subInfoEntityList;
|
mPreferenceCategory.setVisible(isAvailable());
|
||||||
mPreferenceCategory.setVisible(isAvailable());
|
update();
|
||||||
update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -38,7 +38,6 @@ import com.android.internal.annotations.VisibleForTesting;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.network.MobileNetworkRepository;
|
import com.android.settings.network.MobileNetworkRepository;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.mobile.dataservice.DataServiceUtils;
|
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
||||||
@@ -308,11 +307,9 @@ public abstract class DefaultSubscriptionController extends TelephonyBasePrefere
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) {
|
mSubInfoEntityList = subInfoEntityList;
|
||||||
mSubInfoEntityList = subInfoEntityList;
|
updateEntries();
|
||||||
updateEntries();
|
refreshSummary(mPreference);
|
||||||
refreshSummary(mPreference);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -40,7 +40,6 @@ import com.android.settings.network.MobileDataContentObserver;
|
|||||||
import com.android.settings.network.MobileNetworkRepository;
|
import com.android.settings.network.MobileNetworkRepository;
|
||||||
import com.android.settings.wifi.WifiPickerTrackerHelper;
|
import com.android.settings.wifi.WifiPickerTrackerHelper;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.mobile.dataservice.DataServiceUtils;
|
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
||||||
@@ -243,21 +242,18 @@ public class MobileDataPreferenceController extends TelephonyTogglePreferenceCon
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mSubscriptionInfoEntityList,
|
mSubscriptionInfoEntityList = subInfoEntityList;
|
||||||
subInfoEntityList)) {
|
mSubscriptionInfoEntityList.forEach(entity -> {
|
||||||
mSubscriptionInfoEntityList = subInfoEntityList;
|
if (Integer.parseInt(entity.subId) == mSubId) {
|
||||||
mSubscriptionInfoEntityList.forEach(entity -> {
|
mSubscriptionInfoEntity = entity;
|
||||||
if (Integer.parseInt(entity.subId) == mSubId) {
|
|
||||||
mSubscriptionInfoEntity = entity;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (mSubscriptionInfoEntity != null
|
|
||||||
&& mSubscriptionInfoEntity.isDefaultDataSubscription) {
|
|
||||||
mDefaultSubId = Integer.parseInt(mSubscriptionInfoEntity.subId);
|
|
||||||
}
|
}
|
||||||
update();
|
});
|
||||||
refreshSummary(mPreference);
|
if (mSubscriptionInfoEntity != null
|
||||||
|
&& mSubscriptionInfoEntity.isDefaultDataSubscription) {
|
||||||
|
mDefaultSubId = Integer.parseInt(mSubscriptionInfoEntity.subId);
|
||||||
}
|
}
|
||||||
|
update();
|
||||||
|
refreshSummary(mPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -267,17 +263,14 @@ public class MobileDataPreferenceController extends TelephonyTogglePreferenceCon
|
|||||||
@Override
|
@Override
|
||||||
public void onAllMobileNetworkInfoChanged(
|
public void onAllMobileNetworkInfoChanged(
|
||||||
List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
|
List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mMobileNetworkInfoEntityList,
|
mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
|
||||||
mobileNetworkInfoEntityList)) {
|
mMobileNetworkInfoEntityList.forEach(entity -> {
|
||||||
mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
|
if (Integer.parseInt(entity.subId) == mSubId) {
|
||||||
mMobileNetworkInfoEntityList.forEach(entity -> {
|
mMobileNetworkInfoEntity = entity;
|
||||||
if (Integer.parseInt(entity.subId) == mSubId) {
|
update();
|
||||||
mMobileNetworkInfoEntity = entity;
|
refreshSummary(mPreference);
|
||||||
update();
|
return;
|
||||||
refreshSummary(mPreference);
|
}
|
||||||
return;
|
});
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -49,7 +49,6 @@ import com.android.settings.network.telephony.gsm.OpenNetworkSelectPagePreferenc
|
|||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.wifi.WifiPickerTrackerHelper;
|
import com.android.settings.wifi.WifiPickerTrackerHelper;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.mobile.dataservice.DataServiceUtils;
|
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
||||||
@@ -474,35 +473,32 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings impleme
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) {
|
// Check the current subId is existed or not, if so, finish it.
|
||||||
|
if (!mSubscriptionInfoMap.isEmpty()) {
|
||||||
|
|
||||||
// Check the current subId is existed or not, if so, finish it.
|
// Check each subInfo and remove it in the map based on the new list.
|
||||||
if (!mSubscriptionInfoMap.isEmpty()) {
|
for (SubscriptionInfoEntity entity : subInfoEntityList) {
|
||||||
|
mSubscriptionInfoMap.remove(Integer.parseInt(entity.subId));
|
||||||
// Check each subInfo and remove it in the map based on the new list.
|
|
||||||
for (SubscriptionInfoEntity entity : subInfoEntityList) {
|
|
||||||
mSubscriptionInfoMap.remove(Integer.parseInt(entity.subId));
|
|
||||||
}
|
|
||||||
|
|
||||||
Iterator<Integer> iterator = mSubscriptionInfoMap.keySet().iterator();
|
|
||||||
while (iterator.hasNext()) {
|
|
||||||
if (iterator.next() == mSubId) {
|
|
||||||
finishFragment();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mSubInfoEntityList = subInfoEntityList;
|
Iterator<Integer> iterator = mSubscriptionInfoMap.keySet().iterator();
|
||||||
mSubInfoEntityList.forEach(entity -> {
|
while (iterator.hasNext()) {
|
||||||
int subId = Integer.parseInt(entity.subId);
|
if (iterator.next() == mSubId) {
|
||||||
mSubscriptionInfoMap.put(subId, entity);
|
finishFragment();
|
||||||
if (subId == mSubId) {
|
return;
|
||||||
mSubscriptionInfoEntity = entity;
|
|
||||||
onSubscriptionDetailChanged();
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mSubInfoEntityList = subInfoEntityList;
|
||||||
|
mSubInfoEntityList.forEach(entity -> {
|
||||||
|
int subId = Integer.parseInt(entity.subId);
|
||||||
|
mSubscriptionInfoMap.put(subId, entity);
|
||||||
|
if (subId == mSubId) {
|
||||||
|
mSubscriptionInfoEntity = entity;
|
||||||
|
onSubscriptionDetailChanged();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -40,7 +40,6 @@ import com.android.settings.network.GlobalSettingsChangeListener;
|
|||||||
import com.android.settings.network.MobileNetworkRepository;
|
import com.android.settings.network.MobileNetworkRepository;
|
||||||
import com.android.settingslib.RestrictedSwitchPreference;
|
import com.android.settingslib.RestrictedSwitchPreference;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.mobile.dataservice.DataServiceUtils;
|
|
||||||
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
|
||||||
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
|
||||||
@@ -257,17 +256,14 @@ public class RoamingPreferenceController extends TelephonyTogglePreferenceContro
|
|||||||
@Override
|
@Override
|
||||||
public void onAllMobileNetworkInfoChanged(
|
public void onAllMobileNetworkInfoChanged(
|
||||||
List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
|
List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
|
||||||
if (DataServiceUtils.shouldUpdateEntityList(mMobileNetworkInfoEntityList,
|
mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
|
||||||
mobileNetworkInfoEntityList)) {
|
mMobileNetworkInfoEntityList.forEach(entity -> {
|
||||||
mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
|
if (Integer.parseInt(entity.subId) == mSubId) {
|
||||||
mMobileNetworkInfoEntityList.forEach(entity -> {
|
mMobileNetworkInfoEntity = entity;
|
||||||
if (Integer.parseInt(entity.subId) == mSubId) {
|
update();
|
||||||
mMobileNetworkInfoEntity = entity;
|
refreshSummary(mSwitchPreference);
|
||||||
update();
|
return;
|
||||||
refreshSummary(mSwitchPreference);
|
}
|
||||||
return;
|
});
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user