mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 15:23:00 +00:00 
			
		
		
		
	Improve subscription upsert methods
This commit is contained in:
		 Isira Seneviratne
					Isira Seneviratne
				
			
				
					committed by
					
						 Profpatsch
						Profpatsch
					
				
			
			
				
	
			
			
			 Profpatsch
						Profpatsch
					
				
			
						parent
						
							095155d35f
						
					
				
				
					commit
					60586c90d6
				
			| @@ -90,7 +90,7 @@ abstract class SubscriptionDAO : BasicDAO<SubscriptionEntity> { | ||||
|     internal abstract fun silentInsertAllInternal(entities: List<SubscriptionEntity>): List<Long> | ||||
|  | ||||
|     @Transaction | ||||
|     open fun upsertAll(entities: List<SubscriptionEntity>): List<SubscriptionEntity> { | ||||
|     open fun upsertAll(entities: List<SubscriptionEntity>) { | ||||
|         val insertUidList = silentInsertAllInternal(entities) | ||||
|  | ||||
|         insertUidList.forEachIndexed { index: Int, uidFromInsert: Long -> | ||||
| @@ -106,7 +106,5 @@ abstract class SubscriptionDAO : BasicDAO<SubscriptionEntity> { | ||||
|                 update(entity) | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return entities | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -48,25 +48,18 @@ class SubscriptionManager(context: Context) { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     fun upsertAll(infoList: List<Pair<ChannelInfo, List<ChannelTabInfo>>>): List<SubscriptionEntity> { | ||||
|         val listEntities = subscriptionTable.upsertAll( | ||||
|             infoList.map { SubscriptionEntity.from(it.first) } | ||||
|         ) | ||||
|     fun upsertAll(infoList: List<Pair<ChannelInfo, ChannelTabInfo>>) { | ||||
|         val listEntities = infoList.map { SubscriptionEntity.from(it.first) } | ||||
|         subscriptionTable.upsertAll(listEntities) | ||||
|  | ||||
|         database.runInTransaction { | ||||
|             infoList.forEachIndexed { index, info -> | ||||
|                 info.second.forEach { | ||||
|                     feedDatabaseManager.upsertAll( | ||||
|                         listEntities[index].uid, | ||||
|                         it.relatedItems.filterIsInstance<StreamInfoItem>() | ||||
|                     ) | ||||
|                 val streams = info.second.relatedItems.filterIsInstance<StreamInfoItem>() | ||||
|                 feedDatabaseManager.upsertAll(listEntities[index].uid, streams) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|         return listEntities | ||||
|     } | ||||
|  | ||||
|     fun updateChannelInfo(info: ChannelInfo): Completable = | ||||
|         subscriptionTable.getSubscription(info.serviceId, info.url) | ||||
|             .flatMapCompletable { | ||||
|   | ||||
| @@ -77,7 +77,7 @@ class SubscriptionImportWorker( | ||||
|                         val currentIndex = mutex.withLock { index++ } | ||||
|                         setForeground(createForegroundInfo(title, channelInfo.name, currentIndex, qty)) | ||||
|  | ||||
|                         Pair(channelInfo, listOf(channelTab)) | ||||
|                         Pair(channelInfo, channelTab) | ||||
|                     } | ||||
|                 }.awaitAll() | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user