Browse Source

fix notification stats (#1447)

* fix and simplify notifications-average calculations

* no translatable string needed for typically unreachable cdode
bjoern 3 years ago
parent
commit
5c8926aea3

+ 9 - 10
deltachat-ios/Controller/ConnectivityViewController.swift

@@ -78,20 +78,19 @@ class ConnectivityViewController: WebViewViewController {
                 .appending(String.localized("no_data"))
         }
 
-        if timestamps.isEmpty || timestamps.count == 1 {
-            // FIXME: for timestamp == 1, that is just okay if the timestamp is not too old
+        var averageDelta: Double = 0
+        if timestamps.isEmpty {
+            // this should not happen:
+            // the array should not be empty as old notifications are only removed if a new one is added
             return "<span class=\"red dot\"></span>"
                 .appending(title)
-                .appending(String.localized("notifications_not_working"))
+                .appending("Bad Data")
+        } else if timestamps.count == 1 {
+            averageDelta = Double(Date().timeIntervalSince1970) - timestamps.first!
+        } else {
+            averageDelta = (timestamps.last! - timestamps.first!) / Double(timestamps.count-1)
         }
 
-        var timestampDeltas: Double = 0
-        for (index, element) in timestamps.enumerated() where index > 0 {
-            let diff = element - timestamps[index - 1]
-            timestampDeltas += diff
-        }
-
-        let averageDelta = timestampDeltas / Double(timestamps.count - 1)
         let lastWakeup = DateUtils.getExtendedRelativeTimeSpanString(timeStamp: timestamps.last!)
 
         if Int(averageDelta / Double(60 * 60)) > 1 {

+ 0 - 1
deltachat-ios/en.lproj/Localizable.strings

@@ -862,7 +862,6 @@
 "no_data" = "No data";
 "notifications_disabled_dc" = "Disabled in Delta Chat.";
 "notifications_disabled" = "Disabled in system settings.";
-"notifications_not_working" = "No notifications received in last 24 hours.";
 "notifications_stats_minutes" = "In average every %1$d minutes.";
 "notifications_stats_minutes_delayed" = "Delayed. In average every %1$d minutes.";
 "notifications_stats_hours_delayed" = "Delayed. In average every %1$d hours.";

+ 0 - 1
scripts/untranslated.xml

@@ -15,7 +15,6 @@
     <string name="no_data">No data</string>
     <string name="notifications_disabled_dc">Disabled in Delta Chat.</string>
     <string name="notifications_disabled">Disabled in system settings.</string>
-    <string name="notifications_not_working">No notifications received in last 24 hours.</string>
     <string name="notifications_stats_minutes">In average every %1$d minutes.</string>
     <string name="notifications_stats_minutes_delayed">Delayed. In average every %1$d minutes.</string>
     <string name="notifications_stats_hours_delayed">Delayed. In average every %1$d hours.</string>