Save Credentials
Now you can save credentials in settings so you don't have to enter them every time
This commit is contained in:
parent
5d822098fe
commit
83b5ab3407
5 changed files with 101 additions and 6 deletions
|
@ -6,6 +6,7 @@ import android.content.Context;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -61,7 +62,7 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector.
|
||||||
tableName = getArguments().getString(Static.TABLE_NAME_ARG);
|
tableName = getArguments().getString(Static.TABLE_NAME_ARG);
|
||||||
page = getArguments().getInt(Static.PAGE_ARG);
|
page = getArguments().getInt(Static.PAGE_ARG);
|
||||||
|
|
||||||
entriesLimit = getActivity().getSharedPreferences(SettingsFragment.PREFERENCE_FILE, Context.MODE_PRIVATE).getInt(SettingsFragment.ENTRIES_PAGE_LIMIT, SettingsFragment.ENTRIES_PAGE_LIMIT_DEF);
|
entriesLimit = PreferenceManager.getDefaultSharedPreferences(getActivity()).getInt(SettingsFragment.ENTRIES_PAGE_LIMIT, SettingsFragment.ENTRIES_PAGE_LIMIT_DEF);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initViewItems(View rootView){
|
private void initViewItems(View rootView){
|
||||||
|
|
|
@ -2,9 +2,13 @@ package info.nerull7.mysqlbrowser;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.Preference;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -36,10 +40,21 @@ public class LoginFragment extends Fragment implements View.OnClickListener, Asy
|
||||||
loginTextbox = (EditText) rootView.findViewById(R.id.editLogin);
|
loginTextbox = (EditText) rootView.findViewById(R.id.editLogin);
|
||||||
passwordTextbox = (EditText) rootView.findViewById(R.id.editPassowrd);
|
passwordTextbox = (EditText) rootView.findViewById(R.id.editPassowrd);
|
||||||
progressBar = (ProgressBar) rootView.findViewById(R.id.loginProgressBar);
|
progressBar = (ProgressBar) rootView.findViewById(R.id.loginProgressBar);
|
||||||
|
processCredentials();
|
||||||
|
|
||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void processCredentials() {
|
||||||
|
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||||
|
|
||||||
|
if(sharedPreferences.getBoolean(SettingsFragment.SAVE_SERVER_CREDENTIALS, false)){
|
||||||
|
urlTextbox.setText(sharedPreferences.getString(SettingsFragment.URL_CREDENTIALS, null));
|
||||||
|
loginTextbox.setText(sharedPreferences.getString(SettingsFragment.LOGIN_CREDENTIALS, null));
|
||||||
|
passwordTextbox.setText(sharedPreferences.getString(SettingsFragment.PASSWORD_CREDENTIALS, null));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
progressBar.setVisibility(View.VISIBLE);
|
progressBar.setVisibility(View.VISIBLE);
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package info.nerull7.mysqlbrowser;
|
package info.nerull7.mysqlbrowser;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.CheckBoxPreference;
|
||||||
|
import android.preference.EditTextPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceFragment;
|
import android.preference.PreferenceFragment;
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
|
@ -11,9 +11,12 @@ import android.preference.PreferenceScreen;
|
||||||
/**
|
/**
|
||||||
* Created by nerull7 on 18.07.14.
|
* Created by nerull7 on 18.07.14.
|
||||||
*/
|
*/
|
||||||
public class SettingsFragment extends PreferenceFragment implements NumberPickerDialog.OnNumberSetListener {
|
public class SettingsFragment extends PreferenceFragment implements NumberPickerDialog.OnNumberSetListener, Preference.OnPreferenceClickListener {
|
||||||
public static final String PREFERENCE_FILE = "preferences";
|
|
||||||
public static final String ENTRIES_PAGE_LIMIT = "entries_limit";
|
public static final String ENTRIES_PAGE_LIMIT = "entries_limit";
|
||||||
|
public static final String SAVE_SERVER_CREDENTIALS = "save_credentials_enabled";
|
||||||
|
public static final String URL_CREDENTIALS = "url";
|
||||||
|
public static final String LOGIN_CREDENTIALS = "login";
|
||||||
|
public static final String PASSWORD_CREDENTIALS = "password";
|
||||||
|
|
||||||
public static final int ENTRIES_PAGE_LIMIT_DEF = 20;
|
public static final int ENTRIES_PAGE_LIMIT_DEF = 20;
|
||||||
public static final int ENTRIES_MIN_PAGE = 20;
|
public static final int ENTRIES_MIN_PAGE = 20;
|
||||||
|
@ -21,19 +24,57 @@ public class SettingsFragment extends PreferenceFragment implements NumberPicker
|
||||||
|
|
||||||
private SharedPreferences preferences;
|
private SharedPreferences preferences;
|
||||||
private Preference mEntriesLimit;
|
private Preference mEntriesLimit;
|
||||||
|
private CheckBoxPreference saveCredentials;
|
||||||
|
private EditTextPreference connectorUrlCredentials;
|
||||||
|
private EditTextPreference loginCredentials;
|
||||||
|
private EditTextPreference passwordCredentials;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState){
|
public void onCreate(Bundle savedInstanceState){
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
preferences = getActivity().getSharedPreferences(PREFERENCE_FILE, Context.MODE_PRIVATE);
|
preferences = getPreferenceManager().getDefaultSharedPreferences(getActivity());
|
||||||
|
|
||||||
loadPrefs();
|
loadPrefs();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadPrefs(){
|
private void loadPrefs(){
|
||||||
addPreferencesFromResource(R.xml.settings);
|
addPreferencesFromResource(R.xml.settings);
|
||||||
|
|
||||||
|
// Getting fields
|
||||||
mEntriesLimit = findPreference(ENTRIES_PAGE_LIMIT);
|
mEntriesLimit = findPreference(ENTRIES_PAGE_LIMIT);
|
||||||
|
saveCredentials = (CheckBoxPreference) findPreference(SAVE_SERVER_CREDENTIALS);
|
||||||
|
connectorUrlCredentials = (EditTextPreference) findPreference(URL_CREDENTIALS);
|
||||||
|
loginCredentials = (EditTextPreference) findPreference(LOGIN_CREDENTIALS);
|
||||||
|
passwordCredentials = (EditTextPreference) findPreference(PASSWORD_CREDENTIALS); // TODO: Some encryption
|
||||||
|
|
||||||
|
// Settings fields
|
||||||
setEntriesPageLimitSummary();
|
setEntriesPageLimitSummary();
|
||||||
|
|
||||||
|
// Settings Listener
|
||||||
|
saveCredentials.setOnPreferenceClickListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setSaveServerCredentials(boolean isEnabled){
|
||||||
|
SharedPreferences.Editor editor = preferences.edit();
|
||||||
|
|
||||||
|
if(!isEnabled){ // Cleaning Credentials
|
||||||
|
editor.remove(URL_CREDENTIALS);
|
||||||
|
editor.remove(LOGIN_CREDENTIALS);
|
||||||
|
editor.remove(PASSWORD_CREDENTIALS);
|
||||||
|
}
|
||||||
|
editor.putBoolean(SAVE_SERVER_CREDENTIALS, isEnabled);
|
||||||
|
editor.apply();
|
||||||
|
editor.commit();
|
||||||
|
|
||||||
|
if(!isEnabled)
|
||||||
|
reloadLoginPrefsView();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void reloadLoginPrefsView(){ // Update values
|
||||||
|
saveCredentials.setChecked(preferences.getBoolean(SAVE_SERVER_CREDENTIALS, false));
|
||||||
|
connectorUrlCredentials.setText(preferences.getString(URL_CREDENTIALS, null));
|
||||||
|
loginCredentials.setText(preferences.getString(LOGIN_CREDENTIALS, null));
|
||||||
|
passwordCredentials.setText(preferences.getString(PASSWORD_CREDENTIALS, null));;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getEntriesPageLimit(){
|
private int getEntriesPageLimit(){
|
||||||
|
@ -60,4 +101,15 @@ public class SettingsFragment extends PreferenceFragment implements NumberPicker
|
||||||
editor.apply();
|
editor.apply();
|
||||||
setEntriesPageLimitSummary();
|
setEntriesPageLimitSummary();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
if(preference==saveCredentials){
|
||||||
|
setSaveServerCredentials(saveCredentials.isChecked());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,5 +27,8 @@
|
||||||
<string name="error_no_databases">No available databases</string>
|
<string name="error_no_databases">No available databases</string>
|
||||||
<string name="action_previous">Previous</string>
|
<string name="action_previous">Previous</string>
|
||||||
<string name="action_next">Next</string>
|
<string name="action_next">Next</string>
|
||||||
|
<string name="login_settings">Login credentials</string>
|
||||||
|
<string name="save_credentials">Save credentials</string>
|
||||||
|
<string name="connector_url">Connector URL</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -9,5 +9,29 @@
|
||||||
android:summary="@string/entries_summary"
|
android:summary="@string/entries_summary"
|
||||||
/>
|
/>
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
<PreferenceCategory
|
||||||
|
android:title="@string/login_settings">
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="save_credentials_enabled"
|
||||||
|
android:title="@string/save_credentials"/>
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="url"
|
||||||
|
android:title="@string/connector_url"
|
||||||
|
android:inputType="textUri"
|
||||||
|
android:dependency="save_credentials_enabled"/>
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="login"
|
||||||
|
android:title="@string/username"
|
||||||
|
android:dependency="save_credentials_enabled"/>
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="password"
|
||||||
|
android:title="@string/password"
|
||||||
|
android:password="true"
|
||||||
|
android:dependency="save_credentials_enabled"/>
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
Loading…
Reference in a new issue