Clean up lifecycle in MobileNetworkSettings

To avoid double registering, which prevent potential issues and could
improve latency.

Since DashboardFragment already supported register lifecycle
automatically for the controllers bound by XML which implements
androidx.lifecycle.Lifecycle, so doing a cleanup to prevent register
lifecycle event manually (doubling).

Bug: 149338098
Test: temporarily add logging to make sure the lifecycle method is
      called and only called once
Change-Id: I4dbc36414991ef6b599be61aa77ff0dc8c52468c
This commit is contained in:
Chaohui Wang
2022-05-25 12:25:43 +08:00
parent fa878f2f26
commit 866b79c245
17 changed files with 38 additions and 74 deletions

View File

@@ -61,12 +61,9 @@ public class ContactDiscoveryPreferenceController extends TelephonyTogglePrefere
mCarrierConfigCache = CarrierConfigCache.getInstance(context);
}
public ContactDiscoveryPreferenceController init(FragmentManager fragmentManager, int subId,
Lifecycle lifecycle) {
void init(FragmentManager fragmentManager, int subId) {
mFragmentManager = fragmentManager;
mSubId = subId;
lifecycle.addObserver(this);
return this;
}
@Override

View File

@@ -25,7 +25,6 @@ import android.os.Looper;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
@@ -52,10 +51,9 @@ public class DataDuringCallsPreferenceController extends TelephonyTogglePreferen
super(context, preferenceKey);
}
public void init(Lifecycle lifecycle, int subId) {
void init(int subId) {
this.mSubId = subId;
mManager = mContext.getSystemService(TelephonyManager.class).createForSubscriptionId(subId);
lifecycle.addObserver(this);
}
@OnLifecycleEvent(ON_RESUME)

View File

@@ -28,7 +28,6 @@ import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.view.View;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.ListPreference;
@@ -72,10 +71,6 @@ public abstract class DefaultSubscriptionController extends TelephonyBasePrefere
== View.LAYOUT_DIRECTION_RTL;
}
public void init(Lifecycle lifecycle) {
lifecycle.addObserver(this);
}
/** @return SubscriptionInfo for the default subscription for the service, or null if there
* isn't one. */
protected abstract SubscriptionInfo getDefaultSubscriptionInfo();

View File

@@ -22,7 +22,6 @@ import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
import android.content.Context;
import android.telephony.SubscriptionManager;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.PreferenceCategory;
@@ -53,8 +52,7 @@ public class DisabledSubscriptionController extends TelephonyBasePreferenceContr
/**
* Re-initialize the configuration based on subscription id provided
*/
public void init(Lifecycle lifecycle, int subId) {
lifecycle.addObserver(this);
public void init(int subId) {
mSubId = subId;
}

View File

@@ -28,7 +28,6 @@ import android.telephony.TelephonyManager;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.ListPreference;
@@ -163,7 +162,7 @@ public class EnabledNetworkModePreferenceController extends
return false;
}
public void init(Lifecycle lifecycle, int subId) {
void init(int subId) {
mSubId = subId;
mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
.createForSubscriptionId(mSubId);
@@ -178,7 +177,6 @@ public class EnabledNetworkModePreferenceController extends
updatePreference();
});
}
lifecycle.addObserver(this);
}
private void updatePreference() {

View File

@@ -176,14 +176,12 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings {
if (dataUsageSummaryPreferenceController != null) {
dataUsageSummaryPreferenceController.init(mSubId);
}
use(CallsDefaultSubscriptionController.class).init(getLifecycle());
use(SmsDefaultSubscriptionController.class).init(getLifecycle());
use(MobileNetworkSwitchController.class).init(getLifecycle(), mSubId);
use(MobileNetworkSwitchController.class).init(mSubId);
use(CarrierSettingsVersionPreferenceController.class).init(mSubId);
use(BillingCyclePreferenceController.class).init(mSubId);
use(MmsMessagePreferenceController.class).init(mSubId);
use(DataDuringCallsPreferenceController.class).init(getLifecycle(), mSubId);
use(DisabledSubscriptionController.class).init(getLifecycle(), mSubId);
use(DataDuringCallsPreferenceController.class).init(mSubId);
use(DisabledSubscriptionController.class).init(mSubId);
use(DeleteSimProfilePreferenceController.class).init(mSubId, this,
REQUEST_CODE_DELETE_SUBSCRIPTION);
use(DisableSimFooterPreferenceController.class).init(mSubId);
@@ -197,7 +195,7 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings {
use(CarrierPreferenceController.class).init(mSubId);
use(DataUsagePreferenceController.class).init(mSubId);
use(PreferredNetworkModePreferenceController.class).init(mSubId);
use(EnabledNetworkModePreferenceController.class).init(getLifecycle(), mSubId);
use(EnabledNetworkModePreferenceController.class).init(mSubId);
use(DataServiceSetupPreferenceController.class).init(mSubId);
use(Enable2gPreferenceController.class).init(mSubId);
use(CarrierWifiTogglePreferenceController.class).init(getLifecycle(), mSubId);
@@ -206,12 +204,12 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings {
use(WifiCallingPreferenceController.class).init(mSubId);
final OpenNetworkSelectPagePreferenceController openNetworkSelectPagePreferenceController =
use(OpenNetworkSelectPagePreferenceController.class).init(getLifecycle(), mSubId);
use(OpenNetworkSelectPagePreferenceController.class).init(mSubId);
final AutoSelectPreferenceController autoSelectPreferenceController =
use(AutoSelectPreferenceController.class)
.init(getLifecycle(), mSubId)
.init(mSubId)
.addListener(openNetworkSelectPagePreferenceController);
use(NetworkPreferenceCategoryController.class).init(getLifecycle(), mSubId)
use(NetworkPreferenceCategoryController.class).init(mSubId)
.setChildren(Arrays.asList(autoSelectPreferenceController));
mCdmaSystemSelectPreferenceController = use(CdmaSystemSelectPreferenceController.class);
mCdmaSystemSelectPreferenceController.init(getPreferenceManager(), mSubId);
@@ -231,8 +229,7 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings {
.addListener(videoCallingPreferenceController);
use(Enhanced4gAdvancedCallingPreferenceController.class).init(mSubId)
.addListener(videoCallingPreferenceController);
use(ContactDiscoveryPreferenceController.class).init(getParentFragmentManager(), mSubId,
getLifecycle());
use(ContactDiscoveryPreferenceController.class).init(getParentFragmentManager(), mSubId);
use(NrAdvancedCallingPreferenceController.class).init(mSubId);
}

View File

@@ -23,7 +23,6 @@ import android.content.Context;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.PreferenceScreen;
@@ -49,8 +48,7 @@ public class MobileNetworkSwitchController extends BasePreferenceController impl
mChangeListener = new SubscriptionsChangeListener(context, this);
}
public void init(Lifecycle lifecycle, int subId) {
lifecycle.addObserver(this);
void init(int subId) {
mSubId = subId;
}

View File

@@ -22,7 +22,6 @@ import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
import android.content.Context;
import android.telephony.SubscriptionManager;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.PreferenceScreen;
@@ -69,10 +68,9 @@ public class NetworkPreferenceCategoryController extends PreferenceCategoryContr
mPreferenceScreen = screen;
}
public NetworkPreferenceCategoryController init(Lifecycle lifecycle, int subId) {
NetworkPreferenceCategoryController init(int subId) {
mSubId = subId;
lifecycle.addObserver(this);
return this;
}
}

View File

@@ -34,7 +34,6 @@ import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
@@ -206,7 +205,10 @@ public class AutoSelectPreferenceController extends TelephonyTogglePreferenceCon
});
}
public AutoSelectPreferenceController init(Lifecycle lifecycle, int subId) {
/**
* Initialization based on given subscription id.
**/
public AutoSelectPreferenceController init(int subId) {
mSubId = subId;
mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
.createForSubscriptionId(mSubId);
@@ -217,7 +219,6 @@ public class AutoSelectPreferenceController extends TelephonyTogglePreferenceCon
CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL)
: false;
lifecycle.addObserver(this);
return this;
}

View File

@@ -26,7 +26,6 @@ import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
@@ -118,11 +117,13 @@ public class OpenNetworkSelectPagePreferenceController extends
}
}
public OpenNetworkSelectPagePreferenceController init(Lifecycle lifecycle, int subId) {
/**
* Initialization based on given subscription id.
**/
public OpenNetworkSelectPagePreferenceController init(int subId) {
mSubId = subId;
mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
.createForSubscriptionId(mSubId);
lifecycle.addObserver(this);
return this;
}