Commit 38a72bcc authored by Varun Patil's avatar Varun Patil

Fix Going and Interested buttons

parent 911a4a58
...@@ -64,6 +64,9 @@ public interface DbDao { ...@@ -64,6 +64,9 @@ public interface DbDao {
@Insert @Insert
void insertEvent(Event event); void insertEvent(Event event);
@Update
void updateEvent(Event event);
@Insert @Insert
void insertBodies(List<Body> bodies); void insertBodies(List<Body> bodies);
......
...@@ -60,8 +60,11 @@ public class Event { ...@@ -60,8 +60,11 @@ public class Event {
@ColumnInfo(name = "website_url") @ColumnInfo(name = "website_url")
@SerializedName("website_url") @SerializedName("website_url")
String eventWebsiteURL; String eventWebsiteURL;
@ColumnInfo(name = "user_ues")
@SerializedName("user_ues")
int eventUserUes;
public Event(String eventID, String eventStrID, String eventName, String eventDescription, String eventImageURL, Timestamp eventStartTime, Timestamp eventEndTime, boolean allDayEvent, List<Venue> eventVenues, List<Body> eventBodies, int eventInterestedCount, int eventGoingCount, List<User> eventInterested, List<User> eventGoing, String eventWebsiteURL) { public Event(String eventID, String eventStrID, String eventName, String eventDescription, String eventImageURL, Timestamp eventStartTime, Timestamp eventEndTime, boolean allDayEvent, List<Venue> eventVenues, List<Body> eventBodies, int eventInterestedCount, int eventGoingCount, List<User> eventInterested, List<User> eventGoing, String eventWebsiteURL, int eventUserUes) {
this.eventID = eventID; this.eventID = eventID;
this.eventStrID = eventStrID; this.eventStrID = eventStrID;
this.eventName = eventName; this.eventName = eventName;
...@@ -77,6 +80,7 @@ public class Event { ...@@ -77,6 +80,7 @@ public class Event {
this.eventInterested = eventInterested; this.eventInterested = eventInterested;
this.eventGoing = eventGoing; this.eventGoing = eventGoing;
this.eventWebsiteURL = eventWebsiteURL; this.eventWebsiteURL = eventWebsiteURL;
this.eventUserUes = eventUserUes;
} }
public String getEventID() { public String getEventID() {
...@@ -198,4 +202,12 @@ public class Event { ...@@ -198,4 +202,12 @@ public class Event {
public void setEventWebsiteURL(String eventWebsiteURL) { public void setEventWebsiteURL(String eventWebsiteURL) {
this.eventWebsiteURL = eventWebsiteURL; this.eventWebsiteURL = eventWebsiteURL;
} }
public int getEventUserUes() {
return eventUserUes;
}
public void setEventUserUes(int eventUserUes) {
this.eventUserUes = eventUserUes;
}
} }
...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.fragment; ...@@ -3,6 +3,7 @@ package in.ac.iitb.gymkhana.iitbapp.fragment;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction; import android.support.v4.app.FragmentTransaction;
...@@ -28,11 +29,13 @@ import java.util.List; ...@@ -28,11 +29,13 @@ import java.util.List;
import in.ac.iitb.gymkhana.iitbapp.Constants; import in.ac.iitb.gymkhana.iitbapp.Constants;
import in.ac.iitb.gymkhana.iitbapp.ItemClickListener; import in.ac.iitb.gymkhana.iitbapp.ItemClickListener;
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.ShareURLMaker; import in.ac.iitb.gymkhana.iitbapp.ShareURLMaker;
import in.ac.iitb.gymkhana.iitbapp.adapter.BodyAdapter; import in.ac.iitb.gymkhana.iitbapp.adapter.BodyAdapter;
import in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface; import in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface;
import in.ac.iitb.gymkhana.iitbapp.api.ServiceGenerator; import in.ac.iitb.gymkhana.iitbapp.api.ServiceGenerator;
import in.ac.iitb.gymkhana.iitbapp.data.AppDatabase;
import in.ac.iitb.gymkhana.iitbapp.data.Event; import in.ac.iitb.gymkhana.iitbapp.data.Event;
import in.ac.iitb.gymkhana.iitbapp.data.Body; import in.ac.iitb.gymkhana.iitbapp.data.Body;
import in.ac.iitb.gymkhana.iitbapp.data.Venue; import in.ac.iitb.gymkhana.iitbapp.data.Venue;
...@@ -44,7 +47,7 @@ import ru.noties.markwon.Markwon; ...@@ -44,7 +47,7 @@ import ru.noties.markwon.Markwon;
/** /**
* A simple {@link Fragment} subclass. * A simple {@link Fragment} subclass.
*/ */
public class EventFragment extends BaseFragment implements View.OnClickListener { public class EventFragment extends BaseFragment {
Event event; Event event;
Button goingButton; Button goingButton;
Button interestedButton; Button interestedButton;
...@@ -52,6 +55,7 @@ public class EventFragment extends BaseFragment implements View.OnClickListener ...@@ -52,6 +55,7 @@ public class EventFragment extends BaseFragment implements View.OnClickListener
ImageButton shareEventButton; ImageButton shareEventButton;
ImageButton webEventButton; ImageButton webEventButton;
RecyclerView bodyRecyclerView; RecyclerView bodyRecyclerView;
private AppDatabase appDatabase;
String TAG = "EventFragment"; String TAG = "EventFragment";
public EventFragment() { public EventFragment() {
...@@ -70,6 +74,9 @@ public class EventFragment extends BaseFragment implements View.OnClickListener ...@@ -70,6 +74,9 @@ public class EventFragment extends BaseFragment implements View.OnClickListener
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
/* Initialize */
appDatabase = AppDatabase.getAppDatabase(getContext());
Bundle bundle = getArguments(); Bundle bundle = getArguments();
String eventJson = bundle.getString(Constants.EVENT_JSON); String eventJson = bundle.getString(Constants.EVENT_JSON);
Log.d(TAG, "onStart: " + eventJson); Log.d(TAG, "onStart: " + eventJson);
...@@ -86,7 +93,6 @@ public class EventFragment extends BaseFragment implements View.OnClickListener ...@@ -86,7 +93,6 @@ public class EventFragment extends BaseFragment implements View.OnClickListener
TextView eventDescription = (TextView) getActivity().findViewById(R.id.event_page_description); TextView eventDescription = (TextView) getActivity().findViewById(R.id.event_page_description);
goingButton = getActivity().findViewById(R.id.going_button); goingButton = getActivity().findViewById(R.id.going_button);
interestedButton = getActivity().findViewById(R.id.interested_button); interestedButton = getActivity().findViewById(R.id.interested_button);
notGoingButton = getActivity().findViewById(R.id.not_going_button);
shareEventButton = getActivity().findViewById(R.id.share_event_button); shareEventButton = getActivity().findViewById(R.id.share_event_button);
webEventButton = getActivity().findViewById(R.id.web_event_button); webEventButton = getActivity().findViewById(R.id.web_event_button);
...@@ -124,9 +130,14 @@ public class EventFragment extends BaseFragment implements View.OnClickListener ...@@ -124,9 +130,14 @@ public class EventFragment extends BaseFragment implements View.OnClickListener
if (!eventVenueName.toString().equals("")) if (!eventVenueName.toString().equals(""))
eventVenue.setText(eventVenueName.toString().substring(2)); eventVenue.setText(eventVenueName.toString().substring(2));
goingButton.setOnClickListener(this);
interestedButton.setOnClickListener(this); interestedButton.setOnClickListener(getUESOnClickListener(1));
notGoingButton.setOnClickListener(this);
goingButton.setOnClickListener(getUESOnClickListener(2));
interestedButton.setBackgroundColor(getResources().getColor(event.getEventUserUes() == 1 ? R.color.colorAccent : R.color.colorWhite));
goingButton.setBackgroundColor(getResources().getColor(event.getEventUserUes() == 2 ? R.color.colorAccent : R.color.colorWhite));
shareEventButton.setOnClickListener(new View.OnClickListener() { shareEventButton.setOnClickListener(new View.OnClickListener() {
String shareUrl = ShareURLMaker.getEventURL(event); String shareUrl = ShareURLMaker.getEventURL(event);
@Override @Override
...@@ -152,38 +163,38 @@ public class EventFragment extends BaseFragment implements View.OnClickListener ...@@ -152,38 +163,38 @@ public class EventFragment extends BaseFragment implements View.OnClickListener
} }
} }
View.OnClickListener getUESOnClickListener(final int status) {
return new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
goingButton.setBackgroundColor(getResources().getColor(R.color.colorWhite)); final int endStatus = event.getEventUserUes() == status ? 0 : status;
interestedButton.setBackgroundColor(getResources().getColor(R.color.colorWhite));
notGoingButton.setBackgroundColor(getResources().getColor(R.color.colorWhite));
view.setBackgroundColor(getResources().getColor(R.color.colorAccent));
int status = 0;
switch (view.getId()) {
case R.id.going_button:
status = Constants.STATUS_GOING;
break;
case R.id.interested_button:
status = Constants.STATUS_INTERESTED;
break;
case R.id.not_going_button:
status = Constants.STATUS_NOT_GOING;
break;
}
RetrofitInterface retrofitInterface = ServiceGenerator.createService(RetrofitInterface.class); RetrofitInterface retrofitInterface = ServiceGenerator.createService(RetrofitInterface.class);
retrofitInterface.updateUserEventStatus("sessionid=" + getArguments().getString(Constants.SESSION_ID), event.getEventID(), status).enqueue(new Callback<Void>() { retrofitInterface.updateUserEventStatus(((MainActivity) getActivity()).getSessionIDHeader(), event.getEventID(), endStatus).enqueue(new Callback<Void>() {
@Override @Override
public void onResponse(Call<Void> call, Response<Void> response) { public void onResponse(Call<Void> call, Response<Void> response) {
if (response.isSuccessful()) { if (response.isSuccessful()) {
//TODO: Set flag for details updated so as to not try again when connected event.setEventUserUes(endStatus);
new updateDbEvent().execute(event);
interestedButton.setBackgroundColor(getResources().getColor(endStatus == 1 ? R.color.colorAccent : R.color.colorWhite));
goingButton.setBackgroundColor(getResources().getColor(endStatus == 2 ? R.color.colorAccent : R.color.colorWhite));
} }
} }
@Override @Override
public void onFailure(Call<Void> call, Throwable t) { public void onFailure(Call<Void> call, Throwable t) {
//TODO: Store the status offline and update when connected
Toast.makeText(getContext(), "Network Error", Toast.LENGTH_LONG).show(); Toast.makeText(getContext(), "Network Error", Toast.LENGTH_LONG).show();
} }
}); });
} }
};
}
private class updateDbEvent extends AsyncTask<Event, Void, Integer> {
@Override
protected Integer doInBackground(Event... event) {
appDatabase.dbDao().updateEvent(event[0]);
return 1;
}
}
} }
...@@ -163,24 +163,6 @@ ...@@ -163,24 +163,6 @@
android:text="Interested" android:text="Interested"
android:textColor="@color/colorGray" /> android:textColor="@color/colorGray" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginBottom="6dp"
android:layout_marginTop="10dp"
android:background="#aaa">
</View>
<Button
android:id="@+id/not_going_button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:layout_weight="1"
android:text="Not Going"
android:textColor="@color/colorGray" />
</LinearLayout> </LinearLayout>
<View <View
......
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