void BuildOptionItems() { // Replace top margin of option items SetTopMargin(2, flOptionItems); // Shuffle options if (!Lesson.DoNotShuffleOptionItems) { optionItems.Shuffle(); } // Add options to view flOptionItems.RemoveAllViews(); foreach (var item in optionItems) { // Flag item as an option item.IsOption = true; // Init container (the additional container is used only to define a padding for IRMGARD.FlowLayout elements) var container = CreateContentContainer(Resource.Id.flOptionContainer, CreateConceptView(item)); // Add drag handler container.GetChildAt(0).Touch += ConceptView_Touch_StartDrag; // Add view to option items flOptionItems.AddView(container); } }
private void BuildOptions(List <AbcRankOption> currentOptions) { // Shuffle options currentOptions.Shuffle(); // Add options to view flOptions.RemoveAllViews(); var adapter = new AbcRankAdapter(Activity.BaseContext, 0, currentOptions); for (var i = 0; i < currentOptions.Count; i++) { var view = adapter.GetView(i, null, null); var item = currentOptions.ElementAt(i); // Play sound if item has a media element that gets touched if (item.Media != null) { view.Touch += (sender, e) => { SoundPlayer.PlaySound(Activity.BaseContext, item.Media.SoundPath); }; } // Add drag view.Touch += (sender, e) => { var data = ClipData.NewPlainText("letter", item.Name); (sender as View).StartDrag(data, new View.DragShadowBuilder(sender as View), null, 0); }; flOptions.AddView(view); } }
protected override void InitIteration() { base.InitIteration(); var currentIteration = GetCurrentIteration <LetterDropIteration>(); // Randomize font case var random = new Random(); var fontCase = (Case)(random.Next(2) + 1); // Generate Options currentIteration.Options = GenerateOptions(currentIteration, 10, fontCase); // Generate Task letters currentIteration.TaskItems = new List <TaskItem>(); foreach (var letter in currentIteration.LettersToLearn) { var taskLetter = new TaskLetter(letter.ToCase(fontCase)); var taskItem = new TaskItem(taskLetter, null, true); currentIteration.TaskItems.Add(taskItem); } currentIteration.TaskItems.Shuffle(); flLetters.RemoveAllViews(); // Add options to view var letterAdapter = new LetterAdapter(Activity.BaseContext, 0, currentIteration.Options); for (var i = 0; i < currentIteration.Options.Count; i++) { // Add letter to view var view = letterAdapter.GetView(i, null, null); var letter = currentIteration.Options.ElementAt(i).Letter; // Add drag view.Touch += (sender, e) => { var data = ClipData.NewPlainText("letter", letter); (sender as View).StartDrag(data, new View.DragShadowBuilder(sender as View), null, 0); }; flLetters.AddView(view); } // Add task letters to view useAlternateView = currentIteration.TaskItems.Count > 5; llTaskItems.Visibility = (useAlternateView) ? ViewStates.Gone : ViewStates.Visible; flTaskItems.Visibility = (useAlternateView) ? ViewStates.Visible : ViewStates.Gone; BuildTaskLetters(currentIteration.TaskItems); }
void BuildOptions(List <LetterBase> options) { flLetters.RemoveAllViews(); var adapter = new LetterAdapter(Activity.BaseContext, 0, options); for (int i = 0; i < options.Count; i++) { // Add letter to view var view = adapter.GetView(i, null, null); var letter = options.ElementAt(i).Letter; view.Touch += (sender, e) => { var data = ClipData.NewPlainText("letter", letter); (sender as View).StartDrag(data, new View.DragShadowBuilder(sender as View), null, 0); }; flLetters.AddView(view); } }
private void BuildTaskLetters(List <TaskItem> taskItems) { if (useAlternateView) { flTaskItems.RemoveAllViews(); flTaskItems.HorizontalSpacing = (int)(8 * Resources.DisplayMetrics.Density); } else { llTaskItems.RemoveAllViews(); } var taskItemAdapter = new TaskItemAdapter(Activity.BaseContext, 0, taskItems); for (var i = 0; i < taskItems.Count; i++) { var view = taskItemAdapter.GetView(i, null, null); // Use different text size var letter = view.FindViewById <TextView>(Resource.Id.letter); letterTextSize = letter.TextSize / Resources.DisplayMetrics.ScaledDensity; // Define searched letters as drop zone if (taskItems.ElementAt(i).IsSearched) { view.Drag += View_Drag; } // Add letter to view if (useAlternateView) { var llLayout = view.FindViewById <RelativeLayout>(Resource.Id.llLayout); llLayout.SetMinimumWidth((int)(80 * Resources.DisplayMetrics.Density)); flTaskItems.AddView(view); } else { llTaskItems.AddView(view); } } }
protected override void InitIteration() { base.InitIteration(); var currentIteration = GetCurrentIteration <FindMissingLetterIteration>(); // Set random font case for whole iteration fontCase = Case.Lower; if (currentIteration.RandomizeCase) { var random = new Random(); fontCase = (Case)(random.Next(2) + 1); } // Create task letters ResetCorrectTaskLetter(currentIteration.TaskItems); BuildTaskLetters(currentIteration.TaskItems, fontCase); // Generate options currentIteration.Options = GenerateOptions(currentIteration, 10, fontCase); flLetters.RemoveAllViews(); var letterAdapter = new LetterAdapter(Activity.BaseContext, 0, currentIteration.Options.Cast <LetterBase>().ToList()); for (var i = 0; i < currentIteration.Options.Count; i++) { // Add letter to view var view = letterAdapter.GetView(i, null, null); var letter = currentIteration.Options.ElementAt(i).Letter; // Add drag view.Touch += (sender, e) => { var data = ClipData.NewPlainText("letter", letter); (sender as View).StartDrag(data, new View.DragShadowBuilder(sender as View), null, 0); }; flLetters.AddView(view); } }