package tk.zielony.carbonsamples.feature.scroll;
import android.content.Context;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.Gravity;
import carbon.internal.MathUtils;
import carbon.widget.FrameLayout;
import carbon.widget.ImageView;
import carbon.widget.LinearLayout;
import carbon.widget.TextView;
import carbon.widget.Toolbar;
import tk.zielony.carbonsamples.R;
public class CollapsingLayout extends FrameLayout implements ScrollChild {
public CollapsingLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public int onNestedScrollByY(int dy) {
DependencyLayout.LayoutParams layoutParams = (DependencyLayout.LayoutParams) getLayoutParams();
int newHeight = MathUtils.constrain(layoutParams.height - dy, getMinimumHeight(), getMaximumHeight());
setElevation(MathUtils.map(getMaximumHeight(), getMinimumHeight(), 0, getResources().getDimension(carbon.R.dimen.carbon_elevationToolbar), newHeight));
int usedDy = layoutParams.height - newHeight;
layoutParams.height = newHeight;
setLayoutParams(layoutParams);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
ImageView iconView = (ImageView) toolbar.getIconView();
TextView titleView = toolbar.getTitleView();
{
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) iconView.getLayoutParams();
params.gravity = Gravity.TOP;
iconView.setLayoutParams(params);
}
{
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) titleView.getLayoutParams();
params.gravity = Gravity.TOP;
titleView.setLayoutParams(params);
}
if (getHeight() == getMinimumHeight() && iconView.getVisibility() != VISIBLE && iconView.getAnimator() == null) {
iconView.setVisibility(VISIBLE);
} else if (getHeight() != getMinimumHeight() && iconView.getVisibility() == VISIBLE && iconView.getAnimator() == null) {
iconView.setVisibility(INVISIBLE);
}
titleView.setTextSize(TypedValue.COMPLEX_UNIT_PX, MathUtils.map(getMaximumHeight(), getMinimumHeight(), getResources().getDimension(R.dimen.carbon_textSizeHeadline), getResources().getDimension(carbon.R.dimen.carbon_textSizeTitle), newHeight));
return usedDy;
}
@Override
public int getNestedScrollRange() {
return 0;
}
@Override
public int getNestedScrollY() {
return 0;
}
public int getMinimumHeight() {
return getResources().getDimensionPixelSize(carbon.R.dimen.carbon_toolbarHeight);
}
}