Skip to content
This repository was archived by the owner on Sep 15, 2023. It is now read-only.

Commit 0e18e15

Browse files
always present news on homescreen if new
1 parent e7ef6b8 commit 0e18e15

3 files changed

Lines changed: 34 additions & 1 deletion

File tree

CovidCertificate/SharedLogic/Networking/Config/ConfigResponseBody.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,3 +272,15 @@ extension ConfigResponseBody.VaccinationBookingInfo {
272272
&& impfcheckUrl != nil
273273
}
274274
}
275+
276+
#if VERIFIER
277+
extension ConfigResponseBody {
278+
var hasNews: Bool {
279+
return covidCertificateNewsText != nil
280+
}
281+
282+
var newsKey: String? {
283+
return covidCertificateNewsText?.value(for: "de")
284+
}
285+
}
286+
#endif

Verifier/Logic/User/VerifierUserStorage.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@ class VerifierUserStorage {
3636
let validPeriod = ConfigManager.currentConfig?.checkModeReselectAfterHours ?? Self.checkModeValidPeriodHours
3737
return Date() > last.addingTimeInterval(TimeInterval(60 * 60 * validPeriod))
3838
}
39+
40+
@UBUserDefault(key: "verifier.user.lastshownnews", defaultValue: nil)
41+
var lastShownNews: String?
3942
}

Verifier/Screens/Homescreen/VerifierHomescreenViewController.swift

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,10 +214,14 @@ class VerifierHomescreenViewController: HomescreenBaseViewController {
214214

215215
var hasInfoButton = false
216216
if let config = ConfigManager.currentConfig {
217-
hasInfoButton = config.covidCertificateNewsText != nil
217+
hasInfoButton = config.hasNews
218218
}
219219

220220
infoButtonContainerView.ub_setHidden(!hasInfoButton)
221+
222+
if shouldShowNewsInfoBox() {
223+
presentInfoBox()
224+
}
221225
}
222226

223227
@objc private func userScannedWithUnknownMode() {
@@ -229,11 +233,25 @@ class VerifierHomescreenViewController: HomescreenBaseViewController {
229233
present(alert, animated: true)
230234
}
231235

236+
private func shouldShowNewsInfoBox() -> Bool {
237+
// check if there are news
238+
guard let config = ConfigManager.currentConfig, config.hasNews else { return false }
239+
240+
if let lastNews = VerifierUserStorage.shared.lastShownNews, let key = config.newsKey,
241+
key == lastNews {
242+
return false
243+
}
244+
245+
return true
246+
}
247+
232248
private func presentInfoBox() {
233249
guard let config = ConfigManager.currentConfig,
234250
let news = config.infoCovidCertificateNews?.value
235251
else { return }
236252

253+
VerifierUserStorage.shared.lastShownNews = config.newsKey
254+
237255
infoPopupView?.removeFromSuperview()
238256
let iconTexts: [IconText] = news.newsItems.compactMap {
239257
guard let img = UIImage(named: $0.iconIos) else { return nil }

0 commit comments

Comments
 (0)