diff --git a/app/build.gradle b/app/build.gradle
index d8d4e86..41f3b46 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,4 +23,5 @@ dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
+ implementation 'com.google.code.gson:gson:2.7'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 189cf54..c739ad6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -16,6 +16,15 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/yana/testapp/MainActivity.java b/app/src/main/java/com/example/yana/testapp/MainActivity.java
index e55d4b0..5ee54cd 100644
--- a/app/src/main/java/com/example/yana/testapp/MainActivity.java
+++ b/app/src/main/java/com/example/yana/testapp/MainActivity.java
@@ -1,18 +1,26 @@
package com.example.yana.testapp;
import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
+import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
+import java.util.ArrayList;
+import com.google.gson.Gson;
public class MainActivity extends AppCompatActivity {
+
+ public ArrayList userArrayList;
public static final String NAME_VALID = "^[A-Z][a-zA-Z]+$";
- public static final String EMAIL_VALID = "^[a-zA-Z0-9+_.-]+@[a-zA-Z]+\\.[A-Za-z]{2,4}$";
public static final String PHONE_VALID = "^\\+?[0-9]{10,16}$";
- public static final String PASSWORD_VALID = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{8,}$";
+ public static final String EMAIL_VALID = "^[a-zA-Z0-9+_.-]+@[a-zA-Z]+\\.[A-Za-z]{2,5}$";
+ public static final String PASSWORD_VALID = "^[0-9]+$";
protected TextView result;
protected String text;
protected EditText firstNameInput;
@@ -23,6 +31,7 @@ public class MainActivity extends AppCompatActivity {
protected EditText verifyPasswordInput;
protected Button submitButtonInput;
protected Boolean validation;
+ protected Button list_users_button;
@Override
@SuppressLint("SetTextI18n")
@@ -30,6 +39,8 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
+ userArrayList = new ArrayList<>();
+
result = findViewById(R.id.result);
firstNameInput = findViewById(R.id.first_name_input);
lastNameInput = findViewById(R.id.last_name_input);
@@ -38,8 +49,10 @@ protected void onCreate(Bundle savedInstanceState) {
passwordInput = findViewById(R.id.password_input);
verifyPasswordInput = findViewById(R.id.verify_password_input);
submitButtonInput = findViewById(R.id.submit_button);
+ list_users_button = findViewById(R.id.list_view_button);
buttonOnClick();
+ showUserList();
}
public void buttonOnClick() {
@@ -49,7 +62,6 @@ public void buttonOnClick() {
@Override
@SuppressLint("SetTextI18n")
public void onClick(View v) {
- result.setText("");
validation = true;
stringChecker(firstNameInput, NAME_VALID, "first name");
stringChecker(lastNameInput, NAME_VALID, "last name");
@@ -59,10 +71,22 @@ public void onClick(View v) {
passwordChecker();
if (validation) {
result.setText("Correct!");
+ saveUser();
}
}
});
-}
+ }
+
+ public void showUserList() {
+ list_users_button.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ Intent user_list = new Intent(getBaseContext(), UserActivity.class);
+ startActivity(user_list);
+ }
+ });
+ }
@SuppressLint("SetTextI18n")
public void stringChecker(EditText row_id, String term, String row_name) {
@@ -96,4 +120,28 @@ public void passwordChecker() {
result.setText("Passwords aren't similar\n" + existing_value);
}
}
+
+ public void saveUser(){
+ String first_name_value = String.valueOf(firstNameInput.getText());
+ String last_name_value = String.valueOf(lastNameInput.getText());
+ String email_value = String.valueOf(emailInput.getText());
+ String phone_value = String.valueOf(phoneInput.getText());
+ String password_value = String.valueOf(passwordInput.getText());
+
+ User user = new User(first_name_value,
+ last_name_value, email_value, phone_value, password_value);
+
+ userArrayList.add(user);
+
+ Gson gson = new Gson();
+ String json = gson.toJson(userArrayList);
+ Log.i("users", json);
+ SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(
+ "user_list",
+ Context.MODE_PRIVATE);
+
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.putString("user_list",json);
+ editor.apply();
+ }
}
diff --git a/app/src/main/java/com/example/yana/testapp/User.java b/app/src/main/java/com/example/yana/testapp/User.java
new file mode 100644
index 0000000..78ffef7
--- /dev/null
+++ b/app/src/main/java/com/example/yana/testapp/User.java
@@ -0,0 +1,67 @@
+package com.example.yana.testapp;
+
+public class User {
+ private String first_name;
+ private String last_name;
+ private String email;
+ private String phone;
+ private String password;
+
+ public User(String first_name,
+ String last_name,
+ String email,
+ String phone,
+ String password){
+
+ this.first_name = first_name;
+ this.last_name = last_name;
+ this.email = email;
+ this.phone = phone;
+ this.password = password;
+ }
+
+ @Override
+ public String toString() {
+ return first_name + " " + last_name + phone;
+ }
+
+ public String getFirst_name() {
+ return first_name;
+ }
+
+ public void setFirst_name(String first_name) {
+ this.first_name = first_name;
+ }
+
+ public String getLast_name() {
+ return last_name;
+ }
+
+ public void setLast_name(String last_name) {
+ this.last_name = last_name;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/yana/testapp/UserActivity.java b/app/src/main/java/com/example/yana/testapp/UserActivity.java
new file mode 100644
index 0000000..2a24918
--- /dev/null
+++ b/app/src/main/java/com/example/yana/testapp/UserActivity.java
@@ -0,0 +1,46 @@
+package com.example.yana.testapp;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+import java.lang.reflect.Type;
+import java.util.List;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+
+public class UserActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.user_list_fragment);
+
+ Gson gson = new Gson();
+ List listOfUsers;
+ SharedPreferences sharedPref = getApplicationContext().getSharedPreferences(
+ "user_list", Context.MODE_PRIVATE);
+ String jsonPreferences = sharedPref.getString("user_list", "");
+ Log.i("users", jsonPreferences);
+
+ if(!jsonPreferences.equals("")){
+ Type type = new TypeToken>() {}.getType();
+ listOfUsers = gson.fromJson(jsonPreferences, type);
+ Log.i("users", listOfUsers.toString());
+
+ ListView userListView = findViewById(R.id.list_view_users);
+ ArrayAdapter arrayAdapter = new ArrayAdapter<>(
+ this,
+ android.R.layout.simple_list_item_1,
+ listOfUsers);
+
+ userListView.setAdapter(arrayAdapter);
+ }
+ }
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 89e88ac..8d4cf12 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,6 +1,5 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 117a0cc..44f656a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -7,4 +7,5 @@
Password
Password confirmation
Submit
+ List of users