浏览代码

[메인][Bug] 에니메이션 비활성 시 일부 UI 나타나지 않던 버그 수정
- 개발자 모드의 애니메이션 비활성 또는 절전 모드 설정 시 발생
- 이 경우 에니메이션을 실행하면 즉시 완료( end()) 되는 것으로 보여짐

hyodong.min 7 年之前
父节点
当前提交
feec4aaa53

+ 1 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/helper/ActionBarHelper.java

@@ -1,6 +1,5 @@
 package kr.co.zumo.app.lifeplus.helper;
 
-import android.animation.Animator;
 import android.animation.ObjectAnimator;
 import android.app.Activity;
 import android.content.Context;
@@ -223,12 +222,7 @@ public class ActionBarHelper extends Helper {
 
     ObjectAnimator textViewAnimator = ObjectAnimator.ofFloat(toolbar, "translationY", 0f);
     textViewAnimator.setDuration(900);
-    textViewAnimator.addListener(new AnimatorManager.SimpleListener() {
-      @Override
-      public void onAnimationCancel(Animator animation) {
-        toolbar.setTranslationY(0f);
-      }
-    });
+    textViewAnimator.addListener(new AnimatorManager.SimpleListener());
 
     AnimatorManager.getInstance().add(textViewAnimator);
   }

+ 8 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/AnimatorManager.java

@@ -5,6 +5,7 @@ package kr.co.zumo.app.lifeplus.supervisor;
 
 import android.animation.Animator;
 import android.animation.ObjectAnimator;
+import android.support.annotation.CallSuper;
 import android.util.Log;
 
 import java.util.ArrayList;
@@ -45,7 +46,8 @@ public class AnimatorManager {
    */
   public void add(ObjectAnimator animator) {
     if (isCompleted) {
-      Log.i("APP# AnimatorManager | add", "|" + "completed.....");
+      animator.end();
+      Log.i("APP# AnimatorManager | add", "|" + "completed..... " + animator.getTarget());
       return;
     }
     Log.i("APP# AnimatorManager | add", "|" + "animator: ---> " + animator.getTarget());
@@ -115,6 +117,7 @@ public class AnimatorManager {
         if (--countOfAnimator < 1) {
           // completed
           isCompleted = true;
+          Log.e("APP#  AnimatorManager | onAnimationEnd", "|" + "completed------------------------------<<<<");
         }
       }
     });
@@ -149,8 +152,11 @@ public class AnimatorManager {
     @Override
     public void onAnimationEnd(Animator animation) { }
 
+    @CallSuper
     @Override
-    public void onAnimationCancel(Animator animation) { }
+    public void onAnimationCancel(Animator animation) {
+      animation.end();
+    }
 
     @Override
     public void onAnimationRepeat(Animator animation) { }

+ 3 - 15
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainContentsCategoryHolder.java

@@ -3,7 +3,6 @@
  */
 package kr.co.zumo.app.lifeplus.view.screen.main;
 
-import android.animation.Animator;
 import android.animation.ObjectAnimator;
 import android.content.Context;
 import android.os.Parcelable;
@@ -66,19 +65,13 @@ public class MainContentsCategoryHolder extends MainContentsHolder {
     recyclerView = itemView.findViewById(R.id.recycler_view_category);
 
     // 첫 번째 카테고리만 에니메이션 적용
-    if (this.index == 1) {
-
+    if (this.index == 1 && AnimatorManager.getInstance().isCompleted() == false) {
       textView.setTranslationY(100f);
 
       ObjectAnimator textViewAnimator = ObjectAnimator.ofFloat(textView, "translationY", 0f);
       textViewAnimator.setStartDelay(1100);
       textViewAnimator.setDuration(500);
-      textViewAnimator.addListener(new AnimatorManager.SimpleListener() {
-        @Override
-        public void onAnimationCancel(Animator animation) {
-          textView.setTranslationY(0f);
-        }
-      });
+      textViewAnimator.addListener(new AnimatorManager.SimpleListener());
 
       AnimatorManager.getInstance().add(textViewAnimator);
 
@@ -86,12 +79,7 @@ public class MainContentsCategoryHolder extends MainContentsHolder {
 
       ObjectAnimator viewAnimator = ObjectAnimator.ofFloat(recyclerView, "translationY", 0f);
       viewAnimator.setDuration(600);
-      viewAnimator.addListener(new AnimatorManager.SimpleListener() {
-        @Override
-        public void onAnimationCancel(Animator animation) {
-          recyclerView.setTranslationY(0f);
-        }
-      });
+      viewAnimator.addListener(new AnimatorManager.SimpleListener());
       viewAnimator.addUpdateListener(animation -> {
         onScrolledVertical(recyclerView, 0, 0);
       });

+ 4 - 25
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainContentsWeatherHolder.java

@@ -3,7 +3,6 @@
  */
 package kr.co.zumo.app.lifeplus.view.screen.main;
 
-import android.animation.Animator;
 import android.animation.ObjectAnimator;
 import android.content.Context;
 import android.support.v7.widget.RecyclerView;
@@ -120,22 +119,12 @@ public class MainContentsWeatherHolder extends MainContentsHolder /*implements V
       weatherIcon.setTranslationY(100f);
       ObjectAnimator weatherAnimator = ObjectAnimator.ofFloat(weatherIcon, "translationY", 0f);
       weatherAnimator.setDuration(500);
-      weatherAnimator.addListener(new AnimatorManager.SimpleListener() {
-        @Override
-        public void onAnimationCancel(Animator animation) {
-          weatherIcon.setTranslationY(0f);
-        }
-      });
+      weatherAnimator.addListener(new AnimatorManager.SimpleListener());
 
       weatherIcon.setAlpha(0f);
       ObjectAnimator weatherAlphaAnimator = ObjectAnimator.ofFloat(weatherIcon, "alpha", 1f);
       weatherAlphaAnimator.setDuration(800);
-      weatherAlphaAnimator.addListener(new AnimatorManager.SimpleListener() {
-        @Override
-        public void onAnimationCancel(Animator animation) {
-          weatherIcon.setAlpha(1f);
-        }
-      });
+      weatherAlphaAnimator.addListener(new AnimatorManager.SimpleListener());
 
       AnimatorManager.getInstance().add(weatherAlphaAnimator);
       AnimatorManager.getInstance().add(weatherAnimator);
@@ -144,23 +133,13 @@ public class MainContentsWeatherHolder extends MainContentsHolder /*implements V
       ObjectAnimator textTopAnimator = ObjectAnimator.ofFloat(textTopView, "translationY", 0f);
       textTopAnimator.setStartDelay(500);
       textTopAnimator.setDuration(500);
-      textTopAnimator.addListener(new AnimatorManager.SimpleListener() {
-        @Override
-        public void onAnimationCancel(Animator animation) {
-          textTopView.setTranslationY(0f);
-        }
-      });
+      textTopAnimator.addListener(new AnimatorManager.SimpleListener());
 
       layoutWeatherBottom.setTranslationY(100f);
       ObjectAnimator textBottomAnimator = ObjectAnimator.ofFloat(layoutWeatherBottom, "translationY", 0f);
       textBottomAnimator.setStartDelay(700);
       textBottomAnimator.setDuration(500);
-      textTopAnimator.addListener(new AnimatorManager.SimpleListener() {
-        @Override
-        public void onAnimationCancel(Animator animation) {
-          layoutWeatherBottom.setTranslationY(0f);
-        }
-      });
+      textTopAnimator.addListener(new AnimatorManager.SimpleListener());
 
       AnimatorManager.getInstance().add(textTopAnimator);
       AnimatorManager.getInstance().add(textBottomAnimator);

+ 1 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/main/MainFragment.java

@@ -3,7 +3,6 @@
  */
 package kr.co.zumo.app.lifeplus.view.screen.main;
 
-import android.animation.Animator;
 import android.animation.ObjectAnimator;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
@@ -88,12 +87,7 @@ public class MainFragment extends FragmentBase<MainPresenter> implements IMainVi
     ObjectAnimator indicatorAnimator = ObjectAnimator.ofFloat(indicator, "alpha", 1f);
     indicatorAnimator.setStartDelay(600);
     indicatorAnimator.setDuration(500);
-    indicatorAnimator.addListener(new AnimatorManager.SimpleListener() {
-      @Override
-      public void onAnimationCancel(Animator animation) {
-        indicator.setAlpha(1f);
-      }
-    });
+    indicatorAnimator.addListener(new AnimatorManager.SimpleListener());
 
     AnimatorManager.getInstance().add(indicatorAnimator);