/// <inheritdoc/> protected override void UpdateViewsHolder(MyItemViewsHolder newOrRecycled) { // Initialize the views from the associated model ExampleItemModel model = Data[newOrRecycled.ItemIndex]; newOrRecycled.titleText.text = "[" + newOrRecycled.ItemIndex + "] " + model.title; }
IEnumerator FetchItemModelsFromServer(int maxCount, Action <List <ExampleItemModel> > onDone) { _Params.statusText.text = "Fetching " + maxCount + " from server..."; // Simulating server delay yield return(new WaitForSeconds(_Params.simulatedServerDelay)); // Generating some random models // Simulates the server either returning the requested number of items or less (meaning it doesn't have more) bool serverHasEnough = UnityEngine.Random.Range(0, 5) != 0; // 20% chance to have depleted the data on server // If server doesn't have enough, it may return less than maxCount, so we simulate that with a random number between 0 and maxCount+1 int actualReturnedCount = serverHasEnough ? maxCount : UnityEngine.Random.Range(0, maxCount + 1); var results = new List <ExampleItemModel>(); for (int i = 0; i < actualReturnedCount; ++i) { var m = new ExampleItemModel(); m.title = "Item got at " + DateTime.Now.ToString("hh:mm:ss"); results.Add(m); } _LoadedAll = results.Count < maxCount; onDone(results); }
IEnumerator FetchItemModelsFromServer(int count, Action <ExampleItemModel[]> onDone) { _Params.statusText.text = "Fetching " + count + " from server..."; // Simulating server delay yield return(new WaitForSeconds(_Params.simulatedServerDelay)); // Generating some random models var results = new ExampleItemModel[count]; for (int i = 0; i < count; ++i) { results[i] = new ExampleItemModel(); results[i].title = "Item got at " + DateTime.Now.ToString("hh:mm:ss"); } onDone(results); }