Skip to content
Snippets Groups Projects
Commit ecc5c634 authored by Thomas Delcroix's avatar Thomas Delcroix
Browse files

Affichage des données que l'on récupère dans le recyclerView

parent 11aa3e85
No related branches found
No related tags found
1 merge request!5API -> main
...@@ -61,4 +61,7 @@ dependencies { ...@@ -61,4 +61,7 @@ dependencies {
implementation 'io.reactivex.rxjava2:rxjava:2.2.21' implementation 'io.reactivex.rxjava2:rxjava:2.2.21'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
// Glide
implementation 'com.github.bumptech.glide:glide:4.11.0'
} }
\ No newline at end of file
package fr.delcroix_dupont;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
import fr.delcroix_dupont.api.post.Child;
public abstract class HomeAdapter extends RecyclerView.Adapter<MyViewHolder>{
protected List<Child> posts;
public HomeAdapter(List<Child> posts){
this.posts = posts;
}
public HomeAdapter(){
this.posts = new ArrayList<Child>();
}
public void setRedditPostData(List<Child> posts) {
this.posts = posts;
notifyDataSetChanged();
}
public List<Child> getPosts(){
return this.posts;
}
}
...@@ -5,14 +5,25 @@ import android.view.View; ...@@ -5,14 +5,25 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class HomeGridAdapter extends RecyclerView.Adapter<MyViewHolder> { import com.bumptech.glide.Glide;
private String[] authors; import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
import java.util.List;
import fr.delcroix_dupont.api.post.Child;
public class HomeGridAdapter extends HomeAdapter {
private MainActivity main; private MainActivity main;
public HomeGridAdapter(MainActivity main, String[] authors){ public HomeGridAdapter(MainActivity main, List<Child> posts){
this.main = main; this.authors = authors; super(posts);
this.main = main;
}
public HomeGridAdapter(MainActivity main){
super();
this.main = main;
} }
@NonNull @NonNull
...@@ -26,12 +37,17 @@ public class HomeGridAdapter extends RecyclerView.Adapter<MyViewHolder> { ...@@ -26,12 +37,17 @@ public class HomeGridAdapter extends RecyclerView.Adapter<MyViewHolder> {
@Override @Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.getAuthorButton().setText(authors[position]); holder.getAuthorButton().setText(this.posts.get(position).getData().getAuthor());
Glide.with(main)
.load(this.posts.get(position).getData().getThumbnail())
.centerCrop()
.transition(DrawableTransitionOptions.withCrossFade())
.into(holder.getImg());
} }
@Override @Override
public int getItemCount() { public int getItemCount() {
return authors.length; return this.posts.size();
} }
} }
package fr.delcroix_dupont; package fr.delcroix_dupont;
import androidx.recyclerview.widget.RecyclerView;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.*; import android.view.*;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import java.util.List;
import fr.delcroix_dupont.api.post.Child;
import fr.delcroix_dupont.ui.home.author.FragmentAuthor; import fr.delcroix_dupont.ui.home.author.FragmentAuthor;
public class HomeListAdapter extends RecyclerView.Adapter<MyViewHolder> { import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
public class HomeListAdapter extends HomeAdapter {
private MainActivity main; private MainActivity main;
private FragmentAuthor fragmentAuthor; private FragmentAuthor fragmentAuthor;
private String[] authors, upvotes, downvotes;
public HomeListAdapter(MainActivity main, String[] authors, String[] upvotes, String[] downvotes){ public HomeListAdapter(MainActivity main, List<Child> posts){
super(posts);
this.main = main;
fragmentAuthor = null;
}
public HomeListAdapter(MainActivity main){
super();
this.main = main; this.main = main;
this.authors = authors;
this.upvotes = upvotes;
this.downvotes = downvotes;
fragmentAuthor = null; fragmentAuthor = null;
} }
...@@ -32,14 +40,19 @@ public class HomeListAdapter extends RecyclerView.Adapter<MyViewHolder> { ...@@ -32,14 +40,19 @@ public class HomeListAdapter extends RecyclerView.Adapter<MyViewHolder> {
@Override @Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.getAuthorButton().setText(authors[position]); holder.getAuthorButton().setText(this.posts.get(position).getData().getAuthor());
holder.getUpvotes().setText(upvotes[position]); holder.getUpvotes().setText(this.posts.get(position).getData().getUps().toString());
holder.getDownvotes().setText(downvotes[position]); holder.getDownvotes().setText(this.posts.get(position).getData().getDowns().toString());
Glide.with(main)
.load(this.posts.get(position).getData().getThumbnail())
.centerCrop()
.transition(DrawableTransitionOptions.withCrossFade())
.into(holder.getImg());
} }
@Override @Override
public int getItemCount() { public int getItemCount() {
return authors.length; return this.posts.size();
} }
} }
...@@ -80,6 +80,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -80,6 +80,7 @@ public class MainActivity extends AppCompatActivity {
call.enqueue(new Callback<RedditPost>() { call.enqueue(new Callback<RedditPost>() {
@Override @Override
public void onResponse(Call<RedditPost> call, Response<RedditPost> response) { public void onResponse(Call<RedditPost> call, Response<RedditPost> response) {
homeFragment.setRedditPostData(response.body().getData().getChildren());
} }
@Override @Override
......
...@@ -2,6 +2,7 @@ package fr.delcroix_dupont; ...@@ -2,6 +2,7 @@ package fr.delcroix_dupont;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
...@@ -12,6 +13,7 @@ import fr.delcroix_dupont.ui.home.author.FragmentAuthor; ...@@ -12,6 +13,7 @@ import fr.delcroix_dupont.ui.home.author.FragmentAuthor;
public class MyViewHolder extends RecyclerView.ViewHolder { public class MyViewHolder extends RecyclerView.ViewHolder {
private final Button authorButton; private final Button authorButton;
private final TextView upvotes, downvotes; private final TextView upvotes, downvotes;
private final ImageView img;
private final MainActivity main; private final MainActivity main;
public MyViewHolder(MainActivity main, @NonNull View itemView) { public MyViewHolder(MainActivity main, @NonNull View itemView) {
...@@ -20,6 +22,7 @@ public class MyViewHolder extends RecyclerView.ViewHolder { ...@@ -20,6 +22,7 @@ public class MyViewHolder extends RecyclerView.ViewHolder {
this.authorButton = (Button) itemView.findViewById(R.id.authorButton); this.authorButton = (Button) itemView.findViewById(R.id.authorButton);
this.upvotes = (TextView) itemView.findViewById(R.id.nbUpvotes); this.upvotes = (TextView) itemView.findViewById(R.id.nbUpvotes);
this.downvotes = (TextView) itemView.findViewById(R.id.nbDownvotes); this.downvotes = (TextView) itemView.findViewById(R.id.nbDownvotes);
this.img = (ImageView) itemView.findViewById(R.id.imageView);
setupListener(); setupListener();
} }
...@@ -40,4 +43,6 @@ public class MyViewHolder extends RecyclerView.ViewHolder { ...@@ -40,4 +43,6 @@ public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView getDownvotes(){ public TextView getDownvotes(){
return this.downvotes; return this.downvotes;
} }
public ImageView getImg() { return this.img; }
} }
...@@ -14,6 +14,9 @@ public class Data__1 { ...@@ -14,6 +14,9 @@ public class Data__1 {
@SerializedName("downs") @SerializedName("downs")
@Expose @Expose
private Integer downs; private Integer downs;
@SerializedName("thumbnail")
@Expose
private String thumbnail;
@SerializedName("name") @SerializedName("name")
@Expose @Expose
private String name; private String name;
...@@ -69,6 +72,14 @@ public class Data__1 { ...@@ -69,6 +72,14 @@ public class Data__1 {
this.downs = downs; this.downs = downs;
} }
public String getThumbnail() {
return thumbnail;
}
public void setThumbnail(String thumbnail) {
this.thumbnail = thumbnail;
}
public String getName() { public String getName() {
return name; return name;
} }
......
package fr.delcroix_dupont.api.user; package fr.delcroix_dupont.api.user;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.util.List; import java.util.List;
public class Data { public class Data {
......
package fr.delcroix_dupont.api.user; package fr.delcroix_dupont.api.user;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class RedditUser { public class RedditUser {
@SerializedName("date") @SerializedName("date")
......
...@@ -13,10 +13,14 @@ import androidx.recyclerview.widget.GridLayoutManager; ...@@ -13,10 +13,14 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
import fr.delcroix_dupont.HomeAdapter;
import fr.delcroix_dupont.HomeGridAdapter; import fr.delcroix_dupont.HomeGridAdapter;
import fr.delcroix_dupont.HomeListAdapter; import fr.delcroix_dupont.HomeListAdapter;
import fr.delcroix_dupont.MainActivity; import fr.delcroix_dupont.MainActivity;
import fr.delcroix_dupont.R; import fr.delcroix_dupont.R;
import fr.delcroix_dupont.api.post.Child;
import fr.delcroix_dupont.databinding.FragmentHomeBinding; import fr.delcroix_dupont.databinding.FragmentHomeBinding;
public class HomeFragment extends Fragment { public class HomeFragment extends Fragment {
...@@ -24,7 +28,7 @@ public class HomeFragment extends Fragment { ...@@ -24,7 +28,7 @@ public class HomeFragment extends Fragment {
private FragmentHomeBinding binding; private FragmentHomeBinding binding;
private RecyclerView recyclerView; private RecyclerView recyclerView;
private RecyclerView.LayoutManager layoutManager; private RecyclerView.LayoutManager layoutManager;
private HomeListAdapter customAdapter; private HomeAdapter adapter;
private View root; private View root;
private ImageButton switchButton; private ImageButton switchButton;
private MainActivity main; private MainActivity main;
...@@ -33,10 +37,6 @@ public class HomeFragment extends Fragment { ...@@ -33,10 +37,6 @@ public class HomeFragment extends Fragment {
private boolean isList; private boolean isList;
private String[] authors = new String[]{"MiraakTV", "BoBsmil3Y", "MiraakTélévision", "Bobmarl3y", "Moi"};
private String[] upvotes = new String[]{"0", "0", "999", "999", "235"};
private String[] downvotes = new String[]{"999", "999", "0", "0", "3534"};
public HomeFragment(MainActivity main) { this.main = main; } public HomeFragment(MainActivity main) { this.main = main; }
public View onCreateView(@NonNull LayoutInflater inflater, public View onCreateView(@NonNull LayoutInflater inflater,
...@@ -73,7 +73,8 @@ public class HomeFragment extends Fragment { ...@@ -73,7 +73,8 @@ public class HomeFragment extends Fragment {
public void switchGridList(){ public void switchGridList(){
this.recyclerView.setLayoutManager(this.isList ? this.gridLayoutManager : this.linearLayoutManager); this.recyclerView.setLayoutManager(this.isList ? this.gridLayoutManager : this.linearLayoutManager);
this.recyclerView.setAdapter(this.isList ? new HomeGridAdapter(this.main, this.authors) : new HomeListAdapter(this.main, this.authors, this.upvotes, this.downvotes)); this.adapter = this.isList ? new HomeGridAdapter(this.main, this.adapter.getPosts()) : new HomeListAdapter(this.main, this.adapter.getPosts());
this.recyclerView.setAdapter(this.adapter);
this.switchButton.setImageResource(this.isList ? R.drawable.list : R.drawable.menu); this.switchButton.setImageResource(this.isList ? R.drawable.list : R.drawable.menu);
this.isList = !this.isList; this.isList = !this.isList;
} }
...@@ -87,8 +88,12 @@ public class HomeFragment extends Fragment { ...@@ -87,8 +88,12 @@ public class HomeFragment extends Fragment {
layoutManager = new LinearLayoutManager(root.getContext()); layoutManager = new LinearLayoutManager(root.getContext());
recyclerView.setLayoutManager(layoutManager); recyclerView.setLayoutManager(layoutManager);
customAdapter = new HomeListAdapter(main, authors, upvotes, downvotes); adapter = new HomeListAdapter(main);
recyclerView.setAdapter(customAdapter); recyclerView.setAdapter(adapter);
}
public void setRedditPostData(List<Child> posts){
adapter.setRedditPostData(posts);
} }
@Override @Override
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment