package com.wdullaer.materialdatetimepicker.time; /** * A collection of methods which need to be shared with all components of the TimePicker * * Created by wdullaer on 6/10/15. */ public interface TimePickerController { /** * @return boolean - true if the dark theme should be used */ boolean isThemeDark(); /** * @return boolean - true if 24 hour mode is used / false if AM/PM is used */ boolean is24HourMode(); /** * @return int - the accent color currently in use */ int getAccentColor(); /** * @return Version - The current version to render */ TimePickerDialog.Version getVersion(); /** * Request the device to vibrate */ void tryVibrate(); /** * @param time Timepoint - the selected point in time * @param index int - The current view to consider when calculating the range * @return boolean - true if this is not a selectable value */ boolean isOutOfRange(Timepoint time, int index); /** * @return boolean - true if AM times are outside the range of valid selections */ boolean isAmDisabled(); /** * @return boolean - true if PM times are outside the range of valid selections */ boolean isPmDisabled(); /** * Will round the given Timepoint to the nearest valid Timepoint given the following restrictions: * - TYPE.HOUR, it will just round to the next valid point, possible adjusting minutes and seconds * - TYPE.MINUTE, it will round to the next valid point, without adjusting the hour, but possibly adjusting the seconds * - TYPE.SECOND, it will round to the next valid point, only adjusting the seconds * @param time Timepoint - the timepoint to validate * @param type Timepoint.TYPE - whether we should round the hours, minutes or seconds * @return timepoint - the nearest valid timepoint */ Timepoint roundToNearest(Timepoint time, Timepoint.TYPE type); }