Made Module List more beautiful

This commit is contained in:
Caesar2011
2018-06-12 17:39:37 +02:00
parent c997667596
commit abb9f754a9
5 changed files with 39 additions and 52 deletions

View File

@@ -2,22 +2,21 @@ package de.sebse.fuplanner.fragments;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.fragments.ModulesFragment.OnModulesFragmentInteractionListener;
import de.sebse.fuplanner.services.KVV.Modules;
import de.sebse.fuplanner.tools.ui.ItemViewHolder;
/**
* {@link RecyclerView.Adapter} that can display a {@link Modules.Module} and makes a call to the
* specified {@link OnModulesFragmentInteractionListener}.
* TODO: Replace the implementation with code for your data type.
*/
public class ModulesRecyclerViewAdapter extends RecyclerView.Adapter<ModulesRecyclerViewAdapter.ViewHolder> {
public class ModulesRecyclerViewAdapter extends RecyclerView.Adapter<ItemViewHolder> {
private Modules mValues;
private final OnModulesFragmentInteractionListener mListener;
@@ -34,26 +33,26 @@ public class ModulesRecyclerViewAdapter extends RecyclerView.Adapter<ModulesRecy
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.fragment_modules, parent, false);
return new ViewHolder(view);
.inflate(R.layout.list_all_items, parent, false);
return new ItemViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) {
if (mValues == null)
return;
position = holder.getAdapterPosition();
holder.mItemPosition = position;
holder.mIdView.setText(mValues.get(position).semester);
holder.mContentView.setText(mValues.get(position).title);
final int finalPosition = holder.getAdapterPosition();
holder.mTitle.setText(mValues.get(finalPosition).title);
holder.mSubLeft.setText(mValues.get(finalPosition).semester);
holder.mSubRight.setText(mValues.get(finalPosition).type);
holder.mView.setOnClickListener(v -> {
if (null != mListener) {
// Notify the active callbacks interface (the activity, if the
// fragment is attached to one) that an item has been selected.
mListener.onModulesFragmentInteraction(holder.mItemPosition);
mListener.onModulesFragmentInteraction(finalPosition);
}
});
}
@@ -61,29 +60,8 @@ public class ModulesRecyclerViewAdapter extends RecyclerView.Adapter<ModulesRecy
@Override
public int getItemCount() {
if (mValues != null) {
Log.d("Recycler", String.valueOf(mValues.size()));
return mValues.size();
}
Log.d("Recycler", "0");
return 0;
}
public class ViewHolder extends RecyclerView.ViewHolder {
public final View mView;
public final TextView mIdView;
public final TextView mContentView;
public int mItemPosition;
public ViewHolder(View view) {
super(view);
mView = view;
mIdView = view.findViewById(R.id.id);
mContentView = view.findViewById(R.id.content);
}
@Override
public String toString() {
return super.toString() + " '" + mContentView.getText() + "'";
}
}
}

View File

@@ -20,6 +20,7 @@ import de.sebse.fuplanner.services.KVV.Modules;
import de.sebse.fuplanner.tools.Conversion;
import de.sebse.fuplanner.tools.logging.Logger;
import de.sebse.fuplanner.tools.ui.CustomViewHolder;
import de.sebse.fuplanner.tools.ui.ItemViewHolder;
public class ModDetailOverviewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int MAX_ITEMS_PER_PREVIEW = 2;
@@ -86,7 +87,7 @@ public class ModDetailOverviewAdapter extends RecyclerView.Adapter<RecyclerView.
return new DescriptionViewHolder(view);
case TYPE_ITEM:
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_moddetails_announcements, parent, false);
.inflate(R.layout.list_all_items, parent, false);
return new ItemViewHolder(view);
case TYPE_SHOW_MORE:
view = LayoutInflater.from(parent.getContext())
@@ -238,21 +239,4 @@ public class ModDetailOverviewAdapter extends RecyclerView.Adapter<RecyclerView.
}
public class ItemViewHolder extends CustomViewHolder {
final TextView mTitle;
final TextView mSubLeft;
final TextView mSubRight;
ItemViewHolder(View view) {
super(view);
mTitle = view.findViewById(R.id.title);
mSubLeft = view.findViewById(R.id.sub_left);
mSubRight = view.findViewById(R.id.sub_right);
}
@Override
public String toString() {
return super.toString() + " '" + mTitle.getText() + "' '" + mSubLeft.getText() + "' '" + mSubRight.getText() + "'";
}
}
}

View File

@@ -201,8 +201,9 @@ public class Modules /*extends EventEmitter<Triplet<Integer, Modules.UpgradeModu
}*/
private Module(String semester, HashSet<String> lvNumber, String title, HashSet<Lecturer> lecturer, String type, String description, String ID) {
semester = semester.replace("Sommersemester", "SS").replace("Wintersemester", "WS");
semester = semester.replace("SS", "S");
semester = semester.replaceAll("[0-9]{2}([0-9]{2})", "$1");
title = title.replaceAll("(.*?) (S[0-9]{2}|W[0-9/]{5})", "$1");
this.semester = semester;
this.lvNumber = lvNumber;

View File

@@ -0,0 +1,24 @@
package de.sebse.fuplanner.tools.ui;
import android.view.View;
import android.widget.TextView;
import de.sebse.fuplanner.R;
public class ItemViewHolder extends CustomViewHolder {
public final TextView mTitle;
public final TextView mSubLeft;
public final TextView mSubRight;
public ItemViewHolder(View view) {
super(view);
mTitle = view.findViewById(R.id.title);
mSubLeft = view.findViewById(R.id.sub_left);
mSubRight = view.findViewById(R.id.sub_right);
}
@Override
public String toString() {
return super.toString() + " '" + mTitle.getText() + "' '" + mSubLeft.getText() + "' '" + mSubRight.getText() + "'";
}
}