mirror of
https://github.com/Nezumi-2711/Foodify.git
synced 2026-09-22 13:38:41 +00:00
Add dialog rating for user
This commit is contained in:
@@ -1,18 +1,25 @@
|
||||
package com.capstone.foodify.Activity;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.capstone.foodify.API.FoodApi;
|
||||
import com.capstone.foodify.Model.Food.Food;
|
||||
import com.capstone.foodify.Model.Food.ImageFood;
|
||||
@@ -25,11 +32,10 @@ import com.denzcoskun.imageslider.models.SlideModel;
|
||||
import com.mcdev.quantitizerlibrary.AnimationStyle;
|
||||
import com.mcdev.quantitizerlibrary.HorizontalQuantitizer;
|
||||
import com.mcdev.quantitizerlibrary.QuantitizerListener;
|
||||
import com.willy.ratingbar.RotationRatingBar;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
@@ -53,6 +59,7 @@ public class FoodDetailActivity extends AppCompatActivity {
|
||||
private float totalPrice, price;
|
||||
private RecyclerView recyclerView_review;
|
||||
private ReviewAdapter reviewAdapter;
|
||||
private Button rating_button;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -80,6 +87,7 @@ public class FoodDetailActivity extends AppCompatActivity {
|
||||
countRating_txt = findViewById(R.id.count_rating_text_view);
|
||||
description_content_txt = findViewById(R.id.content_description_text_view);
|
||||
recyclerView_review = findViewById(R.id.recycler_view_review);
|
||||
rating_button = findViewById(R.id.rating_button);
|
||||
|
||||
reviewAdapter = new ReviewAdapter(this);
|
||||
|
||||
@@ -129,6 +137,13 @@ public class FoodDetailActivity extends AppCompatActivity {
|
||||
onBackPressed();
|
||||
}
|
||||
});
|
||||
|
||||
rating_button.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
openReviewDialog(Gravity.CENTER);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private List<Review> getListReview(){
|
||||
@@ -246,4 +261,43 @@ public class FoodDetailActivity extends AppCompatActivity {
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void openReviewDialog(int gravity){
|
||||
final Dialog dialog = new Dialog(this);
|
||||
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
dialog.setContentView(R.layout.dialog_review);
|
||||
|
||||
Window window = dialog.getWindow();
|
||||
if(window == null)
|
||||
return;
|
||||
|
||||
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
|
||||
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
WindowManager.LayoutParams windowAttributes = window.getAttributes();
|
||||
windowAttributes.gravity = gravity;
|
||||
window.setAttributes(windowAttributes);
|
||||
|
||||
if(Gravity.BOTTOM == gravity){
|
||||
dialog.setCancelable(true);
|
||||
} else {
|
||||
dialog.setCancelable(false);
|
||||
}
|
||||
|
||||
EditText review_content = dialog.findViewById(R.id.edit_text_review);
|
||||
RotationRatingBar ratingBar = dialog.findViewById(R.id.rating_bar);
|
||||
Button confirm = dialog.findViewById(R.id.confirm_button);
|
||||
Button cancel = dialog.findViewById(R.id.cancel_button);
|
||||
|
||||
cancel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
//TO DO
|
||||
|
||||
dialog.show();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<solid android:color="@color/primaryDark" />
|
||||
<corners android:topLeftRadius="16dp" android:topRightRadius="16dp"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/gray"/>
|
||||
<corners android:radius="10dp"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/primaryDark"/>
|
||||
<corners android:radius="10dp"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<solid android:color="@color/white" />
|
||||
<corners android:radius="16dp"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<solid android:color="@color/white"/>
|
||||
<corners android:radius="10dp"/>
|
||||
<stroke android:width="0.5dp"
|
||||
android:color="@color/gray"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,99 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="310dp"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:background="@drawable/bg_white_corner_16">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_view_1"
|
||||
android:text="Đánh giá"
|
||||
android:textSize="22sp"
|
||||
android:fontFamily="@font/opensans"
|
||||
android:textColor="@color/black"
|
||||
android:textAlignment="center"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_color_corner_16"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:padding="7dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_view_2"
|
||||
android:text="Bạn vui lòng đánh giá tại đây!"
|
||||
android:textSize="15sp"
|
||||
android:fontFamily="@font/opensans"
|
||||
android:textColor="@color/black"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_view_1"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
/>
|
||||
|
||||
<com.willy.ratingbar.RotationRatingBar
|
||||
android:id="@+id/rating_bar"
|
||||
app:srb_numStars="5"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
|
||||
app:layout_constraintTop_toBottomOf="@id/text_view_2"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edit_text_review"
|
||||
android:textSize="15sp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="Đánh giá về món ăn..."
|
||||
android:gravity="top"
|
||||
android:lines="5"
|
||||
android:inputType="textMultiLine"
|
||||
android:background="@drawable/bg_white_corner_border_gray"
|
||||
app:layout_constraintTop_toBottomOf="@id/rating_bar"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:padding="10dp"
|
||||
/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/confirm_button"
|
||||
android:text="Gửi"
|
||||
android:textSize="15sp"
|
||||
android:layout_width="90dp"
|
||||
android:textStyle="bold"
|
||||
android:fontFamily="@font/opensans"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_primary_color_dark_corner"
|
||||
android:layout_marginTop="10dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/edit_text_review"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/cancel_button"
|
||||
/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/cancel_button"
|
||||
android:text="Thoát"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="bold"
|
||||
android:fontFamily="@font/opensans"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_grey_color_corner"
|
||||
android:layout_marginTop="10dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/edit_text_review"
|
||||
app:layout_constraintStart_toEndOf="@id/confirm_button"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -8,4 +8,5 @@
|
||||
<color name="secondary">#F99928</color>
|
||||
<color name="graylight">#ACA5A5</color>
|
||||
<color name="red">#FF0000</color>
|
||||
<color name="primaryDark">#1EAE94</color>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user