Merge changes from topic "presubmit-am-b070f875672c43159d503c67cdf487db" into sc-qpr1-dev am: cf72364b99

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/Wifi/+/16585817

Change-Id: I635e6ed94e12e58aabd11ec9a47e1dfc977781cb
diff --git a/service/java/com/android/server/wifi/WrongPasswordNotifier.java b/service/java/com/android/server/wifi/WrongPasswordNotifier.java
index a5c039b..ce59684 100644
--- a/service/java/com/android/server/wifi/WrongPasswordNotifier.java
+++ b/service/java/com/android/server/wifi/WrongPasswordNotifier.java
@@ -18,12 +18,17 @@
 
 import android.app.Notification;
 import android.app.PendingIntent;
+import android.content.Context;
 import android.content.Intent;
 import android.graphics.drawable.Icon;
+import android.os.UserHandle;
+import android.os.UserManager;
 import android.provider.Settings;
+import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
+import com.android.modules.utils.build.SdkLevel;
 import com.android.server.wifi.util.NativeUtil;
 
 /**
@@ -83,6 +88,18 @@
         Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS)
                 .setPackage(settingsPackage)
                 .putExtra("wifi_start_connect_ssid", NativeUtil.removeEnclosingQuotes(ssid));
+        CharSequence title = mContext.getString(
+                com.android.wifi.resources.R.string.wifi_available_title_failed_to_connect);
+
+        Context userContext = mContext;
+        if (SdkLevel.isAtLeastS() && UserManager.isHeadlessSystemUserMode()) {
+            // Need to pass the context of the current user to the activity that's launched when
+            // the notification is tapped
+            userContext = mContext.createContextAsUser(UserHandle.CURRENT, /* flags= */ 0);
+        }
+
+        Log.i(TAG, "Showing '" + title + "' notification for user " + userContext.getUser()
+                + " and package " + settingsPackage);
         Notification.Builder builder = mFrameworkFacade.makeNotificationBuilder(mContext,
                 WifiService.NOTIFICATION_NETWORK_ALERTS)
                 .setAutoCancel(true)
@@ -90,11 +107,10 @@
                 // TODO(zqiu): consider creating a new icon.
                 .setSmallIcon(Icon.createWithResource(mContext.getWifiOverlayApkPkgName(),
                         com.android.wifi.resources.R.drawable.stat_notify_wifi_in_range))
-                .setContentTitle(mContext.getString(
-                        com.android.wifi.resources.R.string.wifi_available_title_failed_to_connect))
+                .setContentTitle(title)
                 .setContentText(ssid)
                 .setContentIntent(mFrameworkFacade.getActivity(
-                        mContext, 0, intent,
+                        userContext, 0, intent,
                         PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE))
                 .setColor(mContext.getResources().getColor(
                         android.R.color.system_notification_accent_color));