Advertisement
Guest User

Untitled

a guest
Apr 16th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. public class RefresherFragment extends Fragment{
  2.  
  3. SwipeRefreshLayout swipeRefreshLayout;
  4. public String markingPeriod;
  5.  
  6. public static RefresherFragment newInstance(String markingPeriod){
  7. RefresherFragment instance = new RefresherFragment();
  8. Bundle bundle = new Bundle();
  9. bundle.putString("mp", markingPeriod);
  10. instance.setArguments(bundle);
  11. return instance;
  12. }
  13.  
  14. @Override
  15. public void onCreate(@Nullable Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. markingPeriod = getArguments().getString("mp");
  18. }
  19.  
  20. @Override
  21. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  22.  
  23. View view = inflater.inflate(R.layout.mp_refresher_fragment, container, false);
  24.  
  25. new Scraper(markingPeriod).execute();
  26.  
  27. Log.e("RefresherFragment", "MP=" + markingPeriod);
  28.  
  29. return view;
  30. }
  31.  
  32. //fragment setup-------------------------------------------------------------------------
  33.  
  34. public ArrayList<String> extractClasses (Document document){
  35. ArrayList<String> classList = new ArrayList<>();
  36. Elements elements = document.select(".categorytab");
  37. for (Element element : elements){
  38. classList.add(element.text().toString());
  39. }
  40. return classList;
  41. }
  42.  
  43. public ArrayList<String> extractGrades (Document document){
  44. ArrayList<String> keepList = new ArrayList<>();
  45. Elements elements = document.select(".cellRight");
  46. for (Element element : elements){
  47. boolean keep = true;
  48. for (Element e : element.parents()){
  49. if (e.hasClass("cellRight")){
  50. keep = false;
  51. break;
  52. }
  53. }
  54. if (keep){
  55. keepList.add(element.text().toString());
  56. }
  57. }
  58. return keepList;
  59. }
  60.  
  61. public class Wrapper{
  62. Document document;
  63. Elements elements;
  64. }
  65.  
  66.  
  67. private class Scraper extends AsyncTask<String, Void, Wrapper> {
  68.  
  69. String mMarkingPeriod;
  70.  
  71. public Scraper(String mp) {
  72. mMarkingPeriod = mp;
  73. }
  74.  
  75. @Override
  76. protected Wrapper doInBackground(String... strings) {
  77. Wrapper wrapper = new Wrapper();
  78.  
  79. SessionManager sessionManager = new SessionManager(getContext());
  80. String username = sessionManager.getUsername();
  81. String password = sessionManager.getPassword();
  82.  
  83.  
  84. DataManager dataManager = new DataManager(username,password);
  85. Map<String, String> preLoginCookies = dataManager.getPreLoginCookies(mMarkingPeriod);
  86. Map<String, String> postLoginCookies = dataManager.getPostLoginCookies(preLoginCookies);
  87. Document doc = dataManager.getDocumentByMP(postLoginCookies,mMarkingPeriod);
  88.  
  89. if (doc == null){
  90. Log.e("doInBackground Check", "null");}
  91.  
  92. Elements elements = doc.select(".cellRight");
  93.  
  94. wrapper.document = doc;
  95. wrapper.elements = elements;
  96.  
  97. return wrapper;
  98. }
  99.  
  100. @Override
  101. protected void onPostExecute(Wrapper wrapper) {
  102.  
  103. Document document = wrapper.document;
  104. ArrayList <String> grades = extractGrades(document);
  105. ArrayList <String> classes = extractClasses(document);
  106.  
  107.  
  108. for (String classElement : classes){
  109. Log.e("Class", classElement);
  110. }
  111.  
  112. for (String gradeElement : grades){
  113. Log.e("Grade", gradeElement);
  114. }
  115. Log.e("Checkpoint", "Iterating elements");
  116.  
  117. RecyclerView recyclerView = (RecyclerView)getActivity().findViewById(R.id.grade_recycler);
  118. recyclerView.setAdapter(new GradeRecyclerAdapter(classes, grades));
  119. recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
  120. Log.e("Checkpoint", "Setting up Recycler");
  121.  
  122. swipeRefreshLayout = (SwipeRefreshLayout) getActivity().findViewById(R.id.refresher);
  123. swipeRefreshLayout.setRefreshing(false);
  124.  
  125. swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
  126. @Override
  127. public void onRefresh() {
  128. new Scraper(getArguments().getString("mp")).execute();
  129. }
  130. });
  131.  
  132. }
  133. }
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement