package com.lgvalle.material_animations; import android.content.Intent; import android.databinding.DataBindingUtil; import android.os.Bundle; import android.transition.Fade; import android.transition.Slide; import android.transition.Visibility; import android.view.View; import com.lgvalle.material_animations.databinding.ActivityTransition1Binding; public class TransitionActivity1 extends BaseDetailActivity { private Sample sample; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); bindData(); setupWindowAnimations(); setupLayout(); setupToolbar(); } private void bindData() { ActivityTransition1Binding binding = DataBindingUtil.setContentView(this, R.layout.activity_transition1); sample = (Sample) getIntent().getExtras().getSerializable(EXTRA_SAMPLE); binding.setTransition1Sample(sample); } private void setupWindowAnimations() { Visibility enterTransition = buildEnterTransition(); getWindow().setEnterTransition(enterTransition); } private void setupLayout() { findViewById(R.id.sample1_button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(TransitionActivity1.this, TransitionActivity2.class); i.putExtra(EXTRA_SAMPLE, sample); i.putExtra(EXTRA_TYPE, TYPE_PROGRAMMATICALLY); transitionTo(i); } }); findViewById(R.id.sample1_button2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(TransitionActivity1.this, TransitionActivity2.class); i.putExtra(EXTRA_SAMPLE, sample); i.putExtra(EXTRA_TYPE, TYPE_XML); transitionTo(i); } }); findViewById(R.id.sample1_button3).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(TransitionActivity1.this, TransitionActivity3.class); i.putExtra(EXTRA_SAMPLE, sample); i.putExtra(EXTRA_TYPE, TYPE_PROGRAMMATICALLY); transitionTo(i); } }); findViewById(R.id.sample1_button4).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(TransitionActivity1.this, TransitionActivity3.class); i.putExtra(EXTRA_SAMPLE, sample); i.putExtra(EXTRA_TYPE, TYPE_XML); transitionTo(i); } }); findViewById(R.id.sample1_button5).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Visibility returnTransition = buildReturnTransition(); getWindow().setReturnTransition(returnTransition); finishAfterTransition(); } }); findViewById(R.id.sample1_button6).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /** * If no return transition is defined Android will use reversed enter transition * In this case, return transition will be a reversed Slide (defined in buildEnterTransition) */ finishAfterTransition(); } }); } private Visibility buildEnterTransition() { Fade enterTransition = new Fade(); enterTransition.setDuration(getResources().getInteger(R.integer.anim_duration_long)); // This view will not be affected by enter transition animation enterTransition.excludeTarget(R.id.square_red, true); return enterTransition; } private Visibility buildReturnTransition() { Visibility enterTransition = new Slide(); enterTransition.setDuration(getResources().getInteger(R.integer.anim_duration_long)); return enterTransition; } }