Merge "Refacotr mobile data observer for repository" into main am: 12d49a521c

Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/3059652

Change-Id: I50454802ab304a46699c0754fa077b79d637bc9f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
SongFerng Wang
2024-05-08 04:18:53 +00:00
committed by Automerger Merge Worker
2 changed files with 21 additions and 28 deletions

View File

@@ -91,7 +91,6 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
private AirplaneModeObserver mAirplaneModeObserver;
private DataRoamingObserver mDataRoamingObserver;
private MetricsFeatureProvider mMetricsFeatureProvider;
private Map<Integer, MobileDataContentObserver> mDataContentObserverMap = new HashMap<>();
private int mPhysicalSlotIndex = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
private int mLogicalSlotIndex = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
private int mCardState = UiccSlotInfo.CARD_STATE_INFO_ABSENT;
@@ -209,6 +208,9 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
*/
public void addRegister(LifecycleOwner lifecycleOwner,
MobileNetworkCallback mobileNetworkCallback, int subId) {
if (DEBUG) {
Log.d(TAG, "addRegister by SUB ID " + subId);
}
if (sCallbacks.isEmpty()) {
mSubscriptionManager.addOnSubscriptionsChangedListener(mContext.getMainExecutor(),
this);
@@ -222,7 +224,6 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
observeAllUiccInfo(lifecycleOwner);
observeAllMobileNetworkInfo(lifecycleOwner);
if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
addRegisterBySubId(subId);
createTelephonyManagerBySubId(subId);
mDataRoamingObserver.register(mContext, subId);
}
@@ -231,19 +232,6 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
sendAvailableSubInfoCache(mobileNetworkCallback);
}
public void addRegisterBySubId(int subId) {
MobileDataContentObserver dataContentObserver = new MobileDataContentObserver(
new Handler(Looper.getMainLooper()));
dataContentObserver.setOnMobileDataChangedListener(() -> {
sExecutor.execute(() -> {
insertMobileNetworkInfo(mContext, subId,
getTelephonyManagerBySubId(mContext, subId));
});
});
dataContentObserver.register(mContext, subId);
mDataContentObserverMap.put(subId, dataContentObserver);
}
private void createTelephonyManagerBySubId(int subId) {
if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID
|| mTelephonyCallbackMap.containsKey(subId)) {
@@ -253,7 +241,7 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
return;
}
PhoneCallStateTelephonyCallback
telephonyCallback = new PhoneCallStateTelephonyCallback();
telephonyCallback = new PhoneCallStateTelephonyCallback(subId);
TelephonyManager telephonyManager = mContext.getSystemService(
TelephonyManager.class).createForSubscriptionId(subId);
telephonyManager.registerTelephonyCallback(mContext.getMainExecutor(),
@@ -292,10 +280,6 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
}
}
}
if (mDataContentObserverMap.containsKey(subId)) {
mDataContentObserverMap.get(subId).unRegister(mContext);
mDataContentObserverMap.remove(subId);
}
}
public void removeRegister(MobileNetworkCallback mobileNetworkCallback) {
@@ -304,10 +288,6 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
mSubscriptionManager.removeOnSubscriptionsChangedListener(this);
mAirplaneModeObserver.unRegister(mContext);
mDataRoamingObserver.unRegister(mContext);
mDataContentObserverMap.forEach((id, observer) -> {
observer.unRegister(mContext);
});
mDataContentObserverMap.clear();
mTelephonyManagerMap.forEach((id, manager) -> {
TelephonyCallback callback = mTelephonyCallbackMap.get(id);
@@ -768,7 +748,14 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
}
private class PhoneCallStateTelephonyCallback extends TelephonyCallback implements
TelephonyCallback.CallStateListener {
TelephonyCallback.CallStateListener,
TelephonyCallback.UserMobileDataStateListener {
private int mSubId;
public PhoneCallStateTelephonyCallback(int subId) {
mSubId = subId;
}
@Override
public void onCallStateChanged(int state) {
@@ -776,6 +763,15 @@ public class MobileNetworkRepository extends SubscriptionManager.OnSubscriptions
callback.onCallStateChanged(state);
}
}
@Override
public void onUserMobileDataStateChanged(boolean enabled) {
Log.d(TAG, "onUserMobileDataStateChanged enabled " + enabled + " on SUB " + mSubId);
sExecutor.execute(() -> {
insertMobileNetworkInfo(mContext, mSubId,
getTelephonyManagerBySubId(mContext, mSubId));
});
}
}
/**

View File

@@ -96,9 +96,6 @@ public abstract class DefaultSubscriptionController extends TelephonyBasePrefere
mMobileNetworkRepository.addRegister(mLifecycleOwner, this,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mMobileNetworkRepository.updateEntity();
// Can not get default subId from database until get the callback, add register by subId
// later.
mMobileNetworkRepository.addRegisterBySubId(getDefaultSubscriptionId());
mDataSubscriptionChangedReceiver.registerReceiver();
}