Merge "Reduce janky frame duration" into main
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java
index b2873c5..5ea9e6a 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java
@@ -346,7 +346,6 @@
mCallback = null;
}
- @VisibleForTesting
boolean isAirplaneModeEnabled() {
return mGlobalSettings.getInt(Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegate.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegate.java
index f018336..71f8639 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegate.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegate.java
@@ -30,7 +30,6 @@
import android.telephony.SignalStrength;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyDisplayInfo;
-import android.telephony.TelephonyManager;
import android.text.Html;
import android.text.Layout;
import android.text.TextUtils;
@@ -50,9 +49,14 @@
import android.widget.TextView;
import androidx.annotation.MainThread;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.annotation.WorkerThread;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.lifecycle.LifecycleRegistry;
+import androidx.lifecycle.MutableLiveData;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -110,7 +114,6 @@
protected boolean mCanConfigWifi;
private final InternetDialogManager mInternetDialogManager;
- private TelephonyManager mTelephonyManager;
@Nullable
private AlertDialog mAlertDialog;
private final UiEventLogger mUiEventLogger;
@@ -169,6 +172,13 @@
@Nullable
private Job mClickJob;
+ // These are to reduce the UI janky frame duration. b/323286540
+ private LifecycleRegistry mLifecycleRegistry;
+ @VisibleForTesting
+ LifecycleOwner mLifecycleOwner;
+ @VisibleForTesting
+ MutableLiveData<InternetContent> mDataInternetContent = new MutableLiveData<>();
+
@AssistedFactory
public interface Factory {
InternetDialogDelegate create(
@@ -205,7 +215,6 @@
mInternetDialogManager = internetDialogManager;
mInternetDialogController = internetDialogController;
mDefaultDataSubId = mInternetDialogController.getDefaultDataSubscriptionId();
- mTelephonyManager = mInternetDialogController.getTelephonyManager();
mCanConfigMobileData = canConfigMobileData;
mCanConfigWifi = canConfigWifi;
mCanChangeWifiState = WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(context);
@@ -227,6 +236,14 @@
mDialog.dismiss();
}
mDialog = dialog;
+ mLifecycleOwner = new LifecycleOwner() {
+ @NonNull
+ @Override
+ public Lifecycle getLifecycle() {
+ return mLifecycleRegistry;
+ }
+ };
+ mLifecycleRegistry = new LifecycleRegistry(mLifecycleOwner);
return dialog;
}
@@ -249,7 +266,9 @@
mWifiNetworkHeight = context.getResources()
.getDimensionPixelSize(R.dimen.internet_dialog_wifi_network_height);
-
+ mLifecycleRegistry.setCurrentState(Lifecycle.State.CREATED);
+ mDataInternetContent.observe(
+ mLifecycleOwner, (internetContent) -> updateDialogUI(internetContent));
mInternetDialogTitle = mDialogView.requireViewById(R.id.internet_dialog_title);
mInternetDialogSubTitle = mDialogView.requireViewById(R.id.internet_dialog_subtitle);
mDivider = mDialogView.requireViewById(R.id.divider);
@@ -294,6 +313,8 @@
if (DEBUG) {
Log.d(TAG, "onStart");
}
+
+ mLifecycleRegistry.setCurrentState(Lifecycle.State.RESUMED);
mInternetDialogController.onStart(this, mCanConfigWifi);
if (!mCanConfigWifi) {
hideWifiViews();
@@ -315,6 +336,7 @@
if (DEBUG) {
Log.d(TAG, "onStop");
}
+ mLifecycleRegistry.setCurrentState(Lifecycle.State.DESTROYED);
mMobileNetworkLayout.setOnClickListener(null);
mConnectedWifListLayout.setOnClickListener(null);
if (mSecondaryMobileNetworkLayout != null) {
@@ -348,31 +370,50 @@
* otherwise {@code false}.
*/
void updateDialog(boolean shouldUpdateMobileNetwork) {
- if (DEBUG) {
- Log.d(TAG, "updateDialog");
- }
- mInternetDialogTitle.setText(getDialogTitleText());
- mInternetDialogSubTitle.setText(getSubtitleText());
- mAirplaneModeButton.setVisibility(
- mInternetDialogController.isAirplaneModeEnabled() ? View.VISIBLE : View.GONE);
+ mBackgroundExecutor.execute(() -> {
+ mDataInternetContent.postValue(getInternetContent(shouldUpdateMobileNetwork));
+ });
+ }
- updateEthernet();
- if (shouldUpdateMobileNetwork) {
- setMobileDataLayout(mInternetDialogController.activeNetworkIsCellular(),
- mInternetDialogController.isCarrierNetworkActive());
+ private void updateDialogUI(InternetContent internetContent) {
+ if (DEBUG) {
+ Log.d(TAG, "updateDialog ");
}
+ mInternetDialogTitle.setText(internetContent.mInternetDialogTitleString);
+ mInternetDialogSubTitle.setText(internetContent.mInternetDialogSubTitle);
+ mAirplaneModeButton.setVisibility(
+ internetContent.mIsAirplaneModeEnabled ? View.VISIBLE : View.GONE);
+
+ updateEthernet(internetContent);
+ setMobileDataLayout(internetContent);
+
if (!mCanConfigWifi) {
return;
}
+ updateWifiToggle(internetContent);
+ updateConnectedWifi(internetContent);
+ updateWifiListAndSeeAll(internetContent);
+ updateWifiScanNotify(internetContent);
+ }
- final boolean isDeviceLocked = mInternetDialogController.isDeviceLocked();
- final boolean isWifiEnabled = mInternetDialogController.isWifiEnabled();
- final boolean isWifiScanEnabled = mInternetDialogController.isWifiScanEnabled();
- updateWifiToggle(isWifiEnabled, isDeviceLocked);
- updateConnectedWifi(isWifiEnabled, isDeviceLocked);
- updateWifiListAndSeeAll(isWifiEnabled, isDeviceLocked);
- updateWifiScanNotify(isWifiEnabled, isWifiScanEnabled, isDeviceLocked);
+ private InternetContent getInternetContent(boolean shouldUpdateMobileNetwork) {
+ InternetContent internetContent = new InternetContent();
+ internetContent.mShouldUpdateMobileNetwork = shouldUpdateMobileNetwork;
+ internetContent.mInternetDialogTitleString = getDialogTitleText();
+ internetContent.mInternetDialogSubTitle = getSubtitleText();
+ internetContent.mActiveNetworkIsCellular =
+ mInternetDialogController.activeNetworkIsCellular();
+ internetContent.mIsCarrierNetworkActive =
+ mInternetDialogController.isCarrierNetworkActive();
+ internetContent.mIsAirplaneModeEnabled = mInternetDialogController.isAirplaneModeEnabled();
+ internetContent.mHasEthernet = mInternetDialogController.hasEthernet();
+ internetContent.mIsWifiEnabled = mInternetDialogController.isWifiEnabled();
+ internetContent.mHasActiveSubIdOnDds = mInternetDialogController.hasActiveSubIdOnDds();
+ internetContent.mIsMobileDataEnabled = mInternetDialogController.isMobileDataEnabled();
+ internetContent.mIsDeviceLocked = mInternetDialogController.isDeviceLocked();
+ internetContent.mIsWifiScanEnabled = mInternetDialogController.isWifiScanEnabled();
+ return internetContent;
}
private void setOnClickListener(SystemUIDialog dialog) {
@@ -436,39 +477,39 @@
}
@MainThread
- private void updateEthernet() {
+ private void updateEthernet(InternetContent internetContent) {
mEthernetLayout.setVisibility(
- mInternetDialogController.hasEthernet() ? View.VISIBLE : View.GONE);
+ internetContent.mHasEthernet ? View.VISIBLE : View.GONE);
}
- private void setMobileDataLayout(boolean activeNetworkIsCellular,
- boolean isCarrierNetworkActive) {
-
- if (mDialog != null) {
- setMobileDataLayout(mDialog, activeNetworkIsCellular, isCarrierNetworkActive);
+ private void setMobileDataLayout(InternetContent internetContent) {
+ if (!internetContent.mShouldUpdateMobileNetwork && mDialog == null) {
+ return;
}
+ setMobileDataLayout(mDialog, internetContent);
}
- private void setMobileDataLayout(SystemUIDialog dialog, boolean activeNetworkIsCellular,
- boolean isCarrierNetworkActive) {
- boolean isNetworkConnected = activeNetworkIsCellular || isCarrierNetworkActive;
+ private void setMobileDataLayout(SystemUIDialog dialog, InternetContent internetContent) {
+ boolean isNetworkConnected =
+ internetContent.mActiveNetworkIsCellular
+ || internetContent.mIsCarrierNetworkActive;
// 1. Mobile network should be gone if airplane mode ON or the list of active
// subscriptionId is null.
// 2. Carrier network should be gone if airplane mode ON and Wi-Fi is OFF.
if (DEBUG) {
- Log.d(TAG, "setMobileDataLayout, isCarrierNetworkActive = " + isCarrierNetworkActive);
+ Log.d(TAG, "setMobileDataLayout, isCarrierNetworkActive = "
+ + internetContent.mIsCarrierNetworkActive);
}
- boolean isWifiEnabled = mInternetDialogController.isWifiEnabled();
- if (!mInternetDialogController.hasActiveSubIdOnDds()
- && (!isWifiEnabled || !isCarrierNetworkActive)) {
+ if (!internetContent.mHasActiveSubIdOnDds && (!internetContent.mIsWifiEnabled
+ || !internetContent.mIsCarrierNetworkActive)) {
mMobileNetworkLayout.setVisibility(View.GONE);
if (mSecondaryMobileNetworkLayout != null) {
mSecondaryMobileNetworkLayout.setVisibility(View.GONE);
}
} else {
mMobileNetworkLayout.setVisibility(View.VISIBLE);
- mMobileDataToggle.setChecked(mInternetDialogController.isMobileDataEnabled());
+ mMobileDataToggle.setChecked(internetContent.mIsMobileDataEnabled);
mMobileTitleText.setText(getMobileNetworkTitle(mDefaultDataSubId));
String summary = getMobileNetworkSummary(mDefaultDataSubId);
if (!TextUtils.isEmpty(summary)) {
@@ -508,7 +549,7 @@
if (stub != null) {
stub.inflate();
}
- mSecondaryMobileNetworkLayout = dialog.findViewById(
+ mSecondaryMobileNetworkLayout = mDialogView.findViewById(
R.id.secondary_mobile_network_layout);
mSecondaryMobileNetworkLayout.setOnClickListener(
this::onClickConnectedSecondarySub);
@@ -567,7 +608,7 @@
}
// Set airplane mode to the summary for carrier network
- if (mInternetDialogController.isAirplaneModeEnabled()) {
+ if (internetContent.mIsAirplaneModeEnabled) {
mAirplaneModeSummaryText.setVisibility(View.VISIBLE);
mAirplaneModeSummaryText.setText(
dialog.getContext().getText(R.string.airplane_mode));
@@ -579,17 +620,18 @@
}
@MainThread
- private void updateWifiToggle(boolean isWifiEnabled, boolean isDeviceLocked) {
- if (mWiFiToggle.isChecked() != isWifiEnabled) {
- mWiFiToggle.setChecked(isWifiEnabled);
+ private void updateWifiToggle(InternetContent internetContent) {
+ if (mWiFiToggle.isChecked() != internetContent.mIsWifiEnabled) {
+ mWiFiToggle.setChecked(internetContent.mIsWifiEnabled);
}
- if (isDeviceLocked) {
+ if (internetContent.mIsDeviceLocked) {
mWifiToggleTitleText.setTextAppearance((mConnectedWifiEntry != null)
? R.style.TextAppearance_InternetDialog_Active
: R.style.TextAppearance_InternetDialog);
}
mTurnWifiOnLayout.setBackground(
- (isDeviceLocked && mConnectedWifiEntry != null) ? mBackgroundOn : null);
+ (internetContent.mIsDeviceLocked && mConnectedWifiEntry != null) ? mBackgroundOn
+ : null);
if (!mCanChangeWifiState && mWiFiToggle.isEnabled()) {
mWiFiToggle.setEnabled(false);
@@ -601,8 +643,9 @@
}
@MainThread
- private void updateConnectedWifi(boolean isWifiEnabled, boolean isDeviceLocked) {
- if (mDialog == null || !isWifiEnabled || mConnectedWifiEntry == null || isDeviceLocked) {
+ private void updateConnectedWifi(InternetContent internetContent) {
+ if (mDialog == null || !internetContent.mIsWifiEnabled || mConnectedWifiEntry == null
+ || internetContent.mIsDeviceLocked) {
mConnectedWifListLayout.setVisibility(View.GONE);
mShareWifiButton.setVisibility(View.GONE);
return;
@@ -627,8 +670,8 @@
}
@MainThread
- private void updateWifiListAndSeeAll(boolean isWifiEnabled, boolean isDeviceLocked) {
- if (!isWifiEnabled || isDeviceLocked) {
+ private void updateWifiListAndSeeAll(InternetContent internetContent) {
+ if (!internetContent.mIsWifiEnabled || internetContent.mIsDeviceLocked) {
mWifiRecyclerView.setVisibility(View.GONE);
mSeeAllLayout.setVisibility(View.GONE);
return;
@@ -670,9 +713,10 @@
}
@MainThread
- private void updateWifiScanNotify(boolean isWifiEnabled, boolean isWifiScanEnabled,
- boolean isDeviceLocked) {
- if (mDialog == null || isWifiEnabled || !isWifiScanEnabled || isDeviceLocked) {
+ private void updateWifiScanNotify(InternetContent internetContent) {
+ if (mDialog == null || internetContent.mIsWifiEnabled
+ || !internetContent.mIsWifiScanEnabled
+ || internetContent.mIsDeviceLocked) {
mWifiScanNotifyLayout.setVisibility(View.GONE);
return;
}
@@ -805,62 +849,62 @@
@Override
public void onRefreshCarrierInfo() {
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
public void onSimStateChanged() {
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
@WorkerThread
public void onCapabilitiesChanged(Network network, NetworkCapabilities networkCapabilities) {
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
@WorkerThread
public void onLost(Network network) {
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
public void onSubscriptionsChanged(int defaultDataSubId) {
mDefaultDataSubId = defaultDataSubId;
- mTelephonyManager = mTelephonyManager.createForSubscriptionId(mDefaultDataSubId);
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
public void onUserMobileDataStateChanged(boolean enabled) {
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
public void onServiceStateChanged(ServiceState serviceState) {
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
@WorkerThread
public void onDataConnectionStateChanged(int state, int networkType) {
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) {
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
public void onCarrierNetworkChange(boolean active) {
- mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
+
+ updateDialog(true /* shouldUpdateMobileNetwork */);
}
@Override
@@ -912,4 +956,20 @@
return mId;
}
}
+
+ @VisibleForTesting
+ static class InternetContent {
+ CharSequence mInternetDialogTitleString = "";
+ CharSequence mInternetDialogSubTitle = "";
+ boolean mIsAirplaneModeEnabled = false;
+ boolean mHasEthernet = false;
+ boolean mShouldUpdateMobileNetwork = false;
+ boolean mActiveNetworkIsCellular = false;
+ boolean mIsCarrierNetworkActive = false;
+ boolean mIsWifiEnabled = false;
+ boolean mHasActiveSubIdOnDds = false;
+ boolean mIsMobileDataEnabled = false;
+ boolean mIsDeviceLocked = false;
+ boolean mIsWifiScanEnabled = false;
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateTest.java
index ff8c448..643debf 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateTest.java
@@ -6,20 +6,20 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.app.AlertDialog;
-import android.content.DialogInterface;
import android.content.Intent;
import android.os.Handler;
+import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.testing.TestableLooper;
+import android.testing.UiThreadTest;
import android.view.View;
+import android.view.Window;
import android.widget.LinearLayout;
import android.widget.Switch;
import android.widget.TextView;
@@ -44,20 +44,18 @@
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.MockitoSession;
import java.util.List;
-@Ignore("b/257089187")
@SmallTest
@RunWith(AndroidJUnit4.class)
@TestableLooper.RunWithLooper(setAsMainLooper = true)
+@UiThreadTest
public class InternetDialogDelegateTest extends SysuiTestCase {
private static final String MOBILE_NETWORK_TITLE = "Mobile Title";
@@ -87,6 +85,8 @@
private SystemUIDialog.Factory mSystemUIDialogFactory;
@Mock
private SystemUIDialog mSystemUIDialog;
+ @Mock
+ private Window mWindow;
private FakeExecutor mBgExecutor = new FakeExecutor(new FakeSystemClock());
private InternetDialogDelegate mInternetDialogDelegate;
@@ -121,13 +121,16 @@
when(mInternetDialogController.getMobileNetworkSummary(anyInt()))
.thenReturn(MOBILE_NETWORK_SUMMARY);
when(mInternetDialogController.isWifiEnabled()).thenReturn(true);
-
+ when(mInternetDialogController.getActiveAutoSwitchNonDdsSubId()).thenReturn(
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mMockitoSession = ExtendedMockito.mockitoSession()
.spyStatic(WifiEnterpriseRestrictionUtils.class)
.startMocking();
when(WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(mContext)).thenReturn(true);
when(mSystemUIDialogFactory.create(any(SystemUIDialog.Delegate.class)))
.thenReturn(mSystemUIDialog);
+ when(mSystemUIDialog.getContext()).thenReturn(mContext);
+ when(mSystemUIDialog.getWindow()).thenReturn(mWindow);
createInternetDialog();
}
@@ -146,6 +149,8 @@
mBgExecutor,
mKeyguard,
mSystemUIDialogFactory);
+ mInternetDialogDelegate.createDialog();
+ mInternetDialogDelegate.onCreate(mSystemUIDialog, null);
mInternetDialogDelegate.mAdapter = mInternetAdapter;
mInternetDialogDelegate.mConnectedWifiEntry = mInternetWifiEntry;
mInternetDialogDelegate.mWifiEntriesCount = mWifiEntries.size();
@@ -163,10 +168,12 @@
mSeeAll = mDialogView.requireViewById(R.id.see_all_layout);
mWifiScanNotify = mDialogView.requireViewById(R.id.wifi_scan_notify_layout);
mAirplaneModeSummaryText = mDialogView.requireViewById(R.id.airplane_mode_summary);
+ mInternetDialogDelegate.onStart(mSystemUIDialog);
}
@After
public void tearDown() {
+ mInternetDialogDelegate.onStop(mSystemUIDialog);
mInternetDialogDelegate.dismissDialog();
mMockitoSession.finishMocking();
}
@@ -191,59 +198,77 @@
@Test
public void updateDialog_withApmOn_internetDialogSubTitleGone() {
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mSubTitle.getVisibility()).isEqualTo(View.VISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mSubTitle.getVisibility()).isEqualTo(View.VISIBLE);
+ });
}
@Test
public void updateDialog_withApmOff_internetDialogSubTitleVisible() {
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mSubTitle.getVisibility()).isEqualTo(View.VISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mSubTitle.getVisibility()).isEqualTo(View.VISIBLE);
+ });
}
@Test
public void updateDialog_apmOffAndHasEthernet_showEthernet() {
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);
when(mInternetDialogController.hasEthernet()).thenReturn(true);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mEthernet.getVisibility()).isEqualTo(View.VISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mEthernet.getVisibility()).isEqualTo(View.VISIBLE);
+ });
}
@Test
public void updateDialog_apmOffAndNoEthernet_hideEthernet() {
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);
when(mInternetDialogController.hasEthernet()).thenReturn(false);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mEthernet.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mEthernet.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
public void updateDialog_apmOnAndHasEthernet_showEthernet() {
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
when(mInternetDialogController.hasEthernet()).thenReturn(true);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mEthernet.getVisibility()).isEqualTo(View.VISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mEthernet.getVisibility()).isEqualTo(View.VISIBLE);
+ });
}
@Test
public void updateDialog_apmOnAndNoEthernet_hideEthernet() {
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
when(mInternetDialogController.hasEthernet()).thenReturn(false);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mEthernet.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mEthernet.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
@@ -252,41 +277,56 @@
when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(false);
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);
when(mInternetDialogController.hasActiveSubIdOnDds()).thenReturn(false);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
- public void updateDialog_apmOnWithCarrierNetworkAndWifiStatus_mobileDataLayout() {
- // Carrier network should be gone if airplane mode ON and Wi-Fi is off.
- when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(true);
- when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
- when(mInternetDialogController.isWifiEnabled()).thenReturn(false);
-
- mInternetDialogDelegate.updateDialog(true);
-
- assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.GONE);
-
+ public void updateDialog_apmOnWithCarrierNetworkAndWifiStatus_mobileDataLayoutVisible() {
// Carrier network should be visible if airplane mode ON and Wi-Fi is ON.
when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(true);
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
when(mInternetDialogController.isWifiEnabled()).thenReturn(true);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.VISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.VISIBLE);
+ });
+ }
+
+ @Test
+ public void updateDialog_apmOnWithCarrierNetworkAndWifiStatus_mobileDataLayoutGone() {
+ // Carrier network should be gone if airplane mode ON and Wi-Fi is off.
+ when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(true);
+ when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
+ when(mInternetDialogController.isWifiEnabled()).thenReturn(false);
+ mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
+
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
public void updateDialog_apmOnAndNoCarrierNetwork_mobileDataLayoutGone() {
when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(false);
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
@@ -295,11 +335,14 @@
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
mInternetDialogDelegate.mConnectedWifiEntry = null;
doReturn(false).when(mInternetDialogController).activeNetworkIsCellular();
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mAirplaneModeSummaryText.getVisibility()).isEqualTo(View.VISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(mAirplaneModeSummaryText.getVisibility()).isEqualTo(View.VISIBLE);
+ });
}
@Test
@@ -308,30 +351,39 @@
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);
mInternetDialogDelegate.mConnectedWifiEntry = null;
doReturn(false).when(mInternetDialogController).activeNetworkIsCellular();
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mAirplaneModeSummaryText.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mAirplaneModeSummaryText.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
public void updateDialog_apmOffAndHasCarrierNetwork_notShowApmSummary() {
when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(true);
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mAirplaneModeSummaryText.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mAirplaneModeSummaryText.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
public void updateDialog_apmOnAndNoCarrierNetwork_notShowApmSummary() {
when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(false);
when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mAirplaneModeSummaryText.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mAirplaneModeSummaryText.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
@@ -340,10 +392,13 @@
when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(true);
when(mInternetDialogController.isMobileDataEnabled()).thenReturn(true);
mMobileToggleSwitch.setChecked(false);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mMobileToggleSwitch.isChecked()).isTrue();
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mMobileToggleSwitch.isChecked()).isTrue();
+ });
}
@Test
@@ -352,26 +407,32 @@
when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(true);
when(mInternetDialogController.isMobileDataEnabled()).thenReturn(false);
mMobileToggleSwitch.setChecked(false);
-
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mMobileToggleSwitch.isChecked()).isFalse();
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mMobileToggleSwitch.isChecked()).isFalse();
+ });
}
@Test
public void updateDialog_wifiOnAndHasInternetWifi_showConnectedWifi() {
- mInternetDialogDelegate.dismissDialog();
+ when(mInternetDialogController.getActiveAutoSwitchNonDdsSubId()).thenReturn(1);
doReturn(true).when(mInternetDialogController).hasActiveSubIdOnDds();
- createInternetDialog();
// The preconditions WiFi ON and Internet WiFi are already in setUp()
doReturn(false).when(mInternetDialogController).activeNetworkIsCellular();
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE);
- LinearLayout secondaryLayout = mDialogView.requireViewById(
- R.id.secondary_mobile_network_layout);
- assertThat(secondaryLayout.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE);
+ LinearLayout secondaryLayout = mDialogView.requireViewById(
+ R.id.secondary_mobile_network_layout);
+ assertThat(secondaryLayout.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
@@ -379,10 +440,13 @@
// The precondition WiFi ON is already in setUp()
mInternetDialogDelegate.mConnectedWifiEntry = null;
doReturn(false).when(mInternetDialogController).activeNetworkIsCellular();
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
@@ -390,14 +454,17 @@
// The precondition WiFi ON is already in setUp()
mInternetDialogDelegate.mConnectedWifiEntry = null;
mInternetDialogDelegate.mWifiEntriesCount = 0;
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
- // Show a blank block to fix the dialog height even if there is no WiFi list
- assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
- verify(mInternetAdapter).setMaxEntriesCount(3);
- assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
+ // Show a blank block to fix the dialog height even if there is no WiFi list
+ assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
+ verify(mInternetAdapter).setMaxEntriesCount(3);
+ assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
+ });
}
@Test
@@ -405,28 +472,34 @@
// The precondition WiFi ON is already in setUp()
mInternetDialogDelegate.mConnectedWifiEntry = null;
mInternetDialogDelegate.mWifiEntriesCount = 1;
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
- // Show a blank block to fix the dialog height even if there is no WiFi list
- assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
- verify(mInternetAdapter).setMaxEntriesCount(3);
- assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
+ // Show a blank block to fix the dialog height even if there is no WiFi list
+ assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
+ verify(mInternetAdapter).setMaxEntriesCount(3);
+ assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
+ });
}
@Test
public void updateDialog_wifiOnAndHasConnectedWifi_showAllWifiAndSeeAllArea() {
// The preconditions WiFi ON and WiFi entries are already in setUp()
mInternetDialogDelegate.mWifiEntriesCount = 0;
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE);
- // Show a blank block to fix the dialog height even if there is no WiFi list
- assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
- verify(mInternetAdapter).setMaxEntriesCount(2);
- assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE);
+ // Show a blank block to fix the dialog height even if there is no WiFi list
+ assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
+ verify(mInternetAdapter).setMaxEntriesCount(2);
+ assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
+ });
}
@Test
@@ -435,13 +508,16 @@
mInternetDialogDelegate.mConnectedWifiEntry = null;
mInternetDialogDelegate.mWifiEntriesCount = MAX_WIFI_ENTRY_COUNT;
mInternetDialogDelegate.mHasMoreWifiEntries = true;
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
- assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
- verify(mInternetAdapter).setMaxEntriesCount(3);
- assertThat(mSeeAll.getVisibility()).isEqualTo(View.VISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
+ assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
+ verify(mInternetAdapter).setMaxEntriesCount(3);
+ assertThat(mSeeAll.getVisibility()).isEqualTo(View.VISIBLE);
+ });
}
@Test
@@ -449,13 +525,16 @@
// The preconditions WiFi ON and WiFi entries are already in setUp()
mInternetDialogDelegate.mWifiEntriesCount = MAX_WIFI_ENTRY_COUNT - 1;
mInternetDialogDelegate.mHasMoreWifiEntries = true;
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
- verify(mInternetAdapter).setMaxEntriesCount(2);
- assertThat(mSeeAll.getVisibility()).isEqualTo(View.VISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
+ verify(mInternetAdapter).setMaxEntriesCount(2);
+ assertThat(mSeeAll.getVisibility()).isEqualTo(View.VISIBLE);
+ });
}
@Test
@@ -463,32 +542,38 @@
// The preconditions WiFi entries are already in setUp()
when(mInternetDialogController.isDeviceLocked()).thenReturn(true);
mInternetDialogDelegate.mConnectedWifiEntry = null;
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- // Show WiFi Toggle without background
- assertThat(mWifiToggle.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mWifiToggle.getBackground()).isNull();
- // Hide Wi-Fi networks and See all
- assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
- assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE);
- assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ // Show WiFi Toggle without background
+ assertThat(mWifiToggle.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(mWifiToggle.getBackground()).isNull();
+ // Hide Wi-Fi networks and See all
+ assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
+ assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE);
+ assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
public void updateDialog_deviceLockedAndHasConnectedWifi_showWifiToggleWithBackground() {
// The preconditions WiFi ON and WiFi entries are already in setUp()
when(mInternetDialogController.isDeviceLocked()).thenReturn(true);
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- // Show WiFi Toggle with highlight background
- assertThat(mWifiToggle.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mWifiToggle.getBackground()).isNotNull();
- // Hide Wi-Fi networks and See all
- assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
- assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE);
- assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ // Show WiFi Toggle with highlight background
+ assertThat(mWifiToggle.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(mWifiToggle.getBackground()).isNotNull();
+ // Hide Wi-Fi networks and See all
+ assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
+ assertThat(mWifiList.getVisibility()).isEqualTo(View.GONE);
+ assertThat(mSeeAll.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
@@ -496,13 +581,16 @@
mInternetDialogDelegate.dismissDialog();
when(WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(mContext)).thenReturn(false);
createInternetDialog();
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- // 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);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ // 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
@@ -510,50 +598,38 @@
mInternetDialogDelegate.dismissDialog();
when(WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed(mContext)).thenReturn(true);
createInternetDialog();
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- // Enable Wi-Fi switch and hide restriction message in summary.
- assertThat(mWifiToggleSwitch.isEnabled()).isTrue();
- assertThat(mWifiToggleSummary.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ // Enable Wi-Fi switch and hide restriction message in summary.
+ assertThat(mWifiToggleSwitch.isEnabled()).isTrue();
+ assertThat(mWifiToggleSummary.getVisibility()).isEqualTo(View.GONE);
+ });
}
@Test
public void updateDialog_showSecondaryDataSub() {
- mInternetDialogDelegate.dismissDialog();
+ when(mInternetDialogController.getActiveAutoSwitchNonDdsSubId()).thenReturn(1);
doReturn(1).when(mInternetDialogController).getActiveAutoSwitchNonDdsSubId();
doReturn(true).when(mInternetDialogController).hasActiveSubIdOnDds();
doReturn(false).when(mInternetDialogController).isAirplaneModeEnabled();
- createInternetDialog();
-
clearInvocations(mInternetDialogController);
mInternetDialogDelegate.updateDialog(true);
+ mBgExecutor.runAllReady();
- LinearLayout primaryLayout = mDialogView.requireViewById(
- R.id.mobile_network_layout);
- LinearLayout secondaryLayout = mDialogView.requireViewById(
- R.id.secondary_mobile_network_layout);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ LinearLayout primaryLayout = mDialogView.requireViewById(
+ R.id.mobile_network_layout);
+ LinearLayout secondaryLayout = mDialogView.requireViewById(
+ R.id.secondary_mobile_network_layout);
- verify(mInternetDialogController).getMobileNetworkSummary(1);
- assertThat(primaryLayout.getBackground()).isNotEqualTo(secondaryLayout.getBackground());
-
- // Tap the primary sub info
- primaryLayout.performClick();
- ArgumentCaptor<AlertDialog> dialogArgumentCaptor =
- ArgumentCaptor.forClass(AlertDialog.class);
- verify(mDialogTransitionAnimator).showFromDialog(dialogArgumentCaptor.capture(),
- eq(mSystemUIDialog), eq(null), eq(false));
- AlertDialog dialog = dialogArgumentCaptor.getValue();
- dialog.show();
- dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
- TestableLooper.get(this).processAllMessages();
- verify(mInternetDialogController).setAutoDataSwitchMobileDataPolicy(1, false);
-
- // Tap the secondary sub info
- secondaryLayout.performClick();
- verify(mInternetDialogController).launchMobileNetworkSettings(any(View.class));
-
- dialog.dismiss();
+ verify(mInternetDialogController).getMobileNetworkSummary(1);
+ assertThat(primaryLayout.getBackground()).isNotEqualTo(
+ secondaryLayout.getBackground());
+ });
}
@Test
@@ -561,6 +637,12 @@
// The preconditions WiFi ON and WiFi entries are already in setUp()
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
+
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE);
+ });
assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE);
}
@@ -569,8 +651,13 @@
public void updateDialog_wifiOffAndWifiScanOff_hideWifiScanNotify() {
when(mInternetDialogController.isWifiEnabled()).thenReturn(false);
when(mInternetDialogController.isWifiScanEnabled()).thenReturn(false);
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
+
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE);
+ });
assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE);
}
@@ -580,8 +667,13 @@
when(mInternetDialogController.isWifiEnabled()).thenReturn(false);
when(mInternetDialogController.isWifiScanEnabled()).thenReturn(true);
when(mInternetDialogController.isDeviceLocked()).thenReturn(true);
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
+
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE);
+ });
assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.GONE);
}
@@ -591,33 +683,43 @@
when(mInternetDialogController.isWifiEnabled()).thenReturn(false);
when(mInternetDialogController.isWifiScanEnabled()).thenReturn(true);
when(mInternetDialogController.isDeviceLocked()).thenReturn(false);
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.VISIBLE);
- TextView wifiScanNotifyText = mDialogView.requireViewById(R.id.wifi_scan_notify_text);
- assertThat(wifiScanNotifyText.getText().length()).isNotEqualTo(0);
- assertThat(wifiScanNotifyText.getMovementMethod()).isNotNull();
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mWifiScanNotify.getVisibility()).isEqualTo(View.VISIBLE);
+ TextView wifiScanNotifyText = mDialogView.requireViewById(
+ R.id.wifi_scan_notify_text);
+ assertThat(wifiScanNotifyText.getText().length()).isNotEqualTo(0);
+ assertThat(wifiScanNotifyText.getMovementMethod()).isNotNull();
+ });
}
@Test
public void updateDialog_wifiIsDisabled_uncheckWifiSwitch() {
when(mInternetDialogController.isWifiEnabled()).thenReturn(false);
mWifiToggleSwitch.setChecked(true);
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mWifiToggleSwitch.isChecked()).isFalse();
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mWifiToggleSwitch.isChecked()).isFalse();
+ });
}
@Test
- public void updateDialog_wifiIsEnabled_checkWifiSwitch() {
+ public void updateDialog_wifiIsEnabled_checkWifiSwitch() throws Exception {
when(mInternetDialogController.isWifiEnabled()).thenReturn(true);
mWifiToggleSwitch.setChecked(false);
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mWifiToggleSwitch.isChecked()).isTrue();
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mWifiToggleSwitch.isChecked()).isTrue();
+ });
}
@Test
@@ -699,21 +801,28 @@
public void updateDialog_shareWifiIntentNull_hideButton() {
when(mInternetDialogController.getConfiguratorQrCodeGeneratorIntentOrNull(any()))
.thenReturn(null);
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mInternetDialogDelegate.mShareWifiButton.getVisibility()).isEqualTo(View.GONE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mInternetDialogDelegate.mShareWifiButton.getVisibility()).isEqualTo(
+ View.GONE);
+ });
}
@Test
public void updateDialog_shareWifiShareable_showButton() {
when(mInternetDialogController.getConfiguratorQrCodeGeneratorIntentOrNull(any()))
.thenReturn(new Intent());
-
mInternetDialogDelegate.updateDialog(false);
+ mBgExecutor.runAllReady();
- assertThat(mInternetDialogDelegate.mShareWifiButton.getVisibility())
- .isEqualTo(View.VISIBLE);
+ mInternetDialogDelegate.mDataInternetContent.observe(
+ mInternetDialogDelegate.mLifecycleOwner, i -> {
+ assertThat(mInternetDialogDelegate.mShareWifiButton.getVisibility())
+ .isEqualTo(View.VISIBLE);
+ });
}
private void setNetworkVisible(boolean ethernetVisible, boolean mobileDataVisible,