Skip to content

Commit

Permalink
fix:Setting emptyView if there is no data
Browse files Browse the repository at this point in the history
  • Loading branch information
Manish Kumar authored and therajanmaurya committed Apr 12, 2018
1 parent 476b750 commit d38b381
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 18 deletions.
3 changes: 3 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@ dependencies {
implementation "com.google.zxing:core:$rootProject.zxingcoreVersion"
implementation "me.dm7.barcodescanner:zxing:$rootProject.zxingbarcodescannerVersion"

//sweet error dependency
implementation "com.github.therajanmaurya:Sweet-Error:$rootProject.sweeterrorVersion"

// Unit tests dependencies
testImplementation "junit:junit:$rootProject.jUnitVersion"
testImplementation "org.mockito:mockito-core:$rootProject.mockitoVersion"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public void onComplete() {
public void onError(Throwable e) {
getMvpView().hideProgress();
getMvpView().showError(context
.getString(R.string.error_fetching_beneficiaries));
.getString(R.string.beneficiaries));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.github.therajanmaurya.sweeterror.SweetUIErrorHandler;

import org.mifos.mobilebanking.R;
import org.mifos.mobilebanking.models.beneficary.Beneficiary;
import org.mifos.mobilebanking.presenters.BeneficiaryListPresenter;
Expand All @@ -22,6 +23,7 @@
import org.mifos.mobilebanking.ui.views.BeneficiariesView;
import org.mifos.mobilebanking.utils.Constants;
import org.mifos.mobilebanking.utils.DividerItemDecoration;
import org.mifos.mobilebanking.utils.Network;
import org.mifos.mobilebanking.utils.RecyclerItemClickListener;

import java.util.ArrayList;
Expand All @@ -31,6 +33,7 @@

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

/**
* Created by dilpreet on 14/6/17.
Expand All @@ -48,11 +51,8 @@ public class BeneficiaryListFragment extends BaseFragment implements RecyclerIte
@BindView(R.id.fab_add_beneficiary)
FloatingActionButton fabAddBeneficiary;

@BindView(R.id.view_error)
View viewError;

@BindView(R.id.tv_status)
TextView tvStatus;
@BindView(R.id.layout_error)
View layoutError;

@Inject
BeneficiaryListPresenter beneficiaryListPresenter;
Expand All @@ -62,6 +62,7 @@ public class BeneficiaryListFragment extends BaseFragment implements RecyclerIte

private View rootView;
private List<Beneficiary> beneficiaryList;
private SweetUIErrorHandler sweetUIErrorHandler;

public static BeneficiaryListFragment newInstance() {
BeneficiaryListFragment fragment = new BeneficiaryListFragment();
Expand All @@ -76,6 +77,7 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
((BaseActivity) getActivity()).getActivityComponent().inject(this);
ButterKnife.bind(this, rootView);
setToolbarTitle(getString(R.string.beneficiaries));
sweetUIErrorHandler = new SweetUIErrorHandler(getActivity(), rootView);

showUserInterface();

Expand Down Expand Up @@ -131,13 +133,20 @@ public void onClick(View v) {
});
}


@OnClick(R.id.btn_try_again)
public void retryClicked() {
beneficiaryListPresenter.loadBeneficiaries();
}

/**
* Refreshes {@code beneficiaryList} by calling {@code loadBeneficiaries()}
*/

@Override
public void onRefresh() {
if (viewError.getVisibility() == View.VISIBLE) {
viewError.setVisibility(View.GONE);
if (layoutError.getVisibility() == View.VISIBLE) {
layoutError.setVisibility(View.GONE);
rvBeneficiaries.setVisibility(View.VISIBLE);
}
beneficiaryListPresenter.loadBeneficiaries();
Expand Down Expand Up @@ -165,10 +174,14 @@ public void hideProgress() {
*/
@Override
public void showError(String msg) {
rvBeneficiaries.setVisibility(View.GONE);
viewError.setVisibility(View.VISIBLE);
tvStatus.setText(msg);
Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT).show();

if (!Network.isConnected(getActivity())) {
sweetUIErrorHandler.showSweetNoInternetUI(rvBeneficiaries, layoutError);
} else {
sweetUIErrorHandler.showSweetErrorUI(msg,
rvBeneficiaries, layoutError);
Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT).show();
}
}

/**
Expand All @@ -178,7 +191,11 @@ public void showError(String msg) {
@Override
public void showBeneficiaryList(List<Beneficiary> beneficiaryList) {
this.beneficiaryList = beneficiaryList;
beneficiaryListAdapter.setBeneficiaryList(beneficiaryList);
if (beneficiaryList.size() != 0) {
beneficiaryListAdapter.setBeneficiaryList(beneficiaryList);
} else {
showEmptyBeneficiary();
}
}

@Override
Expand Down Expand Up @@ -206,4 +223,15 @@ public void onDestroyView() {
super.onDestroyView();
beneficiaryListPresenter.detachView();
}

/**
* Shows an error layout when this function is called.
*/
public void showEmptyBeneficiary() {
sweetUIErrorHandler.showSweetEmptyUI(getString(R.string.beneficiary),
getString(R.string.beneficiary),
R.drawable.ic_beneficiaries_48px, rvBeneficiaries, layoutError);
rvBeneficiaries.setVisibility(View.GONE);
}

}
9 changes: 5 additions & 4 deletions app/src/main/res/layout/fragment_beneficiary_list.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@
android:id="@+id/fab_add_beneficiary"
android:clickable="true"/>

<include
layout="@layout/layout_error"
android:visibility="gone"
android:id="@+id/view_error"/>
<include
layout="@layout/layout_sweet_exception_handler"
android:visibility="gone"
android:id="@+id/layout_error"/>


</android.support.design.widget.CoordinatorLayout>
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,6 @@ ext {
zxingbarcodescannerVersion = '1.8.4'
rxjavaVersion = '2.1.9'
rxandroidVersion = '2.0.2'
sweeterrorVersion = '1.0.0'

}

0 comments on commit d38b381

Please sign in to comment.