mirror of
https://github.com/Nezumi-2711/Foodify.git
synced 2026-09-22 13:38:41 +00:00
Fix bug and improve layout
This commit is contained in:
Generated
+17
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetDropDown">
|
||||
<targetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="QUICK_BOOT_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="VIRTUAL_DEVICE_PATH" />
|
||||
<value value="C:\Users\phanh\.android\avd\Pixel_3a_API_33_x86_64.avd" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</targetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2023-04-14T05:04:45.947805500Z" />
|
||||
</component>
|
||||
</project>
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="ClangTidy" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="clangTidyChecks" value="-*,cert-dcl21-cpp,cert-dcl58-cpp,cert-err34-c,cert-err52-cpp,cert-err60-cpp,cert-flp30-c,cert-msc50-cpp,cert-msc51-cpp,cert-str34-c,cppcoreguidelines-interfaces-global-init,cppcoreguidelines-narrowing-conversions,cppcoreguidelines-pro-type-member-init,cppcoreguidelines-pro-type-static-cast-downcast,cppcoreguidelines-slicing,google-default-arguments,google-explicit-constructor,google-runtime-operator,hicpp-exception-baseclass,hicpp-multiway-paths-covered,mpi-buffer-deref,mpi-type-mismatch,openmp-use-default-none,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-string-concatenation,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-trivially-destructible,performance-type-promotion-in-math-fn,performance-unnecessary-copy-initialization,performance-unnecessary-value-param" />
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
||||
Generated
+1
-2
@@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17_PREVIEW" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
||||
+4
-2
@@ -26,7 +26,7 @@ android {
|
||||
minSdk 26
|
||||
targetSdk 32
|
||||
versionCode 1
|
||||
versionName "0.1.2"
|
||||
versionName "0.3.2"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
signingConfig signingConfigs.release
|
||||
@@ -96,6 +96,7 @@ dependencies {
|
||||
implementation 'com.saadahmedev.popup-dialog:popup-dialog:1.0.2'
|
||||
implementation 'com.github.gabriel-TheCode:AestheticDialogs:1.3.6'
|
||||
implementation 'io.github.pilgr:paperdb:2.7.2'
|
||||
implementation 'com.github.techinessoverloaded:progress-dialog:1.5.1'
|
||||
|
||||
implementation 'androidx.browser:browser:1.5.0'
|
||||
|
||||
@@ -105,7 +106,8 @@ dependencies {
|
||||
implementation platform('com.google.firebase:firebase-bom:31.2.3')
|
||||
implementation("com.squareup.okhttp3:okhttp:4.10.0")
|
||||
|
||||
|
||||
// ADD the API-only library to all variants
|
||||
implementation 'com.google.firebase:firebase-appdistribution-api:16.0.0-beta07'
|
||||
implementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta08'
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -12,7 +12,7 @@
|
||||
"filters": [],
|
||||
"attributes": [],
|
||||
"versionCode": 1,
|
||||
"versionName": "0.1.2",
|
||||
"versionName": "0.3.2",
|
||||
"outputFile": "app-release.apk"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -61,12 +61,14 @@ import com.google.android.gms.tasks.OnSuccessListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||
import com.google.android.material.navigation.NavigationBarView;
|
||||
import com.google.firebase.appdistribution.FirebaseAppDistribution;
|
||||
import com.google.firebase.appdistribution.InterruptionLevel;
|
||||
import com.google.firebase.appdistribution.AppDistributionRelease;
|
||||
import com.google.firebase.appdistribution.OnProgressListener;
|
||||
import com.google.firebase.appdistribution.UpdateProgress;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.auth.FirebaseUser;
|
||||
import com.google.firebase.auth.GetTokenResult;
|
||||
import com.google.firebase.messaging.FirebaseMessaging;
|
||||
import com.techiness.progressdialoglibrary.ProgressDialog;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
@@ -79,13 +81,11 @@ import retrofit2.Response;
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
public static boolean slider, shop, recommendFood, recentFood, loadUser;
|
||||
private final FirebaseAppDistribution firebaseAppDistribution = FirebaseAppDistribution.getInstance();
|
||||
private ViewPager2 viewPager2;
|
||||
private BottomNavigationView bottomNavigationView;
|
||||
private FirebaseAuth mAuth;
|
||||
private FirebaseUser user;
|
||||
private static ConstraintLayout progressLayout;
|
||||
|
||||
//Location
|
||||
private static final int REQUEST_CHECK_SETTINGS = 100;
|
||||
private static final long UPDATE_INTERVAL_IN_MILLISECONDS = 1000;
|
||||
@@ -169,6 +169,56 @@ public class MainActivity extends AppCompatActivity {
|
||||
//Initialize Firebase Auth
|
||||
mAuth = FirebaseAuth.getInstance();
|
||||
|
||||
|
||||
if(Common.firebaseAppDistribution.isTesterSignedIn()){
|
||||
|
||||
//Customise progress dialog
|
||||
ProgressDialog progressDialog = new ProgressDialog(this);
|
||||
progressDialog.setTheme(ProgressDialog.THEME_LIGHT);
|
||||
progressDialog.setMode(ProgressDialog.MODE_DETERMINATE);
|
||||
progressDialog.setProgress(0);
|
||||
progressDialog.setMessage("Xin vui lòng chờ...");
|
||||
progressDialog.showProgressTextAsFraction(true);
|
||||
progressDialog.setProgressTintList(getColorStateList(R.color.primaryColor));
|
||||
progressDialog.setSecondaryProgressTintList(getColorStateList(R.color.primaryLightColor));
|
||||
|
||||
Common.firebaseAppDistribution.checkForNewRelease().addOnCompleteListener(new OnCompleteListener<AppDistributionRelease>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<AppDistributionRelease> task) {
|
||||
if(task.isSuccessful()){
|
||||
AppDistributionRelease appDistributionRelease = task.getResult();
|
||||
|
||||
if(appDistributionRelease != null){
|
||||
progressDialog.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Common.firebaseAppDistribution.updateIfNewReleaseAvailable().addOnProgressListener(new OnProgressListener() {
|
||||
@Override
|
||||
public void onProgressUpdate(@NonNull UpdateProgress updateProgress) {
|
||||
double totalBytes = updateProgress.getApkFileTotalBytes();
|
||||
|
||||
double number = (updateProgress.getApkBytesDownloaded() / totalBytes) * 100;
|
||||
|
||||
progressDialog.setProgress((int) number);
|
||||
progressDialog.setSecondaryProgress((int) number + 10);
|
||||
|
||||
if(number == 100){
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
}
|
||||
}).addOnCompleteListener(new OnCompleteListener<Void>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<Void> task) {
|
||||
if(!task.isSuccessful()){
|
||||
progressDialog.dismiss();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//Paper Init
|
||||
Paper.init(this);
|
||||
|
||||
@@ -179,14 +229,12 @@ public class MainActivity extends AppCompatActivity {
|
||||
startPowerSaverIntent(this);
|
||||
checkNotificationPermission();
|
||||
|
||||
firebaseAppDistribution.showFeedbackNotification(
|
||||
// Text providing notice to your testers about collection and
|
||||
// processing of their feedback data
|
||||
"Nhấp vào đây để đánh giá app Foodify!",
|
||||
// The level of interruption for the notification
|
||||
InterruptionLevel.HIGH);
|
||||
|
||||
getLocation();
|
||||
|
||||
}
|
||||
|
||||
private void getLocation() {
|
||||
if (Common.CURRENT_LOCATION == null) {
|
||||
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
|
||||
mSettingsClient = LocationServices.getSettingsClient(this);
|
||||
@@ -212,8 +260,6 @@ public class MainActivity extends AppCompatActivity {
|
||||
|
||||
checkLocationPermission();
|
||||
|
||||
}
|
||||
|
||||
//Init location user
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@@ -229,6 +275,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
}, 4000);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void getTokenFCM(){
|
||||
FirebaseMessaging.getInstance().getToken()
|
||||
@@ -355,8 +402,8 @@ public class MainActivity extends AppCompatActivity {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
|
||||
if(requestCode == LOCATION_REQUEST_CODE){
|
||||
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
|
||||
Toast.makeText(this, "Đã cấp quyền thành công!", Toast.LENGTH_SHORT).show();
|
||||
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
|
||||
getLocation();
|
||||
} else {
|
||||
showDialogPermission("Hãy cho ứng dụng truy cập vào vị trí của bạn để trải nghiệm tốt hơn!");
|
||||
}
|
||||
|
||||
@@ -479,7 +479,7 @@ public class OrderCheckOutActivity extends AppCompatActivity {
|
||||
new AestheticDialog.Builder(OrderCheckOutActivity.this, DialogStyle.FLAT, DialogType.SUCCESS)
|
||||
.setTitle("Thành công!")
|
||||
.setMessage("Bạn đã đặt hàng thành công cho đơn hàng #" + transactionId)
|
||||
.setCancelable(true)
|
||||
.setCancelable(false)
|
||||
.setOnClickListener(new OnDialogClickListener() {
|
||||
@Override
|
||||
public void onClick(@NonNull AestheticDialog.Builder builder) {
|
||||
|
||||
@@ -1,28 +1,25 @@
|
||||
package com.capstone.foodify.Activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkCapabilities;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.IntRange;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import com.capstone.foodify.API.FoodApiToken;
|
||||
import com.capstone.foodify.Common;
|
||||
import com.capstone.foodify.Fragment.HomeFragment;
|
||||
import com.capstone.foodify.Model.User;
|
||||
import com.capstone.foodify.R;
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.OnFailureListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.material.button.MaterialButton;
|
||||
import com.google.android.material.textfield.TextInputEditText;
|
||||
@@ -43,7 +40,7 @@ import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
public class SignInActivity extends AppCompatActivity {
|
||||
private static final String TAG = "SignInActivity";
|
||||
|
||||
private FirebaseAuth mAuth;
|
||||
private TextView signUp_textView, forgotPassword_textView;
|
||||
private TextInputLayout textInput_email, textInput_password;
|
||||
@@ -52,34 +49,10 @@ public class SignInActivity extends AppCompatActivity {
|
||||
private ImageView back_image;
|
||||
private ConstraintLayout progressLayout;
|
||||
private String email, password = null;
|
||||
|
||||
@IntRange(from = 0, to = 3)
|
||||
public int getConnectionType() {
|
||||
int result = 0; // Returns connection type. 0: none; 1: mobile data; 2: wifi
|
||||
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
if (cm != null) {
|
||||
NetworkCapabilities capabilities = cm.getNetworkCapabilities(cm.getActiveNetwork());
|
||||
if (capabilities != null) {
|
||||
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
|
||||
result = 2;
|
||||
} else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
|
||||
result = 1;
|
||||
} else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) {
|
||||
result = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
//Check internet connection
|
||||
if(getConnectionType() == 0){
|
||||
Common.showErrorInternetConnectionNotification(this);
|
||||
}
|
||||
|
||||
//Init firebase app
|
||||
FirebaseApp.initializeApp(SignInActivity.this);
|
||||
setContentView(R.layout.activity_sign_in);
|
||||
@@ -274,7 +247,8 @@ public class SignInActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<User> call, Throwable t) {
|
||||
Log.e(TAG, t.toString());
|
||||
System.out.println("ERROR: " + t);
|
||||
Common.showErrorServerNotification(SignInActivity.this, "Không thể đăng nhập tài khoản! Vui lòng thử lại sau!");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.capstone.foodify.Fragment.HomeFragment;
|
||||
import com.capstone.foodify.Model.Basket;
|
||||
import com.capstone.foodify.Model.Food;
|
||||
import com.capstone.foodify.Model.User;
|
||||
import com.google.firebase.appdistribution.FirebaseAppDistribution;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.auth.FirebaseUser;
|
||||
import com.thecode.aestheticdialogs.AestheticDialog;
|
||||
@@ -41,7 +42,7 @@ import retrofit2.Response;
|
||||
|
||||
public class Common {
|
||||
//https://foodify-backend-production.up.railway.app/
|
||||
public static final String BASE_URL = "http://192.168.1.183:8080/api/";
|
||||
public static final String BASE_URL = "https://foodify-backend-production.up.railway.app/api/";
|
||||
public static String FCM_TOKEN = null;
|
||||
public static Location CURRENT_LOCATION = null;
|
||||
public static final String MAP_API = "AIzaSyAY14Ic32UP26Hg6GILznOfbBihiY5BUxw";
|
||||
@@ -55,6 +56,7 @@ public class Common {
|
||||
public static String TOKEN = null;
|
||||
public static User CURRENT_USER = null;
|
||||
public static String FINAL_SHOP = null;
|
||||
public static final FirebaseAppDistribution firebaseAppDistribution = FirebaseAppDistribution.getInstance();
|
||||
|
||||
public static String changeCurrencyUnit(float price){
|
||||
Locale locale = new Locale("vi", "VN");
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.capstone.foodify.Fragment;
|
||||
|
||||
import static com.capstone.foodify.Common.firebaseAppDistribution;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
@@ -9,6 +11,7 @@ import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.capstone.foodify.Activity.AccountAndProfileActivity;
|
||||
@@ -18,6 +21,9 @@ import com.capstone.foodify.Activity.MainActivity;
|
||||
import com.capstone.foodify.Activity.OrderActivity;
|
||||
import com.capstone.foodify.Common;
|
||||
import com.capstone.foodify.R;
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.appdistribution.FirebaseAppDistribution;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.saadahmedsoft.popupdialog.PopupDialog;
|
||||
@@ -29,7 +35,7 @@ import io.paperdb.Paper;
|
||||
|
||||
public class ProfileFragment extends Fragment {
|
||||
private static final String TAG = "ProfileFragment";
|
||||
LinearLayout account_and_profile, manage_address, favorite_food, order_history, log_out;
|
||||
LinearLayout account_and_profile, manage_address, favorite_food, order_history, feed_back, log_out;
|
||||
PopupDialog popupDialog;
|
||||
TextView user_name;
|
||||
RoundedImageView profile_avatar;
|
||||
@@ -40,13 +46,7 @@ public class ProfileFragment extends Fragment {
|
||||
View rootView = inflater.inflate(R.layout.fragment_profile, container, false);
|
||||
|
||||
//Init component
|
||||
account_and_profile = rootView.findViewById(R.id.account_and_profile);
|
||||
manage_address = rootView.findViewById(R.id.manage_address);
|
||||
favorite_food = rootView.findViewById(R.id.favorite_food);
|
||||
order_history = rootView.findViewById(R.id.order_history);
|
||||
log_out = rootView.findViewById(R.id.log_out);
|
||||
user_name = rootView.findViewById(R.id.user_name);
|
||||
profile_avatar = rootView.findViewById(R.id.profile_avatar);
|
||||
initComponent(rootView);
|
||||
|
||||
popupDialog = PopupDialog.getInstance(getContext());
|
||||
|
||||
@@ -90,6 +90,13 @@ public class ProfileFragment extends Fragment {
|
||||
}
|
||||
});
|
||||
|
||||
feed_back.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
firebaseAppDistribution.startFeedback("Cảm ơn vì sự đóng góp ý kiến từ các bạn!");
|
||||
}
|
||||
});
|
||||
|
||||
log_out.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -129,6 +136,17 @@ public class ProfileFragment extends Fragment {
|
||||
return rootView;
|
||||
}
|
||||
|
||||
private void initComponent(View rootView) {
|
||||
account_and_profile = rootView.findViewById(R.id.account_and_profile);
|
||||
manage_address = rootView.findViewById(R.id.manage_address);
|
||||
favorite_food = rootView.findViewById(R.id.favorite_food);
|
||||
order_history = rootView.findViewById(R.id.order_history);
|
||||
log_out = rootView.findViewById(R.id.log_out);
|
||||
user_name = rootView.findViewById(R.id.user_name);
|
||||
profile_avatar = rootView.findViewById(R.id.profile_avatar);
|
||||
feed_back = rootView.findViewById(R.id.feedback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 583 B |
@@ -117,7 +117,7 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/total_text_view"
|
||||
android:text="12500"
|
||||
android:text="900.000 ₫"
|
||||
android:fontFamily="@font/opensans"
|
||||
android:textSize="24sp"
|
||||
android:textColor="@android:color/white"
|
||||
|
||||
@@ -33,9 +33,12 @@
|
||||
android:textColor="@color/black"
|
||||
android:textSize="25sp"
|
||||
android:fontFamily="@font/opensans"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginStart="50dp"
|
||||
android:layout_marginEnd="50dp"
|
||||
android:textAlignment="center"
|
||||
app:layout_constraintTop_toBottomOf="@id/profile_avatar"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
@@ -90,7 +93,7 @@
|
||||
android:id="@+id/manage_address"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/account_and_profile"
|
||||
@@ -135,7 +138,7 @@
|
||||
android:id="@+id/favorite_food"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/manage_address"
|
||||
@@ -180,7 +183,7 @@
|
||||
android:id="@+id/order_history"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/favorite_food"
|
||||
@@ -221,10 +224,10 @@
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/log_out"
|
||||
android:id="@+id/feedback"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="40dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/order_history"
|
||||
@@ -233,6 +236,50 @@
|
||||
android:orientation="horizontal"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ic_feedback"
|
||||
android:src="@drawable/feedback"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
tools:ignore="ContentDescription"
|
||||
app:tint="@color/primaryColor"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_weight="1"
|
||||
android:fontFamily="@font/opensans"
|
||||
android:text="Đóng góp ý kiến"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="18sp"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:rotation="180"
|
||||
android:src="@drawable/back_button"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/log_out"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/feedback"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:orientation="horizontal"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ic_log_out"
|
||||
android:src="@drawable/logout"
|
||||
|
||||
@@ -46,12 +46,13 @@
|
||||
android:orientation="horizontal"
|
||||
android:background="@color/white"
|
||||
android:layout_margin="7dp"
|
||||
android:gravity="center"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/image_view"
|
||||
android:layout_width="110dp"
|
||||
android:layout_height="110dp"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="100dp"
|
||||
android:src="@drawable/food"
|
||||
android:scaleType="centerCrop"
|
||||
app:riv_corner_radius="10dip"
|
||||
@@ -74,7 +75,6 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="47dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
app:layout_constraintStart_toEndOf="@id/image_view"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@@ -120,7 +120,7 @@
|
||||
<TextView
|
||||
android:id="@+id/price_text_view"
|
||||
android:text="$5.00"
|
||||
android:textSize="25sp"
|
||||
android:textSize="23sp"
|
||||
android:textColor="@color/primaryColor"
|
||||
android:fontFamily="@font/bebas"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -143,17 +143,17 @@
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0.4"
|
||||
android:layout_weight="0.5"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txt_increment"
|
||||
android:text="+"
|
||||
android:textSize="19sp"
|
||||
android:textSize="21sp"
|
||||
android:padding="5dp"
|
||||
android:textColor="@color/primaryColor"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center"
|
||||
android:layout_weight="0.3"
|
||||
@@ -168,7 +168,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center"
|
||||
android:layout_weight="0.6"
|
||||
android:layout_weight="0.5"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
@@ -178,7 +178,7 @@
|
||||
android:padding="5dp"
|
||||
android:textColor="@color/primaryColor"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_weight="0.3"
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<color name="white">#FFFFFFFF</color>
|
||||
|
||||
<color name="primaryColor">#ff8084</color>
|
||||
<color name="primaryLightColor">#FF9FA1</color>
|
||||
<color name="primaryDarkColor">#CF2E33</color>
|
||||
<color name="gray">#A3A3A3</color>
|
||||
<color name="secondary">#F99928</color>
|
||||
|
||||
Reference in New Issue
Block a user