@@ -0,0 +1,2442 @@
+package net.squanchy.schedule.view;%0A%0Aimport android.content.Context;%0Aimport android.support.annotation.DrawableRes;%0Aimport android.util.AttributeSet;%0Aimport android.widget.ImageView;%0Aimport android.widget.TextView;%0A%0Aimport net.squanchy.R;%0Aimport net.squanchy.schedule.domain.view.Event;%0A%0Aimport org.joda.time.format.DateTimeFormat;%0Aimport org.joda.time.format.DateTimeFormatter;%0A%0Apublic class OtherEventItemView extends EventItemView %7B%0A%0A    private final DateTimeFormatter dateTimeFormatter;%0A%0A    private TextView titleView;%0A    private TextView timestampView;%0A    private ImageView illustrationView;%0A%0A    public OtherEventItemView(Context context, AttributeSet attrs) %7B%0A        this(context, attrs, R.attr.cardViewDefaultStyle);%0A    %7D%0A%0A    public OtherEventItemView(Context context, AttributeSet attrs, int defStyleAttr) %7B%0A        super(context, attrs, defStyleAttr);%0A        this.dateTimeFormatter = DateTimeFormat.shortTime();%0A    %7D%0A%0A    @Override%0A    protected void onFinishInflate() %7B%0A        super.onFinishInflate();%0A%0A        timestampView = (TextView) findViewById(R.id.timestamp);%0A        titleView = (TextView) findViewById(R.id.title);%0A        illustrationView = (ImageView) findViewById(R.id.illustration);%0A    %7D%0A%0A    @Override%0A    public void updateWith(Event event) %7B%0A        ensureSupportedType(event.type());%0A%0A        timestampView.setText(dateTimeFormatter.print(event.startTime()));%0A        titleView.setText(event.title());%0A%0A        illustrationView.setImageResource(illustrationFor(event.type()));%0A    %7D%0A%0A    @DrawableRes%0A    private int illustrationFor(Event.Type type) %7B%0A        switch (type) %7B%0A            case COFFEE_BREAK:%0A            case LUNCH:%0A            case OTHER:%0A            case REGISTRATION:%0A            case SOCIAL:%0A                return R.drawable.illustration_lunch;        // TODO replace these with the correct images once we have them%0A            default:%0A                throw new IllegalArgumentException(%22Type not supported: %22 + type.name());%0A        %7D%0A    %7D%0A%0A    private void ensureSupportedType(Event.Type type) %7B%0A        if (type == Event.Type.COFFEE_BREAK%0A                %7C%7C type == Event.Type.LUNCH%0A                %7C%7C type == Event.Type.OTHER%0A                %7C%7C type == Event.Type.REGISTRATION%0A                %7C%7C type == Event.Type.SOCIAL) %7B%0A            return;%0A        %7D%0A        throw new IllegalArgumentException(%22Event with type %22 + type.name() + %22 is not supported by this view%22);%0A    %7D%0A%7D%0A

Create OtherEventItemView