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
6f6736df
Commit
6f6736df
authored
Feb 06, 2019
by
Varun Patil
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement infinite scrolling in ComplaintsHomeFragment
parent
8307b37c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
60 additions
and
13 deletions
+60
-13
app/src/main/java/app/insti/api/RetrofitInterface.java
app/src/main/java/app/insti/api/RetrofitInterface.java
+1
-1
app/src/main/java/app/insti/fragment/ComplaintsHomeFragment.java
.../main/java/app/insti/fragment/ComplaintsHomeFragment.java
+59
-12
No files found.
app/src/main/java/app/insti/api/RetrofitInterface.java
View file @
6f6736df
...
@@ -122,7 +122,7 @@ public interface RetrofitInterface {
...
@@ -122,7 +122,7 @@ public interface RetrofitInterface {
Call
<
ExploreResponse
>
search
(
@Header
(
"Cookie"
)
String
sessionID
,
@Query
(
"query"
)
String
query
);
Call
<
ExploreResponse
>
search
(
@Header
(
"Cookie"
)
String
sessionID
,
@Query
(
"query"
)
String
query
);
@GET
(
"venter/complaints"
)
@GET
(
"venter/complaints"
)
Call
<
List
<
Venter
.
Complaint
>>
getAllComplaints
(
@Header
(
"Cookie"
)
String
sessionId
);
Call
<
List
<
Venter
.
Complaint
>>
getAllComplaints
(
@Header
(
"Cookie"
)
String
sessionId
,
@Query
(
"from"
)
int
from
,
@Query
(
"num"
)
int
num
);
@GET
(
"venter/complaints?filter=me"
)
@GET
(
"venter/complaints?filter=me"
)
Call
<
List
<
Venter
.
Complaint
>>
getUserComplaints
(
@Header
(
"Cookie"
)
String
sessionId
);
Call
<
List
<
Venter
.
Complaint
>>
getUserComplaints
(
@Header
(
"Cookie"
)
String
sessionId
);
...
...
app/src/main/java/app/insti/fragment/ComplaintsHomeFragment.java
View file @
6f6736df
...
@@ -27,10 +27,13 @@ public class ComplaintsHomeFragment extends Fragment {
...
@@ -27,10 +27,13 @@ public class ComplaintsHomeFragment extends Fragment {
private
ComplaintsAdapter
homeListAdapter
;
private
ComplaintsAdapter
homeListAdapter
;
private
SwipeRefreshLayout
swipeContainer
;
private
SwipeRefreshLayout
swipeContainer
;
p
rivate
static
String
TAG
=
ComplaintsHomeFragment
.
class
.
getSimpleName
();
p
ublic
static
String
TAG
=
ComplaintsHomeFragment
.
class
.
getSimpleName
();
private
boolean
isCalled
=
false
;
private
boolean
isCalled
=
false
;
private
TextView
error_message_home
;
private
TextView
error_message_home
;
private
static
String
uID
,
uProfileUrl
;
private
static
String
uID
,
uProfileUrl
;
private
boolean
networkBusy
=
false
;
private
int
currentIndex
=
0
;
private
List
<
Venter
.
Complaint
>
complaints
;
public
static
ComplaintsHomeFragment
getInstance
(
String
userID
,
String
userProfileUrl
)
{
public
static
ComplaintsHomeFragment
getInstance
(
String
userID
,
String
userProfileUrl
)
{
uID
=
userID
;
uID
=
userID
;
...
@@ -44,8 +47,12 @@ public class ComplaintsHomeFragment extends Fragment {
...
@@ -44,8 +47,12 @@ public class ComplaintsHomeFragment extends Fragment {
swipeContainer
.
post
(
new
Runnable
()
{
swipeContainer
.
post
(
new
Runnable
()
{
@Override
@Override
public
void
run
()
{
public
void
run
()
{
swipeContainer
.
setRefreshing
(
true
);
if
(
complaints
==
null
)
{
callServerToGetNearbyComplaints
();
callServerToGetNearbyComplaints
();
swipeContainer
.
setRefreshing
(
true
);
}
else
{
initialiseRecyclerView
(
complaints
);
}
}
}
});
});
}
}
...
@@ -62,9 +69,46 @@ public class ComplaintsHomeFragment extends Fragment {
...
@@ -62,9 +69,46 @@ public class ComplaintsHomeFragment extends Fragment {
LinearLayoutManager
llm
=
new
LinearLayoutManager
(
getActivity
());
LinearLayoutManager
llm
=
new
LinearLayoutManager
(
getActivity
());
recyclerViewHome
.
setLayoutManager
(
llm
);
recyclerViewHome
.
setLayoutManager
(
llm
);
recyclerViewHome
.
setHasFixedSize
(
true
);
recyclerViewHome
.
setHasFixedSize
(
true
);
recyclerViewHome
.
setAdapter
(
homeListAdapter
);
recyclerViewHome
.
setAdapter
(
homeListAdapter
);
recyclerViewHome
.
addOnScrollListener
(
new
RecyclerView
.
OnScrollListener
()
{
@Override
public
void
onScrollStateChanged
(
@NonNull
RecyclerView
recyclerView
,
int
newState
)
{
super
.
onScrollStateChanged
(
recyclerView
,
newState
);
if
(
networkBusy
||
currentIndex
==
-
1
)
return
;
if
(!
recyclerView
.
canScrollVertically
(
1
))
{
networkBusy
=
true
;
swipeContainer
.
setRefreshing
(
true
);
RetrofitInterface
retrofitInterface
=
Utils
.
getRetrofitInterface
();
retrofitInterface
.
getAllComplaints
(
Utils
.
getSessionIDHeader
(),
currentIndex
,
5
).
enqueue
(
new
Callback
<
List
<
Venter
.
Complaint
>>()
{
@Override
public
void
onResponse
(
Call
<
List
<
Venter
.
Complaint
>>
call
,
Response
<
List
<
Venter
.
Complaint
>>
response
)
{
if
(
response
.
isSuccessful
())
{
if
(
response
.
body
()
!=
null
&&
!
response
.
body
().
isEmpty
())
{
complaints
.
addAll
(
response
.
body
());
initialiseRecyclerView
(
complaints
);
currentIndex
+=
5
;
}
else
{
currentIndex
=
-
1
;
}
}
networkBusy
=
false
;
swipeContainer
.
setRefreshing
(
false
);
}
@Override
public
void
onFailure
(
Call
<
List
<
Venter
.
Complaint
>>
call
,
Throwable
t
)
{
networkBusy
=
false
;
swipeContainer
.
setRefreshing
(
false
);
}
});
}
}
});
swipeContainer
.
setOnRefreshListener
(
new
SwipeRefreshLayout
.
OnRefreshListener
()
{
swipeContainer
.
setOnRefreshListener
(
new
SwipeRefreshLayout
.
OnRefreshListener
()
{
@Override
@Override
public
void
onRefresh
()
{
public
void
onRefresh
()
{
...
@@ -91,17 +135,20 @@ public class ComplaintsHomeFragment extends Fragment {
...
@@ -91,17 +135,20 @@ public class ComplaintsHomeFragment extends Fragment {
private
void
callServerToGetNearbyComplaints
()
{
private
void
callServerToGetNearbyComplaints
()
{
try
{
try
{
RetrofitInterface
retrofitInterface
=
Utils
.
getRetrofitInterface
();
RetrofitInterface
retrofitInterface
=
Utils
.
getRetrofitInterface
();
retrofitInterface
.
getAllComplaints
(
Utils
.
getSessionIDHeader
()).
enqueue
(
new
Callback
<
List
<
Venter
.
Complaint
>>()
{
retrofitInterface
.
getAllComplaints
(
Utils
.
getSessionIDHeader
()
,
0
,
5
).
enqueue
(
new
Callback
<
List
<
Venter
.
Complaint
>>()
{
@Override
@Override
public
void
onResponse
(
@NonNull
Call
<
List
<
Venter
.
Complaint
>>
call
,
@NonNull
Response
<
List
<
Venter
.
Complaint
>>
response
)
{
public
void
onResponse
(
@NonNull
Call
<
List
<
Venter
.
Complaint
>>
call
,
@NonNull
Response
<
List
<
Venter
.
Complaint
>>
response
)
{
if
(
response
.
body
()
!=
null
&&
!(
response
.
body
().
isEmpty
()))
{
if
(
response
.
isSuccessful
())
{
initialiseRecyclerView
(
response
.
body
());
if
(
response
.
body
()
!=
null
&&
!(
response
.
body
().
isEmpty
()))
{
swipeContainer
.
setRefreshing
(
false
);
complaints
=
response
.
body
();
}
else
{
currentIndex
=
complaints
.
size
();
error_message_home
.
setVisibility
(
View
.
VISIBLE
);
initialiseRecyclerView
(
complaints
);
error_message_home
.
setText
(
getString
(
R
.
string
.
no_complaints
));
}
else
{
swipeContainer
.
setRefreshing
(
false
);
error_message_home
.
setVisibility
(
View
.
VISIBLE
);
error_message_home
.
setText
(
getString
(
R
.
string
.
no_complaints
));
}
}
}
swipeContainer
.
setRefreshing
(
false
);
}
}
@Override
@Override
...
...
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