diff --git a/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java b/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java
index a70844f..05ca6d9 100644
--- a/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java
+++ b/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java
@@ -19,7 +19,10 @@
 import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
+import android.preference.SwitchPreference;
 import android.text.TextUtils;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
 
 /** The setting for Assisted Dialing */
 public class AssistedDialingSettingFragment extends PreferenceFragment {
@@ -30,6 +33,10 @@
 
     // Load the preferences from an XML resource
     addPreferencesFromResource(R.xml.assisted_dialing_setting);
+    SwitchPreference switchPref =
+        (SwitchPreference)
+            findPreference(getContext().getString(R.string.assisted_dialing_setting_toggle_key));
+
     ListPreference countryChooserPref =
         (ListPreference)
             findPreference(getContext().getString(R.string.assisted_dialing_setting_cc_key));
@@ -38,6 +45,7 @@
       countryChooserPref.setSummary(countryChooserPref.getEntry());
     }
     countryChooserPref.setOnPreferenceChangeListener(this::updateListSummary);
+    switchPref.setOnPreferenceChangeListener(this::logIfUserDisabledFeature);
   }
 
   boolean updateListSummary(Preference pref, Object newValue) {
@@ -46,4 +54,13 @@
     listPref.setSummary(entries[listPref.findIndexOfValue(newValue.toString())]);
     return true;
   }
+
+  boolean logIfUserDisabledFeature(Preference pref, Object newValue) {
+    if (!((boolean) newValue)) {
+      Logger.get(getActivity().getApplicationContext())
+          .logImpression(DialerImpression.Type.ASSISTED_DIALING_FEATURE_DISABLED_BY_USER);
+    }
+
+    return true;
+  }
 }
diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto
index 3dd645e..c2456d8 100644
--- a/java/com/android/dialer/logging/dialer_impression.proto
+++ b/java/com/android/dialer/logging/dialer_impression.proto
@@ -12,6 +12,7 @@
   // Event enums to be used for Impression Logging in Dialer.
   // It's perfectly acceptable for this enum to be large
   // Values should be from 1000 to 100000.
+  // Next Tag: 1293
   enum Type {
     UNKNOWN_AOSP_EVENT_TYPE = 1000;
 
@@ -589,6 +590,8 @@
     // Indicates that the number attempting to be assisted dialed had an
     // extension.
     ASSISTED_DIALING_CONSTRAINT_NUMBER_HAS_EXTENSION = 1289;
+    // Indicates that the user disabled the feature.
+    ASSISTED_DIALING_FEATURE_DISABLED_BY_USER = 1292;
 
     // User reports a same prefix call as spam from call history
     REPORT_SAME_PREFIX_CALL_AS_SPAM_VIA_CALL_HISTORY =
