File tree Expand file tree Collapse file tree 3 files changed +17
-22
lines changed
app/src/main/java/me/devsaki/hentoid/database Expand file tree Collapse file tree 3 files changed +17
-22
lines changed Original file line number Diff line number Diff line change @@ -351,18 +351,18 @@ object DatabaseMaintenance {
351351 }
352352 db.insertSearchRecords(searchRecords)
353353
354- val imageFiles = db.selectImageFilesWithNullPageUrl ()
354+ val imageFileIds = db.selectImageFileIdsWithNullPageUrl ()
355355 Timber .i(
356356 " Set default value for ImageFile.dbPageUrl field : %s items detected" ,
357- imageFiles .size
357+ imageFileIds .size
358358 )
359- max = imageFiles .size
359+ max = imageFileIds .size
360360 pos = 1f
361- for (c in imageFiles) {
362- c.dbPageUrl = " "
363- withContext(Dispatchers .Main ) { emitter(pos++ / max) }
361+ imageFileIds.chunked(50 ).forEach {
362+ db.resetPageUrlForImageId(it)
363+ withContext(Dispatchers .Main ) { emitter(pos / max) }
364+ pos + = it.size
364365 }
365- db.insertImageFiles(imageFiles)
366366
367367 Timber .i(" Set default ObjectBox properties : done" )
368368 } finally {
Original file line number Diff line number Diff line change @@ -104,11 +104,19 @@ class MaintenanceDAO {
104104 .isNull(SearchRecord_ .entityType).safeFind()
105105 }
106106
107- fun selectImageFilesWithNullPageUrl (): List < ImageFile > {
107+ fun selectImageFileIdsWithNullPageUrl (): Set < Long > {
108108 return ObjectBoxDB .store.boxFor(ImageFile ::class .java).query()
109109 .isNull(ImageFile_ .dbPageUrl)
110110 .or ()
111- .equal(ImageFile_ .dbPageUrl, " " , QueryBuilder .StringOrder .CASE_INSENSITIVE ).safeFind()
111+ .equal(ImageFile_ .dbPageUrl, " " , QueryBuilder .StringOrder .CASE_INSENSITIVE )
112+ .safeFindIds().toSet()
113+ }
114+
115+ fun resetPageUrlForImageId (ids : Collection <Long >) {
116+ val store = ObjectBoxDB .store.boxFor(ImageFile ::class .java)
117+ val imgFiles = store.get(ids)
118+ imgFiles.forEach { it.pageUrl = " " }
119+ store.put(imgFiles)
112120 }
113121
114122 fun selectOrphanQueueRecordIds (): LongArray {
@@ -133,10 +141,6 @@ class MaintenanceDAO {
133141 ObjectBoxDB .insertGroup(g)
134142 }
135143
136- fun updateImageFileUrl (img : ImageFile ) {
137- ObjectBoxDB .updateImageFileUrl(img)
138- }
139-
140144 fun insertImageFiles (imgs : List <ImageFile >) {
141145 ObjectBoxDB .insertImageFiles(imgs)
142146 }
Original file line number Diff line number Diff line change @@ -1651,15 +1651,6 @@ object ObjectBoxDB {
16511651 store.boxFor(ImageFile ::class .java).put(imgs)
16521652 }
16531653
1654- fun updateImageFileUrl (image : ImageFile ) {
1655- val imgBox = store.boxFor(ImageFile ::class .java)
1656- val img = imgBox[image.id]
1657- if (img != null ) {
1658- img.url = image.url
1659- imgBox.put(img)
1660- }
1661- }
1662-
16631654 fun updateImageFileUri (locations : Map <Long , String >) {
16641655 val imgBox = store.boxFor(ImageFile ::class .java)
16651656 store.runInTx {
You can’t perform that action at this time.
0 commit comments