1 /* 2 * Copyright (C) 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.car.ui.plugin.oemapis.recyclerview; 17 18 import android.view.ViewGroup; 19 20 /** 21 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter} 22 * 23 * @param <V> A class that extends ViewHolder that will be used by the adapter. 24 */ 25 public interface AdapterOEMV1<V extends ViewHolderOEMV1> { 26 27 int ALLOW = 0; 28 int PREVENT_WHEN_EMPTY = 1; 29 int PREVENT = 2; 30 31 /** 32 * A value to pass to {@link #setMaxItems(int)} that indicates there should be no limit. 33 */ 34 int UNLIMITED = -1; 35 36 /** 37 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#getItemCount()} 38 */ getItemCount()39 int getItemCount(); 40 41 /** 42 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#getItemId(int)} 43 */ getItemId(int position)44 long getItemId(int position); 45 46 /** 47 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#getItemViewType(int)} 48 */ getItemViewType(int position)49 int getItemViewType(int position); 50 51 /** 52 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#getStateRestorationPolicy()} 53 */ getStateRestorationPolicyInt()54 int getStateRestorationPolicyInt(); 55 56 /** 57 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#onAttachedToRecyclerView} 58 */ onAttachedToRecyclerView(RecyclerViewOEMV1 recyclerView)59 void onAttachedToRecyclerView(RecyclerViewOEMV1 recyclerView); 60 61 /** 62 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#bindViewHolder} 63 */ bindViewHolder(V holder, int position)64 void bindViewHolder(V holder, int position); 65 66 /** 67 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#createViewHolder} 68 */ createViewHolder(ViewGroup parent, int viewType)69 V createViewHolder(ViewGroup parent, int viewType); 70 71 /** 72 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#onDetachedFromRecyclerView} 73 */ onDetachedFromRecyclerView(RecyclerViewOEMV1 recyclerView)74 void onDetachedFromRecyclerView(RecyclerViewOEMV1 recyclerView); 75 76 /** 77 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#onFailedToRecycleView} 78 */ onFailedToRecycleView(V holder)79 boolean onFailedToRecycleView(V holder); 80 81 /** 82 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#onViewAttachedToWindow} 83 */ onViewAttachedToWindow(V holder)84 void onViewAttachedToWindow(V holder); 85 86 /** 87 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#onViewDetachedFromWindow} 88 */ onViewDetachedFromWindow(V holder)89 void onViewDetachedFromWindow(V holder); 90 91 /** 92 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#onViewRecycled} 93 */ onViewRecycled(V holder)94 void onViewRecycled(V holder); 95 96 /** 97 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#registerAdapterDataObserver} 98 */ registerAdapterDataObserver(AdapterDataObserverOEMV1 observer)99 void registerAdapterDataObserver(AdapterDataObserverOEMV1 observer); 100 101 /** 102 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#unregisterAdapterDataObserver} 103 */ unregisterAdapterDataObserver(AdapterDataObserverOEMV1 observer)104 void unregisterAdapterDataObserver(AdapterDataObserverOEMV1 observer); 105 106 /** 107 * See {@link androidx.recyclerview.widget.RecyclerView.Adapter#hasStableIds} 108 */ hasStableIds()109 boolean hasStableIds(); 110 111 /** 112 * Sets the maximum number of items available in the adapter. A value less than '0' means 113 * the list should not be capped. 114 */ setMaxItems(int maxItems)115 void setMaxItems(int maxItems); 116 } 117