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;
}
}