From a80968f7f6eaaec2198bd896d25039d18a5bcbcf Mon Sep 17 00:00:00 2001 From: Aliaksandr Dvoineu Date: Tue, 11 Apr 2023 13:55:44 +0300 Subject: [PATCH] [KB-2396]: added custom edit domains cell and view controller --- LockdowniOS/AppDelegate.swift | 5 +++ LockdowniOS/BlockListViewController.swift | 2 ++ LockdowniOS/EditDomainsCell.swift | 4 +-- LockdowniOS/EditDomainsViewController.swift | 35 ++++++++------------- 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/LockdowniOS/AppDelegate.swift b/LockdowniOS/AppDelegate.swift index d6261d9..57c691a 100644 --- a/LockdowniOS/AppDelegate.swift +++ b/LockdowniOS/AppDelegate.swift @@ -160,6 +160,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate { application.registerForRemoteNotifications() setupWidgetToggleWorkaround() + // TODO: - Remove after testing viewcontrollers +// self.window = UIWindow(frame: UIScreen.main.bounds) +// self.window?.rootViewController = EditDomainsViewController() +// self.window?.makeKeyAndVisible() + // If not yet agreed to privacy policy, set initial view controller to TitleViewController if (defaults.bool(forKey: kHasShownTitlePage) == false) { // TODO: removed this check because this was causing crashes possibly due to Locale diff --git a/LockdowniOS/BlockListViewController.swift b/LockdowniOS/BlockListViewController.swift index e7f1145..f018c55 100644 --- a/LockdowniOS/BlockListViewController.swift +++ b/LockdowniOS/BlockListViewController.swift @@ -525,6 +525,8 @@ extension BlockListViewController { } @objc func editDomains() { + let controller = EditDomainsViewController() + self.present(controller, animated: true) print("editDomains .....") } } diff --git a/LockdowniOS/EditDomainsCell.swift b/LockdowniOS/EditDomainsCell.swift index 84b099a..f98340a 100644 --- a/LockdowniOS/EditDomainsCell.swift +++ b/LockdowniOS/EditDomainsCell.swift @@ -16,8 +16,8 @@ final class EditDomainsCell: UIView { let title: String? let status: String? - static func userBlocked(domain: String, isSelected: Bool) -> Contents { - let checkMark = isSelected ? UIImage(systemName: "checkmark.circle.fill") : UIImage(systemName: "checkmark.circle") + static func userBlocked(domain: String, isUnselected: Bool) -> Contents { + let checkMark = isUnselected ? UIImage(systemName: "circle") : UIImage(systemName: "checkmark.circle.fill") let image = UIImage(named: "website_icon.png") let status = NSLocalizedString("Blocked", comment: "") return Contents(checkMark: checkMark, icon: image, title: domain, status: status) diff --git a/LockdowniOS/EditDomainsViewController.swift b/LockdowniOS/EditDomainsViewController.swift index f17d0df..926cc40 100644 --- a/LockdowniOS/EditDomainsViewController.swift +++ b/LockdowniOS/EditDomainsViewController.swift @@ -12,7 +12,7 @@ final class EditDomainsViewController: UIViewController { // MARK: - Properties private var didMakeChange = false - private var customBlockedDomains: [(String, Bool)] = [] + var customBlockedDomains: [(String, Bool)] = [] private var titleName = NSLocalizedString("Edit Domains", comment: "") @@ -21,10 +21,6 @@ final class EditDomainsViewController: UIViewController { view.titleLabel.text = NSLocalizedString(titleName, comment: "") view.leftNavButton.setTitle(NSLocalizedString("CLOSE", comment: ""), for: .normal) view.leftNavButton.addTarget(self, action: #selector(closeButtonClicked), for: .touchUpInside) - view.rightNavButton.setTitle(NSLocalizedString("DONE", comment: ""), for: .normal) - view.rightNavButton.titleLabel?.font = fontBold13 - view.rightNavButton.tintColor = .gray - view.rightNavButton.addTarget(self, action: #selector(doneButtonClicked), for: .touchUpInside) return view }() @@ -115,15 +111,19 @@ private extension EditDomainsViewController { } for (domain, status) in customBlockedDomains { + var checkedStatus = status let blockListView = EditDomainsCell() -// var statusChecked = status.toggle() - blockListView.contents = .userBlocked(domain: domain, isSelected: status) + blockListView.contents = .userBlocked(domain: domain, isUnselected: status) let cell = tableView.addRow { (contentView) in contentView.addSubview(blockListView) blockListView.anchors.edges.pin() }.onSelect { [unowned blockListView] in self.didMakeChange = true + checkedStatus.toggle() + blockListView.contents = .userBlocked(domain: domain, isUnselected: checkedStatus) + self.bottomMenu.middleButton.setTitleColor(.tunnelsBlue, for: .normal) + self.bottomMenu.rightButton.setTitleColor(.red, for: .normal) // TODO: - move domains to list } @@ -133,27 +133,18 @@ private extension EditDomainsViewController { } @objc func closeButtonClicked() { - print("Close btn pressed ....") dismiss(animated: true) } - @objc func doneButtonClicked() { - print("doneButtonTapped btn pressed ....") - } - @objc func selectAllddDomains() { -// let cell = CheckboxTableViewCell() -// cell.isChecked = false -// tableView.reloadData() - print("selectAllddDomains btn pressed ....") + let tableView = customBlockedDomainsTableView + tableView.reloadData() } @objc func moveToList() { - print("moveToList btn pressed ....") } @objc func deleteDomains() { - print("deleteDomains btn pressed ....") let alert = UIAlertController(title: NSLocalizedString("Delete Entries?", comment: ""), message: NSLocalizedString("Are you sure you want to remove these domains?", comment: ""), preferredStyle: .alert) @@ -164,10 +155,10 @@ private extension EditDomainsViewController { })) alert.addAction(UIAlertAction(title: NSLocalizedString("Yes, Delete", comment: ""), style: UIAlertAction.Style.destructive, - handler: {(_: UIAlertAction!) in - // Delete action - // tableView.clear() - // tableView.reloadData() + handler: { [weak self] (_) in + guard let self else { return } + self.customBlockedDomainsTableView.clear() + self.customBlockedDomainsTableView.reloadData() })) self.present(alert, animated: true, completion: nil) }