Do not fetch all streams when disabling notifications for a channel
This commit is contained in:
parent
01f3ed0e5e
commit
e68d49e7df
1 changed files with 12 additions and 2 deletions
|
@ -75,7 +75,12 @@ class SubscriptionManager(context: Context) {
|
||||||
Completable.fromAction {
|
Completable.fromAction {
|
||||||
entity.notificationMode = mode
|
entity.notificationMode = mode
|
||||||
subscriptionTable().update(entity)
|
subscriptionTable().update(entity)
|
||||||
}.andThen(rememberLastStream(entity))
|
}.apply {
|
||||||
|
if (mode != NotificationMode.DISABLED) {
|
||||||
|
// notifications have just been enabled, mark all streams as "old"
|
||||||
|
andThen(rememberAllStreams(entity))
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,7 +113,12 @@ class SubscriptionManager(context: Context) {
|
||||||
subscriptionTable.delete(subscriptionEntity)
|
subscriptionTable.delete(subscriptionEntity)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun rememberLastStream(subscription: SubscriptionEntity): Completable {
|
/**
|
||||||
|
* Fetches the list of videos for the provided channel and saves them in the database, so that
|
||||||
|
* they will be considered as "old"/"already seen" streams and the user will never notified
|
||||||
|
* about any one of them.
|
||||||
|
*/
|
||||||
|
private fun rememberAllStreams(subscription: SubscriptionEntity): Completable {
|
||||||
return ExtractorHelper.getChannelInfo(subscription.serviceId, subscription.url, false)
|
return ExtractorHelper.getChannelInfo(subscription.serviceId, subscription.url, false)
|
||||||
.map { channel -> channel.relatedItems.map { stream -> StreamEntity(stream) } }
|
.map { channel -> channel.relatedItems.map { stream -> StreamEntity(stream) } }
|
||||||
.flatMapCompletable { entities ->
|
.flatMapCompletable { entities ->
|
||||||
|
|
Loading…
Reference in a new issue