diff --git a/src/com/android/settings/datetime/AutoTimePreferenceController.java b/src/com/android/settings/datetime/AutoTimePreferenceController.java index 434eba9651e..2942acb1956 100644 --- a/src/com/android/settings/datetime/AutoTimePreferenceController.java +++ b/src/com/android/settings/datetime/AutoTimePreferenceController.java @@ -39,6 +39,11 @@ public class AutoTimePreferenceController extends TogglePreferenceController { public AutoTimePreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mTimeManager = context.getSystemService(TimeManager.class); + // This is a no-op implementation of UpdateTimeAndDateCallback to avoid a NPE when + // setTimeAndDateCallback() isn't called, e.g. for slices and other cases where the + // controller is instantiated outside of the context of the real Date & Time settings + // screen. + mCallback = (c) -> {}; } public void setDateAndTimeCallback(UpdateTimeAndDateCallback callback) { diff --git a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java index 011cc9717cf..3a1f995aaf2 100644 --- a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java +++ b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java @@ -40,6 +40,11 @@ public class AutoTimeZonePreferenceController extends TogglePreferenceController public AutoTimeZonePreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mTimeManager = context.getSystemService(TimeManager.class); + // This is a no-op implementation of UpdateTimeAndDateCallback to avoid a NPE when + // setTimeAndDateCallback() isn't called, e.g. for slices and other cases where the + // controller is instantiated outside of the context of the real Date & Time settings + // screen. + mCallback = (c) -> {}; } /** diff --git a/src/com/android/settings/datetime/TimeFormatPreferenceController.java b/src/com/android/settings/datetime/TimeFormatPreferenceController.java index 22f7509fb7f..19805ad03dd 100644 --- a/src/com/android/settings/datetime/TimeFormatPreferenceController.java +++ b/src/com/android/settings/datetime/TimeFormatPreferenceController.java @@ -43,6 +43,11 @@ public class TimeFormatPreferenceController extends TogglePreferenceController { public TimeFormatPreferenceController(Context context, String key) { super(context, key); mDummyDate = Calendar.getInstance(); + // This is a no-op implementation of UpdateTimeAndDateCallback to avoid a NPE when + // setTimeAndDateCallback() isn't called, e.g. for slices and other cases where the + // controller is instantiated outside of the context of the real Date & Time settings + // screen. + mUpdateTimeAndDateCallback = (c) -> {}; } /**