Advertisement
Guest User

Untitled

a guest
May 24th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.50 KB | None | 0 0
  1. package com.unlitechsolutions.upsmobileapp.services.remittance;
  2.  
  3. import android.app.DatePickerDialog;
  4. import android.content.DialogInterface;
  5. import android.content.Intent;
  6. import android.database.Cursor;
  7. import android.os.Bundle;
  8. import android.support.design.widget.TextInputLayout;
  9. import android.support.v4.app.Fragment;
  10. import android.support.v7.app.AlertDialog;
  11. import android.support.v7.widget.LinearLayoutManager;
  12. import android.support.v7.widget.RecyclerView;
  13. import android.text.Editable;
  14. import android.text.TextWatcher;
  15. import android.util.Log;
  16. import android.view.LayoutInflater;
  17. import android.view.View;
  18. import android.view.ViewGroup;
  19. import android.view.ViewStub;
  20. import android.widget.Button;
  21. import android.widget.DatePicker;
  22. import android.widget.EditText;
  23. import android.widget.LinearLayout;
  24. import android.widget.RadioButton;
  25. import android.widget.RadioGroup;
  26. import android.widget.Spinner;
  27. import android.widget.TextView;
  28.  
  29. import com.unlitechsolutions.upsmobileapp.Mainmenu;
  30. import com.unlitechsolutions.upsmobileapp.R;
  31. import com.unlitechsolutions.upsmobileapp.controller.remittance.SmartMoneySendController;
  32. import com.unlitechsolutions.upsmobileapp.data.Message;
  33. import com.unlitechsolutions.upsmobileapp.data.Title;
  34. import com.unlitechsolutions.upsmobileapp.data.User;
  35. import com.unlitechsolutions.upsmobileapp.model.RemittanceModel;
  36. import com.unlitechsolutions.upsmobileapp.model.UserModel;
  37. import com.unlitechsolutions.upsmobileapp.objects.ClientObjects;
  38. import com.unlitechsolutions.upsmobileapp.objects.adapters.SearchAdapter;
  39. import com.unlitechsolutions.upsmobileapp.view.RemittanceView;
  40.  
  41. import java.util.ArrayList;
  42. import java.util.Calendar;
  43. import java.util.regex.Pattern;
  44.  
  45. import UnlitechDevFramework.src.ud.framework.data.Response;
  46. import UnlitechDevFramework.src.ud.framework.utilities.ViewUtil;
  47.  
  48. /**
  49. * Created by Em on 5/25/2016.
  50. */
  51. public class SmartmoneySend extends Fragment implements RemittanceView,RemittanceModel.RemittanceModelObserver {
  52. View view, sender_data, bene_data, inputs;
  53. private AlertDialog.Builder builder;
  54. AlertDialog mAlertDialog,searchResultDialog,registrationDialog;
  55. private static int SENDER_SEARCH_TYPE = 1;
  56. private static int BENE_SEARCH_TYPE = 2;
  57. private View dialogView;
  58. RemittanceModel mModel;
  59. SmartMoneySendController mController;
  60. private EditText smartMoneyNo;
  61. static final Pattern CODE_PATTERN = Pattern.compile("([0-9]{0,4})|([0-9]{4}-)+|([0-9]{4}-[0-9]{0,4})+");
  62. private int mYear, mMonth, mDay;
  63. private Calendar cal;
  64. @Override
  65. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  66. view = inflater.inflate(R.layout.remittance_ecashpadala_send, container, false);
  67. sender_data = view.findViewById(R.id.include_sender_data);
  68. bene_data = view.findViewById(R.id.include_bene_data);
  69. cal = Calendar.getInstance();
  70. mDay = cal.get(Calendar.DAY_OF_MONTH);
  71. mMonth = cal.get(Calendar.MONTH);
  72. mYear = cal.get(Calendar.YEAR);
  73. TextView title = (TextView) bene_data.findViewById(R.id.tv_title);
  74. title.setText("BENEFICIARY");
  75. ViewStub stub = (ViewStub) view.findViewById(R.id.layout_stub);
  76. stub.setLayoutResource(R.layout.remittance_inputfields_smartmoneysend);
  77. inputs = stub.inflate();
  78. LinearLayout form = (LinearLayout)view.findViewById(R.id.form);
  79. final EditText trackno = (EditText)view.findViewById(R.id.et_trackno);
  80. final TextInputLayout tl_trackno = (TextInputLayout)view.findViewById(R.id.tl_trackno);
  81. form.setOnClickListener(new View.OnClickListener() {
  82. @Override
  83. public void onClick(View v) {
  84. if(trackno.isEnabled()){
  85. trackno.setEnabled(false);
  86. }else{
  87. trackno.setEnabled(true);
  88. }
  89. }
  90. });
  91. view.findViewById(R.id.iv_send).setOnClickListener(new View.OnClickListener() {
  92. @Override
  93. public void onClick(View v) {
  94. tl_trackno.setError(null);
  95. if(ViewUtil.isEmpty(trackno)){
  96. tl_trackno.setError("Please input tracking number.");
  97. }else{
  98. mController.checkReference(trackno.getText().toString());
  99. }
  100. }
  101. });
  102. sender_data.findViewById(R.id.tv_search).setOnClickListener(new View.OnClickListener() {
  103. @Override
  104. public void onClick(View v) {
  105. showSearchDialog(SENDER_SEARCH_TYPE);
  106. }
  107. });
  108. bene_data.findViewById(R.id.tv_search).setOnClickListener(new View.OnClickListener() {
  109. @Override
  110. public void onClick(View v) {
  111. showSearchDialog(BENE_SEARCH_TYPE);
  112. }
  113. });
  114. view.findViewById(R.id.btn_submit).setOnClickListener(new View.OnClickListener() {
  115. @Override
  116. public void onClick(View v) {
  117. mController.submit();
  118. }
  119. });
  120. view.findViewById(R.id.cv_check_status).setVisibility(View.VISIBLE);
  121. smartMoneyNo = (EditText)inputs.findViewById(R.id.et_smartmoneyno);
  122. initSmartMoneyNo();
  123. mModel = new RemittanceModel();
  124. mModel.registerObserver(this);
  125. mController = new SmartMoneySendController(this, mModel);
  126. RemittanceHolder holder = getCredentials(1);
  127. if(holder.sender_id.getText().toString().equals("")){
  128. showSearchDialog(SENDER_SEARCH_TYPE);
  129. }
  130. return view;
  131. }
  132. @Override
  133. public void onResume() {
  134. super.onResume();
  135. User user = new UserModel().getCurrentUser(getActivity());
  136. if (!user.getRemitECashSend().equals("1")) {
  137. showError(Title.UNIFIED, Message.MSG_UPGRADE_ACCOUNT, new DialogInterface.OnDismissListener() {
  138. @Override
  139. public void onDismiss(DialogInterface dialog) {
  140. Intent intent = new Intent(getActivity(), Mainmenu.class);
  141. startActivity(intent);
  142. getActivity().finish();
  143. }
  144. });
  145. }
  146. }
  147.  
  148. public void initSmartMoneyNo() {
  149.  
  150. smartMoneyNo.addTextChangedListener(new TextWatcher() {
  151. @Override
  152. public void afterTextChanged(Editable s) {
  153. Log.w("", "input" + s.toString());
  154.  
  155. if (s.length() > 0 && !CODE_PATTERN.matcher(s).matches()) {
  156. String input = s.toString();
  157. String numbersOnly = keepNumbersOnly(input);
  158. String code = formatNumbersAsCode(numbersOnly);
  159.  
  160. smartMoneyNo.removeTextChangedListener(this);
  161. smartMoneyNo.setText(code);
  162. smartMoneyNo.setSelection(code.length());
  163. smartMoneyNo.addTextChangedListener(this);
  164. }
  165. }
  166. @Override
  167. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  168. }
  169.  
  170. @Override
  171. public void onTextChanged(CharSequence s, int start, int before, int count) {
  172. }
  173.  
  174. private String keepNumbersOnly(CharSequence s) {
  175. return s.toString().replaceAll("[^0-9]", "");
  176. }
  177.  
  178. private String formatNumbersAsCode(CharSequence s) {
  179. int groupDigits = 0;
  180. String tmp = "";
  181. for (int i = 0; i < s.length(); ++i) {
  182. tmp += s.charAt(i);
  183. ++groupDigits;
  184. if (groupDigits == 4) {
  185. tmp += "-";
  186. groupDigits = 0;
  187. }
  188. }
  189. return tmp;
  190. }});
  191. }
  192. private void showSearchDialog(final int searchtype) {
  193. builder = new AlertDialog.Builder(getActivity(), R.style.AppCompatAlertDialogStyle);
  194. String client;
  195. if(searchtype == 1){
  196. client = "Sender";
  197. }else{
  198. client = "Beneficiary";
  199. }
  200. builder.setTitle("Search "+client);
  201. LayoutInflater inflater = getActivity().getLayoutInflater();
  202. dialogView = inflater.inflate(R.layout.remittance_search_client, null);
  203. builder.setView(dialogView);
  204. builder.setPositiveButton("SEARCH", null);
  205. builder.setNegativeButton("REGISTER NEW CLIENT", null);
  206. mAlertDialog = builder.create();
  207. final EditText serachKey = (EditText)dialogView.findViewById(R.id.et_searchkey);
  208. final TextInputLayout tl_searchKey = (TextInputLayout)dialogView.findViewById(R.id.tl_searchkey);
  209. mAlertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
  210.  
  211. @Override
  212. public void onShow(DialogInterface dialog) {
  213.  
  214. Button b = mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
  215. b.setOnClickListener(new View.OnClickListener() {
  216.  
  217. @Override
  218. public void onClick(View view) {
  219. tl_searchKey.setError(null);
  220. // TODO Do something
  221. if (ViewUtil.isEmpty(serachKey)) {
  222. tl_searchKey.setError("Please input search key.");
  223. } else {
  224. mController.searchClient(searchtype, serachKey.getText().toString());
  225. }
  226. }
  227. });
  228. Button register = mAlertDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
  229. register.setOnClickListener(new View.OnClickListener() {
  230.  
  231. @Override
  232. public void onClick(View view) {
  233. showRegistrationDialog(searchtype);
  234. }
  235. });
  236. }
  237. });
  238. mAlertDialog.show(); }
  239. @Override
  240. public void errorOnRequest(Exception exception) {
  241. showError(Title.UPS, Message.REQUEST_ERROR, null);
  242. }
  243.  
  244. @Override
  245. public void responseReceived(Response response, int type) {
  246. if(type == 1 || type ==2){
  247. mController.processSearchRegReponse(response, type);
  248. }else{
  249. mController.processReponse(response, type);
  250. }
  251.  
  252. }
  253.  
  254. @Override
  255. public RemittanceHolder getCredentials(int type) {
  256.  
  257. RemittanceHolder holder = new RemittanceHolder();
  258. holder.sender_id = (TextView)sender_data.findViewById(R.id.tv_loyaltyno);
  259. holder.sender_fullanme = (TextView)sender_data.findViewById(R.id.tv_fullname);
  260. holder.sender_address = (TextView)sender_data.findViewById(R.id.tv_address);
  261. holder.sender_mobile = (TextView)sender_data.findViewById(R.id.tv_mobile);
  262. holder.sender_email = (TextView)sender_data.findViewById(R.id.tv_email);
  263.  
  264. holder.bene_id = (TextView)bene_data.findViewById(R.id.tv_loyaltyno);
  265. holder.bene_fullanme = (TextView)bene_data.findViewById(R.id.tv_fullname);
  266. holder.bene_address = (TextView)bene_data.findViewById(R.id.tv_address);
  267. holder.bene_mobile = (TextView)bene_data.findViewById(R.id.tv_mobile);
  268. holder.bene_email = (TextView)bene_data.findViewById(R.id.tv_email);
  269.  
  270. holder.mAlertDialog = mAlertDialog;
  271.  
  272.  
  273. holder.amount = (EditText) inputs.findViewById(R.id.et_amount);
  274. holder.smartmoneyno = (EditText) inputs.findViewById(R.id.et_smartmoneyno);
  275. holder.tl_amount = (TextInputLayout) inputs.findViewById(R.id.tl_amount);
  276. holder.tl_smartmoneyno = (TextInputLayout) inputs.findViewById(R.id.tl_smartmoneyno);
  277. if(type == 2) {
  278. holder.registrationDialog = registrationDialog;
  279. holder.firstname = (EditText) dialogView.findViewById(R.id.et_firstname);
  280. holder.middlename = (EditText) dialogView.findViewById(R.id.et_middlename);
  281. holder.lastname = (EditText) dialogView.findViewById(R.id.et_lastname);
  282. holder.address = (EditText) dialogView.findViewById(R.id.et_address);
  283. holder.mobile = (EditText) dialogView.findViewById(R.id.et_mobile);
  284. holder.email = (EditText) dialogView.findViewById(R.id.et_email);
  285. holder.bday = (EditText) dialogView.findViewById(R.id.et_bday);
  286. holder.password = (EditText) dialogView.findViewById(R.id.et_password);
  287.  
  288. holder.tl_firstname = (TextInputLayout) dialogView.findViewById(R.id.tl_firstname);
  289. holder.tl_middlename = (TextInputLayout) dialogView.findViewById(R.id.tl_middlename);
  290. holder.tl_lastname = (TextInputLayout) dialogView.findViewById(R.id.tl_lastname);
  291. holder.tl_address = (TextInputLayout) dialogView.findViewById(R.id.tl_address);
  292. holder.tl_mobile = (TextInputLayout) dialogView.findViewById(R.id.tl_mobile);
  293. holder.tl_email = (TextInputLayout) dialogView.findViewById(R.id.tl_email);
  294. // holder.tl_bday = (TextInputLayout) dialogView.findViewById(R.id.tl_bday);
  295. holder.tl_password = (TextInputLayout) dialogView.findViewById(R.id.tl_password);
  296. RadioGroup rg = (RadioGroup) dialogView.findViewById(R.id.gender);
  297. int selectedId = rg.getCheckedRadioButtonId();
  298. holder.gender = (RadioButton) dialogView.findViewById(selectedId);
  299. holder.country = (Spinner) dialogView.findViewById(R.id.sp_country);
  300. }
  301. return holder;
  302. }
  303.  
  304. @Override
  305. public void showSearchResultDialo(ArrayList<ClientObjects> searchData, int search_type) {
  306. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppCompatAlertDialogStyle);
  307. LayoutInflater inflater = getActivity().getLayoutInflater();
  308. View view = inflater.inflate(R.layout.remittance_client_search, null);
  309. builder.setView(view);
  310. RecyclerView recList = (RecyclerView)view. findViewById(R.id.cardList);
  311. recList.setHasFixedSize(true);
  312. LinearLayoutManager llm = new LinearLayoutManager(view.getContext());
  313. llm.setOrientation(LinearLayoutManager.VERTICAL);
  314. recList.setLayoutManager(llm);
  315. recList.setAdapter(null);
  316. builder.setNegativeButton("DISMISS", null);
  317. searchResultDialog = builder.create();
  318. SearchAdapter adaper = new SearchAdapter(getActivity(), searchData,this,search_type,searchResultDialog,mAlertDialog);
  319. recList.setAdapter(adaper);
  320. searchResultDialog.show();
  321. }
  322.  
  323. @Override
  324. public void showRegistrationDialog(final int searchType) {
  325. builder = new AlertDialog.Builder(getActivity(), R.style.AppCompatAlertDialogStyle);
  326. LayoutInflater inflater = getActivity().getLayoutInflater();
  327. dialogView = inflater.inflate(R.layout.remitrtance_client_registration, null);
  328. getCredentials(2).bday.setOnClickListener(new View.OnClickListener() {
  329. @Override
  330. public void onClick(View v) {
  331. DatePickerDialog dpd = new DatePickerDialog(getActivity(),
  332. new DatePickerDialog.OnDateSetListener() {
  333.  
  334. @Override
  335. public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
  336. String monthPrefix = "";
  337. String datePrefix = "";
  338. if (monthOfYear + 1 <= 9) {
  339. monthPrefix = "0";
  340. } else {
  341. monthPrefix = "";
  342. }
  343. if (dayOfMonth <= 9) {
  344. datePrefix = "0";
  345. } else {
  346. datePrefix = "";
  347. }
  348. getCredentials(2).bday.setText(year + "-" + monthPrefix + (monthOfYear + 1) + "-" + (datePrefix + dayOfMonth));
  349. }
  350. }, mYear, mMonth, mDay);
  351. dpd.show();
  352.  
  353. }
  354. });
  355. builder.setView(dialogView);
  356. builder.setPositiveButton("REGISTER", null);
  357. builder.setNegativeButton("CANCEL", null);
  358. registrationDialog = builder.create();
  359. registrationDialog.setOnShowListener(new DialogInterface.OnShowListener() {
  360.  
  361. @Override
  362. public void onShow(DialogInterface dialog) {
  363.  
  364. Button b = registrationDialog.getButton(AlertDialog.BUTTON_POSITIVE);
  365. b.setOnClickListener(new View.OnClickListener() {
  366.  
  367. @Override
  368. public void onClick(View view) {
  369. // TODO Do something
  370. mController.registerUser(searchType);
  371. }
  372. });
  373. }
  374. });
  375. registrationDialog.show();
  376. }
  377.  
  378. @Override
  379. public void displaySearchResult(ClientObjects clientObjects, int request_type) {
  380. RemittanceHolder holder = getCredentials(1);
  381. if(request_type ==1) {
  382. holder.sender_id.setText(clientObjects.CARDNO);
  383. holder.sender_fullanme.setText(clientObjects.FULLNAME);
  384. holder.sender_address.setText(clientObjects.ADDRESS);
  385. holder.sender_email.setText(clientObjects.EMAIL);
  386. holder.sender_mobile.setText(clientObjects.MOBILE);
  387. if( holder.bene_id.getText().toString().equals("")){
  388. showSearchDialog(BENE_SEARCH_TYPE);
  389. }
  390. }else{
  391. holder.bene_id.setText(clientObjects.CARDNO);
  392. holder.bene_fullanme.setText(clientObjects.FULLNAME);
  393. holder.bene_address.setText(clientObjects.ADDRESS);
  394. holder.bene_email.setText(clientObjects.EMAIL);
  395. holder.bene_mobile.setText(clientObjects.MOBILE);
  396. mAlertDialog.dismiss();
  397. }
  398. }
  399.  
  400. @Override
  401. public void showError(String title, String message, DialogInterface.OnDismissListener listener) {
  402. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppCompatAlertDialogStyle);
  403. builder.setTitle(Title.SMARTMONEYSEND);
  404. builder.setCancelable(false);
  405. builder.setMessage(message);
  406. builder.setPositiveButton("OK", null);
  407. builder.setOnDismissListener(listener);
  408. builder.show();
  409. }
  410.  
  411. @Override
  412. public void updateBankList(Cursor cursor) {
  413.  
  414. }
  415. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement