SuggestionCursorWrapper.java revision fde948e69f59589cf0d217ea414af7947de600bb
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
21fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert/**
22fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert * A suggestion cursor that delegates all methods to another SuggestionCursor.
23fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert */
24fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringertpublic class SuggestionCursorWrapper extends AbstractSuggestionCursorWrapper {
25fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
26fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    private final SuggestionCursor mCursor;
27fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
28fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public SuggestionCursorWrapper(String userQuery, SuggestionCursor cursor) {
29fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        super(userQuery);
30fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        mCursor = cursor;
31fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
32fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
33fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public void close() {
34fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (mCursor != null) {
35fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            mCursor.close();
36fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        }
37fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
38fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
39fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public int getCount() {
40fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mCursor == null ? 0 : mCursor.getCount();
41fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
42fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
43fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public int getPosition() {
44fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mCursor == null ? 0 : mCursor.getPosition();
45fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
46fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
47fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public void moveTo(int pos) {
48fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (mCursor != null) {
49fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            mCursor.moveTo(pos);
50fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        }
51fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
52fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
53fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public void registerDataSetObserver(DataSetObserver observer) {
54fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (mCursor != null) {
55fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            mCursor.registerDataSetObserver(observer);
56fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        }
57fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
58fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
59fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public void unregisterDataSetObserver(DataSetObserver observer) {
60fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (mCursor != null) {
61fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            mCursor.unregisterDataSetObserver(observer);
62fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        }
63fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
64fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
65fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    @Override
66fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    protected SuggestionCursor current() {
67fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mCursor;
68fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
69fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
70fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert}
71