diff --git a/Application/To-Do.xcodeproj/project.pbxproj b/Application/To-Do.xcodeproj/project.pbxproj index 33f0449..4b9801a 100644 --- a/Application/To-Do.xcodeproj/project.pbxproj +++ b/Application/To-Do.xcodeproj/project.pbxproj @@ -18,6 +18,7 @@ 5BBE55C925245DBF00090F87 /* TaskDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BBE55C825245DBF00090F87 /* TaskDetailsViewController.swift */; }; 5BBE55CB2524623900090F87 /* TextviewBorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BBE55CA2524623900090F87 /* TextviewBorder.swift */; }; 603B4C66252647BD00579EC6 /* ResultsTableController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 603B4C65252647BD00579EC6 /* ResultsTableController.swift */; }; + 60B775552528C6C300833A15 /* Priority.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60B775542528C6C200833A15 /* Priority.swift */; }; AB95E033252712C4008C4E48 /* TaskCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB95E032252712C4008C4E48 /* TaskCell.swift */; }; /* End PBXBuildFile section */ @@ -35,6 +36,7 @@ 5BBE55C825245DBF00090F87 /* TaskDetailsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TaskDetailsViewController.swift; sourceTree = ""; }; 5BBE55CA2524623900090F87 /* TextviewBorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextviewBorder.swift; sourceTree = ""; }; 603B4C65252647BD00579EC6 /* ResultsTableController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResultsTableController.swift; sourceTree = ""; }; + 60B775542528C6C200833A15 /* Priority.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Priority.swift; sourceTree = ""; }; AB95E032252712C4008C4E48 /* TaskCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TaskCell.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -81,6 +83,7 @@ children = ( 5BBE55A62523A42700090F87 /* To_Do.xcdatamodeld */, 07F46C8425277C7E007DC6AC /* SortTypes.swift */, + 60B775542528C6C200833A15 /* Priority.swift */, ); path = Model; sourceTree = ""; @@ -191,6 +194,7 @@ 07F46C8525277C7E007DC6AC /* SortTypes.swift in Sources */, 5BBE55B72523A90A00090F87 /* TodoViewController.swift in Sources */, 5BBE559E2523A42700090F87 /* AppDelegate.swift in Sources */, + 60B775552528C6C300833A15 /* Priority.swift in Sources */, 5BBE55A02523A42700090F87 /* SceneDelegate.swift in Sources */, 5BBE55A82523A42700090F87 /* To_Do.xcdatamodeld in Sources */, 5BBE55CB2524623900090F87 /* TextviewBorder.swift in Sources */, diff --git a/Application/To-Do/Controller/TaskDetailsViewController.swift b/Application/To-Do/Controller/TaskDetailsViewController.swift index 44e3d87..29f73ce 100644 --- a/Application/To-Do/Controller/TaskDetailsViewController.swift +++ b/Application/To-Do/Controller/TaskDetailsViewController.swift @@ -20,6 +20,7 @@ class TaskDetailsViewController: UIViewController{ @IBOutlet weak var subTasksTextView: UITextView! @IBOutlet weak var endDateTextField: UITextField! @IBOutlet weak var saveButton: UIBarButtonItem! + @IBOutlet weak var prioritySegmentedControl: UISegmentedControl! // VARIABLES var task : Task? = nil @@ -76,6 +77,7 @@ class TaskDetailsViewController: UIViewController{ task?.subTasks = subtask task?.dueDate = endDate task?.dueDateTimeStamp = selectedDateTimeStamp ?? 0 + task?.priority = Priority.getPriorityByIndex(index: prioritySegmentedControl.selectedSegmentIndex).rawValue return task } @@ -85,6 +87,8 @@ class TaskDetailsViewController: UIViewController{ taskTitleTextField.text = task.title subTasksTextView.text = task.subTasks endDateTextField.text = task.dueDate + let priority: Priority = Priority(rawValue: task.priority ?? "") ?? Priority.low + prioritySegmentedControl.selectedSegmentIndex = priority.getPriorityIndex() } // IBOUTLET for datepicker diff --git a/Application/To-Do/Controller/TodoViewController.swift b/Application/To-Do/Controller/TodoViewController.swift index 6b2d945..7568114 100644 --- a/Application/To-Do/Controller/TodoViewController.swift +++ b/Application/To-Do/Controller/TodoViewController.swift @@ -163,7 +163,10 @@ class TodoViewController: UITableViewController { let task = todoList[indexPath.row] cell.title.text = task.title cell.subtitle.text = task.dueDate - cell.starImage.isHidden = todoList[indexPath.row].isFavourite ? false : true + /// width adjustment of starImage + cell.starImageWidthConstraint.constant = todoList[indexPath.row].isFavourite ? 32 : 0 + let priority: Priority = Priority(rawValue: task.priority ?? "") ?? Priority.low + cell.priorityImage.image = priority.getImageForPriority() return cell } diff --git a/Application/To-Do/Model/Priority.swift b/Application/To-Do/Model/Priority.swift new file mode 100644 index 0000000..503ba99 --- /dev/null +++ b/Application/To-Do/Model/Priority.swift @@ -0,0 +1,34 @@ +// +// Priority.swift +// To-Do +// +// Created by Amirthy Tejeshwar on 03/10/20. +// Copyright © 2020 Aaryan Kothari. All rights reserved. +// + +import UIKit + +enum Priority: String, CaseIterable { + case low = "LOW" + case medium = "MEDIUM" + case high = "HIGH" + + func getPriorityIndex() -> Int { + return Priority.allCases.firstIndex(of: self)! + } + + func getImageForPriority() -> UIImage? { + switch self { + case .low: + return UIImage(systemName: "exclamationmark") + case .medium: + return UIImage(systemName: "exclamationmark.square") + case .high: + return UIImage(systemName: "exclamationmark.square.fill") + } + } + + static func getPriorityByIndex(index: Int) -> Priority { + return index < Priority.allCases.count ? Priority.allCases[index] : .low + } +} diff --git a/Application/To-Do/Model/To_Do.xcdatamodeld/To_Do.xcdatamodel/contents b/Application/To-Do/Model/To_Do.xcdatamodeld/To_Do.xcdatamodel/contents index 55a809c..8c1415c 100644 --- a/Application/To-Do/Model/To_Do.xcdatamodeld/To_Do.xcdatamodel/contents +++ b/Application/To-Do/Model/To_Do.xcdatamodeld/To_Do.xcdatamodel/contents @@ -1,5 +1,5 @@ - + @@ -9,12 +9,13 @@ + - + \ No newline at end of file diff --git a/Application/To-Do/View/Base.lproj/Main.storyboard b/Application/To-Do/View/Base.lproj/Main.storyboard index 8a62320..50dfdca 100644 --- a/Application/To-Do/View/Base.lproj/Main.storyboard +++ b/Application/To-Do/View/Base.lproj/Main.storyboard @@ -66,11 +66,23 @@ + + + + + + + + + + + + @@ -79,14 +91,17 @@ + + + @@ -100,6 +115,7 @@ + @@ -125,45 +141,53 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + - + + - + - - - - + + + + + + + + + + + + + @@ -241,5 +265,6 @@ + diff --git a/Application/To-Do/View/TaskCell.swift b/Application/To-Do/View/TaskCell.swift index 1d00fbb..62ebcb9 100644 --- a/Application/To-Do/View/TaskCell.swift +++ b/Application/To-Do/View/TaskCell.swift @@ -13,6 +13,8 @@ class TaskCell: UITableViewCell { @IBOutlet weak var title: UILabel! @IBOutlet weak var subtitle: UILabel! @IBOutlet weak var starImage: UIImageView! + @IBOutlet weak var priorityImage: UIImageView! + @IBOutlet weak var starImageWidthConstraint: NSLayoutConstraint! override func awakeFromNib() { super.awakeFromNib()