Hibajavítások, az órarendet az API-ből veszi
- Az üres sor beszúró javítva - A timer.Change javítva - Az órarendet most már az API kezeli, kiválasztó metódusok hozzáadva - Egyéb javítások
This commit is contained in:
parent
f8aeade139
commit
3733f54fb9
3 changed files with 34 additions and 34 deletions
|
@ -287,7 +287,7 @@ namespace Orarend
|
||||||
{
|
{
|
||||||
if (value)
|
if (value)
|
||||||
{
|
{
|
||||||
timer.Change(new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 5));
|
timer = timer.Change(new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 5));
|
||||||
frissítésHa1ÓraEltelt();
|
frissítésHa1ÓraEltelt();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -319,32 +319,34 @@ namespace Orarend
|
||||||
órarend.Helyettesítések.FirstOrDefault(h => (int)h.ÚjNap == i + 1 && h.ÚjSorszám == j + 1 && h.ÚjÓra != null));
|
órarend.Helyettesítések.FirstOrDefault(h => (int)h.ÚjNap == i + 1 && h.ÚjSorszám == j + 1 && h.ÚjÓra != null));
|
||||||
//Ha az eredeti óra elmarad, és ide lesz helyezve egy másik, az áthelyezést mutassa
|
//Ha az eredeti óra elmarad, és ide lesz helyezve egy másik, az áthelyezést mutassa
|
||||||
|
|
||||||
|
public static Órarend Órarend { get; private set; }
|
||||||
|
public static void ÓrarendKiválasztás(int position) => Órarend = Órarendek[position];
|
||||||
|
public static void ÓrarendKiválasztásTörlése() => Órarend = null;
|
||||||
|
|
||||||
private static bool nincstöbbóra = false;
|
private static bool nincstöbbóra = false;
|
||||||
private static Órarend órarend; //TODO
|
|
||||||
public static event EventHandler<TimerEventArgs> CsengőTimerEvent;
|
public static event EventHandler<TimerEventArgs> CsengőTimerEvent;
|
||||||
private static void CsengőTimer(object state) => CsengőTimerEvent?.Invoke(példány, CsengőTimer());
|
private static void CsengőTimer(object state) => CsengőTimerEvent?.Invoke(példány, CsengőTimer());
|
||||||
private static TimerEventArgs CsengőTimer()
|
private static TimerEventArgs CsengőTimer()
|
||||||
{
|
{
|
||||||
if (órarend == null)
|
if (Órarend == null)
|
||||||
return new TimerEventArgs(null, "Nincs órarend kiválasztva");
|
return new TimerEventArgs(null, "Nincs órarend kiválasztva");
|
||||||
var most = DateTime.Now - DateTime.Today;
|
var most = DateTime.Now - DateTime.Today;
|
||||||
//var most = new TimeSpan(9, 46, 0);
|
//var most = new TimeSpan(9, 46, 0);
|
||||||
bool talált = false;
|
bool talált = false;
|
||||||
nincstöbbóra = false;
|
if (Órarend.Órakezdetek[0] == TimeSpan.Zero) //Még nincsenek beállítva a kezdetek
|
||||||
if (órarend.Órakezdetek[0] == TimeSpan.Zero) //Még nincsenek beállítva a kezdetek
|
|
||||||
return new TimerEventArgs(null, "Betöltés");
|
return new TimerEventArgs(null, "Betöltés");
|
||||||
string kezdveg = null, kovora = null;
|
string kezdveg = null, kovora = null;
|
||||||
for (int i = 0; i < órarend.Órakezdetek.Length - 1; i++)
|
for (int i = 0; i < Órarend.Órakezdetek.Length - 1; i++)
|
||||||
{
|
{
|
||||||
var vége = órarend.Órakezdetek[i].Add(new TimeSpan(0, 45, 0));
|
var vége = Órarend.Órakezdetek[i].Add(new TimeSpan(0, 45, 0));
|
||||||
bool becsengetés;
|
bool becsengetés;
|
||||||
int x = (int)DateTime.Today.DayOfWeek - 1;
|
int x = (int)DateTime.Today.DayOfWeek - 1;
|
||||||
Óra óra;
|
Óra óra;
|
||||||
var (innen, ide) = HelyettesítésInnenIde(órarend, x, i);
|
var (innen, ide) = HelyettesítésInnenIde(Órarend, x, i);
|
||||||
Func<TimeSpan, string> óraperc = ts => ts.Hours > 0 ? ts.ToString("h\\ómm\\p") : ts.ToString("mm") + " perc";
|
Func<TimeSpan, string> óraperc = ts => ts.Hours > 0 ? ts.ToString("h\\ómm\\p") : ts.ToString("mm") + " perc";
|
||||||
if (x != -1 && x < 6 && (óra = ide != null ? ide.ÚjÓra : innen != null ? innen.EredetiNap != innen.ÚjNap || innen.EredetiSorszám != innen.ÚjSorszám ? null : innen.ÚjÓra : órarend.Órák[x][i]) != null)
|
if (x != -1 && x < 6 && (óra = ide != null ? ide.ÚjÓra : innen != null ? innen.EredetiNap != innen.ÚjNap || innen.EredetiSorszám != innen.ÚjSorszám ? null : innen.ÚjÓra : Órarend.Órák[x][i]) != null)
|
||||||
{ //-1: Vasárnap
|
{ //-1: Vasárnap
|
||||||
if (most > órarend.Órakezdetek[i])
|
if (most > Órarend.Órakezdetek[i])
|
||||||
{
|
{
|
||||||
if (most < vége)
|
if (most < vége)
|
||||||
{
|
{
|
||||||
|
@ -357,17 +359,15 @@ namespace Orarend
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kezdveg = "Becsengetés: " + óraperc(órarend.Órakezdetek[i] - most);
|
kezdveg = "Becsengetés: " + óraperc(Órarend.Órakezdetek[i] - most);
|
||||||
talált = true;
|
talált = true;
|
||||||
becsengetés = true;
|
becsengetés = true;
|
||||||
}
|
}
|
||||||
kovora = (becsengetés ? "Következő" : "Jelenlegi") + " óra: " + óra.EgyediNév + "\n" + óra.Terem + "\n" + óra.Tanár.Név + "\n" + óra.Csoportok.Aggregate((a, b) => a + ", " + b);
|
kovora = (becsengetés ? "Következő" : "Jelenlegi") + " óra: " + óra.EgyediNév + "\n" + óra.Terem + "\n" + óra.Tanár.Név + "\n" + óra.Csoportok.Aggregate((a, b) => a + ", " + b);
|
||||||
nincstöbbóra = false;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!talált)
|
nincstöbbóra = !talált;
|
||||||
nincstöbbóra = true;
|
|
||||||
return new TimerEventArgs(kovora, kezdveg);
|
return new TimerEventArgs(kovora, kezdveg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,10 +38,11 @@ namespace SimpleTimerPortable
|
||||||
|
|
||||||
public new void Dispose() { base.Cancel(); }
|
public new void Dispose() { base.Cancel(); }
|
||||||
|
|
||||||
public void Change(TimeSpan dueTime, TimeSpan period)
|
public Timer Change(TimeSpan dueTime, TimeSpan period)
|
||||||
{
|
{
|
||||||
Cancel();
|
var timer = new Timer(callback, state, dueTime, period);
|
||||||
start(dueTime, period);
|
this.Dispose();
|
||||||
|
return timer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,6 @@ namespace OrarendAndroidApp
|
||||||
public class MainActivity : ActivityBase
|
public class MainActivity : ActivityBase
|
||||||
{
|
{
|
||||||
private Handler handler;
|
private Handler handler;
|
||||||
private Órarend órarend;
|
|
||||||
|
|
||||||
private const int EDIT_ADD_ACT_REQUEST = 1;
|
private const int EDIT_ADD_ACT_REQUEST = 1;
|
||||||
private const int SETTINGS_ACT_REQUEST = 2;
|
private const int SETTINGS_ACT_REQUEST = 2;
|
||||||
|
@ -79,7 +78,7 @@ namespace OrarendAndroidApp
|
||||||
|
|
||||||
private void ÓrarendClick(object sender, AdapterView.ItemSelectedEventArgs e)
|
private void ÓrarendClick(object sender, AdapterView.ItemSelectedEventArgs e)
|
||||||
{
|
{
|
||||||
órarend = API.Órarendek[e.Position];
|
API.ÓrarendKiválasztás(e.Position);
|
||||||
órarendfrissítés();
|
órarendfrissítés();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,7 +127,6 @@ namespace OrarendAndroidApp
|
||||||
private void ÓrarendFrissítés(Órarend ór = null)
|
private void ÓrarendFrissítés(Órarend ór = null)
|
||||||
{
|
{
|
||||||
var bar = FindViewById<ProgressBar>(Resource.Id.progressBar1);
|
var bar = FindViewById<ProgressBar>(Resource.Id.progressBar1);
|
||||||
//var menu = FindViewById<ActionMenuView>(Resource.Id.actionMenuView1);
|
|
||||||
Action loadstart = () => bar.Visibility = ViewStates.Visible;
|
Action loadstart = () => bar.Visibility = ViewStates.Visible;
|
||||||
handler.Post(loadstart);
|
handler.Post(loadstart);
|
||||||
API.Frissítés(() => OpenFileOutput(DATA_FILENAME, FileCreationMode.Private), ór).ContinueWith(t =>
|
API.Frissítés(() => OpenFileOutput(DATA_FILENAME, FileCreationMode.Private), ór).ContinueWith(t =>
|
||||||
|
@ -141,7 +139,7 @@ namespace OrarendAndroidApp
|
||||||
HelyettesítésFrissítés();
|
HelyettesítésFrissítés();
|
||||||
if (TaskHiba(t))
|
if (TaskHiba(t))
|
||||||
{
|
{
|
||||||
if (ór == null || ór == órarend)
|
if (ór == null || ór == API.Órarend)
|
||||||
órarendfrissítés();
|
órarendfrissítés();
|
||||||
Toast.MakeText(this, (API.Órarendek.Count > 0 ? "Órarend" + (ór == null ? "ek" : "") + " és o" : "O") + "sztálylista frissítve", ToastLength.Short).Show();
|
Toast.MakeText(this, (API.Órarendek.Count > 0 ? "Órarend" + (ór == null ? "ek" : "") + " és o" : "O") + "sztálylista frissítve", ToastLength.Short).Show();
|
||||||
}
|
}
|
||||||
|
@ -157,21 +155,21 @@ namespace OrarendAndroidApp
|
||||||
deselect();
|
deselect();
|
||||||
if (table.ChildCount > 0)
|
if (table.ChildCount > 0)
|
||||||
table.RemoveViews(0, table.ChildCount);
|
table.RemoveViews(0, table.ChildCount);
|
||||||
if (órarend == null)
|
if (API.Órarend == null)
|
||||||
return;
|
return;
|
||||||
TableRow tr = new TableRow(this);
|
TableRow tr = new TableRow(this);
|
||||||
addCell(API.AHét ? "A" : "B", DarkTheme ? Color.White : Color.Black, tr);
|
addCell(API.AHét ? "A" : "B", DarkTheme ? Color.White : Color.Black, tr);
|
||||||
for (int i = 0; i < Napok.Length; i++)
|
for (int i = 0; i < Napok.Length; i++)
|
||||||
addCell(Napok[i], DarkTheme ? Color.White : Color.Black, tr);
|
addCell(Napok[i], DarkTheme ? Color.White : Color.Black, tr);
|
||||||
table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
|
table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
|
||||||
int rowadds = 0;
|
byte rowadds = 0;
|
||||||
for (int j = 0; j < 16; j++)
|
for (int j = 0; j < 16; j++)
|
||||||
{
|
{
|
||||||
tr = new TableRow(this);
|
tr = new TableRow(this);
|
||||||
bool notnull = false;
|
bool notnull = false;
|
||||||
for (int i = 0; i < 6; i++)
|
for (int i = 0; i < 6; i++)
|
||||||
{ //Kihagyja az üres sorokat
|
{ //Kihagyja az üres sorokat
|
||||||
if (órarend.Órák[i][j] != null) //TODO: Helyettesítéseket is figyelje
|
if (API.Órarend.Órák[i][j] != null) //TODO: Helyettesítéseket is figyelje
|
||||||
{
|
{
|
||||||
notnull = true;
|
notnull = true;
|
||||||
break;
|
break;
|
||||||
|
@ -182,16 +180,17 @@ namespace OrarendAndroidApp
|
||||||
for (int x = 0; x < rowadds; x++)
|
for (int x = 0; x < rowadds; x++)
|
||||||
{
|
{
|
||||||
var tr1 = new TableRow(this);
|
var tr1 = new TableRow(this);
|
||||||
|
addCell((j + x).ToString(), DarkTheme ? Color.White : Color.Black, tr1);
|
||||||
for (int i = 0; i < 6; i++)
|
for (int i = 0; i < 6; i++)
|
||||||
addCell("", Color.Black, tr1);
|
addCell("", Color.Black, tr1);
|
||||||
table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
|
table.AddView(tr1, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
|
||||||
}
|
}
|
||||||
rowadds = 0;
|
rowadds = 0;
|
||||||
addCell((j + 1).ToString(), DarkTheme ? Color.White : Color.Black, tr);
|
addCell((j + 1).ToString(), DarkTheme ? Color.White : Color.Black, tr);
|
||||||
for (int i = 0; i < 6; i++)
|
for (int i = 0; i < 6; i++)
|
||||||
{
|
{
|
||||||
var (innen, ide) = API.HelyettesítésInnenIde(órarend, i, j);
|
var (innen, ide) = API.HelyettesítésInnenIde(API.Órarend, i, j);
|
||||||
addCell(ide != null ? ide.ÚjÓra.EgyediNév : innen != null ? innen.EredetiNap != innen.ÚjNap || innen.EredetiSorszám != innen.ÚjSorszám ? "Áthelyezve" : innen.ÚjÓra?.EgyediNév ?? "elmarad" : órarend.Órák[i][j]?.EgyediNév ?? "", innen == null ? (DarkTheme ? Color.WhiteSmoke : Color.Black) : Color.Red, tr, (i, j));
|
addCell(ide != null ? ide.ÚjÓra.EgyediNév : innen != null ? innen.EredetiNap != innen.ÚjNap || innen.EredetiSorszám != innen.ÚjSorszám ? "Áthelyezve" : innen.ÚjÓra?.EgyediNév ?? "elmarad" : API.Órarend.Órák[i][j]?.EgyediNév ?? "", innen == null ? (DarkTheme ? Color.WhiteSmoke : Color.Black) : Color.Red, tr, (i, j));
|
||||||
}
|
}
|
||||||
table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
|
table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
|
||||||
}
|
}
|
||||||
|
@ -227,8 +226,8 @@ namespace OrarendAndroidApp
|
||||||
if (ij != null)
|
if (ij != null)
|
||||||
{
|
{
|
||||||
(i, j) = ij;
|
(i, j) = ij;
|
||||||
(helyettesítésInnen, helyettesítésIde) = API.HelyettesítésInnenIde(órarend, i, j);
|
(helyettesítésInnen, helyettesítésIde) = API.HelyettesítésInnenIde(API.Órarend, i, j);
|
||||||
if ((óra = órarend.Órák[i][j]) == null && helyettesítésIde?.ÚjÓra == null)
|
if ((óra = API.Órarend.Órák[i][j]) == null && helyettesítésIde?.ÚjÓra == null)
|
||||||
{
|
{
|
||||||
deselect();
|
deselect();
|
||||||
return;
|
return;
|
||||||
|
@ -250,7 +249,7 @@ namespace OrarendAndroidApp
|
||||||
+ "\nNév: " + óra.TeljesNév
|
+ "\nNév: " + óra.TeljesNév
|
||||||
+ "\nTerem: " + óra.Terem
|
+ "\nTerem: " + óra.Terem
|
||||||
+ "\nTanár: " + óra.Tanár.Név
|
+ "\nTanár: " + óra.Tanár.Név
|
||||||
+ "\nIdőtartam: " + órarend.Órakezdetek[j].ToString("hh\\:mm") + "-" + órarend.Órakezdetek[j].Add(new TimeSpan(0, 45, 0)).ToString("hh\\:mm")
|
+ "\nIdőtartam: " + API.Órarend.Órakezdetek[j].ToString("hh\\:mm") + "-" + API.Órarend.Órakezdetek[j].Add(new TimeSpan(0, 45, 0)).ToString("hh\\:mm")
|
||||||
+ "\nCsoport: " + óra.Csoportok.Aggregate((a, b) => a + ", " + b);
|
+ "\nCsoport: " + óra.Csoportok.Aggregate((a, b) => a + ", " + b);
|
||||||
kivora.Visibility = ViewStates.Visible;
|
kivora.Visibility = ViewStates.Visible;
|
||||||
}
|
}
|
||||||
|
@ -270,7 +269,7 @@ namespace OrarendAndroidApp
|
||||||
? "Áthelyezve: " + Napok[(int)helyettesítésIde.EredetiNap - 1] + " " + helyettesítésIde.EredetiSorszám + ". óra --> ide"
|
? "Áthelyezve: " + Napok[(int)helyettesítésIde.EredetiNap - 1] + " " + helyettesítésIde.EredetiSorszám + ". óra --> ide"
|
||||||
+ (helyettesítésIde.ÚjÓra.EgyediNév != óra?.EgyediNév ? "\nÓra: " + helyettesítésIde.ÚjÓra.EgyediNév : "")
|
+ (helyettesítésIde.ÚjÓra.EgyediNév != óra?.EgyediNév ? "\nÓra: " + helyettesítésIde.ÚjÓra.EgyediNév : "")
|
||||||
+ (helyettesítésIde.ÚjÓra.Terem != óra?.Terem ? "\nTerem: " + helyettesítésIde.ÚjÓra.Terem : "")
|
+ (helyettesítésIde.ÚjÓra.Terem != óra?.Terem ? "\nTerem: " + helyettesítésIde.ÚjÓra.Terem : "")
|
||||||
+ ((óra?.Tanár.Név != (helyettesítésIde.ÚjÓra.Tanár.Név == "" ? órarend.Órák[(int)helyettesítésIde.EredetiNap - 1][helyettesítésIde.EredetiSorszám - 1].Tanár.Név : helyettesítésIde.ÚjÓra.Tanár.Név)) ? "\nTanár: " + (óra?.Tanár.Név == "" ? órarend.Órák[(int)helyettesítésIde.EredetiNap - 1][helyettesítésIde.EredetiSorszám - 1].Tanár.Név : helyettesítésIde.ÚjÓra.Tanár.Név) : "")
|
+ ((óra?.Tanár.Név != (helyettesítésIde.ÚjÓra.Tanár.Név == "" ? API.Órarend.Órák[(int)helyettesítésIde.EredetiNap - 1][helyettesítésIde.EredetiSorszám - 1].Tanár.Név : helyettesítésIde.ÚjÓra.Tanár.Név)) ? "\nTanár: " + (óra?.Tanár.Név == "" ? API.Órarend.Órák[(int)helyettesítésIde.EredetiNap - 1][helyettesítésIde.EredetiSorszám - 1].Tanár.Név : helyettesítésIde.ÚjÓra.Tanár.Név) : "")
|
||||||
+ (helyettesítésIde.ÚjÓra.Csoportok[0] != óra?.Csoportok[0] ? "\nCsoport: " + helyettesítésIde.ÚjÓra.Csoportok.Aggregate((a, b) => a + ", " + b) : "") //ˇˇ De ha változott, akkor nem
|
+ (helyettesítésIde.ÚjÓra.Csoportok[0] != óra?.Csoportok[0] ? "\nCsoport: " + helyettesítésIde.ÚjÓra.Csoportok.Aggregate((a, b) => a + ", " + b) : "") //ˇˇ De ha változott, akkor nem
|
||||||
: "") //Ha a pozicíó nem változott, a fentebbi rész már kiírta az adatait
|
: "") //Ha a pozicíó nem változott, a fentebbi rész már kiírta az adatait
|
||||||
;
|
;
|
||||||
|
@ -314,14 +313,14 @@ namespace OrarendAndroidApp
|
||||||
}
|
}
|
||||||
case Resource.Id.menu_edit:
|
case Resource.Id.menu_edit:
|
||||||
{
|
{
|
||||||
if (órarend == null)
|
if (API.Órarend == null)
|
||||||
{
|
{
|
||||||
Toast.MakeText(this, "Nincs órarend kiválasztva", ToastLength.Short).Show();
|
Toast.MakeText(this, "Nincs órarend kiválasztva", ToastLength.Short).Show();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
var intent = new Intent(this, typeof(EditActivity));
|
var intent = new Intent(this, typeof(EditActivity));
|
||||||
intent.PutExtra("add", false);
|
intent.PutExtra("add", false);
|
||||||
intent.PutExtra("index", API.Órarendek.IndexOf(órarend));
|
intent.PutExtra("index", API.Órarendek.IndexOf(API.Órarend));
|
||||||
StartActivityForResult(intent, EDIT_ADD_ACT_REQUEST);
|
StartActivityForResult(intent, EDIT_ADD_ACT_REQUEST);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -399,7 +398,7 @@ namespace OrarendAndroidApp
|
||||||
ÓrarendFrissítés(API.Órarendek[index]);
|
ÓrarendFrissítés(API.Órarendek[index]);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
órarend = null;
|
API.ÓrarendKiválasztásTörlése();
|
||||||
órarendfrissítés();
|
órarendfrissítés();
|
||||||
}
|
}
|
||||||
órarendlistafrissítés();
|
órarendlistafrissítés();
|
||||||
|
|
Loading…
Reference in a new issue