A/B hét javítva, 09.01-től számolja már, egyéb jav.

- Kódanalízis, biztonsági attribútumok
- Hibakezelés javítva (internethiba, stb.)
This commit is contained in:
Norbi Peti 2017-09-24 21:45:05 +02:00
parent e46a588a9f
commit e5915c8082
8 changed files with 35 additions and 19 deletions

View file

@ -9,6 +9,7 @@ using System.Linq;
using System.Net; using System.Net;
using System.Runtime.Serialization; using System.Runtime.Serialization;
using System.Runtime.Serialization.Json; using System.Runtime.Serialization.Json;
using System.Security;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -30,7 +31,7 @@ namespace Orarend
public Osztály[] osztályok { get; private set; } = new Osztály[0]; //Ez az initializáció csak akkor fut le, ha nem tölti be fájlból public Osztály[] osztályok { get; private set; } = new Osztály[0]; //Ez az initializáció csak akkor fut le, ha nem tölti be fájlból
[DataMember(Order = 2)] [DataMember(Order = 2)]
public List<Órarend> órarendek { get; private set; } = new List<Órarend>(); public List<Órarend> órarendek { get; private set; } = new List<Órarend>();
[DataMember] [DataMember(Order = 3)]
public Settings beállítások { get; private set; } = new Settings(); public Settings beállítások { get; private set; } = new Settings();
/// <summary> /// <summary>
/// <para>Visszatér az osztályok listájával.</para> /// <para>Visszatér az osztályok listájával.</para>
@ -284,14 +285,16 @@ namespace Orarend
{ {
get get
{ {
int jelenlegihét = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Today, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday); int jelenlegihét = napbólhét(DateTime.Today);
if (DateTime.Today.DayOfWeek > DayOfWeek.Friday || DateTime.Today.DayOfWeek == DayOfWeek.Sunday) if (DateTime.Today.DayOfWeek > DayOfWeek.Friday || DateTime.Today.DayOfWeek == DayOfWeek.Sunday)
jelenlegihét++; jelenlegihét++;
return jelenlegihét; return jelenlegihét;
} }
} }
public static bool AHét { get => Hét % 2 == 0; } private static int napbólhét(DateTime nap) => CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(nap, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
public static bool AHét { get => Hét % 2 == napbólhét(new DateTime(DateTime.Today.Year - (DateTime.Today.Month < 8 ? 1 : 0), 9, 1)) % 2; }
public static bool Fókusz public static bool Fókusz
{ {
@ -309,7 +312,7 @@ namespace Orarend
private static DateTime utolsófrissítésplusz1óra = DateTime.MinValue; private static DateTime utolsófrissítésplusz1óra = DateTime.MinValue;
public static event EventHandler<FrissítésEventArgs> Frissítéskor; public static event EventHandler<FrissítésEventArgs> Frissítéskor;
public class FrissítésEventArgs { public bool Siker { get; set; } = false; } public class FrissítésEventArgs : EventArgs { public bool Siker { get; set; } = false; }
private static void frissítésHa1ÓraEltelt() private static void frissítésHa1ÓraEltelt()
{ {
if (utolsófrissítésplusz1óra > DateTime.Now) if (utolsófrissítésplusz1óra > DateTime.Now)
@ -336,8 +339,8 @@ namespace Orarend
//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 Órarend Órarend { get; private set; }
public static void ÓrarendKiválasztás(int position) => Órarend = Órarendek[position]; public static void ÓrarendKiválasztás(int position) { Órarend = Órarendek[position]; CsengőTimer(null); }
public static void ÓrarendKiválasztásTörlése() => Órarend = null; public static void ÓrarendKiválasztásTörlése() { Órarend = null; CsengőTimer(null); }
private static bool nincstöbbóra = false; private static bool nincstöbbóra = false;
public static event EventHandler<TimerEventArgs> CsengőTimerEvent; public static event EventHandler<TimerEventArgs> CsengőTimerEvent;
@ -349,7 +352,7 @@ namespace Orarend
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;
if (Órarend.Órakezdetek[0] == TimeSpan.Zero) //Még nincsenek beállítva a kezdetek if (Órarend.Órakezdetek[Beállítások.ÓraOffset] == 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++)

View file

@ -33,6 +33,9 @@
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<PropertyGroup>
<SignAssembly>false</SignAssembly>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="API.cs" /> <Compile Include="API.cs" />
<Compile Include="Events\TimerEventArgs.cs" /> <Compile Include="Events\TimerEventArgs.cs" />

View file

@ -2,6 +2,7 @@
using System.Reflection; using System.Reflection;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Security;
// General Information about an assembly is controlled through the following // General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information // set of attributes. Change these attribute values to modify the information
@ -15,6 +16,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
[assembly: NeutralResourcesLanguage("en")] [assembly: NeutralResourcesLanguage("en")]
[assembly: SecurityTransparent]
// Version information for an assembly consists of the following four values: // Version information for an assembly consists of the following four values:
// //

View file

@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Serialization; using System.Runtime.Serialization;
using System.Security;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;

View file

@ -2,6 +2,7 @@
using Android.App; using Android.App;
using Android.OS; using Android.OS;
using Android.Preferences; using Android.Preferences;
using System.Security;
namespace OrarendAndroidApp namespace OrarendAndroidApp
{ {

View file

@ -12,6 +12,7 @@ using Android.Widget;
using Orarend; using Orarend;
using Android.Graphics; using Android.Graphics;
using Android.Preferences; using Android.Preferences;
using System.Security;
namespace OrarendAndroidApp namespace OrarendAndroidApp
{ {

View file

@ -15,6 +15,7 @@ using System.IO;
using System.Net; using System.Net;
using Android.Preferences; using Android.Preferences;
using Orarend.Events; using Orarend.Events;
using System.Security;
namespace OrarendAndroidApp namespace OrarendAndroidApp
{ {
@ -82,6 +83,7 @@ namespace OrarendAndroidApp
órarendfrissítés(); órarendfrissítés();
} }
[SecuritySafeCritical]
private void addCell(string text, Color color, TableRow tr1, (int, 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);
@ -95,6 +97,7 @@ namespace OrarendAndroidApp
tr1.AddView(textview); tr1.AddView(textview);
} }
[SecuritySafeCritical]
private class JavaTuple<T1, T2> : Java.Lang.Object private class JavaTuple<T1, T2> : Java.Lang.Object
{ {
public (T1, T2) obj; public (T1, T2) obj;
@ -156,6 +159,7 @@ namespace OrarendAndroidApp
private string[] Napok = new string[6] { "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat" }; private string[] Napok = new string[6] { "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat" };
[SecuritySafeCritical]
private void órarendfrissítés() private void órarendfrissítés()
{ {
var table = FindViewById<TableLayout>(Resource.Id.tableLayout1); var table = FindViewById<TableLayout>(Resource.Id.tableLayout1);
@ -220,6 +224,7 @@ namespace OrarendAndroidApp
/// <summary> /// <summary>
/// Kiválasztja az adott órát /// Kiválasztja az adott órát
/// </summary> /// </summary>
[SecuritySafeCritical]
private void ÓraClick(object sender, EventArgs e) private void ÓraClick(object sender, EventArgs e)
{ {
var tv = (TextView)sender; var tv = (TextView)sender;
@ -364,13 +369,16 @@ namespace OrarendAndroidApp
{ {
if (ex is WebException wex) if (ex is WebException wex)
{ {
if (internethiba || wex.Status != WebExceptionStatus.NameResolutionFailure) if (internethiba && wex.Status == WebExceptionStatus.ConnectFailure)
Hiba("Nem sikerült csatlakozni az E-naplóhoz.\n" + wex.Message);
else if (wex.Status == WebExceptionStatus.ConnectFailure)
Hiba("Nem sikerült csatlakozni az E-naplóhoz.\nHa van internet, próbáld újraindítani az alkalmazást."); Hiba("Nem sikerült csatlakozni az E-naplóhoz.\nHa van internet, próbáld újraindítani az alkalmazást.");
else if (internethiba || wex.Status != WebExceptionStatus.NameResolutionFailure)
Hiba("Nem sikerült csatlakozni az E-naplóhoz.\n" + wex.Message);
} }
else if (ex is InvalidOperationException oex && oex.Data.Contains("OERROR") && (string)oex.Data["OERROR"] == "CLS_NOT_FOUND") else if (ex is InvalidOperationException oex && oex.Data.Contains("OERROR") && (string)oex.Data["OERROR"] == "CLS_NOT_FOUND")
{
ÓrarendFrissítés(true); ÓrarendFrissítés(true);
Toast.MakeText(this, oex.Message, ToastLength.Short).Show();
}
else else
Hiba(ex.ToString()); Hiba(ex.ToString());
ret = false; ret = false;
@ -384,14 +392,10 @@ namespace OrarendAndroidApp
{ {
var kezdveg = FindViewById<TextView>(Resource.Id.kezdvegTV); var kezdveg = FindViewById<TextView>(Resource.Id.kezdvegTV);
var kovora = FindViewById<TextView>(Resource.Id.kovoraTV); var kovora = FindViewById<TextView>(Resource.Id.kovoraTV);
if (e.KövetkezőÓra == null) kovora.Visibility = e.KövetkezőÓra == null ? ViewStates.Invisible : ViewStates.Visible;
kovora.Visibility = ViewStates.Invisible; kovora.Text = e.KövetkezőÓra ?? "";
else kezdveg.Visibility = e.HátralévőIdő == null ? ViewStates.Invisible : ViewStates.Visible;
kovora.Text = e.KövetkezőÓra; kezdveg.Text = e.HátralévőIdő ?? "";
if (e.HátralévőIdő == null)
kezdveg.Visibility = ViewStates.Invisible;
else
kezdveg.Text = e.HátralévőIdő;
}); });
} }

View file

@ -11,6 +11,7 @@ using Android.Views;
using Android.Widget; using Android.Widget;
using Android.Preferences; using Android.Preferences;
using Orarend; using Orarend;
using System.Security;
namespace OrarendAndroidApp namespace OrarendAndroidApp
{ {