SuggestionCursorWrapper.java revision 87e947cbd9f279a83337900ff8bbd5ab0a8dc455
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
5387e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert    public boolean moveToNext() {
5487e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert        if (mCursor != null) {
5587e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert            return mCursor.moveToNext();
5687e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert        } else {
5787e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert            return false;
5887e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert        }
5987e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert    }
6087e947cbd9f279a83337900ff8bbd5ab0a8dc455Bjorn Bringert
61fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public void registerDataSetObserver(DataSetObserver observer) {
62fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (mCursor != null) {
63fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            mCursor.registerDataSetObserver(observer);
64fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        }
65fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
66fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
67fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    public void unregisterDataSetObserver(DataSetObserver observer) {
68fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        if (mCursor != null) {
69fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert            mCursor.unregisterDataSetObserver(observer);
70fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        }
71fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
72fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
73fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    @Override
74fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    protected SuggestionCursor current() {
75fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert        return mCursor;
76fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert    }
77fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert
78fde948e69f59589cf0d217ea414af7947de600bbBjorn Bringert}
79