TimeDifference
class TimeDifference : Notification.Metric.MetricValue
| kotlin.Any | ||
| ↳ | android.app.Notification.Metric.MetricValue | |
| ↳ | android.app.Notification.Metric.TimeDifference | |
This represents a timer, a stopwatch, or a countdown to an event.
When representing a running timer (or stopwatch, etc), this value specifies a reference instant for when that timer will hit zero (or the stopwatch was at zero, respectively), called the "zero time". In this case the time displayed is defined as the difference between the "zero time" and the current time, meaning it will show a live-updated timer.
The zero time can be specified as an Instant (in which case it corresponds to a "real-world" point in time, from InstantSource.system), or as milliseconds since boot (from SystemClock.elapsedRealtime()). The latter might be suitable when the timer is tied to an AlarmManager.ELAPSED_REALTIME alarm in AlarmManager.
When representing a paused timer (or stopwatch, etc), this value specifies the duration as a fixed value.
This value can also specify its formatting, whether as a "chronometer" (e.g. 43:21) or an adaptive time (e.g. 1h 43m).
Summary
| Constants | |
|---|---|
| static Int |
Formatting option: adaptive (e.g. 1h 5m; 15m; 1m 30s; 5s). |
| static Int |
Formatting option: chronometer-style, (e.g. two hours = "2:00:00"). |
| Public methods | |
|---|---|
| Boolean |
Indicates whether some other object is "equal to" this one. |
| static Notification.Metric.TimeDifference |
forPausedStopwatch(elapsedTime: Duration, format: Int)Creates a "paused stopwatch" metric, showing the |
| static Notification.Metric.TimeDifference |
forPausedTimer(remainingTime: Duration, format: Int)Creates a "paused timer" metric, showing the |
| static Notification.Metric.TimeDifference |
forStopwatch(startTime: Instant, format: Int)Creates a "running stopwatch" metric, which will show the time elapsed since |
| static Notification.Metric.TimeDifference |
forStopwatch(startTime: Long, format: Int)Creates a "running stopwatch" metric, which will show the time elapsed since |
| static Notification.Metric.TimeDifference |
Creates a "running timer" metric, which will show a countdown to |
| static Notification.Metric.TimeDifference |
Creates a "running timer" metric, which will show a countdown to |
| Int |
Formatting option for the timer/stopwatch. |
| Duration? |
The fixed time difference, for a paused timer or stopwatch. |
| Long? |
The elapsed realtime at which the time difference is zero. |
| Instant? |
The |
| Int |
hashCode()Returns a hash code value for the object. |
| Boolean |
Whether this |
| Boolean |
isTimer()Whether this |
| String |
toString()Returns a string representation of the object. |
Constants
FORMAT_ADAPTIVE
static val FORMAT_ADAPTIVE: Int
Formatting option: adaptive (e.g. 1h 5m; 15m; 1m 30s; 5s).
Value: 1FORMAT_CHRONOMETER
static val FORMAT_CHRONOMETER: Int
Formatting option: chronometer-style, (e.g. two hours = "2:00:00").
Value: 2Public methods
equals
fun equals(other: Any?): Boolean
Indicates whether some other object is "equal to" this one.
The equals method implements an equivalence relation on non-null object references:
- It is reflexive: for any non-null reference value
x,x.equals(x)should returntrue. - It is symmetric: for any non-null reference values
xandy,x.equals(y)should returntrueif and only ify.equals(x)returnstrue. - It is transitive: for any non-null reference values
x,y, andz, ifx.equals(y)returnstrueandy.equals(z)returnstrue, thenx.equals(z)should returntrue. - It is consistent: for any non-null reference values
xandy, multiple invocations ofx.equals(y)consistently returntrueor consistently returnfalse, provided no information used inequalscomparisons on the objects is modified. - For any non-null reference value
x,x.equals(null)should returnfalse.
An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.
| Parameters | |
|---|---|
obj |
the reference object with which to compare. |
| Return | |
|---|---|
Boolean |
true if this object is the same as the obj argument; false otherwise. |
forPausedStopwatch
static fun forPausedStopwatch(
elapsedTime: Duration,
format: Int
): Notification.Metric.TimeDifference
Creates a "paused stopwatch" metric, showing the elapsedTime.
| Parameters | |
|---|---|
elapsedTime |
Duration: This value cannot be null. |
format |
Int: Value is one of the following: |
| Return | |
|---|---|
Notification.Metric.TimeDifference |
This value cannot be null. |
forPausedTimer
static fun forPausedTimer(
remainingTime: Duration,
format: Int
): Notification.Metric.TimeDifference
Creates a "paused timer" metric, showing the remainingTime.
| Parameters | |
|---|---|
remainingTime |
Duration: This value cannot be null. |
format |
Int: Value is one of the following: |
| Return | |
|---|---|
Notification.Metric.TimeDifference |
This value cannot be null. |
forStopwatch
static fun forStopwatch(
startTime: Instant,
format: Int
): Notification.Metric.TimeDifference
Creates a "running stopwatch" metric, which will show the time elapsed since startTime.
| Parameters | |
|---|---|
startTime |
Instant: instant at which the stopwatch started. This value cannot be null. |
format |
Int: Value is one of the following: |
| Return | |
|---|---|
Notification.Metric.TimeDifference |
This value cannot be null. |
forStopwatch
static fun forStopwatch(
startTime: Long,
format: Int
): Notification.Metric.TimeDifference
Creates a "running stopwatch" metric, which will show the time elapsed since startTime, specified in the SystemClock.elapsedRealtime() frame of reference.
| Parameters | |
|---|---|
startTime |
Long: elapsed realtime at which the stopwatch started. Value is a non-negative timestamp in the android.os.SystemClock#elapsedRealtime() time base. |
format |
Int: Value is one of the following: |
| Return | |
|---|---|
Notification.Metric.TimeDifference |
This value cannot be null. |
forTimer
static fun forTimer(
endTime: Instant,
format: Int
): Notification.Metric.TimeDifference
Creates a "running timer" metric, which will show a countdown to endTime.
| Parameters | |
|---|---|
endTime |
Instant: instant at which the timer reaches zero. This value cannot be null. |
format |
Int: Value is one of the following: |
| Return | |
|---|---|
Notification.Metric.TimeDifference |
This value cannot be null. |
forTimer
static fun forTimer(
endTime: Long,
format: Int
): Notification.Metric.TimeDifference
Creates a "running timer" metric, which will show a countdown to endTime, specified in the SystemClock.elapsedRealtime() frame of reference.
| Parameters | |
|---|---|
endTime |
Long: elapsed realtime at which the timer reaches zero. Value is a non-negative timestamp in the android.os.SystemClock#elapsedRealtime() time base. |
format |
Int: Value is one of the following: |
| Return | |
|---|---|
Notification.Metric.TimeDifference |
This value cannot be null. |
getFormat
fun getFormat(): Int
Formatting option for the timer/stopwatch.
| Return | |
|---|---|
Int |
Value is one of the following: |
getPausedDuration
fun getPausedDuration(): Duration?
The fixed time difference, for a paused timer or stopwatch.
- For a paused timer this is the
remainingTimesupplied toforPausedTimer. - For a paused stopwatch this is the
elapsedTimesupplied toforPausedStopwatch. - For running timers or stopwatches this is
null.
getZeroElapsedRealtime
fun getZeroElapsedRealtime(): Long?
The elapsed realtime at which the time difference is zero. Only valid for an SystemClock.elapsedRealtime()-based TimeDifference.
- For a running timer this is the
endTimesupplied toforTimer(long,int). - For a running stopwatch this is the
startTimesupplied toforStopwatch(long,int). - For running timers or stopwatches based on
Instant(as well as paused timers and stopwatches), this isnull.
Value is a non-negative timestamp in the
android.os.SystemClock#elapsedRealtime() time base.
| Return | |
|---|---|
Long? |
Value is a non-negative timestamp in the android.os.SystemClock#elapsedRealtime() time base. |
getZeroTime
fun getZeroTime(): Instant?
The Instant at which the time difference is zero. Only valid for an Instant-based TimeDifference.
- For a running timer this is the
endTimesupplied toforTimer(Instant,int). - For a running stopwatch this is the
startTimesupplied toforStopwatch(Instant,int). - For running timers or stopwatches based on elapsed realtime (as well as paused timers and stopwatches), this is
null.
hashCode
fun hashCode(): Int
Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.
The general contract of hashCode is:
- Whenever it is invoked on the same object more than once during an execution of a Java application, the
hashCodemethod must consistently return the same integer, provided no information used inequalscomparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. - If two objects are equal according to the
equalsmethod, then calling thehashCodemethod on each of the two objects must produce the same integer result. - It is not required that if two objects are unequal according to the
equalsmethod, then calling thehashCodemethod on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
| Return | |
|---|---|
Int |
a hash code value for this object. |
isStopwatch
fun isStopwatch(): Boolean
Whether this TimeDifference value represents a stopwatch -- when running, it counts up from getZeroTime() (or getZeroElapsedRealtime()).
isTimer
fun isTimer(): Boolean
Whether this TimeDifference value represents a timer -- when running, it counts down to getZeroTime() (or getZeroElapsedRealtime()).
toString
fun toString(): String
Returns a string representation of the object.
| Return | |
|---|---|
String |
a string representation of the object. |