Merge "Make WifiDppEnrolleeActivity launches explicit" into sc-v2-dev am: b94ae9ffb3

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16509324

Change-Id: I85beb9352125aaa74df850853b81a1f9f82b24d0
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index bae3cda..aedb299 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -1137,7 +1137,8 @@
     @Override
     public void onScan(WifiDialog2 dialog, String ssid) {
         // Launch QR code scanner to join a network.
-        startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid),
+        startActivityForResult(
+                WifiDppUtils.getEnrolleeQrCodeScannerIntent(dialog.getContext(), ssid),
                 REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
     }
 
diff --git a/src/com/android/settings/wifi/AddNetworkFragment.java b/src/com/android/settings/wifi/AddNetworkFragment.java
index 4adc672..01d5ef1 100644
--- a/src/com/android/settings/wifi/AddNetworkFragment.java
+++ b/src/com/android/settings/wifi/AddNetworkFragment.java
@@ -109,7 +109,8 @@
             final String ssid = ssidEditText.getText().toString();
 
             // Launch QR code scanner to join a network.
-            startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid),
+            startActivityForResult(
+                    WifiDppUtils.getEnrolleeQrCodeScannerIntent(view.getContext(), ssid),
                     REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
         }
     }
diff --git a/src/com/android/settings/wifi/AddWifiNetworkPreference.java b/src/com/android/settings/wifi/AddWifiNetworkPreference.java
index 8216f86..ff4d38e 100644
--- a/src/com/android/settings/wifi/AddWifiNetworkPreference.java
+++ b/src/com/android/settings/wifi/AddWifiNetworkPreference.java
@@ -59,7 +59,7 @@
                 getContext().getString(R.string.wifi_dpp_scan_qr_code));
         scanButton.setOnClickListener(view -> {
             getContext().startActivity(
-                WifiDppUtils.getEnrolleeQrCodeScannerIntent(/* ssid */ null));
+                    WifiDppUtils.getEnrolleeQrCodeScannerIntent(getContext(), /* ssid */ null));
         });
     }
 
diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java
index ffcfbb8..58e9a7b 100644
--- a/src/com/android/settings/wifi/WifiDialogActivity.java
+++ b/src/com/android/settings/wifi/WifiDialogActivity.java
@@ -309,7 +309,7 @@
 
     @Override
     public void onScan(WifiDialog2 dialog, String ssid) {
-        Intent intent = WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid);
+        Intent intent = WifiDppUtils.getEnrolleeQrCodeScannerIntent(dialog.getContext(), ssid);
         WizardManagerHelper.copyWizardManagerExtras(mIntent, intent);
 
         // Launch QR code scanner to join a network.
@@ -318,7 +318,7 @@
 
     @Override
     public void onScan(WifiDialog dialog, String ssid) {
-        Intent intent = WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid);
+        Intent intent = WifiDppUtils.getEnrolleeQrCodeScannerIntent(dialog.getContext(), ssid);
         WizardManagerHelper.copyWizardManagerExtras(mIntent, intent);
 
         // Launch QR code scanner to join a network.
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index f43fdc4..4c7be58 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -1035,7 +1035,8 @@
     @Override
     public void onScan(WifiDialog2 dialog, String ssid) {
         // Launch QR code scanner to join a network.
-        startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid),
+        startActivityForResult(
+                WifiDppUtils.getEnrolleeQrCodeScannerIntent(dialog.getContext(), ssid),
                 REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
     }
 
diff --git a/src/com/android/settings/wifi/dpp/WifiDppUtils.java b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
index abf5bec..39a5431 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppUtils.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
@@ -114,9 +114,9 @@
      * @param ssid The data corresponding to {@code WifiConfiguration} SSID
      * @return Intent for launching QR code scanner
      */
-    public static Intent getEnrolleeQrCodeScannerIntent(String ssid) {
-        final Intent intent = new Intent(
-                WifiDppEnrolleeActivity.ACTION_ENROLLEE_QR_CODE_SCANNER);
+    public static Intent getEnrolleeQrCodeScannerIntent(Context context, String ssid) {
+        final Intent intent = new Intent(context, WifiDppEnrolleeActivity.class);
+        intent.setAction(WifiDppEnrolleeActivity.ACTION_ENROLLEE_QR_CODE_SCANNER);
         if (!TextUtils.isEmpty(ssid)) {
             intent.putExtra(EXTRA_WIFI_SSID, ssid);
         }
diff --git a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppUtilsTest.java b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppUtilsTest.java
index d8bcb59..e605308 100644
--- a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppUtilsTest.java
@@ -27,6 +27,8 @@
 import android.net.wifi.WifiConfiguration.KeyMgmt;
 import android.net.wifi.WifiManager;
 
+import androidx.test.core.app.ApplicationProvider;
+
 import com.android.wifitrackerlib.WifiEntry;
 
 import org.junit.Before;
@@ -80,4 +82,12 @@
         assertThat(intent.getBooleanExtra(WifiDppUtils.EXTRA_WIFI_HIDDEN_SSID, false))
                 .isEqualTo(true);
     }
+
+    @Test
+    public void getEnrolleeQrCodeScannerIntent_isExplicitIntent() {
+        Intent intent = WifiDppUtils.getEnrolleeQrCodeScannerIntent(
+                ApplicationProvider.getApplicationContext(), null);
+        assertThat(intent.getComponent()).isNotNull();
+    }
+
 }