/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.view; import android.content.Context; import android.text.SpannableStringBuilder; import android.text.SpannedString; import android.text.TextPaint; import android.text.TextUtils; import android.text.style.SuperscriptSpan; import android.util.AttributeSet; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; import com.galaxy.meetup.client.android.R; /** * * @author sihai * */ public class SectionHeaderView extends RelativeLayout { public SectionHeaderView(Context context) { super(context); } public SectionHeaderView(Context context, AttributeSet attributeset) { super(context, attributeset); } public SectionHeaderView(Context context, AttributeSet attributeset, int i) { super(context, attributeset, i); } private static void adjustSuperscriptSpans(SpannableStringBuilder spannablestringbuilder) { SuperscriptSpan asuperscriptspan[] = (SuperscriptSpan[])spannablestringbuilder.getSpans(0, spannablestringbuilder.length(), SuperscriptSpan.class); if(asuperscriptspan != null) { for(int i = 0; i < asuperscriptspan.length; i++) { SuperscriptSpan superscriptspan = asuperscriptspan[i]; int j = spannablestringbuilder.getSpanStart(superscriptspan); int k = spannablestringbuilder.getSpanEnd(superscriptspan); int l = spannablestringbuilder.getSpanFlags(superscriptspan); spannablestringbuilder.removeSpan(superscriptspan); spannablestringbuilder.setSpan(SUPERSCRIPT_SPAN, j, k, l); } } } public final void enableEditIcon(boolean flag) { View view = findViewById(R.id.edit); int i; if(flag) i = 0; else i = 8; view.setVisibility(i); } public void setText(int i) { setText(getContext().getText(i)); } public void setText(CharSequence charsequence) { TextView textview = (TextView)findViewById(0x1020014); String s = charsequence.toString().toUpperCase(); if(charsequence instanceof SpannedString) { SpannableStringBuilder spannablestringbuilder = new SpannableStringBuilder(s); TextUtils.copySpansFrom((SpannedString)charsequence, 0, charsequence.length(), Object.class, spannablestringbuilder, 0); if(android.os.Build.VERSION.SDK_INT < 14) adjustSuperscriptSpans(spannablestringbuilder); textview.setText(spannablestringbuilder); } else { textview.setText(s); } } private static final SuperscriptSpan SUPERSCRIPT_SPAN = new SuperscriptSpan() { public final void updateDrawState(TextPaint textpaint) { textpaint.baselineShift = textpaint.baselineShift + (int)(textpaint.ascent() / 4F); } public final void updateMeasureState(TextPaint textpaint) { textpaint.baselineShift = textpaint.baselineShift + (int)(textpaint.ascent() / 4F); } }; }