Browse Source

Animation fixes

master
preyearegmi 6 years ago
parent
commit
54ee87a778
  1. 101
      app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/payoutmode/PayoutModeSendMoneyFragment.java

101
app/src/main/java/com/gmeremit/online/gmeremittance_native/sendmoneyV2/view/payoutmode/PayoutModeSendMoneyFragment.java

@ -176,19 +176,18 @@ public class PayoutModeSendMoneyFragment extends BaseFragment implements SendMon
} }
public static void expand(final View v,Runnable onAnimationEndTask) {
public static void expand(final View v, Runnable onAnimationEndTask) {
v.measure(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); v.measure(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
final int targetHeight = v.getMeasuredHeight(); final int targetHeight = v.getMeasuredHeight();
v.getLayoutParams().height = 1; v.getLayoutParams().height = 1;
v.setVisibility(View.VISIBLE); v.setVisibility(View.VISIBLE);
Animation a = new Animation()
{
Animation a = new Animation() {
@Override @Override
protected void applyTransformation(float interpolatedTime, Transformation t) { protected void applyTransformation(float interpolatedTime, Transformation t) {
v.getLayoutParams().height = interpolatedTime == 1 v.getLayoutParams().height = interpolatedTime == 1
? ViewGroup.LayoutParams.WRAP_CONTENT ? ViewGroup.LayoutParams.WRAP_CONTENT
: (int)(targetHeight * interpolatedTime);
: (int) (targetHeight * interpolatedTime);
v.requestLayout(); v.requestLayout();
} }
@ -198,7 +197,8 @@ public class PayoutModeSendMoneyFragment extends BaseFragment implements SendMon
} }
}; };
a.setDuration((int)(targetHeight / v.getContext().getResources().getDisplayMetrics().density));
// a.setDuration((int) (targetHeight / v.getContext().getResources().getDisplayMetrics().density));
a.setDuration(400);
a.setAnimationListener(new Animation.AnimationListener() { a.setAnimationListener(new Animation.AnimationListener() {
@Override @Override
public void onAnimationStart(Animation animation) { public void onAnimationStart(Animation animation) {
@ -207,7 +207,7 @@ public class PayoutModeSendMoneyFragment extends BaseFragment implements SendMon
@Override @Override
public void onAnimationEnd(Animation animation) { public void onAnimationEnd(Animation animation) {
if(onAnimationEndTask!=null)
if (onAnimationEndTask != null)
onAnimationEndTask.run(); onAnimationEndTask.run();
} }
@ -219,17 +219,16 @@ public class PayoutModeSendMoneyFragment extends BaseFragment implements SendMon
v.startAnimation(a); v.startAnimation(a);
} }
public static void collapse(final View v,Runnable onAnimationEndTask) {
public static void collapse(final View v, Runnable onAnimationEndTask) {
final int initialHeight = v.getMeasuredHeight(); final int initialHeight = v.getMeasuredHeight();
Animation a = new Animation()
{
Animation a = new Animation() {
@Override @Override
protected void applyTransformation(float interpolatedTime, Transformation t) { protected void applyTransformation(float interpolatedTime, Transformation t) {
if(interpolatedTime == 1){
if (interpolatedTime == 1) {
v.setVisibility(View.GONE); v.setVisibility(View.GONE);
}else{
v.getLayoutParams().height = initialHeight - (int)(initialHeight * interpolatedTime);
} else {
v.getLayoutParams().height = initialHeight - (int) (initialHeight * interpolatedTime);
v.requestLayout(); v.requestLayout();
} }
} }
@ -240,7 +239,7 @@ public class PayoutModeSendMoneyFragment extends BaseFragment implements SendMon
} }
}; };
a.setDuration((int)(initialHeight / v.getContext().getResources().getDisplayMetrics().density));
a.setDuration((int) (initialHeight / v.getContext().getResources().getDisplayMetrics().density));
a.setAnimationListener(new Animation.AnimationListener() { a.setAnimationListener(new Animation.AnimationListener() {
@Override @Override
public void onAnimationStart(Animation animation) { public void onAnimationStart(Animation animation) {
@ -249,7 +248,7 @@ public class PayoutModeSendMoneyFragment extends BaseFragment implements SendMon
@Override @Override
public void onAnimationEnd(Animation animation) { public void onAnimationEnd(Animation animation) {
if(onAnimationEndTask!=null)
if (onAnimationEndTask != null)
onAnimationEndTask.run(); onAnimationEndTask.run();
} }
@ -264,63 +263,56 @@ public class PayoutModeSendMoneyFragment extends BaseFragment implements SendMon
/** /**
* Orchestrates transaltion animation for corresponding view * Orchestrates transaltion animation for corresponding view
* clearData is performed according to the animation * clearData is performed according to the animation
*
* @param action * @param action
*/ */
private void showBankSelectView(boolean action) { private void showBankSelectView(boolean action) {
if (action) { if (action) {
if (branchListContainer.getVisibility() != View.GONE)
branchListContainer.setVisibility(View.GONE);
if (accountViewContainer.getVisibility() != View.GONE)
accountViewContainer.setVisibility(View.GONE);
clearBankData(); clearBankData();
clearBranchData(); clearBranchData();
clearAccounData(); clearAccounData();
if(bankDetailContainer.getVisibility()==View.GONE)
expand(bankDetailContainer,()->{
bankDetailContainer.setVisibility(View.VISIBLE);
if (bankListContainer.getVisibility() != View.VISIBLE) {
bankListContainer.setVisibility(View.INVISIBLE);
bankListContainer.setTranslationY(-bankListContainer.getHeight());
bankListContainer.setVisibility(View.VISIBLE);
ViewCompat.animate(bankListContainer).translationY(0).setInterpolator(interpolator).setDuration(400);
}
});
if (bankDetailContainer.getVisibility() == View.GONE)
expand(bankDetailContainer, () -> {
bankDetailContainer.setVisibility(View.VISIBLE);
if (bankListContainer.getVisibility() != View.VISIBLE) {
bankListContainer.setVisibility(View.INVISIBLE);
bankListContainer.setTranslationY(-bankListContainer.getHeight());
bankListContainer.setVisibility(View.VISIBLE);
ViewCompat.animate(bankListContainer).translationY(0).setInterpolator(interpolator).setDuration(400);
}
});
} else { } else {
if (bankListContainer.getVisibility() == View.VISIBLE) { if (bankListContainer.getVisibility() == View.VISIBLE) {
ViewCompat.animate(bankListContainer).translationY(-bankListContainer.getHeight()).setInterpolator(interpolator).setDuration(400).setListener(new ViewPropertyAnimatorListenerAdapter() {
@Override
public void onAnimationEnd(View view) {
super.onAnimationEnd(view);
if (bankDetailContainer.getVisibility() == View.VISIBLE)
collapse(bankDetailContainer, () -> {
bankDetailContainer.setVisibility(View.GONE);
if (branchListContainer.getVisibility() != View.GONE)
branchListContainer.setVisibility(View.GONE);
if (accountViewContainer.getVisibility() != View.GONE)
accountViewContainer.setVisibility(View.GONE);
if(bankListContainer.getVisibility()!=View.GONE)
bankListContainer.setVisibility(View.GONE);
clearBankData();
clearBranchData();
clearAccounData();
});
if(bankDetailContainer.getVisibility()==View.VISIBLE)
collapse(bankDetailContainer,()->{bankDetailContainer.setVisibility(View.GONE);
clearBankData();
clearBranchData();
clearAccounData();
});
else
{
clearBankData();
clearBranchData();
clearAccounData();
}
bankListContainer.setVisibility(View.INVISIBLE);
bankListContainer.setTranslationY(bankListContainer.getHeight());
ViewCompat.animate(bankListContainer).setListener(null);
}
});
}
else
{
} else {
clearBankData(); clearBankData();
clearBranchData(); clearBranchData();
clearAccounData(); clearAccounData();
} }
} }
branchListContainer.setVisibility(View.GONE);
accountViewContainer.setVisibility(View.GONE);
} }
private void showBranchSelectView(boolean action) { private void showBranchSelectView(boolean action) {
@ -380,7 +372,7 @@ public class PayoutModeSendMoneyFragment extends BaseFragment implements SendMon
private void clearBranchData() { private void clearBranchData() {
ed_branch.setText(""); ed_branch.setText("");
this.selectedBranch=null;
this.selectedBranch = null;
} }
private void clearAccounData() { private void clearAccounData() {
@ -442,8 +434,7 @@ public class PayoutModeSendMoneyFragment extends BaseFragment implements SendMon
public void onBankSelected(BankList selectedBankFromList) { public void onBankSelected(BankList selectedBankFromList) {
if (payoutModeBankListingDialog != null) if (payoutModeBankListingDialog != null)
payoutModeBankListingDialog.dismiss(); payoutModeBankListingDialog.dismiss();
if(this.selectedBank!=null&&!selectedBankFromList.getId().equalsIgnoreCase(this.selectedBank.getId()))
{
if (this.selectedBank != null && !selectedBankFromList.getId().equalsIgnoreCase(this.selectedBank.getId())) {
clearBranchData(); clearBranchData();
clearAccounData(); clearAccounData();
} }

Loading…
Cancel
Save