13d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda/*
23d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda * Copyright (C) 2011 The Android Open Source Project
33d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda *
43d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda * Licensed under the Apache License, Version 2.0 (the "License");
53d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda * you may not use this file except in compliance with the License.
63d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda * You may obtain a copy of the License at
73d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda *
83d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda *      http://www.apache.org/licenses/LICENSE-2.0
93d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda *
103d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda * Unless required by applicable law or agreed to in writing, software
113d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda * distributed under the License is distributed on an "AS IS" BASIS,
123d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda * See the License for the specific language governing permissions and
143d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda * limitations under the License.
153d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda */
163d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda
173d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerdapackage com.android.contacts.format;
183d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda
193d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerdaimport com.android.contacts.widget.TextWithHighlighting;
203d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerdaimport com.android.contacts.widget.TextWithHighlightingFactory;
213d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda
223d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerdaimport android.database.CharArrayBuffer;
233d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerdaimport android.graphics.Typeface;
243d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerdaimport android.text.SpannableStringBuilder;
253d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerdaimport android.text.style.StyleSpan;
263d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda
273d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda/** A factory for {@link TextWithHighlighting} that wraps its parts in italics. */
283d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerdapublic final class TestTextWithHighlightingFactory implements TextWithHighlightingFactory {
293d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda    /** A {@link TextWithHighlighting} implementation that wraps its parts in italics. */
303d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda    private final static class TestTextWithHighlighting extends SpannableStringBuilder
313d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda            implements TextWithHighlighting {
323d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda        @Override
333d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda        public void setText(CharArrayBuffer baseText, CharArrayBuffer highlightedText) {
343d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda            append(new String(baseText.data, 0, baseText.sizeCopied));
353d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda            append(' ');
363d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda            append(new String(highlightedText.data, 0, highlightedText.sizeCopied));
373d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda            setSpan(new StyleSpan(Typeface.ITALIC), 0, baseText.sizeCopied, 0);
383d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda            setSpan(new StyleSpan(Typeface.ITALIC), baseText.sizeCopied + 1,
393d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda                    baseText.sizeCopied + 1 + highlightedText.sizeCopied, 0);
403d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda        }
413d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda    }
423d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda
433d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda    @Override
443d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda    public TextWithHighlighting createTextWithHighlighting() {
453d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda        return new TestTextWithHighlighting();
463d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda    }
473d7311f76f3f41a5794b01536498c634b3ff2a69Flavio Lerda}