Add full-server activity to iOS home (#65)
This commit is contained in:
@@ -119,6 +119,13 @@ final class HomeViewController: RefreshingTableViewController {
|
||||
NotificationsViewController(context: self.context),
|
||||
animated: true
|
||||
)
|
||||
},
|
||||
onServerActivity: { [weak self] in
|
||||
guard let self else { return }
|
||||
self.navigationController?.pushViewController(
|
||||
ServerActivityViewController(context: self.context),
|
||||
animated: true
|
||||
)
|
||||
}
|
||||
)
|
||||
} }
|
||||
@@ -148,7 +155,7 @@ final class HomeViewController: RefreshingTableViewController {
|
||||
cell,
|
||||
title: row.title,
|
||||
detail: "\(row.detail)\n\(row.meta)",
|
||||
image: context.symbol(symbolName(for: row.icon))
|
||||
image: context.symbol(activitySymbolName(for: row.icon))
|
||||
)
|
||||
cell.accessoryType = row.target == .none ? .none : .disclosureIndicator
|
||||
return cell
|
||||
@@ -173,16 +180,17 @@ final class HomeViewController: RefreshingTableViewController {
|
||||
: nil
|
||||
}
|
||||
|
||||
private func symbolName(for icon: ActivityIcon) -> String {
|
||||
switch icon {
|
||||
case .pullRequest: return "arrow.triangle.pull"
|
||||
case .issue: return "exclamationmark.circle"
|
||||
case .branch: return "arrow.triangle.branch"
|
||||
case .tag: return "tag"
|
||||
case .push: return "arrow.up.circle"
|
||||
case .release: return "shippingbox"
|
||||
case .repository: return "books.vertical"
|
||||
}
|
||||
}
|
||||
|
||||
func activitySymbolName(for icon: ActivityIcon) -> String {
|
||||
switch icon {
|
||||
case .pullRequest: return "arrow.triangle.pull"
|
||||
case .issue: return "exclamationmark.circle"
|
||||
case .branch: return "arrow.triangle.branch"
|
||||
case .tag: return "tag"
|
||||
case .push: return "arrow.up.circle"
|
||||
case .release: return "shippingbox"
|
||||
case .repository: return "books.vertical"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,7 +202,8 @@ final class HeatmapView: UIView {
|
||||
page: HomePage,
|
||||
selectedFilter: Int,
|
||||
onFilter: @escaping (Int) -> Void,
|
||||
onNotifications: @escaping () -> Void
|
||||
onNotifications: @escaping () -> Void,
|
||||
onServerActivity: @escaping () -> Void
|
||||
) {
|
||||
cells = page.heatCells
|
||||
super.init(frame: CGRect(x: 0, y: 0, width: 0, height: 180))
|
||||
@@ -241,6 +250,15 @@ final class HeatmapView: UIView {
|
||||
button.widthAnchor.constraint(equalToConstant: 44).isActive = true
|
||||
filters.addArrangedSubview(button)
|
||||
}
|
||||
let serverActivity = UIButton(
|
||||
type: .custom,
|
||||
primaryAction: UIAction { _ in onServerActivity() }
|
||||
)
|
||||
serverActivity.setImage(UIImage(systemName: "person.3"), for: .normal)
|
||||
serverActivity.tintColor = .secondaryLabel
|
||||
serverActivity.accessibilityLabel = "Server Activity"
|
||||
serverActivity.widthAnchor.constraint(equalToConstant: 44).isActive = true
|
||||
filters.addArrangedSubview(serverActivity)
|
||||
let notifications = UIButton(
|
||||
type: .custom,
|
||||
primaryAction: UIAction { _ in onNotifications() }
|
||||
|
||||
Reference in New Issue
Block a user