blob: 1197564ce65769fff85a7e7c56de5f25e108b9b0 [file] [log] [blame]
package com.mifos.apache.fineract.ui.online.identification.identificationdetails;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.mifos.apache.fineract.R;
import com.mifos.apache.fineract.data.models.customer.identification.Identification;
import com.mifos.apache.fineract.data.models.customer.identification.ScanCard;
import com.mifos.apache.fineract.ui.adapters.IdentificationScanAdapter;
import com.mifos.apache.fineract.ui.base.MifosBaseActivity;
import com.mifos.apache.fineract.ui.base.MifosBaseFragment;
import com.mifos.apache.fineract.utils.ConstantKeys;
import com.mifos.apache.fineract.utils.DateUtils;
import java.util.Calendar;
import java.util.List;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* @author Rajan Maurya
* On 01/08/17.
*/
public class IdentificationDetailsFragment extends MifosBaseFragment
implements IdentificationDetailsContract.View,
IdentificationScanAdapter.OnItemClickListener {
@BindView(R.id.tv_number)
TextView tvNumber;
@BindView(R.id.tv_type)
TextView tvType;
@BindView(R.id.tv_expiration_date)
TextView tvExpirationDate;
@BindView(R.id.tv_issuer)
TextView tvIssuer;
@BindView(R.id.tv_scans_status)
TextView tvScansStatus;
@BindView(R.id.rv_scans_uploaded)
RecyclerView rvScansUploaded;
@BindView(R.id.rl_error)
RelativeLayout rlError;
@BindView(R.id.tv_error)
TextView tvError;
@Inject
IdentificationScanAdapter identificationScanAdapter;
@Inject
IdentificationDetailsPresenter identificationDetailsPresenter;
View rootView;
private String customerIdentifier;
private Identification identificationCard;
public static IdentificationDetailsFragment newInstance(String identifier,
Identification identification) {
IdentificationDetailsFragment fragment = new IdentificationDetailsFragment();
Bundle args = new Bundle();
args.putString(ConstantKeys.CUSTOMER_IDENTIFIER, identifier);
args.putParcelable(ConstantKeys.IDENTIFICATION_CARD, identification);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
customerIdentifier = getArguments().getString(ConstantKeys.CUSTOMER_IDENTIFIER);
identificationCard = getArguments().getParcelable(ConstantKeys.IDENTIFICATION_CARD);
}
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_identification_details, container, false);
((MifosBaseActivity) getActivity()).getActivityComponent().inject(this);
ButterKnife.bind(this, rootView);
identificationDetailsPresenter.attachView(this);
showUserInterface();
return rootView;
}
@OnClick(R.id.iv_retry)
void onRetry() {
identificationDetailsPresenter.fetchIdentificationScanCards(customerIdentifier,
identificationCard.getNumber());
}
@Override
public void onResume() {
super.onResume();
identificationDetailsPresenter.fetchIdentificationScanCards(customerIdentifier,
identificationCard.getNumber());
}
@Override
public void showUserInterface() {
tvNumber.setText(identificationCard.getNumber());
tvIssuer.setText(identificationCard.getIssuer());
tvType.setText(identificationCard.getType());
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, identificationCard.getExpirationDate().getYear());
calendar.set(Calendar.MONTH, identificationCard.getExpirationDate().getMonth() - 1);
calendar.set(Calendar.DAY_OF_MONTH, identificationCard.getExpirationDate().getDay());
tvExpirationDate.setText(DateUtils.convertServerDate(calendar));
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
rvScansUploaded.setLayoutManager(layoutManager);
rvScansUploaded.setHasFixedSize(true);
identificationScanAdapter.setOnItemClickListener(this);
rvScansUploaded.setAdapter(identificationScanAdapter);
}
@Override
public void showScanCards(List<ScanCard> scanCards) {
showRecyclerView(true);
identificationScanAdapter.setScanCards(scanCards);
}
@Override
public void showRecyclerView(boolean status) {
if (status) {
rvScansUploaded.setVisibility(View.VISIBLE);
rlError.setVisibility(View.GONE);
} else {
rvScansUploaded.setVisibility(View.GONE);
rlError.setVisibility(View.VISIBLE);
}
tvScansStatus.setVisibility(View.GONE);
}
@Override
public void showScansStatus(String message) {
showRecyclerView(false);
rlError.getChildAt(0).setVisibility(View.GONE);
tvError.setText(message);
}
@Override
public void showError(String message) {
showRecyclerView(false);
tvError.setText(message);
}
@Override
public void onItemClick(View view, int position) {
}
@Override
public void onItemDelete(View view, int position) {
}
@Override
public void onDestroyView() {
super.onDestroyView();
identificationDetailsPresenter.detachView();
}
}