From f01c957fdbad71ec4b8fa724dd4c2fcd84e166c3 Mon Sep 17 00:00:00 2001 From: Denis Rwelamila Date: Fri, 30 Aug 2019 12:29:45 +0300 Subject: [PATCH 01/13] implement call and refer to facility fab --- .../chw/activity/MalariaProfileActivity.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index 9ac6476864..61a621d118 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -4,17 +4,22 @@ import android.content.Context; import android.content.Intent; import android.support.annotation.NonNull; +import android.view.Gravity; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.LinearLayout; import android.widget.TextView; import org.json.JSONObject; import org.smartregister.chw.R; import org.smartregister.chw.core.contract.FamilyOtherMemberProfileExtendedContract; import org.smartregister.chw.core.contract.FamilyProfileExtendedContract; +import org.smartregister.chw.core.custom_views.CoreFamilyMemberFloatingMenu; import org.smartregister.chw.core.interactor.CoreMalariaProfileInteractor; +import org.smartregister.chw.core.listener.FloatingMenuListener; import org.smartregister.chw.core.utils.CoreConstants; +import org.smartregister.chw.custom_view.FamilyMemberFloatingMenu; import org.smartregister.chw.malaria.activity.BaseMalariaProfileActivity; import org.smartregister.chw.malaria.domain.MemberObject; import org.smartregister.chw.malaria.presenter.BaseMalariaProfilePresenter; @@ -33,6 +38,7 @@ public class MalariaProfileActivity extends BaseMalariaProfileActivity implements FamilyOtherMemberProfileExtendedContract.View, FamilyProfileExtendedContract.PresenterCallBack { private static final String CLIENT = "client"; + private CoreFamilyMemberFloatingMenu familyFloatingMenu; public static void startMalariaActivity(Activity activity, MemberObject memberObject, CommonPersonObjectClient client) { Intent intent = new Intent(activity, MalariaProfileActivity.class); @@ -41,6 +47,23 @@ public static void startMalariaActivity(Activity activity, MemberObject memberOb activity.startActivity(intent); } + @Override + protected void setupViews() { +// super.setupViews(); + + // add floating menu + familyFloatingMenu = new FamilyMemberFloatingMenu(this); + LinearLayout.LayoutParams linearLayoutParams = + new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.MATCH_PARENT); + familyFloatingMenu.setGravity(Gravity.BOTTOM | Gravity.RIGHT); + addContentView(familyFloatingMenu, linearLayoutParams); + familyFloatingMenu.setClickListener( + FloatingMenuListener.getInstance(this, presenter().getFamilyBaseEntityId()) + ); + } + @Override protected void initializePresenter() { showProgressBar(true); From ed6deb1fdcec764d6490a155833ae295fb2a761f Mon Sep 17 00:00:00 2001 From: Denis Rwelamila Date: Fri, 30 Aug 2019 12:43:52 +0300 Subject: [PATCH 02/13] loose setup super call. --- .../smartregister/chw/activity/MalariaProfileActivity.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index 61a621d118..d63952823d 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -38,7 +38,6 @@ public class MalariaProfileActivity extends BaseMalariaProfileActivity implements FamilyOtherMemberProfileExtendedContract.View, FamilyProfileExtendedContract.PresenterCallBack { private static final String CLIENT = "client"; - private CoreFamilyMemberFloatingMenu familyFloatingMenu; public static void startMalariaActivity(Activity activity, MemberObject memberObject, CommonPersonObjectClient client) { Intent intent = new Intent(activity, MalariaProfileActivity.class); @@ -49,10 +48,7 @@ public static void startMalariaActivity(Activity activity, MemberObject memberOb @Override protected void setupViews() { -// super.setupViews(); - - // add floating menu - familyFloatingMenu = new FamilyMemberFloatingMenu(this); + CoreFamilyMemberFloatingMenu familyFloatingMenu = new FamilyMemberFloatingMenu(this); LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, From 216369096ebb3a25e02d953fd8ecc5018525a86e Mon Sep 17 00:00:00 2001 From: Denis Rwelamila Date: Mon, 2 Sep 2019 10:21:54 +0300 Subject: [PATCH 03/13] setup floating action button --- .../custom_views/CoreMalariaFloatingMenu.java | 121 +++++++++++++++++ .../smartregister/chw/core/utils/Utils.java | 8 ++ .../res/layout/view_malaria_floating_menu.xml | 125 ++++++++++++++++++ .../chw/activity/MalariaProfileActivity.java | 65 ++++++--- .../chw/custom_view/MalariaFloatingMenu.java | 16 +++ 5 files changed, 314 insertions(+), 21 deletions(-) create mode 100644 opensrp-chw-core/src/main/java/org/smartregister/chw/core/custom_views/CoreMalariaFloatingMenu.java create mode 100644 opensrp-chw-core/src/main/res/layout/view_malaria_floating_menu.xml create mode 100644 opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java diff --git a/opensrp-chw-core/src/main/java/org/smartregister/chw/core/custom_views/CoreMalariaFloatingMenu.java b/opensrp-chw-core/src/main/java/org/smartregister/chw/core/custom_views/CoreMalariaFloatingMenu.java new file mode 100644 index 0000000000..f7d6e9c9ba --- /dev/null +++ b/opensrp-chw-core/src/main/java/org/smartregister/chw/core/custom_views/CoreMalariaFloatingMenu.java @@ -0,0 +1,121 @@ +package org.smartregister.chw.core.custom_views; + +import android.app.Activity; +import android.content.Context; +import android.support.design.widget.FloatingActionButton; +import android.util.AttributeSet; +import android.view.View; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; + +import org.smartregister.chw.core.R; +import org.smartregister.chw.core.listener.OnClickFloatingMenu; +import org.smartregister.chw.malaria.custom_views.BaseMalariaFloatingMenu; +import org.smartregister.chw.malaria.fragment.BaseMalariaCallDialogFragment; + +import static org.smartregister.chw.core.utils.Utils.redrawWithOption; + +public abstract class CoreMalariaFloatingMenu extends BaseMalariaFloatingMenu { + public FloatingActionButton fab; + private Animation fabOpen; + private Animation fabClose; + private Animation rotateForward; + private Animation rotateBack; + private View callLayout; + private View referLayout; + private RelativeLayout activityMain; + private boolean isFabMenuOpen = false; + private LinearLayout menuBar; + private OnClickFloatingMenu onClickFloatingMenu; + + public CoreMalariaFloatingMenu(Context context, String clientName, String clientPhone, + String clientFamilyHeadName, String clientFamilyHeadPhone) { + super(context, clientName, clientPhone, clientFamilyHeadName, clientFamilyHeadPhone); + } + + public CoreMalariaFloatingMenu(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public void setFloatMenuClickListener(OnClickFloatingMenu onClickFloatingMenu) { + this.onClickFloatingMenu = onClickFloatingMenu; + } + + @Override + protected void initUi() { + inflate(getContext(), R.layout.view_malaria_floating_menu, this); + + fabOpen = AnimationUtils.loadAnimation(getContext(), R.anim.fab_open); + fabClose = AnimationUtils.loadAnimation(getContext(), R.anim.fab_close); + rotateForward = AnimationUtils.loadAnimation(getContext(), R.anim.rotate_forward); + rotateBack = AnimationUtils.loadAnimation(getContext(), R.anim.rotate_back); + + activityMain = findViewById(R.id.activity_main); + menuBar = findViewById(R.id.menu_bar); + + fab = findViewById(R.id.malaria_fab); + fab.setOnClickListener(this); + + callLayout = findViewById(R.id.call_layout); + callLayout.setOnClickListener(this); + callLayout.setClickable(false); + + referLayout = findViewById(R.id.refer_to_facility_layout); + referLayout.setOnClickListener(this); + referLayout.setClickable(false); + + menuBar.setVisibility(GONE); + + } + + @Override + public void onClick(View view) { + onClickFloatingMenu.onClickMenu(view.getId()); + } + + public void animateFAB() { + if (menuBar.getVisibility() == GONE) { + menuBar.setVisibility(VISIBLE); + } + + if (isFabMenuOpen) { + activityMain.setBackgroundResource(R.color.transparent); + fab.startAnimation(rotateBack); + fab.setImageResource(R.drawable.ic_edit_white); + + callLayout.startAnimation(fabClose); + callLayout.setClickable(false); + + referLayout.startAnimation(fabClose); + referLayout.setClickable(false); + isFabMenuOpen = false; + } else { + activityMain.setBackgroundResource(R.color.grey_tranparent_50); + fab.startAnimation(rotateForward); + fab.setImageResource(R.drawable.ic_input_add); + + callLayout.startAnimation(fabOpen); + callLayout.setClickable(true); + + referLayout.startAnimation(fabOpen); + referLayout.setClickable(true); + isFabMenuOpen = true; + } + } + + + public void launchCallWidget() { + BaseMalariaCallDialogFragment.launchDialog((Activity) this.getContext(), getClientName(), + getPhoneNumber(), getFamilyHeadName(), getFamilyHeadPhone()); + } + + public void redraw(boolean hasPhoneNumber) { + redrawWithOption(this, hasPhoneNumber); + } + + public View getCallLayout() { + return callLayout; + } +} diff --git a/opensrp-chw-core/src/main/java/org/smartregister/chw/core/utils/Utils.java b/opensrp-chw-core/src/main/java/org/smartregister/chw/core/utils/Utils.java index 6f8e52d5e1..eb30753679 100644 --- a/opensrp-chw-core/src/main/java/org/smartregister/chw/core/utils/Utils.java +++ b/opensrp-chw-core/src/main/java/org/smartregister/chw/core/utils/Utils.java @@ -46,6 +46,7 @@ import org.smartregister.chw.core.contract.FamilyCallDialogContract; import org.smartregister.chw.core.custom_views.CoreAncFloatingMenu; import org.smartregister.chw.core.custom_views.CoreFamilyMemberFloatingMenu; +import org.smartregister.chw.core.custom_views.CoreMalariaFloatingMenu; import org.smartregister.chw.core.fragment.CopyToClipboardDialog; import org.smartregister.clientandeventmodel.Obs; import org.smartregister.commonregistry.CommonPersonObject; @@ -476,6 +477,7 @@ public static void redrawWithOption(LinearLayout menu, boolean has_phone) { private static void setCallLayoutListener(boolean has_phone, LinearLayout menu) { CoreFamilyMemberFloatingMenu memberFloatingMenu; CoreAncFloatingMenu ancFloatingMenu; + CoreMalariaFloatingMenu coreMalariaFloatingMenu; if (has_phone && menu instanceof CoreFamilyMemberFloatingMenu) { memberFloatingMenu = (CoreFamilyMemberFloatingMenu) menu; memberFloatingMenu.getCallLayout().setOnClickListener(memberFloatingMenu); @@ -488,6 +490,12 @@ private static void setCallLayoutListener(boolean has_phone, LinearLayout menu) } else if (!has_phone && menu instanceof CoreFamilyMemberFloatingMenu) { memberFloatingMenu = (CoreFamilyMemberFloatingMenu) menu; memberFloatingMenu.getCallLayout().setOnClickListener(null); + } else if (has_phone && menu instanceof CoreMalariaFloatingMenu) { + coreMalariaFloatingMenu = (CoreMalariaFloatingMenu) menu; + coreMalariaFloatingMenu.getCallLayout().setOnClickListener(coreMalariaFloatingMenu); + } else if (!has_phone && menu instanceof CoreMalariaFloatingMenu) { + coreMalariaFloatingMenu = (CoreMalariaFloatingMenu) menu; + coreMalariaFloatingMenu.getCallLayout().setOnClickListener(null); } } diff --git a/opensrp-chw-core/src/main/res/layout/view_malaria_floating_menu.xml b/opensrp-chw-core/src/main/res/layout/view_malaria_floating_menu.xml new file mode 100644 index 0000000000..a0e36b8df0 --- /dev/null +++ b/opensrp-chw-core/src/main/res/layout/view_malaria_floating_menu.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index d63952823d..75aa4147dd 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -10,16 +10,17 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toast; +import org.apache.commons.lang3.StringUtils; import org.json.JSONObject; import org.smartregister.chw.R; import org.smartregister.chw.core.contract.FamilyOtherMemberProfileExtendedContract; import org.smartregister.chw.core.contract.FamilyProfileExtendedContract; -import org.smartregister.chw.core.custom_views.CoreFamilyMemberFloatingMenu; import org.smartregister.chw.core.interactor.CoreMalariaProfileInteractor; -import org.smartregister.chw.core.listener.FloatingMenuListener; +import org.smartregister.chw.core.listener.OnClickFloatingMenu; import org.smartregister.chw.core.utils.CoreConstants; -import org.smartregister.chw.custom_view.FamilyMemberFloatingMenu; +import org.smartregister.chw.custom_view.MalariaFloatingMenu; import org.smartregister.chw.malaria.activity.BaseMalariaProfileActivity; import org.smartregister.chw.malaria.domain.MemberObject; import org.smartregister.chw.malaria.presenter.BaseMalariaProfilePresenter; @@ -46,19 +47,6 @@ public static void startMalariaActivity(Activity activity, MemberObject memberOb activity.startActivity(intent); } - @Override - protected void setupViews() { - CoreFamilyMemberFloatingMenu familyFloatingMenu = new FamilyMemberFloatingMenu(this); - LinearLayout.LayoutParams linearLayoutParams = - new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - LinearLayout.LayoutParams.MATCH_PARENT); - familyFloatingMenu.setGravity(Gravity.BOTTOM | Gravity.RIGHT); - addContentView(familyFloatingMenu, linearLayoutParams); - familyFloatingMenu.setClickListener( - FloatingMenuListener.getInstance(this, presenter().getFamilyBaseEntityId()) - ); - } @Override protected void initializePresenter() { @@ -68,11 +56,6 @@ protected void initializePresenter() { profilePresenter.refreshProfileBottom(); } - @Override - protected void onCreation() { - super.onCreation(); - } - @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -276,4 +259,44 @@ public void openFamilyDueServices() { intent.putExtra(CoreConstants.INTENT_KEY.SERVICE_DUE, true); startActivity(intent); } + + private void checkPhoneNumberProvided() { + ((MalariaFloatingMenu) baseMalariaFloatingMenu).redraw(!StringUtils.isBlank(MEMBER_OBJECT.getPhoneNumber()) + || !StringUtils.isBlank(getFamilyHeadPhoneNumber())); + } + + + @Override + public void initializeFloatingMenu() { + baseMalariaFloatingMenu = new MalariaFloatingMenu(this, getClientName(), + MEMBER_OBJECT.getPhoneNumber(), getFamilyHeadName(), getFamilyHeadPhoneNumber()); + + OnClickFloatingMenu onClickFloatingMenu = viewId -> { + switch (viewId) { + case R.id.malaria_fab: + checkPhoneNumberProvided(); + ((MalariaFloatingMenu) baseMalariaFloatingMenu).animateFAB(); + break; + case R.id.call_layout: + ((MalariaFloatingMenu) baseMalariaFloatingMenu).launchCallWidget(); + ((MalariaFloatingMenu) baseMalariaFloatingMenu).animateFAB(); + break; + case R.id.refer_to_facility_layout: + Toast.makeText(this, "Hey", Toast.LENGTH_SHORT).show(); +// ancMemberProfilePresenter().startAncReferralForm(); +// ((AncFloatingMenu) baseAncFloatingMenuloatingMenu).animateFAB(); + break; + default: + Timber.d("Unknown fab action"); + break; + } + + }; + + ((MalariaFloatingMenu) baseMalariaFloatingMenu).setFloatMenuClickListener(onClickFloatingMenu); + baseMalariaFloatingMenu.setGravity(Gravity.BOTTOM | Gravity.END); + LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.MATCH_PARENT); + addContentView(baseMalariaFloatingMenu, linearLayoutParams); + } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java b/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java new file mode 100644 index 0000000000..1e76cf67b9 --- /dev/null +++ b/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java @@ -0,0 +1,16 @@ +package org.smartregister.chw.custom_view; + +import android.content.Context; +import android.util.AttributeSet; + +import org.smartregister.chw.core.custom_views.CoreMalariaFloatingMenu; + +public class MalariaFloatingMenu extends CoreMalariaFloatingMenu { + public MalariaFloatingMenu(Context context, String clientName, String clientPhone, String clientFamilyHeadName, String clientFamilyHeadPhone) { + super(context, clientName, clientPhone, clientFamilyHeadName, clientFamilyHeadPhone); + } + + public MalariaFloatingMenu(Context context, AttributeSet attrs) { + super(context, attrs); + } +} From e74c4e1cb7648f4b3075f3c2a60a2658463c4279 Mon Sep 17 00:00:00 2001 From: Denis Rwelamila Date: Mon, 2 Sep 2019 13:28:41 +0300 Subject: [PATCH 04/13] implement call for fab --- .../smartregister/chw/activity/MalariaProfileActivity.java | 6 +++--- .../chw/model/MalariaRegisterFragmentModel.java | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index 75aa4147dd..4e735d90c0 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -262,14 +262,14 @@ public void openFamilyDueServices() { private void checkPhoneNumberProvided() { ((MalariaFloatingMenu) baseMalariaFloatingMenu).redraw(!StringUtils.isBlank(MEMBER_OBJECT.getPhoneNumber()) - || !StringUtils.isBlank(getFamilyHeadPhoneNumber())); + || !StringUtils.isBlank(MEMBER_OBJECT.getPhoneNumber())); } @Override public void initializeFloatingMenu() { - baseMalariaFloatingMenu = new MalariaFloatingMenu(this, getClientName(), - MEMBER_OBJECT.getPhoneNumber(), getFamilyHeadName(), getFamilyHeadPhoneNumber()); + baseMalariaFloatingMenu = new MalariaFloatingMenu(this, MEMBER_OBJECT.getFirstName(), + MEMBER_OBJECT.getPhoneNumber(), MEMBER_OBJECT.getFamilyName(), MEMBER_OBJECT.getPhoneNumber()); OnClickFloatingMenu onClickFloatingMenu = viewId -> { switch (viewId) { diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java b/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java index 684ee6337e..99a1510290 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java @@ -41,6 +41,7 @@ protected String[] mainColumns(String tableName) { columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.GENDER); columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.UNIQUE_ID); columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.RELATIONAL_ID); + columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.PHONE_NUMBER + " as " + org.smartregister.chw.malaria.util.DBConstants.KEY.PHONE_NUMBER_MALARIA); columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.VILLAGE_TOWN); columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.FAMILY_HEAD); columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.PRIMARY_CAREGIVER); From fd5b3a99a725768348f103478692c6423eadf97f Mon Sep 17 00:00:00 2001 From: Denis Rwelamila Date: Fri, 20 Sep 2019 11:05:51 +0300 Subject: [PATCH 05/13] record anc visit --- .../chw/activity/MalariaProfileActivity.java | 21 +++++++++++++++++-- .../model/MalariaRegisterFragmentModel.java | 6 ++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index ea078e4705..0eef3aca37 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -10,7 +10,6 @@ import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; -import android.widget.Toast; import org.apache.commons.lang3.StringUtils; import org.json.JSONObject; @@ -56,6 +55,16 @@ protected void initializePresenter() { profilePresenter.refreshProfileBottom(); } + @Override + protected void setupViews() { + super.setupViews(); + if (!isAnc(client)) { + textViewRecordAnc.setVisibility(View.GONE); + textViewAncVisitNotDone.setVisibility(View.GONE); + } + + } + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -112,6 +121,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { } } + @NonNull @Override public FamilyOtherMemberActivityPresenter presenter() { @@ -148,6 +158,8 @@ public void onClick(View view) { int id = view.getId(); if (id == R.id.textview_record_malaria) { MalariaFollowUpVisitActivity.startMalariaRegistrationActivity(this, MEMBER_OBJECT.getBaseEntityId()); + } else if (id == R.id.textview_record_anc) { + AncHomeVisitActivity.startMe(this, new org.smartregister.chw.anc.domain.MemberObject(client), false); } } @@ -282,7 +294,7 @@ public void initializeFloatingMenu() { ((MalariaFloatingMenu) baseMalariaFloatingMenu).animateFAB(); break; case R.id.refer_to_facility_layout: - Toast.makeText(this, "Hey", Toast.LENGTH_SHORT).show(); +// Toast.makeText(this, "Hey", Toast.LENGTH_SHORT).show(); // ancMemberProfilePresenter().startAncReferralForm(); // ((AncFloatingMenu) baseAncFloatingMenuloatingMenu).animateFAB(); break; @@ -299,4 +311,9 @@ public void initializeFloatingMenu() { LinearLayout.LayoutParams.MATCH_PARENT); addContentView(baseMalariaFloatingMenu, linearLayoutParams); } + + protected boolean isAnc(CommonPersonObjectClient client) { + org.smartregister.chw.anc.domain.MemberObject memberObject = new org.smartregister.chw.anc.domain.MemberObject(client); + return !memberObject.getDateCreated().trim().equals(""); + } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java b/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java index 99a1510290..87a8142df1 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java @@ -3,6 +3,7 @@ import android.support.annotation.NonNull; import org.smartregister.chw.core.utils.ChildDBConstants; +import org.smartregister.chw.core.utils.CoreConstants; import org.smartregister.chw.malaria.model.BaseMalariaRegisterFragmentModel; import org.smartregister.chw.util.ChwDBConstants; import org.smartregister.chw.util.Constants; @@ -21,6 +22,7 @@ public String mainSelect(@NonNull String tableName, @NonNull String mainConditio queryBuilder.SelectInitiateMainTable(tableName, mainColumns(tableName)); queryBuilder.customJoin("INNER JOIN " + Constants.TABLE_NAME.FAMILY_MEMBER + " ON " + tableName + "." + DBConstants.KEY.BASE_ENTITY_ID + " = " + Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.BASE_ENTITY_ID + " COLLATE NOCASE "); queryBuilder.customJoin("INNER JOIN " + Constants.TABLE_NAME.FAMILY + " ON " + Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.RELATIONAL_ID + " = " + Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.BASE_ENTITY_ID); + queryBuilder.customJoin("LEFT JOIN " + CoreConstants.TABLE_NAME.ANC_MEMBER_LOG + " ON " + tableName + "." + DBConstants.KEY.BASE_ENTITY_ID + " = " + CoreConstants.TABLE_NAME.ANC_MEMBER_LOG + "." + DBConstants.KEY.BASE_ENTITY_ID + " COLLATE NOCASE "); queryBuilder.customJoin("LEFT JOIN " + Constants.TABLE_NAME.ANC_MEMBER + " ON " + tableName + "." + DBConstants.KEY.BASE_ENTITY_ID + " = " + Constants.TABLE_NAME.ANC_MEMBER + "." + DBConstants.KEY.BASE_ENTITY_ID + " COLLATE NOCASE "); queryBuilder.customJoin("LEFT JOIN " + Constants.TABLE_NAME.PNC_MEMBER + " ON " + tableName + "." + DBConstants.KEY.BASE_ENTITY_ID + " = " + Constants.TABLE_NAME.PNC_MEMBER + "." + DBConstants.KEY.BASE_ENTITY_ID + " COLLATE NOCASE "); return queryBuilder.mainCondition(mainCondition); @@ -47,6 +49,10 @@ protected String[] mainColumns(String tableName) { columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.PRIMARY_CAREGIVER); columnList.add(Constants.TABLE_NAME.PNC_MEMBER + "." + ChwDBConstants.DELIVERY_DATE); columnList.add(Constants.TABLE_NAME.ANC_MEMBER + "." + org.smartregister.chw.anc.util.DBConstants.KEY.PHONE_NUMBER); + columnList.add(Constants.TABLE_NAME.ANC_MEMBER + "." + org.smartregister.chw.core.utils.ChwDBConstants.LMP); + columnList.add(CoreConstants.TABLE_NAME.ANC_MEMBER_LOG + "." + org.smartregister.chw.anc.util.DBConstants.KEY.DATE_CREATED); + columnList.add(Constants.TABLE_NAME.ANC_MEMBER + "." + org.smartregister.chw.anc.util.DBConstants.KEY.CONFIRMED_VISITS); + columnList.add(Constants.TABLE_NAME.ANC_MEMBER + "." + org.smartregister.chw.anc.util.DBConstants.KEY.LAST_HOME_VISIT); columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.FIRST_NAME + " as " + org.smartregister.chw.anc.util.DBConstants.KEY.FAMILY_NAME); return columnList.toArray(new String[columnList.size()]); } From afe0727d0caefe31c253115ffa6dee8273575e7e Mon Sep 17 00:00:00 2001 From: Denis Rwelamila Date: Fri, 20 Sep 2019 11:48:34 +0300 Subject: [PATCH 06/13] record visit not done --- .../activity/AncMemberProfileActivity.java | 1 + .../chw/activity/MalariaProfileActivity.java | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java index 265ab547a6..d619f3f130 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/AncMemberProfileActivity.java @@ -198,6 +198,7 @@ public void startFormActivity(JSONObject formJson) { JsonFormUtils.REQUEST_CODE_GET_JSON); } + @Override public void initializeFloatingMenu() { baseAncFloatingMenu = new AncFloatingMenu(this, getAncWomanName(), diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index 0eef3aca37..41bd1b29e7 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -11,9 +11,14 @@ import android.widget.LinearLayout; import android.widget.TextView; +import com.google.gson.Gson; + import org.apache.commons.lang3.StringUtils; +import org.json.JSONException; import org.json.JSONObject; import org.smartregister.chw.R; +import org.smartregister.chw.anc.domain.Visit; +import org.smartregister.chw.anc.util.NCUtils; import org.smartregister.chw.core.contract.FamilyOtherMemberProfileExtendedContract; import org.smartregister.chw.core.contract.FamilyProfileExtendedContract; import org.smartregister.chw.core.interactor.CoreMalariaProfileInteractor; @@ -25,6 +30,7 @@ import org.smartregister.chw.malaria.presenter.BaseMalariaProfilePresenter; import org.smartregister.chw.malaria.util.Constants; import org.smartregister.chw.presenter.FamilyOtherMemberActivityPresenter; +import org.smartregister.clientandeventmodel.Event; import org.smartregister.commonregistry.CommonPersonObject; import org.smartregister.commonregistry.CommonPersonObjectClient; import org.smartregister.commonregistry.CommonRepository; @@ -34,6 +40,7 @@ import timber.log.Timber; +import static org.smartregister.chw.anc.AncLibrary.getInstance; import static org.smartregister.chw.core.utils.Utils.malariaToAncMember; public class MalariaProfileActivity extends BaseMalariaProfileActivity implements FamilyOtherMemberProfileExtendedContract.View, FamilyProfileExtendedContract.PresenterCallBack { @@ -160,6 +167,22 @@ public void onClick(View view) { MalariaFollowUpVisitActivity.startMalariaRegistrationActivity(this, MEMBER_OBJECT.getBaseEntityId()); } else if (id == R.id.textview_record_anc) { AncHomeVisitActivity.startMe(this, new org.smartregister.chw.anc.domain.MemberObject(client), false); + } else if (id == R.id.textview_anc_visit_not_done) { + saveVisit(org.smartregister.chw.anc.util.Constants.EVENT_TYPE.ANC_HOME_VISIT_NOT_DONE); + textViewAncVisitNotDone.setVisibility(View.GONE); + textViewRecordAnc.setVisibility(View.GONE); + textViewAncVisitNotDone.setVisibility(View.GONE); + } + } + + private void saveVisit(String eventType) { + try { + Event event = org.smartregister.chw.anc.util.JsonFormUtils.createUntaggedEvent(MEMBER_OBJECT.getBaseEntityId(), eventType, org.smartregister.chw.anc.util.Constants.TABLES.ANC_MEMBERS); + Visit visit = NCUtils.eventToVisit(event, org.smartregister.chw.anc.util.JsonFormUtils.generateRandomUUIDString()); + visit.setPreProcessedJson(new Gson().toJson(event)); + getInstance().visitRepository().addVisit(visit); + } catch (JSONException e) { + Timber.e(e); } } From d32e2f7a8026419e9fe1f9ede2d8ab7a50e645a3 Mon Sep 17 00:00:00 2001 From: Denis Rwelamila Date: Fri, 20 Sep 2019 12:30:47 +0300 Subject: [PATCH 07/13] undo visit not done --- .../chw/activity/MalariaProfileActivity.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index 41bd1b29e7..81a505697b 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -44,7 +44,7 @@ import static org.smartregister.chw.core.utils.Utils.malariaToAncMember; public class MalariaProfileActivity extends BaseMalariaProfileActivity implements FamilyOtherMemberProfileExtendedContract.View, FamilyProfileExtendedContract.PresenterCallBack { - private static final String CLIENT = "client"; + private static final String CLIENT = "CLIENT"; public static void startMalariaActivity(Activity activity, MemberObject memberObject, CommonPersonObjectClient client) { Intent intent = new Intent(activity, MalariaProfileActivity.class); @@ -168,10 +168,10 @@ public void onClick(View view) { } else if (id == R.id.textview_record_anc) { AncHomeVisitActivity.startMe(this, new org.smartregister.chw.anc.domain.MemberObject(client), false); } else if (id == R.id.textview_anc_visit_not_done) { + setAncVisitNotDoneView(true); saveVisit(org.smartregister.chw.anc.util.Constants.EVENT_TYPE.ANC_HOME_VISIT_NOT_DONE); - textViewAncVisitNotDone.setVisibility(View.GONE); - textViewRecordAnc.setVisibility(View.GONE); - textViewAncVisitNotDone.setVisibility(View.GONE); + } else if (id == R.id.textview_undo) { + setAncVisitNotDoneView(false); } } @@ -186,6 +186,19 @@ private void saveVisit(String eventType) { } } + private void setAncVisitNotDoneView(Boolean bool) { + if (bool) { + visitStatus.setVisibility(View.VISIBLE); + textViewRecordAnc.setVisibility(View.GONE); + textViewAncVisitNotDone.setVisibility(View.GONE); + } else { + visitStatus.setVisibility(View.GONE); + textViewRecordAnc.setVisibility(View.VISIBLE); + textViewAncVisitNotDone.setVisibility(View.VISIBLE); + + } + } + @Override public void setProfileDetailThree(String s) { //implement From d587f55d04dcbd8cf0d27a796ccca39571122529 Mon Sep 17 00:00:00 2001 From: Denis Rwelamila Date: Mon, 23 Sep 2019 11:41:38 +0300 Subject: [PATCH 08/13] show profile image if exists --- .../chw/activity/MalariaProfileActivity.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index 81a505697b..e673c38bd7 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -9,7 +9,6 @@ import android.view.MenuItem; import android.view.View; import android.widget.LinearLayout; -import android.widget.TextView; import com.google.gson.Gson; @@ -65,6 +64,7 @@ protected void initializePresenter() { @Override protected void setupViews() { super.setupViews(); + setProfileImage(MEMBER_OBJECT.getBaseEntityId(), null); if (!isAnc(client)) { textViewRecordAnc.setVisibility(View.GONE); textViewAncVisitNotDone.setVisibility(View.GONE); @@ -137,26 +137,23 @@ public FamilyOtherMemberActivityPresenter presenter() { } @Override - public void setProfileImage(String s, String s1) { - //implement + public void setProfileImage(String baseEntityId, String s1) { + imageRenderHelper.refreshProfileImage(baseEntityId, imageView, R.mipmap.ic_member); } @Override public void setProfileName(@NonNull String s) { - TextView textView = findViewById(org.smartregister.malaria.R.id.textview_name); - textView.setText(s); + textViewName.setText(s); } @Override public void setProfileDetailOne(@NonNull String s) { - TextView textView = findViewById(org.smartregister.malaria.R.id.textview_gender); - textView.setText(s); + textViewGender.setText(s); } @Override public void setProfileDetailTwo(@NonNull String s) { - TextView textView = findViewById(org.smartregister.malaria.R.id.textview_address); - textView.setText(s); + textViewLocation.setText(s); } @Override From c73fed95e4c38c6604b93307cf735c06163c2ea5 Mon Sep 17 00:00:00 2001 From: Denis R Date: Tue, 8 Oct 2019 10:37:47 +0300 Subject: [PATCH 09/13] implement call and refer --- .../chw/activity/MalariaProfileActivity.java | 44 +++++++++++++++++++ .../chw/custom_view/MalariaFloatingMenu.java | 16 +++++++ .../model/MalariaRegisterFragmentModel.java | 1 + .../chw/provider/ChwRegisterProvider.java | 6 +-- 4 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index 647600ce7d..9b9b5789be 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -4,17 +4,23 @@ import android.content.Context; import android.content.Intent; import android.support.annotation.NonNull; +import android.view.Gravity; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toast; +import org.apache.commons.lang3.StringUtils; import org.json.JSONObject; import org.smartregister.chw.R; import org.smartregister.chw.core.contract.FamilyOtherMemberProfileExtendedContract; import org.smartregister.chw.core.contract.FamilyProfileExtendedContract; import org.smartregister.chw.core.interactor.CoreMalariaProfileInteractor; +import org.smartregister.chw.core.listener.OnClickFloatingMenu; import org.smartregister.chw.core.utils.CoreConstants; +import org.smartregister.chw.custom_view.MalariaFloatingMenu; import org.smartregister.chw.malaria.activity.BaseMalariaProfileActivity; import org.smartregister.chw.malaria.domain.MemberObject; import org.smartregister.chw.malaria.presenter.BaseMalariaProfilePresenter; @@ -257,4 +263,42 @@ public void openFamilyDueServices() { intent.putExtra(CoreConstants.INTENT_KEY.SERVICE_DUE, true); startActivity(intent); } + + private void checkPhoneNumberProvided() { + ((MalariaFloatingMenu) baseMalariaFloatingMenu).redraw(!StringUtils.isBlank(MEMBER_OBJECT.getPhoneNumber()) + || !StringUtils.isBlank(MEMBER_OBJECT.getPhoneNumber())); + } + + + @Override + public void initializeFloatingMenu() { + baseMalariaFloatingMenu = new MalariaFloatingMenu(this, MEMBER_OBJECT.getFirstName(), + MEMBER_OBJECT.getPhoneNumber(), MEMBER_OBJECT.getFamilyName(), MEMBER_OBJECT.getPhoneNumber()); + + OnClickFloatingMenu onClickFloatingMenu = viewId -> { + switch (viewId) { + case R.id.malaria_fab: + checkPhoneNumberProvided(); + ((MalariaFloatingMenu) baseMalariaFloatingMenu).animateFAB(); + break; + case R.id.call_layout: + ((MalariaFloatingMenu) baseMalariaFloatingMenu).launchCallWidget(); + ((MalariaFloatingMenu) baseMalariaFloatingMenu).animateFAB(); + break; + case R.id.refer_to_facility_layout: + Toast.makeText(this, "Refer", Toast.LENGTH_SHORT).show(); + break; + default: + Timber.d("Unknown fab action"); + break; + } + + }; + + ((MalariaFloatingMenu) baseMalariaFloatingMenu).setFloatMenuClickListener(onClickFloatingMenu); + baseMalariaFloatingMenu.setGravity(Gravity.BOTTOM | Gravity.END); + LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.MATCH_PARENT); + addContentView(baseMalariaFloatingMenu, linearLayoutParams); + } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java b/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java new file mode 100644 index 0000000000..1e76cf67b9 --- /dev/null +++ b/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java @@ -0,0 +1,16 @@ +package org.smartregister.chw.custom_view; + +import android.content.Context; +import android.util.AttributeSet; + +import org.smartregister.chw.core.custom_views.CoreMalariaFloatingMenu; + +public class MalariaFloatingMenu extends CoreMalariaFloatingMenu { + public MalariaFloatingMenu(Context context, String clientName, String clientPhone, String clientFamilyHeadName, String clientFamilyHeadPhone) { + super(context, clientName, clientPhone, clientFamilyHeadName, clientFamilyHeadPhone); + } + + public MalariaFloatingMenu(Context context, AttributeSet attrs) { + super(context, attrs); + } +} diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java b/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java index 684ee6337e..a84c9db79e 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java @@ -46,6 +46,7 @@ protected String[] mainColumns(String tableName) { columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.PRIMARY_CAREGIVER); columnList.add(Constants.TABLE_NAME.PNC_MEMBER + "." + ChwDBConstants.DELIVERY_DATE); columnList.add(Constants.TABLE_NAME.ANC_MEMBER + "." + org.smartregister.chw.anc.util.DBConstants.KEY.PHONE_NUMBER); + columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.PHONE_NUMBER + " as " + org.smartregister.chw.malaria.util.DBConstants.KEY.PHONE_NUMBER_MALARIA); columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.FIRST_NAME + " as " + org.smartregister.chw.anc.util.DBConstants.KEY.FAMILY_NAME); return columnList.toArray(new String[columnList.size()]); } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwRegisterProvider.java b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwRegisterProvider.java index ad624ecfba..60f70c04c8 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwRegisterProvider.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/provider/ChwRegisterProvider.java @@ -163,8 +163,8 @@ private UpdateAsyncTask(Context context, RegisterViewHolder viewHolder, String f @Override protected Void doInBackground(Void... params) { list = getChildren(familyBaseEntityId); - ancWomanCount = ChwApplication.ancRegisterRepository().getAncPncWomenCount(familyBaseEntityId, CoreConstants.TABLE_NAME.ANC_MEMBER); - pncWomanCount = ChwApplication.ancRegisterRepository().getAncPncWomenCount(familyBaseEntityId, CoreConstants.TABLE_NAME.PNC_MEMBER); +// ancWomanCount = ChwApplication.ancRegisterRepository().getAncPncWomenCount(familyBaseEntityId, CoreConstants.TABLE_NAME.ANC_MEMBER); +// pncWomanCount = ChwApplication.ancRegisterRepository().getAncPncWomenCount(familyBaseEntityId, CoreConstants.TABLE_NAME.PNC_MEMBER); malariaCount = ChwApplication.malariaRegisterRepository().getMalariaCount(familyBaseEntityId, CoreConstants.TABLE_NAME.PNC_MEMBER); childVisit = mergeChildVisits(retrieveChildVisitList(rules, list)); @@ -180,4 +180,4 @@ protected void onPostExecute(Void param) { updateDueColumn(context, viewHolder, childVisit); } } -} +} \ No newline at end of file From 7c1b3603ade99e5935476f0e0c6448e5efaf6dbf Mon Sep 17 00:00:00 2001 From: Denis R Date: Tue, 8 Oct 2019 11:28:35 +0300 Subject: [PATCH 10/13] malaria profile with more than one visit --- .../org/smartregister/chw/activity/MalariaProfileActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index e673c38bd7..de5cadf829 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -163,7 +163,7 @@ public void onClick(View view) { if (id == R.id.textview_record_malaria) { MalariaFollowUpVisitActivity.startMalariaRegistrationActivity(this, MEMBER_OBJECT.getBaseEntityId()); } else if (id == R.id.textview_record_anc) { - AncHomeVisitActivity.startMe(this, new org.smartregister.chw.anc.domain.MemberObject(client), false); + AncHomeVisitActivity.startMe(this, MEMBER_OBJECT.getBaseEntityId(), false); } else if (id == R.id.textview_anc_visit_not_done) { setAncVisitNotDoneView(true); saveVisit(org.smartregister.chw.anc.util.Constants.EVENT_TYPE.ANC_HOME_VISIT_NOT_DONE); From 0dac5da2e96391cd49686ed1d5086ea2f53330d2 Mon Sep 17 00:00:00 2001 From: ladleo Date: Tue, 29 Oct 2019 09:43:03 +0300 Subject: [PATCH 11/13] update malariafloatingmenu with member object --- opensrp-chw/build.gradle | 2 +- .../chw/activity/MalariaProfileActivity.java | 3 +-- .../chw/custom_view/MalariaFloatingMenu.java | 10 +++------- .../chw/model/MalariaRegisterFragmentModel.java | 3 +++ 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/opensrp-chw/build.gradle b/opensrp-chw/build.gradle index c5b600a7f6..d8158226d7 100644 --- a/opensrp-chw/build.gradle +++ b/opensrp-chw/build.gradle @@ -220,7 +220,7 @@ android { } dependencies { - implementation ('org.smartregister:opensrp-client-chw-core:1.0.11-SNAPSHOT@aar'){ + implementation ('org.smartregister:opensrp-client-chw-core:1.0.13-SNAPSHOT@aar'){ transitive = true } implementation 'com.android.support:appcompat-v7:28.0.0' diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index 9b9b5789be..d12846dc17 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -272,8 +272,7 @@ private void checkPhoneNumberProvided() { @Override public void initializeFloatingMenu() { - baseMalariaFloatingMenu = new MalariaFloatingMenu(this, MEMBER_OBJECT.getFirstName(), - MEMBER_OBJECT.getPhoneNumber(), MEMBER_OBJECT.getFamilyName(), MEMBER_OBJECT.getPhoneNumber()); + baseMalariaFloatingMenu = new MalariaFloatingMenu(this, MEMBER_OBJECT); OnClickFloatingMenu onClickFloatingMenu = viewId -> { switch (viewId) { diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java b/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java index 1e76cf67b9..5ad8574063 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java @@ -1,16 +1,12 @@ package org.smartregister.chw.custom_view; import android.content.Context; -import android.util.AttributeSet; import org.smartregister.chw.core.custom_views.CoreMalariaFloatingMenu; +import org.smartregister.chw.malaria.domain.MemberObject; public class MalariaFloatingMenu extends CoreMalariaFloatingMenu { - public MalariaFloatingMenu(Context context, String clientName, String clientPhone, String clientFamilyHeadName, String clientFamilyHeadPhone) { - super(context, clientName, clientPhone, clientFamilyHeadName, clientFamilyHeadPhone); - } - - public MalariaFloatingMenu(Context context, AttributeSet attrs) { - super(context, attrs); + public MalariaFloatingMenu(Context context, MemberObject memberObject) { + super(context, memberObject); } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java b/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java index a84c9db79e..cddd58c8cf 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/model/MalariaRegisterFragmentModel.java @@ -46,6 +46,9 @@ protected String[] mainColumns(String tableName) { columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.PRIMARY_CAREGIVER); columnList.add(Constants.TABLE_NAME.PNC_MEMBER + "." + ChwDBConstants.DELIVERY_DATE); columnList.add(Constants.TABLE_NAME.ANC_MEMBER + "." + org.smartregister.chw.anc.util.DBConstants.KEY.PHONE_NUMBER); + columnList.add(Constants.TABLE_NAME.ANC_MEMBER + "." + ChwDBConstants.IS_CLOSED + " as " + org.smartregister.chw.malaria.util.DBConstants.KEY.ANC_IS_CLOSED); + columnList.add(Constants.TABLE_NAME.ANC_MEMBER + "." + org.smartregister.chw.malaria.util.DBConstants.KEY.GEST_AGE); + columnList.add(Constants.TABLE_NAME.PNC_MEMBER + "." + ChwDBConstants.IS_CLOSED + " as " + org.smartregister.chw.malaria.util.DBConstants.KEY.PNC_IS_CLOSED); columnList.add(Constants.TABLE_NAME.FAMILY_MEMBER + "." + DBConstants.KEY.PHONE_NUMBER + " as " + org.smartregister.chw.malaria.util.DBConstants.KEY.PHONE_NUMBER_MALARIA); columnList.add(Constants.TABLE_NAME.FAMILY + "." + DBConstants.KEY.FIRST_NAME + " as " + org.smartregister.chw.anc.util.DBConstants.KEY.FAMILY_NAME); return columnList.toArray(new String[columnList.size()]); From 65cc0293dd40825226524391d3cdbb86ce854bff Mon Sep 17 00:00:00 2001 From: ladleo Date: Fri, 1 Nov 2019 11:31:48 +0300 Subject: [PATCH 12/13] anc condition --- .../chw/activity/MalariaProfileActivity.java | 62 ++++--------------- 1 file changed, 11 insertions(+), 51 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index 3a6fc03816..343dfbc23f 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -9,14 +9,12 @@ import android.view.MenuItem; import android.view.View; import android.widget.LinearLayout; -import android.widget.LinearLayout; import android.widget.Toast; import com.google.gson.Gson; import org.apache.commons.lang3.StringUtils; import org.json.JSONException; -import org.apache.commons.lang3.StringUtils; import org.json.JSONObject; import org.smartregister.chw.R; import org.smartregister.chw.anc.domain.Visit; @@ -24,7 +22,6 @@ import org.smartregister.chw.core.contract.FamilyOtherMemberProfileExtendedContract; import org.smartregister.chw.core.contract.FamilyProfileExtendedContract; import org.smartregister.chw.core.dao.AncDao; -import org.smartregister.chw.core.dao.ChildDao; import org.smartregister.chw.core.dao.PNCDao; import org.smartregister.chw.core.interactor.CoreMalariaProfileInteractor; import org.smartregister.chw.core.listener.OnClickFloatingMenu; @@ -51,7 +48,6 @@ import timber.log.Timber; import static org.smartregister.chw.anc.AncLibrary.getInstance; -import static org.smartregister.chw.core.utils.Utils.malariaToAncMember; public class MalariaProfileActivity extends BaseMalariaProfileActivity implements FamilyOtherMemberProfileExtendedContract.View, FamilyProfileExtendedContract.PresenterCallBack { private static final String CLIENT = "CLIENT"; @@ -76,9 +72,9 @@ protected void initializePresenter() { protected void setupViews() { super.setupViews(); setProfileImage(MEMBER_OBJECT.getBaseEntityId(), null); - if (!isAnc(client)) { - textViewRecordAnc.setVisibility(View.GONE); - textViewAncVisitNotDone.setVisibility(View.GONE); + if (isAnc(MEMBER_OBJECT)) { + textViewRecordAnc.setVisibility(View.VISIBLE); + visitStatus.setVisibility(View.VISIBLE); } } @@ -175,7 +171,7 @@ public void onClick(View view) { MalariaFollowUpVisitActivity.startMalariaRegistrationActivity(this, MEMBER_OBJECT.getBaseEntityId()); } else if (id == R.id.textview_record_anc) { AncHomeVisitActivity.startMe(this, MEMBER_OBJECT.getBaseEntityId(), false); - } else if (id == R.id.textview_anc_visit_not_done) { + } else if (id == R.id.textview_record_anc_not_done) { setAncVisitNotDoneView(true); saveVisit(org.smartregister.chw.anc.util.Constants.EVENT_TYPE.ANC_HOME_VISIT_NOT_DONE); } else if (id == R.id.textview_undo) { @@ -198,11 +194,11 @@ private void setAncVisitNotDoneView(Boolean bool) { if (bool) { visitStatus.setVisibility(View.VISIBLE); textViewRecordAnc.setVisibility(View.GONE); - textViewAncVisitNotDone.setVisibility(View.GONE); + visitStatus.setVisibility(View.GONE); } else { visitStatus.setVisibility(View.GONE); textViewRecordAnc.setVisibility(View.VISIBLE); - textViewAncVisitNotDone.setVisibility(View.VISIBLE); + visitStatus.setVisibility(View.VISIBLE); } } @@ -314,9 +310,9 @@ public MemberType(org.smartregister.chw.anc.domain.MemberObject memberObject, St type = CoreConstants.TABLE_NAME.ANC_MEMBER; } else if (PNCDao.isPNCMember(memberObject.getBaseEntityId())) { type = CoreConstants.TABLE_NAME.PNC_MEMBER; - } else if (ChildDao.isChild(memberObject.getBaseEntityId())) { - type = CoreConstants.TABLE_NAME.CHILD; - } + }// else if (ChildDao.isChild(memberObject.getBaseEntityId())) { + // type = CoreConstants.TABLE_NAME.CHILD; + //} MemberType memberType = new MemberType(memberObject, type); e.onNext(memberType); @@ -419,43 +415,7 @@ public void initializeFloatingMenu() { } - - @Override - public void initializeFloatingMenu() { - baseMalariaFloatingMenu = new MalariaFloatingMenu(this, MEMBER_OBJECT.getFirstName(), - MEMBER_OBJECT.getPhoneNumber(), MEMBER_OBJECT.getFamilyName(), MEMBER_OBJECT.getPhoneNumber()); - - OnClickFloatingMenu onClickFloatingMenu = viewId -> { - switch (viewId) { - case R.id.malaria_fab: - checkPhoneNumberProvided(); - ((MalariaFloatingMenu) baseMalariaFloatingMenu).animateFAB(); - break; - case R.id.call_layout: - ((MalariaFloatingMenu) baseMalariaFloatingMenu).launchCallWidget(); - ((MalariaFloatingMenu) baseMalariaFloatingMenu).animateFAB(); - break; - case R.id.refer_to_facility_layout: -// Toast.makeText(this, "Hey", Toast.LENGTH_SHORT).show(); -// ancMemberProfilePresenter().startAncReferralForm(); -// ((AncFloatingMenu) baseAncFloatingMenuloatingMenu).animateFAB(); - break; - default: - Timber.d("Unknown fab action"); - break; - } - - }; - - ((MalariaFloatingMenu) baseMalariaFloatingMenu).setFloatMenuClickListener(onClickFloatingMenu); - baseMalariaFloatingMenu.setGravity(Gravity.BOTTOM | Gravity.END); - LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, - LinearLayout.LayoutParams.MATCH_PARENT); - addContentView(baseMalariaFloatingMenu, linearLayoutParams); - } - - protected boolean isAnc(CommonPersonObjectClient client) { - org.smartregister.chw.anc.domain.MemberObject memberObject = new org.smartregister.chw.anc.domain.MemberObject(client); - return !memberObject.getDateCreated().trim().equals(""); + protected boolean isAnc(MemberObject memberObject) { + return !memberObject.getAncIsClosed() && memberObject.getGestAge() != null && !memberObject.getGestAge().trim().equals(""); } } From 0c138900b867c25172da6aa3212f16811aeaf198 Mon Sep 17 00:00:00 2001 From: ladleo Date: Fri, 1 Nov 2019 11:31:48 +0300 Subject: [PATCH 13/13] anc condition --- .../chw/activity/MalariaProfileActivity.java | 62 ++++--------------- .../chw/custom_view/MalariaFloatingMenu.java | 4 +- 2 files changed, 13 insertions(+), 53 deletions(-) diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java index 3a6fc03816..343dfbc23f 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/activity/MalariaProfileActivity.java @@ -9,14 +9,12 @@ import android.view.MenuItem; import android.view.View; import android.widget.LinearLayout; -import android.widget.LinearLayout; import android.widget.Toast; import com.google.gson.Gson; import org.apache.commons.lang3.StringUtils; import org.json.JSONException; -import org.apache.commons.lang3.StringUtils; import org.json.JSONObject; import org.smartregister.chw.R; import org.smartregister.chw.anc.domain.Visit; @@ -24,7 +22,6 @@ import org.smartregister.chw.core.contract.FamilyOtherMemberProfileExtendedContract; import org.smartregister.chw.core.contract.FamilyProfileExtendedContract; import org.smartregister.chw.core.dao.AncDao; -import org.smartregister.chw.core.dao.ChildDao; import org.smartregister.chw.core.dao.PNCDao; import org.smartregister.chw.core.interactor.CoreMalariaProfileInteractor; import org.smartregister.chw.core.listener.OnClickFloatingMenu; @@ -51,7 +48,6 @@ import timber.log.Timber; import static org.smartregister.chw.anc.AncLibrary.getInstance; -import static org.smartregister.chw.core.utils.Utils.malariaToAncMember; public class MalariaProfileActivity extends BaseMalariaProfileActivity implements FamilyOtherMemberProfileExtendedContract.View, FamilyProfileExtendedContract.PresenterCallBack { private static final String CLIENT = "CLIENT"; @@ -76,9 +72,9 @@ protected void initializePresenter() { protected void setupViews() { super.setupViews(); setProfileImage(MEMBER_OBJECT.getBaseEntityId(), null); - if (!isAnc(client)) { - textViewRecordAnc.setVisibility(View.GONE); - textViewAncVisitNotDone.setVisibility(View.GONE); + if (isAnc(MEMBER_OBJECT)) { + textViewRecordAnc.setVisibility(View.VISIBLE); + visitStatus.setVisibility(View.VISIBLE); } } @@ -175,7 +171,7 @@ public void onClick(View view) { MalariaFollowUpVisitActivity.startMalariaRegistrationActivity(this, MEMBER_OBJECT.getBaseEntityId()); } else if (id == R.id.textview_record_anc) { AncHomeVisitActivity.startMe(this, MEMBER_OBJECT.getBaseEntityId(), false); - } else if (id == R.id.textview_anc_visit_not_done) { + } else if (id == R.id.textview_record_anc_not_done) { setAncVisitNotDoneView(true); saveVisit(org.smartregister.chw.anc.util.Constants.EVENT_TYPE.ANC_HOME_VISIT_NOT_DONE); } else if (id == R.id.textview_undo) { @@ -198,11 +194,11 @@ private void setAncVisitNotDoneView(Boolean bool) { if (bool) { visitStatus.setVisibility(View.VISIBLE); textViewRecordAnc.setVisibility(View.GONE); - textViewAncVisitNotDone.setVisibility(View.GONE); + visitStatus.setVisibility(View.GONE); } else { visitStatus.setVisibility(View.GONE); textViewRecordAnc.setVisibility(View.VISIBLE); - textViewAncVisitNotDone.setVisibility(View.VISIBLE); + visitStatus.setVisibility(View.VISIBLE); } } @@ -314,9 +310,9 @@ public MemberType(org.smartregister.chw.anc.domain.MemberObject memberObject, St type = CoreConstants.TABLE_NAME.ANC_MEMBER; } else if (PNCDao.isPNCMember(memberObject.getBaseEntityId())) { type = CoreConstants.TABLE_NAME.PNC_MEMBER; - } else if (ChildDao.isChild(memberObject.getBaseEntityId())) { - type = CoreConstants.TABLE_NAME.CHILD; - } + }// else if (ChildDao.isChild(memberObject.getBaseEntityId())) { + // type = CoreConstants.TABLE_NAME.CHILD; + //} MemberType memberType = new MemberType(memberObject, type); e.onNext(memberType); @@ -419,43 +415,7 @@ public void initializeFloatingMenu() { } - - @Override - public void initializeFloatingMenu() { - baseMalariaFloatingMenu = new MalariaFloatingMenu(this, MEMBER_OBJECT.getFirstName(), - MEMBER_OBJECT.getPhoneNumber(), MEMBER_OBJECT.getFamilyName(), MEMBER_OBJECT.getPhoneNumber()); - - OnClickFloatingMenu onClickFloatingMenu = viewId -> { - switch (viewId) { - case R.id.malaria_fab: - checkPhoneNumberProvided(); - ((MalariaFloatingMenu) baseMalariaFloatingMenu).animateFAB(); - break; - case R.id.call_layout: - ((MalariaFloatingMenu) baseMalariaFloatingMenu).launchCallWidget(); - ((MalariaFloatingMenu) baseMalariaFloatingMenu).animateFAB(); - break; - case R.id.refer_to_facility_layout: -// Toast.makeText(this, "Hey", Toast.LENGTH_SHORT).show(); -// ancMemberProfilePresenter().startAncReferralForm(); -// ((AncFloatingMenu) baseAncFloatingMenuloatingMenu).animateFAB(); - break; - default: - Timber.d("Unknown fab action"); - break; - } - - }; - - ((MalariaFloatingMenu) baseMalariaFloatingMenu).setFloatMenuClickListener(onClickFloatingMenu); - baseMalariaFloatingMenu.setGravity(Gravity.BOTTOM | Gravity.END); - LinearLayout.LayoutParams linearLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, - LinearLayout.LayoutParams.MATCH_PARENT); - addContentView(baseMalariaFloatingMenu, linearLayoutParams); - } - - protected boolean isAnc(CommonPersonObjectClient client) { - org.smartregister.chw.anc.domain.MemberObject memberObject = new org.smartregister.chw.anc.domain.MemberObject(client); - return !memberObject.getDateCreated().trim().equals(""); + protected boolean isAnc(MemberObject memberObject) { + return !memberObject.getAncIsClosed() && memberObject.getGestAge() != null && !memberObject.getGestAge().trim().equals(""); } } diff --git a/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java b/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java index 5ad8574063..7858c2dfb3 100644 --- a/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java +++ b/opensrp-chw/src/main/java/org/smartregister/chw/custom_view/MalariaFloatingMenu.java @@ -6,7 +6,7 @@ import org.smartregister.chw.malaria.domain.MemberObject; public class MalariaFloatingMenu extends CoreMalariaFloatingMenu { - public MalariaFloatingMenu(Context context, MemberObject memberObject) { - super(context, memberObject); + public MalariaFloatingMenu(Context context, MemberObject MEMBER_OBJECT) { + super(context, MEMBER_OBJECT); } }