[DO NOT MERGE][Wi-Fi] Fix fatal exception in WifiConnectionPreferenceController

WifiConnectionPreferenceController only shows when there are 2 SIMs,
it shows the connected Wi-Fi network.

WifiConnectionPreferenceController does not use WifiPickerTracker
to get a WifiEntry key. It should not launch WifiNetworkDetailsFragment2
which uses a WifiEntry key to find a WifiEntry.

Bug: 168280554
Test: manual
      1. Make MultiNetworkHeaderController available.
      2. Settings -> Network & internet -> click connected Wi-Fi
      3. See Wi-Fi Details
Change-Id: I2acea3564d2d89fe8e120064b33ef342c97edb60
This commit is contained in:
Arc Wang
2020-09-15 01:03:13 +08:00
parent 2237c26d0a
commit d785fbab68

View File

@@ -18,7 +18,6 @@ package com.android.settings.wifi;
import android.content.Context;
import android.os.Bundle;
import android.util.FeatureFlagUtils;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
@@ -26,7 +25,6 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.wifi.AccessPoint;
@@ -131,31 +129,17 @@ public class WifiConnectionPreferenceController extends AbstractPreferenceContro
mPreference.refresh();
mPreference.setOrder(order);
if (FeatureFlagUtils.isEnabled(mPrefContext, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
mPreference.setOnPreferenceClickListener(pref -> {
Bundle args = new Bundle();
mPreference.getAccessPoint().saveWifiState(args);
new SubSettingLauncher(mPrefContext)
.setTitleRes(R.string.pref_title_network_details)
.setDestination(WifiNetworkDetailsFragment2.class.getName())
.setArguments(args)
.setSourceMetricsCategory(mMetricsCategory)
.launch();
return true;
});
} else {
mPreference.setOnPreferenceClickListener(pref -> {
Bundle args = new Bundle();
mPreference.getAccessPoint().saveWifiState(args);
new SubSettingLauncher(mPrefContext)
.setTitleRes(R.string.pref_title_network_details)
.setDestination(WifiNetworkDetailsFragment.class.getName())
.setArguments(args)
.setSourceMetricsCategory(mMetricsCategory)
.launch();
return true;
});
}
mPreference.setOnPreferenceClickListener(pref -> {
Bundle args = new Bundle();
mPreference.getAccessPoint().saveWifiState(args);
new SubSettingLauncher(mPrefContext)
.setTitleRes(R.string.pref_title_network_details)
.setDestination(WifiNetworkDetailsFragment.class.getName())
.setArguments(args)
.setSourceMetricsCategory(mMetricsCategory)
.launch();
return true;
});
mPreferenceGroup.addPreference(mPreference);
}
}