package com.github.takahirom.materialelement.motion.transforming;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.CollapsingToolbarLayout;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.animation.FastOutSlowInInterpolator;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.CardView;
import android.support.v7.widget.Toolbar;
import android.transition.Transition;
import android.view.View;
import android.widget.ImageView;
import com.github.takahirom.materialelement.MaterialElementActivity;
import com.github.takahirom.materialelement.animation.transition.TransitionUtils;
import com.github.takahirom.materialelement.main.ImplementationItem;
import com.github.takahirom.materialelement.R;
import com.github.takahirom.materialelement.animation.transition.FabTransform;
import com.github.takahirom.materialelement.util.AndroidVersionUtil;
public class TransformingActivity extends MaterialElementActivity {
public final static String RESULT_EXTRA_ITEM_ID = "RESULT_EXTRA_ITEM_ID";
public static final String INTENT_EXTRA_ITEM = "item";
private ImplementationItem item;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_transforming);
item = getIntent().getParcelableExtra(INTENT_EXTRA_ITEM);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
setupViews();
}
public void setupViews() {
final CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
final ImageView imageView = (ImageView) findViewById(R.id.detail_image);
// collapsingToolbarLayout.setExpandedTitleColor(ContextCompat.getColor(TransformingActivity.this, android.R.color.white));
imageView.setImageResource(item.imageRes);
TransitionUtils.setSharedElementEnterTransitionEndListenerCompat(getWindow(), new TransitionUtils.OnSharedElementEnterTransitionEndListener() {
@Override
public void onEnd(Transition transition) {
collapsingToolbarLayout.setTitleEnabled(true);
collapsingToolbarLayout.setTitle(item.title);
}
});
findViewById(R.id.aync_card).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final CardView cardView = (CardView) findViewById(R.id.aync_card);
cardView.setOnClickListener(new View.OnClickListener() {
boolean isSmall = true;
@Override
public void onClick(View view) {
if (isSmall) {
ViewCompat
.animate(view)
.scaleX(3.0f)
.setDuration(275)
.setStartDelay(0)
.setInterpolator(new FastOutSlowInInterpolator())
.start();
ViewCompat
.animate(view)
.scaleY(3.0f)
.setDuration(350)
.setStartDelay(25) // 開始をずらす
.setInterpolator(new FastOutSlowInInterpolator())
.start();
} else {
ViewCompat
.animate(view)
.scaleX(1.0f)
.setDuration(325)
.setStartDelay(50)
.setInterpolator(new FastOutSlowInInterpolator())
.start();
ViewCompat
.animate(view)
.scaleY(1.0f)
.setStartDelay(0)
.setDuration(325)
.setInterpolator(new FastOutSlowInInterpolator())
.start();
}
isSmall = !isSmall;
}
});
}
});
findViewById(R.id.sync_card).setOnClickListener(new View.OnClickListener() {
boolean isSmall = true;
@Override
public void onClick(View v) {
ViewCompat
.animate(v)
.scaleX(isSmall ? 3.0f : 1.0f)
.scaleY(isSmall ? 3.0f : 1.0f)
.setDuration(300)
.setInterpolator(new FastOutSlowInInterpolator())
.start();
isSmall = !isSmall;
}
});
findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(TransformingActivity.this, LoginActivity.class);
int color = ContextCompat.getColor(TransformingActivity.this, R.color.colorAccent);
if (AndroidVersionUtil.isGreaterThanL()) {
FabTransform.addExtras(intent, color, R.drawable.ic_add_white_24dp);
}
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat
.makeSceneTransitionAnimation(TransformingActivity.this,
v,
getString(R.string.transition_name_login));
ActivityCompat.startActivity(TransformingActivity.this,
intent,
optionsCompat.toBundle());
}
});
}
@Override
public void onBackPressed() {
setResultAndFinish();
}
void setResultAndFinish() {
final Intent resultData = new Intent();
resultData.putExtra(RESULT_EXTRA_ITEM_ID, item.itemId);
setResult(RESULT_OK, resultData);
ActivityCompat.finishAfterTransition(this);
}
}