diff --git a/Orarend/Óra.cs b/Orarend/Óra.cs index e72bab9..a4aeca1 100644 --- a/Orarend/Óra.cs +++ b/Orarend/Óra.cs @@ -20,6 +20,9 @@ namespace Orarend /// [DataMember] public string[] Csoportok { get; set; } + + [DataMember] + public bool ManuálisanHozzáadott { get; set; } [DataMember] public string Azonosító diff --git a/OrarendAndroidApp/MainActivity.cs b/OrarendAndroidApp/MainActivity.cs index c8bfec8..ff9c28d 100644 --- a/OrarendAndroidApp/MainActivity.cs +++ b/OrarendAndroidApp/MainActivity.cs @@ -218,6 +218,24 @@ namespace OrarendAndroidApp handler.Post(() => MaiNaphozGörgetés()); } + private (int i, int j, Óra óra, Helyettesítés innen, Helyettesítés ide)? TV2Óra(TextView tv) + { + var ij = (JavaTuple)tv.Tag; + int i, j; + Helyettesítés innen, ide; + Óra óra; + if (ij != null) + { + (i, j) = ij; + (innen, ide) = API.HelyettesítésInnenIde(API.Órarend, i, j); + if ((óra = API.Órarend.Órák[i][j]) == null && ide?.ÚjÓra == null) + return null; + } + else + return null; + return (i, j, óra, innen, ide); + } + /// /// A cellát nem frissíti, csak a szöveget tünteti el /// @@ -238,26 +256,13 @@ namespace OrarendAndroidApp var tv = (TextView)sender; if (selected != null && selected != sender) selected.SetBackgroundResource(DarkTheme ? Resource.Drawable.cell_shape_dark : Resource.Drawable.cell_shape_light); - Óra óra; - Helyettesítés helyettesítésInnen = null; - Helyettesítés helyettesítésIde = null; - var ij = (JavaTuple)tv.Tag; - int i, j; - if (ij != null) - { - (i, j) = ij; - (helyettesítésInnen, helyettesítésIde) = API.HelyettesítésInnenIde(API.Órarend, i, j); - if ((óra = API.Órarend.Órák[i][j]) == null && helyettesítésIde?.ÚjÓra == null) - { - deselect(); - return; - } - } - else //TODO: Metódus tv --> óra + var x = TV2Óra(tv); + if (x == null) { deselect(); return; } + var (i, j, óra, helyettesítésInnen, helyettesítésIde) = x?.ToTuple(); tv.SetBackgroundResource(DarkTheme ? Resource.Drawable.cell_shape_selected_dark : Resource.Drawable.cell_shape_selected_light); selected = tv; var kivora = FindViewById(Resource.Id.kivoraTV); @@ -298,12 +303,19 @@ namespace OrarendAndroidApp private void ÓraContextMenuCreated(object sender, View.CreateContextMenuEventArgs e) { - //Toast.MakeText(this, "Ye! " + sender, ToastLength.Long).Show(); switch (sender) { case TextView tv: - var ij = (JavaTuple)tv.Tag; - e.Menu.Add("") + var x = TV2Óra(tv); + Óra óra; + if (x != null) + (_, _, óra, _, _) = x?.ToTuple(); + else + óra = null; + if (óra == null) + { //TODO + ÓraContextItemData.Add(e.Menu.Add("Hozzáadás"), () => StartActivity(new Intent(this, typeof(SettingsActivity)))); + } break; default: Hiba("Ismeretlen küldő a menühöz!"); @@ -311,6 +323,17 @@ namespace OrarendAndroidApp } } + private Dictionary ÓraContextItemData = new Dictionary(); + private T ctor() where T : new() => new T(); + + public override bool OnContextItemSelected(IMenuItem item) + { + bool ret = ÓraContextItemData.ContainsKey(item); + if (ret) + ÓraContextItemData[item](); + return ret; + } + public override bool OnCreateOptionsMenu(IMenu menu) { MenuInflater.Inflate(Resource.Menu.main_menu_light, menu);