Merge "[Passpointv2] Implement Wi-Fi detail page for saved network"
This commit is contained in:
committed by
Android (Google) Code Review
commit
2a2b31c4ef
@@ -173,7 +173,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
// fall through
|
||||
case WifiManager.NETWORK_STATE_CHANGED_ACTION:
|
||||
case WifiManager.RSSI_CHANGED_ACTION:
|
||||
updateInfo();
|
||||
updateLiveNetworkInfo();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -336,7 +336,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
mNetwork = mWifiManager.getCurrentNetwork();
|
||||
mLinkProperties = mConnectivityManager.getLinkProperties(mNetwork);
|
||||
mNetworkCapabilities = mConnectivityManager.getNetworkCapabilities(mNetwork);
|
||||
updateInfo();
|
||||
updateLiveNetworkInfo();
|
||||
mContext.registerReceiver(mReceiver, mFilter);
|
||||
mConnectivityManager.registerNetworkCallback(mNetworkRequest, mNetworkCallback,
|
||||
mHandler);
|
||||
@@ -353,7 +353,30 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
|
||||
}
|
||||
|
||||
private void updateInfo() {
|
||||
// TODO(b/124707751): Refactoring the code later, keeping it currently for stability.
|
||||
protected void updateSavedNetworkInfo() {
|
||||
mSignalStrengthPref.setVisible(false);
|
||||
mFrequencyPref.setVisible(false);
|
||||
mTxLinkSpeedPref.setVisible(false);
|
||||
mRxLinkSpeedPref.setVisible(false);
|
||||
|
||||
// MAC Address Pref
|
||||
mMacAddressPref.setSummary(mWifiConfig.getRandomizedMacAddress().toString());
|
||||
|
||||
// TODO(b/124700353): Change header to data usage chart
|
||||
mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
|
||||
.done(mFragment.getActivity(), true /* rebind */);
|
||||
|
||||
updateIpLayerInfo();
|
||||
|
||||
// Update whether the forget button should be displayed.
|
||||
mButtonsPref.setButton1Visible(canForgetNetwork());
|
||||
|
||||
// TODO(b/124700405): Check if showing share button is fine to added for saved network
|
||||
mButtonsPref.setButton3Visible(false);
|
||||
}
|
||||
|
||||
private void updateLiveNetworkInfo() {
|
||||
// No need to fetch LinkProperties and NetworkCapabilities, they are updated by the
|
||||
// callbacks. mNetwork doesn't change except in onResume.
|
||||
mNetworkInfo = mConnectivityManager.getNetworkInfo(mNetwork);
|
||||
|
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (C) 2019 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.wifi.details;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Handler;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
|
||||
public class WifiDetailSavedNetworkPreferenceController extends WifiDetailPreferenceController {
|
||||
|
||||
WifiDetailSavedNetworkPreferenceController(AccessPoint accessPoint,
|
||||
ConnectivityManager connectivityManager, Context context,
|
||||
Fragment fragment, Handler handler,
|
||||
Lifecycle lifecycle,
|
||||
WifiManager wifiManager,
|
||||
MetricsFeatureProvider metricsFeatureProvider,
|
||||
IconInjector injector) {
|
||||
super(accessPoint, connectivityManager, context, fragment, handler, lifecycle, wifiManager,
|
||||
metricsFeatureProvider, injector);
|
||||
}
|
||||
|
||||
public static WifiDetailSavedNetworkPreferenceController newInstance(
|
||||
AccessPoint accessPoint,
|
||||
ConnectivityManager connectivityManager,
|
||||
Context context,
|
||||
Fragment fragment,
|
||||
Handler handler,
|
||||
Lifecycle lifecycle,
|
||||
WifiManager wifiManager,
|
||||
MetricsFeatureProvider metricsFeatureProvider) {
|
||||
return new WifiDetailSavedNetworkPreferenceController(
|
||||
accessPoint, connectivityManager, context, fragment, handler, lifecycle,
|
||||
wifiManager, metricsFeatureProvider, new IconInjector(context));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
updateSavedNetworkInfo();
|
||||
}
|
||||
}
|
@@ -51,6 +51,9 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
|
||||
|
||||
private static final String TAG = "WifiNetworkDetailsFrg";
|
||||
|
||||
// Extra for if current fragment shows saved network status or not.
|
||||
public static final String EXTRA_IS_SAVED_NETWORK = "SavedNetwork";
|
||||
|
||||
private AccessPoint mAccessPoint;
|
||||
private WifiDetailPreferenceController mWifiDetailPreferenceController;
|
||||
|
||||
@@ -122,15 +125,31 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
|
||||
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||
final ConnectivityManager cm = context.getSystemService(ConnectivityManager.class);
|
||||
mWifiDetailPreferenceController = WifiDetailPreferenceController.newInstance(
|
||||
mAccessPoint,
|
||||
cm,
|
||||
context,
|
||||
this,
|
||||
new Handler(Looper.getMainLooper()), // UI thread.
|
||||
getSettingsLifecycle(),
|
||||
context.getSystemService(WifiManager.class),
|
||||
mMetricsFeatureProvider);
|
||||
|
||||
final boolean isDisplaySavedNetworkDetails =
|
||||
getArguments().getBoolean(EXTRA_IS_SAVED_NETWORK, false /* defaultValue */);
|
||||
if (isDisplaySavedNetworkDetails) {
|
||||
mWifiDetailPreferenceController =
|
||||
WifiDetailSavedNetworkPreferenceController.newInstance(
|
||||
mAccessPoint,
|
||||
cm,
|
||||
context,
|
||||
this,
|
||||
new Handler(Looper.getMainLooper()), // UI thread.
|
||||
getSettingsLifecycle(),
|
||||
context.getSystemService(WifiManager.class),
|
||||
mMetricsFeatureProvider);
|
||||
} else {
|
||||
mWifiDetailPreferenceController = WifiDetailPreferenceController.newInstance(
|
||||
mAccessPoint,
|
||||
cm,
|
||||
context,
|
||||
this,
|
||||
new Handler(Looper.getMainLooper()), // UI thread.
|
||||
getSettingsLifecycle(),
|
||||
context.getSystemService(WifiManager.class),
|
||||
mMetricsFeatureProvider);
|
||||
}
|
||||
|
||||
controllers.add(mWifiDetailPreferenceController);
|
||||
controllers.add(new WifiMeteredPreferenceController(context, mAccessPoint.getConfig()));
|
||||
|
@@ -23,13 +23,18 @@ import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
import android.util.FeatureFlagUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.FeatureFlags;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.development.featureflags.FeatureFlagPersistent;
|
||||
import com.android.settings.wifi.WifiConfigUiBase;
|
||||
import com.android.settings.wifi.WifiDialog;
|
||||
import com.android.settings.wifi.WifiSettings;
|
||||
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
import com.android.settingslib.wifi.AccessPointPreference;
|
||||
|
||||
@@ -95,7 +100,23 @@ public class SavedAccessPointsWifiSettings extends DashboardFragment
|
||||
mAccessPointSavedState = null;
|
||||
}
|
||||
|
||||
showDialog(WifiSettings.WIFI_DIALOG_ID);
|
||||
if (usingDetailsFragment(getContext())) {
|
||||
if (mSelectedAccessPoint == null) {
|
||||
mSelectedAccessPoint = new AccessPoint(getActivity(), mAccessPointSavedState);
|
||||
}
|
||||
final Bundle savedState = new Bundle();
|
||||
mSelectedAccessPoint.saveWifiState(savedState);
|
||||
savedState.putBoolean(WifiNetworkDetailsFragment.EXTRA_IS_SAVED_NETWORK, true);
|
||||
|
||||
new SubSettingLauncher(getContext())
|
||||
.setTitleText(mSelectedAccessPoint.getTitle())
|
||||
.setDestination(WifiNetworkDetailsFragment.class.getName())
|
||||
.setArguments(savedState)
|
||||
.setSourceMetricsCategory(getMetricsCategory())
|
||||
.launch();
|
||||
} else {
|
||||
showDialog(WifiSettings.WIFI_DIALOG_ID);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -166,4 +187,15 @@ public class SavedAccessPointsWifiSettings extends DashboardFragment
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
mSelectedAccessPoint = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if showing WifiNetworkDetailsFragment when clicking saved network item.
|
||||
*/
|
||||
public static boolean usingDetailsFragment(Context context) {
|
||||
if (FeatureFlagUtils.isEnabled(context, FeatureFlags.MOBILE_NETWORK_V2)
|
||||
&& FeatureFlagPersistent.isEnabled(context, FeatureFlags.NETWORK_INTERNET_V2)) {
|
||||
return false; // TODO(b/124695272): mark true when UI is ready.
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user