Check for WiFi controller for summary population.
WiFiController might return not available, so we should only surface "Wi-Fi" as a summary entry if it's available in the settings page. This also checks for empty strings in case they are declared as such in the XML (since XML can be device/product overlay'd), to avoid situations such as ", data usage". Bug: 111398942 Test: Manual check, and I see Wi-Fi no longer visible for cases where Wifi controller isn't available. Test: make RunSettingsRoboTests Change-Id: I24736a6240c50e2ea38ce424fbac2316721290d8
This commit is contained in:
@@ -24,6 +24,7 @@ import android.content.Context;
|
||||
import android.icu.text.ListFormatter;
|
||||
import android.provider.SearchIndexableResource;
|
||||
import android.text.BidiFormatter;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
@@ -153,21 +154,25 @@ public class NetworkDashboardFragment extends DashboardFragment implements
|
||||
|
||||
private final Context mContext;
|
||||
private final SummaryLoader mSummaryLoader;
|
||||
private final WifiMasterSwitchPreferenceController mWifiPreferenceController;
|
||||
private final MobileNetworkPreferenceController mMobileNetworkPreferenceController;
|
||||
private final TetherPreferenceController mTetherPreferenceController;
|
||||
|
||||
public SummaryProvider(Context context, SummaryLoader summaryLoader) {
|
||||
this(context, summaryLoader,
|
||||
new WifiMasterSwitchPreferenceController(context, null),
|
||||
new MobileNetworkPreferenceController(context),
|
||||
new TetherPreferenceController(context, null /* lifecycle */));
|
||||
}
|
||||
|
||||
@VisibleForTesting(otherwise = VisibleForTesting.NONE)
|
||||
SummaryProvider(Context context, SummaryLoader summaryLoader,
|
||||
WifiMasterSwitchPreferenceController wifiPreferenceController,
|
||||
MobileNetworkPreferenceController mobileNetworkPreferenceController,
|
||||
TetherPreferenceController tetherPreferenceController) {
|
||||
mContext = context;
|
||||
mSummaryLoader = summaryLoader;
|
||||
mWifiPreferenceController = wifiPreferenceController;
|
||||
mMobileNetworkPreferenceController = mobileNetworkPreferenceController;
|
||||
mTetherPreferenceController = tetherPreferenceController;
|
||||
}
|
||||
@@ -176,20 +181,27 @@ public class NetworkDashboardFragment extends DashboardFragment implements
|
||||
@Override
|
||||
public void setListening(boolean listening) {
|
||||
if (listening) {
|
||||
final List<String> summaries = new ArrayList<>();
|
||||
final String wifiSummary = BidiFormatter.getInstance()
|
||||
.unicodeWrap(mContext.getString(R.string.wifi_settings_title));
|
||||
final String mobileSummary = mContext.getString(
|
||||
R.string.network_dashboard_summary_mobile);
|
||||
final String dataUsageSummary = mContext.getString(
|
||||
R.string.network_dashboard_summary_data_usage);
|
||||
final String hotspotSummary = mContext.getString(
|
||||
R.string.network_dashboard_summary_hotspot);
|
||||
|
||||
summaries.add(BidiFormatter.getInstance()
|
||||
.unicodeWrap(mContext.getString(R.string.wifi_settings_title)));
|
||||
if (mMobileNetworkPreferenceController.isAvailable()) {
|
||||
summaries.add(mContext.getString(
|
||||
R.string.network_dashboard_summary_mobile));
|
||||
final List<String> summaries = new ArrayList<>();
|
||||
if (mWifiPreferenceController.isAvailable() && !TextUtils.isEmpty(wifiSummary)) {
|
||||
summaries.add(wifiSummary);
|
||||
}
|
||||
final String dataUsageSettingSummary = mContext.getString(
|
||||
R.string.network_dashboard_summary_data_usage);
|
||||
summaries.add(dataUsageSettingSummary);
|
||||
if (mTetherPreferenceController.isAvailable()) {
|
||||
summaries.add(mContext.getString(
|
||||
R.string.network_dashboard_summary_hotspot));
|
||||
if (mMobileNetworkPreferenceController.isAvailable() && !TextUtils.isEmpty(mobileSummary)) {
|
||||
summaries.add(mobileSummary);
|
||||
}
|
||||
if (!TextUtils.isEmpty(dataUsageSummary)) {
|
||||
summaries.add(dataUsageSummary);
|
||||
}
|
||||
if (mTetherPreferenceController.isAvailable() && !TextUtils.isEmpty(hotspotSummary)) {
|
||||
summaries.add(hotspotSummary);
|
||||
}
|
||||
mSummaryLoader.setSummary(this, ListFormatter.getInstance().format(summaries));
|
||||
}
|
||||
|
Reference in New Issue
Block a user