Merge "Refine WifiDetailsSettingsActivity" into main
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index c1e3494..ad9f35e 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -132,7 +132,6 @@
         if (Flags.resetMobileNetworkSettings()) {
             resetOptions |= ResetNetworkRequest.RESET_IMS_STACK;
             resetOptions |= ResetNetworkRequest.RESET_PHONE_PROCESS;
-            resetOptions |= ResetNetworkRequest.RESET_RILD;
         }
         ResetNetworkRequest request = new ResetNetworkRequest(resetOptions);
         if (mSubscriptions != null && mSubscriptions.size() > 0) {
diff --git a/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java b/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
index 12dc076..71fa28b 100644
--- a/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
@@ -21,11 +21,13 @@
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
+import android.os.UserHandle;
 import android.util.FeatureFlagUtils;
 
 import androidx.fragment.app.Fragment;
 import androidx.preference.PreferenceScreen;
 
+import com.android.settings.Utils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -79,10 +81,12 @@
     private void showTouchpadGestureEducation() {
         mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LEARN_TOUCHPAD_GESTURE_CLICK);
         if (newTouchpadGesturesTutorial()) {
-            Intent intent = new Intent(TUTORIAL_ACTION);
-            intent.addCategory(Intent.CATEGORY_DEFAULT);
-            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-            mContext.startActivity(intent);
+            Intent intent = new Intent(TUTORIAL_ACTION)
+                    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+                    .setPackage(Utils.SYSTEMUI_PACKAGE_NAME);
+            // touchpad tutorial must be started as system user as it needs to have access to state
+            // of user 0 sysui instance
+            mContext.startActivityAsUser(intent, UserHandle.SYSTEM);
         } else {
             TrackpadGestureDialogFragment fragment = new TrackpadGestureDialogFragment();
             fragment.setTargetFragment(mParent, 0);
diff --git a/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java b/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java
index c473456..b27292a 100644
--- a/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java
+++ b/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java
@@ -28,7 +28,9 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.notification.modes.ZenMode;
 import com.android.settingslib.notification.modes.ZenModesBackend;
 
@@ -43,13 +45,14 @@
 
     @Nullable protected final ZenModesBackend mBackend;
 
-
     @Nullable  // only until setZenMode() is called
     private ZenMode mZenMode;
 
     @NonNull
     private final String mKey;
 
+    @NonNull private final MetricsFeatureProvider mMetricsFeatureProvider;
+
     /**
      * Constructor suitable for "read-only" controllers (e.g. link to a different sub-screen.
      * Controllers that call this constructor to initialize themselves <em>cannot</em> call
@@ -59,6 +62,7 @@
         super(context);
         mKey = key;
         mBackend = null;
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     /**
@@ -71,6 +75,7 @@
         super(context);
         mKey = key;
         mBackend = backend;
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -79,6 +84,11 @@
         return mKey;
     }
 
+    @NonNull
+    public MetricsFeatureProvider getMetricsFeatureProvider() {
+        return mMetricsFeatureProvider;
+    }
+
     @Override
     public boolean isAvailable() {
         if (mZenMode != null) {
diff --git a/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceController.java b/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceController.java
index 1add488..f2302c0 100644
--- a/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceController.java
@@ -218,6 +218,8 @@
             }
             return zenMode;
         });
+        getMetricsFeatureProvider().action(mContext, SettingsEnums.ACTION_ZEN_MODE_ENABLE_TOGGLE,
+                enabled);
     }
 
     private void undoToggleSwitch(Preference preference, boolean wasSwitchedTo) {