DateTimeView: Add additional display configuration options.
Right now, DateTimeView has one display configuration option called "showRelative": - showRelative=false: Times will be shown as absolute times, like "9:47" or "9/4/24" - showRelative=true: Times will be shown as relative from the current time. If the time is 7 minutes in the past, "7m" is used. If the time is 2 hours in the future, "in 2h" is used. This CL adds additional dislpay configuration options, used only if showRelative=true: - disambiguationText: If "future" is included, times in the future will have an additional "in " at the beginning of the string (e.g. "in 7m") If "past" is included, times in the past will have an additional " ago" at the end of the string (e.g. "7m ago") - relativeTimeUnitDisplayLength: If "shortest", use a single character to denote the unit. "m" for minutes, "h" for hours, etc. (This is how it works today.) If "medium", use 2-3 characters to denote the unit. "min" for minutes", "hr" for hours, etc. This is an enum so that we could easily add a "long" or "full" value if needed later. Why this is needed: Notifications currently use DateTimeView to show the time the notification was posted. In a future release, we're adding chips in the status bar for ongoing notifications, and those chips also need to show the time the notification was posted. There's two important differences for the time in the status bar chip: 1) The notifications that will get status bar chips will likely be for *upcoming* events, not past ones, so we expect most notification times to be in the future. Since there's so little space in the status bar, we want to use just "7m" instead of "in 7m" for those future times. 2) Some status bar chips will be displaying *distance* information, not *time* information, like in navigation situations where a user needs to take a turn. Single-character time units can be confused with single-character distances units - specifically "m" could mean either minutes or meters. So, we'd like the time unit used in the status bar chip to be slightly longer. Bug: 364653005 Test: Create a DateTimeView with disambiguationText=past and relativeTimeUnitDisplayLength=medium, verify strings (see screenshots in bug) Test: atest DateTimeViewTest Flag: android.view.flags.date_time_view_relative_time_display_configs Change-Id: I8266d36b3b61d1f64ba854b6cd09c2e509179be1
Loading
Please register or sign in to comment