Browse Source

Other option handled for recipient add/edit fields

new_design
Preyea Regmi 4 years ago
parent
commit
a9a7b82add
  1. BIN
      .idea/caches/build_file_checksums.ser
  2. 5
      .idea/modules.xml
  3. 5
      app/src/main/java/com/swifttech/remit/android/features/recipientmanagement/model/recipientaddeditV3/dynamicvalidation/DropDownDTO.java
  4. 29
      app/src/main/java/com/swifttech/remit/android/features/recipientmanagement/presenter/recipientaddeditV3/RecipientAddEditBaseV3Presenter.java
  5. 3
      app/src/main/java/com/swifttech/remit/android/features/recipientmanagement/presenter/recipientaddeditV3/RecipientAddV3ContractInterface.java
  6. 106
      app/src/main/java/com/swifttech/remit/android/features/recipientmanagement/view/recipientaddeditV3/AnswerInputDialog.java
  7. 10
      app/src/main/java/com/swifttech/remit/android/features/recipientmanagement/view/recipientaddeditV3/RecipientAddEditV3Activity.java
  8. 2
      app/src/main/res/layout/activity_recipient_add_edit_v3.xml
  9. 30
      app/src/main/res/layout/dialog_answer_input.xml

BIN
.idea/caches/build_file_checksums.ser

5
.idea/modules.xml

@ -4,6 +4,10 @@
<modules>
<module fileurl="file://$PROJECT_DIR$/SpinnerDatePickerLib-release/SpinnerDatePickerLib-release.iml" filepath="$PROJECT_DIR$/SpinnerDatePickerLib-release/SpinnerDatePickerLib-release.iml" />
<module fileurl="file://$PROJECT_DIR$/Swift-remitandroid.iml" filepath="$PROJECT_DIR$/Swift-remitandroid.iml" group="remitandroid" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/SpinnerDatePickerLib-release/Swift-remitandroid-SpinnerDatePickerLib-release.iml" filepath="$PROJECT_DIR$/.idea/modules/SpinnerDatePickerLib-release/Swift-remitandroid-SpinnerDatePickerLib-release.iml" group="remitandroid/SpinnerDatePickerLib-release" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/Swift-remitandroid-app.iml" filepath="$PROJECT_DIR$/.idea/modules/app/Swift-remitandroid-app.iml" group="remitandroid/app" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/httpclient-release/Swift-remitandroid-httpclient-release.iml" filepath="$PROJECT_DIR$/.idea/modules/httpclient-release/Swift-remitandroid-httpclient-release.iml" group="remitandroid/httpclient-release" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/rxbiometric/Swift-remitandroid-rxbiometric.iml" filepath="$PROJECT_DIR$/.idea/modules/rxbiometric/Swift-remitandroid-rxbiometric.iml" group="remitandroid/rxbiometric" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
<module fileurl="file://$PROJECT_DIR$/httpclient-release/httpclient-release.iml" filepath="$PROJECT_DIR$/httpclient-release/httpclient-release.iml" />
<module fileurl="file://$PROJECT_DIR$/remitandroid.iml" filepath="$PROJECT_DIR$/remitandroid.iml" />
@ -12,6 +16,7 @@
<module fileurl="file://$PROJECT_DIR$/httpclient-release/remitandroid-httpclient-release.iml" filepath="$PROJECT_DIR$/httpclient-release/remitandroid-httpclient-release.iml" group="remitandroid/httpclient-release" />
<module fileurl="file://$PROJECT_DIR$/rxbiometric/remitandroid-rxbiometric.iml" filepath="$PROJECT_DIR$/rxbiometric/remitandroid-rxbiometric.iml" group="remitandroid/rxbiometric" />
<module fileurl="file://$PROJECT_DIR$/rxbiometric/rxbiometric.iml" filepath="$PROJECT_DIR$/rxbiometric/rxbiometric.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/swift1-Swift-remitandroid.iml" filepath="$PROJECT_DIR$/.idea/modules/swift1-Swift-remitandroid.iml" group="remitandroid" />
</modules>
</component>
</project>

5
app/src/main/java/com/swifttech/remit/android/features/recipientmanagement/model/recipientaddeditV3/dynamicvalidation/DropDownDTO.java

@ -38,4 +38,9 @@ public class DropDownDTO {
public String toString() {
return this.text;
}
public static DropDownDTO createFromUserAnswerInput(String answer)
{
return new DropDownDTO(answer,answer);
}
}

29
app/src/main/java/com/swifttech/remit/android/features/recipientmanagement/presenter/recipientaddeditV3/RecipientAddEditBaseV3Presenter.java

@ -10,6 +10,7 @@ import com.swifttech.remit.android.features.recipientmanagement.model.recipienta
import com.swifttech.remit.android.features.recipientmanagement.model.recipientaddeditV3.dynamicvalidation.PayoutProvincesModel;
import com.swifttech.remit.android.features.recipientmanagement.model.recipientaddeditV3.dynamicvalidation.ValidationRuleModel;
import com.swifttech.remit.android.features.recipientmanagement.model.recipientlistingV3.AgentV3Model;
import com.swifttech.remit.android.features.recipientmanagement.view.recipientaddeditV3.AnswerInputDialog;
import com.swifttech.remit.android.features.sendmoney.model.payoutmode.BankBranchDTO;
import java.util.List;
@ -71,9 +72,21 @@ public abstract class RecipientAddEditBaseV3Presenter extends BasePresenter impl
@Override
public void onTransferReasonSelected(DropDownDTO selectedTransferReason) {
validator.updateTransfer(selectedTransferReason);
if(shouldPromptToInputAnswer(selectedTransferReason))
{
view.promptToInputAnswer("Specify your purpose of remit.", new AnswerInputDialog.AnswerInputDialogListener() {
@Override
public void onAnswerSubmitted(String answer) {
validator.updateTransfer(DropDownDTO.createFromUserAnswerInput(answer));
}
});
}
else
validator.updateTransfer(selectedTransferReason);
}
@Override
public void onIDTypeSelected(DropDownDTO selectedIDType) {
validator.updateIdType(selectedIDType);
@ -81,6 +94,16 @@ public abstract class RecipientAddEditBaseV3Presenter extends BasePresenter impl
@Override
public void onRelationSelected(DropDownDTO selectedRelation) {
if(shouldPromptToInputAnswer(selectedRelation))
{
view.promptToInputAnswer("Specify your relation.", new AnswerInputDialog.AnswerInputDialogListener() {
@Override
public void onAnswerSubmitted(String answer) {
validator.updateRelation(DropDownDTO.createFromUserAnswerInput(answer));
}
});
}
else
validator.updateRelation(selectedRelation);
}
@ -230,4 +253,8 @@ public abstract class RecipientAddEditBaseV3Presenter extends BasePresenter impl
public void onNativeCountryServiceSelected(NativeCountry selectedNativeCountry) {
validator.updateNativeCountry(selectedNativeCountry);
}
private boolean shouldPromptToInputAnswer(DropDownDTO optionType) {
return (optionType!=null&&("Others".equalsIgnoreCase(optionType.getText())));
}
}

3
app/src/main/java/com/swifttech/remit/android/features/recipientmanagement/presenter/recipientaddeditV3/RecipientAddV3ContractInterface.java

@ -2,6 +2,7 @@ package com.swifttech.remit.android.features.recipientmanagement.presenter.recip
import com.swifttech.remit.android.base.BaseContractInterface;
import com.swifttech.remit.android.features.recipientmanagement.utils.EditTextConfigurationFactory;
import com.swifttech.remit.android.features.recipientmanagement.view.recipientaddeditV3.AnswerInputDialog;
public interface RecipientAddV3ContractInterface extends BaseContractInterface
{
@ -216,4 +217,6 @@ public interface RecipientAddV3ContractInterface extends BaseContractInterface
void addOptionalAsHintToWidgetNativeCountry(Boolean isOptional);
void promptToInputAnswer(String question, AnswerInputDialog.AnswerInputDialogListener listener);
}

106
app/src/main/java/com/swifttech/remit/android/features/recipientmanagement/view/recipientaddeditV3/AnswerInputDialog.java

@ -0,0 +1,106 @@
package com.swifttech.remit.android.features.recipientmanagement.view.recipientaddeditV3;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.swifttech.remit.android.R;
import com.swifttech.remit.android.RemitApplication;
import com.swifttech.remit.android.base.PrefKeys;
public class AnswerInputDialog extends DialogFragment implements View.OnClickListener {
private TextView questionTextView;
private EditText answerEditText;
private Button submitBtn;
private String questionText;
private AnswerInputDialogListener answerListener;
public void setQuestionText(String questionText) {
this.questionText = questionText;
}
public void setAnswerListener(AnswerInputDialogListener answerListener) {
this.answerListener = answerListener;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new MaterialAlertDialogBuilder(getActivity());
View dialogView = getActivity().getLayoutInflater().inflate(R.layout.dialog_answer_input, null);
questionTextView = dialogView.findViewById(R.id.questionTextView);
answerEditText = dialogView.findViewById(R.id.answerTextView);
submitBtn = dialogView.findViewById(R.id.submitBtn);
if(questionText!=null&&questionText.length()>0)
questionTextView.setText(questionText);
builder.setView(dialogView);
setCancelable(false);
Dialog d = builder.create();
d.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
return d;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onStart() {
super.onStart();
submitBtn.setOnClickListener(this);
}
@Override
public void onStop() {
super.onStop();
submitBtn.setOnClickListener(null);
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.submitBtn:
onSubmitBtnClicked();
break;
}
}
private void onSubmitBtnClicked() {
if (answerEditText.getText().length() > 0) {
if (answerListener != null)
answerListener.onAnswerSubmitted(answerEditText.getText().toString());
dismiss();
} else
Toast.makeText(getActivity(), "Please provide the answer", Toast.LENGTH_SHORT).show();
}
public interface AnswerInputDialogListener {
void onAnswerSubmitted(String answer);
}
}

10
app/src/main/java/com/swifttech/remit/android/features/recipientmanagement/view/recipientaddeditV3/RecipientAddEditV3Activity.java

@ -1127,6 +1127,16 @@ public class RecipientAddEditV3Activity extends BaseActivity implements Recipien
}
@Override
public void promptToInputAnswer(String question, AnswerInputDialog.AnswerInputDialogListener listener) {
AnswerInputDialog answerInputDialog=new AnswerInputDialog();
answerInputDialog.setQuestionText(question);
answerInputDialog.setAnswerListener(listener);
if(!answerInputDialog.isAdded())
answerInputDialog.show(getSupportFragmentManager(),answerInputDialog.getClass().getSimpleName());
}
private void hideViewFromIndexId(int indexId) {
if (indexId < 0)
return;

2
app/src/main/res/layout/activity_recipient_add_edit_v3.xml

@ -459,7 +459,7 @@
<com.swifttech.remit.android.common.view.MTextInputLayout
android:id="@+id/receiverTransferReasonSelectionWrapper"
android:hint="@string/reason_placeholder_text"
android:hint="Select Purpose of Remit"
style="@style/MTextInputLayoutFormDropDown"
app:errorEnabled="true"
>

30
app/src/main/res/layout/dialog_answer_input.xml

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_height="match_parent"
android:padding="@dimen/_8sdp">
<com.swifttech.remit.android.common.view.MTextView
android:layout_marginTop="@dimen/_8sdp"
android:layout_marginBottom="@dimen/_4sdp"
android:id="@+id/questionTextView"
tools:text="This is the first question."
android:textSize="@dimen/_16ssp"
android:textColor="@color/black"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<com.swifttech.remit.android.common.customwidgets.GmeEditText
android:id="@+id/answerTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<com.swifttech.remit.android.common.customwidgets.GmeButton
android:layout_marginTop="@dimen/_8sdp"
android:layout_marginBottom="@dimen/_8sdp"
android:id="@+id/submitBtn"
android:layout_gravity="center_horizontal"
android:text="Submit"
android:enabled="true"
style="@style/MButton"/>
</LinearLayout>
Loading…
Cancel
Save