gust94

EventsFragment

Jan 19th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.11 KB | None | 0 0
  1. package com.dss.invitup.vc.occasionPage.event;
  2. import android.os.Bundle;
  3. import android.support.v4.app.Fragment;
  4. import android.support.v7.widget.LinearLayoutManager;
  5. import android.support.v7.widget.RecyclerView;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.FrameLayout;
  10. import com.dss.invitup.MainActivity;
  11. import com.dss.invitup.R;
  12. import com.dss.invitup.adapters.EventAdapter;
  13. import com.dss.invitup.events.GetSubOccasionFromOccasionFinishedEvent;
  14. import com.dss.invitup.events.MainActivityHideLoadingEvent;
  15. import com.dss.invitup.events.ReturnToEventFragmentEvent;
  16. import com.dss.invitup.models.Occasion;
  17. import com.dss.invitup.models.SubOccasion;
  18. import com.dss.invitup.models.serverResponses.SubOccasionsResponse;
  19. import com.dss.invitup.singleton.AppController;
  20. import com.dss.invitup.singleton.InterfaceManager;
  21. import com.dss.invitup.singleton.ServerManager;
  22. import com.dss.invitup.singleton.SettingsManager;
  23. import de.greenrobot.event.EventBus;
  24. import io.realm.Realm;
  25. import io.realm.RealmList;
  26. /**
  27. * Copyright © 2016 Dihardja Software Solutions. All rights reserved.
  28. */
  29. public class EventsFragment extends Fragment {
  30. RecyclerView recyclerView;
  31. LinearLayoutManager linearLayoutManager;
  32. EventAdapter eventAdapter;
  33. Realm realm;
  34. Occasion currentOccasion;
  35. FrameLayout rootFrameLayout;
  36. RealmList<SubOccasion> subOccasionRealmList = new RealmList<>();
  37. boolean isHasLocalData = false;
  38. String currentOccasionId;
  39. MainActivity mainActivity;
  40. @Override
  41. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  42. Bundle savedInstanceState) {
  43. View view = inflater.inflate(R.layout.fragment_occasion_events, container, false);
  44. if(!EventBus.getDefault().isRegistered(this)){
  45. EventBus.getDefault().register(this);
  46. }
  47. rootFrameLayout = (FrameLayout)view.findViewById(R.id.eventFragmentRootFrameLayout);
  48. recyclerView = (RecyclerView) view.findViewById(R.id.eventOccasionDetail);
  49. mainActivity = (MainActivity) getActivity();
  50. return view;
  51. }
  52. @Override
  53. public void onViewCreated(View view, Bundle savedInstanceState) {
  54. super.onViewCreated(view, savedInstanceState);
  55. mainActivity.position = 0;
  56. linearLayoutManager = new LinearLayoutManager(getActivity());
  57. linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
  58. realm = AppController.getInstance().getRealm();
  59. eventAdapter = new EventAdapter(getActivity());
  60. recyclerView.setHasFixedSize(true);
  61. recyclerView.setLayoutManager(linearLayoutManager);
  62. recyclerView.setAdapter(eventAdapter);
  63. }
  64. @Override
  65. public void onResume() {
  66. super.onResume();
  67. if(mainActivity.isFromPushNotif){
  68. currentOccasionId = mainActivity.currentOccasionId;
  69. Occasion theOccasion = realm.where(Occasion.class).equalTo("id", currentOccasionId).findFirst();
  70. if(theOccasion!=null){
  71. currentOccasion = theOccasion;
  72. SettingsManager.getInstance().setCurrentOccasion(currentOccasion);
  73. }
  74. }else{
  75. if(SettingsManager.getInstance().getCurrentOccasion()!=null){
  76. currentOccasion = SettingsManager.getInstance().getCurrentOccasion();
  77. currentOccasionId = currentOccasion.getId();
  78. }
  79. }
  80. reloadLocalData();
  81. }
  82. public void reloadLocalData(){
  83. if(currentOccasionId!=null){
  84. SubOccasionsResponse subOccasionsResponse = realm.where(SubOccasionsResponse.class)
  85. .equalTo("id", currentOccasionId).findFirst();
  86. if(subOccasionRealmList.size()!=0){
  87. isHasLocalData = true;
  88. subOccasionRealmList = subOccasionsResponse.getSubOccasionRealmList();
  89. if(currentOccasion!=null){
  90. eventAdapter.updateAdapter(currentOccasion, subOccasionRealmList);
  91. }
  92. }else{
  93. isHasLocalData = false;
  94. }
  95. }
  96. ServerManager.getInstance().getSubOccasionFromOccasion(currentOccasionId);
  97. }
  98. public void onEvent(GetSubOccasionFromOccasionFinishedEvent event){
  99. if(event.subOccasionsResponse!=null){
  100. subOccasionRealmList = event.subOccasionsResponse.getSubOccasionRealmList();
  101. if(currentOccasion!=null) {
  102. eventAdapter.updateAdapter(currentOccasion, subOccasionRealmList);
  103. }
  104. }else{
  105. if(isHasLocalData){
  106. InterfaceManager.sharedInstance().showErrorMessage(getActivity(), event.errorMessage);
  107. }else{
  108. InterfaceManager.sharedInstance().showErrorMessageForNoLocalData(getActivity(), event.errorMessage);
  109. }
  110. }
  111. }
  112. public void onEvent(ReturnToEventFragmentEvent event){
  113. EventBus.getDefault().post(new MainActivityHideLoadingEvent());
  114. ServerManager.getInstance().getSubOccasionFromOccasion(currentOccasionId);
  115. }
  116. }
Add Comment
Please, Sign In to add comment