128294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne/*
228294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * Copyright (C) 2011 The Android Open Source Project
328294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne *
428294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * Licensed under the Apache License, Version 2.0 (the "License");
528294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * you may not use this file except in compliance with the License.
628294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * You may obtain a copy of the License at
728294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne *
828294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne *      http://www.apache.org/licenses/LICENSE-2.0
928294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne *
1028294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * Unless required by applicable law or agreed to in writing, software
1128294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * distributed under the License is distributed on an "AS IS" BASIS,
1228294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1328294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * See the License for the specific language governing permissions and
1428294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * limitations under the License.
1528294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne */
1628294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
1728294cc74491885c7fe4442353026f01f5b773e8Gilles Debunnepackage android.text.style;
1828294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
1928294cc74491885c7fe4442353026f01f5b773e8Gilles Debunneimport android.os.Parcel;
2028294cc74491885c7fe4442353026f01f5b773e8Gilles Debunneimport android.text.ParcelableSpan;
2128294cc74491885c7fe4442353026f01f5b773e8Gilles Debunneimport android.text.TextPaint;
2228294cc74491885c7fe4442353026f01f5b773e8Gilles Debunneimport android.text.TextUtils;
2328294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
2428294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne/**
2528294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * A SuggestionRangeSpan is used to show which part of an EditText is affected by a suggestion
2628294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * popup window.
2728294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne *
2828294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne * @hide
2928294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne */
3028294cc74491885c7fe4442353026f01f5b773e8Gilles Debunnepublic class SuggestionRangeSpan extends CharacterStyle implements ParcelableSpan {
31fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne    private int mBackgroundColor;
320eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne
33fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne    public SuggestionRangeSpan() {
34fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne        // 0 is a fully transparent black. Has to be set using #setBackgroundColor
35fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne        mBackgroundColor = 0;
360eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne    }
370eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne
380eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne    public SuggestionRangeSpan(Parcel src) {
390eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne        mBackgroundColor = src.readInt();
400eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne    }
4128294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
4228294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    @Override
4328294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    public int describeContents() {
4428294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne        return 0;
4528294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    }
4628294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
4728294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    @Override
480eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne    public void writeToParcel(Parcel dest, int flags) {
490eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne        dest.writeInt(mBackgroundColor);
500eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne    }
5128294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
5228294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    @Override
5328294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    public int getSpanTypeId() {
5428294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne        return TextUtils.SUGGESTION_RANGE_SPAN;
5528294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    }
56fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne
57fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne    public void setBackgroundColor(int backgroundColor) {
58fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne        mBackgroundColor = backgroundColor;
59fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne    }
60fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne
61fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne    @Override
62fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne    public void updateDrawState(TextPaint tp) {
63fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne        tp.bgColor = mBackgroundColor;
64fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne    }
6528294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne}
66