<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="data_usage_wifi_screen">
<com.android.settings.datausage.TemplatePreferenceCategory
<com.android.settings.datausage.DataUsagePreference
android:key="wifi_data_usage"
- android:title="@string/wifi_data_usage" />
+ android:title="@string/wifi_data_usage"
+ settings:searchable="false"/>
</com.android.settings.datausage.TemplatePreferenceCategory>
import android.net.NetworkInfo;
import android.net.NetworkInfo.State;
import android.net.NetworkRequest;
+import android.net.NetworkTemplate;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import com.android.settings.core.FeatureFlags;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.datausage.DataUsageUtils;
+import com.android.settings.datausage.DataUsagePreference;
import com.android.settings.location.ScanningSettings;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
private static final String PREF_KEY_CONFIGURE_WIFI_SETTINGS = "configure_settings";
private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
private static final String PREF_KEY_STATUS_MESSAGE = "wifi_status_message";
+ @VisibleForTesting
+ static final String PREF_KEY_DATA_USAGE = "wifi_data_usage";
private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0;
Preference mConfigureWifiSettingsPreference;
@VisibleForTesting
Preference mSavedNetworksPreference;
+ @VisibleForTesting
+ DataUsagePreference mDataUsagePreference;
private LinkablePreference mStatusMessagePreference;
// For Search
mAddWifiNetworkPreference = new AddWifiNetworkPreference(getPrefContext());
mStatusMessagePreference = (LinkablePreference) findPreference(PREF_KEY_STATUS_MESSAGE);
mUserBadgeCache = new AccessPointPreference.UserBadgeCache(getPackageManager());
+ mDataUsagePreference = findPreference(PREF_KEY_DATA_USAGE);
+ mDataUsagePreference.setVisible(DataUsageUtils.hasWifiRadio(getContext()));
+ mDataUsagePreference.setTemplate(NetworkTemplate.buildTemplateWifiWildcard(),
+ 0 /*subId*/,
+ null /*service*/);
}
@Override
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Resources;
+import android.os.Bundle;
import android.os.PowerManager;
+import android.os.UserManager;
import android.provider.Settings;
+import androidx.fragment.app.FragmentActivity;
import androidx.preference.Preference;
import com.android.settings.R;
+import com.android.settings.datausage.DataUsagePreference;
import com.android.settings.search.SearchIndexableRaw;
+import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
import com.android.settingslib.wifi.WifiTracker;
import org.junit.Before;
private WifiTracker mWifiTracker;
@Mock
private PowerManager mPowerManager;
+ @Mock
+ private DataUsagePreference mDataUsagePreference;
private Context mContext;
private WifiSettings mWifiSettings;
assertThat(mWifiSettings.mAddWifiNetworkPreference.getTitle()).isEqualTo(
mContext.getString(R.string.wifi_add_network));
}
+
+ private void setUpForOnCreate() {
+ final FragmentActivity activity = mock(FragmentActivity.class);
+ when(mWifiSettings.getActivity()).thenReturn(activity);
+ final Resources.Theme theme = mContext.getTheme();
+ when(activity.getTheme()).thenReturn(theme);
+ UserManager userManager = mock(UserManager.class);
+ when(activity.getSystemService(Context.USER_SERVICE))
+ .thenReturn(userManager);
+
+ when(mWifiSettings.findPreference(WifiSettings.PREF_KEY_DATA_USAGE))
+ .thenReturn(mDataUsagePreference);
+ }
+
+ @Test
+ @Config(shadows = {ShadowDataUsageUtils.class})
+ public void checkDataUsagePreference_perferenceInvisibleIfWifiNotSupported() {
+ setUpForOnCreate();
+ ShadowDataUsageUtils.IS_WIFI_SUPPORTED = false;
+
+ mWifiSettings.onCreate(Bundle.EMPTY);
+
+ verify(mDataUsagePreference).setVisible(false);
+ }
+
+ @Test
+ @Config(shadows = {ShadowDataUsageUtils.class})
+ public void checkDataUsagePreference_perferenceVisibleIfWifiSupported() {
+ setUpForOnCreate();
+ ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
+
+ mWifiSettings.onCreate(Bundle.EMPTY);
+
+ verify(mDataUsagePreference).setVisible(true);
+ verify(mDataUsagePreference).setTemplate(any(), eq(0) /*subId*/, eq(null) /*service*/);
+ }
}