diff --git a/Riot/Assets/de.lproj/Bwi.strings b/Riot/Assets/de.lproj/Bwi.strings index ae89a1c82..c1ecee1ab 100644 --- a/Riot/Assets/de.lproj/Bwi.strings +++ b/Riot/Assets/de.lproj/Bwi.strings @@ -31,8 +31,8 @@ "downtime_title" = "⚠ Server nicht erreichbar"; "downtime_default_message" = "Wir führen gerade Wartungsarbeiten durch. Bitte versuche es später erneut."; "downtime_alert_dismiss_button" = "Zurück"; -"settings_downtime_message_same_day" = "Der %@ steht von %@-%@ Uhr (UTC%@) nicht zur Verfügung."; -"settings_downtime_message_different_days" = "Der %@ steht von %@ Uhr (UTC%@) bis %@ Uhr (UTC%@) nicht zur Verfügung."; +"settings_downtime_message_same_day" = "Der %@ steht am %@, %@ von %@ bis %@ Uhr (UTC%@) nicht zur Verfügung. Nachrichten können in dieser Zeit nicht verschickt oder empfangen werden."; +"settings_downtime_message_different_days" = "Der %@ steht von %@, %@ Uhr (UTC%@) bis %@, %@ Uhr (UTC%@) nicht zur Verfügung. Nachrichten können in dieser Zeit nicht verschickt oder empfangen werden."; "settings_copyright" = "Copyright"; // MARK: - Server Selection (beta) diff --git a/Riot/Assets/en.lproj/Bwi.strings b/Riot/Assets/en.lproj/Bwi.strings index e54121835..400338f51 100644 --- a/Riot/Assets/en.lproj/Bwi.strings +++ b/Riot/Assets/en.lproj/Bwi.strings @@ -31,8 +31,8 @@ "downtime_title" = "⚠ Server not available"; "downtime_default_message" = "We are working on our maintenance. Please try again later."; "downtime_alert_dismiss_button" = "Back"; -"settings_downtime_message_same_day" = "The BwMessenger is not available between %@-%@ (UTC%@). Messages may not be sent or received during that time."; -"settings_downtime_message_different_days" = "The BwMessenger is not available from %@ (UTC%@) to %@ (UTC%@). Messages may not be sent or received during that time."; +"settings_downtime_message_same_day" = "The %@ is not available on %@, %@ between %@ and %@ (UTC%@). Messages may not be sent or received during that time."; +"settings_downtime_message_different_days" = "The %@ is not available from %@, %@ (UTC%@) to %@, %@ (UTC%@). Messages may not be sent or received during that time."; "settings_copyright" = "Copyright"; // MARK: - Server Selection (beta) diff --git a/Riot/Generated/BWIStrings.swift b/Riot/Generated/BWIStrings.swift index 90bf8cd90..ab989b97d 100644 --- a/Riot/Generated/BWIStrings.swift +++ b/Riot/Generated/BWIStrings.swift @@ -1383,13 +1383,13 @@ public class BWIL10n: NSObject { public static var settingsDirectMessages: String { return BWIL10n.tr("Bwi", "settings_direct_messages") } - /// Der %@ steht von %@ Uhr (UTC%@) bis %@ Uhr (UTC%@) nicht zur Verfügung. - public static func settingsDowntimeMessageDifferentDays(_ p1: String, _ p2: String, _ p3: String, _ p4: String, _ p5: String) -> String { - return BWIL10n.tr("Bwi", "settings_downtime_message_different_days", p1, p2, p3, p4, p5) + /// Der %@ steht von %@, %@ Uhr (UTC%@) bis %@, %@ Uhr (UTC%@) nicht zur Verfügung. Nachrichten können in dieser Zeit nicht verschickt oder empfangen werden. + public static func settingsDowntimeMessageDifferentDays(_ p1: String, _ p2: String, _ p3: String, _ p4: String, _ p5: String, _ p6: String, _ p7: String) -> String { + return BWIL10n.tr("Bwi", "settings_downtime_message_different_days", p1, p2, p3, p4, p5, p6, p7) } - /// Der %@ steht von %@-%@ Uhr (UTC%@) nicht zur Verfügung. - public static func settingsDowntimeMessageSameDay(_ p1: String, _ p2: String, _ p3: String, _ p4: String) -> String { - return BWIL10n.tr("Bwi", "settings_downtime_message_same_day", p1, p2, p3, p4) + /// Der %@ steht am %@, %@ von %@ bis %@ Uhr (UTC%@) nicht zur Verfügung. Nachrichten können in dieser Zeit nicht verschickt oder empfangen werden. + public static func settingsDowntimeMessageSameDay(_ p1: String, _ p2: String, _ p3: String, _ p4: String, _ p5: String, _ p6: String) -> String { + return BWIL10n.tr("Bwi", "settings_downtime_message_same_day", p1, p2, p3, p4, p5, p6) } /// Element-Version %@ public static func settingsElementVersion(_ p1: String) -> String { diff --git a/Riot/Modules/Settings/SettingsViewController.m b/Riot/Modules/Settings/SettingsViewController.m index fcd2f328f..c14aa8f8a 100644 --- a/Riot/Modules/Settings/SettingsViewController.m +++ b/Riot/Modules/Settings/SettingsViewController.m @@ -2981,7 +2981,13 @@ ChangePasswordCoordinatorBridgePresenterDelegate> downtimeCell.textLabel.text = [self bwiDowntimeCellText]; downtimeCell.textLabel.textColor = [self bwiDowntimeTextColor]; downtimeCell.textLabel.lineBreakMode = NSLineBreakByWordWrapping; - downtimeCell.textLabel.numberOfLines = 5; + // bwi: with descriptions coming soon we need to do this dynamically + if ([[[ServerDowntimeDefaultService alloc] init] isSameDay]) { + downtimeCell.textLabel.numberOfLines = 6; + } else { + downtimeCell.textLabel.numberOfLines = 7; + } + cell = downtimeCell; } diff --git a/bwi/ServerMaintenance/ServerDownTimeService.swift b/bwi/ServerMaintenance/ServerDownTimeService.swift index d63c38be3..cc2dc808e 100644 --- a/bwi/ServerMaintenance/ServerDownTimeService.swift +++ b/bwi/ServerMaintenance/ServerDownTimeService.swift @@ -29,4 +29,5 @@ protocol ServerDowntimeService { func downtimeText() -> String func downtimeColor() -> UIColor func downtimeTextColor() -> UIColor + func isSameDay() -> Bool } diff --git a/bwi/ServerMaintenance/ServerDowntimeDefaultService.swift b/bwi/ServerMaintenance/ServerDowntimeDefaultService.swift index 0ffc5ac48..dfd1d557b 100644 --- a/bwi/ServerMaintenance/ServerDowntimeDefaultService.swift +++ b/bwi/ServerMaintenance/ServerDowntimeDefaultService.swift @@ -200,8 +200,18 @@ extension ServerDowntimeDefaultService : ServerDowntimeService { return "" } + let dayOfWeekFormatter = DateFormatter() + dayOfWeekFormatter.dateFormat = "EEEE" + dayOfWeekFormatter.timeZone = TimeZone.current + dayOfWeekFormatter.calendar = Calendar.current + + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "dd.MM.yyyy" + dateFormatter.timeZone = TimeZone.current + dateFormatter.calendar = Calendar.current + let dateTimeFormatter = DateFormatter() - dateTimeFormatter.dateFormat = "EE dd.MM.yyyy HH:mm" + dateTimeFormatter.dateFormat = "dd.MM.yyyy HH:mm" dateTimeFormatter.timeZone = TimeZone.current dateTimeFormatter.calendar = Calendar.current @@ -214,18 +224,20 @@ extension ServerDowntimeDefaultService : ServerDowntimeService { utcFormatter.dateFormat = "ZZZZZ" utcFormatter.timeZone = TimeZone.current utcFormatter.calendar = Calendar.current - - let isSameDay = Calendar.current.dateComponents([.day], from: startDate, to: endDate).day == 0 - - if isSameDay { + + if self.isSameDay() { return BWIL10n.settingsDowntimeMessageSameDay(AppInfo.current.displayName, - dateTimeFormatter.string(from: startDate), + dayOfWeekFormatter.string(from: startDate), + dateFormatter.string(from: startDate), + timeFormatter.string(from: startDate), timeFormatter.string(from: endDate), utcFormatter.string(from: startDate)) } else { return BWIL10n.settingsDowntimeMessageDifferentDays(AppInfo.current.displayName, + dayOfWeekFormatter.string(from: startDate), dateTimeFormatter.string(from: startDate), utcFormatter.string(from: startDate), + dayOfWeekFormatter.string(from: endDate), dateTimeFormatter.string(from: endDate), utcFormatter.string(from: endDate)) } @@ -260,4 +272,11 @@ extension ServerDowntimeDefaultService : ServerDowntimeService { } } + @objc func isSameDay() -> Bool { + guard let downTime = self.nextDowntime(), let startDate = downTime.startTime.iso8601LocalDate, let endDate = downTime.endTime.iso8601LocalDate else { + return false + } + + return Calendar.current.dateComponents([.day], from: startDate, to: endDate).day == 0 + } }