package com.liangfeizc.databinding.sample.converter;
import android.databinding.BindingAdapter;
import android.databinding.BindingConversion;
import android.databinding.DataBindingUtil;
import android.databinding.ObservableBoolean;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import com.liangfeizc.databinding.R;
import com.liangfeizc.databinding.sample.BaseActivity;
import com.liangfeizc.databinding.databinding.ActivityConversionsBinding;
import com.liangfeizc.databinding.utils.ScreenUtils;
public class ConversionsActivity extends BaseActivity {
private ObservableBoolean mIsError = new ObservableBoolean();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityConversionsBinding binding =
DataBindingUtil.setContentView(this, R.layout.activity_conversions);
mIsError.set(true);
binding.setIsError(mIsError);
binding.setHeight(ScreenUtils.dp2px(this, 200));
}
public void toggleIsError(View view) {
mIsError.set(!mIsError.get());
}
@BindingConversion
public static ColorDrawable convertColorToDrawable(int color) {
return new ColorDrawable(color);
}
@BindingAdapter("layout_height")
public static void setLayoutHeight(View view, float height) {
ViewGroup.LayoutParams params = view.getLayoutParams();
params.height = (int) height;
view.setLayoutParams(params);
}
/** !!! Binding conversion should be forbidden, otherwise it will conflict with
* {@code android:visiblity} attribute.
*/
/*
@BindingConversion
public static int convertColorToString(int color) {
switch (color) {
case Color.RED:
return R.string.red;
case Color.WHITE:
return R.string.white;
}
return R.string.app_name;
}*/
}