Просмотр исходного кода

Add iphone identifier and ios version to statistics

Marc G Fournier 3 лет назад
Родитель
Сommit
5e5f8b3a82

+ 4 - 0
FreeAPS.xcodeproj/project.pbxproj

@@ -336,6 +336,7 @@
 		F90692D6274B9A450037068D /* HealthKitStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F90692D5274B9A450037068D /* HealthKitStateModel.swift */; };
 		FA630397F76B582C8D8681A7 /* BasalProfileEditorProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42369F66CF91F30624C0B3A6 /* BasalProfileEditorProvider.swift */; };
 		FE66D16B291F74F8005D6F77 /* Bundle+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE66D16A291F74F8005D6F77 /* Bundle+Extensions.swift */; };
+		FEFFA7A22929FE49007B8193 /* UIDevice+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEFFA7A12929FE49007B8193 /* UIDevice+Extensions.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -764,6 +765,7 @@
 		F90692D5274B9A450037068D /* HealthKitStateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HealthKitStateModel.swift; sourceTree = "<group>"; };
 		FBB3BAE7494CB771ABAC7B8B /* ISFEditorRootView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ISFEditorRootView.swift; sourceTree = "<group>"; };
 		FE66D16A291F74F8005D6F77 /* Bundle+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+Extensions.swift"; sourceTree = "<group>"; };
+		FEFFA7A12929FE49007B8193 /* UIDevice+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIDevice+Extensions.swift"; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -1371,6 +1373,7 @@
 				E06B9119275B5EEA003C04B6 /* Array+Extension.swift */,
 				CEB434E428B8FF5D00B70274 /* UIColor.swift */,
 				FE66D16A291F74F8005D6F77 /* Bundle+Extensions.swift */,
+				FEFFA7A12929FE49007B8193 /* UIDevice+Extensions.swift */,
 			);
 			path = Helpers;
 			sourceTree = "<group>";
@@ -2370,6 +2373,7 @@
 				38569353270B5E350002C50D /* CGMRootView.swift in Sources */,
 				69A31254F2451C20361D172F /* BolusStateModel.swift in Sources */,
 				0CEA2EA070AB041AF3E3745B /* BolusRootView.swift in Sources */,
+				FEFFA7A22929FE49007B8193 /* UIDevice+Extensions.swift in Sources */,
 				F90692D3274B9A130037068D /* AppleHealthKitRootView.swift in Sources */,
 				3862CC1F273FDC9200BF832C /* CalibrationsChart.swift in Sources */,
 				711C0CB42CAABE788916BC9D /* ManualTempBasalDataFlow.swift in Sources */,

+ 3 - 0
FreeAPS/Sources/APS/APSManager.swift

@@ -743,6 +743,7 @@ final class BaseAPSManager: APSManager, Injectable {
         let tdds = storage.retrieve(OpenAPS.Monitor.tdd, as: [TDD].self)
         let currentTDD = tdds?[0].TDD ?? 0
         let carbs_length = carbs?.count ?? 0
+
         var carbTotal: Decimal = 0
 
         if carbs_length != 0 {
@@ -1170,6 +1171,8 @@ final class BaseAPSManager: APSManager, Injectable {
 
         let dailystat = DailyStats(
             createdAt: Date(),
+            iPhoneType: UIDevice.current.getDeviceId,
+            iOSVersion: UIDevice.current.getOSInfo,
             Build_Version: version ?? "",
             Build_Number: build ?? "1",
             Branch: branch ?? "N/A",

+ 20 - 0
FreeAPS/Sources/Helpers/UIDevice+Extensions.swift

@@ -0,0 +1,20 @@
+import SwiftUI
+
+extension UIDevice {
+    var getDeviceId: String {
+        var systemInfo = utsname()
+        uname(&systemInfo)
+        let machineMirror = Mirror(reflecting: systemInfo.machine)
+        let identifier = machineMirror.children.reduce("") { identifier, element in
+            guard let value = element.value as? Int8, value != 0 else { return identifier }
+            return identifier + String(UnicodeScalar(UInt8(value)))
+        }
+
+        return identifier
+    }
+
+    var getOSInfo: String {
+        let os = ProcessInfo.processInfo.operatingSystemVersion
+        return String(os.majorVersion) + "." + String(os.minorVersion) + "." + String(os.patchVersion)
+    }
+}

+ 8 - 0
FreeAPS/Sources/Models/DailyStats.swift

@@ -2,6 +2,8 @@ import Foundation
 
 struct DailyStats: JSON, Equatable {
     var createdAt: Date
+    var iPhoneType: String
+    var iOSVersion: String
     var Build_Version: String
     var Build_Number: String
     var Branch: String
@@ -21,6 +23,8 @@ struct DailyStats: JSON, Equatable {
 
     init(
         createdAt: Date,
+        iPhoneType: String,
+        iOSVersion: String,
         Build_Version: String,
         Build_Number: String,
         Branch: String,
@@ -39,6 +43,8 @@ struct DailyStats: JSON, Equatable {
         Loop_Cycles: String
     ) {
         self.createdAt = createdAt
+        self.iPhoneType = iPhoneType
+        self.iOSVersion = iOSVersion
         self.Build_Version = Build_Version
         self.Build_Number = Build_Number
         self.Branch = Branch
@@ -69,6 +75,8 @@ struct DailyStats: JSON, Equatable {
 extension DailyStats {
     private enum CodingKeys: String, CodingKey {
         case createdAt
+        case iPhoneType
+        case iOSVersion
         case Build_Version
         case Build_Number
         case Branch