16435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne/*
26435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * Copyright (C) 2011 The Android Open Source Project
36435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne *
46435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * Licensed under the Apache License, Version 2.0 (the "License");
56435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * you may not use this file except in compliance with the License.
66435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * You may obtain a copy of the License at
76435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne *
86435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne *      http://www.apache.org/licenses/LICENSE-2.0
96435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne *
106435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * Unless required by applicable law or agreed to in writing, software
116435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * distributed under the License is distributed on an "AS IS" BASIS,
126435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * See the License for the specific language governing permissions and
146435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * limitations under the License.
156435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne */
166435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne
176435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunnepackage android.text.style;
186435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne
1928294cc74491885c7fe4442353026f01f5b773e8Gilles Debunneimport android.os.Parcel;
2028294cc74491885c7fe4442353026f01f5b773e8Gilles Debunneimport android.text.ParcelableSpan;
2128294cc74491885c7fe4442353026f01f5b773e8Gilles Debunneimport android.text.TextUtils;
2228294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
236435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne/**
246435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * A SpellCheckSpan is an internal data structure created by the TextView's SpellChecker to
256435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * annotate portions of the text that are about to or currently being spell checked. They are
266435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * automatically removed once the spell check is completed.
276435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne *
286435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne * @hide
296435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne */
3028294cc74491885c7fe4442353026f01f5b773e8Gilles Debunnepublic class SpellCheckSpan implements ParcelableSpan {
316435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne
326435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne    private boolean mSpellCheckInProgress;
336435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne
346435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne    public SpellCheckSpan() {
356435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne        mSpellCheckInProgress = false;
366435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne    }
376435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne
3828294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    public SpellCheckSpan(Parcel src) {
3928294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne        mSpellCheckInProgress = (src.readInt() != 0);
4028294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    }
4128294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
42b062e81e3a16af43db3619d721aa522c137d1aa9Gilles Debunne    public void setSpellCheckInProgress(boolean inProgress) {
43b062e81e3a16af43db3619d721aa522c137d1aa9Gilles Debunne        mSpellCheckInProgress = inProgress;
446435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne    }
456435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne
466435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne    public boolean isSpellCheckInProgress() {
476435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne        return mSpellCheckInProgress;
486435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne    }
4928294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
5028294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    @Override
5128294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    public int describeContents() {
5228294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne        return 0;
5328294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    }
5428294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
5528294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    @Override
5628294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    public void writeToParcel(Parcel dest, int flags) {
57a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette        writeToParcelInternal(dest, flags);
58a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette    }
59a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette
60a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette    /** @hide */
61a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette    public void writeToParcelInternal(Parcel dest, int flags) {
6228294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne        dest.writeInt(mSpellCheckInProgress ? 1 : 0);
6328294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    }
6428294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne
6528294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    @Override
6628294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    public int getSpanTypeId() {
67a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette        return getSpanTypeIdInternal();
68a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette    }
69a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette
70a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette    /** @hide */
71a70d4a90a029910f788c3e7f8715cf3b842b1e2bAlan Viverette    public int getSpanTypeIdInternal() {
7228294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne        return TextUtils.SPELL_CHECK_SPAN;
7328294cc74491885c7fe4442353026f01f5b773e8Gilles Debunne    }
746435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne}
75