Commit cd3f4145 authored by Varun Patil's avatar Varun Patil

Get calendar working

parent 8bf7e094
...@@ -5,14 +5,35 @@ import android.os.Bundle; ...@@ -5,14 +5,35 @@ import android.os.Bundle;
import android.support.design.widget.FloatingActionButton; import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction; import android.support.v4.app.FragmentTransaction;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.CalendarView; import android.widget.CalendarView;
import android.widget.Toast; import android.widget.Toast;
import com.google.gson.Gson;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import in.ac.iitb.gymkhana.iitbapp.Constants;
import in.ac.iitb.gymkhana.iitbapp.ItemClickListener;
import in.ac.iitb.gymkhana.iitbapp.MainActivity; import in.ac.iitb.gymkhana.iitbapp.MainActivity;
import in.ac.iitb.gymkhana.iitbapp.R; import in.ac.iitb.gymkhana.iitbapp.R;
import in.ac.iitb.gymkhana.iitbapp.adapter.EventAdapter;
import in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface;
import in.ac.iitb.gymkhana.iitbapp.api.ServiceGenerator;
import in.ac.iitb.gymkhana.iitbapp.api.model.NewsFeedResponse;
import in.ac.iitb.gymkhana.iitbapp.data.Event;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
/** /**
* A simple {@link Fragment} subclass. * A simple {@link Fragment} subclass.
...@@ -22,6 +43,7 @@ public class CalendarFragment extends BaseFragment { ...@@ -22,6 +43,7 @@ public class CalendarFragment extends BaseFragment {
FloatingActionButton fab; FloatingActionButton fab;
private View view; private View view;
private Toast toast; private Toast toast;
private List<Event> events;
public CalendarFragment() { public CalendarFragment() {
// Required empty public constructor // Required empty public constructor
...@@ -39,6 +61,7 @@ public class CalendarFragment extends BaseFragment { ...@@ -39,6 +61,7 @@ public class CalendarFragment extends BaseFragment {
simpleCalendarView.setFirstDayOfWeek(1); // set Sunday as the first day of the week simpleCalendarView.setFirstDayOfWeek(1); // set Sunday as the first day of the week
simpleCalendarView.setWeekNumberColor(getResources().getColor(R.color.colorCalendarWeek));//setWeekNumberColor simpleCalendarView.setWeekNumberColor(getResources().getColor(R.color.colorCalendarWeek));//setWeekNumberColor
simpleCalendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { simpleCalendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override @Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) { public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
...@@ -47,10 +70,15 @@ public class CalendarFragment extends BaseFragment { ...@@ -47,10 +70,15 @@ public class CalendarFragment extends BaseFragment {
if (toast != null) { if (toast != null) {
toast.cancel(); toast.cancel();
} }
toast = Toast.makeText(getContext(), "Date: (" + dayOfMonth + "/" + (month + 1) + "/" + year + ")", Toast.LENGTH_LONG); String sdate = dayOfMonth + "/" + (month + 1) + "/" + year;
toast = Toast.makeText(getContext(), "Date: (" + sdate + ")", Toast.LENGTH_LONG);
toast.show(); toast.show();
try {
Date showDate = new SimpleDateFormat("dd/M/yyyy").parse(sdate);
showEventsForDate(showDate);
} catch (ParseException e) {
e.printStackTrace();
}
} }
}); });
fab.setOnClickListener(new View.OnClickListener() { fab.setOnClickListener(new View.OnClickListener() {
...@@ -62,8 +90,58 @@ public class CalendarFragment extends BaseFragment { ...@@ -62,8 +90,58 @@ public class CalendarFragment extends BaseFragment {
((MainActivity) getActivity()).updateFragment(addEventFragment); ((MainActivity) getActivity()).updateFragment(addEventFragment);
} }
}); });
updateEvents();
return view; return view;
} }
private void updateEvents() {
RetrofitInterface retrofitInterface = ServiceGenerator.createService(RetrofitInterface.class);
retrofitInterface.getNewsFeed(((MainActivity)getActivity()).getSessionIDHeader()).enqueue(new Callback<NewsFeedResponse>() {
@Override
public void onResponse(Call<NewsFeedResponse> call, Response<NewsFeedResponse> response) {
if (response.isSuccessful()) {
NewsFeedResponse newsFeedResponse = response.body();
events = newsFeedResponse.getEvents();
}
}
@Override
public void onFailure(Call<NewsFeedResponse> call, Throwable t) {
//Network Error
}
});
}
private void showEventsForDate(Date date) {
final List<Event> filteredEvents = new ArrayList<Event>();
for( Event event : events) {
Date nextDay = new Date(date.getTime() + (1000 * 60 * 60 * 24));
Timestamp start = event.getEventStartTime();
if (start.after(date) && start.before(nextDay)) {
filteredEvents.add(event);
}
}
RecyclerView eventRecyclerView = (RecyclerView) getActivity().findViewById(R.id.calendar_event_card_recycler_view);
EventAdapter eventAdapter = new EventAdapter(filteredEvents, new ItemClickListener() {
@Override
public void onItemClick(View v, int position) {
Event event = filteredEvents.get(position);
Bundle bundle = new Bundle();
bundle.putString(Constants.EVENT_JSON, new Gson().toJson(event));
EventFragment eventFragment = new EventFragment();
eventFragment.setArguments(bundle);
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(R.id.framelayout_for_fragment, eventFragment, eventFragment.getTag());
ft.addToBackStack(eventFragment.getTag());
ft.commit();
}
});
eventRecyclerView.setAdapter(eventAdapter);
eventRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
}
} }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout android:layout_width="match_parent"
android:id="@+id/calendar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#E0E0E0" xmlns:android="http://schemas.android.com/apk/res/android">
android:theme="@style/CalendarTheme">
<android.support.v4.widget.NestedScrollView android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- TODO: Update blank fragment layout --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<View android:id="@+id/calendar_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="60dp" android:layout_height="wrap_content"
android:background="#00BCD4" /> android:background="#E0E0E0"
android:theme="@style/CalendarTheme"
android:orientation="vertical">
<CalendarView <RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:id="@+id/simpleCalendarView" <!-- TODO: Update blank fragment layout -->
android:layout_width="fill_parent" <View
android:layout_height="wrap_content" android:layout_width="match_parent"
android:focusedMonthDateColor="#000000" android:layout_height="60dp"
android:unfocusedMonthDateColor="#FFFFFF" /> android:background="#00BCD4" />
<View <CalendarView
android:layout_width="match_parent"
android:layout_height="1dp" android:id="@+id/simpleCalendarView"
android:layout_below="@id/simpleCalendarView" android:layout_width="fill_parent"
android:layout_marginBottom="19.5dp" android:layout_height="wrap_content"
android:layout_marginTop="19.5dp" android:focusedMonthDateColor="#000000"
android:background="@android:color/darker_gray" /> android:unfocusedMonthDateColor="#FFFFFF" />
<TextView <View
android:layout_width="120dp" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="1dp"
android:layout_below="@id/simpleCalendarView" android:layout_below="@id/simpleCalendarView"
android:layout_centerHorizontal="true" android:layout_marginBottom="19.5dp"
android:background="@drawable/round_text_box" android:layout_marginTop="19.5dp"
android:gravity="center" android:background="@android:color/darker_gray" />
android:text="# Events Today" />
<TextView
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_below="@id/simpleCalendarView"
android:layout_centerHorizontal="true"
android:background="@drawable/round_text_box"
android:gravity="center"
android:text="# Events Today" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/calendar_event_card_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:nestedScrollingEnabled="false" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<android.support.design.widget.FloatingActionButton <android.support.design.widget.FloatingActionButton
android:id="@+id/fab" android:id="@+id/fab"
...@@ -46,5 +71,4 @@ ...@@ -46,5 +71,4 @@
android:layout_margin="16dp" android:layout_margin="16dp"
android:src="@android:drawable/ic_input_add" /> android:src="@android:drawable/ic_input_add" />
</RelativeLayout>
</RelativeLayout> \ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment