Stub out mark as read and star functionality

This commit is contained in:
Maurice Parker
2020-07-09 16:34:47 -05:00
parent 94f956b41f
commit 3e61c7044b
8 changed files with 95 additions and 18 deletions

View File

@@ -8,6 +8,16 @@
import Foundation
enum ArticleReadButtonState {
case on
case off
}
enum ArticleStarButtonState {
case on
case off
}
enum ArticleExtractorButtonState {
case error
case animated

View File

@@ -20,14 +20,23 @@ protocol ArticleModelDelegate: class {
func selectArticle(_: ArticleModel, article: Article)
}
protocol ArticleManager: class {
var currentArticle: Article? { get }
}
class ArticleModel: ObservableObject {
weak var articleManager: ArticleManager?
weak var delegate: ArticleModelDelegate?
var webViewProvider: WebViewProvider? {
return delegate?.articleModelWebViewProvider
}
var currentArticle: Article? {
return articleManager?.currentArticle
}
// MARK: API
func findPrevArticle(_ article: Article) -> Article? {
@@ -41,6 +50,19 @@ class ArticleModel: ObservableObject {
func selectArticle(_ article: Article) {
delegate?.selectArticle(self, article: article)
}
func toggleReadForCurrentArticle() {
if let article = currentArticle {
markArticles([article], statusKey: .starred, flag: !article.status.starred)
}
}
func toggleStarForCurrentArticle() {
if let article = currentArticle {
markArticles([article], statusKey: .starred, flag: !article.status.starred)
}
}
}