Loading src/com/android/settings/wifi/WifiDialogActivity.java +34 −13 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import static android.Manifest.permission.ACCESS_FINE_LOCATION; import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG; import static android.os.UserManager.DISALLOW_CONFIG_WIFI; import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_CONNECTED; import android.app.KeyguardManager; import android.content.DialogInterface; import android.content.Intent; Loading @@ -44,6 +46,7 @@ import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.SetupWizardUtils; import com.android.settings.Utils; import com.android.settings.connectivity.Flags; import com.android.settings.overlay.FeatureFactory; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.core.lifecycle.ObservableActivity; Loading Loading @@ -109,11 +112,14 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog // The received intent supports a key of WifiTrackerLib or SettingsLib. private boolean mIsWifiTrackerLib; // Whether to use WifiDialog2 when user clicks on "Add network". private boolean mUseWifiDialog2ForAddNetwork; private Intent mIntent; private NetworkDetailsTracker mNetworkDetailsTracker; private HandlerThread mWorkerThread; private WifiManager mWifiManager; @VisibleForTesting WifiManager mWifiManager; private LockScreenMonitor mLockScreenMonitor; @Override Loading @@ -130,6 +136,11 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog } mIsWifiTrackerLib = !TextUtils.isEmpty(mIntent.getStringExtra(KEY_CHOSEN_WIFIENTRY_KEY)); if (Flags.wifiMultiuser()) { mUseWifiDialog2ForAddNetwork = TextUtils.isEmpty(mIntent.getStringExtra(KEY_CHOSEN_WIFIENTRY_KEY)) && TextUtils.isEmpty(mIntent.getStringExtra(KEY_ACCESS_POINT_STATE)); } if (mIsWifiTrackerLib) { mWorkerThread = new HandlerThread( Loading Loading @@ -171,11 +182,12 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog if (WizardManagerHelper.isAnySetupWizard(getIntent())) { createDialogWithSuwTheme(); } else { if (mIsWifiTrackerLib) { if (mIsWifiTrackerLib || mUseWifiDialog2ForAddNetwork) { mDialog2 = new WifiDialog2(this, this, mNetworkDetailsTracker.getWifiEntry(), WifiConfigUiBase2.MODE_CONNECT, 0 /* style */, false /* hideSubmitButton */, false /* hideMeteredAndPrivacy */, mNetworkDetailsTracker == null ? null : mNetworkDetailsTracker.getWifiEntry(), WifiConfigUiBase2.MODE_CONNECT, 0 /* style */, false /* hideSubmitButton */, false /* hideMeteredAndPrivacy */, Utils.SYSTEMUI_PACKAGE_NAME.equals(getLaunchedFromPackage())); } else { mDialog = WifiDialog.createModal( Loading @@ -183,7 +195,7 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog } } if (mIsWifiTrackerLib) { if (mIsWifiTrackerLib || mUseWifiDialog2ForAddNetwork) { if (mDialog2 != null) { mDialog2.show(); mDialog2.setOnDismissListener(this); Loading @@ -205,9 +217,9 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog final int targetStyle = ThemeHelper.isSetupWizardDayNightEnabled(this) ? R.style.SuwAlertDialogThemeCompat_DayNight : R.style.SuwAlertDialogThemeCompat_Light; if (mIsWifiTrackerLib) { if (mIsWifiTrackerLib || mUseWifiDialog2ForAddNetwork) { mDialog2 = new WifiDialog2(this, this, mNetworkDetailsTracker.getWifiEntry(), mNetworkDetailsTracker == null ? null : mNetworkDetailsTracker.getWifiEntry(), WifiConfigUiBase2.MODE_CONNECT, targetStyle); } else { mDialog = WifiDialog.createModal(this, this, mAccessPoint, Loading @@ -224,11 +236,13 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog @Override public void onDestroy() { if (mIsWifiTrackerLib) { if (mIsWifiTrackerLib || mUseWifiDialog2ForAddNetwork) { if (mDialog2 != null && mDialog2.isShowing()) { mDialog2 = null; } if (mWorkerThread != null) { mWorkerThread.quit(); } } else { if (mDialog != null && mDialog.isShowing()) { mDialog = null; Loading Loading @@ -290,12 +304,19 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog final WifiConfiguration config = dialog.getController().getConfig(); if (getIntent().getBooleanExtra(KEY_CONNECT_FOR_CALLER, true)) { if (config == null && wifiEntry != null && wifiEntry.canConnect()) { if (config == null) { if (wifiEntry != null && wifiEntry.canConnect()) { wifiEntry.connect(null /* callback */); } } else { mWifiManager.save(config, null /* listener */); // wifiEntry is null for "Add network" if (wifiEntry != null && wifiEntry.getConnectedState() != CONNECTED_STATE_CONNECTED) { mWifiManager.connect(config, null /* listener */); } } } Intent resultData = hasPermissionForResult() ? createResultData(config, null) : null; setResult(RESULT_CONNECTED, resultData); Loading tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -42,7 +42,10 @@ import android.content.pm.PackageManager; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.os.UserManager; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import com.android.settings.connectivity.Flags; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.wifi.AccessPoint; import com.android.wifitrackerlib.NetworkDetailsTracker; Loading @@ -51,6 +54,7 @@ import com.android.wifitrackerlib.WifiEntry; import com.google.android.setupcompat.util.WizardManagerHelper; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; Loading @@ -70,6 +74,8 @@ public class WifiDialogActivityTest { @Mock PackageManager mPackageManager; @Mock WifiManager mWifiManager; @Mock WifiDialog mWifiDialog; @Mock WifiConfiguration mWifiConfiguration; Loading @@ -90,6 +96,8 @@ public class WifiDialogActivityTest { WifiDialogActivity mActivity; @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); @Before public void setUp() { MockitoAnnotations.initMocks(this); Loading Loading @@ -175,6 +183,7 @@ public class WifiDialogActivityTest { public void onSubmit_whenConnectForCallerIsFalse_shouldNotConnectToNetwork() { final Intent intent = new Intent(); intent.putExtra(WifiDialogActivity.KEY_CONNECT_FOR_CALLER, false); intent.putExtra(WifiDialogActivity.KEY_ACCESS_POINT_STATE, "FAKE_KEY"); mActivity = spy(Robolectric.buildActivity(WifiDialogActivity.class, intent).setup().get()); mActivity.onSubmit(mWifiDialog); Loading @@ -195,6 +204,19 @@ public class WifiDialogActivityTest { verify(mWifiEntry, never()).connect(any()); } @Test @EnableFlags(Flags.FLAG_WIFI_MULTIUSER) public void onSubmit2_whenAddNewNetwork_shouldSave() { when(mWifiConfiguration2.getConfig()).thenReturn(mWifiConfiguration); final Intent intent = new Intent("com.android.settings.WIFI_DIALOG"); intent.putExtra(WifiDialogActivity.KEY_CONNECT_FOR_CALLER, true); mActivity = spy(Robolectric.buildActivity(WifiDialogActivity.class, intent).setup().get()); mActivity.mWifiManager = mWifiManager; mActivity.onSubmit(mWifiDialog2); verify(mWifiManager).save(any(), any()); } @Test public void onStart_whenLaunchInSetupFlow_shouldCreateDialogWithSuwTheme() { final Intent intent = new Intent(); Loading Loading
src/com/android/settings/wifi/WifiDialogActivity.java +34 −13 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import static android.Manifest.permission.ACCESS_FINE_LOCATION; import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG; import static android.os.UserManager.DISALLOW_CONFIG_WIFI; import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_CONNECTED; import android.app.KeyguardManager; import android.content.DialogInterface; import android.content.Intent; Loading @@ -44,6 +46,7 @@ import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.SetupWizardUtils; import com.android.settings.Utils; import com.android.settings.connectivity.Flags; import com.android.settings.overlay.FeatureFactory; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.core.lifecycle.ObservableActivity; Loading Loading @@ -109,11 +112,14 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog // The received intent supports a key of WifiTrackerLib or SettingsLib. private boolean mIsWifiTrackerLib; // Whether to use WifiDialog2 when user clicks on "Add network". private boolean mUseWifiDialog2ForAddNetwork; private Intent mIntent; private NetworkDetailsTracker mNetworkDetailsTracker; private HandlerThread mWorkerThread; private WifiManager mWifiManager; @VisibleForTesting WifiManager mWifiManager; private LockScreenMonitor mLockScreenMonitor; @Override Loading @@ -130,6 +136,11 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog } mIsWifiTrackerLib = !TextUtils.isEmpty(mIntent.getStringExtra(KEY_CHOSEN_WIFIENTRY_KEY)); if (Flags.wifiMultiuser()) { mUseWifiDialog2ForAddNetwork = TextUtils.isEmpty(mIntent.getStringExtra(KEY_CHOSEN_WIFIENTRY_KEY)) && TextUtils.isEmpty(mIntent.getStringExtra(KEY_ACCESS_POINT_STATE)); } if (mIsWifiTrackerLib) { mWorkerThread = new HandlerThread( Loading Loading @@ -171,11 +182,12 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog if (WizardManagerHelper.isAnySetupWizard(getIntent())) { createDialogWithSuwTheme(); } else { if (mIsWifiTrackerLib) { if (mIsWifiTrackerLib || mUseWifiDialog2ForAddNetwork) { mDialog2 = new WifiDialog2(this, this, mNetworkDetailsTracker.getWifiEntry(), WifiConfigUiBase2.MODE_CONNECT, 0 /* style */, false /* hideSubmitButton */, false /* hideMeteredAndPrivacy */, mNetworkDetailsTracker == null ? null : mNetworkDetailsTracker.getWifiEntry(), WifiConfigUiBase2.MODE_CONNECT, 0 /* style */, false /* hideSubmitButton */, false /* hideMeteredAndPrivacy */, Utils.SYSTEMUI_PACKAGE_NAME.equals(getLaunchedFromPackage())); } else { mDialog = WifiDialog.createModal( Loading @@ -183,7 +195,7 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog } } if (mIsWifiTrackerLib) { if (mIsWifiTrackerLib || mUseWifiDialog2ForAddNetwork) { if (mDialog2 != null) { mDialog2.show(); mDialog2.setOnDismissListener(this); Loading @@ -205,9 +217,9 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog final int targetStyle = ThemeHelper.isSetupWizardDayNightEnabled(this) ? R.style.SuwAlertDialogThemeCompat_DayNight : R.style.SuwAlertDialogThemeCompat_Light; if (mIsWifiTrackerLib) { if (mIsWifiTrackerLib || mUseWifiDialog2ForAddNetwork) { mDialog2 = new WifiDialog2(this, this, mNetworkDetailsTracker.getWifiEntry(), mNetworkDetailsTracker == null ? null : mNetworkDetailsTracker.getWifiEntry(), WifiConfigUiBase2.MODE_CONNECT, targetStyle); } else { mDialog = WifiDialog.createModal(this, this, mAccessPoint, Loading @@ -224,11 +236,13 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog @Override public void onDestroy() { if (mIsWifiTrackerLib) { if (mIsWifiTrackerLib || mUseWifiDialog2ForAddNetwork) { if (mDialog2 != null && mDialog2.isShowing()) { mDialog2 = null; } if (mWorkerThread != null) { mWorkerThread.quit(); } } else { if (mDialog != null && mDialog.isShowing()) { mDialog = null; Loading Loading @@ -290,12 +304,19 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog final WifiConfiguration config = dialog.getController().getConfig(); if (getIntent().getBooleanExtra(KEY_CONNECT_FOR_CALLER, true)) { if (config == null && wifiEntry != null && wifiEntry.canConnect()) { if (config == null) { if (wifiEntry != null && wifiEntry.canConnect()) { wifiEntry.connect(null /* callback */); } } else { mWifiManager.save(config, null /* listener */); // wifiEntry is null for "Add network" if (wifiEntry != null && wifiEntry.getConnectedState() != CONNECTED_STATE_CONNECTED) { mWifiManager.connect(config, null /* listener */); } } } Intent resultData = hasPermissionForResult() ? createResultData(config, null) : null; setResult(RESULT_CONNECTED, resultData); Loading
tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -42,7 +42,10 @@ import android.content.pm.PackageManager; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.os.UserManager; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import com.android.settings.connectivity.Flags; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settingslib.wifi.AccessPoint; import com.android.wifitrackerlib.NetworkDetailsTracker; Loading @@ -51,6 +54,7 @@ import com.android.wifitrackerlib.WifiEntry; import com.google.android.setupcompat.util.WizardManagerHelper; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; Loading @@ -70,6 +74,8 @@ public class WifiDialogActivityTest { @Mock PackageManager mPackageManager; @Mock WifiManager mWifiManager; @Mock WifiDialog mWifiDialog; @Mock WifiConfiguration mWifiConfiguration; Loading @@ -90,6 +96,8 @@ public class WifiDialogActivityTest { WifiDialogActivity mActivity; @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); @Before public void setUp() { MockitoAnnotations.initMocks(this); Loading Loading @@ -175,6 +183,7 @@ public class WifiDialogActivityTest { public void onSubmit_whenConnectForCallerIsFalse_shouldNotConnectToNetwork() { final Intent intent = new Intent(); intent.putExtra(WifiDialogActivity.KEY_CONNECT_FOR_CALLER, false); intent.putExtra(WifiDialogActivity.KEY_ACCESS_POINT_STATE, "FAKE_KEY"); mActivity = spy(Robolectric.buildActivity(WifiDialogActivity.class, intent).setup().get()); mActivity.onSubmit(mWifiDialog); Loading @@ -195,6 +204,19 @@ public class WifiDialogActivityTest { verify(mWifiEntry, never()).connect(any()); } @Test @EnableFlags(Flags.FLAG_WIFI_MULTIUSER) public void onSubmit2_whenAddNewNetwork_shouldSave() { when(mWifiConfiguration2.getConfig()).thenReturn(mWifiConfiguration); final Intent intent = new Intent("com.android.settings.WIFI_DIALOG"); intent.putExtra(WifiDialogActivity.KEY_CONNECT_FOR_CALLER, true); mActivity = spy(Robolectric.buildActivity(WifiDialogActivity.class, intent).setup().get()); mActivity.mWifiManager = mWifiManager; mActivity.onSubmit(mWifiDialog2); verify(mWifiManager).save(any(), any()); } @Test public void onStart_whenLaunchInSetupFlow_shouldCreateDialogWithSuwTheme() { final Intent intent = new Intent(); Loading