gust94

GuestListFragment

Jan 19th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.94 KB | None | 0 0
  1. package com.dss.invitup.vc.occasionPage.guestlist;
  2. import android.content.Intent;
  3. import android.graphics.Color;
  4. import android.os.Bundle;
  5. import android.support.v4.app.Fragment;
  6. import android.support.v4.app.FragmentManager;
  7. import android.support.v4.app.FragmentStatePagerAdapter;
  8. import android.support.v4.view.ViewPager;
  9. import android.util.TypedValue;
  10. import android.view.LayoutInflater;
  11. import android.view.View;
  12. import android.view.ViewGroup;
  13. import android.widget.FrameLayout;
  14. import android.widget.ImageButton;
  15. import android.widget.ImageView;
  16. import android.widget.LinearLayout;
  17. import com.dss.invitup.MainActivity;
  18. import com.dss.invitup.R;
  19. import com.dss.invitup.events.GetGuestListFinishedEvent;
  20. import com.dss.invitup.events.UpdateGuestStatusByAdminFinishedEvent;
  21. import com.dss.invitup.models.Occasion;
  22. import com.dss.invitup.models.serverResponses.OccasionGuestResponse;
  23. import com.dss.invitup.singleton.AppController;
  24. import com.dss.invitup.singleton.InterfaceManager;
  25. import com.dss.invitup.singleton.ServerManager;
  26. import com.dss.invitup.singleton.SettingsManager;
  27. import com.dss.invitup.view.RobotoRegularTextView;
  28. import com.dss.invitup.view.dynamicFont.PageTitleDynamicTextView;
  29. import com.facebook.share.model.AppInviteContent;
  30. import com.facebook.share.widget.AppInviteDialog;
  31. import de.greenrobot.event.EventBus;
  32. import io.realm.Realm;
  33. /**
  34. * Copyright © 2016 Dihardja Software Solutions. All rights reserved.
  35. */
  36. public class GuestListFragment extends Fragment {
  37. LinearLayout headerLinearLayout;
  38. FrameLayout attendingFrameLayout, invitedFrameLayout, requestsFrameLayout;
  39. RobotoRegularTextView attendingTextView, invitedTextView, requestsTextView;
  40. ViewPager guestListViewPager;
  41. LinearLayout imageButtonLinearLayout, emailLinearLayout, facebookLinearLayout;
  42. ImageView emailImageView, facebookImageView;
  43. ImageView addNewGuestImageView;
  44. GuestListPagerAdapter guestListPagerAdapter;
  45. FragmentManager fragmentManager;
  46. boolean isImageButtonOpened = false;
  47. FrameLayout containerFrameLayout;
  48. PageTitleDynamicTextView emailTitle, facebookTitle;
  49. OccasionGuestResponse occasionGuestResponse;
  50. Realm realm;
  51. Occasion currentOccasion;
  52. String currentOccasionId;
  53. MainActivity mainActivity;
  54. int currentPosition = 0;
  55. String dynamicColor = "#FC00FF";
  56. @Override
  57. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  58. View view = inflater.inflate(R.layout.fragment_guest_list, container, false);
  59. if(!EventBus.getDefault().isRegistered(this)){
  60. EventBus.getDefault().register(this);
  61. }
  62. headerLinearLayout = (LinearLayout) view.findViewById(R.id.fragment_occasion_guest_list_headerLinearLayout);
  63. attendingFrameLayout = (FrameLayout) view.findViewById(R.id.fragment_occasion_guest_list_attendingFrameLayout);
  64. invitedFrameLayout = (FrameLayout) view.findViewById(R.id.fragment_occasion_guest_list_invitedFrameLayout);
  65. requestsFrameLayout = (FrameLayout) view.findViewById(R.id.fragment_occasion_guest_list_requestsFrameLayout);
  66. attendingTextView = (RobotoRegularTextView) view.findViewById(R.id.fragment_occasion_guest_list_attendingTextView);
  67. invitedTextView = (RobotoRegularTextView) view.findViewById(R.id.fragment_occasion_guest_list_invitedTextView);
  68. requestsTextView = (RobotoRegularTextView) view.findViewById(R.id.fragment_occasion_guest_list_requestsTextView);
  69. guestListViewPager = (ViewPager) view.findViewById(R.id.fragment_occasion_guest_list_viewPager);
  70. imageButtonLinearLayout = (LinearLayout) view.findViewById(R.id.fragment_occasion_guest_list_imageButtonLinearLayout);
  71. emailLinearLayout = (LinearLayout) view.findViewById(R.id.fragment_occasion_guest_list_emailLinearLayout);
  72. facebookLinearLayout = (LinearLayout) view.findViewById(R.id.fragment_occasion_guest_list_facebookLinearLayout);
  73. addNewGuestImageView = (ImageView) view.findViewById(R.id.fragment_occasion_guest_list_addNewGuestImageView);
  74. emailImageView = (ImageView) view.findViewById(R.id.fragment_occasion_guest_list_emailImageView) ;
  75. facebookImageView = (ImageView) view.findViewById(R.id.fragment_occasion_guest_list_facebookImageView);
  76. emailTitle = (PageTitleDynamicTextView) view.findViewById(R.id.fragment_guest_list_emailTitle);
  77. facebookTitle = (PageTitleDynamicTextView) view.findViewById(R.id.fragment_guest_list_facebookTitle);
  78. fragmentManager = getActivity().getSupportFragmentManager();
  79. containerFrameLayout = (FrameLayout) view.findViewById(R.id.fragment_occasion_guest_list_container);
  80. mainActivity = (MainActivity)getActivity();
  81. realm = AppController.getInstance().getRealm();
  82. fragmentManager.beginTransaction()
  83. .replace(R.id.fragment_occasion_guest_list_container, new GuestListAttendingFragment())
  84. .commitAllowingStateLoss();
  85. return view;
  86. }
  87. @Override
  88. public void onViewCreated(final View view, Bundle savedInstanceState) {
  89. super.onViewCreated(view, savedInstanceState);
  90. mainActivity.position = 5;
  91. if(SettingsManager.getInstance().getCurrentTypefaceHashMap()!=null){
  92. emailTitle.setTypeface(SettingsManager.getInstance().getDefaultTypeFaceHashMap().get(InterfaceManager.DynamicTextView.PAGE_TITLE));
  93. facebookTitle.setTypeface(SettingsManager.getInstance().getDefaultTypeFaceHashMap().get(InterfaceManager.DynamicTextView.PAGE_TITLE));
  94. }else{
  95. emailTitle.setTypeface(SettingsManager.getInstance().getDefaultTypeFaceHashMap().get(InterfaceManager.DynamicTextView.PAGE_TITLE));
  96. facebookTitle.setTypeface(SettingsManager.getInstance().getDefaultTypeFaceHashMap().get(InterfaceManager.DynamicTextView.PAGE_TITLE));
  97. }
  98. if(SettingsManager.getInstance().getCurrentTheme()!=null){
  99. emailTitle.setTextColor(Color.parseColor(SettingsManager.getInstance().getCurrentTheme().getPageTitleFontTheme().getColor()));
  100. emailTitle.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
  101. facebookTitle.setTextColor(Color.parseColor(SettingsManager.getInstance().getCurrentTheme().getPageTitleFontTheme().getColor()));
  102. facebookTitle.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
  103. if(SettingsManager.getInstance().getCurrentTheme().getButtonColor()!=null){
  104. if(!SettingsManager.getInstance().getCurrentTheme().getButtonColor().equalsIgnoreCase("")){
  105. dynamicColor = SettingsManager.getInstance().getCurrentTheme().getButtonColor();
  106. }
  107. }
  108. }else{
  109. emailTitle.setTextColor(Color.parseColor("#FFFFFF"));
  110. emailTitle.setTextSize(TypedValue.COMPLEX_UNIT_SP,14);
  111. facebookTitle.setTextColor(Color.parseColor("#FFFFFF"));
  112. facebookTitle.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
  113. }
  114. guestListPagerAdapter = new GuestListPagerAdapter(fragmentManager);
  115. guestListViewPager.setAdapter(guestListPagerAdapter);
  116. guestListViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
  117. @Override
  118. public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
  119. currentPosition = position;
  120. switch (position){
  121. case 0 :
  122. attendingSelected();
  123. break;
  124. case 1 :
  125. invitedSelected();
  126. break;
  127. case 2 :
  128. requestsSelected();
  129. break;
  130. }
  131. }
  132. @Override
  133. public void onPageSelected(int position) {
  134. }
  135. @Override
  136. public void onPageScrollStateChanged(int state) {
  137. }
  138. });
  139. attendingFrameLayout.setOnClickListener(attendingFrameLayoutListener);
  140. invitedFrameLayout.setOnClickListener(invitedFrameLayoutListener);
  141. requestsFrameLayout.setOnClickListener(requestsFrameLayoutListener);
  142. addNewGuestImageView.setOnClickListener(addNewGuestImageViewListener);
  143. emailImageView.setOnClickListener(emailImageViewListener);
  144. facebookImageView.setOnClickListener(facebookImageViewListener);
  145. attendingFrameLayout.setVisibility(View.VISIBLE);
  146. if(SettingsManager.getInstance().getCurrentUserRole() == SettingsManager.UserRole.HOST){
  147. addNewGuestImageView.setVisibility(View.VISIBLE);
  148. invitedFrameLayout.setVisibility(View.VISIBLE);
  149. requestsFrameLayout.setVisibility(View.VISIBLE);
  150. attendingTextView.setText(getActivity().getResources().getString(R.string.attending));
  151. }else{
  152. addNewGuestImageView.setVisibility(View.GONE);
  153. invitedFrameLayout.setVisibility(View.GONE);
  154. requestsFrameLayout.setVisibility(View.GONE);
  155. }
  156. }
  157. @Override
  158. public void onResume() {
  159. super.onResume();
  160. if(mainActivity.isFromPushNotif){
  161. switch (mainActivity.gotoColumn){
  162. case "attending" :
  163. currentPosition = 0;
  164. break;
  165. case "requests" :
  166. currentPosition = 2;
  167. break;
  168. }
  169. }
  170. isImageButtonOpened = false;
  171. imageButtonLinearLayout.setVisibility(View.GONE);
  172. reloadLocalData();
  173. }
  174. @Override
  175. public void onDestroy(){
  176. super.onDestroy();
  177. if(EventBus.getDefault().isRegistered(this)) {
  178. EventBus.getDefault().unregister(this);
  179. }
  180. }
  181. FrameLayout.OnClickListener attendingFrameLayoutListener = new View.OnClickListener() {
  182. @Override
  183. public void onClick(View v) {
  184. currentPosition = 0;
  185. guestListViewPager.setCurrentItem(currentPosition, true);
  186. }
  187. };
  188. FrameLayout.OnClickListener invitedFrameLayoutListener = new View.OnClickListener() {
  189. @Override
  190. public void onClick(View v) {
  191. currentPosition = 1;
  192. guestListViewPager.setCurrentItem(currentPosition, true);
  193. }
  194. };
  195. FrameLayout.OnClickListener requestsFrameLayoutListener = new View.OnClickListener() {
  196. @Override
  197. public void onClick(View v) {
  198. currentPosition = 2;
  199. guestListViewPager.setCurrentItem(currentPosition, true);
  200. }
  201. };
  202. ImageButton.OnClickListener addNewGuestImageViewListener = new View.OnClickListener() {
  203. @Override
  204. public void onClick(View v) {
  205. if(!SettingsManager.getInstance().getCurrentUser().getLoginWithFacebook() || currentOccasion.isPrivate()) {
  206. emailImageView.performClick();
  207. }else{
  208. if(isImageButtonOpened){
  209. isImageButtonOpened = false;
  210. imageButtonLinearLayout.setVisibility(View.GONE);
  211. }else{
  212. isImageButtonOpened = true;
  213. imageButtonLinearLayout.setVisibility(View.VISIBLE);
  214. }
  215. }
  216. }
  217. };
  218. ImageView.OnClickListener emailImageViewListener = new View.OnClickListener() {
  219. @Override
  220. public void onClick(View v) {
  221. Intent intent = new Intent(getActivity(), AddNewGuestActivity.class);
  222. startActivity(intent);
  223. }
  224. };
  225. ImageView.OnClickListener facebookImageViewListener = new View.OnClickListener() {
  226. @Override
  227. public void onClick(View v) {
  228. String appLinkUrl, previewImageUrl, promotionDetails;
  229. appLinkUrl = "https://fb.me/220844961658384";
  230. previewImageUrl = "http://viralhipster.com/wp-content/uploads/2013/03/corgy.jpg";
  231. if(currentOccasion.getThumbnailImageURL()!=null){
  232. if(!currentOccasion.getThumbnailImageURL().equalsIgnoreCase("")){
  233. previewImageUrl = currentOccasion.getThumbnailImageURL();
  234. }
  235. }
  236. promotionDetails = SettingsManager.getInstance().getCurrentUser().getFirstName() + " has created an event and invited you through Invitup";
  237. if(AppInviteDialog.canShow()){
  238. AppInviteContent content = new AppInviteContent.Builder()
  239. .setApplinkUrl(appLinkUrl)
  240. .setPreviewImageUrl(previewImageUrl)
  241. .setPromotionDetails(promotionDetails, currentOccasion.getCode())
  242. .build();
  243. AppInviteDialog.show(getActivity(), content);
  244. }
  245. }
  246. };
  247. public void attendingSelected(){
  248. int attendingCount = 0;
  249. if(occasionGuestResponse!=null){
  250. if(occasionGuestResponse.getJoinedGuest()!=null){
  251. attendingCount = occasionGuestResponse.getJoinedGuest().size();
  252. }
  253. }
  254. mainActivity.guestAmountTextView.setText(attendingCount + " " + getResources().getString(R.string.attending));
  255. if(SettingsManager.getInstance().getCurrentUserRole() == SettingsManager.UserRole.HOST) {
  256. attendingFrameLayout.setBackgroundColor(Color.parseColor(dynamicColor));
  257. attendingTextView.setTextColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appWhite));
  258. }else{
  259. attendingFrameLayout.setBackgroundColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appWhite));
  260. attendingTextView.setTextColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appGrey1));
  261. }
  262. invitedFrameLayout.setBackgroundColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appWhite));
  263. invitedTextView.setTextColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appGrey1));
  264. requestsFrameLayout.setBackgroundColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appWhite));
  265. requestsTextView.setTextColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appGrey1));
  266. }
  267. public void invitedSelected(){
  268. int invitedCount = 0;
  269. if(occasionGuestResponse!=null) {
  270. if (occasionGuestResponse.getInvitedGuest() != null) {
  271. invitedCount = occasionGuestResponse.getInvitedGuest().size();
  272. }
  273. }
  274. mainActivity.guestAmountTextView.setText(invitedCount + " " + getResources().getString(R.string.invited));
  275. attendingFrameLayout.setBackgroundColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appWhite));
  276. attendingTextView.setTextColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appGrey1));
  277. invitedFrameLayout.setBackgroundColor(Color.parseColor(dynamicColor));
  278. invitedTextView.setTextColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appWhite));
  279. requestsFrameLayout.setBackgroundColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appWhite));
  280. requestsTextView.setTextColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appGrey1));
  281. }
  282. public void requestsSelected(){
  283. int requestsCount = 0;
  284. if(occasionGuestResponse!=null) {
  285. if (occasionGuestResponse.getPendingGuest() != null) {
  286. requestsCount = occasionGuestResponse.getPendingGuest().size();
  287. }
  288. }
  289. mainActivity.guestAmountTextView.setText(requestsCount + " " + getResources().getString(R.string.requests));
  290. attendingFrameLayout.setBackgroundColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appWhite));
  291. attendingTextView.setTextColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appGrey1));
  292. invitedFrameLayout.setBackgroundColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appWhite));
  293. invitedTextView.setTextColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appGrey1));
  294. requestsFrameLayout.setBackgroundColor(Color.parseColor(dynamicColor));
  295. requestsTextView.setTextColor(InterfaceManager.sharedInstance().getColor(getActivity(), R.color.appWhite));
  296. }
  297. public void reloadLocalData(){
  298. if(SettingsManager.getInstance().getCurrentOccasion()!=null){
  299. currentOccasion = SettingsManager.getInstance().getCurrentOccasion();
  300. currentOccasionId = currentOccasion.getId();
  301. }else{
  302. currentOccasionId = mainActivity.currentOccasionId;
  303. Occasion occasion = realm.where(Occasion.class).equalTo("id", currentOccasionId).findFirst();
  304. if(occasion!=null){
  305. currentOccasion = occasion;
  306. }
  307. }
  308. occasionGuestResponse = realm.where(OccasionGuestResponse.class)
  309. .equalTo("id", currentOccasionId).findFirst();
  310. if(occasionGuestResponse!=null){
  311. SettingsManager.getInstance().setOccasionGuestResponse(occasionGuestResponse);
  312. guestListViewPager.setCurrentItem(currentPosition, false);
  313. }
  314. ServerManager.getInstance().getGuestListFromOccasion(currentOccasionId);
  315. }
  316. public void onEvent(GetGuestListFinishedEvent event){
  317. if(event.errorMessage.equalsIgnoreCase("")){
  318. occasionGuestResponse = event.occasionGuestResponse;
  319. SettingsManager.getInstance().setOccasionGuestResponse(event.occasionGuestResponse);
  320. guestListViewPager.setCurrentItem(currentPosition, false);
  321. if(SettingsManager.getInstance().getCurrentUserRole() == SettingsManager.UserRole.GUEST){
  322. attendingTextView.setText(event.occasionGuestResponse.getJoinedGuest().size() + " " + getActivity().getResources().getString(R.string.attending));
  323. }
  324. }
  325. }
  326. public void onEvent(UpdateGuestStatusByAdminFinishedEvent event){
  327. if(event.occasionGuest!=null){
  328. reloadLocalData();
  329. }else{
  330. InterfaceManager.sharedInstance().showErrorMessage(getActivity(), event.errorMessage);
  331. }
  332. }
  333. public class GuestListPagerAdapter extends FragmentStatePagerAdapter{
  334. public GuestListPagerAdapter(FragmentManager fm) {
  335. super(fm);
  336. }
  337. @Override
  338. public Fragment getItem(int position) {
  339. currentPosition = position;
  340. if (position == 0){
  341. return new GuestListAttendingFragment();
  342. } else if (position == 1){
  343. return new GuestListInvitedFragment();
  344. } else {
  345. return new GuestListRequestsFragment();
  346. }
  347. }
  348. @Override
  349. public int getCount() {
  350. if(SettingsManager.getInstance().getCurrentUserRole() == SettingsManager.UserRole.HOST){
  351. return 3;
  352. }else{
  353. return 1;
  354. }
  355. }
  356. }
  357. }
Add Comment
Please, Sign In to add comment