Fix customerDetails and Account Section crash
diff --git a/app/src/main/java/org/apache/fineract/ui/online/DashboardActivity.java b/app/src/main/java/org/apache/fineract/ui/online/DashboardActivity.java
index c3c401e..6c00694 100644
--- a/app/src/main/java/org/apache/fineract/ui/online/DashboardActivity.java
+++ b/app/src/main/java/org/apache/fineract/ui/online/DashboardActivity.java
@@ -121,6 +121,7 @@
break;
case R.id.item_accounts:
replaceFragment(AccountsFragment.Companion.newInstance(), true, R.id.container);
+ break;
case R.id.item_teller:
replaceFragment(TellerFragment.Companion.newInstance(), true, R.id.container);
break;
diff --git a/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsPresenter.kt b/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsPresenter.kt
index 870335d..295f2dd 100644
--- a/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsPresenter.kt
+++ b/app/src/main/java/org/apache/fineract/ui/online/accounting/accounts/AccountsPresenter.kt
@@ -19,6 +19,10 @@
val compositeDisposable: CompositeDisposable = CompositeDisposable()
+ override fun attachView(mvpView: AccountContract.View?) {
+ super.attachView(mvpView)
+ }
+
override fun getAccountsPage() {
checkViewAttached()
mvpView.showProgressbar()
@@ -78,5 +82,8 @@
}))
}
-
+ override fun detachView() {
+ super.detachView()
+ compositeDisposable.clear()
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsContract.java b/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsContract.java
index 43076ee..7da80c0 100644
--- a/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsContract.java
+++ b/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsContract.java
@@ -14,7 +14,7 @@
void showUserInterface();
- void savedCustomerDataForSyncing();
+ void showCustomerDetails(Customer customer);
void showContactDetails(ContactDetail contactDetail);
diff --git a/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsFragment.java b/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsFragment.java
index ce85e2e..9336e5f 100644
--- a/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsFragment.java
+++ b/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsFragment.java
@@ -16,6 +16,7 @@
import android.widget.TextView;
import org.apache.fineract.R;
+import org.apache.fineract.data.models.customer.Address;
import org.apache.fineract.data.models.customer.ContactDetail;
import org.apache.fineract.data.models.customer.Customer;
import org.apache.fineract.ui.base.FineractBaseActivity;
@@ -223,8 +224,52 @@
}
@Override
- public void savedCustomerDataForSyncing() {
- getActivity().finish();
+ public void showCustomerDetails(Customer customer) {
+ this.customer = customer;
+ clCustomerDetails.setVisibility(View.VISIBLE);
+ layoutError.setVisibility(View.GONE);
+
+ loadCustomerPortrait();
+
+ tvCurrentStatus.setText(customer.getCurrentState().name());
+ StatusUtils.setCustomerStatusIcon(customer.getCurrentState(),
+ ivCurrentStatus, getActivity());
+
+ Address address = customer.getAddress();
+ StringBuilder addressBuilder = new StringBuilder();
+ addressBuilder
+ .append(address.getStreet()).append(", ")
+ .append(address.getCity()).append(", ");
+ if (address.getPostalCode() != null) {
+ addressBuilder.append(address.getPostalCode());
+ addressBuilder.append(", ");
+ }
+ addressBuilder.append(address.getCountry());
+ tvAddress.setText(addressBuilder);
+
+ if (customer.getContactDetails().size() == 0) {
+ tvNoContactDetailsAvailable.setVisibility(View.VISIBLE);
+ tvEmail.setVisibility(View.GONE);
+ tvPhoneNo.setVisibility(View.GONE);
+ tvMobileNo.setVisibility(View.GONE);
+ } else {
+ for (ContactDetail contactDetail : customer.getContactDetails()) {
+ showContactDetails(contactDetail);
+ }
+ }
+
+ tvBirthDay.setText(customer.getDateOfBirth().getYear() + "-" +
+ customer.getDateOfBirth().getMonth() + "-" + customer.getDateOfBirth().getDay());
+
+ String title = customer.getGivenName() + " " + customer.getSurname();
+ String subtitle;
+ if (customer.getAssignedEmployee() == null) {
+ subtitle = getString(R.string.assigned_employee) + " " +
+ getString(R.string.not_assigned);
+ } else {
+ subtitle = getString(R.string.assigned_employee) + " " + customer.getAssignedEmployee();
+ }
+ showToolbarTitleSubtitle(title, subtitle);
}
@Override
diff --git a/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsPresenter.java b/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsPresenter.java
index 82c95b1..97072ae 100644
--- a/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsPresenter.java
+++ b/app/src/main/java/org/apache/fineract/ui/online/customers/customerdetails/CustomerDetailsPresenter.java
@@ -58,7 +58,7 @@
@Override
public void onNext(Customer customer) {
getMvpView().hideProgressbar();
- getMvpView().savedCustomerDataForSyncing();
+ getMvpView().showCustomerDetails(customer);
}
@Override