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