case DIALOG_CHANGE_PASSWORD: {
DialogInterface.OnClickListener listener =
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogi, int which) {
AlertDialog dialog = (AlertDialog) dialogi;
TextView password1 = (TextView) dialog.findViewById(
R.id.password);
TextView password2 = (TextView) dialog.findViewById(
R.id.password_validation);
String password = password1.getText().toString();
String p2 = password2.getText().toString();
if (!password.equals(p2) || password.length() == 0) {
showToast(R.string.invalid_password);
return;
}
SeekBar bar = (SeekBar) dialog.findViewById(R.id.cipher_strength);
byte[] salt = SecurityUtils.getSalt();
int rounds = bar.getProgress() + PROGRESS_ROUNDS_OFFSET;
SecurityUtils.CipherInfo info = SecurityUtils.createCiphers(
password, salt, rounds);
if (null != info) {
SecurityUtils.saveCiphers(info);
showToast(R.string.password_changed);
} else {
showToast(R.string.error_reset_password);
}
}
};
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.change_password, getListView(),
false);
dialog = new AlertDialog.Builder(this)
.setTitle(R.string.list_menu_change_password)
.setIcon(android.R.drawable.ic_dialog_info)
.setView(view)
.setPositiveButton(R.string.list_menu_change_password, listener)
.create();
final Dialog dialogFinal = dialog;
SeekBar bar = (SeekBar) view.findViewById(R.id.cipher_strength);
bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
setCipherStrengthLabel(dialogFinal, progress +
PROGRESS_ROUNDS_OFFSET);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}});
break;
}
case DIALOG_ENTER_RESTORE_PASSWORD: {
DialogInterface.OnClickListener listener =
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogi, int which) {
AlertDialog dialog = (AlertDialog) dialogi;
TextView password1 = (TextView) dialog.findViewById(
R.id.password);
String password = password1.getText().toString();
FileUtils.SaltAndRounds saltAndRounds =
FileUtils.getSaltAndRounds(null, restorePoint);