mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-26 22:07:12 +00:00
Refactored battery saving preference and clean up about and settings view controller
This commit is contained in:
1 parent
001ef06861
commit
434811fce0
5 files changed
+89
-71
No files matched your search
@@ -2,42 +2,46 @@
|
||||
// AboutViewController.swift
|
||||
// SAPTracker
|
||||
//
|
||||
// Created by computing on 11/11/14.
|
||||
// Copyright (c) 2014 com.sap.sailing. All rights reserved.
|
||||
// Created by Raimund Wege on 04.07.16.
|
||||
// Copyright © 2016 com.sap.sailing. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
class AboutViewController: UIViewController {
|
||||
|
||||
@IBOutlet weak var textView: UITextView!
|
||||
@IBOutlet weak var versionDescriptionLabel: UILabel!
|
||||
@IBOutlet weak var versionLabel: UILabel!
|
||||
@IBOutlet weak var textView: UITextView!
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad();
|
||||
versionDescriptionLabel.text = NSLocalizedString("Version", comment: "")
|
||||
if let text = NSBundle.mainBundle().infoDictionary?["CFBundleVersion"] as? String {
|
||||
versionLabel.text = text
|
||||
} else {
|
||||
versionLabel.text = "-"
|
||||
}
|
||||
|
||||
// add logo to top left
|
||||
let imageView = UIImageView(image: UIImage(named: "sap_logo"))
|
||||
let barButtonItem = UIBarButtonItem(customView: imageView)
|
||||
navigationItem.leftBarButtonItem = barButtonItem
|
||||
setupNavigationBar()
|
||||
setupVersion()
|
||||
}
|
||||
|
||||
override func viewDidLayoutSubviews() {
|
||||
textView.scrollRectToVisible(CGRect(x: 0, y: 0, width: 1, height: 1), animated: false)
|
||||
}
|
||||
|
||||
@IBAction func done(sender: AnyObject) {
|
||||
// MARK: - Setups
|
||||
|
||||
private func setupNavigationBar() {
|
||||
navigationItem.leftBarButtonItem = UIBarButtonItem(customView: UIImageView(image: UIImage(named: "sap_logo")))
|
||||
}
|
||||
|
||||
private func setupVersion() {
|
||||
versionDescriptionLabel.text = NSLocalizedString("Version", comment: "")
|
||||
versionLabel.text = NSBundle.mainBundle().infoDictionary?["CFBundleVersion"] as? String ?? "-"
|
||||
}
|
||||
|
||||
// MARK: - Actions
|
||||
|
||||
@IBAction func doneButtonTapped(sender: AnyObject) {
|
||||
presentingViewController!.dismissViewControllerAnimated(true, completion: nil)
|
||||
}
|
||||
|
||||
@IBAction func openEULA(sender: AnyObject) {
|
||||
@IBAction func eulaButtonTapped(sender: AnyObject) {
|
||||
UIApplication.sharedApplication().openURL(URLs.EULA)
|
||||
}
|
||||
|
||||
|
||||
@@ -1512,7 +1512,7 @@ Cg
|
||||
<userDefinedRuntimeAttribute type="boolean" keyPath="layer.masksToBounds" value="YES"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="openEULA:" destination="WMr-pC-C12" eventType="touchUpInside" id="PhA-bf-yMV"/>
|
||||
<action selector="eulaButtonTapped:" destination="WMr-pC-C12" eventType="touchUpInside" id="zYu-4g-apZ"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
@@ -1603,7 +1603,7 @@ Cg
|
||||
<navigationItem key="navigationItem" title="About" id="8o6-Yh-CuN">
|
||||
<barButtonItem key="rightBarButtonItem" systemItem="done" id="Bw1-bK-skL">
|
||||
<connections>
|
||||
<action selector="done:" destination="WMr-pC-C12" id="dtz-fc-tKq"/>
|
||||
<action selector="doneButtonTapped:" destination="WMr-pC-C12" id="3lp-4Z-r8w"/>
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
@@ -1739,7 +1739,7 @@ Cg
|
||||
<navigationItem key="navigationItem" title="Settings" id="SbA-xV-4ro">
|
||||
<barButtonItem key="rightBarButtonItem" systemItem="done" id="Ta8-ro-B8t">
|
||||
<connections>
|
||||
<action selector="done:" destination="H1Q-9y-gn2" id="ely-kW-9Sw"/>
|
||||
<action selector="doneButtonTapped:" destination="H1Q-9y-gn2" id="z8A-RW-CAd"/>
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
|
||||
@@ -1,46 +1,21 @@
|
||||
//
|
||||
// BatterySavingController.swift
|
||||
// BatteryManager.swift
|
||||
// SAPTracker
|
||||
//
|
||||
// Created by computing on 07/11/14.
|
||||
// Copyright (c) 2014 com.sap.sailing. All rights reserved.
|
||||
// Created by Raimund Wege on 04.07.16.
|
||||
// Copyright © 2016 com.sap.sailing. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
/* Needs to be sublass of NSObject for receiving NSNotifications */
|
||||
class BatteryManager: NSObject {
|
||||
|
||||
/* NSUserDefaultsKey */
|
||||
private let BatterySavingDefaultsKey = "BatterySaving"
|
||||
|
||||
/* Reference to device needed for reading battery level */
|
||||
private let device = UIDevice.currentDevice()
|
||||
|
||||
/* Minimum battery level for sending data is 20% */
|
||||
private let minBatteryLevel: Float = 0.2
|
||||
|
||||
/* User preference for saving battery */
|
||||
var batterySavingPreference: Bool {
|
||||
get {
|
||||
let preferences = NSUserDefaults.standardUserDefaults()
|
||||
return preferences.boolForKey(BatterySavingDefaultsKey)
|
||||
}
|
||||
set {
|
||||
let preferences = NSUserDefaults.standardUserDefaults()
|
||||
preferences.setBool(newValue, forKey: BatterySavingDefaultsKey)
|
||||
preferences.synchronize()
|
||||
}
|
||||
struct BatteryLevel {
|
||||
static let Min: Float = 0.2
|
||||
}
|
||||
|
||||
/* Is battery saving on? */
|
||||
var batterySaving: Bool {
|
||||
get {
|
||||
return batterySavingPreference || device.batteryLevel < minBatteryLevel && (device.batteryState == UIDeviceBatteryState.Unplugged || device.batteryState == UIDeviceBatteryState.Unknown)
|
||||
}
|
||||
}
|
||||
|
||||
/* Singleton */
|
||||
|
||||
private let device: UIDevice!
|
||||
|
||||
class var sharedManager: BatteryManager {
|
||||
struct Singleton {
|
||||
static let sharedManager = BatteryManager()
|
||||
@@ -48,11 +23,26 @@ class BatteryManager: NSObject {
|
||||
return Singleton.sharedManager
|
||||
}
|
||||
|
||||
/* Register for battery events */
|
||||
override init() {
|
||||
device = UIDevice.currentDevice()
|
||||
super.init()
|
||||
|
||||
// register for battery events
|
||||
device.batteryMonitoringEnabled = true;
|
||||
setupDevice()
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Setup
|
||||
|
||||
private func setupDevice() {
|
||||
device.batteryMonitoringEnabled = true
|
||||
}
|
||||
|
||||
// MARK: - Properties
|
||||
|
||||
var batterySaving: Bool { get { return Preferences.batterySaving || forceBatterySaving() } }
|
||||
|
||||
// MARK: - Helper
|
||||
|
||||
private func forceBatterySaving() -> Bool {
|
||||
return device.batteryLevel < BatteryLevel.Min && (device.batteryState == .Unplugged || device.batteryState == .Unknown)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -52,4 +52,16 @@ class Preferences: NSObject {
|
||||
return uuid
|
||||
}()
|
||||
|
||||
// MARK: - BatterySaving
|
||||
|
||||
class var batterySaving: Bool {
|
||||
get {
|
||||
return preferences.boolForKey(PreferenceKey.BatterySaving)
|
||||
}
|
||||
set(value) {
|
||||
preferences.setBool(value, forKey: PreferenceKey.BatterySaving)
|
||||
preferences.synchronize()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,8 +2,8 @@
|
||||
// SettingsViewController.swift
|
||||
// SAPTracker
|
||||
//
|
||||
// Created by computing on 10/11/14.
|
||||
// Copyright (c) 2014 com.sap.sailing. All rights reserved.
|
||||
// Created by Raimund Wege on 04.07.16.
|
||||
// Copyright © 2016 com.sap.sailing. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
@@ -15,20 +15,32 @@ class SettingsViewController: UITableViewController {
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
batterySavingSwitch.setOn(BatteryManager.sharedManager.batterySavingPreference, animated: true)
|
||||
|
||||
// add logo to top left
|
||||
let imageView = UIImageView(image: UIImage(named: "sap_logo"))
|
||||
let barButtonItem = UIBarButtonItem(customView: imageView)
|
||||
navigationItem.leftBarButtonItem = barButtonItem
|
||||
self.deviceIdentifierLabel.text = Preferences.uuid
|
||||
}
|
||||
|
||||
@IBAction func batterySavingChanged(sender: UISwitch) {
|
||||
BatteryManager.sharedManager.batterySavingPreference = sender.on
|
||||
setupBatterySavingSwitch()
|
||||
setupDeviceIdentifierLabel()
|
||||
setupNavigationBar()
|
||||
}
|
||||
|
||||
@IBAction func done(sender: AnyObject) {
|
||||
// MARK: - Setups
|
||||
|
||||
private func setupBatterySavingSwitch() {
|
||||
batterySavingSwitch.setOn(Preferences.batterySaving, animated: true)
|
||||
}
|
||||
|
||||
private func setupDeviceIdentifierLabel() {
|
||||
deviceIdentifierLabel.text = Preferences.uuid
|
||||
}
|
||||
|
||||
private func setupNavigationBar() {
|
||||
navigationItem.leftBarButtonItem = UIBarButtonItem(customView: UIImageView(image: UIImage(named: "sap_logo")))
|
||||
}
|
||||
|
||||
// MARK: - Actions
|
||||
|
||||
@IBAction func batterySavingChanged(sender: UISwitch) {
|
||||
Preferences.batterySaving = sender.on
|
||||
}
|
||||
|
||||
@IBAction func doneButtonTapped(sender: AnyObject) {
|
||||
presentingViewController!.dismissViewControllerAnimated(true, completion: nil)
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user