From 687f46b8b8ac5ea91f6fe51c80dba241195df793 Mon Sep 17 00:00:00 2001 From: Yanaddn Date: Wed, 3 Oct 2018 22:53:32 +0300 Subject: [PATCH] lab 4 --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 9 +++ .../example/yana/testapp/MainActivity.java | 56 ++++++++++++++-- .../java/com/example/yana/testapp/User.java | 67 +++++++++++++++++++ .../example/yana/testapp/UserActivity.java | 46 +++++++++++++ app/src/main/res/layout/activity_main.xml | 1 - .../main/res/layout/selection_fragment.xml | 9 +++ .../main/res/layout/user_list_fragment.xml | 15 +++++ app/src/main/res/values/strings.xml | 1 + 9 files changed, 200 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/com/example/yana/testapp/User.java create mode 100644 app/src/main/java/com/example/yana/testapp/UserActivity.java create mode 100644 app/src/main/res/layout/user_list_fragment.xml 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 @@ +