NotificationCompat.Metric.TimeDifference


class NotificationCompat.Metric.TimeDifference : NotificationCompat.Metric.MetricValue


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 system), or as milliseconds since boot (from elapsedRealtime). The latter might be suitable when the timer is tied to an ELAPSED_REALTIME alarm in android.app.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

const Int

Formatting option: adaptive (e.g. 1h 5m; 15m; 1m 30s; 5s).

const Int

Formatting option: chronometer-style, (e.g. two hours = "2:00:00").

Public functions

Boolean
equals(obj: Any!)
java-static NotificationCompat.Metric.TimeDifference
@RequiresApi(value = 37)
forPausedStopwatch(elapsedTime: Duration, format: Int)

Creates a "paused stopwatch" metric, showing the elapsedTime.

java-static NotificationCompat.Metric.TimeDifference
@RequiresApi(value = 37)
forPausedTimer(remainingTime: Duration, format: Int)

Creates a "paused timer" metric, showing the remainingTime.

java-static NotificationCompat.Metric.TimeDifference
@RequiresApi(value = 37)
forStopwatch(startTime: Instant, format: Int)

Creates a "running stopwatch" metric, which will show the time elapsed since startTime.

java-static NotificationCompat.Metric.TimeDifference
@RequiresApi(value = 37)
forStopwatch(startTime: Long, format: Int)

Creates a "running stopwatch" metric, which will show the time elapsed since startTime, specified in the elapsedRealtime frame of reference.

java-static NotificationCompat.Metric.TimeDifference
@RequiresApi(value = 37)
forTimer(endTime: Instant, format: Int)

Creates a "running timer" metric, which will show a countdown to endTime.

java-static NotificationCompat.Metric.TimeDifference
@RequiresApi(value = 37)
forTimer(endTime: Long, format: Int)

Creates a "running timer" metric, which will show a countdown to endTime, specified in the elapsedRealtime frame of reference.

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 Instant at which the time difference is zero.

Int
Boolean

Whether this TimeDifference value represents a stopwatch -- when running, it counts up from getZeroTime (or getZeroElapsedRealtime).

Boolean

Whether this TimeDifference value represents a timer -- when running, it counts down to getZeroTime (or getZeroElapsedRealtime).

String

Constants

FORMAT_ADAPTIVE

const val FORMAT_ADAPTIVE = 1: Int

Formatting option: adaptive (e.g. 1h 5m; 15m; 1m 30s; 5s).

FORMAT_CHRONOMETER

const val FORMAT_CHRONOMETER = 2: Int

Formatting option: chronometer-style, (e.g. two hours = "2:00:00").

Public functions

equals

fun equals(obj: Any!): Boolean

forPausedStopwatch

@RequiresApi(value = 37)
java-static fun forPausedStopwatch(elapsedTime: Duration, format: Int): NotificationCompat.Metric.TimeDifference

Creates a "paused stopwatch" metric, showing the elapsedTime.

forPausedTimer

@RequiresApi(value = 37)
java-static fun forPausedTimer(remainingTime: Duration, format: Int): NotificationCompat.Metric.TimeDifference

Creates a "paused timer" metric, showing the remainingTime.

forStopwatch

@RequiresApi(value = 37)
java-static fun forStopwatch(startTime: Instant, format: Int): NotificationCompat.Metric.TimeDifference

Creates a "running stopwatch" metric, which will show the time elapsed since startTime.

Parameters
startTime: Instant

instant at which the stopwatch started

format: Int

formatting option

forStopwatch

@RequiresApi(value = 37)
java-static fun forStopwatch(startTime: Long, format: Int): NotificationCompat.Metric.TimeDifference

Creates a "running stopwatch" metric, which will show the time elapsed since startTime, specified in the elapsedRealtime frame of reference.

Parameters
startTime: Long

elapsed realtime at which the stopwatch started

format: Int

formatting option

forTimer

@RequiresApi(value = 37)
java-static fun forTimer(endTime: Instant, format: Int): NotificationCompat.Metric.TimeDifference

Creates a "running timer" metric, which will show a countdown to endTime.

Parameters
endTime: Instant

instant at which the timer reaches zero

format: Int

formatting option

forTimer

@RequiresApi(value = 37)
java-static fun forTimer(endTime: Long, format: Int): NotificationCompat.Metric.TimeDifference

Creates a "running timer" metric, which will show a countdown to endTime, specified in the elapsedRealtime frame of reference.

Parameters
endTime: Long

elapsed realtime at which the timer reaches zero

format: Int

formatting option

getFormat

fun getFormat(): Int

Formatting option for the timer/stopwatch.

getPausedDuration

fun getPausedDuration(): Duration?

The fixed time difference, for a paused timer or stopwatch.

  • For a paused timer this is the remainingTime supplied to forPausedTimer.
  • For a paused stopwatch this is the elapsedTime supplied to forPausedStopwatch.
  • 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 elapsedRealtime-based TimeDifference.

  • For a running timer this is the endTime supplied to forTimer.
  • For a running stopwatch this is the startTime supplied to forStopwatch.
  • For running timers or stopwatches based on Instant (as well as paused timers and stopwatches), this is null.

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 endTime supplied to forTimer.
  • For a running stopwatch this is the startTime supplied to forStopwatch.
  • For running timers or stopwatches based on elapsed realtime (as well as paused timers and stopwatches), this is null.

hashCode

fun hashCode(): Int

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