/// <summary>
        /// Called when a library has been selected by the LibrarySelectionDialogFragment
        /// </summary>
        /// <param name="selectedLibrary"></param>
        private void LibrarySelected(Library selectedLibrary)
        {
            // Save the library being scanned
            libraryBeingScanned = selectedLibrary;

            // Start the library scan process and let the user know what is happening
            cancelHasBeenRequested = false;
            commandState           = CommandStateType.Scanning;

            LibraryScanController.ResetController();
            LibraryScanController.ScanReporter = this;
            LibraryScanController.ScanLibraryAsynch(libraryBeingScanned);

            ScanProgressDialogFragment.ShowFragment(CommandRouter.Manager, libraryBeingScanned.Name, CancelRequested, BindDialog);
        }
        /// <summary>
        /// Called when the ScanProgressDialogFragment dialog is displayed (OnResume)
        /// Save the reference to allow the dialogue to be dismissed
        /// </summary>
        /// <param name="dialogue"></param>
        private void BindDialog(ScanProgressDialogFragment dialogue)
        {
            scanProgressDialog = dialogue;

            // If the post-scan processing was paused due to the UI not being available, then continue with it now
            if ((scanProgressDialog != null) && ((commandState == CommandStateType.ScanComplete) || (commandState == CommandStateType.DeleteComplete)))
            {
                scanProgressDialog.Dismiss();

                if (commandState == CommandStateType.ScanComplete)
                {
                    NotifyScanFinished();
                }
                else
                {
                    DeleteFinished();
                }
            }
        }