Show "No item available" on announcement and assignment
This commit is contained in:
@@ -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,62 +38,74 @@ class ModDetailAnnounceAdapter extends RecyclerView.Adapter<AnnouncementViewHold
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
public AnnouncementViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
|
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
|
||||||
View view = LayoutInflater.from(viewGroup.getContext())
|
if (viewType == 0) {
|
||||||
.inflate(R.layout.list_announcement_items, viewGroup, false);
|
View view = LayoutInflater.from(viewGroup.getContext())
|
||||||
return new AnnouncementViewHolder(view);
|
.inflate(R.layout.list_announcement_items, viewGroup, false);
|
||||||
|
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) {
|
||||||
holder.reset();
|
if (customHolder instanceof AnnouncementViewHolder) {
|
||||||
Announcement item = getAnnouncement(position);
|
AnnouncementViewHolder holder = (AnnouncementViewHolder) customHolder;
|
||||||
holder.mTitle.setText(item.getTitle());
|
holder.reset();
|
||||||
holder.mSubTitle.setText(UtilsDate.getModifiedDateTime(holder.mView.getContext(), item.getCreatedOn()));
|
Announcement item = getAnnouncement(position);
|
||||||
|
holder.mTitle.setText(item.getTitle());
|
||||||
|
holder.mSubTitle.setText(UtilsDate.getModifiedDateTime(holder.mView.getContext(), item.getCreatedOn()));
|
||||||
|
|
||||||
List<String> notes = item.getUrls();
|
List<String> notes = item.getUrls();
|
||||||
if (!notes.isEmpty()) {
|
if (!notes.isEmpty()) {
|
||||||
holder.mTagGroup.setVisibility(View.VISIBLE);
|
holder.mTagGroup.setVisibility(View.VISIBLE);
|
||||||
for (int i = 0, notesSize = notes.size(); i < notesSize; i++) {
|
for (int i = 0, notesSize = notes.size(); i < notesSize; i++) {
|
||||||
String name;
|
String name;
|
||||||
try {
|
try {
|
||||||
name = URLDecoder.decode(Regex.regex("/([^/]*)$", notes.get(i)), "UTF-8");
|
name = URLDecoder.decode(Regex.regex("/([^/]*)$", notes.get(i)), "UTF-8");
|
||||||
} catch (NoSuchFieldException e) {
|
} catch (NoSuchFieldException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
name = holder.mView.getResources().getString(R.string.attachment_nr, i);
|
name = holder.mView.getResources().getString(R.string.attachment_nr, i);
|
||||||
} catch (UnsupportedEncodingException e) {
|
} catch (UnsupportedEncodingException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
name = holder.mView.getResources().getString(R.string.attachment_nr, i);
|
name = holder.mView.getResources().getString(R.string.attachment_nr, i);
|
||||||
|
}
|
||||||
|
Tag tag = new Tag(name);
|
||||||
|
tag.id = i;
|
||||||
|
tag.layoutColor = ContextCompat.getColor(holder.mView.getContext(), R.color.colorFUBlue);
|
||||||
|
holder.mTagGroup.addTag(tag);
|
||||||
|
log.d(notes.get(i));
|
||||||
}
|
}
|
||||||
Tag tag = new Tag(name);
|
holder.mTagGroup.setOnTagClickListener((tag, i) -> {
|
||||||
tag.id = i;
|
String s = notes.get(i);
|
||||||
tag.layoutColor = ContextCompat.getColor(holder.mView.getContext(), R.color.colorFUBlue);
|
if (s != null) {
|
||||||
holder.mTagGroup.addTag(tag);
|
log.d("Download", s);
|
||||||
log.d(notes.get(i));
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
holder.mTagGroup.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
holder.mTagGroup.setOnTagClickListener((tag, i) -> {
|
holder.mNotes.setText(item.getBody());
|
||||||
String s = notes.get(i);
|
|
||||||
if (s != null) {
|
|
||||||
log.d("Download", s);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
holder.mTagGroup.setVisibility(View.GONE);
|
|
||||||
}
|
}
|
||||||
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) {
|
||||||
return 0;
|
if (mModule != null && mModule.announcements != null && mModule.announcements.size() == 0)
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Announcement getAnnouncement(int index) {
|
private Announcement getAnnouncement(int index) {
|
||||||
|
|||||||
@@ -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,62 +38,74 @@ class ModDetailAssignmentAdapter extends RecyclerView.Adapter<AnnouncementViewHo
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
public AnnouncementViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
|
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
|
||||||
View view = LayoutInflater.from(viewGroup.getContext())
|
if (viewType == 0) {
|
||||||
.inflate(R.layout.list_announcement_items, viewGroup, false);
|
View view = LayoutInflater.from(viewGroup.getContext())
|
||||||
return new AnnouncementViewHolder(view);
|
.inflate(R.layout.list_announcement_items, viewGroup, false);
|
||||||
|
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) {
|
||||||
holder.reset();
|
if (customHolder instanceof AnnouncementViewHolder) {
|
||||||
Assignment item = getAssignment(position);
|
AnnouncementViewHolder holder = (AnnouncementViewHolder) customHolder;
|
||||||
holder.mTitle.setText(item.getTitle());
|
holder.reset();
|
||||||
holder.mSubTitle.setText(UtilsDate.getModifiedDateTime(holder.mView.getContext(), item.getDueDate()));
|
Assignment item = getAssignment(position);
|
||||||
|
holder.mTitle.setText(item.getTitle());
|
||||||
|
holder.mSubTitle.setText(UtilsDate.getModifiedDateTime(holder.mView.getContext(), item.getDueDate()));
|
||||||
|
|
||||||
List<String> notes = item.getUrls();
|
List<String> notes = item.getUrls();
|
||||||
if (!notes.isEmpty()) {
|
if (!notes.isEmpty()) {
|
||||||
holder.mTagGroup.setVisibility(View.VISIBLE);
|
holder.mTagGroup.setVisibility(View.VISIBLE);
|
||||||
for (int i = 0, notesSize = notes.size(); i < notesSize; i++) {
|
for (int i = 0, notesSize = notes.size(); i < notesSize; i++) {
|
||||||
String name;
|
String name;
|
||||||
try {
|
try {
|
||||||
name = URLDecoder.decode(Regex.regex("/([^/]*)$", notes.get(i)), "UTF-8");
|
name = URLDecoder.decode(Regex.regex("/([^/]*)$", notes.get(i)), "UTF-8");
|
||||||
} catch (NoSuchFieldException e) {
|
} catch (NoSuchFieldException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
name = holder.mView.getResources().getString(R.string.attachment_nr, i);
|
name = holder.mView.getResources().getString(R.string.attachment_nr, i);
|
||||||
} catch (UnsupportedEncodingException e) {
|
} catch (UnsupportedEncodingException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
name = holder.mView.getResources().getString(R.string.attachment_nr, i);
|
name = holder.mView.getResources().getString(R.string.attachment_nr, i);
|
||||||
|
}
|
||||||
|
Tag tag = new Tag(name);
|
||||||
|
tag.id = i;
|
||||||
|
tag.layoutColor = ContextCompat.getColor(holder.mView.getContext(), R.color.colorFUBlue);
|
||||||
|
holder.mTagGroup.addTag(tag);
|
||||||
|
log.d(notes.get(i));
|
||||||
}
|
}
|
||||||
Tag tag = new Tag(name);
|
holder.mTagGroup.setOnTagClickListener((tag, i) -> {
|
||||||
tag.id = i;
|
String s = notes.get(i);
|
||||||
tag.layoutColor = ContextCompat.getColor(holder.mView.getContext(), R.color.colorFUBlue);
|
if (s != null) {
|
||||||
holder.mTagGroup.addTag(tag);
|
log.d("Download", s);
|
||||||
log.d(notes.get(i));
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
holder.mTagGroup.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
holder.mTagGroup.setOnTagClickListener((tag, i) -> {
|
holder.mNotes.setText(item.getInstructions());
|
||||||
String s = notes.get(i);
|
|
||||||
if (s != null) {
|
|
||||||
log.d("Download", s);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
holder.mTagGroup.setVisibility(View.GONE);
|
|
||||||
}
|
}
|
||||||
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) {
|
||||||
return 0;
|
if (mModule != null && mModule.assignments != null && mModule.assignments.size() == 0)
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Assignment getAssignment(int index) {
|
private Assignment getAssignment(int index) {
|
||||||
|
|||||||
Reference in New Issue
Block a user