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) { 49a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette writeToParcelInternal(dest, flags); 50a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette } 51a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette 52a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette /** @hide */ 53a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette public void writeToParcelInternal(Parcel dest, int flags) { 540eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne dest.writeInt(mBackgroundColor); 550eea6681519277310e1733d791bfc0342b8e5ceaGilles Debunne } 5628294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne 5728294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne @Override 5828294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne public int getSpanTypeId() { 59a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette return getSpanTypeIdInternal(); 60a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette } 61a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette 62a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette /** @hide */ 63a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette public int getSpanTypeIdInternal() { 6428294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne return TextUtils.SUGGESTION_RANGE_SPAN; 6528294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne } 66fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne 67fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne public void setBackgroundColor(int backgroundColor) { 68fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne mBackgroundColor = backgroundColor; 69fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne } 70fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne 71fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne @Override 72fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne public void updateDrawState(TextPaint tp) { 73fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne tp.bgColor = mBackgroundColor; 74fa4e2d994bb398b89d08304bb233671ef1a5d5f8Gilles Debunne } 7528294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne} 76