Loading src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceController.java +4 −9 Original line number Diff line number Diff line Loading @@ -27,10 +27,10 @@ import android.widget.ToggleButton; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.Fragment; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settingslib.notification.modes.ZenMode; import com.android.settingslib.notification.modes.ZenModesBackend; import com.android.settingslib.widget.LayoutPreference; Loading @@ -51,11 +51,10 @@ class ZenModeSetSchedulePreferenceController extends AbstractZenModePreferenceCo private final SimpleDateFormat mShortDayFormat = new SimpleDateFormat("EEEEE"); private final SimpleDateFormat mLongDayFormat = new SimpleDateFormat("EEEE"); private static final String TAG = "ZenModeSetSchedulePreferenceController"; private Fragment mParent; private DashboardFragment mParent; private ZenModeConfig.ScheduleInfo mSchedule; ZenModeSetSchedulePreferenceController(Context context, Fragment parent, String key, ZenModeSetSchedulePreferenceController(Context context, DashboardFragment parent, String key, ZenModesBackend backend) { super(context, key, backend); mParent = parent; Loading Loading @@ -154,11 +153,7 @@ class ZenModeSetSchedulePreferenceController extends AbstractZenModePreferenceCo private View.OnClickListener timePickerLauncher(int hour, int minute, ZenModeTimePickerFragment.TimeSetter timeSetter) { return v -> { final ZenModeTimePickerFragment frag = new ZenModeTimePickerFragment(mContext, hour, minute, timeSetter); frag.show(mParent.getParentFragmentManager(), TAG); }; return v -> ZenModeTimePickerFragment.show(mParent, hour, minute, timeSetter); } protected static int[] getDaysOfWeekForLocale(Calendar c) { Loading src/com/android/settings/notification/modes/ZenModeTimePickerFragment.java +32 −14 Original line number Diff line number Diff line Loading @@ -16,10 +16,11 @@ package com.android.settings.notification.modes; import static com.google.common.base.Preconditions.checkNotNull; import android.app.Dialog; import android.app.TimePickerDialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; import android.text.format.DateFormat; import android.widget.TimePicker; Loading @@ -27,37 +28,54 @@ import android.widget.TimePicker; import androidx.annotation.NonNull; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.dashboard.DashboardFragment; /** * Dialog that shows when a user selects a (start or end) time to edit for a schedule-based mode. */ public class ZenModeTimePickerFragment extends InstrumentedDialogFragment implements TimePickerDialog.OnTimeSetListener { private final Context mContext; private final TimeSetter mTimeSetter; private final int mHour; private final int mMinute; public ZenModeTimePickerFragment(Context context, int hour, int minute, private static final String TAG = "ZenModeTimePickerFragment"; private TimeSetter mTimeSetter; private int mHour; private int mMinute; public static void show(DashboardFragment parent, int hour, int minute, @NonNull TimeSetter timeSetter) { super(); mContext = context; mHour = hour; mMinute = minute; mTimeSetter = timeSetter; ZenModeTimePickerFragment fragment = new ZenModeTimePickerFragment(); fragment.mHour = hour; fragment.mMinute = minute; fragment.mTimeSetter = timeSetter; fragment.show(parent.getParentFragmentManager(), TAG); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (mTimeSetter == null) { // Probably the dialog fragment was recreated after its activity was destroyed. // It's pointless to re-show the dialog if we can't do anything when its options are // selected, so we don't. dismiss(); } } @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new TimePickerDialog(mContext, this, mHour, mMinute, DateFormat.is24HourFormat(mContext)); return new TimePickerDialog(getContext(), this, mHour, mMinute, DateFormat.is24HourFormat(getContext())); } /** * Calls the provided TimeSetter's setTime() method when a time is set on the TimePicker. */ @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { mTimeSetter.setTime(hourOfDay, minute); checkNotNull(mTimeSetter).setTime(hourOfDay, minute); } @Override Loading tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -32,10 +32,10 @@ import android.service.notification.ZenModeConfig; import android.view.ViewGroup; import android.widget.ToggleButton; import androidx.fragment.app.Fragment; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settingslib.notification.modes.TestModeBuilder; import com.android.settingslib.notification.modes.ZenMode; import com.android.settingslib.notification.modes.ZenModesBackend; Loading @@ -60,7 +60,7 @@ public class ZenModeSetSchedulePreferenceControllerTest { private Context mContext; @Mock private Fragment mParent; private DashboardFragment mParent; @Mock private Calendar mCalendar; @Mock Loading Loading
src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceController.java +4 −9 Original line number Diff line number Diff line Loading @@ -27,10 +27,10 @@ import android.widget.ToggleButton; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.Fragment; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settingslib.notification.modes.ZenMode; import com.android.settingslib.notification.modes.ZenModesBackend; import com.android.settingslib.widget.LayoutPreference; Loading @@ -51,11 +51,10 @@ class ZenModeSetSchedulePreferenceController extends AbstractZenModePreferenceCo private final SimpleDateFormat mShortDayFormat = new SimpleDateFormat("EEEEE"); private final SimpleDateFormat mLongDayFormat = new SimpleDateFormat("EEEE"); private static final String TAG = "ZenModeSetSchedulePreferenceController"; private Fragment mParent; private DashboardFragment mParent; private ZenModeConfig.ScheduleInfo mSchedule; ZenModeSetSchedulePreferenceController(Context context, Fragment parent, String key, ZenModeSetSchedulePreferenceController(Context context, DashboardFragment parent, String key, ZenModesBackend backend) { super(context, key, backend); mParent = parent; Loading Loading @@ -154,11 +153,7 @@ class ZenModeSetSchedulePreferenceController extends AbstractZenModePreferenceCo private View.OnClickListener timePickerLauncher(int hour, int minute, ZenModeTimePickerFragment.TimeSetter timeSetter) { return v -> { final ZenModeTimePickerFragment frag = new ZenModeTimePickerFragment(mContext, hour, minute, timeSetter); frag.show(mParent.getParentFragmentManager(), TAG); }; return v -> ZenModeTimePickerFragment.show(mParent, hour, minute, timeSetter); } protected static int[] getDaysOfWeekForLocale(Calendar c) { Loading
src/com/android/settings/notification/modes/ZenModeTimePickerFragment.java +32 −14 Original line number Diff line number Diff line Loading @@ -16,10 +16,11 @@ package com.android.settings.notification.modes; import static com.google.common.base.Preconditions.checkNotNull; import android.app.Dialog; import android.app.TimePickerDialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; import android.text.format.DateFormat; import android.widget.TimePicker; Loading @@ -27,37 +28,54 @@ import android.widget.TimePicker; import androidx.annotation.NonNull; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.dashboard.DashboardFragment; /** * Dialog that shows when a user selects a (start or end) time to edit for a schedule-based mode. */ public class ZenModeTimePickerFragment extends InstrumentedDialogFragment implements TimePickerDialog.OnTimeSetListener { private final Context mContext; private final TimeSetter mTimeSetter; private final int mHour; private final int mMinute; public ZenModeTimePickerFragment(Context context, int hour, int minute, private static final String TAG = "ZenModeTimePickerFragment"; private TimeSetter mTimeSetter; private int mHour; private int mMinute; public static void show(DashboardFragment parent, int hour, int minute, @NonNull TimeSetter timeSetter) { super(); mContext = context; mHour = hour; mMinute = minute; mTimeSetter = timeSetter; ZenModeTimePickerFragment fragment = new ZenModeTimePickerFragment(); fragment.mHour = hour; fragment.mMinute = minute; fragment.mTimeSetter = timeSetter; fragment.show(parent.getParentFragmentManager(), TAG); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (mTimeSetter == null) { // Probably the dialog fragment was recreated after its activity was destroyed. // It's pointless to re-show the dialog if we can't do anything when its options are // selected, so we don't. dismiss(); } } @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new TimePickerDialog(mContext, this, mHour, mMinute, DateFormat.is24HourFormat(mContext)); return new TimePickerDialog(getContext(), this, mHour, mMinute, DateFormat.is24HourFormat(getContext())); } /** * Calls the provided TimeSetter's setTime() method when a time is set on the TimePicker. */ @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { mTimeSetter.setTime(hourOfDay, minute); checkNotNull(mTimeSetter).setTime(hourOfDay, minute); } @Override Loading
tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -32,10 +32,10 @@ import android.service.notification.ZenModeConfig; import android.view.ViewGroup; import android.widget.ToggleButton; import androidx.fragment.app.Fragment; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settingslib.notification.modes.TestModeBuilder; import com.android.settingslib.notification.modes.ZenMode; import com.android.settingslib.notification.modes.ZenModesBackend; Loading @@ -60,7 +60,7 @@ public class ZenModeSetSchedulePreferenceControllerTest { private Context mContext; @Mock private Fragment mParent; private DashboardFragment mParent; @Mock private Calendar mCalendar; @Mock Loading