diff options
Diffstat (limited to 'src/com/android/tv/onboarding/WelcomeFragment.java')
-rw-r--r-- | src/com/android/tv/onboarding/WelcomeFragment.java | 82 |
1 files changed, 23 insertions, 59 deletions
diff --git a/src/com/android/tv/onboarding/WelcomeFragment.java b/src/com/android/tv/onboarding/WelcomeFragment.java index 00f7fe8d..ed85df68 100644 --- a/src/com/android/tv/onboarding/WelcomeFragment.java +++ b/src/com/android/tv/onboarding/WelcomeFragment.java @@ -20,11 +20,8 @@ import android.animation.Animator; import android.animation.AnimatorInflater; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; -import android.app.Activity; -import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v17.leanback.app.OnboardingFragment; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -34,6 +31,7 @@ import android.widget.ImageView; import com.android.tv.R; import com.android.tv.common.ui.setup.SetupActionHelper; import com.android.tv.common.ui.setup.animation.SetupAnimationHelper; +import com.android.tv.common.ui.setup.leanback.OnboardingFragment; import java.util.ArrayList; import java.util.List; @@ -582,6 +580,7 @@ public class WelcomeFragment extends OnboardingFragment { private ImageView mArrowView; private Animator mAnimator; + private boolean mNeedToEndAnimator; public WelcomeFragment() { setExitTransition(new SetupAnimationHelper.TransitionBuilder() @@ -590,63 +589,16 @@ public class WelcomeFragment extends OnboardingFragment { .build()); } - @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - initialize(); - } - - @Override - public void onAttach(Context context) { - super.onAttach(context); - initialize(); - } - - private void initialize() { - if (mPageTitles == null) { - mPageTitles = getResources().getStringArray(R.array.welcome_page_titles); - mPageDescriptions = getResources().getStringArray(R.array.welcome_page_descriptions); - } - } - @Nullable @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View view = super.onCreateView(inflater, container, savedInstanceState); - setLogoResourceId(R.drawable.splash_logo); - if (savedInstanceState != null) { - switch (getCurrentPageIndex()) { - case 0: - mTvContentView.setImageResource( - TV_FRAMES_1_START[TV_FRAMES_1_START.length - 1]); - break; - case 1: - mTvContentView.setImageResource( - TV_FRAMES_2_START[TV_FRAMES_2_START.length - 1]); - break; - case 2: - mTvContentView.setImageResource( - TV_FRAMES_3_ORANGE_START[TV_FRAMES_3_ORANGE_START.length - 1]); - mArrowView.setImageResource(TV_FRAMES_3_BLUE_ARROW[0]); - break; - case 3: - default: - mTvContentView.setImageResource( - TV_FRAMES_4_START[TV_FRAMES_4_START.length - 1]); - break; - } - } - return view; - } - - @Override - public int onProvideTheme() { - return R.style.Theme_Leanback_Onboarding; + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + mPageTitles = getResources().getStringArray(R.array.welcome_page_titles); + mPageDescriptions = getResources().getStringArray(R.array.welcome_page_descriptions); + return super.onCreateView(inflater, container, savedInstanceState); } @Override - protected Animator onCreateEnterAnimation() { + protected void onStartEnterAnimation() { List<Animator> animators = new ArrayList<>(); // Cloud 1 View view = getActivity().findViewById(R.id.cloud1); @@ -688,7 +640,9 @@ public class WelcomeFragment extends OnboardingFragment { animators.add(animator); AnimatorSet set = new AnimatorSet(); set.playTogether(animators); - return set; + mAnimator = set; + mAnimator.start(); + mNeedToEndAnimator = true; } @Nullable @@ -729,14 +683,23 @@ public class WelcomeFragment extends OnboardingFragment { } @Override + protected int getLogoResourceId() { + return R.drawable.splash_logo; + } + + @Override protected void onFinishFragment() { SetupActionHelper.onActionClick(WelcomeFragment.this, ACTION_CATEGORY, ACTION_NEXT); } @Override - protected void onPageChanged(int newPage, int previousPage) { + protected void onStartPageChangeAnimation(int previousPage) { if (mAnimator != null) { - mAnimator.cancel(); + if (mNeedToEndAnimator) { + mAnimator.end(); + } else { + mAnimator.cancel(); + } } mArrowView.setVisibility(View.GONE); // TV screen hiding animator. @@ -747,7 +710,7 @@ public class WelcomeFragment extends OnboardingFragment { // TV screen showing animator. AnimatorSet animatorSet = new AnimatorSet(); int firstFrame; - switch (newPage) { + switch (getCurrentPageIndex()) { case 0: animatorSet.playSequentially(hideAnimator, SetupAnimationHelper.createFrameAnimator(mTvContentView, @@ -799,5 +762,6 @@ public class WelcomeFragment extends OnboardingFragment { }); mAnimator = SetupAnimationHelper.applyAnimationTimeScale(animatorSet); mAnimator.start(); + mNeedToEndAnimator = false; } } |