diff --git a/Foodify/app/build.gradle b/Foodify/app/build.gradle index 039cd80..229fb93 100644 --- a/Foodify/app/build.gradle +++ b/Foodify/app/build.gradle @@ -10,7 +10,7 @@ android { minSdk 23 targetSdk 30 versionCode 1 - versionName "79.0" + versionName "80.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/Foodify/app/src/main/AndroidManifest.xml b/Foodify/app/src/main/AndroidManifest.xml index 93f0c18..17f3c09 100644 --- a/Foodify/app/src/main/AndroidManifest.xml +++ b/Foodify/app/src/main/AndroidManifest.xml @@ -60,13 +60,17 @@ android:exported="false" /> + android:exported="false" + android:theme="@style/Theme.Foodify.NoActionBar" + /> + android:exported="false" + android:theme="@style/Theme.Foodify.NoActionBar"/> + android:exported="false" + android:theme="@style/Theme.Foodify.NoActionBar"/> diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/ChangePassword.java b/Foodify/app/src/main/java/com/waterbase/foodify/ChangePassword.java index d63d137..479db26 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/ChangePassword.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/ChangePassword.java @@ -12,6 +12,7 @@ import androidx.appcompat.app.AppCompatActivity; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; +import com.waterbase.foodify.Common.Common; import com.waterbase.foodify.Model.User; import java.util.regex.Matcher; @@ -58,7 +59,7 @@ public class ChangePassword extends AppCompatActivity { //Check same password if (edtPassword.getText().toString().equals(edtPasswordVerify.getText().toString())) { - table_user.child(phone).child("password").setValue(edtPasswordVerify.getText().toString()); + table_user.child(phone).child("password").setValue(Common.encryptPassword(edtPasswordVerify.getText().toString())); Toast.makeText(ChangePassword.this, "Đổi mật khẩu thành công. Vui lòng đăng nhập lại để tiếp tục!", Toast.LENGTH_SHORT).show(); startActivity(new Intent(ChangePassword.this, SignIn.class)); finish(); 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 e94ee12..bbfe73e 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 @@ -11,6 +11,9 @@ import com.waterbase.foodify.Remote.APIService; import com.waterbase.foodify.Remote.IGoogleService; import com.waterbase.foodify.Remote.RetrofitClient; +import java.math.BigInteger; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.util.Calendar; import java.util.Locale; @@ -82,4 +85,36 @@ public class Common { DateFormat.format("dd-MM-yyyy HH:mm", calendar).toString()); return date.toString(); } + + public static String encryptPassword(String input) + { + try { + // getInstance() method is called with algorithm SHA-1 + MessageDigest md = MessageDigest.getInstance("SHA-1"); + + // digest() method is called + // to calculate message digest of the input string + // returned as array of byte + byte[] messageDigest = md.digest(input.getBytes()); + + // Convert byte array into signum representation + BigInteger no = new BigInteger(1, messageDigest); + + // Convert message digest into hex value + String hashtext = no.toString(16); + + // Add preceding 0s to make it 32 bit + while (hashtext.length() < 32) { + hashtext = "0" + hashtext; + } + + // return the HashText + return hashtext; + } + + // For specifying wrong message digest algorithms + catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + } } 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 d8fa9a8..22f0295 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/Home.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/Home.java @@ -73,6 +73,8 @@ import io.paperdb.Paper; public class Home extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { + private long backPressedTime; + String versionNameApp = BuildConfig.VERSION_NAME; FirebaseDatabase database; @@ -471,7 +473,7 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati //Write value Paper.book().write("sub_new", "true"); if(!NotificationManagerCompat.from(Home.this).areNotificationsEnabled()){ - showNotificationAlertDialog("Oops, máy bạn chưa được bật thông báo! Bạn có muốn bật để nhận thông báo từ hệ thống báo không?"); + showNotificationAlertDialog("Oops, máy bạn chưa được cấp quyền thông báo! Bạn có muốn bật để nhận thông báo từ hệ thống không?"); } } else { FirebaseMessaging.getInstance().unsubscribeFromTopic(Common.topicName); @@ -622,4 +624,17 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati return super.onOptionsItemSelected(item); } + + @Override + public void onBackPressed() { + if(backPressedTime + 2000 > System.currentTimeMillis()) { + super.onBackPressed(); + return; + } else { + Toast.makeText(this, "Nhấn BACK 1 lần nữa để thoát!", Toast.LENGTH_SHORT).show(); + } + + backPressedTime = System.currentTimeMillis(); + + } } \ No newline at end of file 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 ef759ac..1e2c678 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/SignIn.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/SignIn.java @@ -58,7 +58,7 @@ public class SignIn extends AppCompatActivity { //Save user& password if(ckbRemember.isChecked()) { Paper.book().write(Common.USER_KEY, edtPhone.getText().toString()); - Paper.book().write(Common.PWD_KEY, edtPassword.getText().toString()); + Paper.book().write(Common.PWD_KEY, Common.encryptPassword(edtPassword.getText().toString())); } final ProgressDialog mDialog = new ProgressDialog(SignIn.this); mDialog.setMessage("Xin vui lòng chờ..."); @@ -77,7 +77,7 @@ public class SignIn extends AppCompatActivity { mDialog.dismiss(); User user = dataSnapshot.child(edtPhone.getText().toString()).getValue(User.class); user.setPhone(edtPhone.getText().toString()); - if (user.getPassword().equals(edtPassword.getText().toString())) { + if (user.getPassword().equals(Common.encryptPassword(edtPassword.getText().toString()))) { Intent homeIntent = new Intent(SignIn.this, Home.class); Common.currentUser = user; startActivity(homeIntent); diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/SignUp.java b/Foodify/app/src/main/java/com/waterbase/foodify/SignUp.java index c88d3cd..5fefa61 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/SignUp.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/SignUp.java @@ -125,7 +125,7 @@ public class SignUp extends AppCompatActivity { public void onCodeSent(String verificationId, PhoneAuthProvider.ForceResendingToken forceResendingToken) { progressBar.setVisibility(View.GONE); btnSignUp.setVisibility(View.VISIBLE); - User user = new User(edtName.getText().toString(), edtPassword.getText().toString()); + User user = new User(edtName.getText().toString(), Common.encryptPassword(edtPassword.getText().toString())); Intent intent = new Intent(SignUp.this, VerifyPhone.class); intent.putExtra("user", user); intent.putExtra("phone", edtPhone.getText().toString()); 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 ac0728b..46db117 100644 --- a/Foodify/app/src/main/res/layout/activity_sign_in.xml +++ b/Foodify/app/src/main/res/layout/activity_sign_in.xml @@ -133,6 +133,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chưa có tài khoản Foodify?" + android:layout_marginRight="4dp" android:fontFamily="@font/regular" android:textAlignment="center" android:textColor="#FBFBFB" diff --git a/Foodify/app/src/main/res/layout/activity_sign_up.xml b/Foodify/app/src/main/res/layout/activity_sign_up.xml index fb6ae57..dae3e5c 100644 --- a/Foodify/app/src/main/res/layout/activity_sign_up.xml +++ b/Foodify/app/src/main/res/layout/activity_sign_up.xml @@ -155,27 +155,29 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Đã tạo tài khoản?" + android:layout_marginRight="4dp" android:fontFamily="@font/regular" android:textAlignment="center" + android:gravity="center" android:textColor="#FBFBFB" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias=".3" + app:layout_constraintEnd_toStartOf="@+id/txtSignIn" + app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/frameLayout" /> \ No newline at end of file diff --git a/Foodify/app/src/main/res/values-night/themes.xml b/Foodify/app/src/main/res/values-night/themes.xml index 7e2caa2..759fc80 100644 --- a/Foodify/app/src/main/res/values-night/themes.xml +++ b/Foodify/app/src/main/res/values-night/themes.xml @@ -1,16 +1,58 @@ - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Foodify/app/src/main/res/values/themes.xml b/Foodify/app/src/main/res/values/themes.xml index 087230a..759fc80 100644 --- a/Foodify/app/src/main/res/values/themes.xml +++ b/Foodify/app/src/main/res/values/themes.xml @@ -1,6 +1,6 @@ -