diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 53698519a17..eb0283310a8 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -68,7 +68,6 @@ import com.android.settings.location.ScanningSettings; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.widget.SwitchBarController; import com.android.settings.wifi.details.WifiNetworkDetailsFragment; -import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; @@ -952,21 +951,12 @@ public class WifiSettings extends RestrictedSettingsFragment ? accessPoint.getTitle() : context.getText(R.string.pref_title_network_details); - if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) { - new SubSettingLauncher(getContext()) - .setTitleText(title) - .setDestination(WifiNetworkDetailsFragment2.class.getName()) - .setArguments(pref.getExtras()) - .setSourceMetricsCategory(getMetricsCategory()) - .launch(); - } else { - new SubSettingLauncher(getContext()) - .setTitleText(title) - .setDestination(WifiNetworkDetailsFragment.class.getName()) - .setArguments(pref.getExtras()) - .setSourceMetricsCategory(getMetricsCategory()) - .launch(); - } + new SubSettingLauncher(getContext()) + .setTitleText(title) + .setDestination(WifiNetworkDetailsFragment.class.getName()) + .setArguments(pref.getExtras()) + .setSourceMetricsCategory(getMetricsCategory()) + .launch(); } private Network getCurrentWifiNetwork() { diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java index df7950a0a75..ac9374fcd71 100644 --- a/src/com/android/settings/wifi/WifiSettings2.java +++ b/src/com/android/settings/wifi/WifiSettings2.java @@ -38,6 +38,7 @@ import android.os.Process; import android.os.SimpleClock; import android.os.SystemClock; import android.provider.Settings; +import android.util.FeatureFlagUtils; import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; @@ -55,12 +56,14 @@ import com.android.settings.LinkifyUtils; import com.android.settings.R; import com.android.settings.RestrictedSettingsFragment; import com.android.settings.SettingsActivity; +import com.android.settings.core.FeatureFlags; import com.android.settings.core.SubSettingLauncher; import com.android.settings.datausage.DataUsagePreference; import com.android.settings.datausage.DataUsageUtils; import com.android.settings.location.ScanningSettings; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.widget.SwitchBarController; +import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexableRaw; @@ -509,6 +512,14 @@ public class WifiSettings2 extends RestrictedSettingsFragment pref.setKey(connectedEntry.getKey()); pref.refresh(); mConnectedWifiEntryPreferenceCategory.addPreference(pref); + pref.setOnPreferenceClickListener(preference -> { + if (connectedEntry.canSignIn()) { + connectedEntry.signIn(); + } else { + launchNetworkDetailsFragment(pref); + } + return true; + }); } } else { mConnectedWifiEntryPreferenceCategory.removeAll(); @@ -554,6 +565,25 @@ public class WifiSettings2 extends RestrictedSettingsFragment setAdditionalSettingsSummaries(); } + private void launchNetworkDetailsFragment(LongPressWifiEntryPreference pref) { + final WifiEntry wifiEntry = pref.getWifiEntry(); + final Context context = getContext(); + final CharSequence title = + FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_DATAUSAGE_HEADER) + ? wifiEntry.getTitle() + : context.getText(R.string.pref_title_network_details); + + final Bundle bundle = new Bundle(); + bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey()); + + new SubSettingLauncher(context) + .setTitleText(title) + .setDestination(WifiNetworkDetailsFragment2.class.getName()) + .setArguments(bundle) + .setSourceMetricsCategory(getMetricsCategory()) + .launch(); + } + private LongPressWifiEntryPreference createLongPressWifiEntryPreference(WifiEntry wifiEntry) { return new LongPressWifiEntryPreference(getPrefContext(), wifiEntry, this); } diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java index 9473c362dfc..f94ca9d3751 100644 --- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java @@ -79,6 +79,7 @@ import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback; import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.ConnectStatus; import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.DisconnectStatus; import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.ForgetStatus; +import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.SignInStatus; import java.net.Inet4Address; import java.net.Inet6Address; diff --git a/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java b/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java index c23c2ed30ad..7e4c8561778 100644 --- a/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java +++ b/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java @@ -36,7 +36,6 @@ import android.view.MenuItem; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.wifi.WifiDialog; -import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.core.AbstractPreferenceController; @@ -59,6 +58,9 @@ public class WifiNetworkDetailsFragment2 extends DashboardFragment implements private static final String TAG = "WifiNetworkDetailsFrg2"; + // Key of a Bundle to save/restore the selected WifiEntry + public static final String KEY_CHOSEN_WIFIENTRY_KEY = "key_chosen_wifientry_key"; + // Max age of tracked WifiEntries private static final long MAX_SCAN_AGE_MILLIS = 15_000; // Interval between initiating SavedNetworkTracker scans @@ -209,6 +211,6 @@ public class WifiNetworkDetailsFragment2 extends DashboardFragment implements elapsedRealtimeClock, MAX_SCAN_AGE_MILLIS, SCAN_INTERVAL_MILLIS, - getArguments().getString(SavedAccessPointsWifiSettings2.KEY_KEY)); + getArguments().getString(KEY_CHOSEN_WIFIENTRY_KEY)); } } diff --git a/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java b/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java index cdcb5429a9e..0145bb48d32 100644 --- a/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java +++ b/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java @@ -52,9 +52,6 @@ public class SavedAccessPointsWifiSettings2 extends DashboardFragment private static final String TAG = "SavedAccessPoints2"; - // Key of a Bundle to save/restore the selected WifiEntry - public static final String KEY_KEY = "key_key"; - // Max age of tracked WifiEntries private static final long MAX_SCAN_AGE_MILLIS = 15_000; // Interval between initiating SavedNetworkTracker scans @@ -139,7 +136,7 @@ public class SavedAccessPointsWifiSettings2 extends DashboardFragment } final Bundle bundle = new Bundle(); - bundle.putString(KEY_KEY, key); + bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, key); new SubSettingLauncher(getContext()) .setTitleText(title)