Guest User

Untitled

a guest
Feb 17th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. public class UserViewModel extends ViewModel {
  2.  
  3. public LiveData<PagedList<User>> userList;
  4.  
  5. public UserViewModel() {
  6.  
  7. }
  8.  
  9. public void init(UserDao userDao) {
  10. PagedList.Config pagedListConfig =
  11. (new PagedList.Config.Builder()).setEnablePlaceholders(true)
  12. .setPrefetchDistance(10)
  13. .setPageSize(20).build();
  14.  
  15. userList = (new LivePagedListBuilder(userDao.usersByFirstName(),
  16. pagedListConfig))
  17. .build();
  18.  
  19. }
  20. }
  21.  
  22. public class UserAdapter extends PagedListAdapter<User, UserAdapter.UserItemViewHolder> {
  23.  
  24.  
  25. protected UserAdapter() {
  26. super(User.DIFF_CALLBACK);
  27. }
  28.  
  29. @Override
  30. public UserItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  31. LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
  32. View view = layoutInflater.inflate(R.layout.item_user_list, parent, false);
  33. return new UserItemViewHolder(view);
  34. }
  35.  
  36. @Override
  37. public void onBindViewHolder(UserItemViewHolder holder, int position) {
  38. User user= getItem(position);
  39. if(user!=null) {
  40. holder.bindTo(user);
  41. }
  42. }
  43.  
  44. static class UserItemViewHolder extends RecyclerView.ViewHolder {
  45. TextView userName, userId;
  46.  
  47. public UserItemViewHolder(View itemView) {
  48. super(itemView);
  49. userId = itemView.findViewById(R.id.userId);
  50. userName = itemView.findViewById(R.id.userName);
  51. }
  52.  
  53. public void bindTo(User user) {
  54. userName.setText(user.firstName);
  55. userId.setText(String.valueOf(user.userId));
  56. }
  57. }
  58. }
  59.  
  60. UserViewModel viewModel =
  61. ViewModelProviders
  62. .of(this)
  63. .get(UserViewModel.class);
  64. viewModel.init(userDao);
  65. final UserAdapter userUserAdapter = new UserAdapter();
  66.  
  67. viewModel.userList.observe(this, pagedList -> {
  68. Toast.makeText(this, "Page " + pagedList.size(), Toast.LENGTH_SHORT).show();
  69. Log.e("Paging ", "Page " + pagedList.size());
  70. userUserAdapter.setList(pagedList);
  71. });
  72.  
  73. recyclerView.setAdapter(userUserAdapter);
Add Comment
Please, Sign In to add comment