/*
* Copyright (C) 2014 Maigret Aurelien / Colin Julien
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package net.dewep.intranetepitech.ui.mark;
import fr.qinder.adapter.LibAdapter;
import fr.qinder.adapter.ViewAdapter;
import net.dewep.intranetepitech.EpitechAccount;
import net.dewep.intranetepitech.R;
import net.dewep.intranetepitech.api.model.MarkModel;
import net.dewep.intranetepitech.api.request.MarkAPI;
import net.dewep.intranetepitech.ui.UiFragment;
import android.annotation.SuppressLint;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.TextView;
/**
* TODO: Comments this class
*
* @author Maigret Aurelien
* @author Colin Julien
*/
public class MarkFragment extends UiFragment {
ListView mListview;
LibAdapter<MarkModel> mListviewAdapter = null;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.ui_mark_fragment, container, false);
mListview = (ListView) rootView.findViewById(R.id.ui_mark_listview);
mListviewAdapter = new LibAdapter<MarkModel>(this.getActivity());
mListviewAdapter.setViewAdapter(new ViewAdapter<MarkModel>() {
@Override
public View buildView(LayoutInflater inflater, View view, MarkModel object) {
view = inflater.inflate(R.layout.ui_mark_mark_element, mListview, false);
addElement(view, object);
return view;
}
});
mListview.setAdapter(mListviewAdapter);
new MarkAPI(EpitechAccount.getLogin()) {
@Override
public void onSuccess() {
for (int i = 0; i < getMarks().size(); i++) {
mListviewAdapter.add(getMarks().get(i));
}
mListviewAdapter.notifyDataSetChanged();
}
@Override
public void onError() {
}
};
return rootView;
}
private void addElement(View view, MarkModel mark) {
((TextView) view.findViewById(R.id.ui_mark_mark_element_mark)).setText(String.valueOf(mark.getNote()));
((TextView) view.findViewById(R.id.ui_mark_mark_element_title)).setText(mark.getTitle());
final TextView commentView = (TextView) view.findViewById(R.id.ui_mark_mark_element_comment);
commentView.setText(mark.getComment());
view.setOnClickListener(new OnClickListener() {
@SuppressLint("NewApi")
@Override
public void onClick(View v) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
if (commentView.getMaxLines() == 1) {
commentView.setMaxLines(Integer.MAX_VALUE);
} else {
commentView.setMaxLines(1);
}
}
}
});
}
@Override
protected int getIdTitle() {
return R.string.navigation_mark;
}
}