diff --git a/Foodify/app/build.gradle b/Foodify/app/build.gradle index 38f8b5b..c71c818 100644 --- a/Foodify/app/build.gradle +++ b/Foodify/app/build.gradle @@ -55,6 +55,8 @@ dependencies { implementation 'com.squareup.picasso:picasso:2.5.2' implementation 'com.firebaseui:firebase-ui-database:1.2.0' + implementation 'io.paperdb:paperdb:2.1' + implementation 'com.github.rey5137:material:1.2.4' } apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/Common/Common.java b/Foodify/app/src/main/java/com/waterbase/foodify/Common/Common.java index 13be174..843fec9 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/Common/Common.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/Common/Common.java @@ -10,6 +10,8 @@ public class Common { public static User currentUser; public static final String DELETE = "Xoá"; + public static final String USER_KEY = "User"; + public static final String PWD_KEY = "Password"; public static String convertCodeToStatus(String status) { if(status.equals("0")) diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/Home.java b/Foodify/app/src/main/java/com/waterbase/foodify/Home.java index b5997cc..6e6302c 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/Home.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/Home.java @@ -29,6 +29,8 @@ import com.waterbase.foodify.Model.Category; import com.waterbase.foodify.Service.ListenOrder; import com.waterbase.foodify.ViewHolder.MenuViewHolder; +import io.paperdb.Paper; + public class Home extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{ @@ -63,6 +65,9 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati database = FirebaseDatabase.getInstance(); category = database.getReference("Category"); + //Init paper + Paper.init(this); + //Load menu recyler_menu = (RecyclerView) findViewById(R.id.recyler_menu); recyler_menu.setHasFixedSize(true); @@ -135,6 +140,11 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati Intent orderIntent = new Intent(Home.this, OrderStatus.class); startActivity(orderIntent); } else if (id == R.id.nav_log_out) { + + //Delete Remember user & password + Paper.book().destroy(); + + //Logout Intent signIn = new Intent(Home.this, SignIn.class); signIn.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(signIn); diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/SignIn.java b/Foodify/app/src/main/java/com/waterbase/foodify/SignIn.java index 7a47a52..3b3a822 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/SignIn.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/SignIn.java @@ -17,14 +17,18 @@ import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; +import com.rey.material.widget.CheckBox; import com.waterbase.foodify.Common.Common; import com.waterbase.foodify.Model.User; +import io.paperdb.Paper; + public class SignIn extends AppCompatActivity { EditText edtPhone, edtPassword; Button btnSignIn; TextView txtAppName; + CheckBox ckbRemember; @Override protected void onCreate(Bundle savedInstanceState) { @@ -34,6 +38,10 @@ public class SignIn extends AppCompatActivity { edtPassword = (EditText) findViewById(R.id.edtPassword); edtPhone = (EditText) findViewById(R.id.edtPhone); btnSignIn = (Button) findViewById(R.id.btnSignIn); + ckbRemember = (CheckBox)findViewById(R.id.ckbRemember); + + //Init Paper + Paper.init(this); txtAppName = (TextView) findViewById(R.id.txtAppName); @@ -49,6 +57,12 @@ public class SignIn extends AppCompatActivity { public void onClick(View v) { if (Common.isConnectedToInternet(getBaseContext())) { + + //Save user& password + if(ckbRemember.isChecked()) { + Paper.book().write(Common.USER_KEY, edtPhone.getText().toString()); + Paper.book().write(Common.PWD_KEY, edtPassword.getText().toString()); + } final ProgressDialog mDialog = new ProgressDialog(SignIn.this); mDialog.setMessage("Please waiting..."); mDialog.show(); diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/Welcome.java b/Foodify/app/src/main/java/com/waterbase/foodify/Welcome.java index dd325d5..24f9b3c 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/Welcome.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/Welcome.java @@ -1,14 +1,26 @@ package com.waterbase.foodify; +import android.app.ProgressDialog; import android.content.Intent; import android.graphics.Typeface; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; +import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; +import com.waterbase.foodify.Common.Common; +import com.waterbase.foodify.Model.User; + +import io.paperdb.Paper; + public class Welcome extends AppCompatActivity { Button btnSignIn, btnSignUp; @@ -23,11 +35,14 @@ public class Welcome extends AppCompatActivity { btnSignUp = (Button) findViewById(R.id.btnSignUp); txtSlogan = (TextView) findViewById(R.id.txtSlogan); - txtAppName = (TextView)findViewById(R.id.txtAppName); + txtAppName = (TextView) findViewById(R.id.txtAppName); Typeface face = Typeface.createFromAsset(getAssets(), "fonts/NABILA.TTF"); txtSlogan.setTypeface(face); txtAppName.setTypeface(face); + //Init paper + Paper.init(this); + btnSignIn.setOnClickListener(new View.OnClickListener() { @Override @@ -44,5 +59,61 @@ public class Welcome extends AppCompatActivity { startActivity(signUp); } }); + + //Check remember + String user = Paper.book().read(Common.USER_KEY); + String pwd = Paper.book().read(Common.PWD_KEY); + if (user != null && pwd != null) { + if (!user.isEmpty() && !pwd.isEmpty()) { + login(user, pwd); + } + } + } + + private void login(String phone, String pwd) { + if (Common.isConnectedToInternet(getBaseContext())) { + + //Init Firebase + FirebaseDatabase database = FirebaseDatabase.getInstance(); + final DatabaseReference table_user = database.getReference("User"); + + final ProgressDialog mDialog = new ProgressDialog(Welcome.this); + mDialog.setMessage("Please waiting..."); + mDialog.show(); + + table_user.addListenerForSingleValueEvent(new ValueEventListener() { + + + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + //Check if user not in database + if (dataSnapshot.child(phone).exists()) { + //Get User information + mDialog.dismiss(); + User user = dataSnapshot.child(phone).getValue(User.class); + user.setPhone(phone); + if (user.getPassword().equals(pwd)) { + Intent homeIntent = new Intent(Welcome.this, Home.class); + Common.currentUser = user; + startActivity(homeIntent); + finish(); + } else { + Toast.makeText(Welcome.this, "Số điện thoại hoặc mật khẩu không đúng. Xin vui lòng thử lại!", Toast.LENGTH_SHORT).show(); + } + } else { + mDialog.dismiss(); + Toast.makeText(Welcome.this, "Số điện thoại chưa được đăng ký. Vui lòng đăng ký để sử dụng!", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + } else { + Toast.makeText(Welcome.this, "Vui lòng kiểm tra kết nối mạng!", Toast.LENGTH_SHORT).show(); + return; + } } } \ No newline at end of file diff --git a/Foodify/app/src/main/res/layout/activity_sign_in.xml b/Foodify/app/src/main/res/layout/activity_sign_in.xml index 6404725..4cb77e8 100644 --- a/Foodify/app/src/main/res/layout/activity_sign_in.xml +++ b/Foodify/app/src/main/res/layout/activity_sign_in.xml @@ -78,6 +78,22 @@ app:layout_constraintTop_toBottomOf="@+id/edtPhone" app:layout_constraintWidth_percent=".8" /> + +