Create a digest opened event on iOS

This commit is contained in:
Jackson Harper
2024-05-20 21:08:21 +08:00
parent 7ae8d03994
commit 474cb0b9dd
2 changed files with 15 additions and 2 deletions

View File

@ -76,12 +76,17 @@ public class FullScreenDigestViewModel: ObservableObject {
self.isRunning = digest.jobState == "RUNNING" || digest.jobState == "PENDING"
self.hasError = digest.jobState == "FAILED"
if let playingDigest = audioController.itemAudioProperties as? DigestAudioItem, playingDigest.digest.id == digest.id {
if let playingDigest = audioController.itemAudioProperties as? DigestAudioItem,
playingDigest.digest.id == digest.id {
// Don't think we need to do anything here
} else {
let chapterData = self.chapterInfo?.map { $0.1 }
audioController.play(itemAudioProperties: DigestAudioItem(digest: digest, chapters: chapterData ?? []))
}
EventTracker.track(
.digestOpened(digestID: digest.id)
)
} else {
hasError = true
}
@ -200,7 +205,7 @@ struct FullScreenDigestView: View {
await viewModel.load(dataService: dataService, audioController: audioController)
}
}
var jobRunningText: some View {
VStack {
Spacer()

View File

@ -6,6 +6,7 @@ public enum TrackableEvent {
case backgroundFetch(jobStatus: BackgroundFetchJobStatus, itemCount: Int, secondsElapsed: Int)
case audioSessionStart(linkID: String, voice: String, voiceProvider: String)
case audioSessionEnd(linkID: String, timeElapsed: Double)
case digestOpened(digestID: String)
}
public enum BackgroundFetchJobStatus: String {
@ -28,6 +29,8 @@ public extension TrackableEvent {
return "audio_session_start"
case .audioSessionEnd:
return "audio_session_end"
case .digestOpened:
return "digest_opened"
}
}
@ -59,6 +62,11 @@ public extension TrackableEvent {
"link": linkID,
"timeElapsed": String(timeElapsed)
]
case let .digestOpened(digestID: digestID):
return [
"channel": "push",
"digestID": digestID
]
}
}
}