summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Android/Renderers/ItemViewAdapter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.Android/Renderers/ItemViewAdapter.cs')
-rw-r--r--Xamarin.Forms.Platform.Android/Renderers/ItemViewAdapter.cs89
1 files changed, 0 insertions, 89 deletions
diff --git a/Xamarin.Forms.Platform.Android/Renderers/ItemViewAdapter.cs b/Xamarin.Forms.Platform.Android/Renderers/ItemViewAdapter.cs
deleted file mode 100644
index 84dfa171..00000000
--- a/Xamarin.Forms.Platform.Android/Renderers/ItemViewAdapter.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-using System.Collections.Generic;
-using Android.Support.V7.Widget;
-using Android.Views;
-
-namespace Xamarin.Forms.Platform.Android
-{
- internal class ItemViewAdapter : RecyclerView.Adapter
- {
- readonly IVisualElementRenderer _renderer;
- readonly Dictionary<int, object> _typeByTypeId;
- readonly Dictionary<object, int> _typeIdByType;
- int _nextItemTypeId;
-
- public ItemViewAdapter(IVisualElementRenderer carouselRenderer)
- {
- _renderer = carouselRenderer;
- _typeByTypeId = new Dictionary<int, object>();
- _typeIdByType = new Dictionary<object, int>();
- _nextItemTypeId = 0;
- }
-
- public override int ItemCount
- {
- get { return Element.Count; }
- }
-
- IItemViewController Controller
- {
- get { return Element; }
- }
-
- ItemsView Element
- {
- get { return (ItemsView)_renderer.Element; }
- }
-
- public override int GetItemViewType(int position)
- {
- // get item and type from ItemSource and ItemTemplate
- object item = Controller.GetItem(position);
- object type = Controller.GetItemType(item);
-
- // map type as DataTemplate to type as Id
- int id = default(int);
- if (!_typeIdByType.TryGetValue(type, out id))
- {
- id = _nextItemTypeId++;
- _typeByTypeId[id] = type;
- _typeIdByType[type] = id;
- }
- return id;
- }
-
- public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
- {
- var carouselHolder = (CarouselViewHolder)holder;
-
- object item = Controller.GetItem(position);
- Controller.BindView(carouselHolder.View, item);
- }
-
- public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
- {
- // create view from type
- object type = _typeByTypeId[viewType];
- View view = Controller.CreateView(type);
-
- // create renderer for view
- IVisualElementRenderer renderer = Platform.CreateRenderer(view);
- Platform.SetRenderer(view, renderer);
-
- // package renderer + view
- return new CarouselViewHolder(view, renderer);
- }
-
- class CarouselViewHolder : RecyclerView.ViewHolder
- {
- public CarouselViewHolder(View view, IVisualElementRenderer renderer) : base(renderer.ViewGroup)
- {
- VisualElementRenderer = renderer;
- View = view;
- }
-
- public View View { get; }
-
- public IVisualElementRenderer VisualElementRenderer { get; }
- }
- }
-} \ No newline at end of file