package com.duguang.baseanimation.ui.customview.foldablelayout.activity;
import android.graphics.Bitmap;
import android.graphics.Typeface;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.azcltd.fluffycommons.texts.SpannableBuilder;
import com.azcltd.fluffycommons.utils.Views;
import com.duguang.baseanimation.R;
import com.duguang.baseanimation.ui.customview.foldablelayout.item.Painting;
import com.duguang.baseanimation.ui.customview.foldablelayout.item.PaintingsAdapter;
import com.duguang.baseanimation.ui.customview.foldablelayout.library.UnfoldableView;
import com.duguang.baseanimation.ui.customview.foldablelayout.library.shading.GlanceFoldShading;
import com.squareup.picasso.Picasso;
public class UnfoldableDetailsMainActivity extends FoldableBaseActivity {
private ListView mListView;
private View mListTouchInterceptor;
private View mDetailsLayout;
private UnfoldableView mUnfoldableView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_foldable_details);
mListView = Views.find(this, R.id.list_view);
mListView.setAdapter(new PaintingsAdapter(this));
mListTouchInterceptor = Views.find(this, R.id.touch_interceptor_view);
mListTouchInterceptor.setClickable(false);
mDetailsLayout = Views.find(this, R.id.details_layout);
mDetailsLayout.setVisibility(View.INVISIBLE);
mUnfoldableView = Views.find(this, R.id.unfoldable_view);
Bitmap glance = ((BitmapDrawable) getResources().getDrawable(R.drawable.custom_foldable_unfold_glance)).getBitmap();
mUnfoldableView.setFoldShading(new GlanceFoldShading(this, glance));
mUnfoldableView.setOnFoldingListener(new UnfoldableView.SimpleFoldingListener() {
@Override
public void onUnfolding(UnfoldableView unfoldableView) {
mListTouchInterceptor.setClickable(true);
mDetailsLayout.setVisibility(View.VISIBLE);
}
@Override
public void onUnfolded(UnfoldableView unfoldableView) {
mListTouchInterceptor.setClickable(false);
}
@Override
public void onFoldingBack(UnfoldableView unfoldableView) {
mListTouchInterceptor.setClickable(true);
}
@Override
public void onFoldedBack(UnfoldableView unfoldableView) {
mListTouchInterceptor.setClickable(false);
mDetailsLayout.setVisibility(View.INVISIBLE);
}
});
}
@Override
public void onBackPressed() {
if (mUnfoldableView != null && (mUnfoldableView.isUnfolded() || mUnfoldableView.isUnfolding())) {
mUnfoldableView.foldBack();
} else {
super.onBackPressed();
}
}
public void openDetails(View coverView, Painting painting) {
ImageView image = Views.find(mDetailsLayout, R.id.details_image);
TextView title = Views.find(mDetailsLayout, R.id.details_title);
TextView description = Views.find(mDetailsLayout, R.id.details_text);
Picasso.with(this).load(painting.getImageId()).into(image);
title.setText(painting.getTitle());
SpannableBuilder builder = new SpannableBuilder(this);
builder
.createStyle().setFont(Typeface.DEFAULT_BOLD).apply()
.append(R.string.year).append(": ")
.clearStyle()
.append(painting.getYear()).append("\n")
.createStyle().setFont(Typeface.DEFAULT_BOLD).apply()
.append(R.string.location).append(": ")
.clearStyle()
.append(painting.getLocation());
description.setText(builder.build());
mUnfoldableView.unfold(coverView, mDetailsLayout);
}
}