KeyListener: Add isEnabledOnLoginScreen() method

This commit moves login screen handling out of the KeyManager into the
KeyListener interface so it does not need any knowledge of
HotkeyListener's implementation.
This commit is contained in:
Jordan Atwood
2020-07-10 18:46:22 -04:00
committed by Adam
parent a2118a57d8
commit cb4b7d42ea
5 changed files with 24 additions and 16 deletions
@@ -26,4 +26,8 @@ package net.runelite.client.input;
public interface KeyListener extends java.awt.event.KeyListener
{
default boolean isEnabledOnLoginScreen()
{
return false;
}
}
@@ -32,7 +32,6 @@ import javax.inject.Inject;
import javax.inject.Singleton;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.client.util.HotkeyListener;
@Singleton
public class KeyManager
@@ -133,18 +132,13 @@ public class KeyManager
return true;
}
if (!(keyListener instanceof HotkeyListener))
final GameState gameState = client.getGameState();
if (gameState == GameState.LOGIN_SCREEN || gameState == GameState.LOGIN_SCREEN_AUTHENTICATOR)
{
return true;
return keyListener.isEnabledOnLoginScreen();
}
final HotkeyListener hotkeyListener = (HotkeyListener) keyListener;
if (hotkeyListener.isEnabledOnLogin())
{
return true;
}
return client.getGameState() != GameState.LOGIN_SCREEN && client.getGameState() != GameState.LOGIN_SCREEN_AUTHENTICATOR;
return true;
}
}
@@ -183,6 +183,12 @@ public class LoginScreenPlugin extends Plugin implements KeyListener
}
}
@Override
public boolean isEnabledOnLoginScreen()
{
return true;
}
@Override
public void keyTyped(KeyEvent e)
{
@@ -382,7 +382,7 @@ public class ClientUI
toggleSidebar();
}
};
sidebarListener.setEnabledOnLogin(true);
sidebarListener.setEnabledOnLoginScreen(true);
keyManager.registerKeyListener(sidebarListener);
final HotkeyListener pluginPanelListener = new HotkeyListener(config::panelToggleKey)
@@ -393,7 +393,7 @@ public class ClientUI
togglePluginPanel();
}
};
pluginPanelListener.setEnabledOnLogin(true);
pluginPanelListener.setEnabledOnLoginScreen(true);
keyManager.registerKeyListener(pluginPanelListener);
// Add mouse listener
@@ -26,7 +26,6 @@ package net.runelite.client.util;
import java.awt.event.KeyEvent;
import java.util.function.Supplier;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import net.runelite.client.config.Keybind;
@@ -42,8 +41,13 @@ public abstract class HotkeyListener implements KeyListener
private boolean isConsumingTyped = false;
@Setter
@Getter
private boolean isEnabledOnLogin = false;
private boolean enabledOnLoginScreen;
@Override
public boolean isEnabledOnLoginScreen()
{
return enabledOnLoginScreen;
}
@Override
public void keyTyped(KeyEvent e)