You need to sign in or sign up before continuing.
Commit 50e22008 authored by Maitreya Verma's avatar Maitreya Verma

added loader in bottom and stop loader on last post

parent d5acbcfa
...@@ -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,7 +43,8 @@ public class PlacementBlogAdapter extends RecyclerView.Adapter<PlacementBlogAdap ...@@ -38,7 +43,8 @@ public class PlacementBlogAdapter extends RecyclerView.Adapter<PlacementBlogAdap
} }
@Override @Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if(viewType==VIEW_ITEM){
context = parent.getContext(); context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context); LayoutInflater inflater = LayoutInflater.from(context);
View postView = inflater.inflate(R.layout.blog_post_card, parent, false); View postView = inflater.inflate(R.layout.blog_post_card, parent, false);
...@@ -52,9 +58,28 @@ public class PlacementBlogAdapter extends RecyclerView.Adapter<PlacementBlogAdap ...@@ -52,9 +58,28 @@ public class PlacementBlogAdapter extends RecyclerView.Adapter<PlacementBlogAdap
}); });
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
public int getItemViewType(int position) {
Log.d("position", String.valueOf(position));
return posts.size()> position ? VIEW_ITEM : VIEW_PROG;
}
@Override
public int getItemCount() {
return PlacementBlogFragment.showLoader? (posts.size()+1):posts.size();
}
@Override @Override
public void onBindViewHolder(ViewHolder holder, int position) { public void onBindViewHolder(RecyclerView.ViewHolder recycleholder, int position) {
if(recycleholder instanceof ViewHolder){
ViewHolder holder=(ViewHolder)recycleholder;
PlacementBlogPost post = posts.get(position); PlacementBlogPost post = posts.get(position);
Markwon.setMarkdown(holder.postTitle, post.getTitle()); Markwon.setMarkdown(holder.postTitle, post.getTitle());
...@@ -71,12 +96,12 @@ public class PlacementBlogAdapter extends RecyclerView.Adapter<PlacementBlogAdap ...@@ -71,12 +96,12 @@ public class PlacementBlogAdapter extends RecyclerView.Adapter<PlacementBlogAdap
Markwon.setMarkdown(holder.postContent, post.getContent()); Markwon.setMarkdown(holder.postContent, post.getContent());
} }
else{
@Override ((ProgressViewHolder)recycleholder).progressBar.setIndeterminate(true);
public int getItemCount() { }
return posts.size();
} }
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);
}
}
} }
...@@ -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
......
<?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
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