ListSuggestionCursor.java revision 94e8a2be78530170f50e7895a558bf8011bbf8e8
13e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert/* 23e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Copyright (C) 2009 The Android Open Source Project 33e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 43e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 53e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * you may not use this file except in compliance with the License. 63e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * You may obtain a copy of the License at 73e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 83e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 93e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 103e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Unless required by applicable law or agreed to in writing, software 113e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 123e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * See the License for the specific language governing permissions and 143e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * limitations under the License. 153e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */ 163e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 173e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertpackage com.android.quicksearchbox; 183e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 193e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport android.content.ComponentName; 203e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport android.content.Context; 213e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport android.content.Intent; 223e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport android.graphics.Rect; 233e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport android.graphics.drawable.Drawable; 243e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport android.net.Uri; 253e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport android.os.Bundle; 263e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 273e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertimport java.util.ArrayList; 283e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 293e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert/** 303e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * A SuggestionCursor that is backed by a list of SuggestionPosition objects. 313e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * This cursor does not own the SuggestionCursors that the SuggestionPosition 323e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * objects refer to. 333e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 343e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */ 353e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringertpublic class ListSuggestionCursor extends AbstractSuggestionCursor { 363e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 373e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert private final ArrayList<SuggestionPosition> mSuggestions; 383e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 393e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert private int mPos; 403e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 413e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public ListSuggestionCursor(String userQuery) { 423e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert super(userQuery); 433e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert mSuggestions = new ArrayList<SuggestionPosition>(); 443e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert mPos = 0; 453e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 463e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 473e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert /** 483e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * Adds a suggestion from another suggestion cursor. 493e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * 503e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * @param suggestionPos 513e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert * @return {@code true} if the suggestion was added. 523e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert */ 533e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public boolean add(SuggestionPosition suggestionPos) { 543e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert mSuggestions.add(suggestionPos); 553e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return true; 563e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 573e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 583e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public void close() { 593e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert mSuggestions.clear(); 6094e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney super.close(); 613e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 623e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 633e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public boolean isFailed() { 643e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return false; 653e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 663e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 673e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public int getPosition() { 683e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mPos; 693e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 703e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 713e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public void moveTo(int pos) { 723e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert mPos = pos; 733e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 743e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 7594e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney public void removeRow() { 7694e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney mSuggestions.remove(mPos); 7794e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney } 7894e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney 7994e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney public void replaceRow(SuggestionPosition suggestionPos) { 8094e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney mSuggestions.set(mPos, suggestionPos); 8194e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney } 8294e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney 833e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public int getCount() { 843e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mSuggestions.size(); 853e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 863e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 873e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert private SuggestionCursor current() { 883e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return mSuggestions.get(mPos).getSuggestion(); 893e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 903e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 913e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public Drawable getIcon(String iconId) { 923e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getIcon(iconId); 933e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 943e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 953e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public Uri getIconUri(String iconId) { 963e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getIconUri(iconId); 973e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 983e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 993e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public Intent getSecondarySuggestionIntent(Context context, Bundle appSearchData, Rect target) { 1003e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSecondarySuggestionIntent(context, appSearchData, target); 1013e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1023e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1033e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getShortcutId() { 1043e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getShortcutId(); 1053e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1063e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1073e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public ComponentName getSourceComponentName() { 1083e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSourceComponentName(); 1093e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1103e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1113e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public Drawable getSourceIcon() { 1123e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSourceIcon(); 1133e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1143e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1153e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public Uri getSourceIconUri() { 1163e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSourceIconUri(); 1173e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1183e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1193e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public CharSequence getSourceLabel() { 1203e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSourceLabel(); 1213e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1223e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1233e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getSuggestionDisplayQuery() { 1243e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSuggestionDisplayQuery(); 1253e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1263e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1273e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getSuggestionFormat() { 1283e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSuggestionFormat(); 1293e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1303e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1313e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getSuggestionIcon1() { 1323e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSuggestionIcon1(); 1333e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1343e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1353e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getSuggestionIcon2() { 1363e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSuggestionIcon2(); 1373e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1383e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 13994e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney public boolean isSpinnerWhileRefreshing() { 14094e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney return current().isSpinnerWhileRefreshing(); 14194e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney } 14294e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney 1433e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public Intent getSuggestionIntent(Context context, Bundle appSearchData, int actionKey, 1443e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert String actionMsg) { 1453e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSuggestionIntent(context, appSearchData, actionKey, actionMsg); 1463e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1473e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 14894e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney public String getSuggestionIntentExtraData() { 14994e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney return current().getSuggestionIntentExtraData(); 15094e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney } 15194e8a2be78530170f50e7895a558bf8011bbf8e8Bryan Mawhinney 1523e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getSuggestionText1() { 1533e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSuggestionText1(); 1543e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1553e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1563e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getSuggestionText2() { 1573e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSuggestionText2(); 1583e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1593e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1603e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public boolean hasSecondaryIntent() { 1613e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().hasSecondaryIntent(); 1623e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 1633e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert 1643e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert public String getSuggestionKey() { 1653e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert return current().getSuggestionKey(); 1663e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert } 167782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 168782dd228e78e9294692d639597f96c26283968bbBjorn Bringert public String getActionKeyMsg(int keyCode) { 169782dd228e78e9294692d639597f96c26283968bbBjorn Bringert return current().getActionKeyMsg(keyCode); 170782dd228e78e9294692d639597f96c26283968bbBjorn Bringert } 171782dd228e78e9294692d639597f96c26283968bbBjorn Bringert 1723e44ff1f2a204db3f479698cf0b3eab3d451dec2Bjorn Bringert} 173