don't show saved password

This commit is contained in:
korelstar 2017-04-17 17:01:27 +02:00 committed by Niedermann IT-Dienstleistungen
parent 36726e4abc
commit 2cd26c0d06
3 changed files with 28 additions and 7 deletions

View file

@ -6,6 +6,7 @@ import android.graphics.drawable.Drawable;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.support.design.widget.TextInputLayout;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.text.Editable; import android.text.Editable;
@ -43,6 +44,8 @@ public class SettingsActivity extends AppCompatActivity {
private EditText field_url = null; private EditText field_url = null;
private EditText field_username = null; private EditText field_username = null;
private EditText field_password = null; private EditText field_password = null;
private TextInputLayout password_wrapper = null;
private String old_password = "";
private Button btn_submit = null; private Button btn_submit = null;
private boolean first_run = false; private boolean first_run = false;
private boolean showNotification = false; private boolean showNotification = false;
@ -77,6 +80,7 @@ public class SettingsActivity extends AppCompatActivity {
field_url = (EditText) findViewById(R.id.settings_url); field_url = (EditText) findViewById(R.id.settings_url);
field_username = (EditText) findViewById(R.id.settings_username); field_username = (EditText) findViewById(R.id.settings_username);
field_password = (EditText) findViewById(R.id.settings_password); field_password = (EditText) findViewById(R.id.settings_password);
password_wrapper = (TextInputLayout) findViewById(R.id.settings_password_wrapper);
btn_submit = (Button) findViewById(R.id.settings_submit); btn_submit = (Button) findViewById(R.id.settings_submit);
field_url.addTextChangedListener(new TextWatcher() { field_url.addTextChangedListener(new TextWatcher() {
@ -130,7 +134,7 @@ public class SettingsActivity extends AppCompatActivity {
// Load current Preferences // Load current Preferences
field_url.setText(preferences.getString(SETTINGS_URL, DEFAULT_SETTINGS)); field_url.setText(preferences.getString(SETTINGS_URL, DEFAULT_SETTINGS));
field_username.setText(preferences.getString(SETTINGS_USERNAME, DEFAULT_SETTINGS)); field_username.setText(preferences.getString(SETTINGS_USERNAME, DEFAULT_SETTINGS));
field_password.setText(preferences.getString(SETTINGS_PASSWORD, DEFAULT_SETTINGS)); old_password = preferences.getString(SETTINGS_PASSWORD, DEFAULT_SETTINGS);
field_password.setOnEditorActionListener(new TextView.OnEditorActionListener() { field_password.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override @Override
@ -139,6 +143,13 @@ public class SettingsActivity extends AppCompatActivity {
return true; return true;
} }
}); });
field_password.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
setPasswordHint(hasFocus);
}
});
setPasswordHint(false);
btn_submit.setEnabled(false); btn_submit.setEnabled(false);
btn_submit.setOnClickListener(new View.OnClickListener() { btn_submit.setOnClickListener(new View.OnClickListener() {
@ -148,6 +159,12 @@ public class SettingsActivity extends AppCompatActivity {
} }
}); });
} }
private void setPasswordHint(boolean hasFocus) {
boolean unchangedHint = !hasFocus && field_password.getText().toString().isEmpty() && !old_password.isEmpty();
password_wrapper.setHint(getString(unchangedHint ? R.string.settings_password_unchanged : R.string.settings_password));
}
/** /**
* Prevent pressing back button on first run * Prevent pressing back button on first run
*/ */
@ -162,6 +179,9 @@ public class SettingsActivity extends AppCompatActivity {
String url = field_url.getText().toString().trim(); String url = field_url.getText().toString().trim();
String username = field_username.getText().toString(); String username = field_username.getText().toString();
String password = field_password.getText().toString(); String password = field_password.getText().toString();
if(password.isEmpty()) {
password = old_password;
}
if (!url.endsWith("/")) { if (!url.endsWith("/")) {
url += "/"; url += "/";
@ -243,11 +263,7 @@ public class SettingsActivity extends AppCompatActivity {
editor.putString(SETTINGS_PASSWORD, password); editor.putString(SETTINGS_PASSWORD, password);
editor.apply(); editor.apply();
//NoteSQLiteOpenHelper db = new NoteSQLiteOpenHelper(getApplicationContext());
//db.synchronizeWithServer();
final Intent data = new Intent(); final Intent data = new Intent();
//FIXME send correct note back to NotesListView
data.putExtra(NotesListViewActivity.CREDENTIALS_CHANGED, CREDENTIALS_CHANGED); data.putExtra(NotesListViewActivity.CREDENTIALS_CHANGED, CREDENTIALS_CHANGED);
setResult(RESULT_OK, data); setResult(RESULT_OK, data);
finish(); finish();

View file

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
@ -48,7 +50,9 @@
<android.support.design.widget.TextInputLayout <android.support.design.widget.TextInputLayout
android:id="@+id/settings_password_wrapper" android:id="@+id/settings_password_wrapper"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
app:passwordToggleEnabled="true"
>
<EditText <EditText
android:id="@+id/settings_password" android:id="@+id/settings_password"

View file

@ -41,6 +41,7 @@
<string name="settings_url_warn_http">WARNING: "http" is unsafe. Please use "https".</string> <string name="settings_url_warn_http">WARNING: "http" is unsafe. Please use "https".</string>
<string name="settings_username">Username</string> <string name="settings_username">Username</string>
<string name="settings_password">Password</string> <string name="settings_password">Password</string>
<string name="settings_password_unchanged">Password (not changed)</string>
<string name="settings_password_check_description">Shows if the credentials are correct.</string> <string name="settings_password_check_description">Shows if the credentials are correct.</string>
<string name="settings_submit">Connect</string> <string name="settings_submit">Connect</string>
<string name="settings_submitting">Connecting &#8230;</string> <string name="settings_submitting">Connecting &#8230;</string>