profiles: various (#2132)

1) renamed "isStreamerMode" to "streamerMode"

2) changed profiles panel to use updateconfig() rather than config.bla

3) added in auto panel refreshing on config change.

4) added the ability to hide the "email address" field to declutter panel when having multiple accounts.
This commit is contained in:
Kyle
2019-12-20 09:48:54 +00:00
committed by GitHub
parent 524402f8e1
commit 4634f0ebc5
4 changed files with 58 additions and 22 deletions

View File

@@ -67,7 +67,7 @@ class ProfilePanel extends JPanel
private final String loginText;
private String password = null;
ProfilePanel(final Client client, final String data, final ProfilesConfig config, final ProfilesPanel parent)
ProfilePanel(final Client client, final String data, final ProfilesPlugin plugin, final ProfilesPanel parent)
{
String[] parts = data.split(":");
this.loginText = parts[1];
@@ -144,7 +144,7 @@ class ProfilePanel extends JPanel
if (SwingUtilities.isLeftMouseButton(e) && client.getGameState() == GameState.LOGIN_SCREEN)
{
client.setUsername(loginText);
if (config.rememberPassword() && password != null)
if (plugin.isRememberPassword() && password != null)
{
client.setPassword(password);
}
@@ -163,7 +163,7 @@ class ProfilePanel extends JPanel
if (SwingUtilities.isLeftMouseButton(e) && client.getGameState() == GameState.LOGIN_SCREEN)
{
client.setUsername(loginText);
if (config.rememberPassword() && password != null)
if (plugin.isRememberPassword() && password != null)
{
client.setPassword(password);
}
@@ -171,16 +171,19 @@ class ProfilePanel extends JPanel
}
});
JLabel login = new JLabel();
login.setText(config.isStreamerMode() ? "Hidden email" : loginText);
login.setBorder(null);
login.setPreferredSize(new Dimension(0, 24));
login.setForeground(Color.WHITE);
login.setBorder(new EmptyBorder(0, 8, 0, 0));
bottomContainer.add(login, BorderLayout.CENTER);
if (plugin.isDisplayEmailAddress())
{
JLabel login = new JLabel();
login.setText(plugin.isStreamerMode() ? "Hidden email" : loginText);
login.setBorder(null);
login.setPreferredSize(new Dimension(0, 24));
login.setForeground(Color.WHITE);
login.setBorder(new EmptyBorder(0, 8, 0, 0));
bottomContainer.add(login, BorderLayout.CENTER);
add(bottomContainer, BorderLayout.CENTER);
}
add(labelWrapper, BorderLayout.NORTH);
add(bottomContainer, BorderLayout.CENTER);
}
}

View File

@@ -70,19 +70,34 @@ public interface ProfilesConfig extends Config
@ConfigItem(
keyName = "rememberPassword",
name = "Remember Password",
description = "Remembers passwords for accounts"
description = "Remembers passwords for accounts",
position = 0
)
default boolean rememberPassword()
{
return true;
}
@ConfigItem(
keyName = "displayEmailAddress",
name = "Display email field",
description = "Displays the email address field",
position = 1
)
default boolean displayEmailAddress()
{
return false;
}
@ConfigItem(
keyName = "streamerMode",
name = "Hide email addresses",
description = "Hides your account emails"
description = "Hides your account emails",
position = 2,
hidden = true,
unhide = "displayEmailAddress"
)
default boolean isStreamerMode()
default boolean streamerMode()
{
return false;
}
@@ -90,7 +105,8 @@ public interface ProfilesConfig extends Config
@ConfigItem(
keyName = "switchPanel",
name = "Auto-open Panel",
description = "Automatically switch to the account switcher panel on the login screen"
description = "Automatically switch to the account switcher panel on the login screen",
position = 3
)
default boolean switchPanel()
{

View File

@@ -85,6 +85,8 @@ class ProfilesPanel extends PluginPanel
@Inject
private ProfilesConfig profilesConfig;
@Inject ProfilesPlugin profilesPlugin;
private final JPasswordField txtDecryptPassword = new JPasswordField(UNLOCK_PASSWORD);
private final JTextField txtAccountLabel = new JTextField(ACCOUNT_LABEL);
private final JPasswordField txtAccountLogin = new JPasswordField(ACCOUNT_USERNAME);
@@ -221,7 +223,7 @@ class ProfilesPanel extends PluginPanel
if (ACCOUNT_USERNAME.equals(String.valueOf(txtAccountLogin.getPassword())))
{
txtAccountLogin.setText("");
if (profilesConfig.isStreamerMode())
if (profilesPlugin.isStreamerMode())
{
txtAccountLogin.setEchoChar('*');
}
@@ -278,7 +280,7 @@ class ProfilesPanel extends PluginPanel
return;
}
String data;
if (profilesConfig.rememberPassword() && txtPasswordLogin.getPassword() != null)
if (profilesPlugin.isRememberPassword() && txtPasswordLogin.getPassword() != null)
{
data = labelText + ":" + loginText + ":" + passwordText;
}
@@ -357,7 +359,7 @@ class ProfilesPanel extends PluginPanel
accountPanel.add(txtAccountLabel);
accountPanel.add(txtAccountLogin);
if (profilesConfig.rememberPassword())
if (profilesPlugin.isRememberPassword())
{
accountPanel.add(txtPasswordLogin);
}
@@ -401,7 +403,7 @@ class ProfilesPanel extends PluginPanel
add(profilesPanel, BorderLayout.SOUTH);
}
private void redrawProfiles() throws InvalidKeySpecException, NoSuchAlgorithmException, IllegalBlockSizeException, InvalidKeyException, BadPaddingException, NoSuchPaddingException
void redrawProfiles() throws InvalidKeySpecException, NoSuchAlgorithmException, IllegalBlockSizeException, InvalidKeyException, BadPaddingException, NoSuchPaddingException
{
profilesPanel.removeAll();
addAccounts(getProfileData());
@@ -412,7 +414,7 @@ class ProfilesPanel extends PluginPanel
private void addAccount(String data)
{
ProfilePanel profile = new ProfilePanel(client, data, profilesConfig, this);
ProfilePanel profile = new ProfilePanel(client, data, profilesPlugin, this);
profilesPanel.add(profile);
revalidate();

View File

@@ -29,6 +29,8 @@ import java.awt.image.BufferedImage;
import java.util.concurrent.ScheduledExecutorService;
import javax.inject.Inject;
import javax.inject.Singleton;
import lombok.AccessLevel;
import lombok.Getter;
import net.runelite.api.GameState;
import net.runelite.api.events.GameStateChanged;
import net.runelite.client.config.ConfigManager;
@@ -62,7 +64,14 @@ public class ProfilesPlugin extends Plugin
private ProfilesPanel panel;
private NavigationButton navButton;
@Getter(AccessLevel.PACKAGE)
private boolean switchToPanel;
@Getter(AccessLevel.PACKAGE)
private boolean streamerMode;
@Getter(AccessLevel.PACKAGE)
private boolean displayEmailAddress;
@Getter(AccessLevel.PACKAGE)
private boolean rememberPassword;
@Provides
@@ -124,9 +133,11 @@ public class ProfilesPlugin extends Plugin
this.startUp();
updateConfig();
}
if (event.getGroup().equals("profiles") && event.getKey().equals("switchPanel"))
if (event.getGroup().equals("profiles") && !event.getKey().equals("rememberPassword"))
{
updateConfig();
panel = injector.getInstance(ProfilesPanel.class);
panel.redrawProfiles();
}
}
@@ -140,9 +151,13 @@ public class ProfilesPlugin extends Plugin
}
}
private void updateConfig()
{
this.switchToPanel = config.switchPanel();
this.rememberPassword = config.rememberPassword();
this.streamerMode = config.streamerMode();
this.displayEmailAddress = config.displayEmailAddress();
}
}