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));