diff --git a/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java b/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java
index cae5671..b3c1822 100644
--- a/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java
+++ b/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java
@@ -68,7 +68,7 @@
 
     @Override
     public boolean isChecked() {
-        return mConfig.pulseOnNotificationEnabled(MY_USER);
+        return getAmbientConfig().pulseOnNotificationEnabled(MY_USER);
     }
 
     @Override
@@ -79,14 +79,20 @@
 
     @Override
     public int getAvailabilityStatus() {
-        if (mConfig == null) {
-            mConfig = new AmbientDisplayConfiguration(mContext);
-        }
-        return mConfig.pulseOnNotificationAvailable() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return getAmbientConfig().pulseOnNotificationAvailable()
+                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
     public boolean isSliceable() {
         return TextUtils.equals(getPreferenceKey(), "ambient_display_notification");
     }
+
+    private AmbientDisplayConfiguration getAmbientConfig() {
+        if (mConfig == null) {
+            mConfig = new AmbientDisplayConfiguration(mContext);
+        }
+
+        return mConfig;
+    }
 }
diff --git a/src/com/android/settings/gestures/PickupGesturePreferenceController.java b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
index 430361c..53a4447 100644
--- a/src/com/android/settings/gestures/PickupGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
@@ -62,17 +62,13 @@
 
     @Override
     public int getAvailabilityStatus() {
-        if (mAmbientConfig == null) {
-            mAmbientConfig = new AmbientDisplayConfiguration(mContext);
-        }
-
         // No hardware support for Pickup Gesture
-        if (!mAmbientConfig.dozePulsePickupSensorAvailable()) {
+        if (!getAmbientConfig().dozePulsePickupSensorAvailable()) {
             return UNSUPPORTED_ON_DEVICE;
         }
 
         // Can't change Pickup Gesture when AOD is enabled.
-        if (!mAmbientConfig.ambientDisplayAvailable()) {
+        if (!getAmbientConfig().ambientDisplayAvailable()) {
             return DISABLED_DEPENDENT_SETTING;
         }
 
@@ -91,7 +87,7 @@
 
     @Override
     public boolean isChecked() {
-        return mAmbientConfig.pulseOnPickupEnabled(mUserId);
+        return getAmbientConfig().pulseOnPickupEnabled(mUserId);
     }
 
     @Override
@@ -112,6 +108,14 @@
 
     @VisibleForTesting
     boolean pulseOnPickupCanBeModified() {
-        return mAmbientConfig.pulseOnPickupCanBeModified(mUserId);
+        return getAmbientConfig().pulseOnPickupCanBeModified(mUserId);
+    }
+
+    private AmbientDisplayConfiguration getAmbientConfig() {
+        if (mAmbientConfig == null) {
+            mAmbientConfig = new AmbientDisplayConfiguration(mContext);
+        }
+
+        return mAmbientConfig;
     }
 }
