Create a digest opened event on iOS
This commit is contained in:
@ -76,12 +76,17 @@ public class FullScreenDigestViewModel: ObservableObject {
|
|||||||
self.isRunning = digest.jobState == "RUNNING" || digest.jobState == "PENDING"
|
self.isRunning = digest.jobState == "RUNNING" || digest.jobState == "PENDING"
|
||||||
self.hasError = digest.jobState == "FAILED"
|
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
|
// Don't think we need to do anything here
|
||||||
} else {
|
} else {
|
||||||
let chapterData = self.chapterInfo?.map { $0.1 }
|
let chapterData = self.chapterInfo?.map { $0.1 }
|
||||||
audioController.play(itemAudioProperties: DigestAudioItem(digest: digest, chapters: chapterData ?? []))
|
audioController.play(itemAudioProperties: DigestAudioItem(digest: digest, chapters: chapterData ?? []))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EventTracker.track(
|
||||||
|
.digestOpened(digestID: digest.id)
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
hasError = true
|
hasError = true
|
||||||
}
|
}
|
||||||
@ -200,7 +205,7 @@ struct FullScreenDigestView: View {
|
|||||||
await viewModel.load(dataService: dataService, audioController: audioController)
|
await viewModel.load(dataService: dataService, audioController: audioController)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var jobRunningText: some View {
|
var jobRunningText: some View {
|
||||||
VStack {
|
VStack {
|
||||||
Spacer()
|
Spacer()
|
||||||
|
|||||||
@ -6,6 +6,7 @@ public enum TrackableEvent {
|
|||||||
case backgroundFetch(jobStatus: BackgroundFetchJobStatus, itemCount: Int, secondsElapsed: Int)
|
case backgroundFetch(jobStatus: BackgroundFetchJobStatus, itemCount: Int, secondsElapsed: Int)
|
||||||
case audioSessionStart(linkID: String, voice: String, voiceProvider: String)
|
case audioSessionStart(linkID: String, voice: String, voiceProvider: String)
|
||||||
case audioSessionEnd(linkID: String, timeElapsed: Double)
|
case audioSessionEnd(linkID: String, timeElapsed: Double)
|
||||||
|
case digestOpened(digestID: String)
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum BackgroundFetchJobStatus: String {
|
public enum BackgroundFetchJobStatus: String {
|
||||||
@ -28,6 +29,8 @@ public extension TrackableEvent {
|
|||||||
return "audio_session_start"
|
return "audio_session_start"
|
||||||
case .audioSessionEnd:
|
case .audioSessionEnd:
|
||||||
return "audio_session_end"
|
return "audio_session_end"
|
||||||
|
case .digestOpened:
|
||||||
|
return "digest_opened"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,6 +62,11 @@ public extension TrackableEvent {
|
|||||||
"link": linkID,
|
"link": linkID,
|
||||||
"timeElapsed": String(timeElapsed)
|
"timeElapsed": String(timeElapsed)
|
||||||
]
|
]
|
||||||
|
case let .digestOpened(digestID: digestID):
|
||||||
|
return [
|
||||||
|
"channel": "push",
|
||||||
|
"digestID": digestID
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user