Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.aye.chat.Topics;
- import android.content.Context;
- import android.content.Intent;
- import android.support.v7.widget.RecyclerView;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.PopupMenu;
- import android.widget.TextView;
- import com.aye.chat.Pages.FullScreenImageView;
- import com.aye.chat.ProfileView;
- import com.aye.chat.R;
- import com.aye.chat.Rooms.ChatRoom;
- import com.aye.chat.Updated.Discussion;
- import com.bumptech.glide.Glide;
- import com.bumptech.glide.load.engine.DiskCacheStrategy;
- import com.google.firebase.database.DataSnapshot;
- import com.google.firebase.database.DatabaseError;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.database.ValueEventListener;
- import com.like.LikeButton;
- import com.like.OnLikeListener;
- import java.util.ArrayList;
- import java.util.Collections;
- import de.hdodenhof.circleimageview.CircleImageView;
- public class TopicsAdapter extends RecyclerView.Adapter<TopicsAdapter.ViewHolder>{
- Context c;
- ArrayList<Topic> topics = new ArrayList<>();
- private String username;
- public TopicsAdapter(Context c,String username) {
- this.c = c;
- this.username = username;
- }
- public void updateList(ArrayList<Topic> d){
- topics.addAll(d);
- notifyDataSetChanged();
- }
- @Override
- public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- View v = LayoutInflater.from (parent.getContext ()).inflate (R.layout.topic_card, parent, false);
- return new ViewHolder (v);
- }
- @Override
- public void onBindViewHolder(final ViewHolder holder, final int position) {
- final PopupMenu p = new PopupMenu(c,holder.more);
- p.getMenuInflater().inflate(R.menu.topic_menu, p.getMenu());
- final Topic data = topics.get(position);
- holder.text.setText(data.getCaption());
- holder.name.setText(data.getUsername());
- String id = data.getId();
- //holder.category.setText(data.getCaption());
- long millis = System.currentTimeMillis();
- long posttime = data.getTime();
- long timedifference = millis-posttime;
- final int days = (int) (timedifference / (1000*60*60*24));
- if (days<2){
- holder.time.setText("Today");
- }else {
- holder.time.setText(days+" days ago");
- }
- FirebaseDatabase.getInstance().getReference().child("userdata").child(data.getUsername()).child("pic").addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- Glide.with(c).load(dataSnapshot.getValue(String.class))
- .override(50,50)
- .dontAnimate()
- .placeholder(R.drawable.dog40)
- .skipMemoryCache(true)
- .centerCrop()
- .into(holder.pic);
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- //holder.count.setText(d.child("time").getValue(String.class));
- FirebaseDatabase.getInstance().getReference().child("topics").child("likes").child(data.getId()).child(username).addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(DataSnapshot dataSnapshot) {
- if (dataSnapshot.child("like").exists()){
- holder.like.setImageResource(R.drawable.ic_favorite_red_500_36dp);
- holder.like.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- FirebaseDatabase.getInstance().getReference().child("topics").child("likes").child(data.getId()).child(username).child("like").removeValue();
- }
- });
- }else if(dataSnapshot.child("dislike").exists()) {
- holder.like.setImageResource(R.drawable.brokenheart);
- holder.like.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- FirebaseDatabase.getInstance().getReference().child("topics").child("likes").child(data.getId()).child(username).child("dislike").removeValue();
- }
- });
- }else{
- holder.like.setImageResource(R.drawable.ic_favorite_border_red_500_36dp);
- holder.like.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- FirebaseDatabase.getInstance().getReference().child("topics").child("likes").child(data.getId()).child(username).child("dislike").removeValue();
- FirebaseDatabase.getInstance().getReference().child("topics").child("likes").child(data.getId()).child(username).child("like").setValue(true);
- }
- });
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- holder.like.setOnLongClickListener(new View.OnLongClickListener() {
- @Override
- public boolean onLongClick(View view) {
- FirebaseDatabase.getInstance().getReference().child("topics").child("likes").child(data.getId()).child(username).child("like").removeValue();
- FirebaseDatabase.getInstance().getReference().child("topics").child("likes").child(data.getId()).child(username).child("dislike").setValue(true);
- return true;
- }
- });
- //holder.count.setText(d.child("count").getValue(String.class));
- holder.discuss.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Intent i = new Intent(c, Discussion.class);
- i.putExtra("id", data.getId());
- i.putExtra("user", data.getUsername());
- i.putExtra("caption", data.getCaption());
- i.putExtra("pic",data.getPic());
- i.putExtra("time",holder.time.getText());
- c.startActivity(i);
- }
- });
- holder.pic.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Intent i2 = new Intent(c, ProfileView.class);
- i2.putExtra("username", data.getUsername());
- i2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- c.startActivity(i2);
- }
- });
- holder.more.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- p.show();
- }
- });
- }
- @Override
- public void setHasStableIds(boolean hasStableIds) {
- super.setHasStableIds(hasStableIds);
- }
- @Override
- public int getItemCount() {
- if (topics!=null)
- return topics.size();
- else
- return 0;
- }
- @Override
- public void onViewRecycled(ViewHolder holder) {
- super.onViewRecycled(holder);
- Glide.clear(holder.pic);
- }
- @Override
- public long getItemId(int position) {
- return super.getItemId(position);
- }
- @Override
- public int getItemViewType(int position) {
- return super.getItemViewType(position);
- }
- public class ViewHolder extends RecyclerView.ViewHolder {
- private TextView text;
- private ImageView image;
- private TextView name;
- private TextView time;
- private TextView category;
- private ImageView more;
- private TextView count;
- private CircleImageView pic;
- private ImageView like;
- private Button discuss;
- private Button msg;
- public ViewHolder(View itemView) {
- super (itemView);
- text = itemView.findViewById(R.id.caption);
- name = itemView.findViewById(R.id.name);
- time = itemView.findViewById(R.id.time);
- category = itemView.findViewById(R.id.category);
- more = itemView.findViewById(R.id.more);
- count = itemView.findViewById(R.id.count);
- pic = itemView.findViewById(R.id.icon);
- like = itemView.findViewById(R.id.like_button);
- discuss = itemView.findViewById(R.id.discuss);
- count = itemView.findViewById(R.id.count);
- }
- }
- }
Add Comment
Please, Sign In to add comment