mirror of
https://github.com/Nezumi-2711/PRM392.git
synced 2026-09-22 20:00:53 +00:00
Add Slide Banner
This commit is contained in:
@@ -197,12 +197,12 @@ public class FoodDetail extends AppCompatActivity implements RatingDialogListene
|
||||
.setDefaultRating(1)
|
||||
.setTitle("Đánh giá món ăn này")
|
||||
.setDescription("Vui lòng đánh giá và để lại bình luận dưới đây")
|
||||
.setTitleTextColor(R.color.purple_500)
|
||||
.setDescriptionTextColor(R.color.colorPrimary)
|
||||
.setTitleTextColor(R.color.black)
|
||||
.setDescriptionTextColor(R.color.black)
|
||||
.setHint("Điền đánh giá bạn tại đây")
|
||||
.setHintTextColor(R.color.colorAccent)
|
||||
.setCommentTextColor(android.R.color.white)
|
||||
.setCommentBackgroundColor(R.color.colorPrimaryDark)
|
||||
.setHintTextColor(R.color.purple_500)
|
||||
.setCommentTextColor(R.color.purple_500)
|
||||
.setCommentBackgroundColor(R.color.teal_200)
|
||||
.setWindowAnimation(R.style.RatingDialogFadeAnim)
|
||||
.create(FoodDetail.this)
|
||||
.show();
|
||||
|
||||
@@ -26,6 +26,10 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.andremion.counterfab.CounterFab;
|
||||
import com.daimajia.slider.library.Animations.DescriptionAnimation;
|
||||
import com.daimajia.slider.library.SliderLayout;
|
||||
import com.daimajia.slider.library.SliderTypes.BaseSliderView;
|
||||
import com.daimajia.slider.library.SliderTypes.TextSliderView;
|
||||
import com.firebase.ui.database.FirebaseRecyclerAdapter;
|
||||
import com.firebase.ui.database.FirebaseRecyclerOptions;
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
@@ -33,14 +37,18 @@ import com.google.android.gms.tasks.OnFailureListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
import com.google.android.material.navigation.NavigationView;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
import com.google.firebase.database.DatabaseReference;
|
||||
import com.google.firebase.database.FirebaseDatabase;
|
||||
import com.google.firebase.database.ValueEventListener;
|
||||
import com.google.firebase.iid.FirebaseInstanceId;
|
||||
import com.rengwuxian.materialedittext.MaterialEditText;
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.waterbase.foodify.Common.Common;
|
||||
import com.waterbase.foodify.Database.Database;
|
||||
import com.waterbase.foodify.Interface.ItemClickListener;
|
||||
import com.waterbase.foodify.Model.Banner;
|
||||
import com.waterbase.foodify.Model.Category;
|
||||
import com.waterbase.foodify.Model.Token;
|
||||
import com.waterbase.foodify.ViewHolder.MenuViewHolder;
|
||||
@@ -68,6 +76,10 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati
|
||||
|
||||
CounterFab fab;
|
||||
|
||||
//Slider
|
||||
HashMap<String, String> image_list;
|
||||
SliderLayout mSlider;
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase));
|
||||
@@ -198,12 +210,77 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati
|
||||
|
||||
updateToken(FirebaseInstanceId.getInstance().getToken());
|
||||
|
||||
//Setup Slider
|
||||
setupSlider();
|
||||
|
||||
}
|
||||
|
||||
private void setupSlider() {
|
||||
mSlider = findViewById(R.id.slider);
|
||||
image_list = new HashMap<>();
|
||||
|
||||
DatabaseReference banners = database.getReference("Banner");
|
||||
|
||||
banners.addValueEventListener(new ValueEventListener() {
|
||||
@Override
|
||||
public void onDataChange(DataSnapshot dataSnapshot) {
|
||||
|
||||
for(DataSnapshot postSnapShot: dataSnapshot.getChildren())
|
||||
{
|
||||
Banner banner = postSnapShot.getValue(Banner.class);
|
||||
|
||||
image_list.put(banner.getName() + "@@@" + banner.getId(), banner.getImage());
|
||||
}
|
||||
for(String key: image_list.keySet())
|
||||
{
|
||||
String[] keySplit = key.split("@@@");
|
||||
String nameOfFood = keySplit[0];
|
||||
String idOfFood = keySplit[1];
|
||||
|
||||
//Create Slider
|
||||
TextSliderView textSliderView = new TextSliderView(getBaseContext());
|
||||
textSliderView
|
||||
.description(nameOfFood)
|
||||
.image(image_list.get(key))
|
||||
.setScaleType(BaseSliderView.ScaleType.Fit)
|
||||
.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
|
||||
@Override
|
||||
public void onSliderClick(BaseSliderView slider) {
|
||||
Intent intent = new Intent(Home.this, FoodDetail.class);
|
||||
//Send Food id to another activity
|
||||
intent.putExtras(textSliderView.getBundle());
|
||||
startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
//Add extra bundle
|
||||
textSliderView.bundle(new Bundle());
|
||||
textSliderView.getBundle().putString("FoodId", idOfFood);
|
||||
|
||||
mSlider.addSlider(textSliderView);
|
||||
|
||||
//Remove event after finish
|
||||
banners.removeEventListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancelled(DatabaseError databaseError) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
mSlider.setPresetTransformer(SliderLayout.Transformer.Background2Foreground);
|
||||
mSlider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
|
||||
mSlider.setCustomAnimation(new DescriptionAnimation());
|
||||
mSlider.setDuration(4000);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
adapter.stopListening();
|
||||
mSlider.stopAutoCycle();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.waterbase.foodify.Model;
|
||||
|
||||
public class Banner {
|
||||
private String id, name, image;
|
||||
|
||||
public Banner(String id, String name, String image) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.image = image;
|
||||
}
|
||||
|
||||
public Banner() {
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getImage() {
|
||||
return image;
|
||||
}
|
||||
|
||||
public void setImage(String image) {
|
||||
this.image = image;
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,6 @@
|
||||
package com.waterbase.foodify;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@@ -21,6 +12,13 @@ import android.view.View;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.button.MaterialButton;
|
||||
import com.google.firebase.database.DataSnapshot;
|
||||
import com.google.firebase.database.DatabaseError;
|
||||
@@ -32,7 +30,6 @@ import com.waterbase.foodify.Common.Common;
|
||||
import com.waterbase.foodify.Database.Database;
|
||||
import com.waterbase.foodify.Model.MyResponse;
|
||||
import com.waterbase.foodify.Model.Notification;
|
||||
import com.waterbase.foodify.Model.Order;
|
||||
import com.waterbase.foodify.Model.Request;
|
||||
import com.waterbase.foodify.Model.Sender;
|
||||
import com.waterbase.foodify.Model.Token;
|
||||
@@ -42,9 +39,6 @@ import com.waterbase.foodify.Zalopay.Api.CreateOrder;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
@@ -8,11 +8,22 @@
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||
tools:showIn="@layout/app_bar_home">
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyler_menu"
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.daimajia.slider.library.SliderLayout
|
||||
android:id="@+id/slider"
|
||||
android:layout_margin="5dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyler_menu"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
@@ -32,7 +32,7 @@
|
||||
<RatingBar
|
||||
android:id="@+id/ratingBar"
|
||||
style="?android:attr/ratingBarStyleSmall"
|
||||
android:layout_marginLeft="150dp"
|
||||
android:layout_marginLeft="140dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:rating="3"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<color name="purple_200">#FFBB86FC</color>
|
||||
<color name="purple_500">#FF5353</color>
|
||||
<color name="purple_700">#FF5353</color>
|
||||
<color name="teal_200">#FF03DAC5</color>
|
||||
<color name="teal_200">#ffec3d</color>
|
||||
<color name="teal_700">#FF018786</color>
|
||||
<color name="black">#FF000000</color>
|
||||
<color name="white">#FFFFFFFF</color>
|
||||
|
||||
Reference in New Issue
Block a user