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;
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;
}
@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);
+ }
+ if (mMobileNetworkPreferenceController.isAvailable() && !TextUtils.isEmpty(mobileSummary)) {
+ summaries.add(mobileSummary);
+ }
+ if (!TextUtils.isEmpty(dataUsageSummary)) {
+ summaries.add(dataUsageSummary);
}
- 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 (mTetherPreferenceController.isAvailable() && !TextUtils.isEmpty(hotspotSummary)) {
+ summaries.add(hotspotSummary);
}
mSummaryLoader.setSummary(this, ListFormatter.getInstance().format(summaries));
}
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.wifi.WifiMasterSwitchPreferenceController;
import com.android.settingslib.drawer.CategoryKey;
import org.junit.Before;
@Test
public void summaryProviderSetListening_hasMobileAndHotspot_shouldReturnMobileSummary() {
+ final WifiMasterSwitchPreferenceController wifiPreferenceController =
+ mock(WifiMasterSwitchPreferenceController.class);
final MobileNetworkPreferenceController mobileNetworkPreferenceController =
mock(MobileNetworkPreferenceController.class);
final TetherPreferenceController tetherPreferenceController =
final SummaryLoader summaryLoader = mock(SummaryLoader.class);
final SummaryLoader.SummaryProvider provider =
new NetworkDashboardFragment.SummaryProvider(mContext, summaryLoader,
- mobileNetworkPreferenceController, tetherPreferenceController);
+ wifiPreferenceController, mobileNetworkPreferenceController,
+ tetherPreferenceController);
provider.setListening(false);
verifyZeroInteractions(summaryLoader);
+ when(wifiPreferenceController.isAvailable()).thenReturn(true);
when(mobileNetworkPreferenceController.isAvailable()).thenReturn(true);
when(tetherPreferenceController.isAvailable()).thenReturn(true);
@Test
public void summaryProviderSetListening_noMobileOrHotspot_shouldReturnSimpleSummary() {
+ final WifiMasterSwitchPreferenceController wifiPreferenceController =
+ mock(WifiMasterSwitchPreferenceController.class);
final MobileNetworkPreferenceController mobileNetworkPreferenceController =
mock(MobileNetworkPreferenceController.class);
final TetherPreferenceController tetherPreferenceController =
final SummaryLoader summaryLoader = mock(SummaryLoader.class);
final SummaryLoader.SummaryProvider provider =
new NetworkDashboardFragment.SummaryProvider(mContext, summaryLoader,
- mobileNetworkPreferenceController, tetherPreferenceController);
+ wifiPreferenceController, mobileNetworkPreferenceController,
+ tetherPreferenceController);
provider.setListening(false);
verifyZeroInteractions(summaryLoader);
+ when(wifiPreferenceController.isAvailable()).thenReturn(true);
when(mobileNetworkPreferenceController.isAvailable()).thenReturn(false);
when(tetherPreferenceController.isAvailable()).thenReturn(false);