wedroid/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/adapter/WListsAdapter.java

100 lines
3.5 KiB
Java

package it.unisannio.ding.ids.wedroid.app.view.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
import it.unisannio.ding.ids.wedroid.app.R;
import it.unisannio.ding.ids.wedroid.app.data.entity.WList;
import it.unisannio.ding.ids.wedroid.app.util.ServicesFactory;
import it.unisannio.ding.ids.wedroid.app.util.SharedPreferenceHelper;
import it.unisannio.ding.ids.wedroid.wrapper.entity.Card;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class WListsAdapter extends RecyclerView.Adapter<WListsAdapter.WListViewHolder> {
private final LayoutInflater mInflater;
private List<WList> mWLists; // Cached copy of words
private Context mContext;
public WListsAdapter(Context context){
mInflater = LayoutInflater.from(context);
mContext=context;
}
class WListViewHolder extends RecyclerView.ViewHolder{
private final TextView wListItemView;
ListView listView;
private WListViewHolder(View itemView){
super(itemView);
wListItemView= itemView.findViewById(R.id.wListTitle);
listView = itemView.findViewById(R.id.listViewCard);
}
}
@NonNull
@Override
public WListViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = mInflater.inflate(R.layout.wlist_recyclerview_item, parent, false);
return new WListViewHolder(itemView);
}
@SuppressLint("SetTextI18n")
@Override
public void onBindViewHolder(@NonNull final WListViewHolder holder, int position) {
if (mWLists != null) {
final WList current = mWLists.get(position);
final List<String> cardTitle = new ArrayList<>();
SharedPreferenceHelper sp = new SharedPreferenceHelper(mContext);
ServicesFactory service = new ServicesFactory(sp);
service.getCardService().getAllCards(sp.getBoardId(), current.getId()).enqueue(
new Callback<List<Card>>() {
@Override
public void onResponse(Call<List<Card>> call, Response<List<Card>> response) {
for(int i=0; i<response.body().size(); i++){
cardTitle.add(response.body().get(i).getTitle());
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(mContext,
android.R.layout.simple_list_item_1, cardTitle);
holder.listView.setAdapter(adapter);
holder.wListItemView.setText(current.getTitle());
}
@Override
public void onFailure(Call<List<Card>> call, Throwable t) {
}
});
/*position of the old content holder**/
} else {
// Covers the case of data not being ready yet.
holder.wListItemView.setText("No wList");
}
}
@Override
public int getItemCount() {
if (mWLists != null)
return mWLists.size();
else return 0;
}
public void setWLists(List<WList> wList){
mWLists = wList;
notifyDataSetChanged();
}
}