Preyea Regmi
5 years ago
37 changed files with 1110 additions and 502 deletions
-
32.idea/assetWizardSettings.xml
-
BIN.idea/caches/build_file_checksums.ser
-
4app/build.gradle
-
14app/src/main/java/com/gmeremit/online/gmeremittance_native/accountmanage/model/bankaccountvalidation/BankInfo.java
-
6app/src/main/java/com/gmeremit/online/gmeremittance_native/accountmanage/view/bankaccountvalidation/BankAccountValidationV2Activity.java
-
245app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/WaveProgressBarView.java
-
7app/src/main/java/com/gmeremit/online/gmeremittance_native/customwidgets/banklistingdialog/BankIconMapper.java
-
4app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/adapters/HomeMenuRvAdapterV2.java
-
20app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/model/HomeViewRelatedDTOV2.java
-
7app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/presenter/HomeV2Presenter.java
-
4app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/view/HomeActivityV2.java
-
120app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/view/HomeFragmentV2.java
-
2app/src/main/java/com/gmeremit/online/gmeremittance_native/kycV2/view/view1/KYCView1Fragment.java
-
20app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/adapter/RecipientListingV3RvAdapter.java
-
19app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientlistingV3/RecipientListRVViewholderV3.java
-
97app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientlistingV3/RecipientListingV3Activity.java
-
94app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/view/recipientlistingV3/RecipientModifyPromptDialog.java
-
1app/src/main/java/com/gmeremit/online/gmeremittance_native/user_profile/model/data/UserProfile.java
-
1app/src/main/java/com/gmeremit/online/gmeremittance_native/user_profile/presenter/UserProfilePresenter.java
-
45app/src/main/java/com/gmeremit/online/gmeremittance_native/user_profile/view/ProfileActivity.java
-
BINapp/src/main/res/drawable/ico_bank_kakao.png
-
BINapp/src/main/res/drawable/ico_bank_kbank.png
-
BINapp/src/main/res/drawable/ico_bank_wsb.png
-
9app/src/main/res/drawable/vd_edit.xml
-
1app/src/main/res/layout/activity_exchange_method_v2.xml
-
3app/src/main/res/layout/activity_home_v2.xml
-
452app/src/main/res/layout/activity_profile.xml
-
1app/src/main/res/layout/activity_recipient_add_edit_v3.xml
-
20app/src/main/res/layout/activity_recipient_listing_v3.xml
-
2app/src/main/res/layout/confirm_recharge_payment_bottom_sheet.xml
-
72app/src/main/res/layout/confirm_recipient_modify_bottom_sheet.xml
-
163app/src/main/res/layout/fragment_home_v3.xml
-
2app/src/main/res/layout/fragment_profile.xml
-
28app/src/main/res/layout/nav_drawer_fragment.xml
-
113app/src/main/res/layout/recipient_list_item_v3.xml
-
2app/src/main/res/values-ru/strings.xml
-
2app/src/main/res/values/colors.xml
@ -1,32 +0,0 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<project version="4"> |
|||
<component name="WizardSettings"> |
|||
<option name="children"> |
|||
<map> |
|||
<entry key="vectorWizard"> |
|||
<value> |
|||
<PersistentState> |
|||
<option name="children"> |
|||
<map> |
|||
<entry key="vectorAssetStep"> |
|||
<value> |
|||
<PersistentState> |
|||
<option name="values"> |
|||
<map> |
|||
<entry key="assetSourceType" value="FILE" /> |
|||
<entry key="outputName" value="ic_media" /> |
|||
<entry key="sourceFile" value="$USER_HOME$/Desktop/registration screenshots/ic_media.svg" /> |
|||
</map> |
|||
</option> |
|||
</PersistentState> |
|||
</value> |
|||
</entry> |
|||
</map> |
|||
</option> |
|||
</PersistentState> |
|||
</value> |
|||
</entry> |
|||
</map> |
|||
</option> |
|||
</component> |
|||
</project> |
@ -0,0 +1,245 @@ |
|||
package com.gmeremit.online.gmeremittance_native.customwidgets; |
|||
|
|||
import android.animation.Animator; |
|||
import android.animation.ValueAnimator; |
|||
import android.annotation.SuppressLint; |
|||
import android.content.Context; |
|||
import android.graphics.BlurMaskFilter; |
|||
import android.graphics.Canvas; |
|||
import android.graphics.LinearGradient; |
|||
import android.graphics.Paint; |
|||
import android.graphics.Path; |
|||
import android.graphics.Shader; |
|||
import android.util.AttributeSet; |
|||
import android.view.View; |
|||
import android.view.animation.AccelerateDecelerateInterpolator; |
|||
import android.view.animation.Interpolator; |
|||
|
|||
import androidx.core.content.ContextCompat; |
|||
|
|||
import com.gmeremit.online.gmeremittance_native.R; |
|||
|
|||
public class WaveProgressBarView extends View implements View.OnClickListener { |
|||
|
|||
private Context context; |
|||
|
|||
private Path curve1Path; |
|||
private Paint curve1Paint; |
|||
private Path curve2Path; |
|||
private Paint curve2Paint; |
|||
private float pixelToDen; |
|||
|
|||
private ValueAnimator startingAnimator; |
|||
|
|||
private StartAnimationListener startAnimationListener; |
|||
|
|||
private float omega; |
|||
|
|||
private float ampltiude1; |
|||
private float yOffset1; |
|||
private float verticalPhaseMul1; |
|||
|
|||
private float ampltiude2; |
|||
private float yOffset2; |
|||
private float verticalPhaseMul2; |
|||
|
|||
|
|||
private static final Interpolator stoppinginterpolator = new AccelerateDecelerateInterpolator(); |
|||
private boolean shouldStopAnimation = false; |
|||
|
|||
|
|||
public WaveProgressBarView(Context context) { |
|||
super(context); |
|||
init(context); |
|||
} |
|||
|
|||
public WaveProgressBarView(Context context, AttributeSet attrs) { |
|||
super(context, attrs); |
|||
init(context); |
|||
} |
|||
|
|||
public WaveProgressBarView(Context context, AttributeSet attrs, int defStyleAttr) { |
|||
super(context, attrs, defStyleAttr); |
|||
init(context); |
|||
|
|||
} |
|||
|
|||
@SuppressLint("NewApi") |
|||
public WaveProgressBarView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { |
|||
super(context, attrs, defStyleAttr, defStyleRes); |
|||
init(context); |
|||
} |
|||
|
|||
private void init(Context context) { |
|||
pixelToDen = context.getResources().getDisplayMetrics().density; |
|||
this.context = context; |
|||
startAnimationListener = new StartAnimationListener(); |
|||
setLayerType(View.LAYER_TYPE_SOFTWARE,null); |
|||
|
|||
initCurve1(); |
|||
// initCurve2(); |
|||
setOnClickListener(this); |
|||
// setBackgroundColor(ContextCompat.getColor(context,R.color.colorSelector)); |
|||
} |
|||
|
|||
@SuppressLint("DrawAllocation") |
|||
@Override |
|||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { |
|||
|
|||
int width = View.MeasureSpec.getSize(widthMeasureSpec); |
|||
int height = View.MeasureSpec.getSize(heightMeasureSpec); |
|||
|
|||
height = width / 8; |
|||
|
|||
omega = (float) (2 * Math.PI / width * .8f); |
|||
|
|||
ampltiude1 = .08f * height; |
|||
yOffset1 = height * .8f; |
|||
|
|||
ampltiude2 = ampltiude1; |
|||
yOffset2 = height / 1.5f; |
|||
|
|||
// curve1Paint.setShader(new LinearGradient(0, 0, 0, height, ContextCompat.getColor(context, R.color.white), ContextCompat.getColor(context, R.color.gray1), Shader.TileMode.CLAMP)); |
|||
|
|||
setMeasuredDimension(width, height); |
|||
|
|||
|
|||
} |
|||
|
|||
|
|||
private void initCurve1() { |
|||
verticalPhaseMul1 = 0f; |
|||
curve1Path = new Path(); |
|||
curve1Paint = new Paint(Paint.ANTI_ALIAS_FLAG); |
|||
|
|||
curve1Paint.setStrokeCap(Paint.Cap.ROUND); |
|||
curve1Paint.setColor(ContextCompat.getColor(context, R.color.gray)); |
|||
curve1Paint.setStrokeWidth(pixelToDen * 1); |
|||
curve1Paint.setStyle(Paint.Style.FILL); |
|||
curve1Paint.setMaskFilter(new BlurMaskFilter(context.getResources().getDimension(R.dimen._4sdp), BlurMaskFilter.Blur.OUTER)); |
|||
|
|||
|
|||
} |
|||
|
|||
private void initCurve2() { |
|||
verticalPhaseMul2 = 0f; |
|||
curve2Path = new Path(); |
|||
curve2Paint = new Paint(); |
|||
curve2Paint.setAntiAlias(true); |
|||
curve2Paint.setStrokeCap(Paint.Cap.ROUND); |
|||
curve2Paint.setColor(ContextCompat.getColor(context, R.color.gray)); |
|||
curve2Paint.setStrokeWidth(pixelToDen * 1); |
|||
curve2Paint.setStyle(Paint.Style.FILL); |
|||
} |
|||
|
|||
@Override |
|||
protected void onDraw(Canvas canvas) { |
|||
drawCurve1(canvas); |
|||
|
|||
// drawCurve2(canvas); |
|||
} |
|||
|
|||
|
|||
private void drawCurve1(Canvas canvas) { |
|||
// curve1Paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); |
|||
|
|||
curve1Path.reset(); |
|||
curve1Path.moveTo(0, getTop() + (float) getHeight() *.5f); |
|||
for (int i = 0; i <= getWidth(); i++) { |
|||
float x = (float) i; |
|||
float y = ampltiude1 * (float) Math.sin(omega * x + verticalPhaseMul1) + yOffset1; |
|||
curve1Path.lineTo(x, y); |
|||
} |
|||
|
|||
curve1Path.lineTo(getWidth(), 0); |
|||
curve1Path.lineTo(0, 0); |
|||
curve1Path.close(); |
|||
canvas.drawPath(curve1Path, curve1Paint); |
|||
// curve1Paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER)); |
|||
|
|||
} |
|||
|
|||
private void drawCurve2(Canvas canvas) { |
|||
curve2Path.reset(); |
|||
curve2Path.moveTo(0, getTop() + (float) getHeight() *.75f); |
|||
for (int i = 0; i <= getWidth(); i++) { |
|||
float x = (float) i; |
|||
float y = ampltiude2 * (float) Math.sin(omega * x + verticalPhaseMul2) + yOffset2; |
|||
curve2Path.lineTo(x, y); |
|||
} |
|||
|
|||
curve2Path.lineTo(getWidth(), 0); |
|||
curve2Path.lineTo(0, 0); |
|||
curve2Path.close(); |
|||
canvas.drawPath(curve2Path, curve2Paint); |
|||
} |
|||
|
|||
|
|||
@Override |
|||
public void onClick(View v) { |
|||
} |
|||
|
|||
public void startAnimatingPath() { |
|||
if (startingAnimator == null || !startingAnimator.isRunning()) { |
|||
|
|||
|
|||
verticalPhaseMul1 = 0f; |
|||
startingAnimator = ValueAnimator.ofFloat(0f, 1f); |
|||
|
|||
startingAnimator.setDuration(200); |
|||
|
|||
startingAnimator.setInterpolator(stoppinginterpolator); |
|||
|
|||
startingAnimator.addUpdateListener(startAnimationListener); |
|||
startingAnimator.addListener(startAnimationListener); |
|||
|
|||
|
|||
startingAnimator.setRepeatMode(ValueAnimator.RESTART); |
|||
startingAnimator.setRepeatCount(ValueAnimator.INFINITE); |
|||
|
|||
startingAnimator.start(); |
|||
} |
|||
} |
|||
|
|||
public void stopAnimation() { |
|||
if (startingAnimator != null && startingAnimator.isRunning()) { |
|||
|
|||
shouldStopAnimation = true; |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
public class StartAnimationListener implements ValueAnimator.AnimatorUpdateListener, Animator.AnimatorListener { |
|||
@Override |
|||
public void onAnimationUpdate(ValueAnimator animation) { |
|||
verticalPhaseMul1 = (verticalPhaseMul1 % 6.2831f) + 0.07f; |
|||
verticalPhaseMul2 = (verticalPhaseMul2 % 6.2831f) + 0.12f; |
|||
invalidate(); |
|||
if (shouldStopAnimation && (verticalPhaseMul1 > 6.1F && verticalPhaseMul1 <= 6.28F)) { |
|||
startingAnimator.cancel(); |
|||
shouldStopAnimation = false; |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void onAnimationStart(Animator animation) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void onAnimationEnd(Animator animation) { |
|||
} |
|||
|
|||
@Override |
|||
public void onAnimationCancel(Animator animation) { |
|||
} |
|||
|
|||
@Override |
|||
public void onAnimationRepeat(Animator animation) { |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
} |
@ -0,0 +1,94 @@ |
|||
package com.gmeremit.online.gmeremittance_native.recipientV3.view.recipientlistingV3; |
|||
|
|||
import android.app.Dialog; |
|||
import android.os.Bundle; |
|||
import android.view.LayoutInflater; |
|||
import android.view.View; |
|||
import android.view.ViewGroup; |
|||
import android.widget.TextView; |
|||
|
|||
import androidx.appcompat.app.AlertDialog; |
|||
import androidx.fragment.app.DialogFragment; |
|||
|
|||
import com.gmeremit.online.gmeremittance_native.R; |
|||
import com.gmeremit.online.gmeremittance_native.topup.local.view.topup.ConfirmRechargePaymentBottomSheetDialog; |
|||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment; |
|||
|
|||
import butterknife.BindView; |
|||
import butterknife.ButterKnife; |
|||
import butterknife.OnClick; |
|||
|
|||
public class RecipientModifyPromptDialog extends DialogFragment { |
|||
|
|||
private RecipientModifyPromptDialogListener listener; |
|||
|
|||
|
|||
|
|||
public static RecipientModifyPromptDialog showRecipientModifyPromptDialog(RecipientModifyPromptDialogListener listener) { |
|||
RecipientModifyPromptDialog confirmRechargePaymentBottomSheetDialog = new RecipientModifyPromptDialog(); |
|||
|
|||
confirmRechargePaymentBottomSheetDialog.setListener(listener); |
|||
return confirmRechargePaymentBottomSheetDialog; |
|||
} |
|||
|
|||
private void setListener(RecipientModifyPromptDialogListener listener) { |
|||
this.listener = listener; |
|||
} |
|||
|
|||
// @Override |
|||
// public void onCreate(Bundle savedInstanceState) { |
|||
// super.onCreate(savedInstanceState); |
|||
// setStyle(STYLE_NORMAL, R.style.AppBottomSheetDialogTheme); |
|||
// } |
|||
|
|||
// @Override |
|||
// public View onCreateView(LayoutInflater inflater, ViewGroup container, |
|||
// Bundle savedInstanceState) { |
|||
// // Inflate the layout for this fragment |
|||
// View v = inflater.inflate(R.layout.confirm_recipient_modify_bottom_sheet, container, false); |
|||
// ButterKnife.bind(this, v); |
|||
// |
|||
// return v; |
|||
// |
|||
// } |
|||
|
|||
|
|||
@Override |
|||
public Dialog onCreateDialog(Bundle savedInstanceState) { |
|||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); |
|||
View view = getActivity().getLayoutInflater().inflate(R.layout.confirm_recipient_modify_bottom_sheet, null); |
|||
ButterKnife.bind(this, view); |
|||
builder.setView(view); |
|||
|
|||
|
|||
return builder.create(); |
|||
|
|||
} |
|||
|
|||
@OnClick(R.id.tv_edit) |
|||
public void onEdit() { |
|||
this.dismiss(); |
|||
if (listener != null) |
|||
listener.redirectToRecipientEdit(); |
|||
} |
|||
|
|||
|
|||
@OnClick(R.id.tv_delete) |
|||
public void onDelete() { |
|||
this.dismiss(); |
|||
if (listener != null) |
|||
listener.redirectToRecipientDelete(); |
|||
} |
|||
|
|||
|
|||
@OnClick(R.id.img_close) |
|||
public void closeView() { |
|||
this.dismiss(); |
|||
} |
|||
|
|||
|
|||
public interface RecipientModifyPromptDialogListener { |
|||
void redirectToRecipientEdit(); |
|||
void redirectToRecipientDelete(); |
|||
} |
|||
} |
After Width: 190 | Height: 190 | Size: 6.5 KiB |
After Width: 190 | Height: 190 | Size: 8.9 KiB |
After Width: 100 | Height: 66 | Size: 4.2 KiB |
@ -0,0 +1,9 @@ |
|||
<vector android:height="@dimen/_25sdp" android:viewportHeight="480" |
|||
android:viewportWidth="480" android:width="@dimen/_25sdp" xmlns:android="http://schemas.android.com/apk/res/android"> |
|||
<path android:fillColor="#000000" |
|||
android:pathData="M145,433c-78,-41 -115,-103 -115,-193 0,-128 82,-210 210,-210 128,0 210,82 210,210 0,90 -37,152 -112,191 -47,24 -150,25 -193,2zM343,377c100,-76 85,-238 -29,-292 -52,-25 -132,-17 -177,18 -99,75 -85,235 25,291 50,25 136,17 181,-17z" android:strokeColor="#00000000"/> |
|||
<path android:fillColor="#000000" |
|||
android:pathData="M130,240l0,-110 65,0c36,0 65,4 65,8 0,18 -26,32 -57,32l-33,0 0,70 0,70 70,0 70,0 0,-33c0,-31 14,-57 32,-57 4,0 8,29 8,65l0,65 -110,0 -110,0 0,-110z" android:strokeColor="#00000000"/> |
|||
<path android:fillColor="#000000" |
|||
android:pathData="M180,277c0,-33 116,-149 144,-145 41,6 29,41 -35,106 -67,68 -109,82 -109,39z" android:strokeColor="#00000000"/> |
|||
</vector> |
@ -0,0 +1,72 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|||
xmlns:app="http://schemas.android.com/apk/res-auto" |
|||
android:orientation="vertical" |
|||
android:layout_width="match_parent" |
|||
android:paddingTop="@dimen/_8sdp" |
|||
android:paddingBottom="@dimen/_8sdp" |
|||
android:layout_height="match_parent"> |
|||
<androidx.appcompat.widget.AppCompatImageView |
|||
android:id="@+id/img_close" |
|||
android:visibility="gone" |
|||
android:padding="@dimen/_5sdp" |
|||
android:layout_marginStart="@dimen/_8sdp" |
|||
android:layout_marginBottom="@dimen/_2sdp" |
|||
android:layout_width="@dimen/_22sdp" |
|||
android:layout_height="@dimen/_22sdp" |
|||
app:layout_constraintBottom_toBottomOf="@+id/txt_header" |
|||
app:layout_constraintStart_toStartOf="parent" |
|||
app:layout_constraintTop_toTopOf="@+id/txt_header" |
|||
app:srcCompat="@drawable/vd_close" /> |
|||
<LinearLayout |
|||
android:layout_width="match_parent" |
|||
android:layout_height="wrap_content" |
|||
android:orientation="horizontal" |
|||
android:layout_marginStart="@dimen/_25sdp" |
|||
android:layout_marginEnd="@dimen/_25sdp"> |
|||
<androidx.appcompat.widget.AppCompatImageView |
|||
android:layout_gravity="center_vertical" |
|||
android:layout_width="24dp" |
|||
android:layout_height="24dp" |
|||
|
|||
app:srcCompat="@drawable/vd_edit"/> |
|||
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView |
|||
android:id="@+id/tv_edit" |
|||
android:layout_marginStart="@dimen/_8sdp" |
|||
android:paddingTop="@dimen/_10sdp" |
|||
android:paddingBottom="@dimen/_10sdp" |
|||
android:textColor="@color/black" |
|||
android:textSize="@dimen/_12ssp" |
|||
android:layout_width="match_parent" |
|||
android:gravity="start|bottom" |
|||
android:text="@string/edit_text" |
|||
android:layout_height="wrap_content"/> |
|||
</LinearLayout> |
|||
<LinearLayout |
|||
android:layout_width="match_parent" |
|||
android:layout_height="wrap_content" |
|||
android:orientation="horizontal" |
|||
android:layout_marginStart="@dimen/_25sdp" |
|||
android:layout_marginEnd="@dimen/_25sdp"> |
|||
<androidx.appcompat.widget.AppCompatImageView |
|||
android:layout_gravity="center_vertical" |
|||
android:layout_width="24dp" |
|||
app:tint="@color/black" |
|||
app:tintMode="src_in" |
|||
android:layout_height="24dp" |
|||
app:srcCompat="@drawable/ic_delete"/> |
|||
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeTextView |
|||
android:id="@+id/tv_delete" |
|||
android:layout_marginStart="@dimen/_8sdp" |
|||
android:paddingTop="@dimen/_10sdp" |
|||
android:paddingBottom="@dimen/_10sdp" |
|||
android:textColor="@color/black" |
|||
android:textSize="@dimen/_12ssp" |
|||
android:layout_width="match_parent" |
|||
android:gravity="start|bottom" |
|||
android:text="@string/delete_text" |
|||
android:layout_height="wrap_content"/> |
|||
</LinearLayout> |
|||
|
|||
|
|||
</LinearLayout> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue