[RESTRICT AUTOMERGE] [Provider Model] Enforce DISALLOW_CONFIG_WIFI in Internet Panel

- Avoid the appearance of WiFi-related strings in sub-title

- Hide all of Wi-Fi related views

- Do not scan Wi-Fi result

Bug: 195669955
Test: manual test
atest -c InternetDialogControllerTest \
         InternetDialogTest

Change-Id: I5c19e6a8e52d2c9207053ffb7539d931d1f04799
(cherry picked from commit 018c97979c)
This commit is contained in:
Weng Su
2021-08-10 23:27:11 +08:00
committed by Zoey Chen
parent c9d58c10d6
commit 7c0b74fd8c
7 changed files with 130 additions and 107 deletions

View File

@@ -122,8 +122,9 @@ public class InternetTile extends QSTileImpl<SignalState> {
@Override @Override
protected void handleClick(@Nullable View view) { protected void handleClick(@Nullable View view) {
boolean canConfigMobileData = mAccessPointController.canConfigMobileData(); mHandler.post(() -> mInternetDialogFactory.create(true,
mHandler.post(() -> mInternetDialogFactory.create(true, canConfigMobileData)); mAccessPointController.canConfigMobileData(),
mAccessPointController.canConfigWifi()));
} }
@Override @Override

View File

@@ -51,7 +51,6 @@ import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.Space;
import android.widget.Switch; import android.widget.Switch;
import android.widget.TextView; import android.widget.TextView;
@@ -93,6 +92,8 @@ public class InternetDialog extends SystemUIDialog implements
protected View mDialogView; protected View mDialogView;
@VisibleForTesting @VisibleForTesting
protected WifiEntry mConnectedWifiEntry; protected WifiEntry mConnectedWifiEntry;
@VisibleForTesting
protected boolean mCanConfigWifi;
private InternetDialogFactory mInternetDialogFactory; private InternetDialogFactory mInternetDialogFactory;
private SubscriptionManager mSubscriptionManager; private SubscriptionManager mSubscriptionManager;
@@ -152,7 +153,8 @@ public class InternetDialog extends SystemUIDialog implements
public InternetDialog(Context context, InternetDialogFactory internetDialogFactory, public InternetDialog(Context context, InternetDialogFactory internetDialogFactory,
InternetDialogController internetDialogController, boolean canConfigMobileData, InternetDialogController internetDialogController, boolean canConfigMobileData,
boolean aboveStatusBar, UiEventLogger uiEventLogger, @Main Handler handler) { boolean canConfigWifi, boolean aboveStatusBar, UiEventLogger uiEventLogger,
@Main Handler handler) {
super(context, R.style.Theme_SystemUI_Dialog_Internet); super(context, R.style.Theme_SystemUI_Dialog_Internet);
if (DEBUG) { if (DEBUG) {
Log.d(TAG, "Init InternetDialog"); Log.d(TAG, "Init InternetDialog");
@@ -166,6 +168,7 @@ public class InternetDialog extends SystemUIDialog implements
mTelephonyManager = mInternetDialogController.getTelephonyManager(); mTelephonyManager = mInternetDialogController.getTelephonyManager();
mWifiManager = mInternetDialogController.getWifiManager(); mWifiManager = mInternetDialogController.getWifiManager();
mCanConfigMobileData = canConfigMobileData; mCanConfigMobileData = canConfigMobileData;
mCanConfigWifi = canConfigWifi;
mLayoutManager = new LinearLayoutManager(mContext) { mLayoutManager = new LinearLayoutManager(mContext) {
@Override @Override
@@ -249,7 +252,19 @@ public class InternetDialog extends SystemUIDialog implements
if (DEBUG) { if (DEBUG) {
Log.d(TAG, "onStart"); Log.d(TAG, "onStart");
} }
mInternetDialogController.onStart(this); mInternetDialogController.onStart(this, mCanConfigWifi);
if (!mCanConfigWifi) {
hideWifiViews();
}
}
@VisibleForTesting
void hideWifiViews() {
setProgressBarVisible(false);
mTurnWifiOnLayout.setVisibility(View.GONE);
mConnectedWifListLayout.setVisibility(View.GONE);
mWifiRecyclerView.setVisibility(View.GONE);
mSeeAllLayout.setVisibility(View.GONE);
} }
@Override @Override
@@ -288,9 +303,13 @@ public class InternetDialog extends SystemUIDialog implements
} else { } else {
mInternetDialogSubTitle.setText(getSubtitleText()); mInternetDialogSubTitle.setText(getSubtitleText());
} }
showProgressBar();
setMobileDataLayout(mInternetDialogController.activeNetworkIsCellular()); setMobileDataLayout(mInternetDialogController.activeNetworkIsCellular());
if (!mCanConfigWifi) {
return;
}
showProgressBar();
final boolean isDeviceLocked = mInternetDialogController.isDeviceLocked(); final boolean isDeviceLocked = mInternetDialogController.isDeviceLocked();
final boolean isWifiEnabled = mWifiManager.isWifiEnabled(); final boolean isWifiEnabled = mWifiManager.isWifiEnabled();
updateWifiToggle(isWifiEnabled, isDeviceLocked); updateWifiToggle(isWifiEnabled, isDeviceLocked);
@@ -387,8 +406,8 @@ public class InternetDialog extends SystemUIDialog implements
return; return;
} }
mConnectedWifListLayout.setVisibility(View.VISIBLE); mConnectedWifListLayout.setVisibility(View.VISIBLE);
mConnectedWifiTitleText.setText(mInternetDialogController.getInternetWifiTitle()); mConnectedWifiTitleText.setText(mConnectedWifiEntry.getTitle());
mConnectedWifiSummaryText.setText(mInternetDialogController.getInternetWifiSummary()); mConnectedWifiSummaryText.setText(mConnectedWifiEntry.getSummary(false));
mConnectedWifiIcon.setImageDrawable( mConnectedWifiIcon.setImageDrawable(
mInternetDialogController.getInternetWifiDrawable(mConnectedWifiEntry)); mInternetDialogController.getInternetWifiDrawable(mConnectedWifiEntry));
if (mInternetDialogController.isNightMode()) { if (mInternetDialogController.isNightMode()) {

View File

@@ -139,6 +139,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
protected InternetTelephonyCallback mInternetTelephonyCallback; protected InternetTelephonyCallback mInternetTelephonyCallback;
@VisibleForTesting @VisibleForTesting
protected WifiUtils.InternetIconInjector mWifiIconInjector; protected WifiUtils.InternetIconInjector mWifiIconInjector;
@VisibleForTesting
protected boolean mCanConfigWifi;
@VisibleForTesting @VisibleForTesting
KeyguardStateController mKeyguardStateController; KeyguardStateController mKeyguardStateController;
@@ -193,7 +195,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
mWifiIconInjector = new WifiUtils.InternetIconInjector(mContext); mWifiIconInjector = new WifiUtils.InternetIconInjector(mContext);
} }
void onStart(@NonNull InternetDialogCallback callback) { void onStart(@NonNull InternetDialogCallback callback, boolean canConfigWifi) {
if (DEBUG) { if (DEBUG) {
Log.d(TAG, "onStart"); Log.d(TAG, "onStart");
} }
@@ -217,6 +219,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
mConnectivityManager.registerNetworkCallback(new NetworkRequest.Builder() mConnectivityManager.registerNetworkCallback(new NetworkRequest.Builder()
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.build(), new DataConnectivityListener(), mHandler); .build(), new DataConnectivityListener(), mHandler);
mCanConfigWifi = canConfigWifi;
scanWifiAccessPoints(); scanWifiAccessPoints();
} }
@@ -270,7 +273,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
return null; return null;
} }
if (!mWifiManager.isWifiEnabled()) { if (mCanConfigWifi && !mWifiManager.isWifiEnabled()) {
// When the airplane mode is off and Wi-Fi is disabled. // When the airplane mode is off and Wi-Fi is disabled.
// Sub-Title: Wi-Fi is off // Sub-Title: Wi-Fi is off
if (DEBUG) { if (DEBUG) {
@@ -290,10 +293,10 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
final List<ScanResult> wifiList = mWifiManager.getScanResults(); final List<ScanResult> wifiList = mWifiManager.getScanResults();
if (wifiList != null && wifiList.size() != 0) { if (wifiList != null && wifiList.size() != 0) {
return mContext.getText(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT); return mCanConfigWifi ? mContext.getText(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT) : null;
} }
if (isProgressBarVisible) { if (mCanConfigWifi && isProgressBarVisible) {
// When the Wi-Fi scan result callback is received // When the Wi-Fi scan result callback is received
// Sub-Title: Searching for networks... // Sub-Title: Searching for networks...
return mContext.getText(SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS); return mContext.getText(SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS);
@@ -317,7 +320,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
return mContext.getText(SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE); return mContext.getText(SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE);
} }
if (!isMobileDataEnabled()) { if (mCanConfigWifi && !isMobileDataEnabled()) {
if (DEBUG) { if (DEBUG) {
Log.d(TAG, "Mobile data off"); Log.d(TAG, "Mobile data off");
} }
@@ -331,7 +334,10 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
return mContext.getText(SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE); return mContext.getText(SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE);
} }
return mContext.getText(SUBTITLE_TEXT_NON_CARRIER_NETWORK_UNAVAILABLE); if (mCanConfigWifi) {
return mContext.getText(SUBTITLE_TEXT_NON_CARRIER_NETWORK_UNAVAILABLE);
}
return null;
} }
Drawable getInternetWifiDrawable(@NonNull WifiEntry wifiEntry) { Drawable getInternetWifiDrawable(@NonNull WifiEntry wifiEntry) {
@@ -549,26 +555,6 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
return summary; return summary;
} }
String getInternetWifiTitle() {
if (getInternetWifiEntry() == null) {
if (DEBUG) {
Log.d(TAG, "connected entry is null");
}
return "";
}
return getInternetWifiEntry().getTitle();
}
String getInternetWifiSummary() {
if (getInternetWifiEntry() == null) {
if (DEBUG) {
Log.d(TAG, "connected entry is null");
}
return "";
}
return getInternetWifiEntry().getSummary(false);
}
void launchNetworkSetting() { void launchNetworkSetting() {
mCallback.dismissDialog(); mCallback.dismissDialog();
mActivityStarter.postStartActivityDismissingKeyguard(getSettingsIntent(), 0); mActivityStarter.postStartActivityDismissingKeyguard(getSettingsIntent(), 0);
@@ -780,12 +766,14 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
} }
void scanWifiAccessPoints() { void scanWifiAccessPoints() {
mAccessPointController.scanForAccessPoints(); if (mCanConfigWifi) {
mAccessPointController.scanForAccessPoints();
}
} }
@Override @Override
public void onAccessPointsChanged(List<WifiEntry> accessPoints) { public void onAccessPointsChanged(List<WifiEntry> accessPoints) {
if (accessPoints == null) { if (accessPoints == null || !mCanConfigWifi) {
return; return;
} }
@@ -869,8 +857,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
final String action = intent.getAction(); final String action = intent.getAction();
if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION) if (mCanConfigWifi && (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)
|| action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { || action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION))) {
mCallback.onWifiStateReceived(context, intent); mCallback.onWifiStateReceived(context, intent);
} }

View File

@@ -31,17 +31,17 @@ private val DEBUG = Log.isLoggable(TAG, Log.DEBUG)
*/ */
@SysUISingleton @SysUISingleton
class InternetDialogFactory @Inject constructor( class InternetDialogFactory @Inject constructor(
@Main private val handler: Handler, @Main private val handler: Handler,
private val internetDialogController: InternetDialogController, private val internetDialogController: InternetDialogController,
private val context: Context, private val context: Context,
private val uiEventLogger: UiEventLogger private val uiEventLogger: UiEventLogger
) { ) {
companion object { companion object {
var internetDialog: InternetDialog? = null var internetDialog: InternetDialog? = null
} }
/** Creates a [InternetDialog]. */ /** Creates a [InternetDialog]. */
fun create(aboveStatusBar: Boolean, canConfigMobileData: Boolean) { fun create(aboveStatusBar: Boolean, canConfigMobileData: Boolean, canConfigWifi: Boolean) {
if (internetDialog != null) { if (internetDialog != null) {
if (DEBUG) { if (DEBUG) {
Log.d(TAG, "InternetDialog is showing, do not create it twice.") Log.d(TAG, "InternetDialog is showing, do not create it twice.")
@@ -49,7 +49,7 @@ class InternetDialogFactory @Inject constructor(
return return
} else { } else {
internetDialog = InternetDialog(context, this, internetDialogController, internetDialog = InternetDialog(context, this, internetDialogController,
canConfigMobileData, aboveStatusBar, uiEventLogger, handler) canConfigMobileData, canConfigWifi, aboveStatusBar, uiEventLogger, handler)
internetDialog?.show() internetDialog?.show()
} }
} }

View File

@@ -793,8 +793,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
mReceiverHandler.post(this::handleConfigurationChanged); mReceiverHandler.post(this::handleConfigurationChanged);
break; break;
case Settings.Panel.ACTION_INTERNET_CONNECTIVITY: case Settings.Panel.ACTION_INTERNET_CONNECTIVITY:
boolean canConfigMobileData = mAccessPoints.canConfigMobileData(); mMainHandler.post(() -> mInternetDialogFactory.create(true,
mMainHandler.post(() -> mInternetDialogFactory.create(true, canConfigMobileData)); mAccessPoints.canConfigMobileData(), mAccessPoints.canConfigWifi()));
break; break;
default: default:
int subId = intent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, int subId = intent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX,

View File

@@ -10,6 +10,7 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -100,6 +101,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
when(mKeyguardStateController.isUnlocked()).thenReturn(true); when(mKeyguardStateController.isUnlocked()).thenReturn(true);
when(mConnectedEntry.isDefaultNetwork()).thenReturn(true); when(mConnectedEntry.isDefaultNetwork()).thenReturn(true);
when(mConnectedEntry.hasInternetAccess()).thenReturn(true); when(mConnectedEntry.hasInternetAccess()).thenReturn(true);
when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[]{SUB_ID});
mInternetDialogController = new MockInternetDialogController(mContext, mInternetDialogController = new MockInternetDialogController(mContext,
mock(UiEventLogger.class), mock(ActivityStarter.class), mAccessPointController, mock(UiEventLogger.class), mock(ActivityStarter.class), mAccessPointController,
@@ -109,7 +111,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mSubscriptionManager.addOnSubscriptionsChangedListener(mExecutor, mSubscriptionManager.addOnSubscriptionsChangedListener(mExecutor,
mInternetDialogController.mOnSubscriptionsChangedListener); mInternetDialogController.mOnSubscriptionsChangedListener);
mInternetDialogController.onStart( mInternetDialogController.onStart(
mock(InternetDialogController.InternetDialogCallback.class)); mock(InternetDialogController.InternetDialogCallback.class), true);
mInternetDialogController.mActivityStarter = mActivityStarter; mInternetDialogController.mActivityStarter = mActivityStarter;
mInternetDialogController.mConnectedEntry = mConnectedEntry; mInternetDialogController.mConnectedEntry = mConnectedEntry;
mInternetDialogController.mWifiIconInjector = mWifiIconInjector; mInternetDialogController.mWifiIconInjector = mWifiIconInjector;
@@ -143,8 +145,14 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mInternetDialogController.setAirplaneModeEnabled(false); mInternetDialogController.setAirplaneModeEnabled(false);
when(mWifiManager.isWifiEnabled()).thenReturn(false); when(mWifiManager.isWifiEnabled()).thenReturn(false);
assertTrue(TextUtils.equals(mInternetDialogController.getSubtitleText(false), assertThat(mInternetDialogController.getSubtitleText(false))
getResourcesString("wifi_is_off"))); .isEqualTo(getResourcesString("wifi_is_off"));
// if the Wi-Fi disallow config, then don't return Wi-Fi related string.
mInternetDialogController.mCanConfigWifi = false;
assertThat(mInternetDialogController.getSubtitleText(false))
.isNotEqualTo(getResourcesString("wifi_is_off"));
} }
@Test @Test
@@ -155,8 +163,14 @@ public class InternetDialogControllerTest extends SysuiTestCase {
doReturn(0).when(wifiScanResults).size(); doReturn(0).when(wifiScanResults).size();
when(mWifiManager.getScanResults()).thenReturn(wifiScanResults); when(mWifiManager.getScanResults()).thenReturn(wifiScanResults);
assertTrue(TextUtils.equals(mInternetDialogController.getSubtitleText(true), assertThat(mInternetDialogController.getSubtitleText(true))
getResourcesString("wifi_empty_list_wifi_on"))); .isEqualTo(getResourcesString("wifi_empty_list_wifi_on"));
// if the Wi-Fi disallow config, then don't return Wi-Fi related string.
mInternetDialogController.mCanConfigWifi = false;
assertThat(mInternetDialogController.getSubtitleText(true))
.isNotEqualTo(getResourcesString("wifi_empty_list_wifi_on"));
} }
@Test @Test
@@ -167,8 +181,14 @@ public class InternetDialogControllerTest extends SysuiTestCase {
doReturn(1).when(wifiScanResults).size(); doReturn(1).when(wifiScanResults).size();
when(mWifiManager.getScanResults()).thenReturn(wifiScanResults); when(mWifiManager.getScanResults()).thenReturn(wifiScanResults);
assertTrue(TextUtils.equals(mInternetDialogController.getSubtitleText(false), assertThat(mInternetDialogController.getSubtitleText(false))
getResourcesString("tap_a_network_to_connect"))); .isEqualTo(getResourcesString("tap_a_network_to_connect"));
// if the Wi-Fi disallow config, then don't return Wi-Fi related string.
mInternetDialogController.mCanConfigWifi = false;
assertThat(mInternetDialogController.getSubtitleText(false))
.isNotEqualTo(getResourcesString("tap_a_network_to_connect"));
} }
@Test @Test
@@ -188,8 +208,6 @@ public class InternetDialogControllerTest extends SysuiTestCase {
List<ScanResult> wifiScanResults = new ArrayList<>(); List<ScanResult> wifiScanResults = new ArrayList<>();
doReturn(wifiScanResults).when(mWifiManager).getScanResults(); doReturn(wifiScanResults).when(mWifiManager).getScanResults();
when(mWifiManager.getScanResults()).thenReturn(wifiScanResults); when(mWifiManager.getScanResults()).thenReturn(wifiScanResults);
when(mSubscriptionManager.getActiveSubscriptionIdList())
.thenReturn(new int[] {SUB_ID});
doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getState(); doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getState();
doReturn(mServiceState).when(mTelephonyManager).getServiceState(); doReturn(mServiceState).when(mTelephonyManager).getServiceState();
@@ -206,16 +224,20 @@ public class InternetDialogControllerTest extends SysuiTestCase {
List<ScanResult> wifiScanResults = new ArrayList<>(); List<ScanResult> wifiScanResults = new ArrayList<>();
doReturn(wifiScanResults).when(mWifiManager).getScanResults(); doReturn(wifiScanResults).when(mWifiManager).getScanResults();
when(mWifiManager.getScanResults()).thenReturn(wifiScanResults); when(mWifiManager.getScanResults()).thenReturn(wifiScanResults);
when(mSubscriptionManager.getActiveSubscriptionIdList())
.thenReturn(new int[] {SUB_ID});
doReturn(ServiceState.STATE_IN_SERVICE).when(mServiceState).getState(); doReturn(ServiceState.STATE_IN_SERVICE).when(mServiceState).getState();
doReturn(mServiceState).when(mTelephonyManager).getServiceState(); doReturn(mServiceState).when(mTelephonyManager).getServiceState();
when(mTelephonyManager.isDataEnabled()).thenReturn(false); when(mTelephonyManager.isDataEnabled()).thenReturn(false);
assertTrue(TextUtils.equals(mInternetDialogController.getSubtitleText(false), assertThat(mInternetDialogController.getSubtitleText(false))
getResourcesString("non_carrier_network_unavailable"))); .isEqualTo(getResourcesString("non_carrier_network_unavailable"));
// if the Wi-Fi disallow config, then don't return Wi-Fi related string.
mInternetDialogController.mCanConfigWifi = false;
assertThat(mInternetDialogController.getSubtitleText(false))
.isNotEqualTo(getResourcesString("non_carrier_network_unavailable"));
} }
@Test @Test
@@ -247,36 +269,6 @@ public class InternetDialogControllerTest extends SysuiTestCase {
assertThat(mInternetDialogController.getInternetWifiEntry()).isEqualTo(mConnectedEntry); assertThat(mInternetDialogController.getInternetWifiEntry()).isEqualTo(mConnectedEntry);
} }
@Test
public void getInternetWifiTitle_withNoConnectedWifiEntry_returnEmpty() {
mInternetDialogController.mConnectedEntry = null;
assertThat(mInternetDialogController.getInternetWifiTitle()).isEmpty();
}
@Test
public void getInternetWifiTitle_withInternetWifi_returnTitle() {
// The preconditions have been set in setUp().
// - The connected Wi-Fi entry have both default network and internet access conditions.
when(mConnectedEntry.getTitle()).thenReturn(CONNECTED_TITLE);
assertThat(mInternetDialogController.getInternetWifiTitle()).isEqualTo(CONNECTED_TITLE);
}
@Test
public void getInternetWifiSummary_withNoConnectedWifiEntry_returnEmpty() {
mInternetDialogController.mConnectedEntry = null;
assertThat(mInternetDialogController.getInternetWifiSummary()).isEmpty();
}
@Test
public void getInternetWifiSummary_withInternetWifi_returnSummary() {
when(mConnectedEntry.getSummary(false)).thenReturn(CONNECTED_SUMMARY);
assertThat(mInternetDialogController.getInternetWifiSummary()).isEqualTo(CONNECTED_SUMMARY);
}
@Test @Test
public void getWifiDetailsSettingsIntent_withNoConnectedEntry_returnNull() { public void getWifiDetailsSettingsIntent_withNoConnectedEntry_returnNull() {
mInternetDialogController.mConnectedEntry = null; mInternetDialogController.mConnectedEntry = null;
@@ -342,6 +334,16 @@ public class InternetDialogControllerTest extends SysuiTestCase {
assertThat(mInternetDialogController.isDeviceLocked()).isTrue(); assertThat(mInternetDialogController.isDeviceLocked()).isTrue();
} }
@Test
public void scanWifiAccessPoints_cannotConfigWifi_doNothing() {
reset(mAccessPointController);
mInternetDialogController.mCanConfigWifi = false;
mInternetDialogController.scanWifiAccessPoints();
verify(mAccessPointController, never()).scanForAccessPoints();
}
private String getResourcesString(String name) { private String getResourcesString(String name) {
return mContext.getResources().getString(getResourcesId(name)); return mContext.getResources().getString(getResourcesId(name));
} }

View File

@@ -20,7 +20,6 @@ import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper; import android.testing.TestableLooper;
import android.view.View; import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
@@ -69,6 +68,9 @@ public class InternetDialogTest extends SysuiTestCase {
private InternetDialogController mInternetDialogController; private InternetDialogController mInternetDialogController;
private InternetDialog mInternetDialog; private InternetDialog mInternetDialog;
private View mDialogView;
private View mSubTitle;
private LinearLayout mMobileDataToggle;
private LinearLayout mWifiToggle; private LinearLayout mWifiToggle;
private LinearLayout mConnectedWifi; private LinearLayout mConnectedWifi;
private RecyclerView mWifiList; private RecyclerView mWifiList;
@@ -94,15 +96,18 @@ public class InternetDialogTest extends SysuiTestCase {
when(mInternetDialogController.getWifiEntryList()).thenReturn(Arrays.asList(mWifiEntry)); when(mInternetDialogController.getWifiEntryList()).thenReturn(Arrays.asList(mWifiEntry));
mInternetDialog = new InternetDialog(mContext, mock(InternetDialogFactory.class), mInternetDialog = new InternetDialog(mContext, mock(InternetDialogFactory.class),
mInternetDialogController, true, true, mock(UiEventLogger.class), mHandler); mInternetDialogController, true, true, true, mock(UiEventLogger.class), mHandler);
mInternetDialog.mAdapter = mInternetAdapter; mInternetDialog.mAdapter = mInternetAdapter;
mInternetDialog.mConnectedWifiEntry = mInternetWifiEntry; mInternetDialog.mConnectedWifiEntry = mInternetWifiEntry;
mInternetDialog.show(); mInternetDialog.show();
mWifiToggle = mInternetDialog.mDialogView.requireViewById(R.id.turn_on_wifi_layout); mDialogView = mInternetDialog.mDialogView;
mConnectedWifi = mInternetDialog.mDialogView.requireViewById(R.id.wifi_connected_layout); mSubTitle = mDialogView.requireViewById(R.id.internet_dialog_subtitle);
mWifiList = mInternetDialog.mDialogView.requireViewById(R.id.wifi_list_layout); mMobileDataToggle = mDialogView.requireViewById(R.id.mobile_network_layout);
mSeeAll = mInternetDialog.mDialogView.requireViewById(R.id.see_all_layout); mWifiToggle = mDialogView.requireViewById(R.id.turn_on_wifi_layout);
mConnectedWifi = mDialogView.requireViewById(R.id.wifi_connected_layout);
mWifiList = mDialogView.requireViewById(R.id.wifi_list_layout);
mSeeAll = mDialogView.requireViewById(R.id.see_all_layout);
} }
@After @After
@@ -110,34 +115,42 @@ public class InternetDialogTest extends SysuiTestCase {
mInternetDialog.dismissDialog(); mInternetDialog.dismissDialog();
} }
@Test
public void hideWifiViews_WifiViewsGone() {
mInternetDialog.hideWifiViews();
assertThat(mInternetDialog.mIsProgressBarVisible).isFalse();
assertThat(mWifiToggle.getVisibility()).isEqualTo(View.GONE);
assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE);
assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE);
}
@Test @Test
public void updateDialog_withApmOn_internetDialogSubTitleGone() { public void updateDialog_withApmOn_internetDialogSubTitleGone() {
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true); when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
mInternetDialog.updateDialog();
final TextView view = mInternetDialog.mDialogView.requireViewById(
R.id.internet_dialog_subtitle);
assertThat(view.getVisibility()).isEqualTo(View.GONE); mInternetDialog.updateDialog();
assertThat(mSubTitle.getVisibility()).isEqualTo(View.GONE);
} }
@Test @Test
public void updateDialog_withApmOff_internetDialogSubTitleVisible() { public void updateDialog_withApmOff_internetDialogSubTitleVisible() {
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false); when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);
mInternetDialog.updateDialog();
final TextView view = mInternetDialog.mDialogView.requireViewById(
R.id.internet_dialog_subtitle);
assertThat(view.getVisibility()).isEqualTo(View.VISIBLE); mInternetDialog.updateDialog();
assertThat(mSubTitle.getVisibility()).isEqualTo(View.VISIBLE);
} }
@Test @Test
public void updateDialog_withApmOn_mobileDataLayoutGone() { public void updateDialog_withApmOn_mobileDataLayoutGone() {
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true); when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
mInternetDialog.updateDialog();
final LinearLayout linearLayout = mInternetDialog.mDialogView.requireViewById(
R.id.mobile_network_layout);
assertThat(linearLayout.getVisibility()).isEqualTo(View.GONE); mInternetDialog.updateDialog();
assertThat(mMobileDataToggle.getVisibility()).isEqualTo(View.GONE);
} }
@Test @Test