From 6c475dd621ce9a531aa3c8fe382c72ccd60c7f41 Mon Sep 17 00:00:00 2001 From: Michael Gordeev Date: Thu, 12 Nov 2020 15:21:55 +0300 Subject: [PATCH] Cabinet functionality updated (#25) Cabinet authorization has been turned on Occupation check in functionality --- .../Activities/MainActivity.cs | 62 +- .../GUTSchedule.Droid.csproj | 5 +- .../Resources/Resource.designer.cs | 663 ++++++++--------- .../Resources/layout/Main.xml | 25 +- .../Resources/values-ru/strings.xml | 176 ++--- .../Resources/values/strings.xml | 168 ++--- .../CabinetScheduleUnitTest.cs | 42 +- .../GUTSchedule.UWP/Pages/MainPage.xaml | 9 +- .../GUTSchedule.UWP/Pages/MainPage.xaml.cs | 68 +- .../GUTSchedule.UWP/Strings/en/Resources.resw | 679 +++++++++--------- .../GUTSchedule.UWP/Strings/ru/Resources.resw | 679 +++++++++--------- GUT.Schedule/GUTSchedule/Parser.cs | 30 +- .../en-IN/changelogs/android-changelog.txt | 6 +- .../ru-RU/changelogs/android-changelog.txt | 6 +- .../windows/en/baseListing/releaseNotes.txt | 6 +- .../windows/ru/baseListing/releaseNotes.txt | 6 +- 16 files changed, 1457 insertions(+), 1173 deletions(-) diff --git a/GUT.Schedule/GUTSchedule.Droid/Activities/MainActivity.cs b/GUT.Schedule/GUTSchedule.Droid/Activities/MainActivity.cs index fb6270d..da6118b 100644 --- a/GUT.Schedule/GUTSchedule.Droid/Activities/MainActivity.cs +++ b/GUT.Schedule/GUTSchedule.Droid/Activities/MainActivity.cs @@ -26,10 +26,21 @@ namespace GUTSchedule.Droid.Activities public static int SelectedCalendarIndex { get; set; } public static int Reminder { get; set; } + private List<(string, string)> _availableOccupations; + private List<(string, string)> AvailableOccupations + { + get => _availableOccupations; + set + { + _availableOccupations = value; + applyForOccupation.Visibility = value.Count > 0 ? ViewStates.Visible : ViewStates.Gone; + } + } + DateTime startDate = DateTime.Today; DateTime endDate = DateTime.Today.AddDays(7); - Button start, end, export; + Button start, end, export, applyForOccupation, validateCredential; Button forDay, forWeek, forMonth, forSemester; Spinner faculty, course, group, reminder, calendar; CheckBox groupTitle, authorize; @@ -81,10 +92,19 @@ namespace GUTSchedule.Droid.Activities start.Text = startDate.ToShortDateString(); groupTitle.Checked = prefs.GetBoolean("AddGroupToHeader", false); - //authorize.Checked = prefs.GetBoolean("Authorize", true); + authorize.Checked = prefs.GetBoolean("Authorize", true); email.Text = prefs.GetString("email", ""); password.Text = prefs.GetString("password", ""); + + try + { + AvailableOccupations = await Parser.CheckAvailableOccupations(email.Text, password.Text); + } + catch + { + AvailableOccupations = new List<(string, string)>(); + } } private void Export_Click(object sender, EventArgs e) @@ -119,7 +139,7 @@ namespace GUTSchedule.Droid.Activities // According to this SO thread: https://stackoverflow.com/questions/1925486/android-storing-username-and-password // I consider Preferences as safe enough method for storing credentials // А во-вторых, даже такой казалось бы небезопасный метод хранения учетных данных в сто раз надежнее того дерьма, - // что творится на серверах Бонча (я не шучу, там все ОЧЕНЬ плохо) + // что творится на серверах Бонча (я не шучу, там пиздец) // Ну и в-третьих: Андроид - это пиздец и настоящий ад разработчика. И если бы была моя воля, я бы под него никогда не писал #FuckAndroid // З.Ы. Помнишь про второй пункт? Так вот, если ты используешь такой же пароль как в ЛК где-то еще, настоятельно рекомендую его поменять PreferenceManager.GetDefaultSharedPreferences(this).Edit().PutString("email", email.Text).Apply(); @@ -192,6 +212,8 @@ namespace GUTSchedule.Droid.Activities forWeek = FindViewById