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
50e22008
Commit
50e22008
authored
Jul 12, 2018
by
Maitreya Verma
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added loader in bottom and stop loader on last post
parent
d5acbcfa
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
33 deletions
+85
-33
app/src/main/java/app/insti/adapter/PlacementBlogAdapter.java
...src/main/java/app/insti/adapter/PlacementBlogAdapter.java
+66
-33
app/src/main/java/app/insti/fragment/PlacementBlogFragment.java
...c/main/java/app/insti/fragment/PlacementBlogFragment.java
+7
-0
app/src/main/res/layout/blog_load_item.xml
app/src/main/res/layout/blog_load_item.xml
+12
-0
No files found.
app/src/main/java/app/insti/adapter/PlacementBlogAdapter.java
View file @
50e22008
...
@@ -2,9 +2,11 @@ package app.insti.adapter;
...
@@ -2,9 +2,11 @@ package app.insti.adapter;
import
android.content.Context
;
import
android.content.Context
;
import
android.support.v7.widget.RecyclerView
;
import
android.support.v7.widget.RecyclerView
;
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
;
import
android.widget.ProgressBar
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
java.text.DateFormat
;
import
java.text.DateFormat
;
...
@@ -17,9 +19,12 @@ import java.util.Locale;
...
@@ -17,9 +19,12 @@ import java.util.Locale;
import
app.insti.ItemClickListener
;
import
app.insti.ItemClickListener
;
import
app.insti.R
;
import
app.insti.R
;
import
app.insti.data.PlacementBlogPost
;
import
app.insti.data.PlacementBlogPost
;
import
app.insti.fragment.PlacementBlogFragment
;
import
ru.noties.markwon.Markwon
;
import
ru.noties.markwon.Markwon
;
public
class
PlacementBlogAdapter
extends
RecyclerView
.
Adapter
<
PlacementBlogAdapter
.
ViewHolder
>
{
public
class
PlacementBlogAdapter
extends
RecyclerView
.
Adapter
<
RecyclerView
.
ViewHolder
>
{
private
final
int
VIEW_ITEM
=
1
;
private
final
int
VIEW_PROG
=
0
;
public
List
<
PlacementBlogPost
>
getPosts
()
{
public
List
<
PlacementBlogPost
>
getPosts
()
{
return
posts
;
return
posts
;
}
}
...
@@ -38,45 +43,65 @@ public class PlacementBlogAdapter extends RecyclerView.Adapter<PlacementBlogAdap
...
@@ -38,45 +43,65 @@ public class PlacementBlogAdapter extends RecyclerView.Adapter<PlacementBlogAdap
}
}
@Override
@Override
public
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
public
RecyclerView
.
ViewHolder
onCreateViewHolder
(
ViewGroup
parent
,
int
viewType
)
{
context
=
parent
.
getContext
();
if
(
viewType
==
VIEW_ITEM
){
LayoutInflater
inflater
=
LayoutInflater
.
from
(
context
);
context
=
parent
.
getContext
();
View
postView
=
inflater
.
inflate
(
R
.
layout
.
blog_post_card
,
parent
,
false
);
LayoutInflater
inflater
=
LayoutInflater
.
from
(
context
);
View
postView
=
inflater
.
inflate
(
R
.
layout
.
blog_post_card
,
parent
,
false
);
final
PlacementBlogAdapter
.
ViewHolder
postViewHolder
=
new
PlacementBlogAdapter
.
ViewHolder
(
postView
);
postView
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
final
PlacementBlogAdapter
.
ViewHolder
postViewHolder
=
new
PlacementBlogAdapter
.
ViewHolder
(
postView
);
@Override
postView
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
public
void
onClick
(
View
v
)
{
@Override
itemClickListener
.
onItemClick
(
v
,
postViewHolder
.
getAdapterPosition
());
public
void
onClick
(
View
v
)
{
}
itemClickListener
.
onItemClick
(
v
,
postViewHolder
.
getAdapterPosition
());
});
}
return
postViewHolder
;
});
return
postViewHolder
;
}
else
{
LayoutInflater
inflater
=
LayoutInflater
.
from
(
context
);
View
loadView
=
inflater
.
inflate
(
R
.
layout
.
blog_load_item
,
parent
,
false
);
final
PlacementBlogAdapter
.
ViewHolder
postViewHolder
=
new
PlacementBlogAdapter
.
ViewHolder
(
loadView
);
return
new
PlacementBlogAdapter
.
ProgressViewHolder
(
loadView
);
}
}
}
@Override
@Override
public
void
onBindViewHolder
(
ViewHolder
holder
,
int
position
)
{
public
int
getItemViewType
(
int
position
)
{
PlacementBlogPost
post
=
posts
.
get
(
position
);
Log
.
d
(
"position"
,
String
.
valueOf
(
position
));
Markwon
.
setMarkdown
(
holder
.
postTitle
,
post
.
getTitle
());
return
posts
.
size
()>
position
?
VIEW_ITEM
:
VIEW_PROG
;
Date
publishedDate
=
post
.
getPublished
();
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
publishedDate
);
DateFormat
displayFormat
;
if
(
calendar
.
get
(
Calendar
.
YEAR
)
==
Calendar
.
getInstance
().
get
(
Calendar
.
YEAR
))
{
displayFormat
=
new
SimpleDateFormat
(
"EEE, MMM d, HH:mm"
,
Locale
.
US
);
}
else
{
displayFormat
=
new
SimpleDateFormat
(
"EEE, MMM d, ''yy, HH:mm"
,
Locale
.
US
);
}
holder
.
postPublished
.
setText
(
displayFormat
.
format
(
publishedDate
));
Markwon
.
setMarkdown
(
holder
.
postContent
,
post
.
getContent
());
}
}
@Override
@Override
public
int
getItemCount
()
{
public
int
getItemCount
()
{
return
posts
.
size
();
return
PlacementBlogFragment
.
showLoader
?
(
posts
.
size
()+
1
):
posts
.
size
();
}
}
@Override
public
void
onBindViewHolder
(
RecyclerView
.
ViewHolder
recycleholder
,
int
position
)
{
if
(
recycleholder
instanceof
ViewHolder
){
ViewHolder
holder
=(
ViewHolder
)
recycleholder
;
PlacementBlogPost
post
=
posts
.
get
(
position
);
Markwon
.
setMarkdown
(
holder
.
postTitle
,
post
.
getTitle
());
Date
publishedDate
=
post
.
getPublished
();
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
publishedDate
);
DateFormat
displayFormat
;
if
(
calendar
.
get
(
Calendar
.
YEAR
)
==
Calendar
.
getInstance
().
get
(
Calendar
.
YEAR
))
{
displayFormat
=
new
SimpleDateFormat
(
"EEE, MMM d, HH:mm"
,
Locale
.
US
);
}
else
{
displayFormat
=
new
SimpleDateFormat
(
"EEE, MMM d, ''yy, HH:mm"
,
Locale
.
US
);
}
holder
.
postPublished
.
setText
(
displayFormat
.
format
(
publishedDate
));
Markwon
.
setMarkdown
(
holder
.
postContent
,
post
.
getContent
());
}
else
{
((
ProgressViewHolder
)
recycleholder
).
progressBar
.
setIndeterminate
(
true
);
}
}
public
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
public
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
private
TextView
postTitle
;
private
TextView
postTitle
;
private
TextView
postPublished
;
private
TextView
postPublished
;
...
@@ -90,4 +115,12 @@ public class PlacementBlogAdapter extends RecyclerView.Adapter<PlacementBlogAdap
...
@@ -90,4 +115,12 @@ public class PlacementBlogAdapter extends RecyclerView.Adapter<PlacementBlogAdap
postContent
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
post_content
);
postContent
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
post_content
);
}
}
}
}
public
static
class
ProgressViewHolder
extends
RecyclerView
.
ViewHolder
{
public
ProgressBar
progressBar
;
public
ProgressViewHolder
(
View
v
)
{
super
(
v
);
progressBar
=
(
ProgressBar
)
v
.
findViewById
(
R
.
id
.
blog_load_item
);
}
}
}
}
app/src/main/java/app/insti/fragment/PlacementBlogFragment.java
View file @
50e22008
...
@@ -44,6 +44,7 @@ public class PlacementBlogFragment extends BaseFragment {
...
@@ -44,6 +44,7 @@ public class PlacementBlogFragment extends BaseFragment {
private
SwipeRefreshLayout
feedSwipeRefreshLayout
;
private
SwipeRefreshLayout
feedSwipeRefreshLayout
;
private
AppDatabase
appDatabase
;
private
AppDatabase
appDatabase
;
private
boolean
freshBlogDisplayed
=
false
;
private
boolean
freshBlogDisplayed
=
false
;
public
static
boolean
showLoader
=
true
;
public
PlacementBlogFragment
()
{
public
PlacementBlogFragment
()
{
...
@@ -129,15 +130,21 @@ public class PlacementBlogFragment extends BaseFragment {
...
@@ -129,15 +130,21 @@ public class PlacementBlogFragment extends BaseFragment {
LinearLayoutManager
layoutManager
=
(
LinearLayoutManager
)
placementFeedRecyclerView
.
getLayoutManager
();
LinearLayoutManager
layoutManager
=
(
LinearLayoutManager
)
placementFeedRecyclerView
.
getLayoutManager
();
if
(((
layoutManager
.
getChildCount
()+
layoutManager
.
findFirstVisibleItemPosition
())>(
layoutManager
.
getItemCount
()-
5
))&&(!
loading
)){
if
(((
layoutManager
.
getChildCount
()+
layoutManager
.
findFirstVisibleItemPosition
())>(
layoutManager
.
getItemCount
()-
5
))&&(!
loading
)){
loading
=
true
;
loading
=
true
;
View
v
=
getActivity
().
findViewById
(
R
.
id
.
placement_feed_swipe_refresh_layout
);
RetrofitInterface
retrofitInterface
=
ServiceGenerator
.
createService
(
RetrofitInterface
.
class
);
RetrofitInterface
retrofitInterface
=
ServiceGenerator
.
createService
(
RetrofitInterface
.
class
);
retrofitInterface
.
getPlacementBlogFeed
(
"sessionid="
+
getArguments
().
getString
(
Constants
.
SESSION_ID
),
layoutManager
.
getItemCount
(),
10
).
enqueue
(
new
Callback
<
List
<
PlacementBlogPost
>>()
{
retrofitInterface
.
getPlacementBlogFeed
(
"sessionid="
+
getArguments
().
getString
(
Constants
.
SESSION_ID
),
layoutManager
.
getItemCount
(),
10
).
enqueue
(
new
Callback
<
List
<
PlacementBlogPost
>>()
{
@Override
@Override
public
void
onResponse
(
Call
<
List
<
PlacementBlogPost
>>
call
,
Response
<
List
<
PlacementBlogPost
>>
response
)
{
public
void
onResponse
(
Call
<
List
<
PlacementBlogPost
>>
call
,
Response
<
List
<
PlacementBlogPost
>>
response
)
{
loading
=
false
;
loading
=
false
;
List
<
PlacementBlogPost
>
blogPosts
=
(
ArrayList
<
PlacementBlogPost
>)
placementBlogAdapter
.
getPosts
();
List
<
PlacementBlogPost
>
blogPosts
=
(
ArrayList
<
PlacementBlogPost
>)
placementBlogAdapter
.
getPosts
();
blogPosts
.
addAll
(
response
.
body
());
blogPosts
.
addAll
(
response
.
body
());
if
(
response
.
body
().
size
()==
0
){
showLoader
=
false
;
}
placementBlogAdapter
.
setPosts
(
blogPosts
);
placementBlogAdapter
.
setPosts
(
blogPosts
);
placementBlogAdapter
.
notifyDataSetChanged
();
placementBlogAdapter
.
notifyDataSetChanged
();
// new updateDatabase().execute(blogPosts);
}
}
@Override
@Override
...
...
app/src/main/res/layout/blog_load_item.xml
0 → 100644
View file @
50e22008
<?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=
"wrap_content"
>
<ProgressBar
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:indeterminate=
"true"
android:id=
"@+id/blog_load_item"
android:layout_gravity=
"center_horizontal"
android:layout_margin=
"@dimen/activity_vertical_margin"
/>
</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