Mégtöbb rövidítés, frissítés event kezelve, üres sorok berakva
This commit is contained in:
parent
95c72a2382
commit
f8aeade139
2 changed files with 46 additions and 40 deletions
|
@ -302,7 +302,6 @@ namespace Orarend
|
||||||
if (utolsófrissítésplusz1óra > DateTime.Now)
|
if (utolsófrissítésplusz1óra > DateTime.Now)
|
||||||
return;
|
return;
|
||||||
Frissítéskor?.Invoke(példány, null);
|
Frissítéskor?.Invoke(példány, null);
|
||||||
//HelyettesítésFrissítés(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DayOfWeek MaiNap
|
public static DayOfWeek MaiNap
|
||||||
|
@ -323,10 +322,7 @@ namespace Orarend
|
||||||
private static bool nincstöbbóra = false;
|
private static bool nincstöbbóra = false;
|
||||||
private static Órarend órarend; //TODO
|
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)
|
private static void CsengőTimer(object state) => CsengőTimerEvent?.Invoke(példány, CsengőTimer());
|
||||||
{
|
|
||||||
CsengőTimerEvent?.Invoke(példány, CsengőTimer());
|
|
||||||
}
|
|
||||||
private static TimerEventArgs CsengőTimer()
|
private static TimerEventArgs CsengőTimer()
|
||||||
{
|
{
|
||||||
if (órarend == null)
|
if (órarend == null)
|
||||||
|
@ -371,9 +367,7 @@ namespace Orarend
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!talált)
|
if (!talált)
|
||||||
{
|
|
||||||
nincstöbbóra = true;
|
nincstöbbóra = true;
|
||||||
}
|
|
||||||
return new TimerEventArgs(kovora, kezdveg);
|
return new TimerEventArgs(kovora, kezdveg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,19 +36,17 @@ namespace OrarendAndroidApp
|
||||||
ActionBar.SetDisplayShowTitleEnabled(false);
|
ActionBar.SetDisplayShowTitleEnabled(false);
|
||||||
handler = new Handler();
|
handler = new Handler();
|
||||||
string[] list = FileList();
|
string[] list = FileList();
|
||||||
bool betöltötte;
|
if (list.Contains(DATA_FILENAME)
|
||||||
if (list.Contains(DATA_FILENAME))
|
? API.Betöltés(OpenFileInput(DATA_FILENAME), e => Hiba("Hiba az adatok betöltése során!\n" + e)) : API.Betöltés())
|
||||||
betöltötte = API.Betöltés(OpenFileInput(DATA_FILENAME), e => Hiba("Hiba az adatok betöltése során!\n" + e));
|
{
|
||||||
else
|
|
||||||
betöltötte = API.Betöltés();
|
|
||||||
if (betöltötte)
|
|
||||||
API.CsengőTimerEvent += CsengőTimer;
|
API.CsengőTimerEvent += CsengőTimer;
|
||||||
|
API.Frissítéskor += (_, __) => HelyettesítésFrissítés(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AndroidEnvironment_UnhandledExceptionRaiser(object sender, RaiseThrowableEventArgs e)
|
private void AndroidEnvironment_UnhandledExceptionRaiser(object sender, RaiseThrowableEventArgs e)
|
||||||
{
|
{
|
||||||
if (!e.Handled)
|
if (!e.Handled) Hiba("Kezeletlen hiba!\n" + e.Exception);
|
||||||
Hiba("Kezeletlen hiba!\n" + e.Exception);
|
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,28 +83,31 @@ namespace OrarendAndroidApp
|
||||||
órarendfrissítés();
|
órarendfrissítés();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addCell(string text, Color color, TableRow tr1, int[] tag = null)
|
private void addCell(string text, Color color, TableRow tr1, (int, int)? tag = null)
|
||||||
{
|
{
|
||||||
TextView textview = new TextView(this);
|
TextView textview = new TextView(this);
|
||||||
textview.SetText(text, TextView.BufferType.Normal);
|
textview.SetText(text, TextView.BufferType.Normal);
|
||||||
textview.SetTextColor(color);
|
textview.SetTextColor(color);
|
||||||
textview.SetPadding(10, 10, 10, 10);
|
textview.SetPadding(10, 10, 10, 10);
|
||||||
textview.SetBackgroundResource(DarkTheme ? Resource.Drawable.cell_shape_dark : Resource.Drawable.cell_shape_light);
|
textview.SetBackgroundResource(DarkTheme ? Resource.Drawable.cell_shape_dark : Resource.Drawable.cell_shape_light);
|
||||||
textview.Tag = tag;
|
textview.Tag = tag.HasValue ? new JavaTuple<int, int>(tag.Value) : null;
|
||||||
textview.Clickable = true;
|
textview.Clickable = true;
|
||||||
textview.Click += ÓraClick;
|
textview.Click += ÓraClick;
|
||||||
tr1.AddView(textview);
|
tr1.AddView(textview);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class JavaTuple<T1, T2> : Java.Lang.Object
|
||||||
|
{
|
||||||
|
public (T1, T2) obj;
|
||||||
|
public JavaTuple((T1, T2) obj) => this.obj = obj;
|
||||||
|
public void Deconstruct(out T1 first, out T2 second) => (first, second) = obj;
|
||||||
|
}
|
||||||
|
|
||||||
private void HelyettesítésFrissítés(bool internethiba = true)
|
private void HelyettesítésFrissítés(bool internethiba = true)
|
||||||
{
|
{
|
||||||
var bar = FindViewById<ProgressBar>(Resource.Id.progressBar1);
|
var bar = FindViewById<ProgressBar>(Resource.Id.progressBar1);
|
||||||
//var menu = FindViewById<ActionMenuView>(Resource.Id.actionMenuView1);
|
//var menu = FindViewById<ActionMenuView>(Resource.Id.actionMenuView1);
|
||||||
Action loadstart = () =>
|
Action loadstart = () => bar.Visibility = ViewStates.Visible;
|
||||||
{
|
|
||||||
bar.Visibility = ViewStates.Visible;
|
|
||||||
//menu.Enabled = false;
|
|
||||||
};
|
|
||||||
handler.Post(loadstart);
|
handler.Post(loadstart);
|
||||||
API.HelyettesítésFrissítés(() => OpenFileOutput(DATA_FILENAME, FileCreationMode.Private)).ContinueWith(t =>
|
API.HelyettesítésFrissítés(() => OpenFileOutput(DATA_FILENAME, FileCreationMode.Private)).ContinueWith(t =>
|
||||||
{
|
{
|
||||||
|
@ -114,7 +115,6 @@ namespace OrarendAndroidApp
|
||||||
handler.Post(() =>
|
handler.Post(() =>
|
||||||
{
|
{
|
||||||
bar.Visibility = ViewStates.Gone;
|
bar.Visibility = ViewStates.Gone;
|
||||||
//menu.Enabled = true;
|
|
||||||
if (TaskHiba(t, internethiba))
|
if (TaskHiba(t, internethiba))
|
||||||
{
|
{
|
||||||
órarendfrissítés();
|
órarendfrissítés();
|
||||||
|
@ -129,11 +129,7 @@ namespace OrarendAndroidApp
|
||||||
{
|
{
|
||||||
var bar = FindViewById<ProgressBar>(Resource.Id.progressBar1);
|
var bar = FindViewById<ProgressBar>(Resource.Id.progressBar1);
|
||||||
//var menu = FindViewById<ActionMenuView>(Resource.Id.actionMenuView1);
|
//var menu = FindViewById<ActionMenuView>(Resource.Id.actionMenuView1);
|
||||||
Action loadstart = () =>
|
Action loadstart = () => bar.Visibility = ViewStates.Visible;
|
||||||
{
|
|
||||||
bar.Visibility = ViewStates.Visible;
|
|
||||||
//menu.Enabled = false;
|
|
||||||
};
|
|
||||||
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 =>
|
||||||
{
|
{
|
||||||
|
@ -168,13 +164,14 @@ namespace OrarendAndroidApp
|
||||||
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;
|
||||||
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)
|
if (órarend.Órák[i][j] != null) //TODO: Helyettesítéseket is figyelje
|
||||||
{
|
{
|
||||||
notnull = true;
|
notnull = true;
|
||||||
break;
|
break;
|
||||||
|
@ -182,14 +179,23 @@ namespace OrarendAndroidApp
|
||||||
}
|
}
|
||||||
if (notnull)
|
if (notnull)
|
||||||
{
|
{
|
||||||
|
for (int x = 0; x < rowadds; x++)
|
||||||
|
{
|
||||||
|
var tr1 = new TableRow(this);
|
||||||
|
for (int i = 0; i < 6; i++)
|
||||||
|
addCell("", Color.Black, tr1);
|
||||||
|
table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
|
||||||
|
}
|
||||||
|
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(ó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, new int[2] { 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));
|
||||||
}
|
}
|
||||||
table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
|
table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
|
||||||
}
|
}
|
||||||
|
else rowadds++;
|
||||||
}
|
}
|
||||||
handler.Post(() => MaiNaphozGörgetés());
|
handler.Post(() => MaiNaphozGörgetés());
|
||||||
}
|
}
|
||||||
|
@ -211,15 +217,24 @@ namespace OrarendAndroidApp
|
||||||
private void ÓraClick(object sender, EventArgs e)
|
private void ÓraClick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var tv = (TextView)sender;
|
var tv = (TextView)sender;
|
||||||
var ij = (int[])tv.Tag;
|
|
||||||
if (selected != null && selected != sender)
|
if (selected != null && selected != sender)
|
||||||
selected.SetBackgroundResource(DarkTheme ? Resource.Drawable.cell_shape_dark : Resource.Drawable.cell_shape_light);
|
selected.SetBackgroundResource(DarkTheme ? Resource.Drawable.cell_shape_dark : Resource.Drawable.cell_shape_light);
|
||||||
Óra óra;
|
Óra óra;
|
||||||
Helyettesítés helyettesítésInnen = null;
|
Helyettesítés helyettesítésInnen = null;
|
||||||
Helyettesítés helyettesítésIde = null;
|
Helyettesítés helyettesítésIde = null;
|
||||||
|
var ij = (JavaTuple<int, int>)tv.Tag;
|
||||||
|
int i, j;
|
||||||
if (ij != null)
|
if (ij != null)
|
||||||
(helyettesítésInnen, helyettesítésIde) = API.HelyettesítésInnenIde(órarend, ij[0], ij[1]);
|
{
|
||||||
if (ij == null || (óra = órarend.Órák[ij[0]][ij[1]]) == null && helyettesítésIde?.ÚjÓra == null)
|
(i, j) = ij;
|
||||||
|
(helyettesítésInnen, helyettesítésIde) = API.HelyettesítésInnenIde(órarend, i, j);
|
||||||
|
if ((óra = órarend.Órák[i][j]) == null && helyettesítésIde?.ÚjÓra == null)
|
||||||
|
{
|
||||||
|
deselect();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
deselect();
|
deselect();
|
||||||
return;
|
return;
|
||||||
|
@ -231,11 +246,11 @@ namespace OrarendAndroidApp
|
||||||
kivora.Visibility = ViewStates.Gone;
|
kivora.Visibility = ViewStates.Gone;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kivora.Text = Napok[ij[0]] + " " + (ij[1] + 1) + ". óra"
|
kivora.Text = Napok[i] + " " + (j + 1) + ". óra"
|
||||||
+ "\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[ij[1]].ToString("hh\\:mm") + "-" + órarend.Órakezdetek[ij[1]].Add(new TimeSpan(0, 45, 0)).ToString("hh\\:mm")
|
+ "\nIdőtartam: " + órarend.Órakezdetek[j].ToString("hh\\:mm") + "-" + ó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;
|
||||||
}
|
}
|
||||||
|
@ -396,21 +411,18 @@ namespace OrarendAndroidApp
|
||||||
public override void OnWindowFocusChanged(bool hasFocus)
|
public override void OnWindowFocusChanged(bool hasFocus)
|
||||||
{
|
{
|
||||||
base.OnWindowFocusChanged(hasFocus);
|
base.OnWindowFocusChanged(hasFocus);
|
||||||
|
API.Fókusz = hasFocus;
|
||||||
if (!hasFocus)
|
if (!hasFocus)
|
||||||
{
|
|
||||||
API.Fókusz = false;
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
MaiNaphozGörgetés();
|
MaiNaphozGörgetés();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MaiNaphozGörgetés()
|
private void MaiNaphozGörgetés()
|
||||||
{
|
{
|
||||||
var x = API.MaiNap;
|
|
||||||
var table = FindViewById<TableLayout>(Resource.Id.tableLayout1);
|
var table = FindViewById<TableLayout>(Resource.Id.tableLayout1);
|
||||||
if (table.ChildCount == 0)
|
if (table.ChildCount == 0)
|
||||||
return;
|
return;
|
||||||
var cell = (table.GetChildAt(0) as ViewGroup).GetChildAt((int)x);
|
var cell = (table.GetChildAt(0) as ViewGroup).GetChildAt((int)API.MaiNap);
|
||||||
FindViewById<HorizontalScrollView>(Resource.Id.horizontalView).SmoothScrollTo(Math.Max(cell.Left - (FindViewById(Resource.Id.container).Width - cell.Width) / 2, 0), 0);
|
FindViewById<HorizontalScrollView>(Resource.Id.horizontalView).SmoothScrollTo(Math.Max(cell.Left - (FindViewById(Resource.Id.container).Width - cell.Width) / 2, 0), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue