Loading src/com/android/settings/network/InternetPreferenceController.java +2 −5 Original line number Diff line number Diff line Loading @@ -45,7 +45,6 @@ import com.android.settings.widget.SummaryUpdater; import com.android.settings.wifi.WifiSummaryUpdater; import com.android.settingslib.Utils; 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.SubscriptionInfoEntity; import com.android.settingslib.mobile.dataservice.UiccInfoEntity; Loading Loading @@ -238,11 +237,9 @@ public class InternetPreferenceController extends AbstractPreferenceController i @Override public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) { if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) { mSubInfoEntityList = subInfoEntityList; updateState(mPreference); } } @Override public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) { Loading src/com/android/settings/network/MobileNetworkRepository.java +95 −57 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ import android.util.Log; import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.overlay.FeatureFactory; 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.MobileNetworkInfoDao; import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity; Loading @@ -53,7 +52,6 @@ import com.android.settingslib.mobile.dataservice.UiccInfoEntity; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutorService; Loading @@ -71,7 +69,12 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions private static final String TAG = "MobileNetworkRepository"; 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 TelephonyManager mTelephonyManager; Loading Loading @@ -130,8 +133,8 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions mDataContentObserver = new MobileDataContentObserver( new Handler(Looper.getMainLooper())); mDataContentObserver.setOnMobileDataChangedListener(() -> { mExecutor.execute(() -> { insertMobileNetworkInfo(context); sExecutor.execute(() -> { insertMobileNetworkInfo(context, String.valueOf(mSubId)); }); }); mFilter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED); Loading Loading @@ -192,19 +195,25 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions } private void observeAllSubInfo(LifecycleOwner lifecycleOwner) { if (DEBUG) { Log.d(TAG, "Observe subInfo."); } mMobileNetworkDatabase.queryAvailableSubInfos().observe( lifecycleOwner, this::onAvailableSubInfoChanged); } private void observeAllUiccInfo(LifecycleOwner lifecycleOwner) { if (DEBUG) { Log.d(TAG, "Observe UICC info."); } mMobileNetworkDatabase.queryAllUiccInfo().observe( lifecycleOwner, this::onAllUiccInfoChanged); } private void observeAllMobileNetworkInfo(LifecycleOwner lifecycleOwner) { if (DEBUG) { Log.d(TAG, "Observe mobile network info."); } mMobileNetworkDatabase.queryAllMobileNetworkInfo().observe( lifecycleOwner, this::onAllMobileNetworkInfoChanged); } Loading Loading @@ -321,35 +330,44 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions } public void insertSubInfo(Context context, SubscriptionInfo info) { mExecutor.execute(() -> { SubscriptionInfoEntity subInfoEntity = convertToSubscriptionInfoEntity(context, info); String subId = String.valueOf(mSubId); if (subInfoEntity != null) { int subId = info.getSubscriptionId(); mSubscriptionInfoMap.put(subId, info); if (!sCacheSubscriptionInfoEntityMap.containsKey(subId) || (sCacheSubscriptionInfoEntityMap.get(subId) != null && !sCacheSubscriptionInfoEntityMap.get(subId).equals(subInfoEntity))) { sCacheSubscriptionInfoEntityMap.put(subId, subInfoEntity); if (DEBUG) { Log.d(TAG, "convert subId " + subId + "to SubscriptionInfoEntity: " + subInfoEntity); } mMobileNetworkDatabase.insertSubsInfo(subInfoEntity); insertUiccInfo(subId); insertMobileNetworkInfo(context, subId); mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_SUB_INFO); } else if (DEBUG) { Log.d(TAG, "Can not insert subInfo, the entity is null"); } }); } } public void deleteAllInfoBySubId(String subId) { mExecutor.execute(() -> { if (DEBUG) { Log.d(TAG, "deleteAllInfoBySubId, subId = " + subId); } mMobileNetworkDatabase.deleteSubInfoBySubId(subId); mMobileNetworkDatabase.deleteUiccInfoBySubId(subId); mMobileNetworkDatabase.deleteMobileNetworkInfoBySubId(subId); }); mAvailableSubInfoEntityList.removeIf(info -> info.subId.equals(subId)); mActiveSubInfoEntityList.removeIf(info -> info.subId.equals(subId)); mUiccInfoEntityList.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, SettingsEnums.ACTION_MOBILE_NETWORK_DB_DELETE_DATA); } Loading @@ -368,8 +386,6 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions return null; } else { getUiccInfoBySubscriptionInfo(uiccSlotInfos, subInfo); insertUiccInfo(); insertMobileNetworkInfo(context); SubscriptionInfo firstRemovableSubInfo = SubscriptionUtil.getFirstRemovableSubscription( context); SubscriptionInfo subscriptionOrDefault = SubscriptionUtil.getSubscriptionOrDefault( Loading Loading @@ -406,25 +422,33 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions } } public void insertUiccInfo() { public void insertUiccInfo(String subId) { UiccInfoEntity uiccInfoEntity = convertToUiccInfoEntity(); if (DEBUG) { Log.d(TAG, "uiccInfoEntity = " + uiccInfoEntity); } if (!sCacheUiccInfoEntityMap.containsKey(subId) || !sCacheUiccInfoEntityMap.get(subId).equals(uiccInfoEntity)) { 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); if (DEBUG) { Log.d(TAG, "mobileNetworkInfoEntity = " + mobileNetworkInfoEntity); } if (!sCacheMobileNetworkInfoEntityMap.containsKey(subId) || !sCacheMobileNetworkInfoEntityMap.get(subId).equals(mobileNetworkInfoEntity)) { sCacheMobileNetworkInfoEntityMap.put(subId, mobileNetworkInfoEntity); mMobileNetworkDatabase.insertMobileNetworkInfo(mobileNetworkInfoEntity); mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_MOBILE_NETWORK_INFO); } } public MobileNetworkInfoEntity convertToMobileNetworkInfoEntity(Context context) { return new MobileNetworkInfoEntity(String.valueOf(mSubId), Loading Loading @@ -468,22 +492,41 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions } private void insertAvailableSubInfoToEntity(List<SubscriptionInfo> availableInfoList) { sExecutor.execute(() -> { SubscriptionInfoEntity[] availableInfoArray = mAvailableSubInfoEntityList.toArray( new SubscriptionInfoEntity[0]); if ((availableInfoList == null || availableInfoList.size() == 0) && mAvailableSubInfoEntityList.size() != 0) { if (DEBUG) { Log.d(TAG, "availableSudInfoList from framework is empty, remove all subs"); } SubscriptionInfoEntity[] availableInfoArray = mAvailableSubInfoEntityList.toArray( new SubscriptionInfoEntity[0]); for (SubscriptionInfoEntity info : availableInfoArray) { deleteAllInfoBySubId(info.subId); } } 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) { mSubscriptionInfoMap.remove(subInfo.getSubscriptionId()); if (DEBUG) { Log.d(TAG, "insert subInfo to subInfoEntity, subInfo = " + subInfo); } Loading @@ -494,16 +537,11 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions } continue; } mSubscriptionInfoMap.put(mSubId, subInfo); insertSubInfo(mContext, subInfo); } if (!mSubscriptionInfoMap.isEmpty()) { Iterator<Integer> iterator = mSubscriptionInfoMap.keySet().iterator(); while (iterator.hasNext()) { deleteAllInfoBySubId(String.valueOf(iterator.next())); } } } }); } public boolean isAirplaneModeOn() { Loading src/com/android/settings/network/MobileNetworkSummaryController.java +6 −14 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; 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.SubscriptionInfoEntity; import com.android.settingslib.mobile.dataservice.UiccInfoEntity; Loading Loading @@ -203,11 +202,9 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController @Override public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) { if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) { mSubInfoEntityList = subInfoEntityList; update(); } } @Override public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) { Loading @@ -215,19 +212,14 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController @Override public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) { if (DataServiceUtils.shouldUpdateEntityList(mUiccInfoEntityList, uiccInfoEntityList)) { mUiccInfoEntityList = uiccInfoEntityList; update(); } } @Override public void onAllMobileNetworkInfoChanged( List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) { if (DataServiceUtils.shouldUpdateEntityList(mMobileNetworkInfoEntityList, mobileNetworkInfoEntityList)) { mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList; update(); } } } src/com/android/settings/network/NetworkProviderCallsSmsController.java +2 −5 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; 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.SubscriptionInfoEntity; import com.android.settingslib.mobile.dataservice.UiccInfoEntity; Loading Loading @@ -224,11 +223,9 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl @Override public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) { if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, activeSubInfoList)) { mSubInfoEntityList = activeSubInfoList; update(); } } @Override public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) { Loading src/com/android/settings/network/NetworkProviderSimListController.java +3 −6 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; 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.SubscriptionInfoEntity; import com.android.settingslib.mobile.dataservice.UiccInfoEntity; Loading Loading @@ -178,12 +177,10 @@ public class NetworkProviderSimListController extends AbstractPreferenceControll @Override public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) { if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) { mSubInfoEntityList = subInfoEntityList; mPreferenceCategory.setVisible(isAvailable()); update(); } } @Override public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) { Loading Loading
src/com/android/settings/network/InternetPreferenceController.java +2 −5 Original line number Diff line number Diff line Loading @@ -45,7 +45,6 @@ import com.android.settings.widget.SummaryUpdater; import com.android.settings.wifi.WifiSummaryUpdater; import com.android.settingslib.Utils; 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.SubscriptionInfoEntity; import com.android.settingslib.mobile.dataservice.UiccInfoEntity; Loading Loading @@ -238,11 +237,9 @@ public class InternetPreferenceController extends AbstractPreferenceController i @Override public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) { if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) { mSubInfoEntityList = subInfoEntityList; updateState(mPreference); } } @Override public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) { Loading
src/com/android/settings/network/MobileNetworkRepository.java +95 −57 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ import android.util.Log; import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.overlay.FeatureFactory; 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.MobileNetworkInfoDao; import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity; Loading @@ -53,7 +52,6 @@ import com.android.settingslib.mobile.dataservice.UiccInfoEntity; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutorService; Loading @@ -71,7 +69,12 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions private static final String TAG = "MobileNetworkRepository"; 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 TelephonyManager mTelephonyManager; Loading Loading @@ -130,8 +133,8 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions mDataContentObserver = new MobileDataContentObserver( new Handler(Looper.getMainLooper())); mDataContentObserver.setOnMobileDataChangedListener(() -> { mExecutor.execute(() -> { insertMobileNetworkInfo(context); sExecutor.execute(() -> { insertMobileNetworkInfo(context, String.valueOf(mSubId)); }); }); mFilter.addAction(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED); Loading Loading @@ -192,19 +195,25 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions } private void observeAllSubInfo(LifecycleOwner lifecycleOwner) { if (DEBUG) { Log.d(TAG, "Observe subInfo."); } mMobileNetworkDatabase.queryAvailableSubInfos().observe( lifecycleOwner, this::onAvailableSubInfoChanged); } private void observeAllUiccInfo(LifecycleOwner lifecycleOwner) { if (DEBUG) { Log.d(TAG, "Observe UICC info."); } mMobileNetworkDatabase.queryAllUiccInfo().observe( lifecycleOwner, this::onAllUiccInfoChanged); } private void observeAllMobileNetworkInfo(LifecycleOwner lifecycleOwner) { if (DEBUG) { Log.d(TAG, "Observe mobile network info."); } mMobileNetworkDatabase.queryAllMobileNetworkInfo().observe( lifecycleOwner, this::onAllMobileNetworkInfoChanged); } Loading Loading @@ -321,35 +330,44 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions } public void insertSubInfo(Context context, SubscriptionInfo info) { mExecutor.execute(() -> { SubscriptionInfoEntity subInfoEntity = convertToSubscriptionInfoEntity(context, info); String subId = String.valueOf(mSubId); if (subInfoEntity != null) { int subId = info.getSubscriptionId(); mSubscriptionInfoMap.put(subId, info); if (!sCacheSubscriptionInfoEntityMap.containsKey(subId) || (sCacheSubscriptionInfoEntityMap.get(subId) != null && !sCacheSubscriptionInfoEntityMap.get(subId).equals(subInfoEntity))) { sCacheSubscriptionInfoEntityMap.put(subId, subInfoEntity); if (DEBUG) { Log.d(TAG, "convert subId " + subId + "to SubscriptionInfoEntity: " + subInfoEntity); } mMobileNetworkDatabase.insertSubsInfo(subInfoEntity); insertUiccInfo(subId); insertMobileNetworkInfo(context, subId); mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_SUB_INFO); } else if (DEBUG) { Log.d(TAG, "Can not insert subInfo, the entity is null"); } }); } } public void deleteAllInfoBySubId(String subId) { mExecutor.execute(() -> { if (DEBUG) { Log.d(TAG, "deleteAllInfoBySubId, subId = " + subId); } mMobileNetworkDatabase.deleteSubInfoBySubId(subId); mMobileNetworkDatabase.deleteUiccInfoBySubId(subId); mMobileNetworkDatabase.deleteMobileNetworkInfoBySubId(subId); }); mAvailableSubInfoEntityList.removeIf(info -> info.subId.equals(subId)); mActiveSubInfoEntityList.removeIf(info -> info.subId.equals(subId)); mUiccInfoEntityList.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, SettingsEnums.ACTION_MOBILE_NETWORK_DB_DELETE_DATA); } Loading @@ -368,8 +386,6 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions return null; } else { getUiccInfoBySubscriptionInfo(uiccSlotInfos, subInfo); insertUiccInfo(); insertMobileNetworkInfo(context); SubscriptionInfo firstRemovableSubInfo = SubscriptionUtil.getFirstRemovableSubscription( context); SubscriptionInfo subscriptionOrDefault = SubscriptionUtil.getSubscriptionOrDefault( Loading Loading @@ -406,25 +422,33 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions } } public void insertUiccInfo() { public void insertUiccInfo(String subId) { UiccInfoEntity uiccInfoEntity = convertToUiccInfoEntity(); if (DEBUG) { Log.d(TAG, "uiccInfoEntity = " + uiccInfoEntity); } if (!sCacheUiccInfoEntityMap.containsKey(subId) || !sCacheUiccInfoEntityMap.get(subId).equals(uiccInfoEntity)) { 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); if (DEBUG) { Log.d(TAG, "mobileNetworkInfoEntity = " + mobileNetworkInfoEntity); } if (!sCacheMobileNetworkInfoEntityMap.containsKey(subId) || !sCacheMobileNetworkInfoEntityMap.get(subId).equals(mobileNetworkInfoEntity)) { sCacheMobileNetworkInfoEntityMap.put(subId, mobileNetworkInfoEntity); mMobileNetworkDatabase.insertMobileNetworkInfo(mobileNetworkInfoEntity); mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_MOBILE_NETWORK_INFO); } } public MobileNetworkInfoEntity convertToMobileNetworkInfoEntity(Context context) { return new MobileNetworkInfoEntity(String.valueOf(mSubId), Loading Loading @@ -468,22 +492,41 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions } private void insertAvailableSubInfoToEntity(List<SubscriptionInfo> availableInfoList) { sExecutor.execute(() -> { SubscriptionInfoEntity[] availableInfoArray = mAvailableSubInfoEntityList.toArray( new SubscriptionInfoEntity[0]); if ((availableInfoList == null || availableInfoList.size() == 0) && mAvailableSubInfoEntityList.size() != 0) { if (DEBUG) { Log.d(TAG, "availableSudInfoList from framework is empty, remove all subs"); } SubscriptionInfoEntity[] availableInfoArray = mAvailableSubInfoEntityList.toArray( new SubscriptionInfoEntity[0]); for (SubscriptionInfoEntity info : availableInfoArray) { deleteAllInfoBySubId(info.subId); } } 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) { mSubscriptionInfoMap.remove(subInfo.getSubscriptionId()); if (DEBUG) { Log.d(TAG, "insert subInfo to subInfoEntity, subInfo = " + subInfo); } Loading @@ -494,16 +537,11 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions } continue; } mSubscriptionInfoMap.put(mSubId, subInfo); insertSubInfo(mContext, subInfo); } if (!mSubscriptionInfoMap.isEmpty()) { Iterator<Integer> iterator = mSubscriptionInfoMap.keySet().iterator(); while (iterator.hasNext()) { deleteAllInfoBySubId(String.valueOf(iterator.next())); } } } }); } public boolean isAirplaneModeOn() { Loading
src/com/android/settings/network/MobileNetworkSummaryController.java +6 −14 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; 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.SubscriptionInfoEntity; import com.android.settingslib.mobile.dataservice.UiccInfoEntity; Loading Loading @@ -203,11 +202,9 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController @Override public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) { if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) { mSubInfoEntityList = subInfoEntityList; update(); } } @Override public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) { Loading @@ -215,19 +212,14 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController @Override public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) { if (DataServiceUtils.shouldUpdateEntityList(mUiccInfoEntityList, uiccInfoEntityList)) { mUiccInfoEntityList = uiccInfoEntityList; update(); } } @Override public void onAllMobileNetworkInfoChanged( List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) { if (DataServiceUtils.shouldUpdateEntityList(mMobileNetworkInfoEntityList, mobileNetworkInfoEntityList)) { mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList; update(); } } }
src/com/android/settings/network/NetworkProviderCallsSmsController.java +2 −5 Original line number Diff line number Diff line Loading @@ -37,7 +37,6 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; 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.SubscriptionInfoEntity; import com.android.settingslib.mobile.dataservice.UiccInfoEntity; Loading Loading @@ -224,11 +223,9 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl @Override public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) { if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, activeSubInfoList)) { mSubInfoEntityList = activeSubInfoList; update(); } } @Override public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) { Loading
src/com/android/settings/network/NetworkProviderSimListController.java +3 −6 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; 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.SubscriptionInfoEntity; import com.android.settingslib.mobile.dataservice.UiccInfoEntity; Loading Loading @@ -178,12 +177,10 @@ public class NetworkProviderSimListController extends AbstractPreferenceControll @Override public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) { if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) { mSubInfoEntityList = subInfoEntityList; mPreferenceCategory.setVisible(isAvailable()); update(); } } @Override public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> activeSubInfoList) { Loading