banktags: Save last opened tab when opening worn items (#11660)

Co-authored-by: Ron Young <admin@ryoung.io>
This commit is contained in:
johannfrias
2020-06-24 00:04:15 -04:00
committed by GitHub
parent a448e50562
commit 3e7b9e169f
3 changed files with 56 additions and 23 deletions

View File

@@ -116,6 +116,11 @@ public class TabInterface
private static final String TAB_MENU_KEY = "tagtabs";
private static final String TAB_MENU = TAG_SEARCH + TAB_MENU_KEY;
private static final String OPEN_TAB_MENU = "View tag tabs";
private static final String SHOW_WORN = "Show worn items";
private static final String SHOW_SETTINGS = "Show menu";
private static final String HIDE_WORN = "Hide worn items";
private static final String HIDE_SETTINGS = "Hide menu";
private static final String SHOW_TUTORIAL = "Show tutorial";
private static final int TAB_HEIGHT = 40;
private static final int TAB_WIDTH = 39;
private static final int BUTTON_HEIGHT = 20;
@@ -497,29 +502,13 @@ public class TabInterface
waitSearchTick = false;
rememberedSearch = "";
// If bank window was just hidden, update last active tab position
if (currentTabIndex != config.position())
{
config.position(currentTabIndex);
}
// Do the same for last active tab
if (config.rememberTab())
{
if (activeTab == null && !Strings.isNullOrEmpty(config.tab()))
{
config.tab("");
}
else if (activeTab != null && !activeTab.getTag().equals(config.tab()))
{
config.tab(activeTab.getTag());
}
}
else if (!Strings.isNullOrEmpty(config.tab()))
{
config.tab("");
}
saveTab();
return;
}
// Don't continue ticking if equipment menu or bank menu is open
if (parent.isSelfHidden())
{
return;
}
@@ -578,6 +567,32 @@ public class TabInterface
scrollTab(0);
}
private void saveTab()
{
// If bank window was just hidden, update last active tab position
if (currentTabIndex != config.position())
{
config.position(currentTabIndex);
}
// Do the same for last active tab
if (config.rememberTab())
{
if (activeTab == null && !Strings.isNullOrEmpty(config.tab()))
{
config.tab("");
}
else if (activeTab != null && !activeTab.getTag().equals(config.tab()))
{
config.tab(activeTab.getTag());
}
}
else if (!Strings.isNullOrEmpty(config.tab()))
{
config.tab("");
}
}
private void setTabMenuVisible(boolean visible)
{
for (TagTab t : tabManager.getTabs())
@@ -753,6 +768,20 @@ public class TabInterface
{
handleDeposit(event, event.getWidgetId() == WidgetInfo.BANK_DEPOSIT_INVENTORY.getId());
}
else if (activeTab != null && ((event.getWidgetId() == WidgetInfo.BANK_EQUIPMENT_BUTTON.getId() && event.getMenuOption().equals(SHOW_WORN))
|| (event.getWidgetId() == WidgetInfo.BANK_SETTINGS_BUTTON.getId() && event.getMenuOption().equals(SHOW_SETTINGS))
|| (event.getWidgetId() == WidgetInfo.BANK_TUTORIAL_BUTTON.getId() && event.getMenuOption().equals(SHOW_TUTORIAL))))
{
saveTab();
rememberedSearch = TAG_SEARCH + activeTab.getTag();
}
else if (!Strings.isNullOrEmpty(rememberedSearch) && ((event.getWidgetId() == WidgetInfo.BANK_EQUIPMENT_BUTTON.getId() && event.getMenuOption().equals(HIDE_WORN))
|| (event.getWidgetId() == WidgetInfo.BANK_SETTINGS_BUTTON.getId() && event.getMenuOption().equals(HIDE_SETTINGS))))
{
bankSearch.reset(true);
bankSearch.search(InputType.NONE, rememberedSearch, true);
rememberedSearch = "";
}
}
public void updateTabIfActive(final Collection<String> tags)
@@ -830,7 +859,7 @@ public class TabInterface
{
return;
}
if (client.getVar(Varbits.BANK_REARRANGE_MODE) == 0)
{
tabManager.swap(source.getName(), dest.getName());