diff --git a/TraccarClient.xcodeproj/project.pbxproj b/TraccarClient.xcodeproj/project.pbxproj index daeccec8c2a7e105d627512227ae85ad44f59b71..44dcceb4cb3ed422645cfaf7c2b460a054882711 100644 --- a/TraccarClient.xcodeproj/project.pbxproj +++ b/TraccarClient.xcodeproj/project.pbxproj @@ -1365,7 +1365,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 4; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = Z7STA3KGEU; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; @@ -1541,7 +1541,7 @@ CODE_SIGN_ENTITLEMENTS = TraccarClient/TraccarClient.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 4; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = Z7STA3KGEU; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; @@ -1579,7 +1579,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 4; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = Z7STA3KGEU; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; diff --git a/TraccarClient.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate b/TraccarClient.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate index a09bd43bbafe5e90854a4ec51163e55a141e504f..61c2f14815924865f064a0b5604f61c3570abeb3 100644 Binary files a/TraccarClient.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate and b/TraccarClient.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/TraccarClient/AppManager.swift b/TraccarClient/AppManager.swift index c6b751cecf53048e4d88654cd0266c84a0f299e3..ecb4bead906c4349d62856ce4c5fa00515f0747d 100644 --- a/TraccarClient/AppManager.swift +++ b/TraccarClient/AppManager.swift @@ -39,7 +39,7 @@ final class AppManager { ] // MARK: - Data - var environment: KNEnvironment = .sandbox + var environment: KNEnvironment = .production var delegate: AppDelegate! var isUpdatingProfile: Bool = false var isLoggedIn: Bool { diff --git a/TraccarClient/JSONField.swift b/TraccarClient/JSONField.swift index 9bffe706b81a6d840c79e535330099a5053bf456..1dfaae8ff539025ed2fc1fa2ba0a73bf0e624d7b 100644 --- a/TraccarClient/JSONField.swift +++ b/TraccarClient/JSONField.swift @@ -201,4 +201,5 @@ enum JSONField: String { case distance = "distance_in_meters" case angle = "angle_in_degrees" case offline_buffering = "offline_buffering" + case accuracy = "accuracy" } diff --git a/TraccarClient/LoginViewController/Model/LoginModelController.swift b/TraccarClient/LoginViewController/Model/LoginModelController.swift index a610563c71b5c3e2da9a79bca36c6fc2c52c30d2..73b309dc3bb38fbdedbe6a6370b1d20d717b0bc3 100644 --- a/TraccarClient/LoginViewController/Model/LoginModelController.swift +++ b/TraccarClient/LoginViewController/Model/LoginModelController.swift @@ -155,7 +155,7 @@ final class LoginModelController { if result.success { for item in strongSelf.fields { if item.field == .username { - UserDefaults.standard.set("\(item.value.value)", forKey: "device_id_preference") + UserDefaults.standard.set("\(item.value.value.lowercased())", forKey: "device_id_preference") strongSelf.setupTracking() strongSelf.navigationMethod(by: shift) } diff --git a/TraccarClient/MainViewController/ConnectViewController.swift b/TraccarClient/MainViewController/ConnectViewController.swift index 43ff27ae57f3595c185792d2dc96b6196b968f32..f7477d97cbc20f66ce4b3386a35b88d9dced3383 100644 --- a/TraccarClient/MainViewController/ConnectViewController.swift +++ b/TraccarClient/MainViewController/ConnectViewController.swift @@ -20,6 +20,7 @@ final class ConnectViewController: KNViewController { @IBOutlet private weak var timerLabel: UILabel! @IBOutlet private weak var shiftsView: ShiftsView! @IBOutlet private weak var trackingView: TrackingView! + @IBOutlet private weak var welcomeLabel: UILabel! // MARK: - Properties let userDefaults = UserDefaults.standard @@ -47,6 +48,7 @@ final class ConnectViewController: KNViewController { } private func setupUI() { + welcomeLabel.set(text: "Hello \(UserModel.loadFromUserDefaults().first_name)!", color: .secondary, font: .semibold(20)) if #available(iOS 14, *) { ATTrackingManager.requestTrackingAuthorization { status in switch status { diff --git a/TraccarClient/MainViewController/ConnectViewController.xib b/TraccarClient/MainViewController/ConnectViewController.xib index 66f1541c5c96eeee06df63a852e771e639badf21..60f1c07eb8cf943dcb2351c44281f6ddf04ddc42 100644 --- a/TraccarClient/MainViewController/ConnectViewController.xib +++ b/TraccarClient/MainViewController/ConnectViewController.xib @@ -20,6 +20,7 @@ <outlet property="timerLabel" destination="tx9-o4-hgS" id="p5k-Iq-GJH"/> <outlet property="trackingView" destination="o03-9b-10U" id="XOo-zp-Vqv"/> <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> + <outlet property="welcomeLabel" destination="qBE-F3-4Op" id="H5E-fY-DRZ"/> </connections> </placeholder> <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> @@ -92,6 +93,12 @@ <rect key="frame" x="0.0" y="528" width="393" height="301"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> </view> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qBE-F3-4Op"> + <rect key="frame" x="196.66666666666666" y="245" width="0.0" height="0.0"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> </subviews> <viewLayoutGuide key="safeArea" id="fnl-2z-Ty3"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> @@ -110,7 +117,9 @@ <constraint firstItem="CkC-Ms-GkO" firstAttribute="top" secondItem="GMM-3p-jRe" secondAttribute="bottom" constant="20" id="S7D-8h-M4g"/> <constraint firstItem="GMM-3p-jRe" firstAttribute="leading" secondItem="zub-LG-NJa" secondAttribute="leading" id="XEg-qX-IP0"/> <constraint firstItem="CkC-Ms-GkO" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="Yfb-ej-e93"/> + <constraint firstItem="qBE-F3-4Op" firstAttribute="centerX" secondItem="nK6-XO-h2t" secondAttribute="centerX" id="Zdn-eh-Q0e"/> <constraint firstItem="sRb-Ee-0gO" firstAttribute="trailing" secondItem="fnl-2z-Ty3" secondAttribute="trailing" id="ZkK-Y2-fnp"/> + <constraint firstItem="qBE-F3-4Op" firstAttribute="bottom" secondItem="nK6-XO-h2t" secondAttribute="bottom" id="aJA-HW-5Oe"/> <constraint firstItem="tx9-o4-hgS" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="bBV-Q8-eeY"/> <constraint firstItem="fnl-2z-Ty3" firstAttribute="trailing" secondItem="yBt-VZ-plB" secondAttribute="trailing" id="bf7-YF-Pu1"/> <constraint firstItem="zub-LG-NJa" firstAttribute="top" secondItem="nK6-XO-h2t" secondAttribute="bottom" constant="10" id="fQE-Oi-c8X"/> diff --git a/TraccarClient/TrackingParametersModel.swift b/TraccarClient/TrackingParametersModel.swift index 54e232cec76b3c3c21655b212b0ba322e3e86180..032de07a0769fe5811ea071f6a50d5e053e59549 100644 --- a/TraccarClient/TrackingParametersModel.swift +++ b/TraccarClient/TrackingParametersModel.swift @@ -14,6 +14,7 @@ final class TrackingParametersModel: KNObject { var distance: Int = 0 var angle: Int = 0 var offline_buffering: Bool = false + var accuracy: String = "" // MARK: - Init override init() { @@ -26,7 +27,8 @@ final class TrackingParametersModel: KNObject { distance = dict["distance_in_meters"] as? Int ?? 0 angle = dict["angle_in_degrees"] as? Int ?? 0 offline_buffering = dict["offline_buffering"] as? Bool ?? false - + accuracy = dict["accuracy"] as? String ?? "" + if save { saveToDefaults() } @@ -38,6 +40,7 @@ final class TrackingParametersModel: KNObject { ud.set(distance, forKey: "distance_preference") ud.set(angle, forKey: "angle_preference") ud.set(offline_buffering, forKey: "buffer_preference") + ud.set(accuracy, forKey: "accuracy_preference") } class func loadFromDefaults() -> TrackingParametersModel { @@ -57,6 +60,9 @@ final class TrackingParametersModel: KNObject { if let offlineBuffering = ud.value(forKey: "buffer_preference") as? Bool { params.add(key: .offline_buffering, offlineBuffering) } + if let accuracy = ud.value(forKey: "accuracy_preference") as? String { + params.add(key: .accuracy, accuracy) + } return TrackingParametersModel(params) } @@ -67,6 +73,7 @@ final class TrackingParametersModel: KNObject { ud.removeObject(forKey: "distance_preference") ud.removeObject(forKey: "angle_preference") ud.removeObject(forKey: "buffer_preference") + ud.removeObject(forKey: "accuracy_preference") } } diff --git a/TraccarClient/TransactionsViewController/TransactionsViewController.swift b/TraccarClient/TransactionsViewController/TransactionsViewController.swift index 1591c5cbfbb22ffc67e9627a48a0443850394538..eb6db3d49c316086c046a94b489691b9234fbaa9 100644 --- a/TraccarClient/TransactionsViewController/TransactionsViewController.swift +++ b/TraccarClient/TransactionsViewController/TransactionsViewController.swift @@ -43,7 +43,7 @@ class TransactionsViewController: KNViewController { // MARK: - Methods class func addMessage(_ message: String) { let formatter = DateFormatter() - formatter.dateFormat = "HH:mm - " + formatter.dateFormat = "HH:mm:ss - " messages.append(formatter.string(from: Date()) + (message))