private async Task InitProcess() { await Task.Delay(500); try { // Initialize FindViewById <TextView>(Resource.Id.SplashAppVersion).Text = $"v{AppInfo.VersionString}({AppInfo.BuildString})"; await ETC.AnimateText(statusText, "Initializing"); if (Preferences.Get("CheckInitLowMemory", true)) { CheckDeviceMemory(); } ETC.isLowRAM = Preferences.Get("LowMemoryOption", false); ETC.CheckInitFolder(); // Check DB Update if (!CheckDBFiles()) { await ETC.AnimateText(statusText, "Download DB First"); try { await ETC.CheckServerNetwork(); if (!ETC.isServerDown) { await ETC.UpdateDB(this); } else { throw new Exception("Server is down"); } } catch (Exception ex) { ETC.LogError(ex, this); Toast.MakeText(this, Resource.String.Splash_SkipCheckUpdate, ToastLength.Long).Show(); } } try { int.TryParse(File.ReadAllText(Path.Combine(ETC.systemPath, "DBVer.txt")), out ETC.dbVersion); //using (StreamReader sr = new StreamReader(new FileStream(, FileMode.Open, FileAccess.Read))) //{ // _ = int.TryParse(sr.ReadToEnd(), out ETC.dbVersion); //} } catch { ETC.dbVersion = 0; } // Finalize & Start Main StartActivity(typeof(Main)); OverridePendingTransition(Android.Resource.Animation.SlideInLeft, Android.Resource.Animation.SlideOutRight); Finish(); } catch (Exception ex) { ETC.LogError(ex, this); Toast.MakeText(this, Resource.String.InitLoad_Error, ToastLength.Long).Show(); } finally { GC.Collect(GC.MaxGeneration, GCCollectionMode.Default, false, false); } }
/// <summary> /// Check DB version & Refresh notification data /// </summary> private async Task CheckNetworkData() { await Task.Delay(100); //tv.Text = $"DB Ver.{ETC.dbVersion} ({Resources.GetString(Resource.String.Main_DBChecking)})"; try { // Check Server Status /*await Task.Run(async () => * { * // Check DB Version * * if (await ETC.CheckDBVersion()) * { * //RunOnUiThread(() => { tv.Text = $"DB Ver.{ETC.dbVersion} ({Resources.GetString(Resource.String.Main_DBUpdateAvailable)})"; }); * * var ad = new Android.Support.V7.App.AlertDialog.Builder(this, ETC.dialogBG); * ad.SetTitle(Resource.String.CheckDBUpdateDialog_Title); * ad.SetMessage(Resource.String.CheckDBUpdateDialog_Question); * ad.SetCancelable(true); * ad.SetNegativeButton(Resource.String.AlertDialog_Cancel, delegate { }); * ad.SetPositiveButton(Resource.String.AlertDialog_Confirm, async delegate * { * await ETC.UpdateDB(this, true); * * if (!await ETC.CheckDBVersion()) * { * //RunOnUiThread(() => { tv.Text = $"DB Ver.{ETC.dbVersion} ({Resources.GetString(Resource.String.Main_DBUpdateNewest)})"; }); * } * else * { * //RunOnUiThread(() => { tv.Text = $"DB Ver.{ETC.dbVersion} ({Resources.GetString(Resource.String.Main_DBUpdateAvailable)})"; }); * } * * }); * * RunOnUiThread(() => { ad.Show(); }); * } * else * { * //RunOnUiThread(() => { tv.Text = $"DB Ver.{ETC.dbVersion} ({Resources.GetString(Resource.String.Main_DBUpdateNewest)})"; }); * } * });*/ if (await ETC.CheckDBVersion()) { //RunOnUiThread(() => { tv.Text = $"DB Ver.{ETC.dbVersion} ({Resources.GetString(Resource.String.Main_DBUpdateAvailable)})"; }); var ad = new AndroidX.AppCompat.App.AlertDialog.Builder(this, ETC.dialogBG); ad.SetTitle(Resource.String.CheckDBUpdateDialog_Title); ad.SetMessage(Resource.String.CheckDBUpdateDialog_Question); ad.SetCancelable(true); ad.SetNegativeButton(Resource.String.AlertDialog_Cancel, delegate { }); ad.SetPositiveButton(Resource.String.AlertDialog_Confirm, async delegate { await ETC.UpdateDB(this, true); if (!await ETC.CheckDBVersion()) { //RunOnUiThread(() => { tv.Text = $"DB Ver.{ETC.dbVersion} ({Resources.GetString(Resource.String.Main_DBUpdateNewest)})"; }); } else { //RunOnUiThread(() => { tv.Text = $"DB Ver.{ETC.dbVersion} ({Resources.GetString(Resource.String.Main_DBUpdateAvailable)})"; }); } }); RunOnUiThread(() => { ad.Show(); }); } else { //RunOnUiThread(() => { tv.Text = $"DB Ver.{ETC.dbVersion} ({Resources.GetString(Resource.String.Main_DBUpdateNewest)})"; }); } } catch (Exception ex) { ETC.LogError(ex, this); ETC.ShowSnackbar(snackbarLayout, Resource.String.Main_NotificationInitializeFail, Snackbar.LengthLong, Android.Graphics.Color.DarkRed); } }