So I'm building an app that generates a strong password per the specifications of the user. The spec part of the UI looks like this.
The following is the onCreate from the MainActivity.java class. I tried creating some of the logic, such as if statements when a certain radio button is checked and adding allowed characters to the String variable whenever a checkbox is checked. The View objects are all global btw but I couldn't figure out how to create a random String using at least one of each allowed character, within the character limit set by the user.
Here is the code:
private static int MAX_LENGTH;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
capitalLetter = (CheckBox) findViewById(R.id.capital_letter);
lowercaseLetter = (CheckBox) findViewById(R.id.lowercase_letter);
numbers = (CheckBox) findViewById(R.id.numbers);
symbols = (CheckBox) findViewById(R.id.symbols);
passGroup = (RadioGroup) findViewById(R.id.passRadioGroup);
sizeFour = (RadioButton) findViewById(R.id.size_four);
sizeEight = (RadioButton) findViewById(R.id.size_eight);
sizeTwelve = (RadioButton) findViewById(R.id.size_twelve);
sizeSixteen = (RadioButton) findViewById(R.id.size_sixteen);
passHint = (EditText) findViewById(R.id.passwordHint);
passShow = (TextView) findViewById(R.id.passwordDisplay);
passGenerate = (Button) findViewById(R.id.passwordGenerate);
passClear = (Button) findViewById(R.id.passwordClear);
String allowedCharacters = "";
// Determines the types of characters permitted when a check box is checked.
if (capitalLetter.isChecked()) {allowedCharacters += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";}
if (lowercaseLetter.isChecked()) {allowedCharacters += "abcdefghijklmnopqrstuvwxyz";}
if (numbers.isChecked()) {allowedCharacters += "0123456789";}
if (symbols.isChecked()) {allowedCharacters += "!@#$%^&*()_-+=<>?/{}~|";}
//Determines the length of the string based on which radio button the user has selected.
int checkedRadioButtonId = passGroup.getCheckedRadioButtonId();
if (checkedRadioButtonId == 1) {MAX_LENGTH = 4;}
if (checkedRadioButtonId == 2) {MAX_LENGTH = 8;}
if (checkedRadioButtonId == 3) {MAX_LENGTH = 12;}
if (checkedRadioButtonId == 4) {MAX_LENGTH = 16;}
}