diff options
| author | DoKM <mcazzyman@gmail.com> | 2021-08-31 15:45:53 +0200 |
|---|---|---|
| committer | DoKM <mcazzyman@gmail.com> | 2021-08-31 15:45:53 +0200 |
| commit | 7c350bdf3ea51573b5fc3442bf6b350d57900ec6 (patch) | |
| tree | 249adde4563351c53cd2ca87f24b255df27da1a4 /src/main/java/io/github/moulberry/notenoughupdates/miscfeatures | |
| parent | ba051e5f37222737e6655e25ce7ea339fe6bc834 (diff) | |
| parent | 946817f3d840d83c5855df889a6c5949e54a67f0 (diff) | |
| download | notenoughupdates-7c350bdf3ea51573b5fc3442bf6b350d57900ec6.tar.gz notenoughupdates-7c350bdf3ea51573b5fc3442bf6b350d57900ec6.tar.bz2 notenoughupdates-7c350bdf3ea51573b5fc3442bf6b350d57900ec6.zip | |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscfeatures')
| -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; } |
