From 2ebe773f119ce05606cd565b87cbc630f5df5fb7 Mon Sep 17 00:00:00 2001 From: crschnick Date: Tue, 26 Aug 2025 12:11:42 +0000 Subject: [PATCH] Make storage cat find more resilient --- .../io/xpipe/app/storage/DataStorage.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/storage/DataStorage.java b/app/src/main/java/io/xpipe/app/storage/DataStorage.java index 848dfefee..4a0ef9718 100644 --- a/app/src/main/java/io/xpipe/app/storage/DataStorage.java +++ b/app/src/main/java/io/xpipe/app/storage/DataStorage.java @@ -1000,23 +1000,30 @@ public abstract class DataStorage { return true; } - var parentCat = - getStoreCategoryIfPresent(parent.get().getCategoryUuid()).orElseThrow(); - var parentCatHierarchy = getCategoryParentHierarchy(parentCat); - var cat = getStoreCategoryIfPresent(entry.getCategoryUuid()).orElseThrow(); - var catHierarchy = getCategoryParentHierarchy(cat); + var parentCat = getStoreCategoryIfPresent(parent.get().getCategoryUuid()); + if (parentCat.isEmpty()) { + return true; + } + + var parentCatHierarchy = getCategoryParentHierarchy(parentCat.get()); + var cat = getStoreCategoryIfPresent(entry.getCategoryUuid()); + if (cat.isEmpty()) { + return true; + } + + var catHierarchy = getCategoryParentHierarchy(cat.get()); var currentContainsBoth = catHierarchy.contains(current) && parentCatHierarchy.contains(current); if (currentContainsBoth) { return false; } - var diffParentCategoryHierarchy = !catHierarchy.contains(parentCat); + var diffParentCategoryHierarchy = !catHierarchy.contains(parentCat.get()); if (diffParentCategoryHierarchy) { return true; } - var subParent = catHierarchy.indexOf(current) > catHierarchy.indexOf(parentCat); + var subParent = catHierarchy.indexOf(current) > catHierarchy.indexOf(parentCat.get()); if (subParent) { return true; }