From 789221892b77f06666dde43a6bc59eb4cb55188c Mon Sep 17 00:00:00 2001 From: osaama05 Date: Mon, 19 Sep 2022 12:38:41 +0300 Subject: [PATCH 01/39] Added ShowDatesTasks method --- TODO-app/TODO-app/MainActivity.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index a581cd6..339bd68 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -145,10 +145,7 @@ protected override void OnCreate(Bundle savedInstanceState) InitializeElements(); CalendarDater(); - foreach (TaskItem t in taskList) - { - CreateTaskElement(t.Text, t.IsDone); - } + ShowDatestasks(DateTime.Today); UpdateTaskCount(); GetStyle(); @@ -976,5 +973,16 @@ private void SortBy(object sender, EventArgs e) break; } } + + private void ShowDatestasks(DateTime date) + { + foreach (TaskItem t in taskList) + { + if (t.DueDate == date) + { + CreateTaskElement(t.Text, t.IsDone); + } + } + } } } \ No newline at end of file From 3321c6918accf4d642d1cf7a43c8f6b2b755fc65 Mon Sep 17 00:00:00 2001 From: Niilo Poutanen Date: Mon, 19 Sep 2022 12:39:24 +0300 Subject: [PATCH 02/39] fixed ready state --- TODO-app/TODO-app/MainActivity.cs | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index a581cd6..ce2b8c3 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -856,27 +856,22 @@ private void TaskToggle(object sender, EventArgs e) TextView header = (TextView)buttonParent.GetChildAt(1); foreach (TaskItem t in taskList) { - if (t.Text == header.ToString()) + if (t.Text == header.Text) { t.IsDone = !t.IsDone; + if(t.IsDone == true) + { + button.Background = active; + } + else if (t.IsDone == false) + { + button.Background = inactive; + } } } file.WriteFile(taskList); - - - if (button.Tag.ToString() == "Inactive") - { - button.Background = active; - button.Tag = "Active"; - } - else if (button.Tag.ToString() == "Active") - { - button.Background = inactive; - button.Tag = "Inactive"; - } - //buttonParent.RemoveAllViews(); //scrollLayout.RemoveView(buttonParent); UpdateTaskCount(); From 20dfacb4c40ac26d698fb5265135e603264b426e Mon Sep 17 00:00:00 2001 From: Tolpanjuuri Date: Mon, 19 Sep 2022 12:43:37 +0300 Subject: [PATCH 03/39] sort by --- TODO-app/TODO-app/MainActivity.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index bc9116b..2e747d2 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -967,6 +967,8 @@ private void SortBy(object sender, EventArgs e) { case Resource.Id.SortByDueDate: sortByDueDate.BackgroundTintList = GetColorStateList(GetStyle()); + TaskItem.SortListByDueDate(taskList); + break; From 435875ab20d4263a9f57e5070eb562c51acb4d91 Mon Sep 17 00:00:00 2001 From: Niilo Poutanen Date: Mon, 19 Sep 2022 12:45:42 +0300 Subject: [PATCH 04/39] added calendar select --- TODO-app/TODO-app/MainActivity.cs | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index 329cb08..f0d5055 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -682,13 +682,14 @@ private void CalendarDater() /// private void CalendarSelector(object sender, EventArgs e) { + scrollLayout.RemoveAllViews(); var button = (RelativeLayout)sender; switch (button.Id) { case Resource.Id.date1btn: activeDate = 1; date1Btn.BackgroundTintList = GetColorStateList(GetStyle()); - + ShowDatestasks(DateTime.Today); date2Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date3Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date4Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); @@ -700,7 +701,7 @@ private void CalendarSelector(object sender, EventArgs e) case Resource.Id.date2btn: activeDate = 2; date2Btn.BackgroundTintList = GetColorStateList(GetStyle()); - + ShowDatestasks(DateTime.Today.AddDays(1)); date1Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date3Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date4Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); @@ -712,7 +713,7 @@ private void CalendarSelector(object sender, EventArgs e) case Resource.Id.date3btn: activeDate = 3; date3Btn.BackgroundTintList = GetColorStateList(GetStyle()); - + ShowDatestasks(DateTime.Today.AddDays(2)); date1Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date2Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date4Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); @@ -723,7 +724,7 @@ private void CalendarSelector(object sender, EventArgs e) case Resource.Id.date4btn: activeDate = 4; date4Btn.BackgroundTintList = GetColorStateList(GetStyle()); - + ShowDatestasks(DateTime.Today.AddDays(3)); date1Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date2Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date3Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); @@ -735,7 +736,7 @@ private void CalendarSelector(object sender, EventArgs e) case Resource.Id.date5btn: activeDate = 5; date5Btn.BackgroundTintList = GetColorStateList(GetStyle()); - + ShowDatestasks(DateTime.Today.AddDays(4)); date1Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date2Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date3Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); @@ -747,7 +748,7 @@ private void CalendarSelector(object sender, EventArgs e) case Resource.Id.date6btn: activeDate = 6; date6Btn.BackgroundTintList = GetColorStateList(GetStyle()); - + ShowDatestasks(DateTime.Today.AddDays(5)); date1Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date2Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date3Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); @@ -759,7 +760,7 @@ private void CalendarSelector(object sender, EventArgs e) case Resource.Id.date7btn: activeDate = 7; date7Btn.BackgroundTintList = GetColorStateList(GetStyle()); - + ShowDatestasks(DateTime.Today.AddDays(6)); date1Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date2Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date3Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); @@ -767,7 +768,10 @@ private void CalendarSelector(object sender, EventArgs e) date5Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); date6Btn.BackgroundTintList = GetColorStateList(Resource.Color.colorButton); break; + + } + UpdateTaskCount(); } /// @@ -817,7 +821,15 @@ private void CreateTaskElement(string taskName, bool isTrue) scrollLayout.AddView(cardBG); cardBG.AddView(toggleBtn); cardBG.AddView(header); - elementIds.Add(taskName, cardBG.Id); + try + { + elementIds.Add(taskName, cardBG.Id); + } + catch + { + + } + } /// From 78a285992b9608fe2bd08a9a82e73cf28225ee5a Mon Sep 17 00:00:00 2001 From: Tolpanjuuri Date: Mon, 19 Sep 2022 12:46:19 +0300 Subject: [PATCH 05/39] SortBy working? --- TODO-app/TODO-app/MainActivity.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index 044d0f8..6582e5a 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -960,12 +960,22 @@ private void SortBy(object sender, EventArgs e) case Resource.Id.SortByDueDate: sortByDueDate.BackgroundTintList = GetColorStateList(GetStyle()); TaskItem.SortListByDueDate(taskList); - + scrollLayout.RemoveAllViews(); + foreach(TaskItem task in taskList) + { + CreateTaskElement(task.Text, task.IsDone); + } break; case Resource.Id.SortByCreationDate: sortByCreationDate.BackgroundTintList = GetColorStateList(GetStyle()); + TaskItem.SortListByCreationDate(taskList); + scrollLayout.RemoveAllViews(); + foreach (TaskItem task in taskList) + { + CreateTaskElement(task.Text, task.IsDone); + } break; } From 24929f7f32d08cdd2906cfc93057ae0c4c24b06c Mon Sep 17 00:00:00 2001 From: Niilo Poutanen Date: Mon, 19 Sep 2022 12:50:07 +0300 Subject: [PATCH 06/39] better hitboxes --- TODO-app/TODO-app/Resources/layout/activity_main.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/TODO-app/TODO-app/Resources/layout/activity_main.xml b/TODO-app/TODO-app/Resources/layout/activity_main.xml index 2ed1cca..d7b4c21 100644 --- a/TODO-app/TODO-app/Resources/layout/activity_main.xml +++ b/TODO-app/TODO-app/Resources/layout/activity_main.xml @@ -355,7 +355,7 @@ Date: Mon, 19 Sep 2022 13:02:02 +0300 Subject: [PATCH 07/39] Doesnt create elements if due date isnt current day --- TODO-app/TODO-app/MainActivity.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index f0d5055..a77bb01 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -401,8 +401,16 @@ private void CloseCreateView(object sender, EventArgs e) CreateTaskItem(taskNameField.Text, dueDate); file.WriteFile(taskList); - CreateTaskElement(taskname,false); - UpdateTaskCount(); + for (int i = 1; i < 8; i++) + { + if (activeDate == i) + { + ShowDatestasks(DateTime.Today.AddDays(i--)); + UpdateTaskCount(); + break; + } + } + mainHeader.Visibility = ViewStates.Visible; createTaskHeader.Visibility = ViewStates.Gone; From 5729a4c771cc9a3c580d4a8e964cc17df24e31b5 Mon Sep 17 00:00:00 2001 From: Niilo Poutanen Date: Mon, 19 Sep 2022 13:03:55 +0300 Subject: [PATCH 08/39] whoops --- TODO-app/TODO-app/Resources/layout/activity_main.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/TODO-app/TODO-app/Resources/layout/activity_main.xml b/TODO-app/TODO-app/Resources/layout/activity_main.xml index d7b4c21..8580fd9 100644 --- a/TODO-app/TODO-app/Resources/layout/activity_main.xml +++ b/TODO-app/TODO-app/Resources/layout/activity_main.xml @@ -355,7 +355,7 @@ Date: Mon, 19 Sep 2022 13:06:38 +0300 Subject: [PATCH 09/39] Fix to my latest commit --- TODO-app/TODO-app/MainActivity.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index a77bb01..fa3cd18 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -403,6 +403,13 @@ private void CloseCreateView(object sender, EventArgs e) for (int i = 1; i < 8; i++) { + if (activeDate == 1) + { + ShowDatestasks(DateTime.Today); + UpdateTaskCount(); + break; + } + if (activeDate == i) { ShowDatestasks(DateTime.Today.AddDays(i--)); From 712e5a8caa1caafb396c897df3f8e5b80abd5867 Mon Sep 17 00:00:00 2001 From: Tolpanjuuri Date: Mon, 19 Sep 2022 13:07:14 +0300 Subject: [PATCH 10/39] SortBy... Done! hopefully --- TODO-app/TODO-app/MainActivity.cs | 7 +++---- TODO-app/TODO-app/TaskItem.cs | 14 ++++++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index 35b0594..0718bd2 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -971,9 +971,8 @@ private void SortBy(object sender, EventArgs e) { case Resource.Id.SortByDueDate: sortByDueDate.BackgroundTintList = GetColorStateList(GetStyle()); - TaskItem.SortListByDueDate(taskList); scrollLayout.RemoveAllViews(); - foreach(TaskItem task in taskList) + foreach(TaskItem task in TaskItem.SortListByDueDate(taskList)) { CreateTaskElement(task.Text, task.IsDone); } @@ -982,9 +981,9 @@ private void SortBy(object sender, EventArgs e) case Resource.Id.SortByCreationDate: sortByCreationDate.BackgroundTintList = GetColorStateList(GetStyle()); - TaskItem.SortListByCreationDate(taskList); + scrollLayout.RemoveAllViews(); - foreach (TaskItem task in taskList) + foreach (TaskItem task in TaskItem.SortListByCreationDate(taskList)) { CreateTaskElement(task.Text, task.IsDone); } diff --git a/TODO-app/TODO-app/TaskItem.cs b/TODO-app/TODO-app/TaskItem.cs index 62fee53..f992fd8 100644 --- a/TODO-app/TODO-app/TaskItem.cs +++ b/TODO-app/TODO-app/TaskItem.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; +using static Android.Provider.Contacts; namespace TODO_app { @@ -39,14 +40,19 @@ public TaskItem() internal static List SortListByDueDate(List taskList) { - taskList.OrderBy(x => x.dueDate).ToList(); - return taskList; + var tasks = from t in taskList + orderby t.dueDate + select t; + return tasks.ToList(); } internal static List SortListByCreationDate(List taskList) { - taskList.OrderBy(x => x.creationTime).ToList(); - return taskList; + var tasks = from t in taskList + orderby t.CreationTime + select t; + return tasks.ToList(); + } internal static List SortListByIsDone(List taskList) From 3e45a8731cae81f8f55b8b02f0b11382fb475cd7 Mon Sep 17 00:00:00 2001 From: Niilo Poutanen Date: Mon, 19 Sep 2022 13:22:08 +0300 Subject: [PATCH 11/39] scroll doesn't work sometimes --- TODO-app/TODO-app/MainActivity.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index 63f2fca..af9f5b4 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -39,7 +39,7 @@ namespace TODO_app [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)] public class MainActivity : AppCompatActivity { - private int activeDate; + private int activeDate = 1; private string currentTheme; private bool guideDone; Button btnCreateTask; @@ -467,15 +467,25 @@ private void ShowAll(object sender, EventArgs e) { if (calendarView.Visibility == ViewStates.Visible) { + scrollLayout.RemoveAllViews(); calendarView.Visibility = ViewStates.Gone; sortByDueDate.Visibility = ViewStates.Visible; sortByCreationDate.Visibility = ViewStates.Visible; + foreach (TaskItem t in taskList) + { + CreateTaskElement(t.Text, t.IsDone); + } + UpdateTaskCount(); + } else if (calendarView.Visibility == ViewStates.Gone) { + scrollLayout.RemoveAllViews(); + ShowDatestasks(DateTime.Today.AddDays(activeDate - 1)); calendarView.Visibility = ViewStates.Visible; sortByDueDate.Visibility = ViewStates.Gone; sortByCreationDate.Visibility = ViewStates.Gone; + UpdateTaskCount(); } } From 730057cb0a90ad37a8fbfd403057e91b29e00ba2 Mon Sep 17 00:00:00 2001 From: Niilo Poutanen Date: Mon, 19 Sep 2022 13:31:08 +0300 Subject: [PATCH 12/39] scrollbar fix testing --- TODO-app/TODO-app/Resources/layout/activity_main.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TODO-app/TODO-app/Resources/layout/activity_main.xml b/TODO-app/TODO-app/Resources/layout/activity_main.xml index 8580fd9..21be37a 100644 --- a/TODO-app/TODO-app/Resources/layout/activity_main.xml +++ b/TODO-app/TODO-app/Resources/layout/activity_main.xml @@ -598,7 +598,7 @@ android:id="@+id/ScrollLayout" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:paddingLeft="20dp" android:paddingRight="20dp" android:orientation="vertical"> From 1808ef75ede2c4600df1a23b105f3c587d19fea5 Mon Sep 17 00:00:00 2001 From: Niilo Poutanen Date: Mon, 19 Sep 2022 13:32:21 +0300 Subject: [PATCH 13/39] scroll works! --- TODO-app/TODO-app/Resources/layout/activity_main.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TODO-app/TODO-app/Resources/layout/activity_main.xml b/TODO-app/TODO-app/Resources/layout/activity_main.xml index 21be37a..99b2b36 100644 --- a/TODO-app/TODO-app/Resources/layout/activity_main.xml +++ b/TODO-app/TODO-app/Resources/layout/activity_main.xml @@ -590,7 +590,7 @@ From a8b89fcab5b932d2905beb37e59e0deb6409d869 Mon Sep 17 00:00:00 2001 From: osaama05 Date: Mon, 19 Sep 2022 13:33:02 +0300 Subject: [PATCH 14/39] ???? --- TODO-app/TODO-app/MainActivity.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index 63f2fca..3fb5cbc 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -403,15 +403,17 @@ private void CloseCreateView(object sender, EventArgs e) for (int i = 1; i < 8; i++) { - if (activeDate == 1) + if (activeDate == 1 || activeDate == 0) { + scrollLayout.RemoveAllViews(); ShowDatestasks(DateTime.Today); UpdateTaskCount(); break; } - if (activeDate == i) + else if (activeDate == i) { + scrollLayout.RemoveAllViews(); ShowDatestasks(DateTime.Today.AddDays(i--)); UpdateTaskCount(); break; From f5ef3d163dadb9bd2f650ab6902922d6e909e12b Mon Sep 17 00:00:00 2001 From: osaama05 Date: Mon, 19 Sep 2022 13:45:23 +0300 Subject: [PATCH 15/39] What is going on --- TODO-app/TODO-app/MainActivity.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index 7e01194..6c5f879 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -399,7 +399,7 @@ private void CloseCreateView(object sender, EventArgs e) else { CreateTaskItem(taskNameField.Text, dueDate); - file.WriteFile(taskList); + //file.WriteFile(taskList); for (int i = 1; i < 8; i++) { @@ -931,6 +931,7 @@ private void CreateTaskItem(string name, DateTime dueDate) task.Text = name; task.DueDate = dueDate; taskList.Add(task); + file.WriteFile(taskList); } private void DeleteTaskItem(string name) From d6837d1621c4b991ae8fc1bffc46b8aac4d8b9a1 Mon Sep 17 00:00:00 2001 From: Niilo Poutanen Date: Mon, 19 Sep 2022 16:17:32 +0300 Subject: [PATCH 16/39] fixed some things scrollview kind of works, centers items sometimes for unknown reasons --- TODO-app/TODO-app/MainActivity.cs | 64 ++++++++++++++----- .../Resources/layout/activity_main.xml | 14 ++-- 2 files changed, 57 insertions(+), 21 deletions(-) diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index 6c5f879..a24f1d1 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -239,19 +239,19 @@ private void InitializeElements() { backToMain = FindViewById(Resource.Id.BackToMain); backToMain.Click += BackToMain; - btnCreateTask = FindViewById private void InitializeElements() { + scrollBase = FindViewById(Resource.Id.scrollBase); backToMain = FindViewById(Resource.Id.BackToMain); backToMain.Click += BackToMain; btnCreateTask = FindViewById /// - private void CreateTaskElement(string taskName, bool isTrue) + private void CreateTaskElement(string taskName, bool isTrue, DateTime dueDate) { RelativeLayout cardBG = new RelativeLayout(this); Drawable rounded50 = GetDrawable(Resource.Drawable.rounded50px); cardBG.Background = rounded50; cardBG.SetPadding(DpToPx(20), 0, 0, 0); - cardBG.Id = View.GenerateViewId(); RelativeLayout.LayoutParams cardparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, DpToPx(80)); cardparams.SetMargins(DpToPx(20), 0, DpToPx(20), DpToPx(20)); + cardBG.LayoutParameters = cardparams; cardBG.LongClick += HoldTaskElement; + cardBG.Click += ExpandCard; Button toggleBtn = new Button(this); @@ -859,8 +860,8 @@ private void CreateTaskElement(string taskName, bool isTrue) Drawable toggleActive = GetDrawable(Resource.Drawable.task_radio_button_active); toggleBtn.Background = toggleDefault; RelativeLayout.LayoutParams buttonparams = new RelativeLayout.LayoutParams(DpToPx(45), DpToPx(45)); - buttonparams.SetMargins(0, 0, DpToPx(10), 0); - buttonparams.AddRule(LayoutRules.CenterVertical); + buttonparams.SetMargins(0, DpToPx(17), DpToPx(10), 0); + //buttonparams.AddRule(LayoutRules.CenterVertical); toggleBtn.LayoutParameters = buttonparams; toggleBtn.Id = View.GenerateViewId(); toggleBtn.Click += TaskToggle; @@ -870,19 +871,32 @@ private void CreateTaskElement(string taskName, bool isTrue) TextView header = new TextView(this); header.Text = taskName; header.TextSize = DpToPx(6); - header.SetTypeface(header.Typeface, Android.Graphics.TypefaceStyle.Bold); + header.SetTypeface(Resources.GetFont(Resource.Font.inter_bold), TypefaceStyle.Normal); RelativeLayout.LayoutParams headerparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WrapContent, RelativeLayout.LayoutParams.WrapContent); - headerparams.AddRule(LayoutRules.CenterVertical); + headerparams.SetMargins(0, DpToPx(28), 0, 0); + //headerparams.AddRule(LayoutRules.CenterVertical); headerparams.AddRule(LayoutRules.RightOf, toggleBtn.Id); header.LayoutParameters = headerparams; - if(isTrue == true) + + TextView date = new TextView(this); + date.Text = dueDate.Day.ToString() + "." + dueDate.Month.ToString() + "." + dueDate.Year.ToString(); + RelativeLayout.LayoutParams dateparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WrapContent, RelativeLayout.LayoutParams.WrapContent); + dateparams.AddRule(LayoutRules.CenterHorizontal); + dateparams.AddRule(LayoutRules.AlignParentBottom); + dateparams.SetMargins(0, 0, 0, DpToPx(5)); + date.LayoutParameters = dateparams; + date.TextSize = DpToPx(6); + date.SetTypeface(Resources.GetFont(Resource.Font.inter_semibold), TypefaceStyle.Normal); + if (isTrue == true) { toggleBtn.Background = toggleActive; } scrollLayout.AddView(cardBG); cardBG.AddView(toggleBtn); cardBG.AddView(header); + cardBG.AddView(date); + date.Visibility = ViewStates.Gone; try { elementIds.Add(taskName, cardBG.Id); @@ -894,6 +908,27 @@ private void CreateTaskElement(string taskName, bool isTrue) } + + private void ExpandCard(object sender, EventArgs e) + { + + RelativeLayout card = (RelativeLayout)sender; + if (card.Height == DpToPx(100)) + { + LinearLayout.LayoutParams heightParam = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, DpToPx(80)); + heightParam.SetMargins(DpToPx(20), 0, DpToPx(20), DpToPx(20)); + card.LayoutParameters = heightParam; + card.GetChildAt(2).Visibility = ViewStates.Gone; + } + else if (card.Height == DpToPx(80)) + { + LinearLayout.LayoutParams heightParam = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, DpToPx(100)); + heightParam.SetMargins(DpToPx(20), 0, DpToPx(20), DpToPx(20)); + card.LayoutParameters = heightParam; + card.GetChildAt(2).Visibility = ViewStates.Visible; + } + + } /// /// Not needed right now, use if you need /// @@ -1037,7 +1072,7 @@ private void SortBy(object sender, EventArgs e) scrollLayout.RemoveAllViews(); foreach(TaskItem task in TaskItem.SortListByDueDate(taskList)) { - CreateTaskElement(task.Text, task.IsDone); + CreateTaskElement(task.Text, task.IsDone, task.DueDate); } break; @@ -1048,7 +1083,7 @@ private void SortBy(object sender, EventArgs e) scrollLayout.RemoveAllViews(); foreach (TaskItem task in TaskItem.SortListByCreationDate(taskList)) { - CreateTaskElement(task.Text, task.IsDone); + CreateTaskElement(task.Text, task.IsDone, task.DueDate); } break; @@ -1061,7 +1096,7 @@ private void ShowDatestasks(DateTime date) { if (t.DueDate == date) { - CreateTaskElement(t.Text, t.IsDone); + CreateTaskElement(t.Text, t.IsDone, t.DueDate); } } } diff --git a/TODO-app/TODO-app/Resources/layout/activity_main.xml b/TODO-app/TODO-app/Resources/layout/activity_main.xml index 565cba2..fad512d 100644 --- a/TODO-app/TODO-app/Resources/layout/activity_main.xml +++ b/TODO-app/TODO-app/Resources/layout/activity_main.xml @@ -606,7 +606,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - From 4e8ff6ee347ad8e829cfab21d4b44154b5749e8a Mon Sep 17 00:00:00 2001 From: Niilo Poutanen Date: Mon, 19 Sep 2022 19:00:31 +0300 Subject: [PATCH 26/39] onboarding stuff --- TODO-app/TODO-app/MainActivity.cs | 4 +- TODO-app/TODO-app/OnBoardingActivity.cs | 18 +- .../TODO-app/Resources/Resource.designer.cs | 441 +++++++++--------- .../TODO-app/Resources/drawable/guide3.png | Bin 21566 -> 13611 bytes .../TODO-app/Resources/drawable/guide4.png | Bin 0 -> 21566 bytes .../TODO-app/Resources/layout/onboarder.xml | 1 + .../TODO-app/Resources/values/strings.xml | 7 +- TODO-app/TODO-app/TODO-app.csproj | 5 +- 8 files changed, 254 insertions(+), 222 deletions(-) create mode 100644 TODO-app/TODO-app/Resources/drawable/guide4.png diff --git a/TODO-app/TODO-app/MainActivity.cs b/TODO-app/TODO-app/MainActivity.cs index 4988c26..9e3db90 100644 --- a/TODO-app/TODO-app/MainActivity.cs +++ b/TODO-app/TODO-app/MainActivity.cs @@ -850,7 +850,7 @@ private void CreateTaskElement(string taskName, bool isTrue, DateTime dueDate) TextView header = new TextView(this); header.Text = taskName; header.TextSize = DpToPx(6); - header.SetTypeface(Resources.GetFont(Resource.Font.inter_bold), TypefaceStyle.Normal); + header.SetTypeface(Resources.GetFont(Resource.Font.inter_bold), Android.Graphics.TypefaceStyle.Normal); RelativeLayout.LayoutParams headerparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WrapContent, RelativeLayout.LayoutParams.WrapContent); headerparams.SetMargins(0, DpToPx(28), 0, 0); //headerparams.AddRule(LayoutRules.CenterVertical); @@ -866,7 +866,7 @@ private void CreateTaskElement(string taskName, bool isTrue, DateTime dueDate) dateparams.SetMargins(0, 0, 0, DpToPx(5)); date.LayoutParameters = dateparams; date.TextSize = DpToPx(6); - date.SetTypeface(Resources.GetFont(Resource.Font.inter_semibold), TypefaceStyle.Normal); + date.SetTypeface(Resources.GetFont(Resource.Font.inter_semibold), Android.Graphics.TypefaceStyle.Normal); if (isTrue == true) { toggleBtn.Background = toggleActive; diff --git a/TODO-app/TODO-app/OnBoardingActivity.cs b/TODO-app/TODO-app/OnBoardingActivity.cs index 937f763..47870eb 100644 --- a/TODO-app/TODO-app/OnBoardingActivity.cs +++ b/TODO-app/TODO-app/OnBoardingActivity.cs @@ -18,6 +18,7 @@ public class OnBoardingActivity : Activity Button skip; TextView onBoardHeader; ImageView guideView; + RelativeLayout imageLayout; protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); @@ -30,6 +31,7 @@ protected override void OnCreate(Bundle savedInstanceState) skip.Click += ToMain; guideView = FindViewById(Resource.Id.guideScreen); onBoardHeader = FindViewById(Resource.Id.onBoardHeader); + imageLayout = FindViewById(Resource.Id.imageLayout); // Create your application here } @@ -53,8 +55,22 @@ private async void NextView(object sender, EventArgs e) guideView.Animate().Alpha(0).SetDuration(300).Start(); onBoardHeader.Animate().Alpha(0).SetDuration(300).Start(); await Task.Delay(400); + + guideView.SetImageResource(Resource.Drawable.guide3); onBoardHeader.Text = GetString(Resource.String.guide3); + guideView.Animate().Alpha(1).SetDuration(200).Start(); + onBoardHeader.Animate().Alpha(1).SetDuration(300).Start(); + await Task.Delay(300); + + } + else if (onBoardHeader.Text == GetString(Resource.String.guide3)) + { + guideView.Animate().Alpha(0).SetDuration(300).Start(); + onBoardHeader.Animate().Alpha(0).SetDuration(300).Start(); + await Task.Delay(400); + guideView.SetImageResource(Resource.Drawable.guide4); + onBoardHeader.Text = GetString(Resource.String.guide4); skip.Visibility = ViewStates.Gone; @@ -69,7 +85,7 @@ private async void NextView(object sender, EventArgs e) } - else if (onBoardHeader.Text == GetString(Resource.String.guide3)) + else if (onBoardHeader.Text == GetString(Resource.String.guide4)) { ISharedPreferences hasWatchedGuide = GetSharedPreferences("hasWatchedGuide", 0); hasWatchedGuide.Edit().PutBoolean("hasWatchedGuide", true).Commit(); diff --git a/TODO-app/TODO-app/Resources/Resource.designer.cs b/TODO-app/TODO-app/Resources/Resource.designer.cs index f2cb872..82f7594 100644 --- a/TODO-app/TODO-app/Resources/Resource.designer.cs +++ b/TODO-app/TODO-app/Resources/Resource.designer.cs @@ -3362,91 +3362,94 @@ public partial class Drawable public const int guide3 = 2131165299; // aapt resource value: 0x7F070074 - public const int ic_mtrl_chip_checked_black = 2131165300; + public const int guide4 = 2131165300; // aapt resource value: 0x7F070075 - public const int ic_mtrl_chip_checked_circle = 2131165301; + public const int ic_mtrl_chip_checked_black = 2131165301; // aapt resource value: 0x7F070076 - public const int ic_mtrl_chip_close_circle = 2131165302; + public const int ic_mtrl_chip_checked_circle = 2131165302; // aapt resource value: 0x7F070077 - public const int mtrl_snackbar_background = 2131165303; + public const int ic_mtrl_chip_close_circle = 2131165303; // aapt resource value: 0x7F070078 - public const int mtrl_tabs_default_indicator = 2131165304; + public const int mtrl_snackbar_background = 2131165304; // aapt resource value: 0x7F070079 - public const int navigation_empty_icon = 2131165305; + public const int mtrl_tabs_default_indicator = 2131165305; // aapt resource value: 0x7F07007A - public const int notification_action_background = 2131165306; + public const int navigation_empty_icon = 2131165306; // aapt resource value: 0x7F07007B - public const int notification_bg = 2131165307; + public const int notification_action_background = 2131165307; // aapt resource value: 0x7F07007C - public const int notification_bg_low = 2131165308; + public const int notification_bg = 2131165308; // aapt resource value: 0x7F07007D - public const int notification_bg_low_normal = 2131165309; + public const int notification_bg_low = 2131165309; // aapt resource value: 0x7F07007E - public const int notification_bg_low_pressed = 2131165310; + public const int notification_bg_low_normal = 2131165310; // aapt resource value: 0x7F07007F - public const int notification_bg_normal = 2131165311; + public const int notification_bg_low_pressed = 2131165311; // aapt resource value: 0x7F070080 - public const int notification_bg_normal_pressed = 2131165312; + public const int notification_bg_normal = 2131165312; // aapt resource value: 0x7F070081 - public const int notification_icon_background = 2131165313; + public const int notification_bg_normal_pressed = 2131165313; // aapt resource value: 0x7F070082 - public const int notification_template_icon_bg = 2131165314; + public const int notification_icon_background = 2131165314; // aapt resource value: 0x7F070083 - public const int notification_template_icon_low_bg = 2131165315; + public const int notification_template_icon_bg = 2131165315; // aapt resource value: 0x7F070084 - public const int notification_tile_bg = 2131165316; + public const int notification_template_icon_low_bg = 2131165316; // aapt resource value: 0x7F070085 - public const int notify_panel_notification_icon_bg = 2131165317; + public const int notification_tile_bg = 2131165317; // aapt resource value: 0x7F070086 - public const int rounded10px = 2131165318; + public const int notify_panel_notification_icon_bg = 2131165318; // aapt resource value: 0x7F070087 - public const int rounded50px = 2131165319; + public const int rounded10px = 2131165319; // aapt resource value: 0x7F070088 - public const int rounded60px = 2131165320; + public const int rounded50px = 2131165320; // aapt resource value: 0x7F070089 - public const int rounded90px = 2131165321; + public const int rounded60px = 2131165321; // aapt resource value: 0x7F07008A - public const int SettingsVector = 2131165322; + public const int rounded90px = 2131165322; // aapt resource value: 0x7F07008B - public const int task_radio_button = 2131165323; + public const int SettingsVector = 2131165323; // aapt resource value: 0x7F07008C - public const int task_radio_button_active = 2131165324; + public const int task_radio_button = 2131165324; // aapt resource value: 0x7F07008D - public const int toggle_thumb = 2131165325; + public const int task_radio_button_active = 2131165325; // aapt resource value: 0x7F07008E - public const int toggle_track = 2131165326; + public const int toggle_thumb = 2131165326; // aapt resource value: 0x7F07008F - public const int tooltip_frame_dark = 2131165327; + public const int toggle_track = 2131165327; // aapt resource value: 0x7F070090 - public const int tooltip_frame_light = 2131165328; + public const int tooltip_frame_dark = 2131165328; + + // aapt resource value: 0x7F070091 + public const int tooltip_frame_light = 2131165329; static Drawable() { @@ -3940,34 +3943,37 @@ public partial class Id public const int image = 2131296443; // aapt resource value: 0x7F0900BC - public const int info = 2131296444; + public const int imageLayout = 2131296444; // aapt resource value: 0x7F0900BD - public const int italic = 2131296445; + public const int info = 2131296445; // aapt resource value: 0x7F0900BE - public const int item_touch_helper_previous_elevation = 2131296446; + public const int italic = 2131296446; // aapt resource value: 0x7F0900BF - public const int labeled = 2131296447; + public const int item_touch_helper_previous_elevation = 2131296447; // aapt resource value: 0x7F0900C0 - public const int largeLabel = 2131296448; + public const int labeled = 2131296448; // aapt resource value: 0x7F0900C1 - public const int left = 2131296449; + public const int largeLabel = 2131296449; // aapt resource value: 0x7F0900C2 - public const int line1 = 2131296450; + public const int left = 2131296450; // aapt resource value: 0x7F0900C3 - public const int line3 = 2131296451; + public const int line1 = 2131296451; // aapt resource value: 0x7F0900C4 - public const int listMode = 2131296452; + public const int line3 = 2131296452; // aapt resource value: 0x7F0900C5 - public const int list_item = 2131296453; + public const int listMode = 2131296453; + + // aapt resource value: 0x7F0900C6 + public const int list_item = 2131296454; // aapt resource value: 0x7F090010 public const int MainBlueActive = 2131296272; @@ -3981,8 +3987,8 @@ public partial class Id // aapt resource value: 0x7F090013 public const int MainGreenToggle = 2131296275; - // aapt resource value: 0x7F0900C6 - public const int mainHeader = 2131296454; + // aapt resource value: 0x7F0900C7 + public const int mainHeader = 2131296455; // aapt resource value: 0x7F090014 public const int MainOrangeActive = 2131296276; @@ -4002,20 +4008,20 @@ public partial class Id // aapt resource value: 0x7F090019 public const int MainVioletToggle = 2131296281; - // aapt resource value: 0x7F0900C7 - public const int masked = 2131296455; - // aapt resource value: 0x7F0900C8 - public const int message = 2131296456; + public const int masked = 2131296456; + + // aapt resource value: 0x7F0900C9 + public const int message = 2131296457; // aapt resource value: 0x7F09000F public const int META = 2131296271; - // aapt resource value: 0x7F0900C9 - public const int middle = 2131296457; - // aapt resource value: 0x7F0900CA - public const int mini = 2131296458; + public const int middle = 2131296458; + + // aapt resource value: 0x7F0900CB + public const int mini = 2131296459; // aapt resource value: 0x7F09001A public const int MonthArrowDown = 2131296282; @@ -4026,65 +4032,65 @@ public partial class Id // aapt resource value: 0x7F09001C public const int MonthInput = 2131296284; - // aapt resource value: 0x7F0900CB - public const int mtrl_child_content_container = 2131296459; - // aapt resource value: 0x7F0900CC - public const int mtrl_internal_children_alpha_tag = 2131296460; + public const int mtrl_child_content_container = 2131296460; // aapt resource value: 0x7F0900CD - public const int multiply = 2131296461; + public const int mtrl_internal_children_alpha_tag = 2131296461; + + // aapt resource value: 0x7F0900CE + public const int multiply = 2131296462; // aapt resource value: 0x7F09001D public const int NavBar = 2131296285; - // aapt resource value: 0x7F0900CE - public const int navigation_header_container = 2131296462; - // aapt resource value: 0x7F0900CF - public const int never = 2131296463; + public const int navigation_header_container = 2131296463; // aapt resource value: 0x7F0900D0 - public const int nextButton = 2131296464; + public const int never = 2131296464; // aapt resource value: 0x7F0900D1 - public const int none = 2131296465; + public const int nextButton = 2131296465; // aapt resource value: 0x7F0900D2 - public const int normal = 2131296466; + public const int none = 2131296466; // aapt resource value: 0x7F0900D3 - public const int notification_background = 2131296467; + public const int normal = 2131296467; // aapt resource value: 0x7F0900D4 - public const int notification_main_column = 2131296468; + public const int notification_background = 2131296468; // aapt resource value: 0x7F0900D5 - public const int notification_main_column_container = 2131296469; + public const int notification_main_column = 2131296469; // aapt resource value: 0x7F0900D6 - public const int off = 2131296470; + public const int notification_main_column_container = 2131296470; // aapt resource value: 0x7F0900D7 - public const int on = 2131296471; + public const int off = 2131296471; // aapt resource value: 0x7F0900D8 - public const int onBoardHeader = 2131296472; + public const int on = 2131296472; // aapt resource value: 0x7F0900D9 - public const int outline = 2131296473; + public const int onBoardHeader = 2131296473; // aapt resource value: 0x7F0900DA - public const int parallax = 2131296474; + public const int outline = 2131296474; // aapt resource value: 0x7F0900DB - public const int parentPanel = 2131296475; + public const int parallax = 2131296475; // aapt resource value: 0x7F0900DC - public const int parent_matrix = 2131296476; + public const int parentPanel = 2131296476; // aapt resource value: 0x7F0900DD - public const int pin = 2131296477; + public const int parent_matrix = 2131296477; + + // aapt resource value: 0x7F0900DE + public const int pin = 2131296478; // aapt resource value: 0x7F09001E public const int PopupCancel = 2131296286; @@ -4098,53 +4104,53 @@ public partial class Id // aapt resource value: 0x7F090021 public const int PopupHeader = 2131296289; - // aapt resource value: 0x7F0900DE - public const int progress_circular = 2131296478; - // aapt resource value: 0x7F0900DF - public const int progress_horizontal = 2131296479; + public const int progress_circular = 2131296479; // aapt resource value: 0x7F0900E0 - public const int radio = 2131296480; + public const int progress_horizontal = 2131296480; // aapt resource value: 0x7F0900E1 - public const int right = 2131296481; + public const int radio = 2131296481; // aapt resource value: 0x7F0900E2 - public const int right_icon = 2131296482; + public const int right = 2131296482; // aapt resource value: 0x7F0900E3 - public const int right_side = 2131296483; + public const int right_icon = 2131296483; // aapt resource value: 0x7F0900E4 - public const int save_non_transition_alpha = 2131296484; + public const int right_side = 2131296484; // aapt resource value: 0x7F0900E5 - public const int save_overlay_view = 2131296485; + public const int save_non_transition_alpha = 2131296485; // aapt resource value: 0x7F0900E6 - public const int screen = 2131296486; + public const int save_overlay_view = 2131296486; // aapt resource value: 0x7F0900E7 - public const int scroll = 2131296487; - - // aapt resource value: 0x7F0900EC - public const int scrollable = 2131296492; + public const int screen = 2131296487; // aapt resource value: 0x7F0900E8 - public const int scrollBase = 2131296488; + public const int scroll = 2131296488; + + // aapt resource value: 0x7F0900ED + public const int scrollable = 2131296493; // aapt resource value: 0x7F0900E9 - public const int scrollIndicatorDown = 2131296489; + public const int scrollBase = 2131296489; // aapt resource value: 0x7F0900EA - public const int scrollIndicatorUp = 2131296490; + public const int scrollIndicatorDown = 2131296490; + + // aapt resource value: 0x7F0900EB + public const int scrollIndicatorUp = 2131296491; // aapt resource value: 0x7F090024 public const int ScrollLayout = 2131296292; - // aapt resource value: 0x7F0900EB - public const int scrollView = 2131296491; + // aapt resource value: 0x7F0900EC + public const int scrollView = 2131296492; // aapt resource value: 0x7F090025 public const int SearchBar = 2131296293; @@ -4152,41 +4158,41 @@ public partial class Id // aapt resource value: 0x7F090026 public const int SearchField = 2131296294; - // aapt resource value: 0x7F0900ED - public const int search_badge = 2131296493; - // aapt resource value: 0x7F0900EE - public const int search_bar = 2131296494; + public const int search_badge = 2131296494; // aapt resource value: 0x7F0900EF - public const int search_button = 2131296495; + public const int search_bar = 2131296495; // aapt resource value: 0x7F0900F0 - public const int search_close_btn = 2131296496; + public const int search_button = 2131296496; // aapt resource value: 0x7F0900F1 - public const int search_edit_frame = 2131296497; + public const int search_close_btn = 2131296497; // aapt resource value: 0x7F0900F2 - public const int search_go_btn = 2131296498; + public const int search_edit_frame = 2131296498; // aapt resource value: 0x7F0900F3 - public const int search_mag_icon = 2131296499; + public const int search_go_btn = 2131296499; // aapt resource value: 0x7F0900F4 - public const int search_plate = 2131296500; + public const int search_mag_icon = 2131296500; // aapt resource value: 0x7F0900F5 - public const int search_src_text = 2131296501; + public const int search_plate = 2131296501; // aapt resource value: 0x7F0900F6 - public const int search_voice_btn = 2131296502; - - // aapt resource value: 0x7F0900F8 - public const int selected = 2131296504; + public const int search_src_text = 2131296502; // aapt resource value: 0x7F0900F7 - public const int select_dialog_listview = 2131296503; + public const int search_voice_btn = 2131296503; + + // aapt resource value: 0x7F0900F9 + public const int selected = 2131296505; + + // aapt resource value: 0x7F0900F8 + public const int select_dialog_listview = 2131296504; // aapt resource value: 0x7F090027 public const int SendFeedbackBtn = 2131296295; @@ -4203,38 +4209,38 @@ public partial class Id // aapt resource value: 0x7F090022 public const int SHIFT = 2131296290; - // aapt resource value: 0x7F0900F9 - public const int shortcut = 2131296505; + // aapt resource value: 0x7F0900FA + public const int shortcut = 2131296506; // aapt resource value: 0x7F09002B public const int ShowAll = 2131296299; - // aapt resource value: 0x7F0900FA - public const int showCustom = 2131296506; - // aapt resource value: 0x7F0900FB - public const int showHome = 2131296507; + public const int showCustom = 2131296507; // aapt resource value: 0x7F0900FC - public const int showTitle = 2131296508; + public const int showHome = 2131296508; // aapt resource value: 0x7F0900FD - public const int skipButton = 2131296509; + public const int showTitle = 2131296509; // aapt resource value: 0x7F0900FE - public const int smallLabel = 2131296510; + public const int skipButton = 2131296510; // aapt resource value: 0x7F0900FF - public const int snackbar_action = 2131296511; + public const int smallLabel = 2131296511; // aapt resource value: 0x7F090100 - public const int snackbar_text = 2131296512; + public const int snackbar_action = 2131296512; // aapt resource value: 0x7F090101 - public const int snap = 2131296513; + public const int snackbar_text = 2131296513; // aapt resource value: 0x7F090102 - public const int snapMargins = 2131296514; + public const int snap = 2131296514; + + // aapt resource value: 0x7F090103 + public const int snapMargins = 2131296515; // aapt resource value: 0x7F09002C public const int SortByCreationDate = 2131296300; @@ -4242,173 +4248,173 @@ public partial class Id // aapt resource value: 0x7F09002D public const int SortByDueDate = 2131296301; - // aapt resource value: 0x7F090103 - public const int spacer = 2131296515; - // aapt resource value: 0x7F090104 - public const int split_action_bar = 2131296516; + public const int spacer = 2131296516; // aapt resource value: 0x7F090105 - public const int src_atop = 2131296517; + public const int split_action_bar = 2131296517; // aapt resource value: 0x7F090106 - public const int src_in = 2131296518; + public const int src_atop = 2131296518; // aapt resource value: 0x7F090107 - public const int src_over = 2131296519; + public const int src_in = 2131296519; // aapt resource value: 0x7F090108 - public const int start = 2131296520; + public const int src_over = 2131296520; // aapt resource value: 0x7F090109 - public const int stretch = 2131296521; + public const int start = 2131296521; // aapt resource value: 0x7F09010A - public const int submenuarrow = 2131296522; + public const int stretch = 2131296522; // aapt resource value: 0x7F09010B - public const int submit_area = 2131296523; + public const int submenuarrow = 2131296523; + + // aapt resource value: 0x7F09010C + public const int submit_area = 2131296524; // aapt resource value: 0x7F090023 public const int SYM = 2131296291; - // aapt resource value: 0x7F09010C - public const int tabMode = 2131296524; - // aapt resource value: 0x7F09010D - public const int tag_accessibility_actions = 2131296525; + public const int tabMode = 2131296525; // aapt resource value: 0x7F09010E - public const int tag_accessibility_clickable_spans = 2131296526; + public const int tag_accessibility_actions = 2131296526; // aapt resource value: 0x7F09010F - public const int tag_accessibility_heading = 2131296527; + public const int tag_accessibility_clickable_spans = 2131296527; // aapt resource value: 0x7F090110 - public const int tag_accessibility_pane_title = 2131296528; + public const int tag_accessibility_heading = 2131296528; // aapt resource value: 0x7F090111 - public const int tag_screen_reader_focusable = 2131296529; + public const int tag_accessibility_pane_title = 2131296529; // aapt resource value: 0x7F090112 - public const int tag_transition_group = 2131296530; + public const int tag_screen_reader_focusable = 2131296530; // aapt resource value: 0x7F090113 - public const int tag_unhandled_key_event_manager = 2131296531; + public const int tag_transition_group = 2131296531; // aapt resource value: 0x7F090114 - public const int tag_unhandled_key_listeners = 2131296532; + public const int tag_unhandled_key_event_manager = 2131296532; // aapt resource value: 0x7F090115 - public const int taskCountLayout = 2131296533; + public const int tag_unhandled_key_listeners = 2131296533; // aapt resource value: 0x7F090116 - public const int taskCountText = 2131296534; + public const int taskCountLayout = 2131296534; + + // aapt resource value: 0x7F090117 + public const int taskCountText = 2131296535; // aapt resource value: 0x7F09002E public const int TaskNameField = 2131296302; - // aapt resource value: 0x7F090117 - public const int text = 2131296535; - // aapt resource value: 0x7F090118 - public const int text2 = 2131296536; + public const int text = 2131296536; - // aapt resource value: 0x7F09011D - public const int textinput_counter = 2131296541; + // aapt resource value: 0x7F090119 + public const int text2 = 2131296537; // aapt resource value: 0x7F09011E - public const int textinput_error = 2131296542; + public const int textinput_counter = 2131296542; // aapt resource value: 0x7F09011F - public const int textinput_helper_text = 2131296543; + public const int textinput_error = 2131296543; - // aapt resource value: 0x7F090119 - public const int textSpacerNoButtons = 2131296537; + // aapt resource value: 0x7F090120 + public const int textinput_helper_text = 2131296544; // aapt resource value: 0x7F09011A - public const int textSpacerNoTitle = 2131296538; + public const int textSpacerNoButtons = 2131296538; // aapt resource value: 0x7F09011B - public const int textStart = 2131296539; + public const int textSpacerNoTitle = 2131296539; // aapt resource value: 0x7F09011C - public const int text_input_password_toggle = 2131296540; + public const int textStart = 2131296540; - // aapt resource value: 0x7F090120 - public const int time = 2131296544; + // aapt resource value: 0x7F09011D + public const int text_input_password_toggle = 2131296541; // aapt resource value: 0x7F090121 - public const int title = 2131296545; + public const int time = 2131296545; // aapt resource value: 0x7F090122 - public const int titleDividerNoCustom = 2131296546; + public const int title = 2131296546; // aapt resource value: 0x7F090123 - public const int title_template = 2131296547; + public const int titleDividerNoCustom = 2131296547; // aapt resource value: 0x7F090124 - public const int todayHeader = 2131296548; + public const int title_template = 2131296548; // aapt resource value: 0x7F090125 - public const int top = 2131296549; + public const int todayHeader = 2131296549; // aapt resource value: 0x7F090126 - public const int topPanel = 2131296550; + public const int top = 2131296550; // aapt resource value: 0x7F090127 - public const int touch_outside = 2131296551; + public const int topPanel = 2131296551; // aapt resource value: 0x7F090128 - public const int transition_current_scene = 2131296552; + public const int touch_outside = 2131296552; // aapt resource value: 0x7F090129 - public const int transition_layout_save = 2131296553; + public const int transition_current_scene = 2131296553; // aapt resource value: 0x7F09012A - public const int transition_position = 2131296554; + public const int transition_layout_save = 2131296554; // aapt resource value: 0x7F09012B - public const int transition_scene_layoutid_cache = 2131296555; + public const int transition_position = 2131296555; // aapt resource value: 0x7F09012C - public const int transition_transform = 2131296556; + public const int transition_scene_layoutid_cache = 2131296556; // aapt resource value: 0x7F09012D - public const int @unchecked = 2131296557; + public const int transition_transform = 2131296557; // aapt resource value: 0x7F09012E - public const int uniform = 2131296558; + public const int @unchecked = 2131296558; // aapt resource value: 0x7F09012F - public const int unlabeled = 2131296559; + public const int uniform = 2131296559; // aapt resource value: 0x7F090130 - public const int up = 2131296560; + public const int unlabeled = 2131296560; // aapt resource value: 0x7F090131 - public const int useLogo = 2131296561; + public const int up = 2131296561; + + // aapt resource value: 0x7F090132 + public const int useLogo = 2131296562; // aapt resource value: 0x7F09002F public const int VersionText = 2131296303; - // aapt resource value: 0x7F090132 - public const int view_offset_helper = 2131296562; - // aapt resource value: 0x7F090133 - public const int view_tree_saved_state_registry_owner = 2131296563; + public const int view_offset_helper = 2131296563; // aapt resource value: 0x7F090134 - public const int visible = 2131296564; + public const int view_tree_saved_state_registry_owner = 2131296564; // aapt resource value: 0x7F090135 - public const int visible_removing_fragment_view_tag = 2131296565; + public const int visible = 2131296565; // aapt resource value: 0x7F090136 - public const int withText = 2131296566; + public const int visible_removing_fragment_view_tag = 2131296566; // aapt resource value: 0x7F090137 - public const int wrap_content = 2131296567; + public const int withText = 2131296567; + + // aapt resource value: 0x7F090138 + public const int wrap_content = 2131296568; // aapt resource value: 0x7F090030 public const int YearArrowDown = 2131296304; @@ -4974,94 +4980,97 @@ public partial class String public const int guide3 = 2131624009; // aapt resource value: 0x7F0E004A - public const int hide_bottom_view_on_scroll_behavior = 2131624010; + public const int guide4 = 2131624010; // aapt resource value: 0x7F0E004B - public const int invalidDate = 2131624011; + public const int hide_bottom_view_on_scroll_behavior = 2131624011; // aapt resource value: 0x7F0E004C - public const int invalidName = 2131624012; + public const int invalidDate = 2131624012; // aapt resource value: 0x7F0E004D - public const int invalidNameDesc = 2131624013; + public const int invalidName = 2131624013; // aapt resource value: 0x7F0E004E - public const int invalidValue = 2131624014; + public const int invalidNameDesc = 2131624014; // aapt resource value: 0x7F0E004F - public const int mtrl_chip_close_icon_content_description = 2131624015; + public const int invalidValue = 2131624015; // aapt resource value: 0x7F0E0050 - public const int nameExists = 2131624016; + public const int mtrl_chip_close_icon_content_description = 2131624016; // aapt resource value: 0x7F0E0051 - public const int next = 2131624017; + public const int nameExists = 2131624017; // aapt resource value: 0x7F0E0052 - public const int no = 2131624018; + public const int next = 2131624018; // aapt resource value: 0x7F0E0053 - public const int notificationSetting = 2131624019; + public const int no = 2131624019; // aapt resource value: 0x7F0E0054 - public const int password_toggle_content_description = 2131624020; + public const int notificationSetting = 2131624020; // aapt resource value: 0x7F0E0055 - public const int path_password_eye = 2131624021; + public const int password_toggle_content_description = 2131624021; // aapt resource value: 0x7F0E0056 - public const int path_password_eye_mask_strike_through = 2131624022; + public const int path_password_eye = 2131624022; // aapt resource value: 0x7F0E0057 - public const int path_password_eye_mask_visible = 2131624023; + public const int path_password_eye_mask_strike_through = 2131624023; // aapt resource value: 0x7F0E0058 - public const int path_password_strike_through = 2131624024; + public const int path_password_eye_mask_visible = 2131624024; // aapt resource value: 0x7F0E0059 - public const int plus = 2131624025; + public const int path_password_strike_through = 2131624025; // aapt resource value: 0x7F0E005A - public const int returnbtn = 2131624026; + public const int plus = 2131624026; // aapt resource value: 0x7F0E005B - public const int search = 2131624027; + public const int returnbtn = 2131624027; // aapt resource value: 0x7F0E005C - public const int search_menu_title = 2131624028; + public const int search = 2131624028; // aapt resource value: 0x7F0E005D - public const int sendFeedback = 2131624029; + public const int search_menu_title = 2131624029; // aapt resource value: 0x7F0E005E - public const int settings = 2131624030; + public const int sendFeedback = 2131624030; // aapt resource value: 0x7F0E005F - public const int show_all = 2131624031; + public const int settings = 2131624031; // aapt resource value: 0x7F0E0060 - public const int skip = 2131624032; + public const int show_all = 2131624032; + + // aapt resource value: 0x7F0E0061 + public const int skip = 2131624033; // aapt resource value: 0x7F0E0006 public const int Start = 2131623942; - // aapt resource value: 0x7F0E0061 - public const int status_bar_notification_info_overflow = 2131624033; - // aapt resource value: 0x7F0E0062 - public const int taskAmount = 2131624034; + public const int status_bar_notification_info_overflow = 2131624034; // aapt resource value: 0x7F0E0063 - public const int task_name_header = 2131624035; + public const int taskAmount = 2131624035; // aapt resource value: 0x7F0E0064 - public const int task_template = 2131624036; + public const int task_name_header = 2131624036; // aapt resource value: 0x7F0E0065 - public const int versionHeader = 2131624037; + public const int task_template = 2131624037; // aapt resource value: 0x7F0E0066 - public const int yes = 2131624038; + public const int versionHeader = 2131624038; + + // aapt resource value: 0x7F0E0067 + public const int yes = 2131624039; static String() { diff --git a/TODO-app/TODO-app/Resources/drawable/guide3.png b/TODO-app/TODO-app/Resources/drawable/guide3.png index c980bee73e02bf32cd981e3e399fe03910575e91..6a131a3c64d61e890994679b212897497e51990f 100644 GIT binary patch literal 13611 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 B2M7QF literal 21566 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 A5C8xG diff --git a/TODO-app/TODO-app/Resources/drawable/guide4.png b/TODO-app/TODO-app/Resources/drawable/guide4.png new file mode 100644 index 0000000000000000000000000000000000000000..c980bee73e02bf32cd981e3e399fe03910575e91 GIT binary patch literal 21566 zcmeFYby!v1+Acm31Vs=7k#3~B8zmP=mvk<=I~O1VigZdN9Rf=CLXifMZjkO;wMSsJLmfS@#*ARbIm!%Gx8bFecxlOcS;J<*qDTv003Y^WF%Ao0L2pk zZtdJb2cO8jHPZnAtbQ-GS1u|>?&Je38l;s(7-HOkC zDEH{kTKcg|tJNWceV_Ei(bXS*emkS}-|FrOJt}qbQ%3k6m96%_85`l<8B7f7_Gn(4 zgBR>K2O~^Anp1swJn?X)Ldh2|#=&nsg;&an_R=am zd!Z@GgN}k}-)Wy7K`ge#%4a#PCel=Zy)=n$s`$F`)nZC{u`IAzGS?>^ z=6zM~ESmkKl~V%7#}6-qi@1wilEyEdu?lt|rh|6--Rs(Yv&d#^;7#Te9cG^_*cUf0 z@Q*l_r`by@f^7AOrF#+)iLYMtHy~I{kI1cJF9mkzi*epqpReWH!_HkxTX7=rTb%-4 z1wBBYFAoVCA7Oi&lW1WN4}8>0A4C`N_?T|q7tgP{WX!?5=G%`UPA(6;gM_Dk=Wc$2 zM)n6KCu55jP76e@`BO|@Ep5dbNqpb!C|u_|J-R}c*J3_=xdLU34mCM%l2E(~M02{u zjP+7?*J)oM;?9oqYgL3bW-vv!&LS>D+Yj$lG7a6BYuccJ{HiWw^&Oc(P`{%$q5 z>Tt$Kirb`u>8NHBln^``9yNlmq3qG3g!lM|V{$&IbVF1j+*M5cD{;=FHkspUTmtgR z>Qxpa8adx%WLdOj3v)-5ZvTAAtyz*gI!WlwqhZ%;hhoTo0(NUP@K5(xt1Kh zcwFT`2}M03;Z84VPS``I?J|~XdHp{9ZE=wQoBMbb#i#gzl0S^y)c537enoW|^E63@ z-DzJIpS*e^_;ly3_R>{xEr0mj0^Ze7C;z<}1F4<<+Dp7DOD-;j?>h`!`T8%8_AeQj z5AoZR+d{?1Wmj^sMO+}pW8Du`@aVlO>yzSwdQ|c_IOo4H#qkTyA0@xGJMs<5oA5Bl zj^92WFE@V)^UJW2>)wHK43yz+rc)h!Zs|NC@X_nvD{nYxCAFE4@v%DJBt8!FW>zMB zCYHX>le+I@MnkqgrPAOY&)A%C=9&QGhv93&!u`?58+@ir`ymE z9>Xf)l}dc8CbWYwRA`G;$8bMvSbzTBYU0T~C?x*qV_A&Oq_zIU${6$>Bya*VqLlXC zO8dU}Qvx_=LkjIhX~Bmva_T+;GnQ*C7kJo3WP&q1JnXZn<#|lis8~SX;SAO%I>wWT z5lc520@bfJsoc)^x$ca1qH;%t`D)L4YUJrwV}v!Hm{dG@JI8=#8V7t?keWkZ-zqpu zN(s`=x{s&*1p1gs@M|3&Mx4Hb&8l5AL@1nEJT9DWdR%Jd6aDPAU6&65ZSK7j2M1xT z%iixFL|0V$PPSNMXUZ!4rcRPMEjSMzOns(lmnYIE*Gx0ax4+Ij&*tlL6;JWP#yb67 zml%Tl`p2$E>04LE$NhD4dG(x6KgPWPc0axTO!mRAcQMa(05boqRUxg%dCXmZn2hpM zQYCE}aprUY4o4e@)k~aqE%Ms$E|*R-UmSvM@#o4%c$Ey~s44hAsf(m)dg(50z9nDt$Dra0_q3^wMWpj9JK%Gl1AJWDzfN*Z3pm zo?+cDmAdkS5o(P-J+bC)g{TIJJ(u1C#k)BQ>utQ^jbZMShw9@L;nuIezxfti>+SaH zP&F9mGOWw|RBND;wYbfd<`k*l9^ApOPaY65Zj5S0)~c}6+)JOqx2n?Xn;Y;YlkVOZ zlLj}k$u8=EfZ~Cedk@R{Crwpfxk^P~VTR101ghh%1>BB`dVBeW{6gt&4(yqjW6oYB zkDR=<_Wf(b(e>)ou=4$`T-lBgb4+SGJ?`EU{+CjQE!RXN&hl-~sWTrfe+kZbLdxq# zIExq}zFymP=^tq0;Q`UZMgZAQZ z$hd#pdZ~&sQMhDH;zP#PB?83U3#*WS>Nc1ZmF zx#UsteJ)jf4@joX5(&B;8DUhQL?89jkJ-r0*p7l{lT!H~;U#bDcuh%|c<}VpUfn4h zxI=pmXS*v<_E!51joR$l0oUMAv(UQ&;<9te5pUFYmT;#BOgL+qvhJRYJg=Nvbs-N( zAJQ*IBy_RLFFUGpX*~{Ye%5$MNNq&u^!eEPP!4N(rP_#+?vRx9r~+D?WR_{nWAUp@ z1k>2-md4_!607frV)qfn&@{@Yr|&+m(pxOXC1~EUxRr4GY;*LDem2F-j{wPU7~O)} zJ%Y!86~9h&&0;C5Yblp#k6)MUMaRa>h5Koyd#jTKTG6L*d!d$Uij$17pl^4*lWb6y z8EAsomk{4xP+1s1Uk;EiILaZVaFob;?b33)l2OAXE$^-;rjUW0kn#14b-G(bBzKL= zxSnpxrtJ~pM*;rm-gKrEgGmF%k|VS@ZT@v6#=H}E&SC{pzuC(Q!^;a6HAC7k*TtRZ zgW~rCBX9Bf@I|*v4JK#jiWI7!x-;3VTILqsb(X+IdsK+~`iqIw{39jF0SaZo^7~pm zQ!KN=w}@i(F?;928zGhS4l+Zk)-+y+z06x-^SnnMXDD%)@uq@)E9QQkEw{UDh*MfMdzBHe-W)8sKY05{L+W+9 zu_P(aZd4yfecTqdOMKNEx2Juc0o*wpy(Ri);hm_Vu*@HM>95&iY)RG-QMvBnJLT1{ z+fzLrYNHXcJhpiH;JM}NB_Kh)k()u>sN+8NuVW$kPx`b;{135%Eoa4~)1=GH$=Po+ zt&eh0z8z+t$X#0?*+r`h);Pze4)iffQ0_F4<^Vz(48pQ8_ZH+T3~v?iE&9h6Jaxg| zl2xkD-AQy5B%jIOEG}+2lvQlzWU$QEsb=1L-F26MpsPYB5>4$3J(^$p$6uR${X0=d z^;@*0^=@%B8&3Bct-ic!MDtjDxly_al=3%tMt73IXgaYPVVQ@ z>if9GIPuR)?PL`Bc5~hZl6G%Xsm=M)a;DxHBw4=DI*OE}=OZSo35aqG!Jxx^!erbj znfAtc1n;~gG6IC1$On(Ut{hm?e|=GcbJ7Z$ljn&+LHYy@_nJj9N- zt{qr&eW}>RSc0ePaKgd|)2J~aGntEpWx%2svJJOG(qCckMosH{G8D;cFcBO~k>YW+|rq`8)D^GGHA-3lAx{CA( z1)4XbRfqKE^Nv%lPdil3Zm;M*MQz9C)2W{$_e+{e>Motg4o+A`^se)KeM|Eq><gm@2Lzq78me#!Y0`F^v56r(bD^yPNDWdoJMi)y?Mm<%^@ic6nh)*8`U zv%akGMGGclUqfMGGp@bsgLwmC@fk+0`Dab}^u+8#Mf8pYPc6)%zdkp8(sk@7dr*w$ z3rV@*Izg7=;z|&4@qbbqkkF+1MhnZdiV?RN=;SgyQ5Jm5XKIngB=f{EjsfrM3rohz z4MV5(r(BjYD!RnC$6g1Ly;sM0YOY73d;9qw>i2;z$bh8mg@KC2!^N+TqO&vJ(@m(2 z;h3snr4TV?dEqCKcPFNce)&nVqO-qY%cA70l<;Cl9ou)s!7t; z=ezUEA^8RDg(P{^#YRP9QyS%GBDCp0*I$2+)J-IYE$UWI^l%1xJ>ym+rp5~;VRB_- zT*ut!a+J|f>pn3fN#M74)L`Hqt*7-fA}=e=sZ(&qa%7?iphlA^_!x%yQo=$V!XA}% z`Qg3a@G)%{O>{AqRK#tyk7AXVzx?(Zbh6o=xW?RK&pdA{7y0Jz_tavPdGma{Jek&i zm!MW<>dFfB!zFdo?C1;WmKGid$C=R_;a^S|_@09jdX+R}^7bEr#*6{pW&e4dO#8m| zlB&od403Tj<~aZ(q{Sn;d`xe4W@usxZmxZK35>cr_0#D0JODW;z9q;tU&+4|FtN8~ zF*3C`hO&6rI)Gdh0E9$69E?n?p)TacP;*N=VanYGI3>BIsW7D`w>+D?gE-W}QpU>( zs_LbnX5wXS!f#3`DuOBGApjb%g}NA#d)V68ISY6QQ~tIq0N&p`W~C(moy5gjnDUjp z61lj&6O^2bg^PuaS<=JOje}AIlU&Hj)J#A{Lh26_;5T7P3l|p$0ajLbcXt+dP8NG7 zb5?eKetuRq4pt5hW-tY_v!|Vlkq5J#Gu4fWf7pS5%-%Fe>ZYHQ2-*Bs6+l5U`pKPvPeb2zJkl$})t z>TK`oWCE3RgW9=J{ndo2$-nYDxH{SVZjPx5E7S&R3nq02OJ)CCkl_0 zTZiAdz|Q_#N*7DBKRfGhb-Q`5vKOrTIsD2Exd3BL&sGnXkZAG0wB)R-B{&&LU6=jJpvWjFncDTtl3 zi;6CN{DQz(xK`)^aGCIV9S zPPRtia9Y|LnL}9}?96|^xan|#=SmP^N)8sbKc6Vs7`d2%89*Pfv@^ALcmDI0nx!pN z)y3$hKiPSBIJr3a`FXgwxH)(^xc*F}0d;Z)=i-f3b~YBye^|a57y+<3VAmSm%v8|8 z?;K!j1jL=7MlSYFYWDUv!jw0aBEQM`dxDb-{bN{UESj1S zD%z7XbT{^^eA~-uU!CTPwu+Z~YxLF;QHo&W>bDF_~fpGjFvM1 z+>VogauLE&3Hu8`LTEAn6*XmNgc+7oB@~SR|1FCh5 zf~?o`!S^xx$#1TiAy40vUQ$Xov)?^4g6w_>8zxI|Q5%H)&;h1gGzQ;w(OoN2`^pV& z#{7T~K0?||#QOUs=A6iSCFWqnzw9_oO#xI!Gr|xC@rPkKqA`aZu@7M{mxhj5AY@U8 z6c8M`q~Jow`?oqF<{Vj~EbBcn&0Oz9qZKK3{4@p);wz;G?>k20wj74V_l{*G9LDAJ zGb9aCAZpf0A!N~qwK?b1Gi`OZTgU@q)cHGTKVFkOmOg$a1%v01rCoT6b#X`oY!gK> z_p0E})_H04C=qjoS*AZOV`FAn^GpF;MW%I8nKN%$mY)%C8`=a&}{BxmrKLSa(3en??OZiP5lS}x?+-;X6eD1*nx{&$d()d z(wpYeJ?6@r=BcJF>5{(D%P*18oOcU-G@UtbO1?S*fKI_f@3`q- z6DsA8S3+Y_iZMx$p)tN@BG1-C;-`ndBV>SzPL*=&ohI2G6feEOASUq)*Cj?-7J&;} znqrF&ei;7Lhtjlxvz)O%&CBPt5~5GydK<1uXi`GIB;f;%eVXOpog#A*;|G2u*aZjp z$qe?(oc&t5=3R8B>4{lIIuUD@rd&7@OIO?Wl*fnyp|(O1PddJ|FTPU7rN47aQaOhW z3pY5Reenyu{fH_@&p^VVBDHX$*8zve&<^#MpWNVyJm*RRw5Qq@36qSMl}y)+UiB-D828jNbI zbhALCxOgOaYoKS<0#mwD%fW(!v_eXy-q7^tn!W* z$~enWX~a)4Te79;p%$fBZyh@QsLr6yoxt5C>MqHqQXCdB`%Au!<}iAuJlP ziv4Pc*v(@rhbwkrXR|VD>07ET&E=Y|R^c$_bMGZU^)9*Wcyz3)R+i77e7kR$^3`3f zP))sLblLMNhsLDM(N6K~AYQ1fzHljEAyNL_MU!j-1SZi{-j%vAt5(dN@6|-ne~=W4 z61A}9&s&$U+Ec9;-q95_P0SaYS1(IS2ZK&V&t=!t-2LH0(zwW1G!hf-U81r2g26w` zWVic3sID}B|CJ`|pxLJ))2X9*QwjKXlidy%f}6(u3+(0KbEpSxF;uHa!`g~RN0T*& zgBg_^r>oJIqugCjdU5}iavTzG-#PYYM*LxNb)ENen$(pd<3!|&Ubh43Y&8jYigR*` zj#92lylurcw*UHfk)-xQ*_bT4UXaAfzYxtg)ml#Rl!is-L^9U>+%P}V^GeS*b5`gx zdruPuh zRVARx31AV82qJ_G(pMQmvzYSj8Dx*M{G__F(d;)LLmQ&unuDzL6GZ%vkG#b1-4oQ} zMr~PBZrbz$b2t(+Vg-KEx5|&vW6T(^WhtIkSi)iSw3&-EcWkkl(x~9i*Ra+v-E_i3 zVM|}+LtJ)`+$$&O8-kk*Zso^+s_&vkMC8E9*X`++L+s!rr=H-%xP_Cc#G~;mtRvwY zTg6XS$e9VG%hc9B|s6M%mzpk_+=~m`v9*x=W`+UXxXW20dkTa>tXi>^_%{ZYh z>Jeq1@)N8845jpkV8b*|J}V~WE={hf$|h*oUFzE{-n$-NdQ7d}g?Ae)w9X?vABnuJ z&X6R8yGt>%u#l(|ei0Z$+P^?f{Z#9&kUzpvPtn;q3ETLZ2of?FdJ)Mmk@9TBzL|YYkVf!&)^UkUqrAtoXyYiaXr!KFdI$@^GAz_6R`g0NB8dTK z?io@r^x{NrGVPdFr($A3K?C5Vm@xf9GpBgzNOU55_A^c5>TOKP8zRdlsxj9xJ05hP z;+ty|Q=aXy%o(GsUCgA$(lsMZKhaBQr>)lL(#JY=seQoAhReR^q!{!$%j5oJuCsw{ ziRN;8MB$#0LAX?`vXFmL-1O;0)MAd8<~0k%Pm0&$a6=;+yzPh+x}?ul_DO3&{a{(T zS*Tr-&!1c-@8x^FEp;^`yW*`ffBr4Y_m5Eee_wPT$p#ZoCXE z9Jyr0#Sz|>td~vAR@|QHv~wq(2wbH{poctvKo?3GE=6^8?i*xe(R(hJtU6-B z_0sxr1?b8u8ZLe9P~M^)6dE1;({&&5=Aw}z_Uu!s?2leerLwu-=Fl_WF!j`XWkX9e zhAu7|rLv>zXG-g5c82FNYz2!niV3m2FkdSZ8kF-8bnPa%>}XK>mE~Mol5EN5GW4fh zrImo|q@erGQa!*H=rfnNd!C$YP6(kI5h2coGm)^mW2$YHz8R+V!8fOcsGsIWo`Hag}lh3+Wbh6SX z#VXE^J*0i#L}-UZHFI=~M!EyM*q1-j1oNxQ!F7P4Eu4^Sm|KTfm&jADYw{G;lBCg6 z5@u%?(Slk_)4Xd9gTZ9W^r9DY-1-o2OD95CCd;PP$_uU{;5t3!d2U~;1}xYxaDG*D zrSugt6}u5@rmyB7rF_?uO~0Iml?{&9`Q{mnrqBA;d6i{QUsZI5rtJ9$wYAs*+_;Ym+h0(* zY|PnDzW-n-HF1u)&?~!hjAmwkmoWj_t)uoAR4H77Z%tKibJdW|7RpcE zH_(|+R;jtuJU%D-0@x#9m(b*T+$f+t8oV`F+v_5-X2~= zA$J8$SA+7Ba4sV10pm7p#`GhW+FRs^B8#DB(=n;piHp0RFQXgtIC$+QVMjoyCE>|Q z4j<_N(DQxP+lt36Bq{9&h80$3g)3@O*$>TW0rW6vxX%N$)HGmc+<}i8@oeMd z9QzY#!T`U+(7fcj`qy^b)4D zuV>UOb*R2oYrDC*nR}itOMskrcvWvu2bdPm*d^NG8ccTD`%qToJZdSq)A~6s`&30* zB*H|m(IXn^2~L}f?rvGj8cF&i7Gq^xODHtxCu(i!fJIJxe7uVNJC(B%%51v9pnFe0 zWMk~vPHwxcqq5q1dC4TTIer=$Q3rjxudi?4;h|x0kWm3xliuF&SWfi@{jz-U0^L`m zm^(gS6Xiq1yhDLqjZXIyE{QAjFYd(BRoe0+R_YOposOx6LJ!f!&frZQj-SAS!RxCb zTgBLlnb$03D5a|a$;u{59A2viK#l+aN}PXw$nYaD_^1J;*-o;BC_v1U>K|_cFX_QF zVM{201Suf)w~x0%fPW_{@aKnN!*rM5S&RtvdcT7Vkf}@MX)xFiIU9?KaJu;#eXS1> zWwaD2VHF^aS$L~O0zRis+_C(& zF^=hw4D0N|6s5QEYi8nl+i0PL2(rCCbn$Hln}1UL%b`Oj?sR`(tCcWc?h39JSUM<&eSgXdWh}+ZG61BtrDBS7LqS7_$qrqY5TY+xE00x zKCpQEtBkdEV%W6fSi)f$HNlB#BwxhHW>r!#hM~*!)V8{-fOY%quXPy#3d@Wf4BG2! zk_sld^wnIv^ZCzZd=X3arA$35y|>toYEQguvC*5TSC&}i&M;zL zKtw4EEf=1Xga;Fb2ZL~F#7e$&(>V{NQ+Oxvd6`lqw=1oqpX6W%4YTYS#So6ugD}&n zYN4_$tE%?f+Cb8~MVZ!lu~s8^l((I2GeHsU`U}VVJ{;kk#K&dmb0@z15gjuXK((z9 zse!MJP z7((Jl0G+{-9>fnan6V7{9g_0e2$B(3*+PNh?<9GZ7IUR}3kO&ZyYORPhuyyo#Bm}- z=`|(*F-t1HH?07$9PShU`{RFh#y@J-8|*G?CEK+V3-~*E>JAp=_(?3GWcsYoT!!U5 zksIXOF0<20*feYo_GS<cyd6L*AW$*6o{!+H`NkVQA_A;fZdqQB9plaOmw#WHrZ zR8MLyz?N-uzKxQ$s$P0^Kz;`oO&pwbj>Hd<-+WX{^R-K!kE7Uh9SC`*yK|ogKG!tD zf8e=rKQr~Kff8{CSYyoB6w$n^n(WfyQtxX~Wj@kYgFrT13iar`>6_vrt_UJtR=!GG z9CRtSTQcFhn#=XgXP2c?*(lNdDIog*nUtDUYB<0_G(uZ}R_fJsKf0fDuVnN!aY+8t zTb<_ZEv~|@0-Hf8&Ggfhj#F-2yfv{csGaePwN_Plrc+>Qj=iquE9lRFA&aOI4eO6e zW57N29y4bU6_6i7!+e@%O+(TB9};(f%!?dh37$SJwgB*RRSKVE$+b(*R;PXQF~0SI zxk|hB^xl_hB*vE?LP7wQRzj{WwjGm z{v}$Gbnhz{HXwE2PUuNR7XGbG0|;9gdgn7&%L^5>A;QXZ$o70}A5~7%WIFp5!EXZK zM!efxv4y}Hx(aMZeBj?EZe=>?jy0kbF|QLq`cn|WOg+X$=wcK}e9%SNvxJ;Txie;n zyZkx!7g1~_ArLtn2&osVBb!;rT%F&gZPr_HZA?~K=i}k6s25U~G1K6z=P|J?qrQ*{Y z8yOrF*`9-+SPk3fO>J)+u2%@SZiIO?>6`7AjBQ%*P0xBI*wv(5wRj>jzT`Zm7A9Yx zvGgsnXGL&J9f+ZD5n^vo*Qv(K(u}pRGH(wF&LREXwrZQqU1-FZ5MtmW9ernLE0kE zACaxWc&%qtJQ8}JL?8;eNi2B$tNQ7Ca7_u)EE`+qLn?}IO;qT_%O1P8oHyrZOZV_6 z(;@&nE5d_4$kJ11?~?OfQI+lip=gZHppyy2D_@lA2|5$B*^~CMGWCL(TVzjc_{gt1<%3Utm(;4gY3xx6#@tg^U03BcIxwL@;Ntq=n3c~kCLPg zjgz*V)a_y3poMN@AyUO<*H*UPOK$1xOczm6N*qHuWv;aR!22OcQ4bSW*Z3RLt@92H zWho=D-Ml8V^k`A0b-mOteb4}GN9mK`d9{`0h8g|R z1H_D-W>1fO90#I0XE)(6HiqFQ=ljK1X$s~HWGtRiC&PuDxfjTZm;~xe6Nn&R8j7xB z*;q=q#nlCp*O{QtUTCS|Q?%c%DRoAXC3C~As6LD489PNNm*4T$W)l3zd)8(!!fH-- zUSmT)cbjSVlme!_AR23^gYO^^L`e!$#GJEFX`gUrZYI}lin`1fQG(o`ZkuTZ>0TnaSye8NPXbHTtUztx0{a$b9!Q&R)>e>JI!|SJjFqM( zXJn{mD{EFv)YeNnK0w=WYp8da&q_$_w{~@99;$_3&X0{4er}2v(0Un2z-wxzKuVVf zBFlK@2eTfnpBmI!e|}113ZKgCtwcowYN$eAWY0!A-axE3q+%4{Qc%n9NmWC5zxAQ{ zJ^vR{vs_YAFt#=4YJkpgDWtuLmWrxB4%?qHVxh+S@mjB>zH9;oikPyE`@~YOln558 z)B%7A!Wt|;$8bYhO3dzyR?fKMMmg^h03 z&o{n8_Wgq;5g@g3(jZk@K(DqGYY=h<;y}Z=ubKG+78V!hmG7O!8rrw-q8Rc>D!=+b z5d2L7CPZ31qYq7#1yrAOL<^)SoF3a&wjW4`%a%g{8dN<)Pd+= zb5j%Z$>|Fz7}X(oTZ?~>{Au8G#qDD&ibUt9XGTSrFllAn0uAfVYLXukKp`QBJWm=3 z@4pw!WV(1R~>>VT&-q4)Fyqtpu75$L0ET-LZJ6R=I6RA&DXScgGw)QpQkFICXKo zKG7P#_?Z?@hG?g{JyDO}f>meXj0I$-!dqm{!g?G5|G~R7zRH8F95ERF2qZQ{l*JNs zd@Z1t^sy3+LLHF2!Q_ zu*swP5BShi_5TJla)h2!ZsR=oV)If5d9&ou6!*_QKk$JdlZ|@MMatdtCqM9jpv8K# z`%2-VjZm$ZBLE$>YQ9ZasL=TkKzD30+xWbw2jx~&yZwCnDk#BqpZM05rt}nyy6SNg zx^7QasouMHP^1 zU)xPjQ%>%@((ihf$gTB2h?!+Jx2>(g<#6qxYlB{zh_6PzLK>*Nq$Ew;8T<4&m?+af z%Yuv0s!F@AU;GA@d<}G;JI?$(V6is-1;e#p7~^Q+J?kcjbvW6TxHm`~6B(7T4h{~A z#x}ty*}>rXPFnz5r@%$wQx#gll=x8(h=i&YE}SibE!nBTedAJ1ojciSsLA*s7{9 z?AOVb)=O73zov(mmnUQt2*50HkFDxn_UuoeDN-w++xUJWOd_oP;|6p%s1AJyQKW=_n6jSnyN*_gSa~Pp&#YcNQW&=2 zzCD@LLkBysfEgKq!Sn-jvuN7PlhxH#C%?Yj+)EJu*d&eON>wCX4<)$mHoxyg1?RN| z7s8-at1NMMARA1Okmp)_#dRF8@5|D73uIva<@k{uAd+Cia`x*RpaUJ+Ob%BPd@%12 zcWzx;TKWhCJWxJjg=JSw%`vkDZm>3mgntJgH|5@Kbzryw9IRuWNV}TiZo2wJ~aEr7PnXnB2P@VES%S3 zB^r!l7@?^kKmh?%$bFLWV^qo48AAh9#>Y4X9m+CdRS;1fm;Zk~iW{VqmZOeBa)7no9AlZl=L6Bg& zByXy_gb^qLqK8{jFpH&g4i?1A34m^a4wT<0{ff^nSmBP z9Zg-z!e%nV288@6*Nz0F;G!l}{T8JD>%px7Uy7~5A{(h)8#ZmU(OW?3Y01Xs*Z!5~ zoV@+z6u_nepW}9ulsBTxxDXgN-xdP0vCxIXrCMJ!j=c~fD4N^-EKUPZNhrT603n0W zRoUMF!;7ZX-!S5_7odvmGniScv^&Kz`aI%BHF8BI*94=8@1^YgErZ%l`!_J(OU$Px zC`-m{YlSoV%v(-7-$azS>+p&G17Hx&WI9y+J77SNJ>viXd{zi}7T{mt!O1I6?SBCt zCPDBp^l#vSXD9dl{{}qFg5Y737q8<>aBDMofxDWEwN849HW()L{~^2h zPfTkerI^7TSFdtg>4?Q{S3Ru+=BX9u`*aPUpd%Tb^U4SxjJ=>Tx9{SyfFZWlgOBuT>cYhasQ4m^L1ATSXyII4V*p^2%~fHPNCch0Rxk+p z9gPj#G!EW>YHWLeW1Qyc0Z5fI$sKvU@3c=`MItU4%pU=Pg3x1@8Y$`7Lq!=ND#vPM znjUIGl_B&i(2@{TAmj)^i>8E-Fmz~=II^xG;eMAJF zb7c;oOB0WA+xuJTE;0X0c`(skn#e#G`yzc{hOMG^|A9Z3)Mr6ACX4GU-y4bpE-LAX z7kc+wl|U|+rl1KjpL&;dCzf4HAyURWx4_MMP!*qN%fN6>sqPC1_#M9Kccddp2L`gG zOQkNo{PMw&!zC)3pPTDTh!tG#U?geZ>`5`Sr=37Ecd~rm49bvMbfDjZgj*FCdg4Mm zWJVRnSOj%M#Z^MPF$4y~S+*Tsl@bk?yab~Pir zC+5bPR=Ub{Jx|!?s3IHXB83p8Q}-{bzT5~1^(V95PQJSlixx&k&%qtBq)YVYOEqDQ zt#jlphLIv?q$I*#)Kz6Qm6fa`W$wjbt?=;hWarp|`v5y@G{1h~5S8nC?_;JFk*vfU zCOGjH461Z--aGtp>ugDJ|XO2 zkH%orsh`o`DVtb#F<(Iie=qi-sPWi4;~3)}_$n5prl3h{Yim`czI67(o75VbV@@RV z_tC}m>Ro6~b~!_{rqfa7mQe7i?%ZlZbQjk(&Fa|eeds=!*gX0prfi0ppMDekX zMs<(|sN)`;yr8LyY~)jY5B`HOe&>~GwY-;;+tpcglpx3$d-u4^Ou)9H@uFQ#1K}c& zHW;xG9_B+VePMeG>uB29FKZ~jKj+HzhMI%K{>SC{`jMAa%~Y=42kS`)7ilCi1r2{| z)4)$7TRCd-KtC~Y?t|jN{}++v?@g`B0z}XBLN3-sYwUv^f9W)H@4v< z&Q+Hi?14i)Ha5noBX2S(Hd31`rQA73o(U*qh-AmdKOqrtQ3}DCbME;9ngKPGwHrZX zCff`ov_tD)C^jQB9wIc;T}q0@2+f|_Ue8Tz&P~)mO8{q#rK6)Vh%>>Fn+F585xx~0 zzLl-5ULuPgs800I?0|b4;6py*-{)ao>q<=+S&WX}L01?iu-SKmu=v($79w2OZ*F9WUS+$^(7JmOoOAx1p z4&>(9(MX)D>KpFArF6IDjxsKuS@1`;8^OY=Msp(fQHxreV~&D(3EOUsQojeyA&^IM zn)BSzXtqMHF_8F19@sz^D+RUfv$OaYx0|D)=k8pdojqY`zt!1h_*1o^NxO4-Itcc` z3O=WddmGf7L5j`!P^<_%iv;S>!L1AT>F!;B-x{zeV8c=?;Q`M)@H3+1P~MT+IGPMf zNvGFa$~8U98?$D-6AWrLVH+sZ%F`Hu`j*vdjy=b%S~?9(V<4{_S*{l`XYx-9^QNbQ zQ(&Q1O<9-Q>VT)1cF)nsT3lO6g9CzFVU{PIPCXZ>VT-R?jSRr+W+zy;u9WtM;exv# zMphUfP#lTrBS6s}f>qAupkA&q}TZ@K?R(K`vrRoq+Ldru3J*q3Z;<)$<^{JiV2WKzW1WKfmc!8a73 zMbcM&Uzg-3_wHpt@pU8oqEevDS9v?uKy6$^Zs~ni^Wg`#rro>X*(f#*99YZ5Ta`v_ zhv^Gm4J$hH-0HMZgP)vVCo#Oov0N_BFr>~f|FwIywt82{f7%S|{?)kVQuX~u$SqMV zoQMQ7IdGIO{Faq6W1;pE4k3r=QPU4)pgdf;$namOoKQPS;kUnk(;o z@Q!^?ub=G!d8B6z_i)cZG`f#^?N1Lf_JY}?C^z9Vv}nbi>A*6T`ve`6XO-sixR-7sq1fYX^TUfDaDX z2P?T|TQaNlk~`SpKZrq$(1Y)3zeC<2dy8(` zV)i>x4yZRD>}4#5p(yb^o9#C-TiOMwR`XD#Uu3c9sj2$hX$be_7LHeY6MS-JrB4k1 zsb>R6zZ$mx?wh`AK)kKD0 zq>15LpEeZ47xK-8K+7SqpNY?mpPlxaUTXr3=qa*$p*6J+Xl~tw~-V;H}Dl@A2EuW(wSEJNLlDb;1VwHoq1CbnUX(cgKl?4#K)vgQBDfjH_t755 zj`+;)BJrX)B^6ZM=?vHWtlt0h+xw91ccmJibXPbULrI`4bxzJd=miHP3#v~p_gAfM3x?UP~v2M3b-CWsY3&cBHsg3+!2cI zR~Q%Rn7EhuIRIz0{}Hl8qLurHArM6J6=Ty3TP^(kg~RggAI3lsRwH#ARRwy{ja^p9 zR^1_36pAw_@GnYj{+bH>a0lx}K9RQm9ZpJGX&OV4_TrBQ) zYi@U zhWXk{Nv9780YfEC7xu&4d#|l;B9Of=a;A*^r5ygPFvI#p~U86 z%f%XL*6-rt8X4Xyn(5v#oS6RXETShlqwphw#W{1MbS&5P&5Y4KN7Zh zeX4Vh0O?Vi=bUl=_VuyW4>myc@u!RtBaW~j= zL2Vkr-*i(ZG_SxA?4 z+S~oT&o9m9v%A==&6#?;-Y@hw$;~PK)xafI?_x5)^6WyCb?f98-et(=D}?#50ZhAr z)c1um&K15njlbFN53$DMFn*+3J@N@PbuK-Sh6BY2CAJVevDn+p;MKE(^o=j>@U(u|S|AdJY_yq4?E|Vel_bFG+Q|G(_FN3l1)(UB|1-eI#+b?*5!4bajT8sSEST z=!|p2YYXo&C(TE6VD*(o8A+Y?csOGtU@LrY=&AVsivah3emDU1oxdNp`CoD0|9Ip8 zeE6rp{TKZmeE4rxZ)o=4sq~-U{-bfqeu}@I8~U@L|7iN(>fLhK8QEbH!2-OjO9G2F zqeGYs&9MOwklWHC)Zhwv+9}N&dcjt5BPse9ayd78w!mzc&SMt1^l2hYU{*ksAEybV ziAWNrNB?pntiwbK0kEY-`;c2YWOo`&T(IsQs=oV)+EQ{`q%HbFN##T;8ctql`-}E5 z5U0^SG-V4(w8up{$FLBbwWDOlWzoqV^yp18Ak1l)iB2~$ZW4{LC)R{s&_K%QbD?p) zJ*X{xf=LT9FsAkR5=t^zFZHhPz6==(^w)&9fZX>!q4hBemP0D1o7;K^%r|q1V!K zmW#foqIrB;=xdyNVSN|C^}@~g+TA+l(kD4qLJ9tQfH!`yQAm{s*xSxNjZ49o_0sQp z7F&bs2|2rtTM(B3$u55Ig$qjW1)T_1Yo#=T1mfq=w@@fFL-u!aojuYn|1XD2D0==o>*0BU( z3m7pX-r0WOxy7M&E)SM?o*nSuROdvCrkKor!%ceG z9&$zjsj8gYZ@>MjryPF(l}_>(r}ir+<-y1ef%D<%bs2qG9_DlT+)BrZs_4k9w@-Kh zOp?>^+!z8^ri8;BJELT?1}bD}j5MmqGfQ{8kLD3zRI$}(NSYTrB8o|`9Z|k;qhzHy z?*)G*f)W3ffo>j{}tnT)R97iz3dqQ#Lq|YI(xe`&QoqME9YeGIN!$( znc3#ZG^Nli^aaCkVNE!~BwQ++iM3p|>zQeW3WuIZFBO7{1_#gcn)+BH0YmB05HAo$ z)MWp%-?Wj#;ghNS1?y&Vh>Q8nEKI4P_KnQ3O2~*K%7`M0racDo_`MQcT)m!!1W_`^ z!1M>lY7Ru3hlo=2V_hP1+-009u7-(k_Iq2@q<58Zp-t$pijOhObAEa?{PM9HpcCuI zANuFCc3VuE9nh|=j9285is@&c5a*loyorGs49<;^2<5VdGh?#QX;mOmAc6-%zlh+^ zY;{v_`!g-353T9RuFPj79^Rcu`W6Xm*iOtNPP?4V5xkSS&*I@nRIg&e%e zfzz*_>>S?9t(zFPgd|co=?wbJiiTO&9GDVfv}{k}SJ{8}JqUXqkw6=89i!sGV2~Ug zNz=qfFyfcNQLk)OJZ^tAVrAme-ze;#Qf0DeywNW8PIa1TpBn=HXvCf|_kRS|0xA7x zcsMD)!AR1{$$!2(@6ccSiM%noXZ{|*wZHvu4*NzYrtGq$pOy4m+U81{>&a?}TUWAM zjSh5Cg<$@24GoQ&W{S-gmo@i#G4vIqS| zNk=CmdO{Ci*2PMeN&b?g-^eQPc|?A5=+8;|E+sci5qbc#9Qfyy+{ya6ECZic2k(BOX6%05hg9>35W@qWL{#@RYr2MSjB>Nne$;Ch48Z>F!tnFu*BE|3cFL zqU4^UTsTwsMz2WvBT3InI-+EWC5zVqlvOYpwf~Hyf3I!q3176xZ+z3QN&4F4|2`(E z!npvTWUfg16(vi_Ur@&L?kPq{|x{|v?A$mOZs<`I@5kLjzI@zsN^|@|3T7TNq0-~IbQ%2z*tgO(q|<7 zRY||ADNN0nK9axI_bIth@gXG}ojIIG01Oi=SuObgDp@)6A5D9MMVSBoaY;WZ>Az5N zah8=h08ALUca$s%|KBA&W$GI((nZc6mh>Z%zE{aZNtnt3kayUJN>pN*=@alBEBvkh^qop}xqL{;-Z>ADuS`bomy7((l{J3*Bpsam*{9@=+IJ{fnz>WS-uB*P#Lou+ zFdHF{l-yz8QL-ZDoTP6}M(M9l!hW{sQNPyz56uitu9kc~x&QzG07*qoM6N<$g4l-K A5C8xG literal 0 HcmV?d00001 diff --git a/TODO-app/TODO-app/Resources/layout/onboarder.xml b/TODO-app/TODO-app/Resources/layout/onboarder.xml index d668188..409c114 100644 --- a/TODO-app/TODO-app/Resources/layout/onboarder.xml +++ b/TODO-app/TODO-app/Resources/layout/onboarder.xml @@ -5,6 +5,7 @@ android:layout_height="match_parent" android:background="@color/colorPrimaryDark"> diff --git a/TODO-app/TODO-app/Resources/values/strings.xml b/TODO-app/TODO-app/Resources/values/strings.xml index 1c1afae..c46a4ee 100644 --- a/TODO-app/TODO-app/Resources/values/strings.xml +++ b/TODO-app/TODO-app/Resources/values/strings.xml @@ -67,9 +67,12 @@ Ohita Lisää tehtäviä kotivalikon \n+ napista. Merkitse tehtävät tehdyksi \ntai poista ne pitämällä \ntehtävää pohjassa. - Lähetä kehitysehdotukset asetusvalikon linkistä! + Tarkista tehtävän eräpäivä painamalla tehtävästä. + Lähetä kehitysehdotukset asetusvalikon linkistä! - Erääntymispäivä + + + Erääntymispäivä Luontipäivä Aloita diff --git a/TODO-app/TODO-app/TODO-app.csproj b/TODO-app/TODO-app/TODO-app.csproj index 3f58aaf..2d09749 100644 --- a/TODO-app/TODO-app/TODO-app.csproj +++ b/TODO-app/TODO-app/TODO-app.csproj @@ -176,7 +176,7 @@ - + @@ -187,6 +187,9 @@ + + +