Guest User

Untitled

a guest
Jun 23rd, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. Cache cache = AppController.getInstance().getRequestQueue().getCache();
  2. Entry entry = cache.get(URL_FEED);
  3. if (entry != null) {
  4. // fetch the data from cache
  5. try {
  6. String data = new String(entry.data, "UTF-8");
  7. try {
  8. parseJsonFeed(new JSONObject(data));
  9. } catch (JSONException e) {
  10. e.printStackTrace();
  11. }
  12. } catch (UnsupportedEncodingException e) {
  13. e.printStackTrace();
  14. }
  15.  
  16.  
  17.  
  18. } else {
  19. // making fresh volley request and getting json
  20. JsonObjectRequest jsonReq = new JsonObjectRequest(Method.GET,
  21. URL_FEED, null, new Response.Listener<JSONObject>() {
  22.  
  23. @Override
  24. public void onResponse(JSONObject response) {
  25. VolleyLog.d(TAG, "InitialResponse: " + response.toString());
  26. if (response != null) {
  27. parseJsonFeed(response);
  28. }
  29. }
  30. }, new Response.ErrorListener() {
  31.  
  32. @Override
  33. public void onErrorResponse(VolleyError error) {
  34. VolleyLog.d(TAG, "Error: " + error.getMessage());
  35. }
  36. });
  37. // Adding request to volley request queue
  38. AppController.getInstance().addToRequestQueue(jsonReq);
  39. }
  40.  
  41. private void parseJsonFeed(JSONObject response) {
  42. try {
  43. JSONArray feedArray = response.getJSONArray("feed");
  44.  
  45. for (int i = 0; i < feedArray.length(); i++) {
  46. JSONObject feedObj = (JSONObject) feedArray.get(i);
  47.  
  48. FeedItem item = new FeedItem();
  49. item.setId(feedObj.getInt("id"));
  50. item.setName(feedObj.getString("name"));
  51.  
  52. // Image might be null sometimes
  53. String image = feedObj.isNull("image") ? null : feedObj
  54. .getString("image");
  55. item.setImge(image);
  56. item.setStatus(feedObj.getString("status"));
  57. item.setProfilePic(feedObj.getString("profilePic"));
  58. item.setTimeStamp(feedObj.getString("timeStamp"));
  59.  
  60. // url might be null sometimes
  61. String feedUrl = feedObj.isNull("url") ? null : feedObj
  62. .getString("url");
  63. item.setUrl(feedUrl);
  64.  
  65. feedItems.add(item);
  66. }
  67.  
  68.  
  69. // notify data changes to list adapater
  70. listAdapter.notifyDataSetChanged();
  71. } catch (JSONException e) {
  72. e.printStackTrace();
  73. }
  74. }
  75.  
  76. public class EndlessListView extends ListView implements OnScrollListener {
  77.  
  78. @Override
  79. public void onScroll(AbsListView view, int firstVisibleItem,
  80. int visibleItemCount, int totalItemCount) {
  81.  
  82. }
  83.  
  84. @Override
  85. public void onScrollStateChanged(AbsListView view, int scrollState) {}
  86. }
  87.  
  88. @Override
  89. public void onScroll(AbsListView view, int firstVisibleItem,
  90. int visibleItemCount, int totalItemCount) {
  91.  
  92. if (getAdapter() == null)
  93. return ;
  94.  
  95. if (getAdapter().getCount() == 0)
  96. return ;
  97.  
  98. int l = visibleItemCount + firstVisibleItem;
  99. if (l >= totalItemCount && !isLoading) {
  100. // It is time to add new data. We call the listener
  101. this.addFooterView(footer);
  102. isLoading = true;
  103. listener.loadData();
  104. }
  105. }
  106.  
  107. public static interface EndlessListener {
  108. public void loadData() ;
  109. }
Add Comment
Please, Sign In to add comment