mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Check category order before restoring from backup
Closes #632 Co-authored-by: Cologler <10906962+Cologler@users.noreply.github.com>
This commit is contained in:
		@@ -17,14 +17,20 @@ class CategoriesRestorer(
 | 
			
		||||
        if (backupCategories.isNotEmpty()) {
 | 
			
		||||
            val dbCategories = getCategories.await()
 | 
			
		||||
            val dbCategoriesByName = dbCategories.associateBy { it.name }
 | 
			
		||||
            var nextOrder = dbCategories.maxOfOrNull { it.order }?.plus(1) ?: 0
 | 
			
		||||
 | 
			
		||||
            val categories = backupCategories.map {
 | 
			
		||||
                dbCategoriesByName[it.name]
 | 
			
		||||
                    ?: handler.awaitOneExecutable {
 | 
			
		||||
                        categoriesQueries.insert(it.name, it.order, it.flags)
 | 
			
		||||
            val categories = backupCategories
 | 
			
		||||
                .sortedBy { it.order }
 | 
			
		||||
                .map {
 | 
			
		||||
                    val dbCategory = dbCategoriesByName[it.name]
 | 
			
		||||
                    if (dbCategory != null) return@map dbCategory
 | 
			
		||||
                    val order = nextOrder++
 | 
			
		||||
                    handler.awaitOneExecutable {
 | 
			
		||||
                        categoriesQueries.insert(it.name, order, it.flags)
 | 
			
		||||
                        categoriesQueries.selectLastInsertedRowId()
 | 
			
		||||
                    }.let { id -> it.toCategory(id) }
 | 
			
		||||
            }
 | 
			
		||||
                    }
 | 
			
		||||
                        .let { id -> it.toCategory(id).copy(order = order) }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            libraryPreferences.categorizedDisplaySettings().set(
 | 
			
		||||
                (dbCategories + categories)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user