/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.view; import android.content.Context; import android.content.res.Resources; import android.graphics.Canvas; import android.util.AttributeSet; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.EsEventData; import com.galaxy.meetup.client.util.AccessibilityUtils; import com.galaxy.meetup.client.util.EventDateUtils; import com.galaxy.meetup.server.client.v2.domain.Event; /** * * @author sihai * */ public class EventDestinationCardView extends CardView { private EventCardDrawer mDrawer; private Event mEvent; private boolean mIgnoreHeight; public EventDestinationCardView(Context context) { this(context, null); } public EventDestinationCardView(Context context, AttributeSet attributeset) { this(context, attributeset, 0); } public EventDestinationCardView(Context context, AttributeSet attributeset, int i) { super(context, attributeset, i); mDrawer = new EventCardDrawer(this); setPaddingEnabled(false); setFocusable(true); } public final void bindData(EsAccount esaccount, Event plusevent) { mEvent = plusevent; mDrawer.bind(esaccount, this, plusevent, mItemClickListener); } protected final int draw(Canvas canvas, int i, int j, int k, int l) { return mDrawer.draw(j, j + l, canvas); } public CharSequence getContentDescription() { Object obj = null; Resources resources = getResources(); StringBuilder stringbuilder = new StringBuilder(); AccessibilityUtils.appendAndSeparateIfNotEmpty(stringbuilder, mEvent.getName()); AccessibilityUtils.appendAndSeparateIfNotEmpty(stringbuilder, EventDateUtils.getDateRange(getContext(), mEvent.getStartTime(), null, true)); if(mEvent.getLocation() != null) { int i1 = R.string.event_location_accessibility_description; Object aobj3[] = new Object[]{mEvent.getLocation().buildAddress()}; AccessibilityUtils.appendAndSeparateIfNotEmpty(stringbuilder, resources.getString(i1, aobj3)); } switch(EsEventData.getRsvpStatus(mEvent)) { case 0: obj = resources.getString(R.string.card_event_invited_prompt); break; case 1: int l = R.string.event_rsvp_accessibility_description; Object aobj2[] = new Object[1]; aobj2[0] = resources.getString(R.string.card_event_going_prompt); obj = resources.getString(l, aobj2); break; case 2: int j = R.string.event_rsvp_accessibility_description; Object aobj[] = new Object[1]; aobj[0] = resources.getString(R.string.card_event_maybe_prompt); obj = resources.getString(j, aobj); break; case 3: int k = R.string.event_rsvp_accessibility_description; Object aobj1[] = new Object[1]; aobj1[0] = resources.getString(R.string.card_event_declined_prompt); obj = resources.getString(k, aobj1); break; default: break; } AccessibilityUtils.appendAndSeparateIfNotEmpty(stringbuilder, ((CharSequence) (obj))); return stringbuilder.toString(); } public final Event getEvent() { return mEvent; } protected final int layoutElements(int i, int j, int k, int l) { return mDrawer.layout(i, j, mIgnoreHeight, k, l); } protected void onAttachedToWindow() { super.onAttachedToWindow(); mDrawer.attach(); } protected void onDetachedFromWindow() { super.onDetachedFromWindow(); mDrawer.detach(); } protected void onMeasure(int i, int j) { int k = android.view.View.MeasureSpec.getSize(i); int l = android.view.View.MeasureSpec.getSize(j); boolean flag; int i1; int j1; if(android.view.View.MeasureSpec.getMode(j) == 0) flag = true; else flag = false; mIgnoreHeight = flag; if(mIgnoreHeight) i1 = k; else i1 = l; j1 = layoutElements(sLeftBorderPadding, sTopBorderPadding, k - (sLeftBorderPadding + sRightBorderPadding), i1 - (sTopBorderPadding + sBottomBorderPadding)); if(mIgnoreHeight) i1 = j1 + sTopBorderPadding + sBottomBorderPadding + sYPadding; setMeasuredDimension(k, i1); mBackgroundRect.set(0, 0, getMeasuredWidth(), getMeasuredHeight()); } public void onRecycle() { super.onRecycle(); mDrawer.clear(); mEvent = null; } }