Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.ufanet.myufanet.Fragments.Person;
- import android.content.Context;
- import android.content.Intent;
- import android.os.Bundle;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.support.v7.widget.RecyclerView;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import java.util.ArrayList;
- import java.util.List;
- import io.realm.Realm;
- import io.realm.RealmResults;
- import io.realm.Sort;
- import ru.ufanet.myufanet.BaseApp;
- import ru.ufanet.myufanet.Fragments.Payment.PaymentAdditionalActionsActivity;
- import ru.ufanet.myufanet.Fragments.ServiceControl.Activities.CashbackActivity;
- import ru.ufanet.myufanet.Fragments.ServiceControl.ServiceControlAddFragment;
- import ru.ufanet.myufanet.Fragments.ServiceControl.ServiceInfoFragment;
- import ru.ufanet.myufanet.Fragments.ServiceControl.ServiceInfoFragmentDigitalTV;
- import ru.ufanet.myufanet.Helpers.GlobalVars;
- import ru.ufanet.myufanet.Helpers.Utils;
- import ru.ufanet.myufanet.Models.ContractModel;
- import ru.ufanet.myufanet.Models.ServiceModel;
- import ru.ufanet.myufanet.R;
- public class ServicesGridListAdapter extends RecyclerView.Adapter<ContractsFragment.ServicesViewHolder> {
- private RealmResults<ServiceModel> arrayList;
- private List<ServiceModel> listData;
- private int lastPosition = -1;
- private Context context;
- private ContractModel mContractModel;
- public ServicesGridListAdapter(int personId, Context context) {
- mContractModel = BaseApp.getRealm().where(ContractModel.class).equalTo("contractID", personId).findFirst();
- this.arrayList = BaseApp.getRealm().where(ServiceModel.class).equalTo("parentId", personId).findAll().sort("titleId", Sort.ASCENDING);
- listData = getModelList();
- if(mContractModel.isAutopayIsActive() == 1 && mContractModel.getStatusGuest() != 3 && mContractModel.getBillingId().equals("rb")){
- listData.add(0, null);
- listData.add(1, null);
- }
- else if((mContractModel.getStatusGuest() != 3 && mContractModel.getBillingId().equals("rb"))|| mContractModel.isAutopayIsActive() == 1){
- listData.add(0, null);
- }
- ServiceModel emptyModel = new ServiceModel();
- emptyModel.setTitle("Добавить услугу");
- emptyModel.setTitleId(8);
- listData.add(listData.size(),emptyModel);
- this.context = context;
- setHasStableIds(true);
- }
- public List<ServiceModel> getModelList() {
- List<ServiceModel> list = new ArrayList<>();
- Realm realm;
- try {
- realm = BaseApp.getRealm();
- RealmResults<ServiceModel> results = arrayList;
- list.addAll(realm.copyFromRealm(results));
- } finally {
- }
- return list;
- }
- @Override
- public void onBindViewHolder(@NonNull ContractsFragment.ServicesViewHolder holder, int position) {
- ServiceModel model = listData.get(position);
- if(mContractModel != null){
- if(mContractModel.isAutopayIsActive() == 1 && (mContractModel.getStatusGuest() != 3 && mContractModel.getBillingId().equals("rb"))){
- if(position == 0) {
- holder.serviceCard.setVisibility(View.GONE);
- holder.autopayCard.setVisibility(View.VISIBLE);
- holder.autopayCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(context, PaymentAdditionalActionsActivity.class);
- intent.putExtra("contract", mContractModel.getContractID());
- intent.putExtra("mode", "autopay");
- context.startActivity(intent);
- }
- });
- return;
- }else if(position == 1){
- holder.serviceCard.setVisibility(View.GONE);
- holder.cashbackCard.setVisibility(View.VISIBLE);
- holder.cashbackCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(context, CashbackActivity.class);
- Bundle bundle = new Bundle();
- bundle.putInt("contract_id", mContractModel.getContractID());
- bundle.putString("billing_id", mContractModel.getBillingId());
- intent.putExtras(bundle);
- context.startActivity(intent);
- }
- });
- return;
- }
- }else if(mContractModel.isAutopayIsActive() == 1 && model == null && position == 0){
- holder.serviceCard.setVisibility(View.GONE);
- holder.autopayCard.setVisibility(View.VISIBLE);
- holder.autopayCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(context, PaymentAdditionalActionsActivity.class);
- intent.putExtra("contract", mContractModel.getContractID());
- intent.putExtra("mode", "autopay");
- context.startActivity(intent);
- }
- });
- return;
- }else if(mContractModel.getStatusGuest() != 3 && model == null && position == 0 && mContractModel.getBillingId().equals("rb")){
- holder.serviceCard.setVisibility(View.GONE);
- holder.cashbackCard.setVisibility(View.VISIBLE);
- holder.cashbackCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(context, CashbackActivity.class);
- Bundle bundle = new Bundle();
- bundle.putInt("contract_id", mContractModel.getContractID());
- bundle.putString("billing_id", mContractModel.getBillingId());
- intent.putExtras(bundle);
- context.startActivity(intent);
- }
- });
- return;
- }else{
- holder.serviceCard.setVisibility(View.VISIBLE);
- holder.autopayCard.setVisibility(View.GONE);
- }
- }
- if(model == null) {
- return;
- } else {
- if (model.getTitle().equals("Добавить услугу")) {
- holder.serviceCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- ServiceControlAddFragment sfrg = new ServiceControlAddFragment();
- ((AppCompatActivity) context)
- .getSupportFragmentManager()
- .beginTransaction()
- .replace(R.id.rootView, sfrg)
- .addToBackStack(null)
- .commit();
- context = view.getContext();
- }
- });
- setAnimation(holder.itemView, position);
- } else {
- holder.btnGo.setVisibility(View.GONE);
- }
- }
- if(model.getCost() == -1){
- holder.cost.setVisibility(View.GONE);
- }
- else if(model.getCost() == 0){
- // holder.cost.setVisibility(View.VISIBLE);
- // holder.cost.setText("Бесплатно");
- holder.cost.setVisibility(View.GONE);
- holder.cost.setText("");
- }
- else {
- holder.cost.setVisibility(View.VISIBLE);
- holder.cost.setText(Math.round(model.getCost()) + " \u20BD/мес");
- }
- if(mContractModel != null) {
- if (mContractModel.getContractStatusId() == 0 && model.getStatusId() == 1) {
- holder.inactive.setVisibility(View.VISIBLE);
- holder.inactive.setText("");
- } else if (mContractModel.getContractStatusId() == 0 && model.getStatusId() == 0) {
- holder.inactive.setVisibility(View.GONE);
- holder.cost.setVisibility(View.VISIBLE);
- holder.cost.setText("Не активен");
- }else if(mContractModel.getContractStatusId() >=1 && mContractModel.getContractStatusId() <= 6){
- holder.inactive.setVisibility(View.VISIBLE);
- holder.inactive.setText(mContractModel.getContractStatus());
- }else{
- holder.cost.setVisibility(View.VISIBLE);
- holder.cost.setText(model.getStatusTitle());
- holder.inactive.setVisibility(View.GONE);
- }
- }
- if (GlobalVars.isDebug)
- holder.title.setText(model.getTitle() + " " + Utils.MillstoDateString(model.getEndPeriod(), true));
- else
- holder.title.setText(model.getTitle());
- holder.subTitle.setText(model.getSubTitle());
- holder.pic.setImageResource(model.getPicId());
- if (model.getEndPeriod() > 0) {
- if (model.getEndPeriod() < System.currentTimeMillis())
- holder.subTitle.setText("" + Utils.MillstoDateString(model.getEndPeriod(), true));
- else
- holder.subTitle.setText("до " + Utils.MillstoDateString(model.getEndPeriod(), false));
- }
- if(model.getTitleId() == 8) {
- holder.inactive.setVisibility(View.GONE);
- holder.cost.setVisibility(View.GONE);
- holder.btnGo.setVisibility(View.GONE);
- holder.subTitle.setVisibility(View.GONE);
- holder.serviceCard.setBackgroundResource(R.drawable.red_border);
- }
- //old method
- // if (model.getEndPeriod() - System.currentTimeMillis() < 0)
- // holder.inactive.setVisibility(View.VISIBLE);
- // else
- // holder.inactive.setVisibility(View.INVISIBLE);
- //костыли dbg
- //new method
- // ContractModel parent = BaseApp.getRealm().where(ContractModel.class).equalTo("contractID", model.getParentId()).findFirst();
- /* if (parent.getContractType().equals(Constants.CONTRACT_TYPE_OLD) && parent.getContractStatus().toLowerCase().equals("приостановлен")) {
- holder.inactive.setVisibility(View.VISIBLE);
- holder.inactive.setText(parent.getContractStatus());
- }
- if (model.getContractStatus().length() > 0 && !model.getContractStatus().toLowerCase().equals("активен")) {
- holder.inactive.setVisibility(View.VISIBLE);
- holder.inactive.setText(model.getContractStatus());
- }*/
- //
- // holder.inactive.setVisibility(View.VISIBLE);
- // holder.inactive.setText(model.getStatusTitle());
- // if(model.getStatusTitle().equals("")){
- // holder.inactive.setVisibility(View.GONE);
- // }
- // if(model.getStatusId() == 10 || model.getStatusString().equals("Неактивен")) {
- // //holder.inactive.setTextColor(BaseApp.getInstance().getResources().getColor(R.color.un_red2));
- // }
- if(mContractModel != null) {
- if ((mContractModel.getStatusGuest() == 1 || mContractModel.getStatusGuest() == 2) && model.getTitle().equals("Интернет")) {
- holder.serviceCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- ServiceInfoFragment sfrg = new ServiceInfoFragment();
- Bundle bundle = new Bundle();
- //для 6 билинга и ниже
- //гость - не гость
- bundle.putInt("status_guest", mContractModel.getStatusGuest());
- bundle.putInt("contract_id", model.getContractId());
- bundle.putString("billing_id", model.getBiling());
- bundle.putString("contract_title", mContractModel.getContractTitle());
- bundle.putInt("contract_id_cont", mContractModel.getContractID());
- bundle.putString("billing_id_cont", mContractModel.getBillingId());
- bundle.putString("title", model.getTitle());
- bundle.putString("subTitle", model.getSubTitle());
- bundle.putLong("endPeriod", model.getEndPeriod());
- bundle.putFloat("cost", model.getCost());
- bundle.putInt("statusId", model.getStatusId());
- bundle.putString("statusString", holder.inactive.getText().toString());
- bundle.putInt("contractStatusId", mContractModel.getContractStatusId());
- bundle.putString("contractStatus", mContractModel.getContractStatus());
- bundle.putString("statusTitle", model.getStatusTitle());
- bundle.putInt("parentId", model.getParentId());
- bundle.putString("tariff", mContractModel.getContractTariff());
- bundle.putString("cost", mContractModel.getInetCost());
- // bundle.putInt("price", model.get);
- sfrg.setArguments(bundle);
- ((AppCompatActivity) context)
- .getSupportFragmentManager()
- .beginTransaction()
- .replace(R.id.rootView, sfrg)
- .addToBackStack(null)
- .commit();
- context = view.getContext();
- }
- });
- setAnimation(holder.itemView, position);
- } else {
- holder.btnGo.setVisibility(View.GONE);
- }
- if ((mContractModel.getStatusGuest() == 1 || mContractModel.getStatusGuest() == 2) && model.getTitle().equals("Телевидение") && mContractModel.getBillingId().equals("rb")) {
- holder.serviceCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- ServiceInfoFragmentDigitalTV sfrg = new ServiceInfoFragmentDigitalTV();
- Bundle bundle = new Bundle();
- bundle.putInt("contract_id", model.getContractId());
- bundle.putString("billing_id", model.getBiling());
- bundle.putString("title", model.getTitle());
- bundle.putString("subTitle", model.getSubTitle());
- bundle.putLong("endPeriod", model.getEndPeriod());
- bundle.putString("cost", mContractModel.getTvCost());
- bundle.putInt("statusId", model.getStatusId());
- bundle.putString("statusString", holder.inactive.getText().toString());
- bundle.putInt("contractStatusId", mContractModel.getContractStatusId());
- bundle.putString("contractStatus", mContractModel.getContractStatus());
- bundle.putString("statusTitle", model.getStatusTitle());
- bundle.putInt("parentId", model.getParentId());
- sfrg.setArguments(bundle);
- ((AppCompatActivity) context)
- .getSupportFragmentManager()
- .beginTransaction()
- .replace(R.id.rootView, sfrg)
- .addToBackStack(null)
- .commit();
- context = view.getContext();
- }
- });
- setAnimation(holder.itemView, position);
- } else {
- holder.btnGo.setVisibility(View.GONE);
- }
- if ((mContractModel.getStatusGuest() == 1 || mContractModel.getStatusGuest() == 2) && model.getTitle().equals("Видеонаблюдение")) {
- holder.serviceCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- ServiceInfoFragment sfrg = new ServiceInfoFragment();
- Bundle bundle = new Bundle();
- //для 6 билинга и ниже
- //гость - не гость
- bundle.putInt("status_guest", mContractModel.getStatusGuest());
- bundle.putInt("contract_id", model.getContractId());
- bundle.putString("billing_id", model.getBiling());
- bundle.putString("contract_title", mContractModel.getContractTitle());
- bundle.putInt("contract_id_cont", mContractModel.getContractID());
- bundle.putString("billing_id_cont", mContractModel.getBillingId());
- bundle.putString("title", model.getTitle());
- bundle.putString("subTitle", model.getSubTitle());
- bundle.putLong("endPeriod", model.getEndPeriod());
- bundle.putFloat("cost", model.getCost());
- bundle.putInt("statusId", model.getStatusId());
- bundle.putString("statusString", holder.inactive.getText().toString());
- bundle.putInt("contractStatusId", mContractModel.getContractStatusId());
- bundle.putString("contractStatus", mContractModel.getContractStatus());
- bundle.putString("statusTitle", model.getStatusTitle());
- bundle.putInt("parentId", model.getParentId());
- bundle.putString("tariff", mContractModel.getContractTariff());
- bundle.putString("cost", mContractModel.getInetCost());
- // bundle.putInt("price", model.get);
- sfrg.setArguments(bundle);
- ((AppCompatActivity) context)
- .getSupportFragmentManager()
- .beginTransaction()
- .replace(R.id.rootView, sfrg)
- .addToBackStack(null)
- .commit();
- context = view.getContext();
- }
- });
- setAnimation(holder.itemView, position);
- } else {
- holder.btnGo.setVisibility(View.GONE);
- }
- if ((mContractModel.getStatusGuest() == 1 || mContractModel.getStatusGuest() == 2) && model.getTitle().equals("Ufanet TV")) {
- holder.serviceCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- ServiceInfoFragment sfrg = new ServiceInfoFragment();
- Bundle bundle = new Bundle();
- //для 6 билинга и ниже
- //гость - не гость
- bundle.putInt("status_guest", mContractModel.getStatusGuest());
- bundle.putInt("contract_id", model.getContractId());
- bundle.putString("billing_id", model.getBiling());
- bundle.putString("contract_title", mContractModel.getContractTitle());
- bundle.putInt("contract_id_cont", mContractModel.getContractID());
- bundle.putString("billing_id_cont", mContractModel.getBillingId());
- bundle.putString("title", model.getTitle());
- bundle.putString("subTitle", model.getSubTitle());
- bundle.putLong("endPeriod", model.getEndPeriod());
- bundle.putFloat("cost", model.getCost());
- bundle.putInt("statusId", model.getStatusId());
- bundle.putString("statusString", holder.inactive.getText().toString());
- bundle.putInt("contractStatusId", mContractModel.getContractStatusId());
- bundle.putString("contractStatus", mContractModel.getContractStatus());
- bundle.putString("statusTitle", model.getStatusTitle());
- bundle.putInt("parentId", model.getParentId());
- bundle.putString("tariff", mContractModel.getContractTariff());
- bundle.putString("cost", mContractModel.getInetCost());
- // bundle.putInt("price", model.get);
- sfrg.setArguments(bundle);
- ((AppCompatActivity) context)
- .getSupportFragmentManager()
- .beginTransaction()
- .replace(R.id.rootView, sfrg)
- .addToBackStack(null)
- .commit();
- context = view.getContext();
- }
- });
- setAnimation(holder.itemView, position);
- } else {
- holder.btnGo.setVisibility(View.GONE);
- }
- if ((mContractModel.getStatusGuest() == 1 || mContractModel.getStatusGuest() == 2) && model.getTitle().equals("Умный дом")) {
- holder.serviceCard.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- ServiceInfoFragment sfrg = new ServiceInfoFragment();
- Bundle bundle = new Bundle();
- //для 6 билинга и ниже
- //гость - не гость
- bundle.putInt("status_guest", mContractModel.getStatusGuest());
- bundle.putInt("contract_id", model.getContractId());
- bundle.putString("billing_id", model.getBiling());
- bundle.putString("contract_title", mContractModel.getContractTitle());
- bundle.putInt("contract_id_cont", mContractModel.getContractID());
- bundle.putString("billing_id_cont", mContractModel.getBillingId());
- bundle.putString("title", model.getTitle());
- bundle.putString("subTitle", model.getSubTitle());
- bundle.putLong("endPeriod", model.getEndPeriod());
- bundle.putFloat("cost", model.getCost());
- bundle.putInt("statusId", model.getStatusId());
- bundle.putString("statusString", holder.inactive.getText().toString());
- bundle.putInt("contractStatusId", mContractModel.getContractStatusId());
- bundle.putString("contractStatus", mContractModel.getContractStatus());
- bundle.putString("statusTitle", model.getStatusTitle());
- bundle.putInt("parentId", model.getParentId());
- bundle.putString("tariff", mContractModel.getContractTariff());
- bundle.putString("cost", mContractModel.getInetCost());
- // bundle.putInt("price", model.get);
- sfrg.setArguments(bundle);
- ((AppCompatActivity) context)
- .getSupportFragmentManager()
- .beginTransaction()
- .replace(R.id.rootView, sfrg)
- .addToBackStack(null)
- .commit();
- context = view.getContext();
- }
- });
- setAnimation(holder.itemView, position);
- } else {
- holder.btnGo.setVisibility(View.GONE);
- }
- } else {
- }
- }
- @Override
- public int getItemCount() {
- return (null != listData ? listData.size() : 0);
- }
- @Override
- public int getItemViewType(int position) {
- return 1;
- }
- @NonNull
- @Override
- public ContractsFragment.ServicesViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
- LayoutInflater mInflater = LayoutInflater.from(viewGroup.getContext());
- ViewGroup mainGroup = (ViewGroup) mInflater.inflate(R.layout.contract_card_service_grid_item, viewGroup, false);
- ContractsFragment.ServicesViewHolder mainHolder = new ContractsFragment.ServicesViewHolder(mainGroup) {
- @Override
- public String toString() {
- return super.toString();
- }
- };
- return mainHolder;
- }
- private void setAnimation(View viewToAnimate, int position) {
- // If the bound view wasn't previously displayed on screen, it's animated
- if (position > lastPosition) {
- Animation animation = AnimationUtils.loadAnimation(BaseApp.getInstance(), android.R.anim.slide_in_left);
- viewToAnimate.startAnimation(animation);
- lastPosition = position;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement