Advertisement
Guest User

Untitled

a guest
Sep 20th, 2019
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.85 KB | None | 0 0
  1. package ru.ufanet.myufanet.Fragments.Person;
  2.  
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.support.annotation.NonNull;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.support.v7.widget.RecyclerView;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.view.animation.Animation;
  13. import android.view.animation.AnimationUtils;
  14.  
  15. import java.util.ArrayList;
  16. import java.util.List;
  17.  
  18. import io.realm.Realm;
  19. import io.realm.RealmResults;
  20. import io.realm.Sort;
  21. import ru.ufanet.myufanet.BaseApp;
  22. import ru.ufanet.myufanet.Fragments.Payment.PaymentAdditionalActionsActivity;
  23. import ru.ufanet.myufanet.Fragments.ServiceControl.Activities.CashbackActivity;
  24. import ru.ufanet.myufanet.Fragments.ServiceControl.ServiceControlAddFragment;
  25. import ru.ufanet.myufanet.Fragments.ServiceControl.ServiceInfoFragment;
  26. import ru.ufanet.myufanet.Fragments.ServiceControl.ServiceInfoFragmentDigitalTV;
  27. import ru.ufanet.myufanet.Helpers.GlobalVars;
  28. import ru.ufanet.myufanet.Helpers.Utils;
  29. import ru.ufanet.myufanet.Models.ContractModel;
  30. import ru.ufanet.myufanet.Models.ServiceModel;
  31. import ru.ufanet.myufanet.R;
  32.  
  33. public class ServicesGridListAdapter extends RecyclerView.Adapter<ContractsFragment.ServicesViewHolder> {
  34. private RealmResults<ServiceModel> arrayList;
  35. private List<ServiceModel> listData;
  36. private int lastPosition = -1;
  37. private Context context;
  38. private ContractModel mContractModel;
  39.  
  40.  
  41. public ServicesGridListAdapter(int personId, Context context) {
  42. mContractModel = BaseApp.getRealm().where(ContractModel.class).equalTo("contractID", personId).findFirst();
  43. this.arrayList = BaseApp.getRealm().where(ServiceModel.class).equalTo("parentId", personId).findAll().sort("titleId", Sort.ASCENDING);
  44. listData = getModelList();
  45. if(mContractModel.isAutopayIsActive() == 1 && mContractModel.getStatusGuest() != 3 && mContractModel.getBillingId().equals("rb")){
  46. listData.add(0, null);
  47. listData.add(1, null);
  48. }
  49. else if((mContractModel.getStatusGuest() != 3 && mContractModel.getBillingId().equals("rb"))|| mContractModel.isAutopayIsActive() == 1){
  50. listData.add(0, null);
  51. }
  52. ServiceModel emptyModel = new ServiceModel();
  53. emptyModel.setTitle("Добавить услугу");
  54. emptyModel.setTitleId(8);
  55. listData.add(listData.size(),emptyModel);
  56. this.context = context;
  57. setHasStableIds(true);
  58. }
  59.  
  60. public List<ServiceModel> getModelList() {
  61. List<ServiceModel> list = new ArrayList<>();
  62. Realm realm;
  63. try {
  64. realm = BaseApp.getRealm();
  65. RealmResults<ServiceModel> results = arrayList;
  66. list.addAll(realm.copyFromRealm(results));
  67. } finally {
  68.  
  69. }
  70. return list;
  71. }
  72.  
  73.  
  74. @Override
  75. public void onBindViewHolder(@NonNull ContractsFragment.ServicesViewHolder holder, int position) {
  76.  
  77. ServiceModel model = listData.get(position);
  78.  
  79. if(mContractModel != null){
  80.  
  81. if(mContractModel.isAutopayIsActive() == 1 && (mContractModel.getStatusGuest() != 3 && mContractModel.getBillingId().equals("rb"))){
  82. if(position == 0) {
  83. holder.serviceCard.setVisibility(View.GONE);
  84. holder.autopayCard.setVisibility(View.VISIBLE);
  85. holder.autopayCard.setOnClickListener(new View.OnClickListener() {
  86. @Override
  87. public void onClick(View v) {
  88. Intent intent = new Intent(context, PaymentAdditionalActionsActivity.class);
  89. intent.putExtra("contract", mContractModel.getContractID());
  90. intent.putExtra("mode", "autopay");
  91. context.startActivity(intent);
  92. }
  93. });
  94. return;
  95. }else if(position == 1){
  96. holder.serviceCard.setVisibility(View.GONE);
  97. holder.cashbackCard.setVisibility(View.VISIBLE);
  98. holder.cashbackCard.setOnClickListener(new View.OnClickListener() {
  99. @Override
  100. public void onClick(View v) {
  101. Intent intent = new Intent(context, CashbackActivity.class);
  102. Bundle bundle = new Bundle();
  103. bundle.putInt("contract_id", mContractModel.getContractID());
  104. bundle.putString("billing_id", mContractModel.getBillingId());
  105. intent.putExtras(bundle);
  106. context.startActivity(intent);
  107. }
  108. });
  109. return;
  110. }
  111. }else if(mContractModel.isAutopayIsActive() == 1 && model == null && position == 0){
  112. holder.serviceCard.setVisibility(View.GONE);
  113. holder.autopayCard.setVisibility(View.VISIBLE);
  114. holder.autopayCard.setOnClickListener(new View.OnClickListener() {
  115. @Override
  116. public void onClick(View v) {
  117. Intent intent = new Intent(context, PaymentAdditionalActionsActivity.class);
  118. intent.putExtra("contract", mContractModel.getContractID());
  119. intent.putExtra("mode", "autopay");
  120. context.startActivity(intent);
  121. }
  122. });
  123. return;
  124. }else if(mContractModel.getStatusGuest() != 3 && model == null && position == 0 && mContractModel.getBillingId().equals("rb")){
  125. holder.serviceCard.setVisibility(View.GONE);
  126. holder.cashbackCard.setVisibility(View.VISIBLE);
  127. holder.cashbackCard.setOnClickListener(new View.OnClickListener() {
  128. @Override
  129. public void onClick(View v) {
  130. Intent intent = new Intent(context, CashbackActivity.class);
  131. Bundle bundle = new Bundle();
  132. bundle.putInt("contract_id", mContractModel.getContractID());
  133. bundle.putString("billing_id", mContractModel.getBillingId());
  134. intent.putExtras(bundle);
  135. context.startActivity(intent);
  136. }
  137. });
  138. return;
  139. }else{
  140. holder.serviceCard.setVisibility(View.VISIBLE);
  141. holder.autopayCard.setVisibility(View.GONE);
  142. }
  143. }
  144.  
  145. if(model == null) {
  146.  
  147.  
  148.  
  149. return;
  150. } else {
  151. if (model.getTitle().equals("Добавить услугу")) {
  152.  
  153. holder.serviceCard.setOnClickListener(new View.OnClickListener() {
  154.  
  155. @Override
  156. public void onClick(View view) {
  157. ServiceControlAddFragment sfrg = new ServiceControlAddFragment();
  158.  
  159.  
  160. ((AppCompatActivity) context)
  161. .getSupportFragmentManager()
  162. .beginTransaction()
  163. .replace(R.id.rootView, sfrg)
  164. .addToBackStack(null)
  165. .commit();
  166. context = view.getContext();
  167. }
  168. });
  169. setAnimation(holder.itemView, position);
  170. } else {
  171. holder.btnGo.setVisibility(View.GONE);
  172. }
  173. }
  174.  
  175.  
  176. if(model.getCost() == -1){
  177. holder.cost.setVisibility(View.GONE);
  178. }
  179. else if(model.getCost() == 0){
  180. // holder.cost.setVisibility(View.VISIBLE);
  181. // holder.cost.setText("Бесплатно");
  182. holder.cost.setVisibility(View.GONE);
  183. holder.cost.setText("");
  184. }
  185. else {
  186. holder.cost.setVisibility(View.VISIBLE);
  187. holder.cost.setText(Math.round(model.getCost()) + " \u20BD/мес");
  188. }
  189.  
  190.  
  191. if(mContractModel != null) {
  192. if (mContractModel.getContractStatusId() == 0 && model.getStatusId() == 1) {
  193. holder.inactive.setVisibility(View.VISIBLE);
  194. holder.inactive.setText("");
  195. } else if (mContractModel.getContractStatusId() == 0 && model.getStatusId() == 0) {
  196. holder.inactive.setVisibility(View.GONE);
  197. holder.cost.setVisibility(View.VISIBLE);
  198. holder.cost.setText("Не активен");
  199. }else if(mContractModel.getContractStatusId() >=1 && mContractModel.getContractStatusId() <= 6){
  200. holder.inactive.setVisibility(View.VISIBLE);
  201. holder.inactive.setText(mContractModel.getContractStatus());
  202. }else{
  203. holder.cost.setVisibility(View.VISIBLE);
  204. holder.cost.setText(model.getStatusTitle());
  205. holder.inactive.setVisibility(View.GONE);
  206. }
  207. }
  208.  
  209. if (GlobalVars.isDebug)
  210. holder.title.setText(model.getTitle() + " " + Utils.MillstoDateString(model.getEndPeriod(), true));
  211. else
  212. holder.title.setText(model.getTitle());
  213. holder.subTitle.setText(model.getSubTitle());
  214.  
  215. holder.pic.setImageResource(model.getPicId());
  216. if (model.getEndPeriod() > 0) {
  217. if (model.getEndPeriod() < System.currentTimeMillis())
  218. holder.subTitle.setText("" + Utils.MillstoDateString(model.getEndPeriod(), true));
  219. else
  220. holder.subTitle.setText("до " + Utils.MillstoDateString(model.getEndPeriod(), false));
  221. }
  222.  
  223. if(model.getTitleId() == 8) {
  224. holder.inactive.setVisibility(View.GONE);
  225. holder.cost.setVisibility(View.GONE);
  226. holder.btnGo.setVisibility(View.GONE);
  227. holder.subTitle.setVisibility(View.GONE);
  228. holder.serviceCard.setBackgroundResource(R.drawable.red_border);
  229. }
  230.  
  231. //old method
  232. // if (model.getEndPeriod() - System.currentTimeMillis() < 0)
  233. // holder.inactive.setVisibility(View.VISIBLE);
  234. // else
  235. // holder.inactive.setVisibility(View.INVISIBLE);
  236.  
  237. //костыли dbg
  238. //new method
  239. // ContractModel parent = BaseApp.getRealm().where(ContractModel.class).equalTo("contractID", model.getParentId()).findFirst();
  240. /* if (parent.getContractType().equals(Constants.CONTRACT_TYPE_OLD) && parent.getContractStatus().toLowerCase().equals("приостановлен")) {
  241. holder.inactive.setVisibility(View.VISIBLE);
  242. holder.inactive.setText(parent.getContractStatus());
  243. }
  244.  
  245.  
  246. if (model.getContractStatus().length() > 0 && !model.getContractStatus().toLowerCase().equals("активен")) {
  247. holder.inactive.setVisibility(View.VISIBLE);
  248. holder.inactive.setText(model.getContractStatus());
  249. }*/
  250. //
  251. // holder.inactive.setVisibility(View.VISIBLE);
  252. // holder.inactive.setText(model.getStatusTitle());
  253. // if(model.getStatusTitle().equals("")){
  254. // holder.inactive.setVisibility(View.GONE);
  255. // }
  256. // if(model.getStatusId() == 10 || model.getStatusString().equals("Неактивен")) {
  257. // //holder.inactive.setTextColor(BaseApp.getInstance().getResources().getColor(R.color.un_red2));
  258.  
  259.  
  260. // }
  261.  
  262. if(mContractModel != null) {
  263. if ((mContractModel.getStatusGuest() == 1 || mContractModel.getStatusGuest() == 2) && model.getTitle().equals("Интернет")) {
  264. holder.serviceCard.setOnClickListener(new View.OnClickListener() {
  265.  
  266. @Override
  267. public void onClick(View view) {
  268. ServiceInfoFragment sfrg = new ServiceInfoFragment();
  269.  
  270. Bundle bundle = new Bundle();
  271.  
  272. //для 6 билинга и ниже
  273.  
  274. //гость - не гость
  275.  
  276. bundle.putInt("status_guest", mContractModel.getStatusGuest());
  277. bundle.putInt("contract_id", model.getContractId());
  278. bundle.putString("billing_id", model.getBiling());
  279. bundle.putString("contract_title", mContractModel.getContractTitle());
  280. bundle.putInt("contract_id_cont", mContractModel.getContractID());
  281. bundle.putString("billing_id_cont", mContractModel.getBillingId());
  282. bundle.putString("title", model.getTitle());
  283. bundle.putString("subTitle", model.getSubTitle());
  284. bundle.putLong("endPeriod", model.getEndPeriod());
  285. bundle.putFloat("cost", model.getCost());
  286. bundle.putInt("statusId", model.getStatusId());
  287. bundle.putString("statusString", holder.inactive.getText().toString());
  288. bundle.putInt("contractStatusId", mContractModel.getContractStatusId());
  289. bundle.putString("contractStatus", mContractModel.getContractStatus());
  290. bundle.putString("statusTitle", model.getStatusTitle());
  291. bundle.putInt("parentId", model.getParentId());
  292. bundle.putString("tariff", mContractModel.getContractTariff());
  293. bundle.putString("cost", mContractModel.getInetCost());
  294.  
  295. // bundle.putInt("price", model.get);
  296.  
  297. sfrg.setArguments(bundle);
  298. ((AppCompatActivity) context)
  299. .getSupportFragmentManager()
  300. .beginTransaction()
  301. .replace(R.id.rootView, sfrg)
  302. .addToBackStack(null)
  303. .commit();
  304. context = view.getContext();
  305. }
  306. });
  307. setAnimation(holder.itemView, position);
  308. } else {
  309. holder.btnGo.setVisibility(View.GONE);
  310. }
  311.  
  312. if ((mContractModel.getStatusGuest() == 1 || mContractModel.getStatusGuest() == 2) && model.getTitle().equals("Телевидение") && mContractModel.getBillingId().equals("rb")) {
  313. holder.serviceCard.setOnClickListener(new View.OnClickListener() {
  314.  
  315. @Override
  316. public void onClick(View view) {
  317. ServiceInfoFragmentDigitalTV sfrg = new ServiceInfoFragmentDigitalTV();
  318. Bundle bundle = new Bundle();
  319. bundle.putInt("contract_id", model.getContractId());
  320. bundle.putString("billing_id", model.getBiling());
  321. bundle.putString("title", model.getTitle());
  322. bundle.putString("subTitle", model.getSubTitle());
  323. bundle.putLong("endPeriod", model.getEndPeriod());
  324. bundle.putString("cost", mContractModel.getTvCost());
  325. bundle.putInt("statusId", model.getStatusId());
  326. bundle.putString("statusString", holder.inactive.getText().toString());
  327. bundle.putInt("contractStatusId", mContractModel.getContractStatusId());
  328. bundle.putString("contractStatus", mContractModel.getContractStatus());
  329. bundle.putString("statusTitle", model.getStatusTitle());
  330. bundle.putInt("parentId", model.getParentId());
  331. sfrg.setArguments(bundle);
  332. ((AppCompatActivity) context)
  333. .getSupportFragmentManager()
  334. .beginTransaction()
  335. .replace(R.id.rootView, sfrg)
  336. .addToBackStack(null)
  337. .commit();
  338. context = view.getContext();
  339. }
  340. });
  341. setAnimation(holder.itemView, position);
  342. } else {
  343. holder.btnGo.setVisibility(View.GONE);
  344. }
  345.  
  346.  
  347. if ((mContractModel.getStatusGuest() == 1 || mContractModel.getStatusGuest() == 2) && model.getTitle().equals("Видеонаблюдение")) {
  348. holder.serviceCard.setOnClickListener(new View.OnClickListener() {
  349.  
  350. @Override
  351. public void onClick(View view) {
  352. ServiceInfoFragment sfrg = new ServiceInfoFragment();
  353.  
  354. Bundle bundle = new Bundle();
  355.  
  356. //для 6 билинга и ниже
  357. //гость - не гость
  358. bundle.putInt("status_guest", mContractModel.getStatusGuest());
  359. bundle.putInt("contract_id", model.getContractId());
  360. bundle.putString("billing_id", model.getBiling());
  361. bundle.putString("contract_title", mContractModel.getContractTitle());
  362. bundle.putInt("contract_id_cont", mContractModel.getContractID());
  363. bundle.putString("billing_id_cont", mContractModel.getBillingId());
  364. bundle.putString("title", model.getTitle());
  365. bundle.putString("subTitle", model.getSubTitle());
  366. bundle.putLong("endPeriod", model.getEndPeriod());
  367. bundle.putFloat("cost", model.getCost());
  368. bundle.putInt("statusId", model.getStatusId());
  369. bundle.putString("statusString", holder.inactive.getText().toString());
  370. bundle.putInt("contractStatusId", mContractModel.getContractStatusId());
  371. bundle.putString("contractStatus", mContractModel.getContractStatus());
  372. bundle.putString("statusTitle", model.getStatusTitle());
  373. bundle.putInt("parentId", model.getParentId());
  374. bundle.putString("tariff", mContractModel.getContractTariff());
  375. bundle.putString("cost", mContractModel.getInetCost());
  376.  
  377. // bundle.putInt("price", model.get);
  378.  
  379. sfrg.setArguments(bundle);
  380. ((AppCompatActivity) context)
  381. .getSupportFragmentManager()
  382. .beginTransaction()
  383. .replace(R.id.rootView, sfrg)
  384. .addToBackStack(null)
  385. .commit();
  386. context = view.getContext();
  387. }
  388. });
  389. setAnimation(holder.itemView, position);
  390. } else {
  391. holder.btnGo.setVisibility(View.GONE);
  392. }
  393.  
  394.  
  395. if ((mContractModel.getStatusGuest() == 1 || mContractModel.getStatusGuest() == 2) && model.getTitle().equals("Ufanet TV")) {
  396. holder.serviceCard.setOnClickListener(new View.OnClickListener() {
  397.  
  398. @Override
  399. public void onClick(View view) {
  400. ServiceInfoFragment sfrg = new ServiceInfoFragment();
  401.  
  402. Bundle bundle = new Bundle();
  403.  
  404. //для 6 билинга и ниже
  405.  
  406.  
  407. //гость - не гость
  408.  
  409. bundle.putInt("status_guest", mContractModel.getStatusGuest());
  410. bundle.putInt("contract_id", model.getContractId());
  411. bundle.putString("billing_id", model.getBiling());
  412. bundle.putString("contract_title", mContractModel.getContractTitle());
  413. bundle.putInt("contract_id_cont", mContractModel.getContractID());
  414. bundle.putString("billing_id_cont", mContractModel.getBillingId());
  415. bundle.putString("title", model.getTitle());
  416. bundle.putString("subTitle", model.getSubTitle());
  417. bundle.putLong("endPeriod", model.getEndPeriod());
  418. bundle.putFloat("cost", model.getCost());
  419. bundle.putInt("statusId", model.getStatusId());
  420. bundle.putString("statusString", holder.inactive.getText().toString());
  421. bundle.putInt("contractStatusId", mContractModel.getContractStatusId());
  422. bundle.putString("contractStatus", mContractModel.getContractStatus());
  423. bundle.putString("statusTitle", model.getStatusTitle());
  424. bundle.putInt("parentId", model.getParentId());
  425. bundle.putString("tariff", mContractModel.getContractTariff());
  426. bundle.putString("cost", mContractModel.getInetCost());
  427.  
  428. // bundle.putInt("price", model.get);
  429.  
  430. sfrg.setArguments(bundle);
  431. ((AppCompatActivity) context)
  432. .getSupportFragmentManager()
  433. .beginTransaction()
  434. .replace(R.id.rootView, sfrg)
  435. .addToBackStack(null)
  436. .commit();
  437. context = view.getContext();
  438. }
  439. });
  440. setAnimation(holder.itemView, position);
  441. } else {
  442. holder.btnGo.setVisibility(View.GONE);
  443. }
  444.  
  445. if ((mContractModel.getStatusGuest() == 1 || mContractModel.getStatusGuest() == 2) && model.getTitle().equals("Умный дом")) {
  446. holder.serviceCard.setOnClickListener(new View.OnClickListener() {
  447.  
  448. @Override
  449. public void onClick(View view) {
  450. ServiceInfoFragment sfrg = new ServiceInfoFragment();
  451.  
  452. Bundle bundle = new Bundle();
  453.  
  454. //для 6 билинга и ниже
  455. //гость - не гость
  456. bundle.putInt("status_guest", mContractModel.getStatusGuest());
  457. bundle.putInt("contract_id", model.getContractId());
  458. bundle.putString("billing_id", model.getBiling());
  459. bundle.putString("contract_title", mContractModel.getContractTitle());
  460. bundle.putInt("contract_id_cont", mContractModel.getContractID());
  461. bundle.putString("billing_id_cont", mContractModel.getBillingId());
  462. bundle.putString("title", model.getTitle());
  463. bundle.putString("subTitle", model.getSubTitle());
  464. bundle.putLong("endPeriod", model.getEndPeriod());
  465. bundle.putFloat("cost", model.getCost());
  466. bundle.putInt("statusId", model.getStatusId());
  467. bundle.putString("statusString", holder.inactive.getText().toString());
  468. bundle.putInt("contractStatusId", mContractModel.getContractStatusId());
  469. bundle.putString("contractStatus", mContractModel.getContractStatus());
  470. bundle.putString("statusTitle", model.getStatusTitle());
  471. bundle.putInt("parentId", model.getParentId());
  472. bundle.putString("tariff", mContractModel.getContractTariff());
  473. bundle.putString("cost", mContractModel.getInetCost());
  474.  
  475. // bundle.putInt("price", model.get);
  476.  
  477. sfrg.setArguments(bundle);
  478. ((AppCompatActivity) context)
  479. .getSupportFragmentManager()
  480. .beginTransaction()
  481. .replace(R.id.rootView, sfrg)
  482. .addToBackStack(null)
  483. .commit();
  484. context = view.getContext();
  485. }
  486. });
  487. setAnimation(holder.itemView, position);
  488. } else {
  489. holder.btnGo.setVisibility(View.GONE);
  490. }
  491. } else {
  492.  
  493. }
  494. }
  495.  
  496. @Override
  497. public int getItemCount() {
  498. return (null != listData ? listData.size() : 0);
  499. }
  500.  
  501. @Override
  502. public int getItemViewType(int position) {
  503. return 1;
  504. }
  505.  
  506.  
  507. @NonNull
  508. @Override
  509. public ContractsFragment.ServicesViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
  510. LayoutInflater mInflater = LayoutInflater.from(viewGroup.getContext());
  511. ViewGroup mainGroup = (ViewGroup) mInflater.inflate(R.layout.contract_card_service_grid_item, viewGroup, false);
  512. ContractsFragment.ServicesViewHolder mainHolder = new ContractsFragment.ServicesViewHolder(mainGroup) {
  513. @Override
  514. public String toString() {
  515. return super.toString();
  516. }
  517. };
  518.  
  519. return mainHolder;
  520. }
  521.  
  522. private void setAnimation(View viewToAnimate, int position) {
  523. // If the bound view wasn't previously displayed on screen, it's animated
  524. if (position > lastPosition) {
  525. Animation animation = AnimationUtils.loadAnimation(BaseApp.getInstance(), android.R.anim.slide_in_left);
  526. viewToAnimate.startAnimation(animation);
  527. lastPosition = position;
  528. }
  529.  
  530. }
  531. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement