diff options
| author | DoKM <54663875+DoKM@users.noreply.github.com> | 2021-08-30 22:35:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-30 22:35:18 +0200 |
| commit | 946817f3d840d83c5855df889a6c5949e54a67f0 (patch) | |
| tree | c3030869e7062c2385517bc0e01d4975f122afb1 /src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java | |
| parent | d7f9b39792d17d8ee204a46b5ff8be3c217ea2a1 (diff) | |
| parent | b0164aa3994e4b74c6d7a15c1fe5d03f16dcba2e (diff) | |
| download | notenoughupdates-946817f3d840d83c5855df889a6c5949e54a67f0.tar.gz notenoughupdates-946817f3d840d83c5855df889a6c5949e54a67f0.tar.bz2 notenoughupdates-946817f3d840d83c5855df889a6c5949e54a67f0.zip | |
Merge pull request #29 from DeDiamondPro/master
Fixes
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java index 03e6b98e..3a3aec6d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java @@ -166,6 +166,7 @@ public class StorageManager { public static class StorageConfig { public HashMap<String, StoragePage[]> pages = new HashMap<>(); public final HashMap<Integer, Integer> displayToStorageIdMap = new HashMap<>(); + public final HashMap<Integer, Integer> displayToStorageIdMapRender = new HashMap<>(); } public StorageConfig storageConfig = new StorageConfig(); @@ -387,6 +388,16 @@ public class StorageManager { return -1; } + public int getDisplayIdForStorageIdRender(int storageId) { + if(storageId < 0) return -1; + for(Map.Entry<Integer, Integer> entry : storageConfig.displayToStorageIdMapRender.entrySet()) { + if(entry.getValue() == storageId) { + return entry.getKey(); + } + } + return -1; + } + public boolean onAnyClick() { if(onStorageMenu && desiredStoragePage >= 0) { if(desiredStoragePage < 9) { @@ -491,21 +502,22 @@ public class StorageManager { if(changed) { synchronized(storageConfig.displayToStorageIdMap) { storageConfig.displayToStorageIdMap.clear(); + storageConfig.displayToStorageIdMapRender.clear(); int displayIndex = 0; for(int i=0; i<storagePresent.length; i++) { if(storagePresent[i]) { - if(lastSearch == null || lastSearch.isEmpty()) { - storageConfig.displayToStorageIdMap.put(displayIndex++, i); - } else { + storageConfig.displayToStorageIdMap.put(displayIndex, i); + if(lastSearch != null && !lastSearch.isEmpty()){ StoragePage page = getPage(i, false); if(page != null) { updateSearchForPage(lastSearch, page); if(page.matchesSearch) { - storageConfig.displayToStorageIdMap.put(displayIndex++, i); + storageConfig.displayToStorageIdMapRender.put(displayIndex++, i); } } - } + } else + storageConfig.displayToStorageIdMapRender.put(displayIndex++, i); } } } @@ -530,21 +542,22 @@ public class StorageManager { if(changed) { synchronized(storageConfig.displayToStorageIdMap) { storageConfig.displayToStorageIdMap.clear(); + storageConfig.displayToStorageIdMapRender.clear(); int displayIndex = 0; for(int i=0; i<storagePresent.length; i++) { if(storagePresent[i]) { - if(lastSearch == null || lastSearch.isEmpty()) { - storageConfig.displayToStorageIdMap.put(displayIndex++, i); - } else { + storageConfig.displayToStorageIdMap.put(displayIndex, i); + if(lastSearch != null && !lastSearch.isEmpty()){ StoragePage page = getPage(i, false); if(page != null) { updateSearchForPage(lastSearch, page); if(page.matchesSearch) { - storageConfig.displayToStorageIdMap.put(displayIndex++, i); + storageConfig.displayToStorageIdMapRender.put(displayIndex++, i); } } - } + } else + storageConfig.displayToStorageIdMapRender.put(displayIndex++, i); } } } @@ -590,8 +603,8 @@ public class StorageManager { public void searchDisplay(String searchStr) { if(storagePresent == null) return; - synchronized(storageConfig.displayToStorageIdMap) { - storageConfig.displayToStorageIdMap.clear(); + synchronized(storageConfig.displayToStorageIdMapRender) { + storageConfig.displayToStorageIdMapRender.clear(); lastSearch = searchStr; int sid = searchId.incrementAndGet(); @@ -603,10 +616,10 @@ public class StorageManager { if(page.rows > 0) { updateSearchForPage(searchStr, page); if(page.matchesSearch) { - storageConfig.displayToStorageIdMap.put(displayIndex++, i); + storageConfig.displayToStorageIdMapRender.put(displayIndex++, i); } } else { - storageConfig.displayToStorageIdMap.put(displayIndex++, i); + storageConfig.displayToStorageIdMapRender.put(displayIndex++, i); page.matchesSearch = true; page.searchedId = sid; } |
