100 lines
3.5 KiB
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();
|
|
}
|
|
}
|