Frissítve C# 7.0-ra, tömörítések..., egyéb módosítások
A ConnectFaliure esetén javasolja, hogy indítsa újra az alkalmazást
This commit is contained in:
parent
45557da7bf
commit
95c72a2382
8 changed files with 51 additions and 94 deletions
|
@ -37,9 +37,9 @@ namespace Orarend
|
|||
/// <para>Lehet null, ha még nem volt sikeres <see cref="Frissítés"/>.</para>
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static Osztály[] Osztályok { get { return példány.osztályok; } private set { példány.osztályok = value; } }
|
||||
public static Osztály[] Osztályok { get => példány.osztályok; private set => példány.osztályok = value; }
|
||||
public static List<Órarend> Órarendek { get { return példány.órarendek; } }
|
||||
public static Settings Beállítások { get { return példány.beállítások; } private set { példány.beállítások = value; } }
|
||||
public static Settings Beállítások { get => példány.beállítások; private set => példány.beállítások = value; }
|
||||
/// <summary>
|
||||
/// Frissíti az osztálylistát és az eredeti órarendet, első megnyitásnál, és egy órarend hozzáadásánál/szerkesztésénél, majd hetente elegendő meghívni
|
||||
/// <param name="stream">A file stream, ahova mentse az adatokat, hogy ne kelljen külön meghívni - Azért funkció, hogy elkerüljök az adatvesztést, mivel így csak a mentéskor nyitja meg</param>
|
||||
|
@ -201,10 +201,7 @@ namespace Orarend
|
|||
}
|
||||
|
||||
[OnDeserializing]
|
||||
private void betöltés(StreamingContext context)
|
||||
{ //Az órák azonosítójának beállításakor szükséges már
|
||||
példány = this;
|
||||
}
|
||||
private void betöltés(StreamingContext context) => példány = this; //Az órák azonosítójának beállításakor szükséges már
|
||||
|
||||
/// <summary>
|
||||
/// Betölti az adatokat, ha még nincsenek betöltve
|
||||
|
@ -265,13 +262,8 @@ namespace Orarend
|
|||
public static void Mentés(Stream s)
|
||||
{
|
||||
using (s)
|
||||
{
|
||||
if (példány != null)
|
||||
{
|
||||
var serializer = new DataContractJsonSerializer(példány.GetType());
|
||||
serializer.WriteObject(s, példány);
|
||||
}
|
||||
}
|
||||
new DataContractJsonSerializer(példány.GetType()).WriteObject(s, példány);
|
||||
}
|
||||
/// <summary>
|
||||
/// Visszatér a megjelenítendő héttel. Ez megegyezik a tényleges héttel, kivéve hétvégén, amikor a következő
|
||||
|
@ -287,13 +279,7 @@ namespace Orarend
|
|||
}
|
||||
}
|
||||
|
||||
public static bool AHét
|
||||
{
|
||||
get
|
||||
{
|
||||
return Hét % 2 == 0;
|
||||
}
|
||||
}
|
||||
public static bool AHét { get => Hét % 2 == 0; }
|
||||
|
||||
public static bool Fókusz
|
||||
{
|
||||
|
@ -329,14 +315,10 @@ namespace Orarend
|
|||
}
|
||||
}
|
||||
|
||||
public static Helyettesítés[] HelyettesítésInnenIde(Órarend órarend, int i, int j)
|
||||
{
|
||||
return new Helyettesítés[]
|
||||
{
|
||||
órarend.Helyettesítések.FirstOrDefault(h => (int)h.EredetiNap == i + 1 && h.EredetiSorszám == j + 1),
|
||||
ó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
|
||||
};
|
||||
}
|
||||
public static (Helyettesítés innen, Helyettesítés ide) HelyettesítésInnenIde(Órarend órarend, int i, int j) =>
|
||||
(órarend.Helyettesítések.FirstOrDefault(h => (int)h.EredetiNap == i + 1 && h.EredetiSorszám == j + 1),
|
||||
ó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
|
||||
|
||||
private static bool nincstöbbóra = false;
|
||||
private static Órarend órarend; //TODO
|
||||
|
@ -354,7 +336,7 @@ namespace Orarend
|
|||
bool talált = false;
|
||||
nincstöbbóra = false;
|
||||
if (órarend.Órakezdetek[0] == TimeSpan.Zero) //Még nincsenek beállítva a kezdetek
|
||||
return new TimerEventArgs(null, "Betöltés"); //TODO
|
||||
return new TimerEventArgs(null, "Betöltés");
|
||||
string kezdveg = null, kovora = null;
|
||||
for (int i = 0; i < órarend.Órakezdetek.Length - 1; i++)
|
||||
{
|
||||
|
@ -362,9 +344,9 @@ namespace Orarend
|
|||
bool becsengetés;
|
||||
int x = (int)DateTime.Today.DayOfWeek - 1;
|
||||
Óra óra;
|
||||
var innenide = API.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";
|
||||
if (x != -1 && x < 6 && (óra = innenide[1] != null ? innenide[1].ÚjÓra : innenide[0] != null ? innenide[0].EredetiNap != innenide[0].ÚjNap || innenide[0].EredetiSorszám != innenide[0].ÚjSorszám ? null : innenide[0].Ú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
|
||||
if (most > órarend.Órakezdetek[i])
|
||||
{
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
|
||||
<MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{93C1582B-AD0F-44EC-BB69-02EE1ADFC0DD}</ProjectGuid>
|
||||
|
@ -13,8 +13,8 @@
|
|||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<TargetFrameworkProfile>Profile111</TargetFrameworkProfile>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<TargetFrameworkProfile>Profile44</TargetFrameworkProfile>
|
||||
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
|
@ -47,15 +47,16 @@
|
|||
<Compile Include="ÓraTípus.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.4.9.4, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\HtmlAgilityPack.1.4.9.4\lib\portable-net45+netcore45+wpa81+wp8+MonoAndroid+MonoTouch\HtmlAgilityPack.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="HtmlAgilityPack, Version=1.4.9.5, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\HtmlAgilityPack.1.4.9.5\lib\portable-net45+netcore45+wp8+MonoAndroid+MonoTouch\HtmlAgilityPack.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ValueTuple, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.3.0\lib\portable-net40+sl4+win8+wp8\System.ValueTuple.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
|
|
@ -18,34 +18,12 @@ namespace Orarend
|
|||
{
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Név;
|
||||
}
|
||||
public override string ToString() => Név;
|
||||
|
||||
public bool Equals(Osztály other)
|
||||
{
|
||||
return Azonosító == other?.Azonosító;
|
||||
}
|
||||
|
||||
public static bool operator==(Osztály a, Osztály b)
|
||||
{
|
||||
return a?.Equals(b) ?? (object)b == null;
|
||||
}
|
||||
|
||||
public static bool operator!=(Osztály a, Osztály b)
|
||||
{
|
||||
return !(a == b);
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return obj is Osztály ? Equals(obj as Osztály) : base.Equals(obj);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return Azonosító.GetHashCode();
|
||||
}
|
||||
public bool Equals(Osztály other) => Azonosító == other?.Azonosító;
|
||||
public static bool operator==(Osztály a, Osztály b) => a?.Equals(b) ?? (object)b == null;
|
||||
public static bool operator!=(Osztály a, Osztály b) => !(a == b);
|
||||
public override bool Equals(object obj) => obj is Osztály ? Equals(obj as Osztály) : base.Equals(obj);
|
||||
public override int GetHashCode() => Azonosító.GetHashCode();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="HtmlAgilityPack" version="1.4.9.4" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="HtmlAgilityPack" version="1.4.9.5" targetFramework="portable45-net45+wp8" />
|
||||
<package id="System.Collections" version="4.3.0" targetFramework="portable46-net451+win81" />
|
||||
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="portable46-net451+win81" />
|
||||
<package id="System.Runtime" version="4.3.0" targetFramework="portable46-net451+win81" />
|
||||
<package id="System.ValueTuple" version="4.3.0" targetFramework="portable46-net451+win81" />
|
||||
</packages>
|
|
@ -17,8 +17,8 @@ namespace OrarendAndroidApp
|
|||
{
|
||||
var settings = PreferenceManager.GetDefaultSharedPreferences(activity);
|
||||
bool darktheme = settings.GetBoolean("pref_theme", false);
|
||||
if (activity is ActivityBase)
|
||||
(activity as ActivityBase).DarkTheme = darktheme;
|
||||
if (activity is ActivityBase ab)
|
||||
ab.DarkTheme = darktheme;
|
||||
activity.SetTheme(darktheme ? Android.Resource.Style.ThemeDeviceDefault : Android.Resource.Style.ThemeDeviceDefaultLight);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,13 +32,8 @@ namespace OrarendAndroidApp
|
|||
{
|
||||
AndroidEnvironment.UnhandledExceptionRaiser += AndroidEnvironment_UnhandledExceptionRaiser;
|
||||
base.OnCreate(bundle);
|
||||
//RequestWindowFeature(WindowFeatures.ActionBar);
|
||||
SetContentView(Resource.Layout.MainLayout);
|
||||
//SetActionBar(new Toolbar(this));
|
||||
ActionBar.SetDisplayShowTitleEnabled(false);
|
||||
//ActionBar.CustomView = new Spinner(this);
|
||||
//ActionBar.CustomView = FindViewById<Spinner>(Resource.Id.spinner);
|
||||
//ActionBar.SetCustomView(FindViewById<Spinner>(Resource.Id.spinner), new ActionBar.LayoutParams(GravityFlags.Left));
|
||||
handler = new Handler();
|
||||
string[] list = FileList();
|
||||
bool betöltötte;
|
||||
|
@ -190,10 +185,8 @@ namespace OrarendAndroidApp
|
|||
addCell((j + 1).ToString(), DarkTheme ? Color.White : Color.Black, tr);
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
var innenide = API.HelyettesítésInnenIde(órarend, i, j);
|
||||
var helyettesítés = innenide[0];
|
||||
var helyettesítésIde = innenide[1];
|
||||
addCell(helyettesítésIde != null ? helyettesítésIde.ÚjÓra.EgyediNév : helyettesítés != null ? helyettesítés.EredetiNap != helyettesítés.ÚjNap || helyettesítés.EredetiSorszám != helyettesítés.ÚjSorszám ? "Áthelyezve" : helyettesítés.ÚjÓra?.EgyediNév ?? "elmarad" : órarend.Órák[i][j]?.EgyediNév ?? "", helyettesítés == null ? (DarkTheme ? Color.WhiteSmoke : Color.Black) : Color.Red, tr, new int[2] { 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 });
|
||||
}
|
||||
table.AddView(tr, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent));
|
||||
}
|
||||
|
@ -225,11 +218,7 @@ namespace OrarendAndroidApp
|
|||
Helyettesítés helyettesítésInnen = null;
|
||||
Helyettesítés helyettesítésIde = null;
|
||||
if (ij != null)
|
||||
{
|
||||
var innenide = API.HelyettesítésInnenIde(órarend, ij[0], ij[1]);
|
||||
helyettesítésInnen = innenide[0];
|
||||
helyettesítésIde = innenide[1];
|
||||
}
|
||||
(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)
|
||||
{
|
||||
deselect();
|
||||
|
@ -336,15 +325,10 @@ namespace OrarendAndroidApp
|
|||
return base.OnOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void Hiba(string msg)
|
||||
{
|
||||
Hiba(this, msg);
|
||||
}
|
||||
private void Hiba(string msg) => Hiba(this, msg);
|
||||
|
||||
public static void Hiba(Context c, string msg)
|
||||
{
|
||||
public static void Hiba(Context c, string msg) =>
|
||||
new AlertDialog.Builder(c).SetMessage(msg).SetNeutralButton("OK", (s, e) => { ((AlertDialog)s).Dismiss(); ((AlertDialog)s).Dispose(); }).SetTitle("Hiba").Show();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Az összes hibát kiírja, ami a <see cref="Task"/> futása közben keletkezett
|
||||
|
@ -357,10 +341,12 @@ namespace OrarendAndroidApp
|
|||
bool ret = true;
|
||||
foreach (var ex in (IEnumerable<Exception>)t.Exception?.InnerExceptions ?? new Exception[0])
|
||||
{
|
||||
if (ex is WebException)
|
||||
if (ex is WebException wex)
|
||||
{
|
||||
if (internethiba)
|
||||
Hiba("Nem sikerült csatlakozni az E-naplóhoz.\n" + ex.Message);
|
||||
if (internethiba || wex.Status != WebExceptionStatus.NameResolutionFailure)
|
||||
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.");
|
||||
}
|
||||
else
|
||||
Hiba(ex.ToString());
|
||||
|
@ -404,9 +390,7 @@ namespace OrarendAndroidApp
|
|||
órarendlistafrissítés();
|
||||
}
|
||||
else if (requestCode == SETTINGS_ACT_REQUEST)
|
||||
{
|
||||
Recreate();
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnWindowFocusChanged(bool hasFocus)
|
||||
|
|
|
@ -55,6 +55,9 @@
|
|||
<Reference Include="mscorlib" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.ValueTuple, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.ValueTuple.4.3.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ActivityBase.cs" />
|
||||
|
@ -66,6 +69,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="GettingStarted.Xamarin" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Resources\AboutResources.txt" />
|
||||
<None Include="Assets\AboutAssets.txt" />
|
||||
<AndroidResource Include="Resources\layout\MainLayout.axml">
|
||||
|
|
4
OrarendAndroidApp/packages.config
Normal file
4
OrarendAndroidApp/packages.config
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="System.ValueTuple" version="4.3.0" targetFramework="monoandroid60" />
|
||||
</packages>
|
Loading…
Reference in a new issue