Loading packages/SystemUI/res/layout/internet_connectivity_dialog.xml +15 −6 Original line number Diff line number Diff line Loading @@ -198,20 +198,29 @@ android:clickable="false" android:focusable="false"> <FrameLayout <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:gravity="start|center_vertical" android:orientation="vertical" android:clickable="false" android:layout_width="wrap_content" android:layout_height="match_parent"> android:clickable="false"> <TextView android:id="@+id/wifi_toggle_title" android:text="@string/turn_on_wifi" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_height="wrap_content" android:gravity="start|center_vertical" android:textAppearance="@style/TextAppearance.InternetDialog"/> </FrameLayout> <TextView android:id="@+id/wifi_toggle_summary" android:text="@string/wifitrackerlib_admin_restricted_network" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="start|center_vertical" android:textAppearance="@style/TextAppearance.InternetDialog.Secondary" android:visibility="gone"/> </LinearLayout> <FrameLayout android:layout_width="@dimen/settingslib_switch_track_width" Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +11 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.internal.logging.UiEvent; import com.android.internal.logging.UiEventLogger; import com.android.settingslib.Utils; import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils; import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.accessibility.floatingmenu.AnnotationLinkSpan; Loading Loading @@ -136,6 +137,7 @@ public class InternetDialog extends SystemUIDialog implements private Drawable mBackgroundOff = null; private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private boolean mCanConfigMobileData; private boolean mCanChangeWifiState; // Wi-Fi entries private int mWifiNetworkHeight; Loading Loading @@ -180,6 +182,7 @@ public class InternetDialog extends SystemUIDialog implements mWifiManager = mInternetDialogController.getWifiManager(); mCanConfigMobileData = canConfigMobileData; mCanConfigWifi = canConfigWifi; mCanChangeWifiState = WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(context); mKeyguard = keyguardStateController; mUiEventLogger = uiEventLogger; Loading Loading @@ -449,6 +452,14 @@ public class InternetDialog extends SystemUIDialog implements } mTurnWifiOnLayout.setBackground( (isDeviceLocked && mConnectedWifiEntry != null) ? mBackgroundOn : null); if (!mCanChangeWifiState && mWiFiToggle.isEnabled()) { mWiFiToggle.setEnabled(false); mWifiToggleTitleText.setEnabled(false); final TextView summaryText = mDialogView.requireViewById(R.id.wifi_toggle_summary); summaryText.setEnabled(false); summaryText.setVisibility(View.VISIBLE); } } @MainThread Loading packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java +47 −0 Original line number Diff line number Diff line Loading @@ -21,12 +21,15 @@ import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.View; import android.widget.LinearLayout; import android.widget.Switch; import android.widget.TextView; import androidx.recyclerview.widget.RecyclerView; import androidx.test.filters.SmallTest; import com.android.dx.mockito.inline.extended.ExtendedMockito; import com.android.internal.logging.UiEventLogger; import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.policy.KeyguardStateController; Loading @@ -42,6 +45,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.MockitoSession; import java.util.List; Loading Loading @@ -79,12 +83,16 @@ public class InternetDialogTest extends SysuiTestCase { private LinearLayout mEthernet; private LinearLayout mMobileDataToggle; private LinearLayout mWifiToggle; private Switch mWifiToggleSwitch; private TextView mWifiToggleSummary; private LinearLayout mConnectedWifi; private RecyclerView mWifiList; private LinearLayout mSeeAll; private LinearLayout mWifiScanNotify; private TextView mAirplaneModeSummaryText; private MockitoSession mMockitoSession; @Before public void setUp() { MockitoAnnotations.initMocks(this); Loading @@ -101,6 +109,15 @@ public class InternetDialogTest extends SysuiTestCase { .thenReturn(MOBILE_NETWORK_SUMMARY); when(mInternetDialogController.getWifiManager()).thenReturn(mWifiManager); mMockitoSession = ExtendedMockito.mockitoSession() .spyStatic(WifiEnterpriseRestrictionUtils.class) .startMocking(); when(WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(mContext)).thenReturn(true); createInternetDialog(); } private void createInternetDialog() { mInternetDialog = new InternetDialog(mContext, mock(InternetDialogFactory.class), mInternetDialogController, true, true, true, mock(UiEventLogger.class), mHandler, mBgExecutor, mKeyguard); Loading @@ -114,6 +131,8 @@ public class InternetDialogTest extends SysuiTestCase { mEthernet = mDialogView.requireViewById(R.id.ethernet_layout); mMobileDataToggle = mDialogView.requireViewById(R.id.mobile_network_layout); mWifiToggle = mDialogView.requireViewById(R.id.turn_on_wifi_layout); mWifiToggleSwitch = mDialogView.requireViewById(R.id.wifi_toggle); mWifiToggleSummary = mDialogView.requireViewById(R.id.wifi_toggle_summary); mConnectedWifi = mDialogView.requireViewById(R.id.wifi_connected_layout); mWifiList = mDialogView.requireViewById(R.id.wifi_list_layout); mSeeAll = mDialogView.requireViewById(R.id.see_all_layout); Loading @@ -124,6 +143,7 @@ public class InternetDialogTest extends SysuiTestCase { @After public void tearDown() { mInternetDialog.dismissDialog(); mMockitoSession.finishMocking(); } @Test Loading Loading @@ -410,6 +430,33 @@ public class InternetDialogTest extends SysuiTestCase { assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE); } @Test public void updateDialog_disallowChangeWifiState_disableWifiSwitch() { mInternetDialog.dismissDialog(); when(WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(mContext)).thenReturn(false); createInternetDialog(); mInternetDialog.updateDialog(false); // Disable Wi-Fi switch and show restriction message in summary. assertThat(mWifiToggleSwitch.isEnabled()).isFalse(); assertThat(mWifiToggleSummary.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mWifiToggleSummary.getText().length()).isNotEqualTo(0); } @Test public void updateDialog_allowChangeWifiState_enableWifiSwitch() { mInternetDialog.dismissDialog(); when(WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(mContext)).thenReturn(true); createInternetDialog(); mInternetDialog.updateDialog(false); // Enable Wi-Fi switch and hide restriction message in summary. assertThat(mWifiToggleSwitch.isEnabled()).isTrue(); assertThat(mWifiToggleSummary.getVisibility()).isEqualTo(View.GONE); } @Test public void updateDialog_wifiOn_hideWifiScanNotify() { // The preconditions WiFi ON and WiFi entries are already in setUp() Loading Loading
packages/SystemUI/res/layout/internet_connectivity_dialog.xml +15 −6 Original line number Diff line number Diff line Loading @@ -198,20 +198,29 @@ android:clickable="false" android:focusable="false"> <FrameLayout <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:gravity="start|center_vertical" android:orientation="vertical" android:clickable="false" android:layout_width="wrap_content" android:layout_height="match_parent"> android:clickable="false"> <TextView android:id="@+id/wifi_toggle_title" android:text="@string/turn_on_wifi" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_height="wrap_content" android:gravity="start|center_vertical" android:textAppearance="@style/TextAppearance.InternetDialog"/> </FrameLayout> <TextView android:id="@+id/wifi_toggle_summary" android:text="@string/wifitrackerlib_admin_restricted_network" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="start|center_vertical" android:textAppearance="@style/TextAppearance.InternetDialog.Secondary" android:visibility="gone"/> </LinearLayout> <FrameLayout android:layout_width="@dimen/settingslib_switch_track_width" Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +11 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.internal.logging.UiEvent; import com.android.internal.logging.UiEventLogger; import com.android.settingslib.Utils; import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils; import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.accessibility.floatingmenu.AnnotationLinkSpan; Loading Loading @@ -136,6 +137,7 @@ public class InternetDialog extends SystemUIDialog implements private Drawable mBackgroundOff = null; private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private boolean mCanConfigMobileData; private boolean mCanChangeWifiState; // Wi-Fi entries private int mWifiNetworkHeight; Loading Loading @@ -180,6 +182,7 @@ public class InternetDialog extends SystemUIDialog implements mWifiManager = mInternetDialogController.getWifiManager(); mCanConfigMobileData = canConfigMobileData; mCanConfigWifi = canConfigWifi; mCanChangeWifiState = WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(context); mKeyguard = keyguardStateController; mUiEventLogger = uiEventLogger; Loading Loading @@ -449,6 +452,14 @@ public class InternetDialog extends SystemUIDialog implements } mTurnWifiOnLayout.setBackground( (isDeviceLocked && mConnectedWifiEntry != null) ? mBackgroundOn : null); if (!mCanChangeWifiState && mWiFiToggle.isEnabled()) { mWiFiToggle.setEnabled(false); mWifiToggleTitleText.setEnabled(false); final TextView summaryText = mDialogView.requireViewById(R.id.wifi_toggle_summary); summaryText.setEnabled(false); summaryText.setVisibility(View.VISIBLE); } } @MainThread Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java +47 −0 Original line number Diff line number Diff line Loading @@ -21,12 +21,15 @@ import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.View; import android.widget.LinearLayout; import android.widget.Switch; import android.widget.TextView; import androidx.recyclerview.widget.RecyclerView; import androidx.test.filters.SmallTest; import com.android.dx.mockito.inline.extended.ExtendedMockito; import com.android.internal.logging.UiEventLogger; import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.policy.KeyguardStateController; Loading @@ -42,6 +45,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.MockitoSession; import java.util.List; Loading Loading @@ -79,12 +83,16 @@ public class InternetDialogTest extends SysuiTestCase { private LinearLayout mEthernet; private LinearLayout mMobileDataToggle; private LinearLayout mWifiToggle; private Switch mWifiToggleSwitch; private TextView mWifiToggleSummary; private LinearLayout mConnectedWifi; private RecyclerView mWifiList; private LinearLayout mSeeAll; private LinearLayout mWifiScanNotify; private TextView mAirplaneModeSummaryText; private MockitoSession mMockitoSession; @Before public void setUp() { MockitoAnnotations.initMocks(this); Loading @@ -101,6 +109,15 @@ public class InternetDialogTest extends SysuiTestCase { .thenReturn(MOBILE_NETWORK_SUMMARY); when(mInternetDialogController.getWifiManager()).thenReturn(mWifiManager); mMockitoSession = ExtendedMockito.mockitoSession() .spyStatic(WifiEnterpriseRestrictionUtils.class) .startMocking(); when(WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(mContext)).thenReturn(true); createInternetDialog(); } private void createInternetDialog() { mInternetDialog = new InternetDialog(mContext, mock(InternetDialogFactory.class), mInternetDialogController, true, true, true, mock(UiEventLogger.class), mHandler, mBgExecutor, mKeyguard); Loading @@ -114,6 +131,8 @@ public class InternetDialogTest extends SysuiTestCase { mEthernet = mDialogView.requireViewById(R.id.ethernet_layout); mMobileDataToggle = mDialogView.requireViewById(R.id.mobile_network_layout); mWifiToggle = mDialogView.requireViewById(R.id.turn_on_wifi_layout); mWifiToggleSwitch = mDialogView.requireViewById(R.id.wifi_toggle); mWifiToggleSummary = mDialogView.requireViewById(R.id.wifi_toggle_summary); mConnectedWifi = mDialogView.requireViewById(R.id.wifi_connected_layout); mWifiList = mDialogView.requireViewById(R.id.wifi_list_layout); mSeeAll = mDialogView.requireViewById(R.id.see_all_layout); Loading @@ -124,6 +143,7 @@ public class InternetDialogTest extends SysuiTestCase { @After public void tearDown() { mInternetDialog.dismissDialog(); mMockitoSession.finishMocking(); } @Test Loading Loading @@ -410,6 +430,33 @@ public class InternetDialogTest extends SysuiTestCase { assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE); } @Test public void updateDialog_disallowChangeWifiState_disableWifiSwitch() { mInternetDialog.dismissDialog(); when(WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(mContext)).thenReturn(false); createInternetDialog(); mInternetDialog.updateDialog(false); // Disable Wi-Fi switch and show restriction message in summary. assertThat(mWifiToggleSwitch.isEnabled()).isFalse(); assertThat(mWifiToggleSummary.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mWifiToggleSummary.getText().length()).isNotEqualTo(0); } @Test public void updateDialog_allowChangeWifiState_enableWifiSwitch() { mInternetDialog.dismissDialog(); when(WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(mContext)).thenReturn(true); createInternetDialog(); mInternetDialog.updateDialog(false); // Enable Wi-Fi switch and hide restriction message in summary. assertThat(mWifiToggleSwitch.isEnabled()).isTrue(); assertThat(mWifiToggleSummary.getVisibility()).isEqualTo(View.GONE); } @Test public void updateDialog_wifiOn_hideWifiScanNotify() { // The preconditions WiFi ON and WiFi entries are already in setUp() Loading