diff --git a/src/com/android/settings/network/telephony/EuiccRacConnectivityDialogActivity.java b/src/com/android/settings/network/telephony/EuiccRacConnectivityDialogActivity.java
index d439d4f..aaf98f1 100644
--- a/src/com/android/settings/network/telephony/EuiccRacConnectivityDialogActivity.java
+++ b/src/com/android/settings/network/telephony/EuiccRacConnectivityDialogActivity.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.network.telephony;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
@@ -28,20 +29,21 @@
 
 import com.android.settings.R;
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 /** This dialog activity advise the user to have connectivity if the eSIM uses a RAC. */
 public class EuiccRacConnectivityDialogActivity extends FragmentActivity
         implements WarningDialogFragment.OnConfirmListener {
 
     private static final String TAG = "EuiccRacConnectivityDialogActivity";
-    // Dialog tags
-    private static final int DIALOG_TAG_ERASE_ANYWAY_CONFIRMATION = 1;
     private static final String ARG_SUB_ID = "sub_id";
     private static final String ARG_RESET_MOBILE_NETWORK_ID = "reset_mobile_netword_id";
 
     private int mSubId;
     @Nullable
     private Intent mResetMobileNetworkIntent;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     /**
      * Returns an intent of EuiccRacConnectivityDialogActivity for Settings: erase eSIM.
@@ -80,6 +82,7 @@
         mSubId = intent.getIntExtra(ARG_SUB_ID, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
         mResetMobileNetworkIntent =
                 intent.getParcelableExtra(ARG_RESET_MOBILE_NETWORK_ID, Intent.class);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
         if (savedInstanceState == null) {
             showConnectivityWarningDialog();
@@ -88,20 +91,26 @@
 
     @Override
     public void onConfirm(int tag, boolean confirmed) {
+        if (tag == SettingsEnums.ACTION_SETTINGS_ESIM_RAC_CONNECTIVITY_WARNING
+                || tag == SettingsEnums.ACTION_RESET_MOBILE_NETWORK_RAC_CONNECTIVITY_WARNING) {
+            mMetricsFeatureProvider.action(this, tag, confirmed ? 1 : 0);
+        }
+
         if (!confirmed) {
             finish();
             return;
         }
 
+        finish();
         switch (tag) {
-            case DIALOG_TAG_ERASE_ANYWAY_CONFIRMATION:
-                finish();
+            case SettingsEnums.ACTION_SETTINGS_ESIM_RAC_CONNECTIVITY_WARNING:
+                Log.i(TAG, "Show dialogue activity that handles deleting eSIM profile");
+                startActivity(DeleteEuiccSubscriptionDialogActivity.getIntent(this, mSubId));
+                break;
+            case SettingsEnums.ACTION_RESET_MOBILE_NETWORK_RAC_CONNECTIVITY_WARNING:
                 if (mResetMobileNetworkIntent != null) {
                     Log.i(TAG, "Show fragment activity that handles mobile network settings reset");
                     new SubSettingLauncher(this).launchWithIntent(mResetMobileNetworkIntent);
-                } else {
-                    Log.i(TAG, "Show dialogue activity that handles deleting eSIM profiles");
-                    startActivity(DeleteEuiccSubscriptionDialogActivity.getIntent(this, mSubId));
                 }
                 break;
             default:
@@ -115,10 +124,19 @@
         WarningDialogFragment.show(
                 this,
                 WarningDialogFragment.OnConfirmListener.class,
-                DIALOG_TAG_ERASE_ANYWAY_CONFIRMATION,
+                getMetricsTag(),
                 getString(R.string.wifi_warning_dialog_title),
                 getString(R.string.wifi_warning_dialog_text),
                 getString(R.string.wifi_warning_continue_button),
                 getString(R.string.wifi_warning_return_button));
     }
+
+    /* Get the metrics tag depending on the intent. */
+    private int getMetricsTag() {
+        if (mResetMobileNetworkIntent != null) {
+            return SettingsEnums.ACTION_RESET_MOBILE_NETWORK_RAC_CONNECTIVITY_WARNING;
+        } else {
+            return SettingsEnums.ACTION_SETTINGS_ESIM_RAC_CONNECTIVITY_WARNING;
+        }
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/network/telephony/EuiccRacConnectivityDialogActivityTest.java b/tests/robotests/src/com/android/settings/network/telephony/EuiccRacConnectivityDialogActivityTest.java
new file mode 100644
index 0000000..29d8f79
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/EuiccRacConnectivityDialogActivityTest.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.app.settings.SettingsEnums;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class EuiccRacConnectivityDialogActivityTest {
+    private static final boolean CONFIRMED = true;
+
+    private FakeFeatureFactory mFeatureFactory;
+    private EuiccRacConnectivityDialogActivity mActivity;
+
+    @Before
+    public void setUp() {
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mActivity = spy(Robolectric.buildActivity(EuiccRacConnectivityDialogActivity.class).get());
+        mActivity.onCreate(null);
+    }
+
+    @Test
+    public void dialogAction_continue_intentResetMobileNetwork_metricsLogged() {
+        mActivity.onConfirm(
+                SettingsEnums.ACTION_RESET_MOBILE_NETWORK_RAC_CONNECTIVITY_WARNING, CONFIRMED);
+
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mActivity,
+                        SettingsEnums.ACTION_RESET_MOBILE_NETWORK_RAC_CONNECTIVITY_WARNING,
+                        getMetricsValue(CONFIRMED));
+    }
+
+    @Test
+    public void dialogAction_back_intentResetMobileNetwork_metricsLogged() {
+        mActivity.onConfirm(
+                SettingsEnums.ACTION_RESET_MOBILE_NETWORK_RAC_CONNECTIVITY_WARNING, !CONFIRMED);
+
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mActivity,
+                        SettingsEnums.ACTION_RESET_MOBILE_NETWORK_RAC_CONNECTIVITY_WARNING,
+                        getMetricsValue(!CONFIRMED));
+    }
+
+    @Test
+    public void dialogAction_continue_intentSettingsEsimDelete_metricsLogged() {
+        mActivity.onConfirm(SettingsEnums.ACTION_SETTINGS_ESIM_RAC_CONNECTIVITY_WARNING, CONFIRMED);
+
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mActivity,
+                        SettingsEnums.ACTION_SETTINGS_ESIM_RAC_CONNECTIVITY_WARNING,
+                        getMetricsValue(CONFIRMED));
+    }
+
+    @Test
+    public void dialogAction_back_intentSettingsEsimDelete_metricsLogged() {
+        mActivity.onConfirm(
+                SettingsEnums.ACTION_SETTINGS_ESIM_RAC_CONNECTIVITY_WARNING, !CONFIRMED);
+
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mActivity,
+                        SettingsEnums.ACTION_SETTINGS_ESIM_RAC_CONNECTIVITY_WARNING,
+                        getMetricsValue(!CONFIRMED));
+    }
+
+    private int getMetricsValue(boolean confirmed) {
+        return confirmed ? 1 : 0;
+    }
+}
