mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-20 10:32:33 +00:00
Support skipping password creation at setup
This commit is contained in:
@@ -25,6 +25,7 @@ import android.widget.LinearLayout;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.whispersystems.textsecure.crypto.MasterSecret;
|
||||
import org.thoughtcrime.securesms.crypto.MasterSecretUtil;
|
||||
import org.thoughtcrime.securesms.util.MemoryCleaner;
|
||||
@@ -45,6 +46,7 @@ public class PassphraseCreateActivity extends PassphraseActivity {
|
||||
private EditText passphraseEdit;
|
||||
private EditText passphraseRepeatEdit;
|
||||
private Button okButton;
|
||||
private Button skipButton;
|
||||
|
||||
public PassphraseCreateActivity() { }
|
||||
|
||||
@@ -63,6 +65,7 @@ public class PassphraseCreateActivity extends PassphraseActivity {
|
||||
this.passphraseEdit = (EditText) findViewById(R.id.passphrase_edit);
|
||||
this.passphraseRepeatEdit = (EditText) findViewById(R.id.passphrase_edit_repeat);
|
||||
this.okButton = (Button) findViewById(R.id.ok_button);
|
||||
this.skipButton = (Button) findViewById(R.id.skip_button);
|
||||
|
||||
this.okButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
@@ -70,6 +73,13 @@ public class PassphraseCreateActivity extends PassphraseActivity {
|
||||
verifyAndSavePassphrases();
|
||||
}
|
||||
});
|
||||
|
||||
this.skipButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
disablePassphrase();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void verifyAndSavePassphrases() {
|
||||
@@ -93,6 +103,12 @@ public class PassphraseCreateActivity extends PassphraseActivity {
|
||||
new SecretGenerator().execute(passphrase);
|
||||
}
|
||||
|
||||
private void disablePassphrase() {
|
||||
TextSecurePreferences.setPasswordDisabled(this, true);
|
||||
new SecretGenerator().execute(MasterSecretUtil.UNENCRYPTED_PASSPHRASE);
|
||||
|
||||
}
|
||||
|
||||
private class SecretGenerator extends AsyncTask<String, Void, Void> {
|
||||
private MasterSecret masterSecret;
|
||||
|
||||
|
@@ -66,22 +66,22 @@ public class MemoryCleaner {
|
||||
}
|
||||
|
||||
public static void clean(String string) {
|
||||
if (string == null)
|
||||
return;
|
||||
|
||||
try {
|
||||
Field charArrayField = String.class.getDeclaredField("value");
|
||||
charArrayField.setAccessible(true);
|
||||
|
||||
char[] internalBuffer = (char[])charArrayField.get(string);
|
||||
|
||||
Arrays.fill(internalBuffer, 'A');
|
||||
} catch (NoSuchFieldException nsfe) {
|
||||
Log.w("MemoryCleaner", nsfe);
|
||||
} catch (IllegalArgumentException e) {
|
||||
Log.w("MemoryCleaner", e);
|
||||
} catch (IllegalAccessException e) {
|
||||
Log.w("MemoryCleaner", e);
|
||||
}
|
||||
// if (string == null)
|
||||
// return;
|
||||
//
|
||||
// try {
|
||||
// Field charArrayField = String.class.getDeclaredField("value");
|
||||
// charArrayField.setAccessible(true);
|
||||
//
|
||||
// char[] internalBuffer = (char[])charArrayField.get(string);
|
||||
//
|
||||
// Arrays.fill(internalBuffer, 'A');
|
||||
// } catch (NoSuchFieldException nsfe) {
|
||||
// Log.w("MemoryCleaner", nsfe);
|
||||
// } catch (IllegalArgumentException e) {
|
||||
// Log.w("MemoryCleaner", e);
|
||||
// } catch (IllegalAccessException e) {
|
||||
// Log.w("MemoryCleaner", e);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user