From 73bc99b3c6787b5e7c2e8b57f77d72aa344c0e43 Mon Sep 17 00:00:00 2001 From: crschnick Date: Sun, 21 Apr 2024 01:28:57 +0000 Subject: [PATCH] Save on category share --- .../app/comp/store/StoreCategoryWrapper.java | 12 +----------- .../java/io/xpipe/app/storage/DataStorage.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreCategoryWrapper.java b/app/src/main/java/io/xpipe/app/comp/store/StoreCategoryWrapper.java index c921d801..4b2f47ea 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreCategoryWrapper.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreCategoryWrapper.java @@ -107,17 +107,7 @@ public class StoreCategoryWrapper { }); share.addListener((observable, oldValue, newValue) -> { - category.setShare(newValue); - - DataStoreCategory p = category; - if (newValue) { - while ((p = DataStorage.get() - .getStoreCategoryIfPresent(p.getParentCategory()) - .orElse(null)) - != null) { - p.setShare(true); - } - } + DataStorage.get().shareCategory(category, newValue); }); } 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 31836f30..72db514d 100644 --- a/app/src/main/java/io/xpipe/app/storage/DataStorage.java +++ b/app/src/main/java/io/xpipe/app/storage/DataStorage.java @@ -314,6 +314,23 @@ public abstract class DataStorage { saveAsync(); } + public void shareCategory(DataStoreCategory category, boolean share) { + category.setShare(share); + + DataStoreCategory p = category; + if (share) { + while ((p = DataStorage.get() + .getStoreCategoryIfPresent(p.getParentCategory()) + .orElse(null)) + != null) { + p.setShare(true); + } + } + + // Update git remote if needed + DataStorage.get().saveAsync(); + } + public void updateCategory(DataStoreEntry entry, DataStoreCategory newCategory) { if (getStoreCategoryIfPresent(entry.getUuid()) .map(category -> category.equals(newCategory))