/**
* Copyright (c) 2014, German Neuroinformatics Node (G-Node)
* Copyright (c) 2014, Shumail Mohy-ud-Din <shumailmohyuddin@gmail.com>
* License: BSD-3 (See LICENSE)
*/
package com.g_node.gca.schedule;
import java.util.ArrayList;
import java.util.List;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import com.g_node.gcaa.R;
public class fragment_schedule extends Fragment {
String LOG_TAG = "GCA-Schedule-Frag";
private String SCHEDULE_ITEMTYPE_EVENT = "event";
private String SCHEDULE_ITEMTYPE_TRACK = "track";
private String SCHEDULE_ITEMTYPE_SESSION = "session";
private static List<EventScheduleItem> eventsRecordsArray;
private static List<TrackScheduleItem> tracksRecordsArray;
private static List<SessionScheduleItem> sessionRecordsArray;
private List<ScheduleItemRecord> eventsForThisFragment = new ArrayList<ScheduleItemRecord>();
//this function will update the list of events for this fragment only
public void setEventsForThisFragment(List<ScheduleItemRecord> temp) {
eventsForThisFragment = temp;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.i(LOG_TAG, "Schedule Fragment - onCreateView");
View rootView = inflater.inflate(R.layout.fragment_schedule_layout, container, false);
return rootView;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Log.i("GCA-Error", "onViewCreaed Called");
// TextView notificationNote = (TextView)getView().findViewById(R.id.schedulemain);
//
Bundle bundle = this.getArguments();
int dayNumber = bundle.getInt("tab");
Log.i(LOG_TAG, "Current Tab: " + ++dayNumber);
// notificationNote.setText("Day : " + ++dayNumber);
ListView ScheduleList = (ListView) getView().findViewById(R.id.ScheduleMainList);
Log.i(LOG_TAG, "ScheduleList id got - layout got");
scheduleAdapter adapter = new scheduleAdapter(getActivity(), eventsForThisFragment, eventsRecordsArray, tracksRecordsArray, sessionRecordsArray, getActivity());
Log.i(LOG_TAG, "Adapter set - constructor initialized");
ScheduleList.setAdapter(adapter);
//List Item Click Listener
ScheduleList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
// TODO Auto-generated method stub
Log.i("GCA-Schedule-List", "Clicked Item - int position: " + position);
Log.i("GCA-Schedule-List", "Clicked Item - Long ID: " + id);
if(eventsForThisFragment.get(position).getSchedule_item_type().equals(SCHEDULE_ITEMTYPE_EVENT)) {
Log.i("GCA-Schedule-List", "Event Clicked");
ScheduleItemRecord scheduleItemRecordAtCurrentPosition = eventsForThisFragment.get(position);
EventScheduleItem eventAtListPosition = eventsRecordsArray.get(scheduleItemRecordAtCurrentPosition.getIndex() );
//ScheduleItemExtended scheduleDetailObject = new ScheduleItemExtended(eventAtListPosition);
Intent intent = new Intent(getActivity(), ScheduleItemExtended.class);
Bundle bundle = new Bundle();
bundle.putSerializable("dEvent", eventAtListPosition);
//bundle.putString("type", SCHEDULE_ITEMTYPE_SESSION);
bundle.putString("type", eventsForThisFragment.get(position).getSchedule_item_type());
intent.putExtras(bundle);
startActivity(intent);
} else if (eventsForThisFragment.get(position).getSchedule_item_type().equals(SCHEDULE_ITEMTYPE_TRACK)) {
Log.i("GCA-Schedule-List", "Track Clicked");
ScheduleItemRecord scheduleItemRecordAtCurrentPosition = eventsForThisFragment.get(position);
TrackScheduleItem trackAtListPosition = tracksRecordsArray.get(scheduleItemRecordAtCurrentPosition.getIndex() );
//ScheduleItemExtended scheduleDetailObject = new ScheduleItemExtended(eventAtListPosition);
Intent intent = new Intent(getActivity(), ScheduleItemExtended.class);
Bundle bundle = new Bundle();
bundle.putSerializable("dTrack", trackAtListPosition);
//bundle.putString("type", SCHEDULE_ITEMTYPE_SESSION);
bundle.putString("type", eventsForThisFragment.get(position).getSchedule_item_type());
intent.putExtras(bundle);
startActivity(intent);
} else {
Log.i("GCA-Schedule-List", "Session Clicked");
ScheduleItemRecord scheduleItemRecordAtCurrentPosition = eventsForThisFragment.get(position);
SessionScheduleItem sessionkAtListPosition = sessionRecordsArray.get(scheduleItemRecordAtCurrentPosition.getIndex() );
Intent intent = new Intent(getActivity(), ScheduleItemExtended.class);
Bundle bundle = new Bundle();
bundle.putSerializable("dSession", sessionkAtListPosition);
//bundle.putString("type", SCHEDULE_ITEMTYPE_SESSION);
bundle.putString("type", eventsForThisFragment.get(position).getSchedule_item_type());
intent.putExtras(bundle);
startActivity(intent);
}
}
});
}
public static void setLists(List<EventScheduleItem> _eventsList, List<TrackScheduleItem> _tracksList, List<SessionScheduleItem> _sessionsList) {
Log.i("GCA-Error", "Setting Fragment Satic Lists");
eventsRecordsArray = _eventsList;
tracksRecordsArray = _tracksList;
sessionRecordsArray = _sessionsList;
}
}