[Wi-Fi] Launch WifiNetworkDetailsFragment2 for a connected Wi-Fi network

This change also remove redundant code of WifiNetworkDetailsFragment2
from WifiSettings.

Bug: 143326832
Test: Manual
      Click connected Wi-Fi network and check the UI of
      WifiNetworkDetailsFragment2
Change-Id: Id72c26116177f8e7063e433a6456557bd36c7927
This commit is contained in:
Arc Wang
2019-12-17 11:51:06 +08:00
parent b60e91bf0b
commit ce5e7a4626
5 changed files with 42 additions and 22 deletions

View File

@@ -68,7 +68,6 @@ import com.android.settings.location.ScanningSettings;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.SwitchBarController; import com.android.settings.widget.SwitchBarController;
import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settings.wifi.dpp.WifiDppUtils;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -952,21 +951,12 @@ public class WifiSettings extends RestrictedSettingsFragment
? accessPoint.getTitle() ? accessPoint.getTitle()
: context.getText(R.string.pref_title_network_details); : context.getText(R.string.pref_title_network_details);
if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) { new SubSettingLauncher(getContext())
new SubSettingLauncher(getContext()) .setTitleText(title)
.setTitleText(title) .setDestination(WifiNetworkDetailsFragment.class.getName())
.setDestination(WifiNetworkDetailsFragment2.class.getName()) .setArguments(pref.getExtras())
.setArguments(pref.getExtras()) .setSourceMetricsCategory(getMetricsCategory())
.setSourceMetricsCategory(getMetricsCategory()) .launch();
.launch();
} else {
new SubSettingLauncher(getContext())
.setTitleText(title)
.setDestination(WifiNetworkDetailsFragment.class.getName())
.setArguments(pref.getExtras())
.setSourceMetricsCategory(getMetricsCategory())
.launch();
}
} }
private Network getCurrentWifiNetwork() { private Network getCurrentWifiNetwork() {

View File

@@ -38,6 +38,7 @@ import android.os.Process;
import android.os.SimpleClock; import android.os.SimpleClock;
import android.os.SystemClock; import android.os.SystemClock;
import android.provider.Settings; import android.provider.Settings;
import android.util.FeatureFlagUtils;
import android.util.Log; import android.util.Log;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo; import android.view.ContextMenu.ContextMenuInfo;
@@ -55,12 +56,14 @@ import com.android.settings.LinkifyUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.RestrictedSettingsFragment; import com.android.settings.RestrictedSettingsFragment;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.core.FeatureFlags;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
import com.android.settings.datausage.DataUsagePreference; import com.android.settings.datausage.DataUsagePreference;
import com.android.settings.datausage.DataUsageUtils; import com.android.settings.datausage.DataUsageUtils;
import com.android.settings.location.ScanningSettings; import com.android.settings.location.ScanningSettings;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.SwitchBarController; import com.android.settings.widget.SwitchBarController;
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
import com.android.settingslib.search.Indexable; import com.android.settingslib.search.Indexable;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.search.SearchIndexableRaw; import com.android.settingslib.search.SearchIndexableRaw;
@@ -509,6 +512,14 @@ public class WifiSettings2 extends RestrictedSettingsFragment
pref.setKey(connectedEntry.getKey()); pref.setKey(connectedEntry.getKey());
pref.refresh(); pref.refresh();
mConnectedWifiEntryPreferenceCategory.addPreference(pref); mConnectedWifiEntryPreferenceCategory.addPreference(pref);
pref.setOnPreferenceClickListener(preference -> {
if (connectedEntry.canSignIn()) {
connectedEntry.signIn();
} else {
launchNetworkDetailsFragment(pref);
}
return true;
});
} }
} else { } else {
mConnectedWifiEntryPreferenceCategory.removeAll(); mConnectedWifiEntryPreferenceCategory.removeAll();
@@ -554,6 +565,25 @@ public class WifiSettings2 extends RestrictedSettingsFragment
setAdditionalSettingsSummaries(); 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) { private LongPressWifiEntryPreference createLongPressWifiEntryPreference(WifiEntry wifiEntry) {
return new LongPressWifiEntryPreference(getPrefContext(), wifiEntry, this); return new LongPressWifiEntryPreference(getPrefContext(), wifiEntry, this);
} }

View File

@@ -79,6 +79,7 @@ import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback;
import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.ConnectStatus; import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.ConnectStatus;
import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.DisconnectStatus; import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.DisconnectStatus;
import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.ForgetStatus; import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.ForgetStatus;
import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.SignInStatus;
import java.net.Inet4Address; import java.net.Inet4Address;
import java.net.Inet6Address; import java.net.Inet6Address;

View File

@@ -36,7 +36,6 @@ import android.view.MenuItem;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.wifi.WifiDialog; import com.android.settings.wifi.WifiDialog;
import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
@@ -59,6 +58,9 @@ public class WifiNetworkDetailsFragment2 extends DashboardFragment implements
private static final String TAG = "WifiNetworkDetailsFrg2"; 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 // Max age of tracked WifiEntries
private static final long MAX_SCAN_AGE_MILLIS = 15_000; private static final long MAX_SCAN_AGE_MILLIS = 15_000;
// Interval between initiating SavedNetworkTracker scans // Interval between initiating SavedNetworkTracker scans
@@ -209,6 +211,6 @@ public class WifiNetworkDetailsFragment2 extends DashboardFragment implements
elapsedRealtimeClock, elapsedRealtimeClock,
MAX_SCAN_AGE_MILLIS, MAX_SCAN_AGE_MILLIS,
SCAN_INTERVAL_MILLIS, SCAN_INTERVAL_MILLIS,
getArguments().getString(SavedAccessPointsWifiSettings2.KEY_KEY)); getArguments().getString(KEY_CHOSEN_WIFIENTRY_KEY));
} }
} }

View File

@@ -52,9 +52,6 @@ public class SavedAccessPointsWifiSettings2 extends DashboardFragment
private static final String TAG = "SavedAccessPoints2"; 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 // Max age of tracked WifiEntries
private static final long MAX_SCAN_AGE_MILLIS = 15_000; private static final long MAX_SCAN_AGE_MILLIS = 15_000;
// Interval between initiating SavedNetworkTracker scans // Interval between initiating SavedNetworkTracker scans
@@ -139,7 +136,7 @@ public class SavedAccessPointsWifiSettings2 extends DashboardFragment
} }
final Bundle bundle = new Bundle(); final Bundle bundle = new Bundle();
bundle.putString(KEY_KEY, key); bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, key);
new SubSettingLauncher(getContext()) new SubSettingLauncher(getContext())
.setTitleText(title) .setTitleText(title)