| package org.wordpress.android.ui; |
| |
| import android.content.Context; |
| import android.util.AttributeSet; |
| import android.widget.CheckBox; |
| import android.widget.Checkable; |
| import android.widget.FrameLayout; |
| |
| import org.wordpress.android.R; |
| |
| public class CheckableFrameLayout extends FrameLayout implements Checkable { |
| private boolean mIsChecked; |
| private OnCheckedChangeListener mOnCheckedChangeListener; |
| |
| public interface OnCheckedChangeListener { |
| public void onCheckedChanged(CheckableFrameLayout view, boolean isChecked); |
| } |
| |
| public CheckableFrameLayout(Context context) { |
| super(context); |
| } |
| |
| public CheckableFrameLayout(Context context, AttributeSet attrs) { |
| super(context, attrs); |
| } |
| |
| public CheckableFrameLayout(Context context, AttributeSet attrs, int defStyle) { |
| super(context, attrs, defStyle); |
| } |
| |
| @Override |
| public boolean isChecked() { |
| return mIsChecked; |
| } |
| |
| @Override |
| public void setChecked(boolean checked) { |
| CheckBox checkbox = (CheckBox) findViewById(R.id.media_grid_item_checkstate); |
| if (checkbox != null) { |
| checkbox.setChecked(checked); |
| } |
| |
| if (mIsChecked != checked) { |
| mIsChecked = checked; |
| refreshDrawableState(); |
| if (mOnCheckedChangeListener != null) { |
| mOnCheckedChangeListener.onCheckedChanged((CheckableFrameLayout) this.findViewById( |
| R.id.media_grid_frame_layout), checked); |
| } |
| } |
| } |
| |
| @Override |
| public void toggle() { |
| setChecked(!mIsChecked); |
| } |
| |
| public void setOnCheckedChangeListener(OnCheckedChangeListener onCheckChangeListener) { |
| mOnCheckedChangeListener = onCheckChangeListener; |
| } |
| } |