gecko-dev/mobile/android/base/widget/LinkTextView.java
Sriram Ramasubramanian e78fbba920 Bug 852312: Move the custom views in about:home to widget directory. [r=bnicholson]
--HG--
rename : mobile/android/base/AboutHomeContent.java => mobile/android/base/widget/AboutHomeContent.java
rename : mobile/android/base/AboutHomePromoBox.java => mobile/android/base/widget/AboutHomePromoBox.java
rename : mobile/android/base/AboutHomeSection.java => mobile/android/base/widget/AboutHomeSection.java
rename : mobile/android/base/LinkTextView.java => mobile/android/base/widget/LinkTextView.java
extra : rebase_source : b13d18d3b2c56e8fec364265fe46ee88771f7ed2
2013-03-25 15:44:45 -07:00

54 lines
1.8 KiB
Java

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko.widget;
import org.mozilla.gecko.R;
import android.content.Context;
import android.graphics.Rect;
import android.text.SpannableString;
import android.text.style.BackgroundColorSpan;
import android.text.style.UnderlineSpan;
import android.util.AttributeSet;
import android.widget.TextView;
public class LinkTextView extends TextView {
private final BackgroundColorSpan mFocusBackgroundSpan;
private boolean mFocusApplied;
public LinkTextView(Context context, AttributeSet attrs) {
super(context, attrs);
mFocusBackgroundSpan = new BackgroundColorSpan(context.getResources().getColor(R.color.highlight_focused));
}
@Override
public void setText(CharSequence text, BufferType type) {
SpannableString content = new SpannableString(text + " \u00BB");
content.setSpan(new UnderlineSpan(), 0, text.length(), 0);
super.setText(content, BufferType.SPANNABLE);
}
@Override
public void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
super.onFocusChanged(focused, direction, previouslyFocusedRect);
if (focused == mFocusApplied) {
return;
}
mFocusApplied = focused;
CharSequence text = getText();
if (text instanceof SpannableString) {
SpannableString spannable = (SpannableString)text;
if (focused) {
spannable.setSpan(mFocusBackgroundSpan, 0, text.length(), 0);
} else {
spannable.removeSpan(mFocusBackgroundSpan);
}
}
}
}