package com.lgvalle.material_animations;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.transition.ChangeBounds;
import android.transition.Slide;
import android.view.Gravity;
import com.lgvalle.material_animations.databinding.ActivitySharedelementBinding;
public class SharedElementActivity extends BaseDetailActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Sample sample = (Sample) getIntent().getExtras().getSerializable(EXTRA_SAMPLE);
bindData(sample);
setupWindowAnimations();
setupLayout(sample);
setupToolbar();
}
private void bindData(Sample sample) {
ActivitySharedelementBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_sharedelement);
binding.setSharedSample(sample);
}
private void setupWindowAnimations() {
// We are not interested in defining a new Enter Transition. Instead we change default transition duration
getWindow().getEnterTransition().setDuration(getResources().getInteger(R.integer.anim_duration_long));
}
private void setupLayout(Sample sample) {
// Transition for fragment1
Slide slideTransition = new Slide(Gravity.LEFT);
slideTransition.setDuration(getResources().getInteger(R.integer.anim_duration_long));
// Create fragment and define some of it transitions
SharedElementFragment1 sharedElementFragment1 = SharedElementFragment1.newInstance(sample);
sharedElementFragment1.setReenterTransition(slideTransition);
sharedElementFragment1.setExitTransition(slideTransition);
sharedElementFragment1.setSharedElementEnterTransition(new ChangeBounds());
getSupportFragmentManager().beginTransaction()
.replace(R.id.sample2_content, sharedElementFragment1)
.commit();
}
}