Fine-tune launch time in Network & Internet settings

- Avoid creating WifiPickerTracker if Hotspot network feature is not enabled

Fix: 312905628
Test: unit test
atest -c InternetPreferenceControllerTest

Change-Id: I5818698ce06244aa7660e90a5f2fd372a3a221bf
This commit is contained in:
Weng Su
2023-11-28 06:45:19 +08:00
parent 958a6ab7aa
commit 129ff9b8fe
2 changed files with 15 additions and 1 deletions

View File

@@ -43,6 +43,7 @@ import com.android.settings.R;
import com.android.settings.widget.SummaryUpdater; import com.android.settings.widget.SummaryUpdater;
import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.settings.wifi.WifiPickerTrackerHelper;
import com.android.settings.wifi.WifiSummaryUpdater; import com.android.settings.wifi.WifiSummaryUpdater;
import com.android.settings.wifi.repository.SharedConnectivityRepository;
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.SubscriptionInfoEntity; import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
@@ -77,6 +78,7 @@ public class InternetPreferenceController extends AbstractPreferenceController i
private List<SubscriptionInfoEntity> mSubInfoEntityList = new ArrayList<>(); private List<SubscriptionInfoEntity> mSubInfoEntityList = new ArrayList<>();
private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver; private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
private boolean mIsHotspotNetworkEnabled = SharedConnectivityRepository.isDeviceConfigEnabled();
@VisibleForTesting @VisibleForTesting
WifiPickerTrackerHelper mWifiPickerTrackerHelper; WifiPickerTrackerHelper mWifiPickerTrackerHelper;
@@ -111,7 +113,9 @@ public class InternetPreferenceController extends AbstractPreferenceController i
mLifecycleOwner = lifecycleOwner; mLifecycleOwner = lifecycleOwner;
mMobileNetworkRepository = MobileNetworkRepository.getInstance(context); mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this); mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this);
mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(lifecycle, context, this); if (mIsHotspotNetworkEnabled) {
mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(lifecycle, context, this);
}
lifecycle.addObserver(this); lifecycle.addObserver(this);
} }
@@ -162,6 +166,9 @@ public class InternetPreferenceController extends AbstractPreferenceController i
@VisibleForTesting @VisibleForTesting
boolean updateHotspotNetwork() { boolean updateHotspotNetwork() {
if (mWifiPickerTrackerHelper == null) {
return false;
}
WifiEntry entry = mWifiPickerTrackerHelper.getWifiPickerTracker().getConnectedWifiEntry(); WifiEntry entry = mWifiPickerTrackerHelper.getWifiPickerTracker().getConnectedWifiEntry();
if (!(entry instanceof HotspotNetworkEntry)) { if (!(entry instanceof HotspotNetworkEntry)) {
return false; return false;

View File

@@ -298,4 +298,11 @@ public class InternetPreferenceControllerTest {
assertThat(mPreference.getSummary().toString()).isEqualTo(TEST_SUMMARY); assertThat(mPreference.getSummary().toString()).isEqualTo(TEST_SUMMARY);
} }
@Test
public void updateHotspotNetwork_hotspotNetworkNotEnabled_returnFalse() {
mController.mWifiPickerTrackerHelper = null;
assertThat(mController.updateHotspotNetwork()).isFalse();
}
} }