diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/app/src/main/java/com/example/myapplication/MainActivity.java b/app/src/main/java/com/example/myapplication/MainActivity.java index c0e3d606fe8c576fcfa239296bbb3d816ba82dc9..083d135943e7e9ead033d824508ed62f46a92a25 100644 --- a/app/src/main/java/com/example/myapplication/MainActivity.java +++ b/app/src/main/java/com/example/myapplication/MainActivity.java @@ -2,18 +2,38 @@ package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import androidx.cardview.widget.CardView; +import androidx.room.Room; +import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; +import android.text.TextUtils; import android.view.View; -import android.widget.Button; +import android.widget.EditText; import android.widget.TextView; +import android.widget.Toast; public class MainActivity extends AppCompatActivity { + private UserDao userDao; + private UserDatabase database; + private ProgressDialog progressDialog; + private EditText username; + private EditText password; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + database = Room.databaseBuilder(this, UserDatabase.class, "user.db").allowMainThreadQueries().build(); + userDao = database.getUserDao(); + progressDialog = new ProgressDialog(this); + progressDialog.setCancelable(false); + progressDialog.setMessage("Checking user"); + progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); + progressDialog.setProgress(0); + + username = (EditText)findViewById(R.id.text1); + password = (EditText)findViewById(R.id.text2); TextView registration = (TextView)findViewById(R.id.registration); registration.setOnClickListener(new View.OnClickListener(){ @Override @@ -25,7 +45,27 @@ public class MainActivity extends AppCompatActivity { login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - OpenGrade(v); + if(!emptyValidation()){ + progressDialog.show(); + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + User user = userDao.getUser(username.getText().toString(), password.getText().toString()); + if(user != null){ + Intent intent = new Intent(MainActivity.this, Grade.class); + intent.putExtra("User",user); + startActivity(intent); + finish(); + } + else{ + Toast.makeText(MainActivity.this, "Not found user", Toast.LENGTH_SHORT).show(); + } + progressDialog.dismiss(); + } + }, 1000); + }else{ + Toast.makeText(MainActivity.this, "Empty field", Toast.LENGTH_SHORT).show(); + } } }); @@ -39,4 +79,13 @@ public class MainActivity extends AppCompatActivity { Intent intent = new Intent(this, Grade.class); startActivity(intent); } + + private boolean emptyValidation(){ + if(TextUtils.isEmpty(username.getText().toString()) || TextUtils.isEmpty(password.getText().toString())){ + return true; + } + else { + return false; + } + } } diff --git a/app/src/main/java/com/example/myapplication/Registration.java b/app/src/main/java/com/example/myapplication/Registration.java index 341420df440a2317f8cf10272e829cd9f90b9b3e..370140e304756ca684c3caa15a3778b01b2e1160 100644 --- a/app/src/main/java/com/example/myapplication/Registration.java +++ b/app/src/main/java/com/example/myapplication/Registration.java @@ -1,14 +1,28 @@ package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; +import androidx.room.Room; +import androidx.room.RoomDatabase; +import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; +import android.text.TextUtils; import android.view.View; import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; public class Registration extends AppCompatActivity { + private EditText username; + private EditText password; + private EditText rpassword; + public Button registration; + private UserDao userDao; + + private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -20,9 +34,58 @@ public class Registration extends AppCompatActivity { MainOpen(v); } }); + + progressDialog = new ProgressDialog(this); + progressDialog.setCancelable(false); + progressDialog.setMessage("Registering..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); + progressDialog.setProgress(0); + + registration = (Button)findViewById(R.id.confirm); + username = (EditText)findViewById(R.id.username); + password = (EditText)findViewById(R.id.password); + rpassword = (EditText)findViewById(R.id.rpassword); + + userDao = Room.databaseBuilder(this, UserDatabase.class, "user.db").allowMainThreadQueries().build().getUserDao(); + + registration.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v) { + if(!emptyValidation()){ + if(password.getText().toString() != rpassword.getText().toString()){ + progressDialog.show(); + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + User user = new User(username.getText().toString(), password.getText().toString()); + userDao.insert(user); + progressDialog.dismiss(); + Intent intent = new Intent(Registration.this, MainActivity.class); + startActivity(intent); + } + },1000); + } + else { + Toast.makeText(Registration.this, "Retype password is not match with password", Toast.LENGTH_SHORT).show(); + } + } + else { + Toast.makeText(Registration.this, "Empty field", Toast.LENGTH_SHORT).show(); + } + } + }); } public void MainOpen(View view){ Intent intent = new Intent(this, MainActivity.class); startActivity(intent); } + + public boolean emptyValidation(){ + if (TextUtils.isEmpty(username.getText().toString()) || TextUtils.isEmpty(password.getText().toString()) || TextUtils.isEmpty(rpassword.getText().toString())) { + return true; + } + else { + return false; + } + } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6c5df217ab026c93eea653e65dafe4aedbc45ed8..cb3c6db3992f1aa9517f4cb764e9a5fca52a3671 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -23,7 +23,7 @@ app:srcCompat="@drawable/logo" /> <EditText - android:id="@+id/username" + android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" @@ -43,7 +43,7 @@ app:layout_constraintTop_toBottomOf="@+id/imageView" /> <EditText - android:id="@+id/password" + android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="96dp" @@ -60,7 +60,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.021" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/username" /> + app:layout_constraintTop_toBottomOf="@+id/text1" /> <TextView android:id="@+id/registration" @@ -93,7 +93,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.058" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/password" + app:layout_constraintTop_toBottomOf="@+id/text2" tools:layout_centerHorizontal="true"> <RelativeLayout diff --git a/app/src/main/res/layout/activity_registration.xml b/app/src/main/res/layout/activity_registration.xml index 727bae3dda5cbac98122737d76fbbcb5da2fdc93..9d07e92fb8ebce96445605298524cafc1919f3a0 100644 --- a/app/src/main/res/layout/activity_registration.xml +++ b/app/src/main/res/layout/activity_registration.xml @@ -24,7 +24,7 @@ app:layout_constraintTop_toTopOf="parent" /> <TextView - android:id="@+id/username" + android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" @@ -37,7 +37,7 @@ app:layout_constraintTop_toBottomOf="@+id/registration" /> <TextView - android:id="@+id/password" + android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" @@ -48,10 +48,10 @@ android:text="Password" android:textColor="@color/cardview_dark_background" android:textSize="18sp" - app:layout_constraintEnd_toStartOf="@+id/editText" + app:layout_constraintEnd_toStartOf="@+id/password" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/username" /> + app:layout_constraintTop_toBottomOf="@+id/text1" /> <TextView android:id="@+id/retype_password" @@ -65,13 +65,13 @@ android:text="Retype Password" android:textColor="@color/cardview_dark_background" android:textSize="18sp" - app:layout_constraintEnd_toStartOf="@+id/editText2" + app:layout_constraintEnd_toStartOf="@+id/rpassword" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/password" /> + app:layout_constraintTop_toBottomOf="@+id/text2" /> <EditText - android:id="@+id/editText" + android:id="@+id/password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" @@ -84,10 +84,10 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/editText3" /> + app:layout_constraintTop_toBottomOf="@+id/username" /> <EditText - android:id="@+id/editText2" + android:id="@+id/rpassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="108dp" @@ -96,10 +96,10 @@ android:ems="10" android:inputType="textPassword" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toBottomOf="@+id/editText" /> + app:layout_constraintTop_toBottomOf="@+id/password" /> <EditText - android:id="@+id/editText3" + android:id="@+id/username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="40dp" @@ -122,7 +122,7 @@ android:textSize="18sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/editText2" /> + app:layout_constraintTop_toBottomOf="@+id/rpassword" /> <Button android:id="@+id/home"