private async void SwitchDatabase() { string database = await MainActivity.SelectDatabase(this, "Datenbank öffnen:"); if (string.IsNullOrEmpty(database)) { return; } Android_Database.TryOpenDatabase(database); Settings.PutString("LastSelectedDatabase", database); this.CheckAndMoveArticleImages(); this.ShowDatabaseName(); this.ShowDatabaseInfoText(); }
/// <summary> /// Datenbankauswahl (bei mehreren Datenbanken) /// </summary> /// <returns>true - Datenbank wurde ausgewählt. false - Datenbankauswahl wird angezeigt.</returns> private bool SelectDatabase() { List <string> fileList; Exception ex = Android_Database.LoadDatabaseFileListSafe(this, out fileList); if (ex != null) { TRACE(ex); string text = "Bitte ggf. den Eintrag 'Zusätzlicher Datenbankpfad' in den Einstellungen prüfen."; TRACE("SplashScreen: {0}", ex.Message); TRACE("SplashScreen: {0}", text); text = ex.Message + "\n\n" + text; Toast.MakeText(this, text, ToastLength.Long).Show(); } if (fileList.Count == 1) { Android_Database.TryOpenDatabase(fileList[0]); return(true); } if (fileList.Count == 0) { return(true); } string[] databaseNames = new string[fileList.Count]; for (int i = 0; i < fileList.Count; i++) { databaseNames[i] = Path.GetFileNameWithoutExtension(fileList[i]); } AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.SetTitle("Datenbank auswählen:"); builder.SetItems(databaseNames, (sender2, args) => { string database = fileList[args.Which]; Android_Database.TryOpenDatabase(database); Settings.PutString("LastSelectedDatabase", database); this.ConvertAndStartMainScreen(); }); builder.SetOnCancelListener(new ActionDismissListener(() => { Android_Database.TryOpenDatabase(fileList[0]); this.ConvertAndStartMainScreen(); })); builder.Show(); return(false); /* * bool emulator = Android.OS.Environment.IsExternalStorageEmulated; * string status = Android.OS.Environment.ExternalStorageState; * bool canWrite = Android.OS.Environment.ExternalStorageDirectory.CanWrite(); * string sdCardPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath; * string databasePath = Android_Database.Instance.GetDatabasePath(); * * TRACE("********************************************"); * TRACE("Is SD card emulated : {0}", emulator); * TRACE("SD card state : {0}", status); * TRACE("Can write SD card : {0}", canWrite); * TRACE("SD card path : {0}", sdCardPath); * TRACE("Database path : {0}", databasePath); * TRACE("Database on SD card : {0}", Android_Database.IsDatabaseOnSdCard); * TRACE("********************************************"); * * for (int progress=0; progress<100; progress+=10) * { * System.Threading.Thread.Sleep(1000); * * RunOnUiThread(() => * { * this.progressText.SetText(progress.ToString(), TextView.BufferType.Normal); * }); * } */ }