فهرست منبع

Fixed background refresh minute setting

Jon Fawcett 6 سال پیش
والد
کامیت
44ae4d1ed3

+ 18 - 0
LoopFollow.xcworkspace/xcuserdata/jon.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -3,4 +3,22 @@
    uuid = "35B1BDC7-1374-42B0-9D79-1E7D694F0434"
    type = "0"
    version = "2.0">
+   <Breakpoints>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "8B56A574-7A41-46D1-8F41-5B934902B46D"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "LoopFollow/Controllers/MainViewController.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "200"
+            endingLineNumber = "200"
+            landmarkName = "appMovedToBackground()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+   </Breakpoints>
 </Bucket>

+ 3 - 1
LoopFollow/Controllers/MainViewController.swift

@@ -194,8 +194,10 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
         // Cancel the current timer and start a fresh background timer using the settings value only if background task is enabled
         timer.invalidate()
         if UserDefaultsRepository.backgroundRefresh.value {
+            timer.invalidate()
             backgroundTask.startBackgroundTask()
-            startTimer(time: TimeInterval(UserDefaultsRepository.backgroundRefreshFrequency.value*60))
+            let refresh = UserDefaultsRepository.backgroundRefreshFrequency.value * 60
+            startTimer(time: TimeInterval(refresh))
         }
     }
 

+ 9 - 6
LoopFollow/Controllers/SettingsViewController.swift

@@ -88,16 +88,19 @@ class SettingsViewController: FormViewController {
                     guard let value = row.value else { return }
                     UserDefaultsRepository.backgroundRefresh.value = value
             }
-        <<< SliderRow() { row in
+        <<< StepperRow("backgroundRefreshFrequency") { row in
             row.title = "Refresh Minutes"
             row.tag = "backgroundRefreshFrequency"
-            row.steps = 19
-            row.value = Float(UserDefaultsRepository.backgroundRefreshFrequency.value)
+            row.cell.stepper.stepValue = 0.25
+            row.cell.stepper.minimumValue = 0.25
+            row.cell.stepper.maximumValue = 10
+            row.value = Double(UserDefaultsRepository.backgroundRefreshFrequency.value)
             row.hidden = "$backgroundRefresh == false"
-        }.cellSetup { cell, row in
-            cell.slider.minimumValue = 0.5
-            cell.slider.maximumValue = 10
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.backgroundRefreshFrequency.value = value
         }
+            
         <<< SwitchRow("appBadge"){ row in
             row.title = "Display App Badge"
             row.tag = "appBadge"

+ 1 - 1
LoopFollow/repository/UserDefaults.swift

@@ -24,7 +24,7 @@ class UserDefaultsRepository {
     
     // General Settings
     static let colorBGText = UserDefaultsValue<Bool>(key: "colorBGText", default: true)
-    static let backgroundRefreshFrequency = UserDefaultsValue<Int>(key: "backgroundRefreshFrequency", default: 1)
+    static let backgroundRefreshFrequency = UserDefaultsValue<Double>(key: "backgroundRefreshFrequency", default: 1)
     static let backgroundRefresh = UserDefaultsValue<Bool>(key: "backgroundRefresh", default: true)
     static let appBadge = UserDefaultsValue<Bool>(key: "appBadge", default: true)
     static let dimScreenWhenIdle = UserDefaultsValue<Int>(key: "dimScreenWhenIdle", default: 0)