1fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert/* 2fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Copyright (C) 2010 The Android Open Source Project 3fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * 4fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 5fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * you may not use this file except in compliance with the License. 6fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * You may obtain a copy of the License at 7fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * 8fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 9fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * 10fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * Unless required by applicable law or agreed to in writing, software 11fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 12fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * See the License for the specific language governing permissions and 14fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * limitations under the License. 15fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert */ 16fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 17fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertpackage com.android.quicksearchbox; 18fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 19fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertimport android.database.DataSetObserver; 20fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 215229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwoodimport java.util.Collection; 225229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood 23fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert/** 24fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * A suggestion cursor that delegates all methods to another SuggestionCursor. 25fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert */ 26fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertpublic class SuggestionCursorWrapper extends AbstractSuggestionCursorWrapper { 27fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 28fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert private final SuggestionCursor mCursor; 29fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 30fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public SuggestionCursorWrapper(String userQuery, SuggestionCursor cursor) { 31fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert super(userQuery); 32fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert mCursor = cursor; 33fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 34fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 35fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public void close() { 36fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert if (mCursor != null) { 37fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert mCursor.close(); 38fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 39fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 40fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 41fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public int getCount() { 42fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert return mCursor == null ? 0 : mCursor.getCount(); 43fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 44fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 45fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public int getPosition() { 46fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert return mCursor == null ? 0 : mCursor.getPosition(); 47fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 48fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 49fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public void moveTo(int pos) { 50fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert if (mCursor != null) { 51fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert mCursor.moveTo(pos); 52fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 53fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 54fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 5587e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert public boolean moveToNext() { 5687e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert if (mCursor != null) { 5787e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert return mCursor.moveToNext(); 5887e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert } else { 5987e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert return false; 6087e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert } 6187e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert } 6287e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert 63fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public void registerDataSetObserver(DataSetObserver observer) { 64fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert if (mCursor != null) { 65fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert mCursor.registerDataSetObserver(observer); 66fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 67fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 68fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 69fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert public void unregisterDataSetObserver(DataSetObserver observer) { 70fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert if (mCursor != null) { 71fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert mCursor.unregisterDataSetObserver(observer); 72fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 73fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 74fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 75fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert @Override 76fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert protected SuggestionCursor current() { 77fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert return mCursor; 78fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert } 79fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert 805229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood public Collection<String> getExtraColumns() { 815229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood return mCursor.getExtraColumns(); 825229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood } 835229b06f00d20aac76cd8519b37f2a579d61c54fMathew Inwood 84fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert} 85