aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures
diff options
context:
space:
mode:
authorDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2021-08-27 19:50:09 +0200
committerDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2021-08-27 19:50:09 +0200
commit4f852c5b9bbbf83b55086da047d4f5fc0a5ede3f (patch)
treef7017b40860d8bfe9fb2a3d370e4ccf4e61b4da1 /src/main/java/io/github/moulberry/notenoughupdates/miscfeatures
parentd6d24db17354c116276a1dae86f4a65d590d206b (diff)
downloadnotenoughupdates-4f852c5b9bbbf83b55086da047d4f5fc0a5ede3f.tar.gz
notenoughupdates-4f852c5b9bbbf83b55086da047d4f5fc0a5ede3f.tar.bz2
notenoughupdates-4f852c5b9bbbf83b55086da047d4f5fc0a5ede3f.zip
we be fixing
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/miscfeatures')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/StorageManager.java31
1 files changed, 17 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..b85b79fe 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();
@@ -491,21 +492,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 +532,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 +593,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 +606,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;
}