Add demo instance, remove public manifest

This commit is contained in:
Arkadiusz Fal
2022-10-26 13:11:35 +02:00
parent 8ab6a0fa89
commit 1fe01808a4
16 changed files with 488 additions and 58 deletions

View File

@@ -7,6 +7,7 @@ final class AccountsModel: ObservableObject {
@Published private var invidious = InvidiousAPI()
@Published private var piped = PipedAPI()
@Published private var demo = DemoAppAPI()
@Published var publicAccount: Account?
@@ -33,7 +34,14 @@ final class AccountsModel: ObservableObject {
}
var api: VideosAPI {
app == .piped ? piped : invidious
switch app {
case .piped:
return piped
case .invidious:
return invidious
case .demoApp:
return demo
}
}
var isEmpty: Bool {
@@ -44,6 +52,10 @@ final class AccountsModel: ObservableObject {
!isEmpty && !current.anonymous && api.signedIn
}
var isDemo: Bool {
current?.app == .demoApp
}
init() {
cancellables.append(
invidious.objectWillChange.sink { [weak self] _ in self?.objectWillChange.send() }
@@ -79,6 +91,8 @@ final class AccountsModel: ObservableObject {
invidious.setAccount(account)
case .piped:
piped.setAccount(account)
case .demoApp:
break
}
Defaults[.lastAccountIsPublic] = account.isPublic