1d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd/* 2d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Copyright (C) 2015 The Android Open Source Project 3d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 4d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Licensed under the Apache License, Version 2.0 (the "License"); 5d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * you may not use this file except in compliance with the License. 6d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * You may obtain a copy of the License at 7d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 8d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * http://www.apache.org/licenses/LICENSE-2.0 9d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * 10d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Unless required by applicable law or agreed to in writing, software 11d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * distributed under the License is distributed on an "AS IS" BASIS, 12d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * See the License for the specific language governing permissions and 14d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * limitations under the License. 15d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 16d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 17d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpackage com.android.messaging.ui.conversationlist; 18d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 19d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.content.Context; 20d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.database.Cursor; 21d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.support.v7.widget.RecyclerView; 22d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.view.LayoutInflater; 23d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport android.view.ViewGroup; 24d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 25d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.R; 26d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.ui.CursorRecyclerAdapter; 27d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddimport com.android.messaging.ui.conversationlist.ConversationListItemView.HostInterface; 28d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 29d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd/** 30d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * Provides an interface to expose Conversation List Cursor data to a UI widget like a ListView. 31d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 32d3b009ae55651f1e60950342468e3c37fdeb0796Mike Doddpublic class ConversationListAdapter 33d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd extends CursorRecyclerAdapter<ConversationListAdapter.ConversationListViewHolder> { 34d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 35d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd private final ConversationListItemView.HostInterface mClivHostInterface; 36d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 37d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public ConversationListAdapter(final Context context, final Cursor cursor, 38d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final ConversationListItemView.HostInterface clivHostInterface) { 39d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd super(context, cursor, 0); 40d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mClivHostInterface = clivHostInterface; 41d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd setHasStableIds(true); 42d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 43d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 44d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 45d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * @see com.android.messaging.ui.CursorRecyclerAdapter#bindViewHolder( 46d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * android.support.v7.widget.RecyclerView.ViewHolder, android.content.Context, 47d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * android.database.Cursor) 48d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 49d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd @Override 50d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public void bindViewHolder(final ConversationListViewHolder holder, final Context context, 51d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final Cursor cursor) { 52d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final ConversationListItemView conversationListItemView = holder.mView; 53d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd conversationListItemView.bind(cursor, mClivHostInterface); 54d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 55d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 56d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd @Override 57d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public ConversationListViewHolder createViewHolder(final Context context, 58d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final ViewGroup parent, final int viewType) { 59d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final LayoutInflater layoutInflater = LayoutInflater.from(context); 60d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final ConversationListItemView itemView = 61d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd (ConversationListItemView) layoutInflater.inflate( 62d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd R.layout.conversation_list_item_view, null); 63d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd return new ConversationListViewHolder(itemView); 64d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 65d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 66d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd /** 67d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd * ViewHolder that holds a ConversationListItemView. 68d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd */ 69d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public static class ConversationListViewHolder extends RecyclerView.ViewHolder { 70d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd final ConversationListItemView mView; 71d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd 72d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd public ConversationListViewHolder(final ConversationListItemView itemView) { 73d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd super(itemView); 74d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd mView = itemView; 75d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 76d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd } 77d3b009ae55651f1e60950342468e3c37fdeb0796Mike Dodd} 78