package io.homeassistant.android.view.viewholders;
import android.view.View;
import android.widget.ImageButton;
import io.homeassistant.android.HassActivity;
import io.homeassistant.android.R;
import io.homeassistant.android.api.Attribute;
import io.homeassistant.android.api.requests.ToggleRequest;
import static io.homeassistant.android.Utils.setStatefulImageButtonIcon;
public class CoverViewHolder extends TextViewHolder implements View.OnClickListener {
private static final int SUPPORT_OPEN = 1;
private static final int SUPPORT_CLOSE = 2;
private static final int SUPPORT_STOP = 8;
private final ImageButton buttonCoverUp;
private final ImageButton buttonCoverDown;
private final ImageButton buttonCoverStop;
public CoverViewHolder(View itemView) {
super(itemView);
buttonCoverUp = (ImageButton) itemView.findViewById(R.id.cover_up);
buttonCoverUp.setOnClickListener(this);
buttonCoverDown = (ImageButton) itemView.findViewById(R.id.cover_down);
buttonCoverDown.setOnClickListener(this);
buttonCoverStop = (ImageButton) itemView.findViewById(R.id.cover_stop);
buttonCoverStop.setOnClickListener(this);
}
@Override
protected void updateViews() {
super.updateViews();
int supportedFeatures = entity.attributes.getInt(Attribute.SUPPORTED_FEATURES);
buttonCoverUp.setVisibility(((supportedFeatures & SUPPORT_OPEN) != 0) ? View.VISIBLE : View.GONE);
buttonCoverDown.setVisibility(((supportedFeatures & SUPPORT_CLOSE) != 0) ? View.VISIBLE : View.GONE);
buttonCoverStop.setVisibility(((supportedFeatures & SUPPORT_STOP) != 0) ? View.VISIBLE : View.GONE);
setStatefulImageButtonIcon(itemView.getContext(), entity.state.equalsIgnoreCase("open"), buttonCoverDown, R.drawable.ic_arrow_downward_24dp);
setStatefulImageButtonIcon(itemView.getContext(), entity.state.equalsIgnoreCase("closed"), buttonCoverUp, R.drawable.ic_arrow_upward_24dp);
}
@Override
public void onClick(View v) {
HassActivity activity = (HassActivity) v.getContext();
String operation;
switch (v.getId()) {
case R.id.cover_up:
operation = "open_cover";
break;
case R.id.cover_down:
operation = "close_cover";
break;
case R.id.cover_stop:
operation = "stop_cover";
break;
default:
operation = "";
break;
}
activity.send(new ToggleRequest(entity, operation), null);
}
}