Added assignment page
This commit is contained in:
@@ -17,25 +17,25 @@ class ModDetailAdapter extends FragmentStatePagerAdapter {
|
||||
super(fm);
|
||||
this.mContext = context;
|
||||
this.mItemPos = itemPosition;
|
||||
log.d("constructor");
|
||||
}
|
||||
|
||||
|
||||
// Returns total number of pages
|
||||
@Override
|
||||
public int getCount() {
|
||||
return 2;
|
||||
return 3;
|
||||
}
|
||||
|
||||
// Returns the fragment to display for that page
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
log.d("getItem");
|
||||
switch (position) {
|
||||
case 0: // Fragment # 0 - This will show FirstFragment
|
||||
case 0:
|
||||
return ModDetailOverviewFragment.newInstance(mItemPos);
|
||||
case 1: // Fragment # 0 - This will show FirstFragment different title
|
||||
case 1:
|
||||
return ModDetailAnnounceFragment.newInstance(mItemPos);
|
||||
case 2:
|
||||
return ModDetailAssignmentFragment.newInstance(mItemPos);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
@@ -49,6 +49,8 @@ class ModDetailAdapter extends FragmentStatePagerAdapter {
|
||||
return this.mContext.getResources().getString(R.string.overview);
|
||||
case 1:
|
||||
return this.mContext.getResources().getString(R.string.announcements);
|
||||
case 2:
|
||||
return this.mContext.getResources().getString(R.string.assignments);
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
package de.sebse.fuplanner.fragments.moddetails;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseExpandableListAdapter;
|
||||
|
||||
import de.sebse.fuplanner.R;
|
||||
import de.sebse.fuplanner.services.KVV.types.Announcement;
|
||||
import de.sebse.fuplanner.services.KVV.types.Assignment;
|
||||
import de.sebse.fuplanner.services.KVV.types.Modules;
|
||||
import de.sebse.fuplanner.tools.Conversion;
|
||||
import de.sebse.fuplanner.tools.ui.ItemViewHolder;
|
||||
import de.sebse.fuplanner.tools.ui.StringViewHolder;
|
||||
|
||||
public class ModDetailAssignmentAdapter extends BaseExpandableListAdapter {
|
||||
|
||||
private Modules.Module mModule = null;
|
||||
|
||||
@Override
|
||||
public String getChild(int groupPosition, int childPosititon) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String s : this.getGroup(groupPosition).getUrls())
|
||||
{
|
||||
sb.append(s);
|
||||
sb.append("\n");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getChildId(int groupPosition, int childPosition) {
|
||||
return childPosition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getChildView(int groupPosition, final int childPosition,
|
||||
boolean isLastChild, View convertView, ViewGroup parent) {
|
||||
|
||||
final String childText = getChild(groupPosition, childPosition);
|
||||
|
||||
if (convertView == null) {
|
||||
convertView = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.list_all_string, parent, false);
|
||||
}
|
||||
|
||||
StringViewHolder itemHolder = new StringViewHolder(convertView);
|
||||
itemHolder.mString.setText(childText);
|
||||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getChildrenCount(int groupPosition) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Assignment getGroup(int groupPosition) {
|
||||
if (this.mModule != null && this.mModule.assignments != null)
|
||||
return this.mModule.assignments.get(groupPosition);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getGroupCount() {
|
||||
if (this.mModule != null && this.mModule.assignments != null)
|
||||
return this.mModule.assignments.size();
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getGroupId(int groupPosition) {
|
||||
return groupPosition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getGroupView(int groupPosition, boolean isExpanded,
|
||||
View convertView, ViewGroup parent) {
|
||||
Assignment assignment = getGroup(groupPosition);
|
||||
if (convertView == null) {
|
||||
convertView = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.list_all_items, parent, false);
|
||||
}
|
||||
|
||||
ItemViewHolder itemHolder = new ItemViewHolder(convertView);
|
||||
itemHolder.mTitle.setText(assignment.getTitle());
|
||||
if(assignment.isOpen())
|
||||
itemHolder.mSubLeft.setText(itemHolder.mView.getResources().getText(R.string.open));
|
||||
else
|
||||
itemHolder.mSubLeft.setText(itemHolder.mView.getResources().getText(R.string.close));
|
||||
itemHolder.mSubRight.setText(Conversion.getModifiedDateTime(assignment.getDueDate()));
|
||||
|
||||
return convertView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasStableIds() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isChildSelectable(int groupPosition, int childPosition) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setModule(Modules.Module module) {
|
||||
this.mModule = module;
|
||||
this.setModule();
|
||||
}
|
||||
|
||||
public void setModule() {
|
||||
this.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package de.sebse.fuplanner.fragments.moddetails;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ExpandableListView;
|
||||
|
||||
import de.sebse.fuplanner.MainActivity;
|
||||
import de.sebse.fuplanner.R;
|
||||
import de.sebse.fuplanner.services.KVV.KVV;
|
||||
import de.sebse.fuplanner.services.KVV.types.Modules;
|
||||
import de.sebse.fuplanner.tools.logging.Logger;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
* Use the {@link ModDetailAssignmentFragment#newInstance} factory method to
|
||||
* create an instance of this fragment.
|
||||
*/
|
||||
public class ModDetailAssignmentFragment extends Fragment {
|
||||
// TODO: Rename parameter arguments, choose names that match
|
||||
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
|
||||
private static final String ARG_POSITION = "itemPosition";
|
||||
|
||||
// TODO: Rename and change types of parameters
|
||||
private int mItemPos;
|
||||
private Logger log = new Logger(this);
|
||||
private ModDetailAssignmentAdapter adapter;
|
||||
private SwipeRefreshLayout swipeLayout;
|
||||
|
||||
|
||||
public ModDetailAssignmentFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
/**
|
||||
* Use this factory method to create a new instance of
|
||||
* this fragment using the provided parameters.
|
||||
*
|
||||
* @param itemPosition Item position in module list.
|
||||
* @return A new instance of fragment ModDetailAnnounceFragment.
|
||||
*/
|
||||
// TODO: Rename and change types and number of parameters
|
||||
public static ModDetailAssignmentFragment newInstance(int itemPosition) {
|
||||
ModDetailAssignmentFragment fragment = new ModDetailAssignmentFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putInt(ARG_POSITION, itemPosition);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (getArguments() != null) {
|
||||
mItemPos = getArguments().getInt(ARG_POSITION);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_mod_detail_announce, container, false);
|
||||
// Set the adapter
|
||||
Context context = view.getContext();
|
||||
ExpandableListView expandableListView = view.findViewById(R.id.list);
|
||||
//expandableListView.setLayoutManager(new LinearLayoutManager(context));
|
||||
adapter = new ModDetailAssignmentAdapter();
|
||||
expandableListView.setAdapter(adapter);
|
||||
|
||||
// Getting SwipeContainerLayout
|
||||
swipeLayout = view.findViewById(R.id.swipe_container);
|
||||
// Adding Listener
|
||||
swipeLayout.setOnRefreshListener(() -> refresh(true));
|
||||
refresh(false);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private void refresh(boolean forceRefresh) {
|
||||
if (getActivity() != null) {
|
||||
KVV kvv = ((MainActivity) getActivity()).getKVV();
|
||||
kvv.getModuleList((Modules success) -> {
|
||||
Modules.Module module = success.get(mItemPos);
|
||||
adapter.setModule(module);
|
||||
kvv.getModuleAssignments(module, success1 -> {
|
||||
adapter.setModule();
|
||||
swipeLayout.setRefreshing(false);
|
||||
}, error -> {
|
||||
swipeLayout.setRefreshing(false);
|
||||
log.e(error);
|
||||
});
|
||||
}, error -> {
|
||||
swipeLayout.setRefreshing(false);
|
||||
log.e(error);
|
||||
}, forceRefresh);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -141,7 +141,6 @@ public class KVVModuleList extends HTTPService {
|
||||
AtomicReference<NetworkError> lastError = new AtomicReference<>(null);
|
||||
final int items = 4;
|
||||
NetworkCallback<Modules.Module> successCb = success -> {
|
||||
log.d("items-d", returns.get());
|
||||
returns.getAndIncrement();
|
||||
callback.onResponse(Pair.create(module, false));
|
||||
if (returns.get() == items) {
|
||||
@@ -151,7 +150,6 @@ public class KVVModuleList extends HTTPService {
|
||||
}
|
||||
};
|
||||
NetworkErrorCallback errorCb = error -> {
|
||||
log.d("items-e", returns.get());
|
||||
lastError.set(error);
|
||||
returns.getAndIncrement();
|
||||
if (returns.get() == items) {
|
||||
|
||||
@@ -10,7 +10,6 @@ import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
|
||||
public class AsyncQueue {
|
||||
private HashMap<String, LinkedList<AsyncQueueCallback>> mQueues = new HashMap<>();
|
||||
private HashMap<String, Boolean> mRunnings = new HashMap<>();
|
||||
private Logger log = new Logger(this);
|
||||
|
||||
public void add(String hash, AsyncQueueCallback callback) {
|
||||
if (isRunning(hash))
|
||||
@@ -22,7 +21,6 @@ public class AsyncQueue {
|
||||
}
|
||||
|
||||
public void next(String hash) {
|
||||
log.d("next", hash);
|
||||
AsyncQueueCallback callback = getQueue(hash).pollFirst();
|
||||
if (callback == null)
|
||||
setRunning(hash, false);
|
||||
|
||||
Reference in New Issue
Block a user