package no.nordicsemi.puckcentral.adapters;
import android.content.Context;
import android.database.Cursor;
import android.view.View;
import android.view.ViewGroup;
import org.droidparts.adapter.cursor.EntityCursorAdapter;
import org.droidparts.bus.EventBus;
import org.droidparts.persist.sql.stmt.Select;
import no.nordicsemi.puckcentral.R;
import no.nordicsemi.puckcentral.db.RuleManager;
import no.nordicsemi.puckcentral.models.Action;
import no.nordicsemi.puckcentral.models.Rule;
import no.nordicsemi.puckcentral.triggers.Trigger;
public class RuleAdapter extends EntityCursorAdapter<Rule> {
public RuleAdapter(Context ctx, Select<Rule> select) {
super(ctx, new RuleManager(ctx), select);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = getLayoutInflater().inflate(R.layout.trigger_list_item, null);
TriggerViewHolder holder = new TriggerViewHolder(view);
view.setTag(holder);
return view;
}
@Override
public void bindView(Context context, View view, final Rule rule) {
entityManager.fillForeignKeys(rule);
TriggerViewHolder holder = (TriggerViewHolder) view.getTag();
holder.mTvTriggerName.setText(rule.getTrigger());
StringBuilder sb = new StringBuilder();
for (Action action : rule.getActions()) {
sb.append("- ");
sb.append(action.describeArguments());
sb.append("\n");
}
sb.setLength(Math.max(sb.length() -1, 0));
holder.mTvTriggerActions.setText(sb.toString());
holder.mBtnRemoveRuleFromPuck.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EventBus.postEvent(Trigger.TRIGGER_REMOVE_RULE, rule);
}
});
}
}