@@ -7,10 +7,30 @@ import Yosemite
77public class AnalyticsHubTimeRangeSelection {
88 private let currentTimeRange : AnalyticsHubTimeRange ?
99 private let previousTimeRange : AnalyticsHubTimeRange ?
10- private let currentRangeDescription : String ?
11- private let previousRangeDescription : String ?
10+ private let formattedCurrentRangeText : String ?
11+ private let formattedPreviousRangeText : String ?
1212 let rangeSelectionDescription : String
1313
14+ /// Provide a date description of the current time range set internally.
15+ /// - Returns the Time range in a UI friendly format. If the current time range is not available,
16+ /// then returns an presentable error message.
17+ var currentRangeDescription : String {
18+ guard let currentTimeRangeDescription = formattedCurrentRangeText else {
19+ return Localization . noCurrentPeriodAvailable
20+ }
21+ return currentTimeRangeDescription
22+ }
23+
24+ /// Generates a date description of the previous time range set internally.
25+ /// - Returns the Time range in a UI friendly format. If the previous time range is not available,
26+ /// then returns an presentable error message.
27+ var previousRangeDescription : String {
28+ guard let previousTimeRangeDescription = formattedPreviousRangeText else {
29+ return Localization . noPreviousPeriodAvailable
30+ }
31+ return previousTimeRangeDescription
32+ }
33+
1434 //TODO: abandon usage of the ISO 8601 Calendar and build one based on the Site calendar configuration
1535 init ( selectionType: SelectionType ,
1636 currentDate: Date = Date ( ) ,
@@ -35,8 +55,10 @@ public class AnalyticsHubTimeRangeSelection {
3555 self . previousTimeRange = previousTimeRange
3656
3757 let simplifiedDescription = selectionType == . today
38- self . currentRangeDescription = currentTimeRange? . generateDescription ( simplified: simplifiedDescription, calendar: calendar)
39- self . previousRangeDescription = previousTimeRange? . generateDescription ( simplified: simplifiedDescription, calendar: calendar)
58+ self . formattedCurrentRangeText = currentTimeRange? . formatToString ( simplified: simplifiedDescription,
59+ calendar: calendar)
60+ self . formattedPreviousRangeText = previousTimeRange? . formatToString ( simplified: simplifiedDescription,
61+ calendar: calendar)
4062 self . rangeSelectionDescription = selectionType. description
4163 }
4264
@@ -59,26 +81,6 @@ public class AnalyticsHubTimeRangeSelection {
5981 }
6082 return previousTimeRange
6183 }
62-
63- /// Generates a date description of the previous time range set internally.
64- /// - Returns the Time range in a UI friendly format. If the previous time range is not available,
65- /// then returns an presentable error message.
66- func generateCurrentRangeDescription( ) -> String {
67- guard let currentTimeRangeDescription = currentRangeDescription else {
68- return Localization . noCurrentPeriodAvailable
69- }
70- return currentTimeRangeDescription
71- }
72-
73- /// Generates a date description of the previous time range set internally.
74- /// - Returns the Time range in a UI friendly format. If the previous time range is not available,
75- /// then returns an presentable error message.
76- func generatePreviousRangeDescription( ) -> String {
77- guard let previousTimeRangeDescription = previousRangeDescription else {
78- return Localization . noPreviousPeriodAvailable
79- }
80- return previousTimeRangeDescription
81- }
8284}
8385
8486// MARK: - Time Range Selection Type
0 commit comments