Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
InstiApp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
RAHUL SHARMA
InstiApp
Commits
5c42cc89
Commit
5c42cc89
authored
Mar 28, 2018
by
Sajal Narang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement UserEventStatus, fix minor bugs, fix #53
parent
1a14d32a
Changes
24
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
335 additions
and
106 deletions
+335
-106
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/ActivityBuffer.java
...main/java/in/ac/iitb/gymkhana/iitbapp/ActivityBuffer.java
+99
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/Constants.java
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/Constants.java
+5
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/MainActivity.java
...c/main/java/in/ac/iitb/gymkhana/iitbapp/MainActivity.java
+24
-24
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/adapter/FeedAdapter.java
...java/in/ac/iitb/gymkhana/iitbapp/adapter/FeedAdapter.java
+7
-5
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/api/RetrofitInterface.java
...va/in/ac/iitb/gymkhana/iitbapp/api/RetrofitInterface.java
+7
-6
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/AboutFragment.java
...a/in/ac/iitb/gymkhana/iitbapp/fragment/AboutFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/AddEventFragment.java
...n/ac/iitb/gymkhana/iitbapp/fragment/AddEventFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/BaseFragment.java
...va/in/ac/iitb/gymkhana/iitbapp/fragment/BaseFragment.java
+66
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/CMSFragment.java
...ava/in/ac/iitb/gymkhana/iitbapp/fragment/CMSFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/CalendarFragment.java
...n/ac/iitb/gymkhana/iitbapp/fragment/CalendarFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/ContactsFragment.java
...n/ac/iitb/gymkhana/iitbapp/fragment/ContactsFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/EventFragment.java
...a/in/ac/iitb/gymkhana/iitbapp/fragment/EventFragment.java
+67
-4
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/FeedFragment.java
...va/in/ac/iitb/gymkhana/iitbapp/fragment/FeedFragment.java
+39
-49
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/GCRankingsFragment.java
...ac/iitb/gymkhana/iitbapp/fragment/GCRankingsFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/MapFragment.java
...ava/in/ac/iitb/gymkhana/iitbapp/fragment/MapFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/MessMenuFragment.java
...n/ac/iitb/gymkhana/iitbapp/fragment/MessMenuFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/MyEventsFragment.java
...n/ac/iitb/gymkhana/iitbapp/fragment/MyEventsFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/NotificationsFragment.java
...iitb/gymkhana/iitbapp/fragment/NotificationsFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/PTCellFragment.java
.../in/ac/iitb/gymkhana/iitbapp/fragment/PTCellFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/PeopleFragment.java
.../in/ac/iitb/gymkhana/iitbapp/fragment/PeopleFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/ProfileFragment.java
...in/ac/iitb/gymkhana/iitbapp/fragment/ProfileFragment.java
+1
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/TimetableFragment.java
.../ac/iitb/gymkhana/iitbapp/fragment/TimetableFragment.java
+1
-1
app/src/main/res/layout/fragment_event.xml
app/src/main/res/layout/fragment_event.xml
+6
-3
app/src/main/res/values/colors.xml
app/src/main/res/values/colors.xml
+1
-0
No files found.
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/ActivityBuffer.java
0 → 100644
View file @
5c42cc89
package
in.ac.iitb.gymkhana.iitbapp
;
import
android.app.Activity
;
import
java.util.ArrayList
;
import
java.util.List
;
/** A class which maintains a list of transactions to occur when Context becomes available. */
public
final
class
ActivityBuffer
{
/** A class which defines operations to execute once there's an available Context. */
public
interface
IRunnable
{
/** Executes when there's an available Context. Ideally, will it operate immediately. */
void
run
(
final
Activity
pActivity
);
}
/* Member Variables. */
private
Activity
mActivity
;
private
final
List
<
IRunnable
>
mRunnables
;
/** Constructor. */
public
ActivityBuffer
()
{
// Initialize Member Variables.
this
.
mActivity
=
null
;
this
.
mRunnables
=
new
ArrayList
<
IRunnable
>();
}
/** Executes the Runnable if there's an available Context. Otherwise, defers execution until it becomes available. */
public
final
void
safely
(
final
IRunnable
pRunnable
)
{
// Synchronize along the current instance.
synchronized
(
this
)
{
// Do we have a context available?
if
(
this
.
isContextAvailable
())
{
// Fetch the Activity.
final
Activity
lActivity
=
this
.
getActivity
();
// Execute the Runnable along the Activity.
lActivity
.
runOnUiThread
(
new
Runnable
()
{
@Override
public
final
void
run
()
{
pRunnable
.
run
(
lActivity
);
}
});
}
else
{
// Buffer the Runnable so that it's ready to receive a valid reference.
this
.
getRunnables
().
add
(
pRunnable
);
}
}
}
/** Called to inform the ActivityBuffer that there's an available Activity reference. */
public
final
void
onContextGained
(
final
Activity
pActivity
)
{
// Synchronize along ourself.
synchronized
(
this
)
{
// Update the Activity reference.
this
.
setActivity
(
pActivity
);
// Are there any Runnables awaiting execution?
if
(!
this
.
getRunnables
().
isEmpty
())
{
// Iterate the Runnables.
for
(
final
IRunnable
lRunnable
:
this
.
getRunnables
())
{
// Execute the Runnable on the UI Thread.
pActivity
.
runOnUiThread
(
new
Runnable
()
{
@Override
public
final
void
run
()
{
// Execute the Runnable.
lRunnable
.
run
(
pActivity
);
}
});
}
// Empty the Runnables.
this
.
getRunnables
().
clear
();
}
}
}
/** Called to inform the ActivityBuffer that the Context has been lost. */
public
final
void
onContextLost
()
{
// Synchronize along ourself.
synchronized
(
this
)
{
// Remove the Context reference.
this
.
setActivity
(
null
);
}
}
/** Defines whether there's a safe Context available for the ActivityBuffer. */
public
final
boolean
isContextAvailable
()
{
// Synchronize upon ourself.
synchronized
(
this
)
{
// Return the state of the Activity reference.
return
(
this
.
getActivity
()
!=
null
);
}
}
/* Getters and Setters. */
private
final
void
setActivity
(
final
Activity
pActivity
)
{
this
.
mActivity
=
pActivity
;
}
private
final
Activity
getActivity
()
{
return
this
.
mActivity
;
}
private
final
List
<
IRunnable
>
getRunnables
()
{
return
this
.
mRunnables
;
}
}
\ No newline at end of file
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/Constants.java
View file @
5c42cc89
...
...
@@ -6,5 +6,9 @@ public class Constants {
public
static
final
int
RESULT_LOAD_IMAGE
=
11
;
public
static
final
String
NOTIFICATIONS_RESPONSE_JSON
=
"notifications_json"
;
public
static
final
String
EVENT_JSON
=
"event_json"
;
public
static
final
java
.
lang
.
String
USER_ID
=
"user_id"
;
public
static
final
String
USER_ID
=
"user_id"
;
public
static
final
int
STATUS_GOING
=
2
;
public
static
final
int
STATUS_INTERESTED
=
1
;
public
static
final
int
STATUS_NOT_GOING
=
0
;
}
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/MainActivity.java
View file @
5c42cc89
...
...
@@ -85,7 +85,7 @@ public class MainActivity extends AppCompatActivity
FeedFragment
feedFragment
=
new
FeedFragment
();
updateFragment
(
feedFragment
);
fetchNotifications
();
//
fetchNotifications();
}
@Override
...
...
@@ -121,28 +121,28 @@ public class MainActivity extends AppCompatActivity
Picasso
.
with
(
this
).
load
(
currentUser
.
getUserProfilePictureUrl
()).
into
(
profilePictureImageView
);
}
private
void
fetchNotifications
()
{
NotificationsRequest
notificationsRequest
=
new
NotificationsRequest
(
0
,
20
);
RetrofitInterface
retrofitInterface
=
ServiceGenerator
.
createService
(
RetrofitInterface
.
class
);
retrofitInterface
.
getNotifications
(
notificationsRequest
).
enqueue
(
new
Callback
<
NotificationsResponse
>()
{
@Override
public
void
onResponse
(
Call
<
NotificationsResponse
>
call
,
Response
<
NotificationsResponse
>
response
)
{
if
(
response
.
isSuccessful
())
{
notificationsResponse
=
response
.
body
();
if
(
showNotifications
)
{
showNotifications
();
showNotifications
=
false
;
}
}
//Server Error
}
@Override
public
void
onFailure
(
Call
<
NotificationsResponse
>
call
,
Throwable
t
)
{
//Network Error
}
});
}
//
private void fetchNotifications() {
//
NotificationsRequest notificationsRequest = new NotificationsRequest(0, 20);
//
RetrofitInterface retrofitInterface = ServiceGenerator.createService(RetrofitInterface.class);
//
retrofitInterface.getNotifications(notificationsRequest).enqueue(new Callback<NotificationsResponse>() {
//
@Override
//
public void onResponse(Call<NotificationsResponse> call, Response<NotificationsResponse> response) {
//
if (response.isSuccessful()) {
//
notificationsResponse = response.body();
//
if (showNotifications) {
//
showNotifications();
//
showNotifications = false;
//
}
//
}
//
//Server Error
//
}
//
//
@Override
//
public void onFailure(Call<NotificationsResponse> call, Throwable t) {
//
//Network Error
//
}
//
});
//
}
public
void
showNotifications
()
{
String
notificationsResponseJson
=
new
Gson
().
toJson
(
notificationsResponse
);
...
...
@@ -181,7 +181,7 @@ public class MainActivity extends AppCompatActivity
//noinspection SimplifiableIfStatement
if
(
id
==
R
.
id
.
action_notifications
)
{
showNotifications
=
true
;
fetchNotifications
();
//
fetchNotifications();
return
true
;
}
return
super
.
onOptionsItemSelected
(
item
);
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/adapter/FeedAdapter.java
View file @
5c42cc89
...
...
@@ -10,18 +10,15 @@ import android.widget.TextView;
import
com.squareup.picasso.Picasso
;
import
org.w3c.dom.Text
;
import
java.sql.Time
;
import
java.sql.Timestamp
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.logging.SimpleFormatter
;
import
in.ac.iitb.gymkhana.iitbapp.ItemClickListener
;
import
in.ac.iitb.gymkhana.iitbapp.R
;
import
in.ac.iitb.gymkhana.iitbapp.data.Event
;
import
in.ac.iitb.gymkhana.iitbapp.data.Venue
;
public
class
FeedAdapter
extends
RecyclerView
.
Adapter
<
FeedAdapter
.
ViewHolder
>
{
...
...
@@ -62,7 +59,12 @@ public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.ViewHolder> {
viewHolder
.
eventDate
.
setText
(
simpleDateFormatDate
.
format
(
Date
));
viewHolder
.
eventTime
.
setText
(
simpleDateFormatTime
.
format
(
Date
));
viewHolder
.
eventVenue
.
setText
(
currentEvent
.
getEventVenues
().
get
(
0
).
getVenueName
());
StringBuilder
eventVenueName
=
new
StringBuilder
();
for
(
Venue
venue
:
currentEvent
.
getEventVenues
())
{
eventVenueName
.
append
(
", "
).
append
(
venue
.
getVenueName
());
}
if
(!
eventVenueName
.
toString
().
equals
(
""
))
viewHolder
.
eventVenue
.
setText
(
eventVenueName
.
toString
().
substring
(
2
));
Picasso
.
with
(
context
).
load
(
currentEvent
.
getEventImageURL
()).
resize
(
320
,
0
).
into
(
viewHolder
.
eventPicture
);
}
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/api/RetrofitInterface.java
View file @
5c42cc89
...
...
@@ -6,8 +6,6 @@ import in.ac.iitb.gymkhana.iitbapp.api.model.ImageUploadRequest;
import
in.ac.iitb.gymkhana.iitbapp.api.model.ImageUploadResponse
;
import
in.ac.iitb.gymkhana.iitbapp.api.model.LoginResponse
;
import
in.ac.iitb.gymkhana.iitbapp.api.model.NewsFeedResponse
;
import
in.ac.iitb.gymkhana.iitbapp.api.model.NotificationsRequest
;
import
in.ac.iitb.gymkhana.iitbapp.api.model.NotificationsResponse
;
import
in.ac.iitb.gymkhana.iitbapp.data.User
;
import
retrofit2.Call
;
import
retrofit2.http.Body
;
...
...
@@ -30,9 +28,12 @@ public interface RetrofitInterface {
@GET
(
"users/{uuid}"
)
Call
<
User
>
getUser
(
@Header
(
"Cookie"
)
String
sessionId
,
@Path
(
"uuid"
)
String
uuid
);
@POST
(
"getNotifications/"
)
Call
<
NotificationsResponse
>
getNotifications
(
@Body
NotificationsRequest
notificationsRequest
);
@POST
(
"upload"
)
Call
<
ImageUploadResponse
>
uploadImage
(
@Header
(
"Cookie"
)
String
sessionId
,
@Body
ImageUploadRequest
imageUploadRequest
);
Call
<
ImageUploadResponse
>
uploadImage
(
@Header
(
"Cookie"
)
String
sessionID
,
@Body
ImageUploadRequest
imageUploadRequest
);
@GET
(
"user-me/ues/{eventID}"
)
Call
<
Void
>
updateUserEventStatus
(
@Header
(
"Cookie"
)
String
sessionID
,
@Path
(
"eventID"
)
String
eventID
,
@Query
(
"status"
)
int
status
);
// @POST("getNotifications/")
// Call<NotificationsResponse> getNotifications(@Body NotificationsRequest notificationsRequest);
}
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/AboutFragment.java
View file @
5c42cc89
...
...
@@ -12,7 +12,7 @@ import in.ac.iitb.gymkhana.iitbapp.R;
/**
* A simple {@link Fragment} subclass.
*/
public
class
AboutFragment
extends
Fragment
{
public
class
AboutFragment
extends
Base
Fragment
{
public
AboutFragment
()
{
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/AddEventFragment.java
View file @
5c42cc89
...
...
@@ -56,7 +56,7 @@ import static in.ac.iitb.gymkhana.iitbapp.Constants.RESULT_LOAD_IMAGE;
import
static
in
.
ac
.
iitb
.
gymkhana
.
iitbapp
.
SessionManager
.
SESSION_ID
;
public
class
AddEventFragment
extends
Fragment
{
public
class
AddEventFragment
extends
Base
Fragment
{
@BindView
(
R
.
id
.
button_createEvent
)
Button
createEvent
;
@BindView
(
R
.
id
.
tv_start
)
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/BaseFragment.java
0 → 100644
View file @
5c42cc89
package
in.ac.iitb.gymkhana.iitbapp.fragment
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.os.Bundle
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentActivity
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
in.ac.iitb.gymkhana.iitbapp.ActivityBuffer
;
import
in.ac.iitb.gymkhana.iitbapp.R
;
/**
* A simple {@link Fragment} subclass.
*/
public
class
BaseFragment
extends
Fragment
{
/* Member Variables. */
private
ActivityBuffer
mActivityBuffer
;
public
BaseFragment
()
{
// Implement the Parent.
super
();
// Allocate the ActivityBuffer.
this
.
mActivityBuffer
=
new
ActivityBuffer
();
}
@Override
public
final
void
onAttach
(
final
Context
pContext
)
{
// Handle as usual.
super
.
onAttach
(
pContext
);
// Is the Context an Activity?
if
(
pContext
instanceof
Activity
)
{
// Cast Accordingly.
final
Activity
lActivity
=
(
Activity
)
pContext
;
// Inform the ActivityBuffer.
this
.
getActivityBuffer
().
onContextGained
(
lActivity
);
}
}
@Deprecated
@Override
public
final
void
onAttach
(
final
Activity
pActivity
)
{
// Handle as usual.
super
.
onAttach
(
pActivity
);
// Inform the ActivityBuffer.
this
.
getActivityBuffer
().
onContextGained
(
pActivity
);
}
@Override
public
final
void
onDetach
()
{
// Handle as usual.
super
.
onDetach
();
// Inform the ActivityBuffer.
this
.
getActivityBuffer
().
onContextLost
();
}
/* Getters. */
public
final
ActivityBuffer
getActivityBuffer
()
{
return
this
.
mActivityBuffer
;
}
}
\ No newline at end of file
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/CMSFragment.java
View file @
5c42cc89
...
...
@@ -12,7 +12,7 @@ import in.ac.iitb.gymkhana.iitbapp.R;
/**
* A simple {@link Fragment} subclass.
*/
public
class
CMSFragment
extends
Fragment
{
public
class
CMSFragment
extends
Base
Fragment
{
public
CMSFragment
()
{
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/CalendarFragment.java
View file @
5c42cc89
...
...
@@ -16,7 +16,7 @@ import in.ac.iitb.gymkhana.iitbapp.R;
/**
* A simple {@link Fragment} subclass.
*/
public
class
CalendarFragment
extends
Fragment
{
public
class
CalendarFragment
extends
Base
Fragment
{
FloatingActionButton
fab
;
private
View
view
;
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/ContactsFragment.java
View file @
5c42cc89
...
...
@@ -12,7 +12,7 @@ import in.ac.iitb.gymkhana.iitbapp.R;
/**
* A simple {@link Fragment} subclass.
*/
public
class
ContactsFragment
extends
Fragment
{
public
class
ContactsFragment
extends
Base
Fragment
{
public
ContactsFragment
()
{
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/EventFragment.java
View file @
5c42cc89
...
...
@@ -3,11 +3,14 @@ package in.ac.iitb.gymkhana.iitbapp.fragment;
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.Button
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
com.google.gson.Gson
;
import
com.squareup.picasso.Picasso
;
...
...
@@ -18,13 +21,25 @@ import java.util.Date;
import
in.ac.iitb.gymkhana.iitbapp.Constants
;
import
in.ac.iitb.gymkhana.iitbapp.R
;
import
in.ac.iitb.gymkhana.iitbapp.api.RetrofitInterface
;
import
in.ac.iitb.gymkhana.iitbapp.api.ServiceGenerator
;
import
in.ac.iitb.gymkhana.iitbapp.data.Event
;
import
in.ac.iitb.gymkhana.iitbapp.data.Venue
;
import
retrofit2.Call
;
import
retrofit2.Callback
;
import
retrofit2.Response
;
import
static
android
.
content
.
ContentValues
.
TAG
;
import
static
in
.
ac
.
iitb
.
gymkhana
.
iitbapp
.
SessionManager
.
SESSION_ID
;
/**
* A simple {@link Fragment} subclass.
*/
public
class
EventFragment
extends
Fragment
{
public
class
EventFragment
extends
BaseFragment
implements
View
.
OnClickListener
{
Event
event
;
Button
goingButton
;
Button
interestedButton
;
Button
notGoingButton
;
public
EventFragment
()
{
// Required empty public constructor
...
...
@@ -44,7 +59,8 @@ public class EventFragment extends Fragment {
Bundle
bundle
=
getArguments
();
String
eventJson
=
bundle
.
getString
(
Constants
.
EVENT_JSON
);
Event
event
=
new
Gson
().
fromJson
(
eventJson
,
Event
.
class
);
Log
.
d
(
TAG
,
"onStart: "
+
eventJson
);
event
=
new
Gson
().
fromJson
(
eventJson
,
Event
.
class
);
inflateViews
(
event
);
}
...
...
@@ -55,6 +71,9 @@ public class EventFragment extends Fragment {
TextView
eventTime
=
(
TextView
)
getActivity
().
findViewById
(
R
.
id
.
event_page_time
);
TextView
eventVenue
=
(
TextView
)
getActivity
().
findViewById
(
R
.
id
.
event_page_venue
);
TextView
eventDescription
=
(
TextView
)
getActivity
().
findViewById
(
R
.
id
.
event_page_description
);
goingButton
=
getActivity
().
findViewById
(
R
.
id
.
going_button
);
interestedButton
=
getActivity
().
findViewById
(
R
.
id
.
interested_button
);
notGoingButton
=
getActivity
().
findViewById
(
R
.
id
.
not_going_button
);
Picasso
.
with
(
getContext
()).
load
(
event
.
getEventImageURL
()).
into
(
eventPicture
);
eventTitle
.
setText
(
event
.
getEventName
());
...
...
@@ -65,6 +84,50 @@ public class EventFragment extends Fragment {
SimpleDateFormat
simpleDateFormatTime
=
new
SimpleDateFormat
(
"HH:mm a"
);
eventDate
.
setText
(
simpleDateFormatDate
.
format
(
Date
));
eventTime
.
setText
(
simpleDateFormatTime
.
format
(
Date
));
eventVenue
.
setText
(
event
.
getEventVenues
().
get
(
0
).
getVenueName
());
StringBuilder
eventVenueName
=
new
StringBuilder
();
for
(
Venue
venue
:
event
.
getEventVenues
())
{
eventVenueName
.
append
(
", "
).
append
(
venue
.
getVenueName
());
}
if
(!
eventVenueName
.
toString
().
equals
(
""
))
eventVenue
.
setText
(
eventVenueName
.
toString
().
substring
(
2
));
goingButton
.
setOnClickListener
(
this
);
interestedButton
.
setOnClickListener
(
this
);
notGoingButton
.
setOnClickListener
(
this
);
}
@Override
public
void
onClick
(
View
view
)
{
goingButton
.
setBackgroundColor
(
getResources
().
getColor
(
R
.
color
.
colorWhite
));
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
.
updateUserEventStatus
(
"sessionid="
+
getArguments
().
getString
(
SESSION_ID
),
event
.
getEventID
(),
status
).
enqueue
(
new
Callback
<
Void
>()
{
@Override
public
void
onResponse
(
Call
<
Void
>
call
,
Response
<
Void
>
response
)
{
if
(
response
.
isSuccessful
())
{
}
}
@Override
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
();
}
});
}
}
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/FeedFragment.java
View file @
5c42cc89
package
in.ac.iitb.gymkhana.iitbapp.fragment
;
import
android.content.ContentValues
;
import
android.database.Cursor
;
import
android.database.sqlite.SQLiteDatabase
;
import
android.app.Activity
;
import
android.os.Bundle
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentManager
;
...
...
@@ -11,16 +9,15 @@ import android.support.v4.app.FragmentTransaction;
import
android.support.v4.widget.SwipeRefreshLayout
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.util.Log
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
com.google.gson.Gson
;
import
java.util.ArrayList
;
import
java.util.List
;
import
in.ac.iitb.gymkhana.iitbapp.ActivityBuffer
;
import
in.ac.iitb.gymkhana.iitbapp.Constants
;
import
in.ac.iitb.gymkhana.iitbapp.ItemClickListener
;
import
in.ac.iitb.gymkhana.iitbapp.R
;
...
...
@@ -39,7 +36,7 @@ import static in.ac.iitb.gymkhana.iitbapp.SessionManager.SESSION_ID;
/**
* A simple {@link Fragment} subclass.
*/
public
class
FeedFragment
extends
Fragment
{
public
class
FeedFragment
extends
Base
Fragment
{
private
RecyclerView
feedRecyclerView
;
private
SwipeRefreshLayout
feedSwipeRefreshLayout
;
...
...
@@ -62,31 +59,13 @@ public class FeedFragment extends Fragment {
public
void
onStart
()
{
super
.
onStart
();
appDatabase
=
AppDatabase
.
getAppDatabase
(
getContext
());
final
List
<
Event
>
events
=
appDatabase
.
dbDao
().
getAllEvents
();
FeedAdapter
feedAdapter
=
new
FeedAdapter
(
events
,
new
ItemClickListener
()
{
@Override
public
void
onItemClick
(
View
v
,
int
position
)
{
String
eventJson
=
new
Gson
().
toJson
(
events
.
get
(
position
));
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
Constants
.
EVENT_JSON
,
eventJson
);
EventFragment
eventFragment
=
new
EventFragment
();
eventFragment
.
setArguments
(
bundle
);
FragmentManager
manager
=
getActivity
().
getSupportFragmentManager
();
FragmentTransaction
transaction
=
manager
.
beginTransaction
();
transaction
.
replace
(
R
.
id
.
framelayout_for_fragment
,
eventFragment
,
eventFragment
.
getTag
());
transaction
.
commit
();
}
});
feedRecyclerView
=
(
RecyclerView
)
getActivity
().
findViewById
(
R
.
id
.
feed_recycler_view
);
feedRecyclerView
.
setAdapter
(
feedAdapter
);
feedRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
// }
appDatabase
=
AppDatabase
.
getAppDatabase
(
getContext
());
final
List
<
Event
>
events
=
appDatabase
.
dbDao
().
getAllEvents
();
displayEvents
(
events
);
updateFeed
();
feedSwipeRefreshLayout
=
(
SwipeRefreshLayout
)
getActivity
().
findViewById
(
R
.
id
.
feed_swipe_refresh_layout
);
feedSwipeRefreshLayout
=
getActivity
().
findViewById
(
R
.
id
.
feed_swipe_refresh_layout
);
feedSwipeRefreshLayout
.
setOnRefreshListener
(
new
SwipeRefreshLayout
.
OnRefreshListener
()
{
@Override
public
void
onRefresh
()
{
...
...
@@ -102,31 +81,14 @@ public class FeedFragment extends Fragment {
public
void
onResponse
(
Call
<
NewsFeedResponse
>
call
,
Response
<
NewsFeedResponse
>
response
)
{
if
(
response
.
isSuccessful
())
{
NewsFeedResponse
newsFeedResponse
=
response
.
body
();
final
List
<
Event
>
events
=
newsFeedResponse
.
getEvents
();
FeedAdapter
feedAdapter
=
new
FeedAdapter
(
events
,
new
ItemClickListener
()
{
@Override
public
void
onItemClick
(
View
v
,
int
position
)
{
String
eventJson
=
new
Gson
().
toJson
(
events
.
get
(
position
));
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
Constants
.
EVENT_JSON
,
eventJson
);
EventFragment
eventFragment
=
new
EventFragment
();
eventFragment
.
setArguments
(
bundle
);
FragmentManager
manager
=
getActivity
().
getSupportFragmentManager
();
FragmentTransaction
transaction
=
manager
.
beginTransaction
();
transaction
.
replace
(
R
.
id
.
framelayout_for_fragment
,
eventFragment
,
eventFragment
.
getTag
());
transaction
.
commit
();
}
});
feedRecyclerView
=
(
RecyclerView
)
getActivity
().
findViewById
(
R
.
id
.
feed_recycler_view
);
feedRecyclerView
.
setAdapter
(
feedAdapter
);
feedRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
List
<
Event
>
events
=
newsFeedResponse
.
getEvents
();
displayEvents
(
events
);
appDatabase
.
dbDao
().
deleteEvents
();
appDatabase
.
dbDao
().
insertEvents
(
events
);
//Server Error
feedSwipeRefreshLayout
.
setRefreshing
(
false
);
}
//Server Error
feedSwipeRefreshLayout
.
setRefreshing
(
false
);
}
@Override
...
...
@@ -136,4 +98,32 @@ public class FeedFragment extends Fragment {
}
});
}
private
void
displayEvents
(
final
List
<
Event
>
events
)
{
FeedAdapter
feedAdapter
=
new
FeedAdapter
(
events
,
new
ItemClickListener
()
{
@Override
public
void
onItemClick
(
View
v
,
int
position
)
{
String
eventJson
=
new
Gson
().
toJson
(
events
.
get
(
position
));
Bundle
bundle
=
getArguments
();
if
(
bundle
==
null
)
bundle
=
new
Bundle
();
bundle
.
putString
(
Constants
.
EVENT_JSON
,
eventJson
);
EventFragment
eventFragment
=
new
EventFragment
();
eventFragment
.
setArguments
(
bundle
);
FragmentManager
manager
=
getActivity
().
getSupportFragmentManager
();
FragmentTransaction
transaction
=
manager
.
beginTransaction
();
transaction
.
replace
(
R
.
id
.
framelayout_for_fragment
,
eventFragment
,
eventFragment
.
getTag
());
transaction
.
commit
();
}
});
getActivityBuffer
().
safely
(
new
ActivityBuffer
.
IRunnable
()
{
@Override
public
void
run
(
Activity
pActivity
)
{
feedRecyclerView
=
pActivity
.
findViewById
(
R
.
id
.
feed_recycler_view
);
}
});
feedRecyclerView
.
setAdapter
(
feedAdapter
);
feedRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
}
}
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/GCRankingsFragment.java
View file @
5c42cc89
...
...
@@ -12,7 +12,7 @@ import in.ac.iitb.gymkhana.iitbapp.R;
/**
* A simple {@link Fragment} subclass.
*/
public
class
GCRankingsFragment
extends
Fragment
{
public
class
GCRankingsFragment
extends
Base
Fragment
{
public
GCRankingsFragment
()
{
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/MapFragment.java
View file @
5c42cc89
...
...
@@ -54,7 +54,7 @@ import in.ac.iitb.gymkhana.iitbapp.R;
import
static
android
.
content
.
Context
.
LOCATION_SERVICE
;
public
class
MapFragment
extends
Fragment
implements
OnMapReadyCallback
,
LocationListener
,
public
class
MapFragment
extends
Base
Fragment
implements
OnMapReadyCallback
,
LocationListener
,
GoogleApiClient
.
ConnectionCallbacks
,
GoogleApiClient
.
OnConnectionFailedListener
{
SupportMapFragment
gMapFragment
;
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/MessMenuFragment.java
View file @
5c42cc89
...
...
@@ -12,7 +12,7 @@ import in.ac.iitb.gymkhana.iitbapp.R;
/**
* A simple {@link Fragment} subclass.
*/
public
class
MessMenuFragment
extends
Fragment
{
public
class
MessMenuFragment
extends
Base
Fragment
{
public
MessMenuFragment
()
{
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/MyEventsFragment.java
View file @
5c42cc89
...
...
@@ -12,7 +12,7 @@ import in.ac.iitb.gymkhana.iitbapp.R;
/**
* A simple {@link Fragment} subclass.
*/
public
class
MyEventsFragment
extends
Fragment
{
public
class
MyEventsFragment
extends
Base
Fragment
{
public
MyEventsFragment
()
{
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/NotificationsFragment.java
View file @
5c42cc89
...
...
@@ -23,7 +23,7 @@ import in.ac.iitb.gymkhana.iitbapp.api.model.NotificationsResponse;
/**
* A simple {@link Fragment} subclass.
*/
public
class
NotificationsFragment
extends
Fragment
{
public
class
NotificationsFragment
extends
Base
Fragment
{
RecyclerView
notificationsRecyclerView
;
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/PTCellFragment.java
View file @
5c42cc89
...
...
@@ -12,7 +12,7 @@ import in.ac.iitb.gymkhana.iitbapp.R;
/**
* A simple {@link Fragment} subclass.
*/
public
class
PTCellFragment
extends
Fragment
{
public
class
PTCellFragment
extends
Base
Fragment
{
public
PTCellFragment
()
{
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/PeopleFragment.java
View file @
5c42cc89
...
...
@@ -20,7 +20,7 @@ import in.ac.iitb.gymkhana.iitbapp.PeopleSuggestionAdapter;
import
in.ac.iitb.gymkhana.iitbapp.R
;
public
class
PeopleFragment
extends
Fragment
{
public
class
PeopleFragment
extends
Base
Fragment
{
View
view
;
SearchView
searchView
;
PeopleSuggestionAdapter
adapter
;
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/ProfileFragment.java
View file @
5c42cc89
...
...
@@ -25,7 +25,7 @@ import static in.ac.iitb.gymkhana.iitbapp.SessionManager.SESSION_ID;
/**
* A simple {@link Fragment} subclass.
*/
public
class
ProfileFragment
extends
Fragment
{
public
class
ProfileFragment
extends
Base
Fragment
{
User
user
;
public
ProfileFragment
()
{
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/TimetableFragment.java
View file @
5c42cc89
...
...
@@ -12,7 +12,7 @@ import in.ac.iitb.gymkhana.iitbapp.R;
/**
* A simple {@link Fragment} subclass.
*/
public
class
TimetableFragment
extends
Fragment
{
public
class
TimetableFragment
extends
Base
Fragment
{
public
TimetableFragment
()
{
...
...
app/src/main/res/layout/fragment_event.xml
View file @
5c42cc89
...
...
@@ -49,7 +49,7 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:id=
"@+id/event_page_date"
android:text=
"
26 May
"
android:text=
"
No Date Specified
"
android:textSize=
"16sp"
android:textColor=
"#fff"
/>
<TextView
...
...
@@ -62,7 +62,7 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:id=
"@+id/event_page_time"
android:text=
"
6:00 PM
"
android:text=
"
No Time Specified
"
android:textSize=
"16sp"
android:textColor=
"#fff"
/>
<TextView
...
...
@@ -75,7 +75,7 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:id=
"@+id/event_page_venue"
android:text=
"
LH 101
"
android:text=
"
No Venue Specified
"
android:ellipsize=
"end"
android:textSize=
"16sp"
android:textColor=
"#fff"
/>
...
...
@@ -93,6 +93,7 @@
android:orientation=
"horizontal"
>
<Button
android:id=
"@+id/going_button"
style=
"?android:attr/buttonBarButtonStyle"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
...
...
@@ -110,6 +111,7 @@
</View>
<Button
android:id=
"@+id/interested_button"
style=
"?android:attr/buttonBarButtonStyle"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
...
...
@@ -127,6 +129,7 @@
</View>
<Button
android:id=
"@+id/not_going_button"
style=
"?android:attr/buttonBarButtonStyle"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
...
...
app/src/main/res/values/colors.xml
View file @
5c42cc89
...
...
@@ -5,4 +5,5 @@
<color
name=
"colorAccent"
>
#ECF833
</color>
<color
name=
"colorCalendarWeek"
>
#000000
</color>
<color
name=
"colorGray"
>
#757575
</color>
<color
name=
"colorWhite"
>
#FFFFFF
</color>
</resources>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment