diff --git a/aestheticdialogs/src/main/res/layout/dialog_flat.xml b/aestheticdialogs/src/main/res/layout/dialog_flat.xml
index 9033a31..029e9e7 100644
--- a/aestheticdialogs/src/main/res/layout/dialog_flat.xml
+++ b/aestheticdialogs/src/main/res/layout/dialog_flat.xml
@@ -26,7 +26,7 @@
android:layout_height="120dp"
app:srcCompat="@drawable/ic_info_blue_24dp"
android:layout_marginBottom="10dp"
- android:layout_marginTop="10dp"/>
+ android:layout_marginTop="5dp"/>
+ android:text="An error occured on remote service, please try again later"
+ android:textSize="13sp"
+ />
diff --git a/app/release/app-release.apk b/app/release/foodify.apk
similarity index 75%
rename from app/release/app-release.apk
rename to app/release/foodify.apk
index 14f16ac..8e14d86 100644
Binary files a/app/release/app-release.apk and b/app/release/foodify.apk differ
diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json
index beadcf3..5cb0642 100644
--- a/app/release/output-metadata.json
+++ b/app/release/output-metadata.json
@@ -12,7 +12,7 @@
"filters": [],
"attributes": [],
"versionCode": 1,
- "versionName": "1.0.0-beta",
+ "versionName": "1.0.0",
"outputFile": "app-release.apk"
}
],
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 12d0525..04ba6f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -79,7 +79,8 @@
+ android:screenOrientation="portrait"
+ />
call, Response response) {
- CustomResponse responseData = response.body();
-
if(response.code() == 200){
Toast.makeText(AddressManagerActivity.this, "Đã thêm địa chỉ thành công!", Toast.LENGTH_SHORT).show();
diff --git a/app/src/main/java/com/capstone/foodify/Activity/FavoriteFoodActivity.java b/app/src/main/java/com/capstone/foodify/Activity/FavoriteFoodActivity.java
index 1e45368..99e1d71 100644
--- a/app/src/main/java/com/capstone/foodify/Activity/FavoriteFoodActivity.java
+++ b/app/src/main/java/com/capstone/foodify/Activity/FavoriteFoodActivity.java
@@ -120,6 +120,7 @@ public class FavoriteFoodActivity extends AppCompatActivity implements ItemTouch
listFavoriteFoodView = findViewById(R.id.list_favorite_food_view);
//Get list favorite food
+ CURRENT_PAGE = 0;
getListFavoriteFood(CURRENT_PAGE);
//Set layout recyclerview
@@ -212,8 +213,8 @@ public class FavoriteFoodActivity extends AppCompatActivity implements ItemTouch
}
//Show notification food has been delete
- Snackbar snackbar = Snackbar.make(listFavoriteFoodView, foodNameDelete + " remove!", Snackbar.LENGTH_LONG);
- snackbar.setAction("Undo", new View.OnClickListener() {
+ Snackbar snackbar = Snackbar.make(listFavoriteFoodView, "Đã xoá " + foodNameDelete + " khỏi danh sách yêu thích!", Snackbar.LENGTH_LONG);
+ snackbar.setAction("Hoàn tác", new View.OnClickListener() {
@Override
public void onClick(View view) {
adapter.undoItem(foodDelete, indexDelete, FavoriteFoodActivity.this);
diff --git a/app/src/main/java/com/capstone/foodify/Activity/MainActivity.java b/app/src/main/java/com/capstone/foodify/Activity/MainActivity.java
index b5a5c43..7726502 100644
--- a/app/src/main/java/com/capstone/foodify/Activity/MainActivity.java
+++ b/app/src/main/java/com/capstone/foodify/Activity/MainActivity.java
@@ -559,14 +559,20 @@ public class MainActivity extends AppCompatActivity {
public static List POWER_MANAGER_INTENTS = Arrays.asList(
new Intent().setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity")),
new Intent().setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity")),
+ new Intent().setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.startupmgr.ui.StartupNormalAppListActivity")),
new Intent().setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity")),
+ new Intent().setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.appcontrol.activity.StartupAppControlActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.startupapp.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.oppo.safe", "com.oppo.safe.permission.startup.StartupAppListActivity")),
new Intent().setComponent(new ComponentName("com.iqoo.secure", "com.iqoo.secure.ui.phoneoptimize.AddWhiteListActivity")),
new Intent().setComponent(new ComponentName("com.iqoo.secure", "com.iqoo.secure.ui.phoneoptimize.BgStartUpManager")),
new Intent().setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity")),
- new Intent().setComponent(new ComponentName("com.asus.mobilemanager", "com.asus.mobilemanager.entry.FunctionActivity")).setData(android.net.Uri.parse("mobilemanager://function/entry/AutoStart"))
+ new Intent().setComponent(new ComponentName("com.samsung.android.lool", "com.samsung.android.sm.battery.ui.BatteryActivity")),
+ new Intent().setComponent(new ComponentName("com.samsung.android.lool", "com.samsung.android.sm.ui.battery.BatteryActivity")),
+ new Intent().setComponent(new ComponentName("com.htc.pitroad", "com.htc.pitroad.landingpage.activity.LandingPageActivity")),
+ new Intent().setComponent(new ComponentName("com.asus.mobilemanager", "com.asus.mobilemanager.MainActivity")),
+ new Intent().setComponent(new ComponentName("com.transsion.phonemanager", "com.itel.autobootmanager.activity.AutoBootMgrActivity"))
);
diff --git a/app/src/main/java/com/capstone/foodify/Activity/OrderActivity.java b/app/src/main/java/com/capstone/foodify/Activity/OrderActivity.java
index 936ffc0..248f902 100644
--- a/app/src/main/java/com/capstone/foodify/Activity/OrderActivity.java
+++ b/app/src/main/java/com/capstone/foodify/Activity/OrderActivity.java
@@ -63,6 +63,8 @@ public class OrderActivity extends AppCompatActivity {
viewPagerAdapter = new ViewPagerAdapter(this);
viewPager2.setAdapter(viewPagerAdapter);
+ viewPager2.setUserInputEnabled(false);
+
orderActivity = this;
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
diff --git a/app/src/main/java/com/capstone/foodify/Activity/SignInActivity.java b/app/src/main/java/com/capstone/foodify/Activity/SignInActivity.java
index 68013a5..eb0bf7c 100644
--- a/app/src/main/java/com/capstone/foodify/Activity/SignInActivity.java
+++ b/app/src/main/java/com/capstone/foodify/Activity/SignInActivity.java
@@ -54,15 +54,18 @@ public class SignInActivity extends AppCompatActivity {
private String email, password = null;
private TextView txt_countdown, txt_verify_email;
private LinearLayout countdown_layout;
+ private boolean isCounting = false;
private final CountDownTimer count = new CountDownTimer(60000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
+ isCounting = true;
txt_countdown.setText(millisUntilFinished / 1000 + " giây");
}
@Override
public void onFinish() {
+ isCounting = false;
countdown_layout.setVisibility(View.GONE);
txt_verify_email.setVisibility(View.VISIBLE);
@@ -275,27 +278,44 @@ public class SignInActivity extends AppCompatActivity {
} else {
//Email user not verify
- //Count down resend code
- countdown_layout.setVisibility(View.VISIBLE);
- count.start();
- //Send email verify
- user.sendEmailVerification();
+ if(!isCounting){
- txt_verify_email.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- //When user click on the text
+ //UI
+ txt_verify_email.setVisibility(View.GONE);
+ countdown_layout.setVisibility(View.VISIBLE);
- //Count down resend code
- countdown_layout.setVisibility(View.VISIBLE);
- count.start();
+ //Count down resend code
+ count.start();
+ //Send email verify
+ user.sendEmailVerification();
- //Send email verify
- user.sendEmailVerification();
+ txt_verify_email.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ //When user click on the text
- txt_verify_email.setVisibility(View.GONE);
- }
- });
+ //Count down resend code
+ countdown_layout.setVisibility(View.VISIBLE);
+ count.start();
+
+ //Send email verify
+ user.sendEmailVerification().addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if(task.isSuccessful()){
+ //Send email success
+ Toast.makeText(SignInActivity.this, "Đã gửi email thành công!", Toast.LENGTH_SHORT).show();
+ } else {
+ //Send email failed
+ Toast.makeText(SignInActivity.this, "Đã có lỗi xảy ra!", Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+ txt_verify_email.setVisibility(View.GONE);
+ }
+ });
+ }
//Log out user
mAuth.signOut();
@@ -306,7 +326,7 @@ public class SignInActivity extends AppCompatActivity {
}
} else {
- showNotification(DialogStyle.RAINBOW, DialogType.WARNING, "Thông tin đăng nhập không đúng! Vui lòng kiểm tra và thử lại!");
+ showNotification(DialogStyle.TOASTER, DialogType.WARNING, "Thông tin đăng nhập không đúng! Vui lòng kiểm tra và thử lại!");
//Dismiss progress bar
progressLayout.setVisibility(View.GONE);
diff --git a/app/src/main/java/com/capstone/foodify/Activity/VerifyAccountActivity.java b/app/src/main/java/com/capstone/foodify/Activity/VerifyAccountActivity.java
index edc92eb..f52e2b4 100644
--- a/app/src/main/java/com/capstone/foodify/Activity/VerifyAccountActivity.java
+++ b/app/src/main/java/com/capstone/foodify/Activity/VerifyAccountActivity.java
@@ -43,6 +43,7 @@ import com.google.android.material.button.MaterialButton;
import com.google.firebase.FirebaseException;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
+import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.auth.PhoneAuthCredential;
import com.google.firebase.auth.PhoneAuthOptions;
import com.google.firebase.auth.PhoneAuthProvider;
@@ -267,61 +268,89 @@ public class VerifyAccountActivity extends AppCompatActivity {
code
);
- if(phoneAuthCredential.getSmsCode().equals(code)){
- //Create user account
- mAuth.createUserWithEmailAndPassword(user.getEmail(), password)
- .addOnCompleteListener(this, new OnCompleteListener() {
+ mAuth.signInWithCredential(phoneAuthCredential).addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if(task.isSuccessful()){
+ //Verify
+
+ FirebaseUser phoneUser = task.getResult().getUser();
+ assert phoneUser != null;
+ phoneUser.delete().addOnCompleteListener(new OnCompleteListener() {
@Override
- public void onComplete(@NonNull Task task) {
- if(task.isSuccessful()){
- //Add information user to server
- FoodApi.apiService.register(user).enqueue(new Callback() {
- @Override
- public void onResponse(Call call, Response response) {
-
- if(response.code() == 200){
- progressLayout.setVisibility(View.GONE);
- //Create user success;
-
- new AestheticDialog.Builder(VerifyAccountActivity.this, DialogStyle.FLAT, DialogType.SUCCESS)
- .setTitle("Thông báo!")
- .setMessage("Đã tạo tài khoản thành công!")
- .setCancelable(false)
- .setOnClickListener(new OnDialogClickListener() {
- @Override
- public void onClick(@NonNull AestheticDialog.Builder dialog) {
- dialog.dismiss();
- FirebaseAuth.getInstance().signOut();
- startActivity(new Intent(VerifyAccountActivity.this, SignInActivity.class));
- finish();
- }
- })
- .show();
- } else {
- progressLayout.setVisibility(View.GONE);
- Toast.makeText(VerifyAccountActivity.this, "Lỗi hệ thống! Code: " + response.code(), Toast.LENGTH_SHORT).show();
- }
- }
-
- @Override
- public void onFailure(Call call, Throwable t) {
- progressLayout.setVisibility(View.GONE);
- showErrorText(t.toString());
- Log.e(TAG, t.toString());
- }
- });
- } else {
- progressLayout.setVisibility(View.GONE);
- Common.showErrorServerNotification(VerifyAccountActivity.this, "Đã có lỗi kết nối! Vui lòng thử lại sau!");
- }
+ public void onComplete(@NonNull Task task) {
+ createUserAccount();
}
});
- }
-
+ } else {
+ //Not verify
+ Common.notificationDialog(VerifyAccountActivity.this, DialogStyle.TOASTER, DialogType.ERROR, "Thông báo!", "Mã OTP sai! Vui lòng kiểm tra lại");
+ progressLayout.setVisibility(View.GONE);
+ }
+ }
+ });
}
}
+ private void createUserAccount() {
+ //Create user account
+ mAuth.createUserWithEmailAndPassword(user.getEmail(), password)
+ .addOnCompleteListener(this, new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if(task.isSuccessful()){
+ //Add information user to server
+ FoodApi.apiService.register(user).enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+
+ if(response.code() == 200){
+ progressLayout.setVisibility(View.GONE);
+ //Create user success;
+
+ //Send email
+ FirebaseUser firebaseUser = task.getResult().getUser();
+ assert firebaseUser != null;
+ firebaseUser.sendEmailVerification();
+
+ new AestheticDialog.Builder(VerifyAccountActivity.this, DialogStyle.FLAT, DialogType.SUCCESS)
+ .setTitle("Đã tạo tài khoản thành công!")
+ .setMessage("Hiện tại bạn còn 1 bước xác thực email để có thể đăng nhập app! Vui lòng kiểm tra email và làm theo hướng dẫn " +
+ "để có thể tiếp tục!")
+ .setCancelable(false)
+ .setOnClickListener(new OnDialogClickListener() {
+ @Override
+ public void onClick(@NonNull AestheticDialog.Builder dialog) {
+ dialog.dismiss();
+
+ FirebaseAuth.getInstance().signOut();
+ startActivity(new Intent(VerifyAccountActivity.this, SignInActivity.class));
+ finish();
+ }
+ })
+ .show();
+ } else {
+ progressLayout.setVisibility(View.GONE);
+ Toast.makeText(VerifyAccountActivity.this, "Lỗi hệ thống! Code: " + response.code(), Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ progressLayout.setVisibility(View.GONE);
+ showErrorText(t.toString());
+ Log.e(TAG, t.toString());
+ }
+ });
+ } else {
+ progressLayout.setVisibility(View.GONE);
+ Common.showErrorServerNotification(VerifyAccountActivity.this, "Đã có lỗi kết nối! Vui lòng thử lại sau!");
+ }
+ }
+ });
+ }
+
private void showErrorText(String msg){
errorText.setText(msg);
}
diff --git a/app/src/main/res/layout/activity_food_detail.xml b/app/src/main/res/layout/activity_food_detail.xml
index 0922ac0..769d8af 100644
--- a/app/src/main/res/layout/activity_food_detail.xml
+++ b/app/src/main/res/layout/activity_food_detail.xml
@@ -360,29 +360,29 @@
android:id="@+id/user_comment_layout"
>
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
+
+
-
-
+ android:layout_height="wrap_content">
+
+
-
-
-
+