Present suggestions when user visits onboarding and doesn't follow people (IOS-157)
This commit is contained in:
parent
11bab5e337
commit
e20b2e4e11
|
@ -240,6 +240,19 @@ extension HomeTimelineViewController {
|
||||||
.sink { [weak self] isEmpty in
|
.sink { [weak self] isEmpty in
|
||||||
if isEmpty {
|
if isEmpty {
|
||||||
self?.showEmptyView()
|
self?.showEmptyView()
|
||||||
|
|
||||||
|
let userDoesntFollowPeople: Bool
|
||||||
|
if let managedObjectContext = self?.context.managedObjectContext,
|
||||||
|
let me = self?.authContext.mastodonAuthenticationBox.authenticationRecord.object(in: managedObjectContext)?.user {
|
||||||
|
userDoesntFollowPeople = me.followersCount == 0
|
||||||
|
} else {
|
||||||
|
userDoesntFollowPeople = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self?.viewModel.presentedSuggestions == false) && userDoesntFollowPeople {
|
||||||
|
self?.findPeopleButtonPressed(self)
|
||||||
|
self?.viewModel.presentedSuggestions = true
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
self?.emptyView.removeFromSuperview()
|
self?.emptyView.removeFromSuperview()
|
||||||
}
|
}
|
||||||
|
@ -285,8 +298,6 @@ extension HomeTimelineViewController {
|
||||||
override func viewDidAppear(_ animated: Bool) {
|
override func viewDidAppear(_ animated: Bool) {
|
||||||
super.viewDidAppear(animated)
|
super.viewDidAppear(animated)
|
||||||
|
|
||||||
viewModel.viewDidAppear.send()
|
|
||||||
|
|
||||||
if let timestamp = viewModel.lastAutomaticFetchTimestamp {
|
if let timestamp = viewModel.lastAutomaticFetchTimestamp {
|
||||||
let now = Date()
|
let now = Date()
|
||||||
if now.timeIntervalSince(timestamp) > 60 {
|
if now.timeIntervalSince(timestamp) > 60 {
|
||||||
|
@ -376,7 +387,7 @@ extension HomeTimelineViewController {
|
||||||
|
|
||||||
extension HomeTimelineViewController {
|
extension HomeTimelineViewController {
|
||||||
|
|
||||||
@objc private func findPeopleButtonPressed(_ sender: PrimaryActionButton) {
|
@objc private func findPeopleButtonPressed(_ sender: Any?) {
|
||||||
let suggestionAccountViewModel = SuggestionAccountViewModel(context: context, authContext: viewModel.authContext)
|
let suggestionAccountViewModel = SuggestionAccountViewModel(context: context, authContext: viewModel.authContext)
|
||||||
suggestionAccountViewModel.delegate = viewModel
|
suggestionAccountViewModel.delegate = viewModel
|
||||||
_ = coordinator.present(
|
_ = coordinator.present(
|
||||||
|
|
|
@ -30,7 +30,8 @@ final class HomeTimelineViewModel: NSObject {
|
||||||
let fetchedResultsController: FeedFetchedResultsController
|
let fetchedResultsController: FeedFetchedResultsController
|
||||||
let homeTimelineNavigationBarTitleViewModel: HomeTimelineNavigationBarTitleViewModel
|
let homeTimelineNavigationBarTitleViewModel: HomeTimelineNavigationBarTitleViewModel
|
||||||
let listBatchFetchViewModel = ListBatchFetchViewModel()
|
let listBatchFetchViewModel = ListBatchFetchViewModel()
|
||||||
let viewDidAppear = PassthroughSubject<Void, Never>()
|
|
||||||
|
var presentedSuggestions = false
|
||||||
|
|
||||||
@Published var lastAutomaticFetchTimestamp: Date? = nil
|
@Published var lastAutomaticFetchTimestamp: Date? = nil
|
||||||
@Published var scrollPositionRecord: ScrollPositionRecord? = nil
|
@Published var scrollPositionRecord: ScrollPositionRecord? = nil
|
||||||
|
|
Loading…
Reference in New Issue