Skip to content

Commit 97ad18e

Browse files
authored
Merge pull request #31 from johnchoi96/1.2
1.2
2 parents 9514585 + a4e2b5b commit 97ad18e

File tree

4 files changed

+146
-15
lines changed

4 files changed

+146
-15
lines changed

EmployeeManager.xcodeproj/project.pbxproj

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@
168168
D22C7A7D247372FE00FA5DFC /* Info.plist */,
169169
D2454BA024B1A8BA00624B37 /* GoogleService-Info.plist */,
170170
D22C7A8E2473894D00FA5DFC /* Constants.swift */,
171-
D2454B9824AD8F8600624B37 /* GoogleService-Info.plist */,
172171
D24ABC77248C834900016D2E /* Localizable.strings */,
173172
);
174173
path = EmployeeManager;
@@ -642,15 +641,15 @@
642641
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
643642
CODE_SIGN_ENTITLEMENTS = EmployeeManager/Employees.entitlements;
644643
CODE_SIGN_STYLE = Automatic;
645-
CURRENT_PROJECT_VERSION = 200712;
644+
CURRENT_PROJECT_VERSION = 200719;
646645
DEVELOPMENT_TEAM = 2JDGUK4DRH;
647646
INFOPLIST_FILE = EmployeeManager/Info.plist;
648647
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
649648
LD_RUNPATH_SEARCH_PATHS = (
650649
"$(inherited)",
651650
"@executable_path/Frameworks",
652651
);
653-
MARKETING_VERSION = 1.1;
652+
MARKETING_VERSION = 1.2;
654653
PRODUCT_BUNDLE_IDENTIFIER = io.github.johnchoi96.EmployeeManager;
655654
PRODUCT_NAME = Employees;
656655
SWIFT_VERSION = 5.0;
@@ -665,15 +664,15 @@
665664
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
666665
CODE_SIGN_ENTITLEMENTS = EmployeeManager/Employees.entitlements;
667666
CODE_SIGN_STYLE = Automatic;
668-
CURRENT_PROJECT_VERSION = 200712;
667+
CURRENT_PROJECT_VERSION = 200719;
669668
DEVELOPMENT_TEAM = 2JDGUK4DRH;
670669
INFOPLIST_FILE = EmployeeManager/Info.plist;
671670
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
672671
LD_RUNPATH_SEARCH_PATHS = (
673672
"$(inherited)",
674673
"@executable_path/Frameworks",
675674
);
676-
MARKETING_VERSION = 1.1;
675+
MARKETING_VERSION = 1.2;
677676
PRODUCT_BUNDLE_IDENTIFIER = io.github.johnchoi96.EmployeeManager;
678677
PRODUCT_NAME = Employees;
679678
SWIFT_VERSION = 5.0;

EmployeeManager/Controllers/EmployeeDetailViewController.swift

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,21 @@ class EmployeeDetailViewController: UIViewController {
2525

2626
@IBOutlet weak var middleNameStackView: UIStackView!
2727

28+
@IBOutlet weak var sliderStack: UIStackView!
29+
2830
var employee: Employee!
2931

32+
@IBOutlet weak var hoursInputSegmentControl: UISegmentedControl!
33+
34+
@IBOutlet weak var hourSlider: UISlider!
35+
@IBOutlet weak var minuteSlider: UISlider!
36+
@IBOutlet weak var hourLabel: UILabel!
37+
@IBOutlet weak var minuteLabel: UILabel!
38+
39+
let hapticFeedback = UINotificationFeedbackGenerator()
40+
41+
let selectionFeedback = UISelectionFeedbackGenerator()
42+
3043
override func viewDidLoad() {
3144
super.viewDidLoad()
3245

@@ -44,6 +57,18 @@ class EmployeeDetailViewController: UIViewController {
4457
idLabel.text = "\(employee.id) " // 4 spaces at the end for label rotation
4558
payRateLabel.text = String(format: "$%.2f", employee.payRate)
4659
payCheckLabel.text = String(format: "$%.2f", employee.getPaycheck(hours: 1, minutes: 0))
60+
61+
// set up slider view
62+
sliderStack.isHidden = true
63+
hourSlider.maximumValue = 200
64+
hourSlider.minimumValue = 0
65+
minuteSlider.maximumValue = 59
66+
minuteSlider.minimumValue = 0
67+
68+
hourSlider.value = 1
69+
minuteSlider.value = 0
70+
71+
hapticFeedback.prepare()
4772
}
4873

4974
override func viewDidAppear(_ animated: Bool) {
@@ -59,6 +84,9 @@ class EmployeeDetailViewController: UIViewController {
5984
payrateLabel.text = NSLocalizedString("pay rate label", comment: "Pay rate label")
6085
hoursWorkedLabel.text = NSLocalizedString("hours worked label", comment: "Hours worked label")
6186
paycheckLabel.text = NSLocalizedString("pay check label", comment: "Pay check label")
87+
88+
hoursInputSegmentControl.setTitle("Time Picker", forSegmentAt: 0)
89+
hoursInputSegmentControl.setTitle("Time Slider", forSegmentAt: 1)
6290
}
6391

6492
@IBAction func timeChanged(_ sender: UIDatePicker) {
@@ -78,7 +106,37 @@ class EmployeeDetailViewController: UIViewController {
78106
let alert = UIAlertController(title: NSLocalizedString("copied confirmation alert", comment: ""), message: "", preferredStyle: .alert)
79107
let action = UIAlertAction(title: NSLocalizedString("Close message", comment: ""), style: .default, handler: nil)
80108
alert.addAction(action)
81-
present(alert, animated: true, completion: nil)
109+
present(alert, animated: true) {
110+
self.hapticFeedback.notificationOccurred(.success)
111+
}
112+
}
113+
114+
@IBAction func hoursModeChanged(_ sender: UISegmentedControl) {
115+
if sender.selectedSegmentIndex == 0 {
116+
hoursWorked.isHidden = false
117+
sliderStack.isHidden = true
118+
} else {
119+
selectionFeedback.prepare()
120+
hoursWorked.isHidden = true
121+
sliderStack.isHidden = false
122+
}
123+
}
124+
125+
@IBAction func sliderChanged(_ sender: UISlider) {
126+
let value = Int(sender.value)
127+
// if sender tag is 0, hour slider. if sender tag is 1, minute slider
128+
if sender.tag == 0 {
129+
hourLabel.text = String(value) + " " + (value == 1 ? "Hour" : "Hours")
130+
} else {
131+
minuteLabel.text = String(value) + " " + (value == 1 ? "Minute" : "Minutes")
132+
}
133+
let hour = Int(hourLabel.text!.split(separator: " ")[0])!
134+
let minute = Int(minuteLabel.text!.split(separator: " ")[0])!
135+
let paycheck = employee.getPaycheck(hours: hour, minutes: minute)
136+
payCheckLabel.text = String(format: "$%.2f", paycheck)
137+
138+
// haptic feedback
139+
selectionFeedback.selectionChanged()
82140
}
83141

84142
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

0 commit comments

Comments
 (0)