mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 22:55:23 +00:00
e78fbba920
--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
54 lines
1.8 KiB
Java
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);
|
|
}
|
|
}
|
|
}
|
|
}
|