Show "No item available" on announcement and assignment

This commit is contained in:
Caesar2011
2018-10-30 03:05:16 +01:00
parent 70072c6605
commit 4fb969479e
2 changed files with 104 additions and 78 deletions

View File

@@ -21,8 +21,9 @@ import de.sebse.fuplanner.tools.Regex;
import de.sebse.fuplanner.tools.UtilsDate; import de.sebse.fuplanner.tools.UtilsDate;
import de.sebse.fuplanner.tools.logging.Logger; import de.sebse.fuplanner.tools.logging.Logger;
import de.sebse.fuplanner.tools.ui.AnnouncementViewHolder; import de.sebse.fuplanner.tools.ui.AnnouncementViewHolder;
import de.sebse.fuplanner.tools.ui.CustomViewHolder;
class ModDetailAnnounceAdapter extends RecyclerView.Adapter<AnnouncementViewHolder> { class ModDetailAnnounceAdapter extends RecyclerView.Adapter<CustomViewHolder> {
@Nullable private Modules.Module mModule = null; @Nullable private Modules.Module mModule = null;
private Logger log = new Logger(this); private Logger log = new Logger(this);
@@ -37,14 +38,22 @@ class ModDetailAnnounceAdapter extends RecyclerView.Adapter<AnnouncementViewHold
} }
@NonNull @NonNull
public AnnouncementViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) { public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
if (viewType == 0) {
View view = LayoutInflater.from(viewGroup.getContext()) View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.list_announcement_items, viewGroup, false); .inflate(R.layout.list_announcement_items, viewGroup, false);
return new AnnouncementViewHolder(view); return new AnnouncementViewHolder(view);
} else {
View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.list_all_no_items, viewGroup, false);
return new CustomViewHolder(view);
}
} }
@Override @Override
public void onBindViewHolder(@NonNull AnnouncementViewHolder holder, int position) { public void onBindViewHolder(@NonNull CustomViewHolder customHolder, int position) {
if (customHolder instanceof AnnouncementViewHolder) {
AnnouncementViewHolder holder = (AnnouncementViewHolder) customHolder;
holder.reset(); holder.reset();
Announcement item = getAnnouncement(position); Announcement item = getAnnouncement(position);
holder.mTitle.setText(item.getTitle()); holder.mTitle.setText(item.getTitle());
@@ -81,17 +90,21 @@ class ModDetailAnnounceAdapter extends RecyclerView.Adapter<AnnouncementViewHold
} }
holder.mNotes.setText(item.getBody()); holder.mNotes.setText(item.getBody());
} }
}
@Override @Override
public int getItemCount() { public int getItemCount() {
if (mModule != null && mModule.announcements != null) if (mModule != null && mModule.announcements != null)
return mModule.announcements.size(); return Math.max(mModule.announcements.size(), 1);
else else
return 0; return 0;
} }
@Override @Override
public int getItemViewType(int position) { public int getItemViewType(int position) {
if (mModule != null && mModule.announcements != null && mModule.announcements.size() == 0)
return 1;
else
return 0; return 0;
} }

View File

@@ -21,8 +21,9 @@ import de.sebse.fuplanner.tools.Regex;
import de.sebse.fuplanner.tools.UtilsDate; import de.sebse.fuplanner.tools.UtilsDate;
import de.sebse.fuplanner.tools.logging.Logger; import de.sebse.fuplanner.tools.logging.Logger;
import de.sebse.fuplanner.tools.ui.AnnouncementViewHolder; import de.sebse.fuplanner.tools.ui.AnnouncementViewHolder;
import de.sebse.fuplanner.tools.ui.CustomViewHolder;
class ModDetailAssignmentAdapter extends RecyclerView.Adapter<AnnouncementViewHolder> { class ModDetailAssignmentAdapter extends RecyclerView.Adapter<CustomViewHolder> {
@Nullable private Modules.Module mModule = null; @Nullable private Modules.Module mModule = null;
private Logger log = new Logger(this); private Logger log = new Logger(this);
@@ -37,14 +38,22 @@ class ModDetailAssignmentAdapter extends RecyclerView.Adapter<AnnouncementViewHo
} }
@NonNull @NonNull
public AnnouncementViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) { public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
if (viewType == 0) {
View view = LayoutInflater.from(viewGroup.getContext()) View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.list_announcement_items, viewGroup, false); .inflate(R.layout.list_announcement_items, viewGroup, false);
return new AnnouncementViewHolder(view); return new AnnouncementViewHolder(view);
} else {
View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.list_all_no_items, viewGroup, false);
return new CustomViewHolder(view);
}
} }
@Override @Override
public void onBindViewHolder(@NonNull AnnouncementViewHolder holder, int position) { public void onBindViewHolder(@NonNull CustomViewHolder customHolder, int position) {
if (customHolder instanceof AnnouncementViewHolder) {
AnnouncementViewHolder holder = (AnnouncementViewHolder) customHolder;
holder.reset(); holder.reset();
Assignment item = getAssignment(position); Assignment item = getAssignment(position);
holder.mTitle.setText(item.getTitle()); holder.mTitle.setText(item.getTitle());
@@ -81,17 +90,21 @@ class ModDetailAssignmentAdapter extends RecyclerView.Adapter<AnnouncementViewHo
} }
holder.mNotes.setText(item.getInstructions()); holder.mNotes.setText(item.getInstructions());
} }
}
@Override @Override
public int getItemCount() { public int getItemCount() {
if (mModule != null && mModule.assignments != null) if (mModule != null && mModule.assignments != null)
return mModule.assignments.size(); return Math.max(mModule.assignments.size(), 1);
else else
return 0; return 0;
} }
@Override @Override
public int getItemViewType(int position) { public int getItemViewType(int position) {
if (mModule != null && mModule.assignments != null && mModule.assignments.size() == 0)
return 1;
else
return 0; return 0;
} }