public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.Inflate(Resource.Layout.HomeFavoritesFragment, container, false); favoritesView = view.FindViewById(Resource.Id.FavoritesFragment_Favorites); noFavoritesView = view.FindViewById(Resource.Id.FavoritesFragment_NoFavorites); RecyclerView linesRecyclerView = view.FindViewById <RecyclerView>(Resource.Id.FavoritesFragment_FavoriteLineList); linesRecyclerView.SetLayoutManager(new WrapLayoutManager(Activity)); linesRecyclerView.AddItemDecoration(new DividerItemDecoration(Activity, LinearLayoutManager.Vertical)); linesRecyclerView.SetAdapter(linesAdapter = new LinesAdapter(Enumerable.Empty <Line>())); RecyclerView stopsRecyclerView = view.FindViewById <RecyclerView>(Resource.Id.FavoritesFragment_FavoriteStopList); stopsRecyclerView.SetLayoutManager(new WrapLayoutManager(Activity)); stopsRecyclerView.AddItemDecoration(new DividerItemDecoration(Activity, LinearLayoutManager.Vertical)); stopsRecyclerView.SetAdapter(stopsAdapter = new GenericStopsAdapter()); stopsAdapter.Click += StopsAdapter_Click; RefreshFavorites(); return(view); }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.Inflate(Resource.Layout.HomeStopsFragment, container, false); // Load view RecyclerView recyclerView = view.FindViewById <RecyclerView>(Resource.Id.StopsFragment_StopList); recyclerView.SetLayoutManager(new LinearLayoutManager(Activity)); recyclerView.AddItemDecoration(new DividerItemDecoration(Activity, LinearLayoutManager.Vertical)); recyclerView.SetAdapter(stopsAdapter = new GenericStopsAdapter()); // Setup adapter stopsAdapter.Click += StopsAdapter_Click; stopsAdapter.Filter = (stop, search) => { // ASCII normalize strings string value = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(stop.Name.ToLowerInvariant())); string pattern = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(search.ToLowerInvariant())); // Remove non character strings value = new string(value.Select(c => char.IsLetter(c) ? c : ' ').ToArray()); pattern = new string(pattern.Select(c => char.IsLetter(c) ? c : ' ').ToArray()); return(value.Contains(pattern)); }; // Trigger async loading Task.Run(() => { foreach (Line line in TramUrWayApplication.Lines) { line.Loaded.WaitOne(); } Activity.RunOnUiThread(() => { stopsAdapter.Items = TramUrWayApplication.Lines.SelectMany(l => l.Stops) .GroupBy(s => Utils.Hash(s.Line.Id, s.Name)) .Select(g => g.First()); }); }); return(view); }