Javítások, stb.

- Hozzáadás/szerk./törlés után a megfelelő órarendet választja ki
- Hibakezelés
- Egyéb javítások
This commit is contained in:
Norbi Peti 2017-02-20 23:45:44 +01:00
parent d7bd486071
commit aedb08a6be
4 changed files with 62 additions and 30 deletions

View file

@ -26,6 +26,11 @@ namespace OrarendAndroidApp
Title = (add = Intent.Extras.GetBoolean("add")) ? "Hozzáadás" : "Szerkesztés"; Title = (add = Intent.Extras.GetBoolean("add")) ? "Hozzáadás" : "Szerkesztés";
index = Intent.Extras.GetInt("index"); index = Intent.Extras.GetInt("index");
var osztálySpinner = FindViewById<Spinner>(Resource.Id.osztálySpinner); var osztálySpinner = FindViewById<Spinner>(Resource.Id.osztálySpinner);
if (API.Osztályok == null)
{
MainActivity.Hiba(this, "Az osztálylista üres! Válaszd a Teljes frissítést a menüből.");
Finish();
}
osztálySpinner.Adapter = new ArrayAdapter(this, Resource.Layout.simple_list_item_1, API.Osztályok); osztálySpinner.Adapter = new ArrayAdapter(this, Resource.Layout.simple_list_item_1, API.Osztályok);
if (!add) if (!add)
{ {

View file

@ -54,6 +54,8 @@ namespace OrarendAndroidApp
handler.Post(() => handler.Post(() =>
{ {
var list = FindViewById<Spinner>(Resource.Id.spinner); var list = FindViewById<Spinner>(Resource.Id.spinner);
int selected = list.SelectedItemPosition;
int count = list.Count;
ArrayAdapter adapter; ArrayAdapter adapter;
if (list.Adapter != null) if (list.Adapter != null)
{ {
@ -62,11 +64,15 @@ namespace OrarendAndroidApp
adapter.AddAll(API.Órarendek); adapter.AddAll(API.Órarendek);
} }
else else
{
adapter = new ArrayAdapter(this, Resource.Layout.simple_list_item_1, API.Órarendek); adapter = new ArrayAdapter(this, Resource.Layout.simple_list_item_1, API.Órarendek);
list.ItemSelected += ÓrarendClick;
}
list.Adapter = adapter; list.Adapter = adapter;
adapter.NotifyDataSetChanged(); adapter.NotifyDataSetChanged();
list.ItemSelected += ÓrarendClick; if (selected >= list.Count || list.Count > count) //TÖrlés vagy hozzáadás után
//list.SetSelection(list.SelectedItemPosition); //Szöveg frissítése - TODO: Teszt selected = list.Count - 1;
list.SetSelection(selected);
}); });
} }
@ -105,30 +111,19 @@ namespace OrarendAndroidApp
private void ÓrarendFrissítés(Órarend ór = null) private void ÓrarendFrissítés(Órarend ór = null)
{ //TODO: Meghívni minden tervezett alkalommal; hozzáadásnál csak a hozzáadott órarendet frissítse { //TODO: Meghívni minden tervezett alkalommal; hozzáadásnál csak a hozzáadott órarendet frissítse
try var bar = FindViewById<ProgressBar>(Resource.Id.progressBar1);
handler.Post(() => bar.Visibility = ViewStates.Visible);
API.Frissítés(OpenFileOutput("orarend", FileCreationMode.Private), OpenFileOutput("osztaly", FileCreationMode.Private), ór).ContinueWith(t =>
{ {
var bar = FindViewById<ProgressBar>(Resource.Id.progressBar1); handler.Post(() =>
handler.Post(() => bar.Visibility = ViewStates.Visible);
API.Frissítés(OpenFileOutput("orarend", FileCreationMode.Private), OpenFileOutput("osztaly", FileCreationMode.Private), ór).ContinueWith(t =>
{ {
handler.Post(() => if (TaskHiba(t) && (ór == null || ór == órarend))
{ órarendfrissítés();
if (TaskHiba(t) && órarend != null && (ór == null || ór == órarend)) bar.Visibility = ViewStates.Gone;
órarendfrissítés(); órarendlistafrissítés();
bar.Visibility = ViewStates.Gone; Toast.MakeText(this, "Órarend" + (ór == null ? "ek" : "") + " és osztálylista frissítve", ToastLength.Short).Show();
órarendlistafrissítés();
Toast.MakeText(this, "Órarend" + (ór == null ? "ek" : "") + " és osztálylista frissítve", ToastLength.Short).Show();
});
}); });
} });
catch(WebException)
{
Hiba("Nem sikerült az órarend" + (ór == null ? "ek" : "") + "et frissíteni");
}
catch(System.Exception e)
{
Hiba(e.ToString());
}
} }
private void órarendfrissítés() private void órarendfrissítés()
@ -137,6 +132,8 @@ namespace OrarendAndroidApp
if (table.ChildCount > 1) if (table.ChildCount > 1)
table.RemoveViews(1, table.ChildCount - 1); table.RemoveViews(1, table.ChildCount - 1);
FindViewById<TextView>(Resource.Id.kivoraTV).Visibility = ViewStates.Gone; FindViewById<TextView>(Resource.Id.kivoraTV).Visibility = ViewStates.Gone;
if (órarend == null)
return;
TableRow tr = new TableRow(this); TableRow tr = new TableRow(this);
addCell("", Color.Black, tr); addCell("", Color.Black, tr);
addCell("Hétfő", Color.Black, tr); addCell("Hétfő", Color.Black, tr);
@ -221,6 +218,11 @@ namespace OrarendAndroidApp
} }
case Resource.Id.menu_edit: case Resource.Id.menu_edit:
{ {
if (órarend == null)
{
Toast.MakeText(this, "Nincs órarend kiválasztva", ToastLength.Short).Show();
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(órarend));
@ -240,7 +242,12 @@ namespace OrarendAndroidApp
private void Hiba(string msg) private void Hiba(string msg)
{ {
new AlertDialog.Builder(this).SetMessage(msg).SetNeutralButton("OK", (s, e) => { ((AlertDialog)s).Dismiss(); ((AlertDialog)s).Dispose(); }).SetTitle("Hiba").Show(); Hiba(this, 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> /// <summary>
@ -253,7 +260,10 @@ namespace OrarendAndroidApp
bool ret = true; bool ret = true;
foreach (var ex in (IEnumerable<System.Exception>)t.Exception?.InnerExceptions ?? new System.Exception[0]) foreach (var ex in (IEnumerable<System.Exception>)t.Exception?.InnerExceptions ?? new System.Exception[0])
{ {
Hiba(ex.ToString()); if (ex is WebException)
Hiba("Nem sikerült csatlakozni az E-naplóhoz.\n" + ex.Message);
else
Hiba(ex.ToString());
ret = false; ret = false;
} }
return ret; return ret;
@ -323,10 +333,16 @@ namespace OrarendAndroidApp
base.OnActivityResult(requestCode, resultCode, data); base.OnActivityResult(requestCode, resultCode, data);
if (resultCode == Result.Canceled) if (resultCode == Result.Canceled)
return; return;
int index = data.Extras.GetBoolean("add") ? API.Órarendek.Count - 1 : data.Extras.GetInt("index");
if (requestCode == EDIT_ADD_ACT_REQUEST) if (requestCode == EDIT_ADD_ACT_REQUEST)
{ {
if (!data.Extras.GetBoolean("deleted")) if (!data.Extras.GetBoolean("deleted"))
ÓrarendFrissítés(data.Extras.GetBoolean("add") ? API.Órarendek.Last() : API.Órarendek[data.Extras.GetInt("index")]); ÓrarendFrissítés(API.Órarendek[index]);
else
{
órarend = null;
órarendfrissítés();
}
órarendlistafrissítés(); órarendlistafrissítés();
} }
} }

View file

@ -20,7 +20,7 @@
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest> <AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>True</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath> <OutputPath>bin\Debug\</OutputPath>
@ -29,6 +29,16 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
<AndroidUseSharedRuntime>True</AndroidUseSharedRuntime> <AndroidUseSharedRuntime>True</AndroidUseSharedRuntime>
<AndroidLinkMode>None</AndroidLinkMode> <AndroidLinkMode>None</AndroidLinkMode>
<AndroidLinkSkip />
<EmbedAssembliesIntoApk>False</EmbedAssembliesIntoApk>
<BundleAssemblies>False</BundleAssemblies>
<AndroidCreatePackagePerAbi>False</AndroidCreatePackagePerAbi>
<AndroidSupportedAbis>
</AndroidSupportedAbis>
<AndroidStoreUncompressedFileExtensions />
<MandroidI18n />
<Debugger>Xamarin</Debugger>
<AndroidEnableMultiDex>False</AndroidEnableMultiDex>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="OrarendAndroidApp.OrarendAndroidApp" android:versionCode="1" android:versionName="1.0"> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.github.norbipeti.orarend" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
<uses-sdk android:minSdkVersion="16" /> <uses-sdk android:minSdkVersion="14" />
<application android:label="OrarendAndroidApp"></application> <uses-permission android:name="android.permission.INTERNET" />
<application android:label="Orarend"></application>
</manifest> </manifest>