diff options
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java b/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java index faea01aa..48dd9602 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java +++ b/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java @@ -36,6 +36,8 @@ import java.util.regex.Pattern; public class GitActivity extends AppCompatActivity { private static final String TAG = "GitAct"; + // copied from http://stackoverflow.com/a/16058059/4247851 + private static final String emailPattern = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$"; private Activity activity; private Context context; @@ -56,6 +58,7 @@ public class GitActivity extends AppCompatActivity { public static final int EDIT_SERVER = 105; public static final int REQUEST_SYNC = 106; public static final int REQUEST_CREATE = 107; + public static final int EDIT_GIT_CONFIG = 108; @Override protected void onCreate(Bundle savedInstanceState) { @@ -256,6 +259,18 @@ public class GitActivity extends AppCompatActivity { updateURI(); break; + case EDIT_GIT_CONFIG: + setContentView(R.layout.activity_git_config); + setTitle(R.string.title_activity_git_config); + + // init the server information + final EditText git_user_name = ((EditText) findViewById(R.id.git_user_name)); + final EditText git_user_email = ((EditText) findViewById(R.id.git_user_email)); + + git_user_name.setText(settings.getString("git_config_user_name", "")); + git_user_email.setText(settings.getString("git_config_user_email", "")); + + break; case REQUEST_PULL: syncRepository(REQUEST_PULL); break; @@ -460,6 +475,39 @@ public class GitActivity extends AppCompatActivity { finish(); } + private boolean saveGitConfigs() { + // remember the settings + SharedPreferences.Editor editor = settings.edit(); + + String email = ((EditText) findViewById(R.id.git_user_email)).getText().toString(); + editor.putString("git_config_user_email", email); + editor.putString("git_config_user_name", ((EditText) findViewById(R.id.git_user_name)).getText().toString()); + + if (!email.matches(emailPattern)) { + new AlertDialog.Builder(this). + setMessage(activity.getResources().getString(R.string.invalid_email_dialog_text)). + setPositiveButton(activity.getResources().getString(R.string.dialog_oops), null). + show(); + return false; + } + + editor.apply(); + return true; + } + + public void applyGitConfigs(View view) { + if(!saveGitConfigs()) + return; + + String git_user_name = settings.getString("git_config_user_name", ""); + String git_user_email = settings.getString("git_config_user_email", ""); + + PasswordRepository.setUserName(git_user_name); + PasswordRepository.setUserEmail(git_user_email); + + finish(); + } + /** * Clones the repository, the directory exists, deletes it * |
