Add Slide Banner

This commit is contained in:
Nezumi2711
2022-06-29 19:34:42 +07:00
parent e0ee6f1f8a
commit 3f65237418
9 changed files with 155 additions and 31 deletions
@@ -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"
+1 -1
View File
@@ -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>