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
c77e947b
Commit
c77e947b
authored
Jul 01, 2018
by
Sajal Narang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/unstablebrainiac/IITB-App
parents
5f7f3023
6350dbcb
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
512 additions
and
11 deletions
+512
-11
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/Constants.java
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/Constants.java
+3
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/adapter/TabAdapter.java
.../java/in/ac/iitb/gymkhana/iitbapp/adapter/TabAdapter.java
+38
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/adapter/UserAdapter.java
...java/in/ac/iitb/gymkhana/iitbapp/adapter/UserAdapter.java
+74
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Body.java
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Body.java
+13
-1
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Role.java
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Role.java
+9
-9
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/User.java
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/User.java
+13
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/BodyFragment.java
...va/in/ac/iitb/gymkhana/iitbapp/fragment/BodyFragment.java
+73
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/BodyRecyclerViewFragment.java
...b/gymkhana/iitbapp/fragment/BodyRecyclerViewFragment.java
+94
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/EventRecyclerViewFragment.java
.../gymkhana/iitbapp/fragment/EventRecyclerViewFragment.java
+92
-0
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/ProfileFragment.java
...in/ac/iitb/gymkhana/iitbapp/fragment/ProfileFragment.java
+26
-0
app/src/main/res/layout/fragment_body.xml
app/src/main/res/layout/fragment_body.xml
+53
-0
app/src/main/res/layout/fragment_body_recycler_view.xml
app/src/main/res/layout/fragment_body_recycler_view.xml
+14
-0
app/src/main/res/layout/fragment_event_recycler_view.xml
app/src/main/res/layout/fragment_event_recycler_view.xml
+10
-0
No files found.
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/Constants.java
View file @
c77e947b
...
@@ -7,6 +7,7 @@ public class Constants {
...
@@ -7,6 +7,7 @@ public class Constants {
public
static
final
int
RESULT_LOAD_IMAGE
=
11
;
public
static
final
int
RESULT_LOAD_IMAGE
=
11
;
public
static
final
String
NOTIFICATIONS_RESPONSE_JSON
=
"notifications_json"
;
public
static
final
String
NOTIFICATIONS_RESPONSE_JSON
=
"notifications_json"
;
public
static
final
String
EVENT_JSON
=
"event_json"
;
public
static
final
String
EVENT_JSON
=
"event_json"
;
public
static
final
String
EVENT_LIST_JSON
=
"event_list_json"
;
public
static
final
String
USER_ID
=
"user_id"
;
public
static
final
String
USER_ID
=
"user_id"
;
public
static
final
String
USER_HOSTEL
=
"user_hostel"
;
public
static
final
String
USER_HOSTEL
=
"user_hostel"
;
public
static
final
String
SENT_TOKEN_TO_SERVER
=
"sentTokenToServer"
;
public
static
final
String
SENT_TOKEN_TO_SERVER
=
"sentTokenToServer"
;
...
@@ -19,5 +20,6 @@ public class Constants {
...
@@ -19,5 +20,6 @@ public class Constants {
public
static
final
int
STATUS_GOING
=
2
;
public
static
final
int
STATUS_GOING
=
2
;
public
static
final
int
STATUS_INTERESTED
=
1
;
public
static
final
int
STATUS_INTERESTED
=
1
;
public
static
final
int
STATUS_NOT_GOING
=
0
;
public
static
final
int
STATUS_NOT_GOING
=
0
;
public
static
final
String
BODY_JSON
=
"body_json"
;
public
static
final
String
BODY_JSON
=
"body_json"
;
public
static
final
String
BODY_LIST_JSON
=
"body_list_json"
;
}
}
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/adapter/TabAdapter.java
0 → 100644
View file @
c77e947b
package
in.ac.iitb.gymkhana.iitbapp.adapter
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentManager
;
import
android.support.v4.app.FragmentStatePagerAdapter
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
TabAdapter
extends
FragmentStatePagerAdapter
{
private
final
List
<
Fragment
>
list_fragment
=
new
ArrayList
<>();
private
final
List
<
String
>
list_title
=
new
ArrayList
<>();
public
void
addFragment
(
Fragment
fragment
,
String
title
)
{
list_fragment
.
add
(
fragment
);
list_title
.
add
(
title
);
}
public
TabAdapter
(
FragmentManager
fm
)
{
super
(
fm
);
}
@Override
public
CharSequence
getPageTitle
(
int
position
)
{
return
list_title
.
get
(
position
);
}
@Override
public
Fragment
getItem
(
int
position
)
{
return
list_fragment
.
get
(
position
);
}
@Override
public
int
getCount
()
{
return
list_fragment
.
size
();
}
}
\ No newline at end of file
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/adapter/UserAdapter.java
0 → 100644
View file @
c77e947b
package
in.ac.iitb.gymkhana.iitbapp.adapter
;
import
android.content.Context
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
com.squareup.picasso.Picasso
;
import
java.util.List
;
import
in.ac.iitb.gymkhana.iitbapp.ItemClickListener
;
import
in.ac.iitb.gymkhana.iitbapp.R
;
import
in.ac.iitb.gymkhana.iitbapp.data.Body
;
import
in.ac.iitb.gymkhana.iitbapp.data.Role
;
import
in.ac.iitb.gymkhana.iitbapp.data.User
;
public
class
UserAdapter
extends
RecyclerView
.
Adapter
<
UserAdapter
.
ViewHolder
>
{
private
List
<
User
>
userList
;
private
ItemClickListener
itemClickListener
;
private
Context
context
;
public
UserAdapter
(
List
<
User
>
userList
,
ItemClickListener
itemClickListener
){
this
.
userList
=
userList
;
this
.
itemClickListener
=
itemClickListener
;
}
@Override
public
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
context
=
parent
.
getContext
();
View
v
=
LayoutInflater
.
from
(
context
)
.
inflate
(
R
.
layout
.
role_card
,
parent
,
false
);
final
ViewHolder
postViewHolder
=
new
ViewHolder
(
v
);
v
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
view
)
{
itemClickListener
.
onItemClick
(
view
,
postViewHolder
.
getAdapterPosition
());
}
});
return
postViewHolder
;
}
@Override
public
void
onBindViewHolder
(
ViewHolder
holder
,
int
position
)
{
User
user
=
userList
.
get
(
position
);
holder
.
userName
.
setText
(
user
.
getUserName
());
holder
.
role
.
setText
(
user
.
getCurrentRole
());
Picasso
.
with
(
context
).
load
(
user
.
getUserProfilePictureUrl
()).
resize
(
120
,
0
).
into
(
holder
.
image
);
}
@Override
public
int
getItemCount
()
{
return
userList
.
size
();
}
public
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
public
TextView
userName
;
public
TextView
role
;
public
ImageView
image
;
public
ViewHolder
(
View
itemView
)
{
super
(
itemView
);
userName
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
role_card_body
);
role
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
role_card_role
);
image
=
(
ImageView
)
itemView
.
findViewById
(
R
.
id
.
role_card_avatar
);
}
}
}
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Body.java
View file @
c77e947b
...
@@ -52,8 +52,11 @@ public class Body {
...
@@ -52,8 +52,11 @@ public class Body {
@ColumnInfo
(
name
=
"user_follows"
)
@ColumnInfo
(
name
=
"user_follows"
)
@SerializedName
(
"user_follows"
)
@SerializedName
(
"user_follows"
)
boolean
bodyUserFollows
;
boolean
bodyUserFollows
;
@ColumnInfo
(
name
=
"roles"
)
@SerializedName
(
"roles"
)
List
<
Role
>
bodyRoles
;
public
Body
(
String
bodyID
,
String
bodyStrID
,
String
bodyName
,
String
bodyShortDescription
,
String
bodyDescription
,
String
bodyImageURL
,
List
<
Body
>
bodyChildren
,
List
<
Body
>
bodyParents
,
List
<
Event
>
bodyEvents
,
int
bodyFollowersCount
,
String
bodyWebsiteURL
,
String
bodyBlogURL
,
Boolean
bodyUserFollow
s
)
{
public
Body
(
String
bodyID
,
String
bodyStrID
,
String
bodyName
,
String
bodyShortDescription
,
String
bodyDescription
,
String
bodyImageURL
,
List
<
Body
>
bodyChildren
,
List
<
Body
>
bodyParents
,
List
<
Event
>
bodyEvents
,
int
bodyFollowersCount
,
String
bodyWebsiteURL
,
String
bodyBlogURL
,
boolean
bodyUserFollows
,
List
<
Role
>
bodyRole
s
)
{
this
.
bodyID
=
bodyID
;
this
.
bodyID
=
bodyID
;
this
.
bodyStrID
=
bodyStrID
;
this
.
bodyStrID
=
bodyStrID
;
this
.
bodyName
=
bodyName
;
this
.
bodyName
=
bodyName
;
...
@@ -67,6 +70,7 @@ public class Body {
...
@@ -67,6 +70,7 @@ public class Body {
this
.
bodyWebsiteURL
=
bodyWebsiteURL
;
this
.
bodyWebsiteURL
=
bodyWebsiteURL
;
this
.
bodyBlogURL
=
bodyBlogURL
;
this
.
bodyBlogURL
=
bodyBlogURL
;
this
.
bodyUserFollows
=
bodyUserFollows
;
this
.
bodyUserFollows
=
bodyUserFollows
;
this
.
bodyRoles
=
bodyRoles
;
}
}
public
String
getBodyID
()
{
public
String
getBodyID
()
{
...
@@ -172,4 +176,12 @@ public class Body {
...
@@ -172,4 +176,12 @@ public class Body {
public
void
setBodyUserFollows
(
boolean
bodyUserFollows
)
{
public
void
setBodyUserFollows
(
boolean
bodyUserFollows
)
{
this
.
bodyUserFollows
=
bodyUserFollows
;
this
.
bodyUserFollows
=
bodyUserFollows
;
}
}
public
List
<
Role
>
getBodyRoles
()
{
return
bodyRoles
;
}
public
void
setBodyRoles
(
List
<
Role
>
bodyRoles
)
{
this
.
bodyRoles
=
bodyRoles
;
}
}
}
\ No newline at end of file
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/Role.java
View file @
c77e947b
...
@@ -50,11 +50,11 @@ public class Role {
...
@@ -50,11 +50,11 @@ public class Role {
@SerializedName
(
"users"
)
@SerializedName
(
"users"
)
List
<
String
>
roleUsers
;
List
<
String
>
roleUsers
;
@ColumnInfo
(
name
=
"users_detail
s
"
)
@ColumnInfo
(
name
=
"users_detail"
)
@SerializedName
(
"users_detail
s
"
)
@SerializedName
(
"users_detail"
)
List
<
User
>
roleUsersDetail
s
;
List
<
User
>
roleUsersDetail
;
public
Role
(
String
roleID
,
String
roleName
,
boolean
roleInheritable
,
String
roleBody
,
Body
roleBodyDetails
,
List
<
Body
>
roleBodies
,
List
<
String
>
rolePermissions
,
List
<
String
>
roleUsers
,
List
<
User
>
roleUsersDetail
s
)
{
public
Role
(
String
roleID
,
String
roleName
,
boolean
roleInheritable
,
String
roleBody
,
Body
roleBodyDetails
,
List
<
Body
>
roleBodies
,
List
<
String
>
rolePermissions
,
List
<
String
>
roleUsers
,
List
<
User
>
roleUsersDetail
)
{
this
.
roleID
=
roleID
;
this
.
roleID
=
roleID
;
this
.
roleName
=
roleName
;
this
.
roleName
=
roleName
;
this
.
roleInheritable
=
roleInheritable
;
this
.
roleInheritable
=
roleInheritable
;
...
@@ -63,7 +63,7 @@ public class Role {
...
@@ -63,7 +63,7 @@ public class Role {
this
.
roleBodies
=
roleBodies
;
this
.
roleBodies
=
roleBodies
;
this
.
rolePermissions
=
rolePermissions
;
this
.
rolePermissions
=
rolePermissions
;
this
.
roleUsers
=
roleUsers
;
this
.
roleUsers
=
roleUsers
;
this
.
roleUsersDetail
s
=
roleUsersDetails
;
this
.
roleUsersDetail
=
roleUsersDetail
;
}
}
public
String
getRoleID
()
{
public
String
getRoleID
()
{
...
@@ -130,11 +130,11 @@ public class Role {
...
@@ -130,11 +130,11 @@ public class Role {
this
.
roleUsers
=
roleUsers
;
this
.
roleUsers
=
roleUsers
;
}
}
public
List
<
User
>
getRoleUsersDetail
s
()
{
public
List
<
User
>
getRoleUsersDetail
()
{
return
roleUsersDetail
s
;
return
roleUsersDetail
;
}
}
public
void
setRoleUsersDetail
s
(
List
<
User
>
roleUsersDetails
)
{
public
void
setRoleUsersDetail
(
List
<
User
>
roleUsersDetail
)
{
this
.
roleUsersDetail
s
=
roleUsersDetails
;
this
.
roleUsersDetail
=
roleUsersDetail
;
}
}
}
}
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/data/User.java
View file @
c77e947b
...
@@ -2,6 +2,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
...
@@ -2,6 +2,7 @@ package in.ac.iitb.gymkhana.iitbapp.data;
import
android.arch.persistence.room.ColumnInfo
;
import
android.arch.persistence.room.ColumnInfo
;
import
android.arch.persistence.room.Entity
;
import
android.arch.persistence.room.Entity
;
import
android.arch.persistence.room.Ignore
;
import
android.arch.persistence.room.PrimaryKey
;
import
android.arch.persistence.room.PrimaryKey
;
import
android.util.Log
;
import
android.util.Log
;
...
@@ -64,6 +65,10 @@ public class User {
...
@@ -64,6 +65,10 @@ public class User {
@SerializedName
(
"hostel"
)
@SerializedName
(
"hostel"
)
String
hostel
;
String
hostel
;
/** Not in database */
@Ignore
String
currentRole
;
public
User
(
int
db_id
,
String
userID
,
String
userName
,
String
userProfilePictureUrl
,
List
<
Event
>
userInterestedEvents
,
List
<
Event
>
userGoingEvents
,
String
userEmail
,
String
userRollNumber
,
String
userContactNumber
,
String
userAbout
,
List
<
Body
>
userFollowedBodies
,
List
<
String
>
userFollowedBodiesID
,
List
<
Role
>
userRoles
,
List
<
Role
>
userInstituteRoles
,
String
userWebsiteURL
,
String
userLDAPId
,
String
hostel
)
{
public
User
(
int
db_id
,
String
userID
,
String
userName
,
String
userProfilePictureUrl
,
List
<
Event
>
userInterestedEvents
,
List
<
Event
>
userGoingEvents
,
String
userEmail
,
String
userRollNumber
,
String
userContactNumber
,
String
userAbout
,
List
<
Body
>
userFollowedBodies
,
List
<
String
>
userFollowedBodiesID
,
List
<
Role
>
userRoles
,
List
<
Role
>
userInstituteRoles
,
String
userWebsiteURL
,
String
userLDAPId
,
String
hostel
)
{
this
.
db_id
=
db_id
;
this
.
db_id
=
db_id
;
this
.
userID
=
userID
;
this
.
userID
=
userID
;
...
@@ -216,6 +221,14 @@ public class User {
...
@@ -216,6 +221,14 @@ public class User {
this
.
hostel
=
hostel
;
this
.
hostel
=
hostel
;
}
}
public
String
getCurrentRole
()
{
return
currentRole
;
}
public
void
setCurrentRole
(
String
currentRole
)
{
this
.
currentRole
=
currentRole
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
new
Gson
().
toJson
(
this
);
return
new
Gson
().
toJson
(
this
);
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/BodyFragment.java
View file @
c77e947b
...
@@ -10,6 +10,7 @@ import android.support.v4.app.FragmentTransaction;
...
@@ -10,6 +10,7 @@ import android.support.v4.app.FragmentTransaction;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.support.v7.widget.RecyclerView
;
import
android.support.v4.widget.SwipeRefreshLayout
;
import
android.support.v4.widget.SwipeRefreshLayout
;
import
android.util.Log
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
...
@@ -22,6 +23,7 @@ import android.widget.Toast;
...
@@ -22,6 +23,7 @@ import android.widget.Toast;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
com.squareup.picasso.Picasso
;
import
com.squareup.picasso.Picasso
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
in.ac.iitb.gymkhana.iitbapp.Constants
;
import
in.ac.iitb.gymkhana.iitbapp.Constants
;
...
@@ -29,12 +31,16 @@ import in.ac.iitb.gymkhana.iitbapp.ItemClickListener;
...
@@ -29,12 +31,16 @@ 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.ShareURLMaker
;
import
in.ac.iitb.gymkhana.iitbapp.ShareURLMaker
;
import
in.ac.iitb.gymkhana.iitbapp.adapter.BodyAdapter
;
import
in.ac.iitb.gymkhana.iitbapp.adapter.FeedAdapter
;
import
in.ac.iitb.gymkhana.iitbapp.adapter.FeedAdapter
;
import
in.ac.iitb.gymkhana.iitbapp.adapter.UserAdapter
;
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.AppDatabase
;
import
in.ac.iitb.gymkhana.iitbapp.data.Body
;
import
in.ac.iitb.gymkhana.iitbapp.data.Body
;
import
in.ac.iitb.gymkhana.iitbapp.data.Event
;
import
in.ac.iitb.gymkhana.iitbapp.data.Event
;
import
in.ac.iitb.gymkhana.iitbapp.data.Role
;
import
in.ac.iitb.gymkhana.iitbapp.data.User
;
import
retrofit2.Call
;
import
retrofit2.Call
;
import
retrofit2.Callback
;
import
retrofit2.Callback
;
import
retrofit2.Response
;
import
retrofit2.Response
;
...
@@ -212,6 +218,73 @@ public class BodyFragment extends Fragment {
...
@@ -212,6 +218,73 @@ public class BodyFragment extends Fragment {
});
});
eventRecyclerView
.
setAdapter
(
eventAdapter
);
eventRecyclerView
.
setAdapter
(
eventAdapter
);
eventRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
eventRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
/* Get users from roles */
final
List
<
Role
>
roles
=
body
.
getBodyRoles
();
final
List
<
User
>
users
=
new
ArrayList
();
for
(
Role
role
:
roles
)
{
if
(
role
.
getRoleUsersDetail
()
!=
null
)
{
for
(
User
user:
role
.
getRoleUsersDetail
())
{
user
.
setCurrentRole
(
role
.
getRoleName
());
users
.
add
(
user
);
}
}
}
/* Initialize People */
RecyclerView
userRecyclerView
=
(
RecyclerView
)
getActivity
().
findViewById
(
R
.
id
.
people_card_recycler_view
);
UserAdapter
userAdapter
=
new
UserAdapter
(
users
,
new
ItemClickListener
()
{
@Override
public
void
onItemClick
(
View
v
,
int
position
)
{
User
user
=
users
.
get
(
position
);
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
Constants
.
USER_ID
,
user
.
getUserID
());
ProfileFragment
profileFragment
=
new
ProfileFragment
();
profileFragment
.
setArguments
(
bundle
);
FragmentTransaction
ft
=
getActivity
().
getSupportFragmentManager
().
beginTransaction
();
ft
.
setCustomAnimations
(
R
.
anim
.
slide_in_left
,
R
.
anim
.
slide_out_left
,
R
.
anim
.
slide_in_right
,
R
.
anim
.
slide_out_right
);
ft
.
replace
(
R
.
id
.
framelayout_for_fragment
,
profileFragment
,
profileFragment
.
getTag
());
ft
.
addToBackStack
(
profileFragment
.
getTag
());
ft
.
commit
();
}
});
userRecyclerView
.
setAdapter
(
userAdapter
);
userRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
/* Initialize Parent bodies */
RecyclerView
parentsRecyclerView
=
(
RecyclerView
)
getActivity
().
findViewById
(
R
.
id
.
parentorg_card_recycler_view
);
BodyAdapter
parentAdapter
=
new
BodyAdapter
(
body
.
getBodyParents
(),
new
ItemClickListener
()
{
@Override
public
void
onItemClick
(
View
v
,
int
position
)
{
openBody
(
body
.
getBodyParents
().
get
(
position
));
}
});
parentsRecyclerView
.
setAdapter
(
parentAdapter
);
parentsRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
/* Initialize child bodies */
RecyclerView
childrenRecyclerView
=
(
RecyclerView
)
getActivity
().
findViewById
(
R
.
id
.
org_card_recycler_view
);
BodyAdapter
childrenAdapter
=
new
BodyAdapter
(
body
.
getBodyChildren
(),
new
ItemClickListener
()
{
@Override
public
void
onItemClick
(
View
v
,
int
position
)
{
openBody
(
body
.
getBodyChildren
().
get
(
position
));
}
});
childrenRecyclerView
.
setAdapter
(
childrenAdapter
);
childrenRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
}
/** Open body fragment for a body */
private
void
openBody
(
Body
body
)
{
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
Constants
.
BODY_JSON
,
new
Gson
().
toJson
(
body
));
BodyFragment
bodyFragment
=
new
BodyFragment
();
bodyFragment
.
setArguments
(
bundle
);
FragmentTransaction
ft
=
getActivity
().
getSupportFragmentManager
().
beginTransaction
();
ft
.
setCustomAnimations
(
R
.
anim
.
slide_in_left
,
R
.
anim
.
slide_out_left
,
R
.
anim
.
slide_in_right
,
R
.
anim
.
slide_out_right
);
ft
.
replace
(
R
.
id
.
framelayout_for_fragment
,
bodyFragment
,
bodyFragment
.
getTag
());
ft
.
addToBackStack
(
bodyFragment
.
getTag
());
ft
.
commit
();
}
}
private
class
updateDbBody
extends
AsyncTask
<
Body
,
Void
,
Integer
>
{
private
class
updateDbBody
extends
AsyncTask
<
Body
,
Void
,
Integer
>
{
...
...
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/BodyRecyclerViewFragment.java
0 → 100644
View file @
c77e947b
package
in.ac.iitb.gymkhana.iitbapp.fragment
;
import
android.os.Bundle
;
import
android.support.v4.app.Fragment
;
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.View
;
import
android.view.ViewGroup
;
import
com.google.gson.Gson
;
import
com.google.gson.reflect.TypeToken
;
import
java.util.List
;
import
in.ac.iitb.gymkhana.iitbapp.Constants
;
import
in.ac.iitb.gymkhana.iitbapp.ItemClickListener
;
import
in.ac.iitb.gymkhana.iitbapp.R
;
import
in.ac.iitb.gymkhana.iitbapp.adapter.BodyAdapter
;
import
in.ac.iitb.gymkhana.iitbapp.data.Body
;
/**
* A simple {@link Fragment} subclass.
* Activities that contain this fragment must implement the
* to handle interaction events.
* Use the {@link BodyRecyclerViewFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public
class
BodyRecyclerViewFragment
extends
Fragment
{
private
static
final
String
TAG
=
"BodyRecyclerViewFragment"
;
private
RecyclerView
recyclerView
;
private
BodyAdapter
bodyAdapter
;
private
List
<
Body
>
bodyList
;
public
BodyRecyclerViewFragment
()
{
// Required empty public constructor
}
// TODO: Rename and change types and number of parameters
public
static
BodyRecyclerViewFragment
newInstance
(
List
<
Body
>
bodyList
)
{
BodyRecyclerViewFragment
fragment
=
new
BodyRecyclerViewFragment
();
Bundle
args
=
new
Bundle
();
args
.
putString
(
Constants
.
BODY_LIST_JSON
,
new
Gson
().
toJson
(
bodyList
));
fragment
.
setArguments
(
args
);
return
fragment
;
}
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
if
(
getArguments
()
!=
null
)
{
bodyList
=
new
Gson
().
fromJson
(
getArguments
().
getString
(
Constants
.
BODY_LIST_JSON
),
new
TypeToken
<
List
<
Body
>>(){}.
getType
());
}
}
@Override
public
void
onStart
()
{
super
.
onStart
();
recyclerView
=
(
RecyclerView
)
getActivity
().
findViewById
(
R
.
id
.
body_recycler_view
);
bodyAdapter
=
new
BodyAdapter
(
bodyList
,
new
ItemClickListener
()
{
@Override
public
void
onItemClick
(
View
v
,
int
position
)
{
Body
body
=
bodyList
.
get
(
position
);
BodyFragment
bodyFragment
=
new
BodyFragment
();
Bundle
arguments
=
getArguments
();
arguments
.
putString
(
Constants
.
BODY_JSON
,
new
Gson
().
toJson
(
body
));
bodyFragment
.
setArguments
(
getArguments
());
FragmentTransaction
ft
=
getActivity
().
getSupportFragmentManager
().
beginTransaction
();
ft
.
replace
(
R
.
id
.
framelayout_for_fragment
,
bodyFragment
,
bodyFragment
.
getTag
());
ft
.
addToBackStack
(
bodyFragment
.
getTag
());
ft
.
commit
();
}
});
recyclerView
.
setAdapter
(
bodyAdapter
);
recyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
}
@Override
public
View
onCreateView
(
LayoutInflater
inflater
,
ViewGroup
container
,
Bundle
savedInstanceState
)
{
// Inflate the layout for this fragment
return
inflater
.
inflate
(
R
.
layout
.
fragment_body_recycler_view
,
container
,
false
);
}
}
\ No newline at end of file
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/EventRecyclerViewFragment.java
0 → 100644
View file @
c77e947b
package
in.ac.iitb.gymkhana.iitbapp.fragment
;
import
android.os.Bundle
;
import
android.support.v4.app.Fragment
;
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.View
;
import
android.view.ViewGroup
;
import
com.google.gson.Gson
;
import
com.google.gson.reflect.TypeToken
;
import
java.util.List
;
import
in.ac.iitb.gymkhana.iitbapp.Constants
;
import
in.ac.iitb.gymkhana.iitbapp.ItemClickListener
;
import
in.ac.iitb.gymkhana.iitbapp.R
;
import
in.ac.iitb.gymkhana.iitbapp.adapter.FeedAdapter
;
import
in.ac.iitb.gymkhana.iitbapp.data.Event
;
/**
* A simple {@link Fragment} subclass.
* Activities that contain this fragment must implement the
* to handle interaction events.
* Use the {@link EventRecyclerViewFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public
class
EventRecyclerViewFragment
extends
Fragment
{
private
static
final
String
TAG
=
"EventRecyclerViewFragment"
;
private
RecyclerView
recyclerView
;
private
FeedAdapter
feedAdapter
;
private
List
<
Event
>
eventList
;
public
EventRecyclerViewFragment
()
{
// Required empty public constructor
}
// TODO: Rename and change types and number of parameters
public
static
EventRecyclerViewFragment
newInstance
(
List
<
Event
>
eventList
)
{
EventRecyclerViewFragment
fragment
=
new
EventRecyclerViewFragment
();
Bundle
args
=
new
Bundle
();
args
.
putString
(
Constants
.
EVENT_LIST_JSON
,
new
Gson
().
toJson
(
eventList
));
fragment
.
setArguments
(
args
);
return
fragment
;
}
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
if
(
getArguments
()
!=
null
)
{
eventList
=
new
Gson
().
fromJson
(
getArguments
().
getString
(
Constants
.
EVENT_LIST_JSON
),
new
TypeToken
<
List
<
Event
>>(){}.
getType
());
}
}
@Override
public
void
onStart
()
{
super
.
onStart
();
recyclerView
=
(
RecyclerView
)
getActivity
().
findViewById
(
R
.
id
.
event_recycler_view
);
feedAdapter
=
new
FeedAdapter
(
eventList
,
new
ItemClickListener
()
{
@Override
public
void
onItemClick
(
View
v
,
int
position
)
{
Event
event
=
eventList
.
get
(
position
);
EventFragment
eventFragment
=
new
EventFragment
();
Bundle
arguments
=
getArguments
();
arguments
.
putString
(
Constants
.
EVENT_JSON
,
new
Gson
().
toJson
(
event
));
eventFragment
.
setArguments
(
getArguments
());
FragmentTransaction
ft
=
getActivity
().
getSupportFragmentManager
().
beginTransaction
();
ft
.
replace
(
R
.
id
.
framelayout_for_fragment
,
eventFragment
,
eventFragment
.
getTag
());
ft
.
addToBackStack
(
eventFragment
.
getTag
());
ft
.
commit
();
}
});
recyclerView
.
setAdapter
(
feedAdapter
);
recyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
}
@Override
public
View
onCreateView
(
LayoutInflater
inflater
,
ViewGroup
container
,
Bundle
savedInstanceState
)
{
// Inflate the layout for this fragment
return
inflater
.
inflate
(
R
.
layout
.
fragment_event_recycler_view
,
container
,
false
);
}
}
\ No newline at end of file
app/src/main/java/in/ac/iitb/gymkhana/iitbapp/fragment/ProfileFragment.java
View file @
c77e947b
...
@@ -2,8 +2,10 @@ package in.ac.iitb.gymkhana.iitbapp.fragment;
...
@@ -2,8 +2,10 @@ package in.ac.iitb.gymkhana.iitbapp.fragment;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.support.design.widget.TabLayout
;
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.v4.view.ViewPager
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.RecyclerView
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
...
@@ -21,10 +23,12 @@ import in.ac.iitb.gymkhana.iitbapp.Constants;
...
@@ -21,10 +23,12 @@ 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.R
;
import
in.ac.iitb.gymkhana.iitbapp.R
;
import
in.ac.iitb.gymkhana.iitbapp.adapter.RoleAdapter
;
import
in.ac.iitb.gymkhana.iitbapp.adapter.RoleAdapter
;
import
in.ac.iitb.gymkhana.iitbapp.adapter.TabAdapter
;
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.api.UnsafeOkHttpClient
;
import
in.ac.iitb.gymkhana.iitbapp.api.UnsafeOkHttpClient
;
import
in.ac.iitb.gymkhana.iitbapp.data.Body
;
import
in.ac.iitb.gymkhana.iitbapp.data.Body
;
import
in.ac.iitb.gymkhana.iitbapp.data.Event
;
import
in.ac.iitb.gymkhana.iitbapp.data.Role
;
import
in.ac.iitb.gymkhana.iitbapp.data.Role
;
import
in.ac.iitb.gymkhana.iitbapp.data.User
;
import
in.ac.iitb.gymkhana.iitbapp.data.User
;
import
retrofit2.Call
;
import
retrofit2.Call
;
...
@@ -97,6 +101,7 @@ public class ProfileFragment extends BaseFragment {
...
@@ -97,6 +101,7 @@ public class ProfileFragment extends BaseFragment {
userRoleRecyclerView
.
setAdapter
(
roleAdapter
);
userRoleRecyclerView
.
setAdapter
(
roleAdapter
);
userRoleRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
userRoleRecyclerView
.
setLayoutManager
(
new
LinearLayoutManager
(
getContext
()));
Picasso
.
Builder
picassoBuilder
=
new
Picasso
.
Builder
(
getContext
());
Picasso
.
Builder
picassoBuilder
=
new
Picasso
.
Builder
(
getContext
());
picassoBuilder
.
downloader
(
picassoBuilder
.
downloader
(
new
OkHttp3Downloader
((
new
OkHttp3Downloader
((
...
@@ -106,9 +111,30 @@ public class ProfileFragment extends BaseFragment {
...
@@ -106,9 +111,30 @@ public class ProfileFragment extends BaseFragment {
Picasso
picasso
=
picassoBuilder
.
build
();
Picasso
picasso
=
picassoBuilder
.
build
();
picasso
.
load
(
user
.
getUserProfilePictureUrl
()).
into
(
userProfilePictureImageView
);
picasso
.
load
(
user
.
getUserProfilePictureUrl
()).
into
(
userProfilePictureImageView
);
final
List
<
Body
>
bodyList
=
user
.
getUserFollowedBodies
();
final
List
<
Event
>
eventList
=
user
.
getUserGoingEvents
();
final
List
<
Event
>
eventInterestedList
=
user
.
getUserInterestedEvents
();
eventList
.
removeAll
(
eventInterestedList
);
eventList
.
addAll
(
eventInterestedList
);
BodyRecyclerViewFragment
frag1
=
BodyRecyclerViewFragment
.
newInstance
(
bodyList
);
EventRecyclerViewFragment
frag2
=
EventRecyclerViewFragment
.
newInstance
(
eventList
);
TabAdapter
tabAdapter
=
new
TabAdapter
(
getChildFragmentManager
());
tabAdapter
.
addFragment
(
frag1
,
"Following"
);
tabAdapter
.
addFragment
(
frag2
,
"Events"
);
// Set up the ViewPager with the sections adapter.
ViewPager
viewPager
=
(
ViewPager
)
getActivity
().
findViewById
(
R
.
id
.
viewPager
);
viewPager
.
setAdapter
(
tabAdapter
);
viewPager
.
setOffscreenPageLimit
(
2
);
TabLayout
tabLayout
=
(
TabLayout
)
getActivity
().
findViewById
(
R
.
id
.
tab_layout
);
tabLayout
.
setupWithViewPager
(
viewPager
);
userNameTextView
.
setText
(
user
.
getUserName
());
userNameTextView
.
setText
(
user
.
getUserName
());
userRollNumberTextView
.
setText
(
user
.
getUserRollNumber
());
userRollNumberTextView
.
setText
(
user
.
getUserRollNumber
());
userEmailIDTextView
.
setText
(
user
.
getUserEmail
());
userEmailIDTextView
.
setText
(
user
.
getUserEmail
());
userContactNumberTextView
.
setText
(
user
.
getUserContactNumber
());
userContactNumberTextView
.
setText
(
user
.
getUserContactNumber
());
}
}
}
}
app/src/main/res/layout/fragment_body.xml
View file @
c77e947b
...
@@ -126,6 +126,14 @@
...
@@ -126,6 +126,14 @@
android:textColor=
"#777"
android:textColor=
"#777"
android:textSize=
"16sp"
/>
android:textSize=
"16sp"
/>
<TextView
android:text=
"Events"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"15dp"
android:textSize=
"20sp"
android:fontFamily=
"sans-serif-light"
/>
<android.support.v7.widget.RecyclerView
<android.support.v7.widget.RecyclerView
android:id=
"@+id/event_card_recycler_view"
android:id=
"@+id/event_card_recycler_view"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -133,6 +141,51 @@
...
@@ -133,6 +141,51 @@
android:layout_marginTop=
"10dp"
android:layout_marginTop=
"10dp"
android:nestedScrollingEnabled=
"false"
/>
android:nestedScrollingEnabled=
"false"
/>
<TextView
android:text=
"Organizations"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"15dp"
android:textSize=
"20sp"
android:fontFamily=
"sans-serif-light"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/org_card_recycler_view"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:nestedScrollingEnabled=
"false"
/>
<TextView
android:text=
"People"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"15dp"
android:textSize=
"20sp"
android:fontFamily=
"sans-serif-light"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/people_card_recycler_view"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:nestedScrollingEnabled=
"false"
/>
<TextView
android:text=
"Part of"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"15dp"
android:textSize=
"20sp"
android:fontFamily=
"sans-serif-light"
/>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/parentorg_card_recycler_view"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:nestedScrollingEnabled=
"false"
/>
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.v4.widget.NestedScrollView>
</android.support.v4.widget.SwipeRefreshLayout>
</android.support.v4.widget.SwipeRefreshLayout>
...
...
app/src/main/res/layout/fragment_body_recycler_view.xml
0 → 100644
View file @
c77e947b
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
tools:context=
".fragment.BodyRecyclerViewFragment"
>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/body_recycler_view"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_event_recycler_view.xml
0 → 100644
View file @
c77e947b
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:orientation=
"vertical"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<android.support.v7.widget.RecyclerView
android:id=
"@+id/event_recycler_view"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
\ No newline at end of file
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