aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/git/GitActivity.java
diff options
context:
space:
mode:
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.java48
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
*