From dac1469367b30ceb6942377e4b30fa436de2bdee Mon Sep 17 00:00:00 2001 From: Danish Jamal Date: Fri, 4 Dec 2020 20:28:41 +0530 Subject: [PATCH 01/25] onCheckChangedListener added in searchFragment mifosng-android/local.properties deleted --- .../mifos/mifosxdroid/online/search/SearchFragment.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/search/SearchFragment.java b/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/search/SearchFragment.java index f73b04988e6..8def39cfacc 100755 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/search/SearchFragment.java +++ b/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/search/SearchFragment.java @@ -16,6 +16,7 @@ import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.CheckBox; +import android.widget.CompoundButton; import android.widget.EditText; import android.widget.Spinner; import android.widget.Toast; @@ -106,6 +107,12 @@ public void showUserInterface() { rv_search.addOnItemTouchListener(new RecyclerItemClickListener(getActivity(), this)); rv_search.setHasFixedSize(true); rv_search.setAdapter(searchAdapter); + cb_exactMatch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean b) { + onClickSearch(); + } + }); } From 36206de31969a14f36e45f751df4ca3c6aa65e6f Mon Sep 17 00:00:00 2001 From: danishjamal104 Date: Mon, 28 Dec 2020 01:41:28 +0530 Subject: [PATCH 02/25] Paginated the report result in ReportDetailFragment --- .../runreports/report/ReportFragment.java | 42 ++++++++++++++++--- .../views/scrollview/CustomScrollView.java | 36 ++++++++++++++++ .../scrollview/ScrollChangeListener.java | 5 +++ .../res/layout/fragment_client_report.xml | 27 ++++++------ 4 files changed, 92 insertions(+), 18 deletions(-) create mode 100644 mifosng-android/src/main/java/com/mifos/mifosxdroid/views/scrollview/CustomScrollView.java create mode 100644 mifosng-android/src/main/java/com/mifos/mifosxdroid/views/scrollview/ScrollChangeListener.java diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/runreports/report/ReportFragment.java b/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/runreports/report/ReportFragment.java index b897444b1da..f85da81e80c 100644 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/runreports/report/ReportFragment.java +++ b/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/runreports/report/ReportFragment.java @@ -14,17 +14,17 @@ import android.widget.TableRow; import android.widget.TextView; import android.widget.Toast; - import com.mifos.mifosxdroid.R; import com.mifos.mifosxdroid.core.MifosBaseActivity; import com.mifos.mifosxdroid.core.MifosBaseFragment; +import com.mifos.mifosxdroid.views.scrollview.CustomScrollView; +import com.mifos.mifosxdroid.views.scrollview.ScrollChangeListener; import com.mifos.objects.runreports.ColumnHeader; import com.mifos.objects.runreports.DataRow; import com.mifos.objects.runreports.FullParameterListResponse; import com.mifos.utils.Constants; - +import java.util.Date; import javax.inject.Inject; - import butterknife.BindView; import butterknife.ButterKnife; @@ -32,17 +32,24 @@ * Created by Tarun on 05-08-17. */ -public class ReportFragment extends MifosBaseFragment implements ReportMvpView { +public class ReportFragment extends MifosBaseFragment implements ReportMvpView, + ScrollChangeListener { @BindView(R.id.table_report) TableLayout tableReport; + @BindView(R.id.sv_horizontal) + CustomScrollView scrollView; + @Inject ReportPresenter presenter; private View rootView; private FullParameterListResponse report; + private int page = 0; + private int bottom = 0; + public ReportFragment() { } @@ -67,7 +74,7 @@ public View onCreateView(LayoutInflater inflater, ButterKnife.bind(this, rootView); presenter.attachView(this); - setHasOptionsMenu(true); + long time = new Date().getTime(); report = getArguments().getParcelable(Constants.REPORT_NAME); setUpUi(); @@ -77,8 +84,13 @@ public View onCreateView(LayoutInflater inflater, private void setUpUi() { showProgressbar(true); setUpHeading(); + + scrollView.setScrollChangeListener(this); + + if (report.getData().size() > 0) { setUpValues(); + } else { Toast.makeText(getActivity(), getString(R.string.msg_report_empty), Toast.LENGTH_SHORT) .show(); @@ -112,8 +124,10 @@ private void setUpValues() { // For each dataRow, the item in the index i refers to the column // i of the columnHeader list. + int ll = page * 100; + int ul = Math.min(ll + 100, report.getData().size()); - for (DataRow dataRow : report.getData()) { + for (DataRow dataRow : report.getData().subList(ll, ul)) { TableRow row = new TableRow(getContext()); TableRow.LayoutParams rowParams = new TableRow.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); @@ -165,4 +179,20 @@ public void showProgressbar(boolean b) { hideMifosProgressDialog(); } } + + @Override + public void onScrollChanged(int x, int y, int oldx, int oldy) { + View view = scrollView.getChildAt(scrollView.getChildCount() - 1); + int diff = (view.getBottom() - (scrollView.getHeight() + scrollView.getScrollY())); + if (diff == 0) { + if (bottom >= 2) { + bottom = 0; + page++; + Toast.makeText(getContext(), "Loading more", Toast.LENGTH_SHORT).show(); + setUpValues(); + } else { + bottom++; + } + } + } } diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/views/scrollview/CustomScrollView.java b/mifosng-android/src/main/java/com/mifos/mifosxdroid/views/scrollview/CustomScrollView.java new file mode 100644 index 00000000000..ca9684dfa3b --- /dev/null +++ b/mifosng-android/src/main/java/com/mifos/mifosxdroid/views/scrollview/CustomScrollView.java @@ -0,0 +1,36 @@ +package com.mifos.mifosxdroid.views.scrollview; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.ScrollView; + +public class CustomScrollView extends ScrollView { + + private ScrollChangeListener scrollChangeListener; + + + @Override + protected void onScrollChanged(int l, int t, int oldl, int oldt) { + super.onScrollChanged(l, t, oldl, oldt); + if (scrollChangeListener != null) { + scrollChangeListener.onScrollChanged(l, t, oldl, oldt); + } + } + + public void setScrollChangeListener(ScrollChangeListener scrollChangeListener) { + this.scrollChangeListener = scrollChangeListener; + } + + public CustomScrollView(Context context) { + super(context); + } + + public CustomScrollView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public CustomScrollView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + +} diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/views/scrollview/ScrollChangeListener.java b/mifosng-android/src/main/java/com/mifos/mifosxdroid/views/scrollview/ScrollChangeListener.java new file mode 100644 index 00000000000..9a72c5a0d1d --- /dev/null +++ b/mifosng-android/src/main/java/com/mifos/mifosxdroid/views/scrollview/ScrollChangeListener.java @@ -0,0 +1,5 @@ +package com.mifos.mifosxdroid.views.scrollview; + +public interface ScrollChangeListener { + void onScrollChanged(int x, int y, int oldx, int oldy); +} diff --git a/mifosng-android/src/main/res/layout/fragment_client_report.xml b/mifosng-android/src/main/res/layout/fragment_client_report.xml index adc582242a9..70bda4df285 100644 --- a/mifosng-android/src/main/res/layout/fragment_client_report.xml +++ b/mifosng-android/src/main/res/layout/fragment_client_report.xml @@ -2,19 +2,22 @@ - + android:orientation="vertical"> + + - - - + android:layout_height="wrap_content"> + + + - + \ No newline at end of file From 4277de96d6b1558e99a3a7de92c28c8abcffde8d Mon Sep 17 00:00:00 2001 From: danishjamal104 Date: Thu, 31 Dec 2020 11:59:19 +0530 Subject: [PATCH 03/25] Date formatted in readable format in client charges list item --- .../mifos/mifosxdroid/adapters/ChargeNameListAdapter.java | 2 +- .../src/main/java/com/mifos/objects/client/Charges.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/ChargeNameListAdapter.java b/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/ChargeNameListAdapter.java index 0140c88af91..88e3bb8c7c2 100755 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/ChargeNameListAdapter.java +++ b/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/ChargeNameListAdapter.java @@ -59,7 +59,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { ((ViewHolder) holder).tv_charge_amount .setText(pageItems.get(position).getAmount().toString()); ((ViewHolder) holder).tv_charge_duedate - .setText(pageItems.get(position).getDueDate().toString()); + .setText(pageItems.get(position).getFormattedDueDate()); } } diff --git a/mifosng-android/src/main/java/com/mifos/objects/client/Charges.java b/mifosng-android/src/main/java/com/mifos/objects/client/Charges.java index 4993e621bba..7dedb12d880 100755 --- a/mifosng-android/src/main/java/com/mifos/objects/client/Charges.java +++ b/mifosng-android/src/main/java/com/mifos/objects/client/Charges.java @@ -172,6 +172,12 @@ public List getDueDate() { return dueDate; } + public String getFormattedDueDate() { + String pattern = "%s-%s-%s"; + return String.format(pattern, + dueDate.get(0), dueDate.get(1), dueDate.get(2)); + } + public void setDueDate(List dueDate) { this.dueDate = dueDate; } From 3bf46e77653c9b693c8d708f56dbf83e797d16b5 Mon Sep 17 00:00:00 2001 From: Nikunj Garg Date: Sat, 30 Jan 2021 14:38:21 +0530 Subject: [PATCH 04/25] Snackbar added to Search Fragment --- .../com/mifos/mifosxdroid/online/search/SearchFragment.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/search/SearchFragment.java b/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/search/SearchFragment.java index f73b04988e6..cf06a03b34f 100755 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/search/SearchFragment.java +++ b/mifosng-android/src/main/java/com/mifos/mifosxdroid/online/search/SearchFragment.java @@ -131,8 +131,9 @@ public void showSearchedResources(List searchedEntities) { @Override public void showNoResultFound() { - showAlertDialog(getString(R.string.dialog_message), - getString(R.string.no_search_result_found)); + searchedEntities.clear(); + searchAdapter.notifyDataSetChanged(); + Toaster.show(et_search, getString(R.string.no_search_result_found)); } @Override From 86fc8cef7413d18d77d31c6278b659ce5286d251 Mon Sep 17 00:00:00 2001 From: danishjamal104 Date: Sun, 20 Dec 2020 02:29:12 +0530 Subject: [PATCH 05/25] UI redesign of client identifier list item --- .../adapters/IdentifierListAdapter.java | 17 +- .../main/res/layout/row_identifier_list.xml | 203 ++++++++++-------- 2 files changed, 129 insertions(+), 91 deletions(-) diff --git a/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/IdentifierListAdapter.java b/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/IdentifierListAdapter.java index 386a1c29721..6f69703c664 100755 --- a/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/IdentifierListAdapter.java +++ b/mifosng-android/src/main/java/com/mifos/mifosxdroid/adapters/IdentifierListAdapter.java @@ -12,6 +12,7 @@ import android.widget.ImageView; import android.widget.TextView; +import com.mifos.App; import com.mifos.mifosxdroid.R; import com.mifos.objects.noncore.Identifier; @@ -49,8 +50,19 @@ public void onBindViewHolder(final IdentifierListAdapter.ViewHolder holder, int final Identifier identifier = identifiers.get(position); holder.tv_identifier_id.setText(String.valueOf(identifier.getDocumentKey())); - holder.tv_identifier_description.setText(identifier.getDescription()); + String description = identifier.getDescription(); + if (description == null) { + description = "-"; + } + holder.tv_identifier_description.setText(description); holder.tv_identifier_type.setText(identifier.getDocumentType().getName()); + int color; + if (identifier.getStatus().contains("inactive")) { + color = App.getContext().getColor(R.color.red_light); + } else { + color = App.getContext().getColor(R.color.green_light); + } + holder.v_status.setBackgroundColor(color); } public void setIdentifiers(List identifiers) { @@ -86,6 +98,9 @@ public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickL @BindView(R.id.iv_identifier_options) ImageView iv_identifier_options; + @BindView(R.id.v_status) + View v_status; + public ViewHolder(View view) { super(view); ButterKnife.bind(this, view); diff --git a/mifosng-android/src/main/res/layout/row_identifier_list.xml b/mifosng-android/src/main/res/layout/row_identifier_list.xml index 5571bf3eab1..6ab77209fbb 100755 --- a/mifosng-android/src/main/res/layout/row_identifier_list.xml +++ b/mifosng-android/src/main/res/layout/row_identifier_list.xml @@ -7,106 +7,129 @@ + android:paddingLeft="@dimen/default_vertical_padding" + android:paddingRight="@dimen/default_vertical_padding" + android:paddingTop="@dimen/default_vertical_padding"> + app:contentPadding="0dp" + app:cardBackgroundColor="@color/gray_light"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_height="104dp"> + + + + + + + + + + + + + + + + + + + \ No newline at end of file From bcfdc5ad6cbeb2bd30a1f8d1278dbb86ff0f05c7 Mon Sep 17 00:00:00 2001 From: Danish Jamal Date: Thu, 19 Nov 2020 17:02:13 +0530 Subject: [PATCH 06/25] ui changes in client_details fragment. --- .../main/res/drawable/table_row_round_bg.xml | 7 ++ .../res/layout/fragment_client_details.xml | 80 ++++++++++++------- .../layout/view_account_accordion_section.xml | 13 ++- .../src/main/res/values-ca/strings.xml | 3 + .../src/main/res/values-en/strings.xml | 1 + .../src/main/res/values-es/strings.xml | 3 + .../src/main/res/values-fr/strings.xml | 2 + .../src/main/res/values-hi/strings.xml | 1 + .../src/main/res/values-kn/strings.xml | 3 + .../src/main/res/values-sw/strings.xml | 1 + .../src/main/res/values-zh/strings.xml | 1 + .../src/main/res/values/strings.xml | 20 ++--- .../src/main/res/values/styles_linear.xml | 1 + .../src/main/res/values/styles_table.xml | 4 +- .../src/main/res/values/styles_text.xml | 10 ++- 15 files changed, 104 insertions(+), 46 deletions(-) create mode 100644 mifosng-android/src/main/res/drawable/table_row_round_bg.xml mode change 100755 => 100644 mifosng-android/src/main/res/layout/fragment_client_details.xml diff --git a/mifosng-android/src/main/res/drawable/table_row_round_bg.xml b/mifosng-android/src/main/res/drawable/table_row_round_bg.xml new file mode 100644 index 00000000000..c3923a0b734 --- /dev/null +++ b/mifosng-android/src/main/res/drawable/table_row_round_bg.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/mifosng-android/src/main/res/layout/fragment_client_details.xml b/mifosng-android/src/main/res/layout/fragment_client_details.xml old mode 100755 new mode 100644 index 036973b0fa7..7877d2b74f9 --- a/mifosng-android/src/main/res/layout/fragment_client_details.xml +++ b/mifosng-android/src/main/res/layout/fragment_client_details.xml @@ -1,8 +1,8 @@ - @@ -20,10 +20,12 @@ android:layout_marginTop="@dimen/marginItemsInSectionSmall" android:layout_gravity="center"> + + android:layout_gravity="center" + tools:src="@drawable/ic_launcher"/> - - - + + style="@style/TextView.Row.Value" + tools:text="000000325"/> + style="@style/TextView.Row.Value" + tools:text="ID-123"/> + style="@style/TextView.Row.Value" + tools:text="Nov 16, 2016"/> + style="@style/TextView.Row.Value" + tools:text="GROUP AD"/> + style="@style/TextView.Row.Value" + tools:text="1234567890"/> + style="@style/TextView.Row.Value" + tools:text="foodies"/> + + + + + + android:layout_height="wrap_content" /> + android:layout_height="wrap_content" /> + android:layout_height="wrap_content" /> @@ -188,12 +212,12 @@ android:visibility="gone" android:orientation="horizontal"> -