Example #1
0
        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);
             *  });
             * }
             */
        }