diff --git a/Orarend/API.cs b/Orarend/API.cs
index 2ac5490..f31bca7 100644
--- a/Orarend/API.cs
+++ b/Orarend/API.cs
@@ -73,9 +73,11 @@ namespace Orarend
continue;
if (óra == null)
(ahét ? órarend.ÓrákAHét : órarend.ÓrákBHét)[i, x] = óra = new Óra();
- var csoportok = óranode.FirstChild.InnerText.TrimEnd(':');
+ var csoport = óranode.FirstChild.InnerText.TrimEnd(':');
+ if (csoport != "Egész osztály" && !órarend.Csoportok.Contains(csoport))
+ continue;
óra.Sorszám = x + 1;
- óra.Csoportok = new string[] { csoportok }; //Az állandó órarendben osztályonként csak egy csoport van egy órán
+ óra.Csoportok = new string[] { csoport }; //Az állandó órarendben osztályonként csak egy csoport van egy órán
óra.Azonosító = óranode.ChildNodes[2].InnerText;
óra.TeljesNév = óranode.ChildNodes[2].Attributes["title"].Value;
óra.Terem = óranode.ChildNodes[3].InnerText.Trim(' ', '(', ')');
@@ -99,7 +101,7 @@ namespace Orarend
///
public static async Task HelyettesítésFrissítés()
{
-
+ //TODO
}
}
}
diff --git a/Orarend/Osztály.cs b/Orarend/Osztály.cs
index 6f277fd..998a8ea 100644
--- a/Orarend/Osztály.cs
+++ b/Orarend/Osztály.cs
@@ -8,7 +8,10 @@ namespace Orarend
{
public class Osztály
{
- public string Azonosító { get; set; }
- public string Név { get; set; }
+ public string Azonosító { get; internal set; }
+ public string Név { get; internal set; }
+ internal Osztály()
+ {
+ }
}
}
diff --git a/Orarend/Órarend.cs b/Orarend/Órarend.cs
index b68c187..f895069 100644
--- a/Orarend/Órarend.cs
+++ b/Orarend/Órarend.cs
@@ -9,13 +9,18 @@ namespace Orarend
public class Órarend
{
///
- /// Egy 6x16 2D tömb, az első koordináta a nap indexe, a második az óráé. Az értékek lehetnek null-ok, ha nincs óra az adott időpontban
+ /// Egy 6x16 2D tömb, az első koordináta a nap indexe, a második az óráé. Az értékek lehetnek null-ok, ha nincs óra az adott időpontban
+ /// Egy hívás állítja be az órákat
///
public Óra[,] ÓrákAHét { get; } = new Óra[6, 16];
///
- /// Egy 6x16 2D tömb, az első koordináta a nap indexe, a második az óráé. Az értékek lehetnek null-ok, ha nincs óra az adott időpontban
+ /// Egy 6x16 2D tömb, az első koordináta a nap indexe, a második az óráé. Az értékek lehetnek null-ok, ha nincs óra az adott időpontban
+ /// Egy hívás állítja be az órákat
///
public Óra[,] ÓrákBHét { get; } = new Óra[6, 16];
+ ///
+ /// Egy hívás állítja be
+ ///
public string Név { get; set; }
public Osztály Osztály { get; set; }
///
@@ -23,5 +28,18 @@ namespace Orarend
///
public TimeSpan[] Órakezdetek { get; } = new TimeSpan[16];
public List Csoportok { get; }
+
+ ///
+ /// Létrehoz egy új órarendet
+ ///
+ /// Az órarend neve. Ez jelenik meg a fejlécen
+ /// Az osztály, amihez tartozik ez az órarend. Lásd
+ /// A megjelenítendő csoportok szóközzel elválasztva
+ public Órarend(string név, Osztály osztály, string csoportok)
+ {
+ Név = név;
+ Osztály = osztály;
+ Csoportok = new List(csoportok.Replace("Egész osztály", "").Trim().Split(' '));
+ }
}
}
diff --git a/OrarendAndroidApp/MainActivity.cs b/OrarendAndroidApp/MainActivity.cs
index 7970e83..93d4b22 100644
--- a/OrarendAndroidApp/MainActivity.cs
+++ b/OrarendAndroidApp/MainActivity.cs
@@ -9,6 +9,8 @@ using Orarend;
using System.Linq;
using Android.Graphics;
using Java.Lang;
+using System.Collections.Generic;
+using System.Threading.Tasks;
namespace OrarendAndroidApp
{
@@ -23,8 +25,19 @@ namespace OrarendAndroidApp
base.OnCreate(bundle);
SetContentView(Resource.Layout.MainLayout);
handler = new Handler();
+ API.Frissítés().ContinueWith(t =>
+ {
+ handler.Post(() =>
+ {
+ TaskHiba(t);
+ });
+ órarend = new Órarend("Teszt", API.Osztályok.First(), "gy1");
+ API.Órarendek.Add(órarend);
+ API.Frissítés().ContinueWith(tt => HelyettesítésFrissítés());
+ });
}
+ private int a = 0; //TODO: TMP
private void HelyettesítésFrissítés()
{
var table = FindViewById(Resource.Id.tableLayout1);
@@ -33,29 +46,69 @@ namespace OrarendAndroidApp
TextView textview = new TextView(this);
textview.SetText(text, TextView.BufferType.Normal);
textview.SetTextColor(color);
+ textview.SetPadding(10, 10, 10, 10);
+ switch(a)
+ {
+ case 0:
+ textview.SetBackgroundResource(Resource.Drawable.cell_shape_light);
+ a++;
+ break;
+ case 1:
+ textview.SetBackgroundResource(Resource.Drawable.cell_shape_selected_light);
+ a++;
+ break;
+ case 2:
+ textview.SetBackgroundResource(Resource.Drawable.cell_shape_removed_light);
+ a++;
+ break;
+ case 3:
+ textview.SetBackgroundResource(Resource.Drawable.cell_shape_added_light);
+ a++;
+ break;
+ default:
+ a = 0;
+ break;
+ }
tr1.AddView(textview);
};
API.HelyettesítésFrissítés().ContinueWith(t =>
{
handler.Post(() =>
{
- if (t.Exception?.InnerExceptions.Count > 0)
+ TaskHiba(t);
{
- foreach (var ex in t.Exception.InnerExceptions)
- {
- TableRow tr = new TableRow(this);
- addCell(ex.ToString(), Color.Red, tr);
- table.AddView(tr);
- }
+ TableRow tr = new TableRow(this);
+ addCell("", Color.Black, tr);
+ addCell("Hétfő", Color.Black, tr);
+ addCell("Kedd", Color.Black, tr);
+ addCell("Szerda", Color.Black, tr);
+ addCell("Csütörtök", Color.Black, tr);
+ addCell("Péntek", Color.Black, tr);
+ addCell("Szombat", Color.Black, tr);
+ table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
+
}
- else
+ if ((t.Exception?.InnerExceptions?.Count ?? 0) == 0)
{
for (int j = 0; j < órarend.ÓrákAHét.GetLength(1); j++)
{
TableRow tr = new TableRow(this);
+ bool notnull = false;
for (int i = 0; i < órarend.ÓrákAHét.GetLength(0); i++)
- addCell(órarend.ÓrákAHét[i, j] != null ? órarend.ÓrákAHét[i, j].EgyediNév : "", Color.Aqua, tr);
- table.AddView(tr);
+ { //Kihagyja az üres sorokat
+ if (órarend.ÓrákAHét[i, j] != null)
+ {
+ notnull = true;
+ break;
+ }
+ }
+ if (notnull)
+ {
+ addCell((j + 1).ToString(), Color.Black, tr);
+ for (int i = 0; i < órarend.ÓrákAHét.GetLength(0); i++)
+ addCell(órarend.ÓrákAHét[i, j] != null ? órarend.ÓrákAHét[i, j].EgyediNév : "", Color.Black, tr);
+ table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
+ }
}
}
});
@@ -101,5 +154,16 @@ namespace OrarendAndroidApp
}
return base.OnOptionsItemSelected(item);
}
+
+ private void Hiba(string msg)
+ {
+ new AlertDialog.Builder(this).SetMessage(msg).SetNeutralButton("OK", (s, e) => { ((AlertDialog)s).Dismiss(); ((AlertDialog)s).Dispose(); }).SetTitle("Hiba").Show();
+ }
+
+ private void TaskHiba(Task t)
+ {
+ foreach (var ex in (IEnumerable)t.Exception?.InnerExceptions ?? new System.Exception[0])
+ Hiba(ex.ToString());
+ }
}
}
diff --git a/OrarendAndroidApp/OrarendAndroidApp.csproj b/OrarendAndroidApp/OrarendAndroidApp.csproj
index 8ad7dac..ed283a1 100644
--- a/OrarendAndroidApp/OrarendAndroidApp.csproj
+++ b/OrarendAndroidApp/OrarendAndroidApp.csproj
@@ -89,6 +89,26 @@
+
+
+ Designer
+
+
+
+
+ Designer
+
+
+
+
+ Designer
+
+
+
+
+ Designer
+
+