Add dialog rating for user

This commit is contained in:
Nezumi
2023-02-20 21:18:59 +07:00
parent e2f45f456e
commit f77e1cb72f
8 changed files with 190 additions and 6 deletions
@@ -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>
+99
View File
@@ -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>
+1
View File
@@ -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>