private IEnumerator EntryScreenToFlowerScreenRoutine()
    {
        state = CommentEntryState.Busy;

        entryScreen.Close();
        yield return(new WaitForSeconds(0.3f));

        state = CommentEntryState.FlowerScreen;
    }
    private IEnumerator FlowerScreenToEntryScreenRoutine(Petal petal)
    {
        state = CommentEntryState.Busy;

        entryScreen.Open(petal);
        CommentCreator.PETAL = petal.ToString();
        yield return(new WaitForSeconds(0.3f));

        state = CommentEntryState.EntryScreen;
    }
    private IEnumerator SubmitScreenToEntryScreenRoutine()
    {
        state = CommentEntryState.Busy;

        menuTab.SetVisible(true);
        submitScreen.SetOpen(false);
        yield return(new WaitForSeconds(0.3f));

        state = CommentEntryState.EntryScreen;
    }
    // ========================================================================================================================

    // This is called by the CommentEntryScreen when the Submit button is pressed,
    // signifying that the user has completed their comment and it should be uploaded.

    public void SubmitClicked()
    {
        if (state == CommentEntryState.EntryScreen)
        {
            serverBackend.UploadComment(CommentCreator.Bake(), submitScreen.ResultCallback);

            menuTab.SetVisible(false);
            submitScreen.SetColor(entryScreen.GetColor());
            submitScreen.SetOpen(true);

            state = CommentEntryState.SubmitScreen;
        }
    }
    private IEnumerator FlowerScreenToHiddenRoutine()
    {
        state = CommentEntryState.Busy;

        menuTab.SetVisible(false);
        flowerTitle.Show(false);
        flower.SetOpen(false);
        fade.In(0.5f);
        yield return(new WaitForSeconds(0.6f));

        app.CommentToPanorama();

        state = CommentEntryState.Hidden;
    }
    private IEnumerator HiddenToFlowerScreenRoutine()
    {
        state = CommentEntryState.Busy;

        fade.Out(0.5f);
        yield return(new WaitForSeconds(0.5f));

        menuTab.SetVisible(true);
        flower.SetOpen(true);
        yield return(new WaitForSeconds(0.2f));

        flowerTitle.Show(true);

        state = CommentEntryState.FlowerScreen;
    }
    private IEnumerator SubmitScreenToHiddenRoutine()
    {
        state = CommentEntryState.Busy;

        flowerTitle.Show(false);
        flower.SetOpen(false);
        entryScreen.Close();
        entryScreen.ClearText();
        fade.In(0.4f);
        yield return(new WaitForSeconds(0.4f));

        submitScreen.SetOpen(false);
        yield return(new WaitForSeconds(0.5f));

        app.CommentToPanorama();

        state = CommentEntryState.Hidden;
    }