Advertisement
gust94

JoinEventFragment

Jan 19th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.11 KB | None | 0 0
  1. package com.dss.invitup.vc.homePage;
  2. import android.app.Activity;
  3. import android.graphics.Typeface;
  4. import android.os.Build;
  5. import android.os.Bundle;
  6. import android.support.v4.app.Fragment;
  7. import android.text.Editable;
  8. import android.text.TextWatcher;
  9. import android.view.LayoutInflater;
  10. import android.view.MotionEvent;
  11. import android.view.View;
  12. import android.view.ViewGroup;
  13. import android.view.inputmethod.InputMethodManager;
  14. import android.widget.AdapterView;
  15. import android.widget.Button;
  16. import android.widget.FrameLayout;
  17. import android.widget.ImageButton;
  18. import android.widget.LinearLayout;
  19. import android.widget.ListView;
  20. import android.widget.RelativeLayout;
  21. import android.widget.Toast;
  22. import com.dss.invitup.R;
  23. import com.dss.invitup.adapters.JoinEventSingleOccasionAdapter;
  24. import com.dss.invitup.events.AskJoinEventFinishedEvent;
  25. import com.dss.invitup.events.GetOccasionFromCodeFinishedEvent;
  26. import com.dss.invitup.events.HomePageBackButtonTapped;
  27. import com.dss.invitup.events.QRCodeEventButtonTapped;
  28. import com.dss.invitup.models.Occasion;
  29. import com.dss.invitup.singleton.InterfaceManager;
  30. import com.dss.invitup.singleton.ServerManager;
  31. import com.dss.invitup.view.MontserratLightTextView;
  32. import com.dss.invitup.view.RobotoBoldEditText;
  33. import com.dss.invitup.view.RobotoLightTextView;
  34. import de.greenrobot.event.EventBus;
  35. /**
  36. * Copyright © 2016 Dihardja Software Solutions. All rights reserved.
  37. */
  38. public class JoinEventFragment extends Fragment{
  39. Button scanQRCodeButton;
  40. RobotoBoldEditText codeEditText;
  41. ImageButton backButton, submitButton;
  42. JoinEventSingleOccasionAdapter joinEventSingleOccasionAdapter;
  43. ListView singleOccasionListView;
  44. RobotoLightTextView completeJoinEventTextView;
  45. LinearLayout mainLinearLayout;
  46. MontserratLightTextView messageTextView;
  47. RelativeLayout successJoinEventRelativeLayout;
  48. String qrCodeString;
  49. FrameLayout rootFrameLayout;
  50. InputMethodManager inputMethodManager;
  51. @Override
  52. public void onCreate(Bundle savedInstanceState) {
  53. super.onCreate(savedInstanceState);
  54. if(this.getArguments()!=null){
  55. Bundle bundle = this.getArguments();
  56. qrCodeString = bundle.getString("qrCodeString","");
  57. String[] qrCodeArrayString = qrCodeString.split("/");
  58. String occasionCode = qrCodeArrayString[qrCodeArrayString.length-1];
  59. ServerManager.getInstance().getOccasionFromCode(occasionCode.toString());
  60. }
  61. }
  62. @Override
  63. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  64. Bundle savedInstanceState) {
  65. View view = inflater.inflate(R.layout.fragment_join_event, container, false);
  66. if(!EventBus.getDefault().isRegistered(this)) {
  67. EventBus.getDefault().register(this);
  68. }
  69. mainLinearLayout = (LinearLayout)view.findViewById(R.id.joinEventFragment_mainLinearLayout);
  70. successJoinEventRelativeLayout = (RelativeLayout)view.findViewById(R.id.joinEventFragment_completeJoinEventRelativeLayout);
  71. rootFrameLayout = (FrameLayout)view.findViewById(R.id.joinEventFragmentRootFrameLayout);
  72. scanQRCodeButton = (Button)view.findViewById(R.id.joinEventFragment_scanQRButton);
  73. codeEditText = (RobotoBoldEditText)view.findViewById(R.id.joinEventFragment_codeEditText);
  74. backButton = (ImageButton)view.findViewById(R.id.joinEventFragment_backButton);
  75. messageTextView = (MontserratLightTextView)view.findViewById(R.id.joinEventFragment_messageTextView);
  76. submitButton = (ImageButton)view.findViewById(R.id.joinEventFragment_submitImageButton);
  77. singleOccasionListView = (ListView)view.findViewById(R.id.joinEventFragment_singleOccasionListView);
  78. completeJoinEventTextView = (RobotoLightTextView)view.findViewById(R.id.joinEventFragment_completeJoinText);
  79. joinEventSingleOccasionAdapter = new JoinEventSingleOccasionAdapter(getActivity());
  80. inputMethodManager = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE);
  81. return view;
  82. }
  83. @Override
  84. public void onViewCreated(View view, Bundle savedInstanceState) {
  85. super.onViewCreated(view, savedInstanceState);
  86. singleOccasionListView.setAdapter(joinEventSingleOccasionAdapter);
  87. Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/Montserrat-Light.otf");
  88. scanQRCodeButton.setTypeface(font);
  89. codeEditText.setFocusable(false);
  90. codeEditText.setFocusableInTouchMode(true);
  91. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  92. scanQRCodeButton.setLetterSpacing(0.07f);
  93. }
  94. codeEditText.setOnTouchListener(new View.OnTouchListener() {
  95. @Override
  96. public boolean onTouch(View v, MotionEvent event) {
  97. codeEditText.setFocusable(true);
  98. return false;
  99. }
  100. });
  101. codeEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
  102. @Override
  103. public void onFocusChange(View v, boolean hasFocus) {
  104. if (!inputMethodManager.isActive()){
  105. codeEditText.clearFocus();
  106. codeEditText.setFocusable(false);
  107. inputMethodManager.hideSoftInputFromWindow(codeEditText.getWindowToken(), 0);
  108. }
  109. }
  110. });
  111. codeEditText.addTextChangedListener(new TextWatcher() {
  112. @Override
  113. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  114. }
  115. @Override
  116. public void onTextChanged(CharSequence s, int start, int before, int count) {
  117. if(before>count){
  118. if(messageTextView.getVisibility() == View.VISIBLE){
  119. messageTextView.setVisibility(View.GONE);
  120. return;
  121. }
  122. if(singleOccasionListView.getVisibility() == View.VISIBLE){
  123. singleOccasionListView.setVisibility(View.GONE);
  124. return;
  125. }
  126. }
  127. }
  128. @Override
  129. public void afterTextChanged(Editable s) {
  130. }
  131. });
  132. singleOccasionListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  133. @Override
  134. public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  135. Occasion theOccasion = (Occasion)joinEventSingleOccasionAdapter.getItem(position);
  136. ServerManager.getInstance().askToJoin(theOccasion.getId());
  137. InterfaceManager.sharedInstance().showLoading(rootFrameLayout,getActivity());
  138. }
  139. });
  140. submitButton.setOnClickListener(submitButtonListener);
  141. backButton.setOnClickListener(backButtonListener);
  142. scanQRCodeButton.setOnClickListener(scanQRCodeButtonListener);
  143. }
  144. ImageButton.OnClickListener submitButtonListener = new View.OnClickListener() {
  145. @Override
  146. public void onClick(View v) {
  147. inputMethodManager.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
  148. singleOccasionListView.setVisibility(View.GONE);
  149. messageTextView.setVisibility(View.GONE);
  150. if(codeEditText.getText().equals("")){
  151. Toast.makeText(getActivity(),getActivity().getResources().getString(R.string.notification_no_code),Toast.LENGTH_SHORT).show();
  152. }else{
  153. InterfaceManager.sharedInstance().showLoading(rootFrameLayout,getActivity());
  154. ServerManager.getInstance().getOccasionFromCode(codeEditText.getText().toString());
  155. }
  156. }
  157. };
  158. ImageButton.OnClickListener backButtonListener = new View.OnClickListener() {
  159. @Override
  160. public void onClick(View v) {
  161. if(codeEditText.hasFocusable()){
  162. inputMethodManager.hideSoftInputFromWindow(codeEditText.getWindowToken(), 0);
  163. }
  164. EventBus.getDefault().post(new HomePageBackButtonTapped());
  165. }
  166. };
  167. Button.OnClickListener scanQRCodeButtonListener = new View.OnClickListener() {
  168. @Override
  169. public void onClick(View v) {
  170. EventBus.getDefault().post(new QRCodeEventButtonTapped());
  171. }
  172. };
  173. public void onEvent(GetOccasionFromCodeFinishedEvent event){
  174. InterfaceManager.sharedInstance().hideLoading();
  175. if(event.isSuccess){
  176. if(event.occasion!=null){
  177. if(event.occasion.isPrivate()){
  178. messageTextView.setText(getActivity().getResources().getString(R.string.text_event_private));
  179. messageTextView.setVisibility(View.VISIBLE);
  180. }else{
  181. singleOccasionListView.setVisibility(View.VISIBLE);
  182. joinEventSingleOccasionAdapter.updateAdapter(event.occasion);
  183. }
  184. }else{
  185. messageTextView.setText(getActivity().getResources().getString(R.string.text_no_event_found));
  186. messageTextView.setVisibility(View.VISIBLE);
  187. }
  188. }else{
  189. InterfaceManager.sharedInstance().showErrorMessage(getActivity(), event.errorMessage);
  190. }
  191. }
  192. public void onEvent(AskJoinEventFinishedEvent event){
  193. InterfaceManager.sharedInstance().hideLoading();
  194. if(event.errorMessage.equals("")){
  195. mainLinearLayout.setVisibility(View.GONE);
  196. successJoinEventRelativeLayout.setVisibility(View.VISIBLE);
  197. completeJoinEventTextView.setText(getActivity().getResources().getString(R.string.text_request_to_join)
  198. +" "
  199. + event.occasionGuest.getOccasion().getName()
  200. +" "
  201. + event.occasionGuest.getOccasion().getOccasionType()
  202. +" "
  203. +getActivity().getResources().getString(R.string.text_request_has_been_sent));
  204. }else{
  205. String errorMessage = event.errorMessage;
  206. if(errorMessage.equalsIgnoreCase("user has asked to join before")){
  207. Toast.makeText(getActivity(), getActivity().getResources().getString(R.string.notification_asked_join_event), Toast.LENGTH_LONG).show();
  208. }else if(errorMessage.equalsIgnoreCase("you are the occasion's owner")){
  209. Toast.makeText(getActivity(), getActivity().getResources().getString(R.string.notification_owner_event), Toast.LENGTH_LONG).show();
  210. }else if(errorMessage.equalsIgnoreCase("user has joined the event")) {
  211. Toast.makeText(getActivity(), getActivity().getResources().getString(R.string.notification_already_join_event), Toast.LENGTH_LONG).show();
  212. }else{
  213. Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show();
  214. }
  215. }
  216. }
  217. @Override
  218. public void onDestroy(){
  219. super.onDestroy();
  220. if(EventBus.getDefault().isRegistered(this)) {
  221. EventBus.getDefault().unregister(this);
  222. }
  223. }
  224. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement