diff options
author | Ryan O'Leary <ryanaoleary@google.com> | 2022-08-24 08:27:25 +0000 |
---|---|---|
committer | Ryan O'Leary <ryanaoleary@google.com> | 2022-08-26 04:14:34 +0000 |
commit | af26f6b8b6d8aad71c1c0fcf6f45eb4c448b1eab (patch) | |
tree | 4adb9a9721a00b692a42f50d032c7ab203adaf3a /src | |
parent | 1450d65216519e18bc8ba75ac9a20f6d416a3d0d (diff) | |
download | QuickSearchBox-af26f6b8b6d8aad71c1c0fcf6f45eb4c448b1eab.tar.gz |
Copy of SuggestionsListAdapter.java for tracking git history of conversion
Test: manual - opening both .java and .kt files shows that they are identical
Change-Id: I1939424b47ac2deb4032a87db6111001b1e1c4cb
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/quicksearchbox/ui/SuggestionsListAdapter.kt | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/com/android/quicksearchbox/ui/SuggestionsListAdapter.kt b/src/com/android/quicksearchbox/ui/SuggestionsListAdapter.kt new file mode 100644 index 0000000..6545c28 --- /dev/null +++ b/src/com/android/quicksearchbox/ui/SuggestionsListAdapter.kt @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.quicksearchbox.ui; + +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ListAdapter; + +import com.android.quicksearchbox.SuggestionCursor; +import com.android.quicksearchbox.SuggestionPosition; +import com.android.quicksearchbox.Suggestions; + +/** + * Uses a {@link Suggestions} object to back a {@link SuggestionsView}. + */ +public class SuggestionsListAdapter extends SuggestionsAdapterBase<ListAdapter> { + + private Adapter mAdapter; + + public SuggestionsListAdapter(SuggestionViewFactory viewFactory) { + super(viewFactory); + mAdapter = new Adapter(); + } + + @Override + public boolean isEmpty() { + return mAdapter.getCount() == 0; + } + + @Override + public SuggestionPosition getSuggestion(long suggestionId) { + return new SuggestionPosition(getCurrentSuggestions(), (int) suggestionId); + } + + @Override + public BaseAdapter getListAdapter() { + return mAdapter; + } + + @Override + public void notifyDataSetChanged() { + mAdapter.notifyDataSetChanged(); + } + + @Override + public void notifyDataSetInvalidated() { + mAdapter.notifyDataSetInvalidated(); + } + + class Adapter extends BaseAdapter { + + @Override + public int getCount() { + SuggestionCursor s = getCurrentSuggestions(); + return s == null ? 0 : s.getCount(); + } + + @Override + public Object getItem(int position) { + return getSuggestion(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + return SuggestionsListAdapter.this.getView( + getCurrentSuggestions(), position, position, convertView, parent); + } + + @Override + public int getItemViewType(int position) { + return getSuggestionViewType(getCurrentSuggestions(), position); + } + + @Override + public int getViewTypeCount() { + return getSuggestionViewTypeCount(); + } + + } + +} |