[Passpointv2] Implement DataUsage header for Wi-Fi detail fragment
Change header to a data usage chart of the specified Wi-Fi network. Bug: 124700353 Test: make RunSettingsRoboTests -j32 ROBOTEST_FILTER=com.android.settings Change-Id: Ide08ffd5e97ced5fe54707562690155414598dac
This commit is contained in:
@@ -67,6 +67,7 @@ import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener;
|
||||
import com.android.settings.widget.SwitchBarController;
|
||||
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
|
||||
import com.android.settings.wifi.dpp.WifiDppUtils;
|
||||
import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.search.SearchIndexable;
|
||||
@@ -968,8 +969,13 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
}
|
||||
|
||||
private void launchNetworkDetailsFragment(ConnectedAccessPointPreference pref) {
|
||||
final AccessPoint accessPoint = pref.getAccessPoint();
|
||||
final Context context = getContext();
|
||||
final CharSequence title = SavedAccessPointsWifiSettings.usingDetailsFragment(context) ?
|
||||
accessPoint.getTitle() : context.getText(R.string.pref_title_network_details);
|
||||
|
||||
new SubSettingLauncher(getContext())
|
||||
.setTitleRes(R.string.pref_title_network_details)
|
||||
.setTitleText(title)
|
||||
.setDestination(WifiNetworkDetailsFragment.class.getName())
|
||||
.setArguments(pref.getExtras())
|
||||
.setSourceMetricsCategory(getMetricsCategory())
|
||||
|
@@ -42,6 +42,7 @@ import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Handler;
|
||||
import android.text.TextUtils;
|
||||
import android.util.FeatureFlagUtils;
|
||||
import android.util.Log;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Toast;
|
||||
@@ -51,12 +52,14 @@ import androidx.core.text.BidiFormatter;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.core.FeatureFlags;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settings.datausage.WifiDataUsageSummaryPreferenceController;
|
||||
import com.android.settings.development.featureflags.FeatureFlagPersistent;
|
||||
import com.android.settings.widget.EntityHeaderController;
|
||||
import com.android.settings.wifi.WifiDialog;
|
||||
@@ -150,6 +153,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
private Preference mDnsPref;
|
||||
private PreferenceCategory mIpv6Category;
|
||||
private Preference mIpv6AddressPref;
|
||||
private Lifecycle mLifecycle;
|
||||
Preference mDataUsageSummaryPref;
|
||||
WifiDataUsageSummaryPreferenceController mSummaryHeaderController;
|
||||
|
||||
private final IconInjector mIconInjector;
|
||||
private final IntentFilter mFilter;
|
||||
@@ -262,6 +268,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
mFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
|
||||
mFilter.addAction(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION);
|
||||
|
||||
mLifecycle = lifecycle;
|
||||
lifecycle.addObserver(this);
|
||||
}
|
||||
|
||||
@@ -313,6 +320,17 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
|
||||
private void setupEntityHeader(PreferenceScreen screen) {
|
||||
LayoutPreference headerPref = screen.findPreference(KEY_HEADER);
|
||||
|
||||
if (usingDataUsageHeader(mContext)) {
|
||||
headerPref.setVisible(false);
|
||||
mDataUsageSummaryPref = screen.findPreference("status_header");
|
||||
mDataUsageSummaryPref.setVisible(true);
|
||||
mSummaryHeaderController =
|
||||
new WifiDataUsageSummaryPreferenceController(mFragment.getActivity(),
|
||||
mLifecycle, (PreferenceFragmentCompat) mFragment, mAccessPoint.getSsid());
|
||||
return;
|
||||
}
|
||||
|
||||
mEntityHeaderController =
|
||||
EntityHeaderController.newInstance(
|
||||
mFragment.getActivity(), mFragment,
|
||||
@@ -326,6 +344,15 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
mEntityHeaderController.setLabel(mAccessPoint.getTitle());
|
||||
}
|
||||
|
||||
private void refreshEntityHeader() {
|
||||
if (usingDataUsageHeader(mContext)) {
|
||||
mSummaryHeaderController.updateState(mDataUsageSummaryPref);
|
||||
} else {
|
||||
mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
|
||||
.done(mFragment.getActivity(), true /* rebind */);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
// Ensure mNetwork is set before any callbacks above are delivered, since our
|
||||
@@ -360,9 +387,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
// 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 */);
|
||||
refreshEntityHeader();
|
||||
|
||||
updateIpLayerInfo();
|
||||
|
||||
@@ -429,8 +454,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
|
||||
private void refreshNetworkState() {
|
||||
mAccessPoint.update(mWifiConfig, mWifiInfo, mNetworkInfo);
|
||||
mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
|
||||
.done(mFragment.getActivity(), true /* rebind */);
|
||||
refreshEntityHeader();
|
||||
}
|
||||
|
||||
private void refreshRssiViews() {
|
||||
@@ -443,7 +467,10 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
Drawable wifiIcon = mIconInjector.getIcon(mRssiSignalLevel);
|
||||
|
||||
wifiIcon.setTintList(Utils.getColorAccent(mContext));
|
||||
mEntityHeaderController.setIcon(wifiIcon).done(mFragment.getActivity(), true /* rebind */);
|
||||
if (mEntityHeaderController != null) {
|
||||
mEntityHeaderController.setIcon(wifiIcon).done(mFragment.getActivity(),
|
||||
true /* rebind */);
|
||||
}
|
||||
|
||||
Drawable wifiIconDark = wifiIcon.getConstantState().newDrawable().mutate();
|
||||
wifiIconDark.setTintList(Utils.getColorAttr(mContext, android.R.attr.colorControlNormal));
|
||||
@@ -670,4 +697,8 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
return mContext.getDrawable(Utils.getWifiIconResource(level)).mutate();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean usingDataUsageHeader(Context context) {
|
||||
return FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_DATAUSAGE_HEADER);
|
||||
}
|
||||
}
|
||||
|
@@ -153,11 +153,11 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
|
||||
|
||||
controllers.add(mWifiDetailPreferenceController);
|
||||
controllers.add(new WifiMeteredPreferenceController(context, mAccessPoint.getConfig()));
|
||||
WifiPrivacyPreferenceController preferenceController = new WifiPrivacyPreferenceController(
|
||||
WifiPrivacyPreferenceController privacyController = new WifiPrivacyPreferenceController(
|
||||
context);
|
||||
preferenceController.setWifiConfiguration(mAccessPoint.getConfig());
|
||||
preferenceController.setIsEphemeral(mAccessPoint.isEphemeral());
|
||||
controllers.add(preferenceController);
|
||||
privacyController.setWifiConfiguration(mAccessPoint.getConfig());
|
||||
privacyController.setIsEphemeral(mAccessPoint.isEphemeral());
|
||||
controllers.add(privacyController);
|
||||
|
||||
return controllers;
|
||||
}
|
||||
|
@@ -199,11 +199,7 @@ public class SavedAccessPointsWifiSettings extends DashboardFragment
|
||||
* 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;
|
||||
return FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_SAVED_SCREEN);
|
||||
}
|
||||
|
||||
boolean isSubscriptionsFeatureEnabled() {
|
||||
|
Reference in New Issue
Block a user