protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.IntelligentMistakesDataEntry); _riskPercentage = FindViewById <EditText>(Resource.Id.riskPercentage); _riskPercentage.SetFilters(new IInputFilter[] { new InputFilterMinMax(0, 100) }); _maxMistakes = FindViewById <EditText>(Resource.Id.maxMistakes); _maxMistakes.SetFilters(new IInputFilter[] { new InputFilterMinMax(-1, 100) }); _saveButton = FindViewById <Button>(Resource.Id.saveButton); if (Intent.Extras.GetInt("entryid") != -1) { var entry = JsonConvert.DeserializeObject <IntelligentMistakesDataEntry>(Intent.Extras.GetString("entry", "")); _riskPercentage.Text = entry.RiskPercentage.ToString(); _maxMistakes.Text = entry.MaxNumberOfMistakes.ToString(); } _saveButton.Click += (sender, e) => { var localEntry = new IntelligentMistakesDataEntry() { RiskPercentage = (_riskPercentage.Text != "" ? Int32.Parse(_riskPercentage.Text) : 0), MaxNumberOfMistakes = (_maxMistakes.Text != "" ? Int32.Parse(_maxMistakes.Text) : 0) }; Intent resultIntent = new Intent(); resultIntent.PutExtra("entry", JsonConvert.SerializeObject(localEntry)); resultIntent.PutExtra("entryid", Intent.Extras.GetInt("entryid")); SetResult(Result.Ok, resultIntent); Finish(); }; }
/// <summary> /// Gets the InstaShit's settings from user's input. /// </summary> /// <param name="ignoreSettings">Specifies if the settings file should be ignored.</param> /// <returns>The object of Settings class with loaded values.</returns> private static Settings GetSettingsFromUser(bool ignoreSettings) { Console.WriteLine(ignoreSettings ? "Please enter the following values:" : "Can't find settings file, please enter the following values:"); var settings = new Settings { Login = GetStringFromUser("Login"), Password = GetStringFromUser("Password"), MinimumSleepTime = GetIntFromUser("Minimum sleep time (in milliseconds)", 0, Int32.MaxValue), IntelligentMistakesData = new List <List <IntelligentMistakesDataEntry> >() }; settings.MaximumSleepTime = GetIntFromUser("Maximum sleep time (in milliseconds)", settings.MinimumSleepTime, Int32.MaxValue); Console.Write("Specify IntelligentMistakesData for session number 1 (y/n)? "); if (CanContinue()) { do { var i = settings.IntelligentMistakesData.Count; settings.IntelligentMistakesData.Add(new List <IntelligentMistakesDataEntry>()); do { Console.WriteLine($"IntelligentMistakeDataEntry number {settings.IntelligentMistakesData[i].Count + 1}"); var entry = new IntelligentMistakesDataEntry { RiskPercentage = GetIntFromUser("Risk of making the mistake (0-100)", 0, 100), MaxNumberOfMistakes = GetIntFromUser("Maximum number of mistakes (-1 = unlimited)", -1, Int32.MaxValue) }; settings.IntelligentMistakesData[i].Add(entry); Console.Write("Add another entry (y/n)? "); } while (CanContinue()); Console.Write($"Specify IntelligentMistakesData for session number {i + 2} (y/n)? "); } while (CanContinue()); Console.Write("Allow typo in answer (y/n)? "); if (!CanContinue()) { settings.AllowTypo = false; } Console.Write("Allow synonyms (y/n)? "); if (!CanContinue()) { settings.AllowSynonym = false; } } if (!ignoreSettings) { Console.Write("Save these settings (y/n)? "); if (CanContinue()) { File.WriteAllText(GetFileLocation("settings.json"), JsonConvert.SerializeObject(settings, Formatting.Indented)); } } return(settings); }