Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
}
9 changes: 9 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".UserActivity">
<intent-filter>
<action android:name="android.intent.action.PROCESS_TEXT"/>

<category android:name="android.intent.category.APP_BROWSER"/>
</intent-filter>
</activity>

</application>

</manifest>
56 changes: 52 additions & 4 deletions app/src/main/java/com/example/yana/testapp/MainActivity.java
Original file line number Diff line number Diff line change
@@ -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<User> 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;
Expand All @@ -23,13 +31,16 @@ public class MainActivity extends AppCompatActivity {
protected EditText verifyPasswordInput;
protected Button submitButtonInput;
protected Boolean validation;
protected Button list_users_button;

@Override
@SuppressLint("SetTextI18n")
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);
Expand All @@ -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() {
Expand All @@ -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");
Expand All @@ -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) {
Expand Down Expand Up @@ -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();
}
}
67 changes: 67 additions & 0 deletions app/src/main/java/com/example/yana/testapp/User.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
46 changes: 46 additions & 0 deletions app/src/main/java/com/example/yana/testapp/UserActivity.java
Original file line number Diff line number Diff line change
@@ -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<User> 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<List<User>>() {}.getType();
listOfUsers = gson.fromJson(jsonPreferences, type);
Log.i("users", listOfUsers.toString());

ListView userListView = findViewById(R.id.list_view_users);
ArrayAdapter<User> arrayAdapter = new ArrayAdapter<>(
this,
android.R.layout.simple_list_item_1,
listOfUsers);

userListView.setAdapter(arrayAdapter);
}
}
}
1 change: 0 additions & 1 deletion app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/layout/selection_fragment.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,15 @@
android:focusable="true"
android:text="@string/submit"/>

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:clickable="true"
android:focusable="true"
android:text="@string/users_list"
android:id="@+id/list_view_button" />

<TextView
android:id="@+id/result"
android:layout_width="match_parent"
Expand Down
15 changes: 15 additions & 0 deletions app/src/main/res/layout/user_list_fragment.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".UserActivity"
android:layout_margin="16dp">

<ListView
android:id="@+id/list_view_users"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

</android.support.constraint.ConstraintLayout>
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@
<string name="password">Password</string>
<string name="password_confirmation">Password confirmation</string>
<string name="submit">Submit</string>
<string name="users_list">List of users</string>
</resources>