syntax = "proto3";

package rv.analytics;

option cc_enable_arenas = true;
option csharp_namespace = "Pro.SerializationInterop.RVProtoData.Analytics";
option swift_prefix = "Analytics_";

message UI {
  message QuickSearch {
    message Shown {
      enum Source {
        SOURCE_UNKNOWN = 0;
        SOURCE_APPLICATION_MENU = 1;
        SOURCE_TOOLBAR = 2;
        SOURCE_UNLINKED_HEADER = 3;
      }

      .rv.analytics.UI.QuickSearch.Shown.Source source = 1;
    }

    message Search {
      enum Source {
        SOURCE_UNKNOWN = 0;
        SOURCE_LIBRARY = 1;
        SOURCE_SONG_SELECT = 2;
        SOURCE_MULTI_TRACKS = 3;
      }

      .rv.analytics.UI.QuickSearch.Search.Source source = 1;
    }

    message OpenItems {
      enum Source {
        SOURCE_UNKNOWN = 0;
        SOURCE_LIBRARY = 1;
        SOURCE_SONG_SELECT = 2;
        SOURCE_MULTI_TRACKS = 3;
      }

      enum Style {
        STYLE_UNKNOWN = 0;
        STYLE_RETURN_KEY = 1;
        STYLE_COMMAND_RETURN_KEY = 2;
        STYLE_DRAG_DROP = 3;
      }

      .rv.analytics.UI.QuickSearch.OpenItems.Source source = 1;
      .rv.analytics.UI.QuickSearch.OpenItems.Style style = 2;
      int32 count = 3;
    }

    oneof Component {
      .rv.analytics.UI.QuickSearch.Shown shown = 1;
      .rv.analytics.UI.QuickSearch.Search search = 2;
      .rv.analytics.UI.QuickSearch.OpenItems open_items = 3;
    }
  }

  message Toolbar {
    message TextStyle {
      message Shown {
      }

      message Change {
        enum Property {
          PROPERTY_UNKNOWN = 0;
          PROPERTY_FONT_TYPEFACE = 1;
          PROPERTY_FONT_WEIGHT = 2;
          PROPERTY_FONT_CAPITALIZATION = 3;
          PROPERTY_FONT_SIZE = 4;
          PROPERTY_FONT_COLOR = 5;
          PROPERTY_HORIZONTAL_ALIGNMENT = 6;
          PROPERTY_VERTICAL_ALIGNMENT = 7;
          PROPERTY_STROKE_ENABLE = 8;
          PROPERTY_STROKE_WIDTH = 9;
          PROPERTY_STROKE_COLOR = 10;
          PROPERTY_SHADOW_ENABLE = 11;
          PROPERTY_SHADOW_BLUR = 12;
          PROPERTY_SHADOW_OPACITY = 13;
          PROPERTY_SHADOW_COLOR = 14;
          PROPERTY_SHADOW_ANGLE = 15;
          PROPERTY_SHADOW_OFFSET = 16;
        }

        enum Target {
          TARGET_UNKNOWN = 0;
          TARGET_SLIDE_SELECTION = 1;
          TARGET_PRESENTATION_SELECTION = 2;
        }

        .rv.analytics.UI.Toolbar.TextStyle.Change.Property property = 1;
        .rv.analytics.UI.Toolbar.TextStyle.Change.Target target = 2;
      }

      oneof Component {
        .rv.analytics.UI.Toolbar.TextStyle.Shown shown = 1;
        .rv.analytics.UI.Toolbar.TextStyle.Change change = 2;
      }
    }

    message Theme {
      message Shown {
      }

      message Applied {
        enum Target {
          TARGET_UNKNOWN = 0;
          TARGET_SLIDE_SELECTION = 1;
          TARGET_PRESENTATION_SELECTION = 2;
        }

        .rv.analytics.UI.Toolbar.Theme.Applied.Target target = 1;
      }

      oneof Component {
        .rv.analytics.UI.Toolbar.Theme.Shown shown = 1;
        .rv.analytics.UI.Toolbar.Theme.Applied applied = 2;
      }
    }

    oneof Component {
      .rv.analytics.UI.Toolbar.TextStyle text_style = 1;
      .rv.analytics.UI.Toolbar.Theme theme = 2;
    }
  }

  message MainView {
    message Show {
      message Shown {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_TOOLBAR = 1;
          SOURCE_APPLICATION_MENU = 2;
        }

        .rv.analytics.UI.MainView.Show.Shown.Source source = 1;
      }

      oneof Component {
        .rv.analytics.UI.MainView.Show.Shown shown = 1;
      }
    }

    message PresentationEditor {
      message Shown {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_TOOLBAR = 1;
          SOURCE_APPLICATION_MENU = 2;
          SOURCE_CONTEXT_MENU = 3;
        }

        .rv.analytics.UI.MainView.PresentationEditor.Shown.Source source = 1;
      }

      oneof Component {
        .rv.analytics.UI.MainView.PresentationEditor.Shown shown = 1;
      }
    }

    message ReflowEditor {
      message Shown {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_TOOLBAR = 1;
          SOURCE_APPLICATION_MENU = 2;
          SOURCE_LIBRARY_CONTEXT_MENU = 3;
        }

        .rv.analytics.UI.MainView.ReflowEditor.Shown.Source source = 1;
      }

      oneof Component {
        .rv.analytics.UI.MainView.ReflowEditor.Shown shown = 1;
      }
    }

    message Bible {
      message Shown {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_TOOLBAR = 1;
          SOURCE_APPLICATION_MENU = 2;
        }

        .rv.analytics.UI.MainView.Bible.Shown.Source source = 1;
      }

      message Trigger {
        .rv.analytics.UI.MainView.Bible.Location location = 1;
      }

      message GenerateSlides {
        enum TextBoxLocation {
          TEXT_BOX_LOCATION_UNKNOWN = 0;
          TEXT_BOX_LOCATION_NONE = 1;
          TEXT_BOX_LOCATION_TEXT_BOX = 2;
          TEXT_BOX_LOCATION_WITH_VERSE = 3;
        }

        enum ReferenceType {
          REFERENCE_TYPE_UNKNOWN = 0;
          REFERENCE_TYPE_PASSAGE_NONE = 1;
          REFERENCE_TYPE_PASSAGE_EACH = 2;
          REFERENCE_TYPE_PASSAGE_LAST = 3;
          REFERENCE_TYPE_VERSE = 4;
        }

        int32 translation_count = 1;
        int32 slide_count = 2;
        .rv.analytics.UI.MainView.Bible.GenerateSlides.TextBoxLocation verse_location = 3;
        .rv.analytics.UI.MainView.Bible.GenerateSlides.TextBoxLocation reference_location = 4;
        bool show_verse_numbers = 5;
        bool break_new_verse = 6;
        bool display_translation = 7;
        bool preserve_font_color = 8;
        .rv.analytics.UI.MainView.Bible.GenerateSlides.ReferenceType reference_style = 9;
      }

      message GenerateNext {
        .rv.analytics.UI.MainView.Bible.Location location = 1;
      }

      message GeneratePrevious {
        .rv.analytics.UI.MainView.Bible.Location location = 2;
      }

      message SaveSlides {
        enum SlideDestination {
          SLIDE_DESTINATION_UNKNOWN = 0;
          SLIDE_DESTINATION_SAVE_TO_LIBRARY = 1;
          SLIDE_DESTINATION_SAVE_TO_PLAYLIST = 2;
          SLIDE_DESTINATION_COPY_TO_PRESENTATION = 3;
        }

        .rv.analytics.UI.MainView.Bible.SaveSlides.SlideDestination destination = 1;
      }

      message Lookup {
        enum LookupLocation {
          LOOKUP_LOCATION_UNKNOWN = 0;
          LOOKUP_LOCATION_TEXT_REFERENCE = 1;
          LOOKUP_LOCATION_MENU_BOOK = 2;
          LOOKUP_LOCATION_MENU_CHAPTER = 3;
          LOOKUP_LOCATION_MENU_VERSE = 4;
          LOOKUP_LOCATION_TEXT_SEARCH_CHAPTER = 5;
          LOOKUP_LOCATION_TEXT_SEARCH_VERSE = 6;
        }

        .rv.analytics.UI.MainView.Bible.Lookup.LookupLocation location = 1;
      }

      message BibleCount {
        int32 free_installed_count = 1;
        int32 purchased_installed_count = 2;
      }

      enum Location {
        LOCATION_UNKNOWN = 0;
        LOCATION_PRESENTATION = 1;
        LOCATION_BIBLE_MODULE = 2;
      }

      oneof Component {
        .rv.analytics.UI.MainView.Bible.Shown shown = 1;
        .rv.analytics.UI.MainView.Bible.Trigger trigger = 2;
        .rv.analytics.UI.MainView.Bible.GenerateSlides generate_slides = 3;
        .rv.analytics.UI.MainView.Bible.GenerateNext generate_next = 4;
        .rv.analytics.UI.MainView.Bible.GeneratePrevious generate_previous = 5;
        .rv.analytics.UI.MainView.Bible.SaveSlides save_slides = 6;
        .rv.analytics.UI.MainView.Bible.Lookup lookup = 7;
        .rv.analytics.UI.MainView.Bible.BibleCount install = 8;
        .rv.analytics.UI.MainView.Bible.BibleCount remove = 9;
        .rv.analytics.UI.MainView.Bible.BibleCount startup = 10;
      }
    }

    message StageEditor {
      message Shown {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_TOOLBAR = 1;
          SOURCE_APPLICATION_MENU = 2;
          SOURCE_LOWER_RIGHT = 3;
        }

        .rv.analytics.UI.MainView.StageEditor.Shown.Source source = 1;
      }

      oneof Component {
        .rv.analytics.UI.MainView.StageEditor.Shown shown = 1;
      }
    }

    message ThemeEditor {
      message Shown {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_TOOLBAR = 1;
          SOURCE_THEME_CONTEXT_MENU = 2;
        }

        .rv.analytics.UI.MainView.ThemeEditor.Shown.Source source = 1;
      }

      oneof Component {
        .rv.analytics.UI.MainView.ThemeEditor.Shown shown = 1;
      }
    }

    message CopyrightEditor {
      message Shown {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_TOOLBAR = 1;
          SOURCE_PREFERENCE = 2;
        }

        .rv.analytics.UI.MainView.CopyrightEditor.Shown.Source source = 1;
      }

      oneof Component {
        .rv.analytics.UI.MainView.CopyrightEditor.Shown shown = 1;
      }
    }

    message PropsEditor {
      message Shown {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_TOOLBAR = 1;
          SOURCE_LOWER_RIGHT = 2;
        }

        .rv.analytics.UI.MainView.PropsEditor.Shown.Source source = 1;
      }

      oneof Component {
        .rv.analytics.UI.MainView.PropsEditor.Shown shown = 1;
      }
    }

    message MaskEditor {
      message Shown {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_TOOLBAR = 1;
          SOURCE_LOOKS_WINDOW = 2;
        }

        .rv.analytics.UI.MainView.MaskEditor.Shown.Source source = 1;
      }

      oneof Component {
        .rv.analytics.UI.MainView.MaskEditor.Shown shown = 1;
      }
    }

    oneof Component {
      .rv.analytics.UI.MainView.Show show = 1;
      .rv.analytics.UI.MainView.PresentationEditor presentation_editor = 2;
      .rv.analytics.UI.MainView.ReflowEditor reflow_editor = 3;
      .rv.analytics.UI.MainView.Bible bible = 4;
      .rv.analytics.UI.MainView.StageEditor stage_editor = 5;
      .rv.analytics.UI.MainView.ThemeEditor theme_editor = 6;
      .rv.analytics.UI.MainView.CopyrightEditor copyright_editor = 7;
      .rv.analytics.UI.MainView.PropsEditor props_editor = 8;
      .rv.analytics.UI.MainView.MaskEditor mask_editor = 9;
    }
  }

  message Looks {
    message Shown {
      enum Source {
        SOURCE_UNKNOWN = 0;
        SOURCE_APPLICATION_MENU = 1;
        SOURCE_PRESENTATION_VIEW = 2;
      }

      .rv.analytics.UI.Looks.Shown.Source source = 1;
    }

    oneof Component {
      .rv.analytics.UI.Looks.Shown shown = 1;
    }
  }

  message ScreenConfiguration {
    message Shown {
      enum Source {
        SOURCE_UNKNOWN = 0;
        SOURCE_APPLICATION_MENU = 1;
        SOURCE_STAGE = 2;
      }

      .rv.analytics.UI.ScreenConfiguration.Shown.Source source = 1;
    }

    oneof Component {
      .rv.analytics.UI.ScreenConfiguration.Shown shown = 1;
    }
  }

  message LowerRight {
    message Timers {
      message Shown {
      }

      message Collapse {
        enum State {
          STATE_UNKNOWN = 0;
          STATE_COLLAPSED = 1;
          STATE_EXPANDED = 2;
        }

        .rv.analytics.UI.LowerRight.Timers.Collapse.State state = 1;
      }

      message Edit {
        enum Field {
          FIELD_UNKNOWN = 0;
          FIELD_TYPE = 1;
          FIELD_VALUE = 2;
          FIELD_OVERRUN = 3;
          FIELD_NAME = 4;
        }

        .rv.analytics.UI.LowerRight.Timers.Edit.Field field = 1;
      }

      message State {
        enum State {
          STATE_UNKNOWN = 0;
          STATE_START = 1;
          STATE_STOP = 2;
          STATE_RESET = 3;
        }

        .rv.analytics.UI.LowerRight.Timers.State.State state = 1;
      }

      message Create {
      }

      message Delete {
      }

      oneof Component {
        .rv.analytics.UI.LowerRight.Timers.Shown shown = 1;
        .rv.analytics.UI.LowerRight.Timers.Collapse collapse = 2;
        .rv.analytics.UI.LowerRight.Timers.Edit edit = 3;
        .rv.analytics.UI.LowerRight.Timers.State state = 4;
        .rv.analytics.UI.LowerRight.Timers.Create create = 5;
        .rv.analytics.UI.LowerRight.Timers.Delete delete = 6;
      }
    }

    message Messages {
      message Shown {
      }

      message Edit {
        enum Action {
          ACTION_UNKNOWN = 0;
          ACTION_ADD_TEXT_TOKEN = 1;
          ACTION_ADD_TIMER_TOKEN = 2;
          ACTION_ADD_CUSTOM_TOKEN = 3;
          ACTION_SET_THEME = 4;
          ACTION_SET_TEXT = 5;
          ACTION_SET_WEB_NOTIFICATION = 6;
          ACTION_SET_DISMISS_BEHAVIOR = 7;
        }

        .rv.analytics.UI.LowerRight.Messages.Edit.Action action = 1;
      }

      message State {
        enum State {
          STATE_UNKNOWN = 0;
          STATE_SHOW = 1;
          STATE_CLEAR = 2;
        }

        .rv.analytics.UI.LowerRight.Messages.State.State state = 1;
      }

      message Create {
      }

      message Delete {
      }

      oneof Component {
        .rv.analytics.UI.LowerRight.Messages.Shown shown = 1;
        .rv.analytics.UI.LowerRight.Messages.Edit edit = 2;
        .rv.analytics.UI.LowerRight.Messages.State state = 3;
        .rv.analytics.UI.LowerRight.Messages.Create create = 4;
        .rv.analytics.UI.LowerRight.Messages.Delete delete = 5;
      }
    }

    message Props {
      message Shown {
      }

      message Transition {
      }

      message State {
        enum State {
          STATE_UNKNOWN = 0;
          STATE_SHOW = 1;
          STATE_CLEAR = 2;
        }

        .rv.analytics.UI.LowerRight.Props.State.State state = 1;
      }

      message Create {
      }

      message Delete {
      }

      oneof Component {
        .rv.analytics.UI.LowerRight.Props.Shown shown = 1;
        .rv.analytics.UI.LowerRight.Props.Transition transition = 2;
        .rv.analytics.UI.LowerRight.Props.State state = 3;
        .rv.analytics.UI.LowerRight.Props.Create create = 4;
        .rv.analytics.UI.LowerRight.Props.Delete delete = 5;
      }
    }

    message Stage {
      message Shown {
      }

      message ChangeLayout {
      }

      message MessageState {
        enum State {
          STATE_UNKNOWN = 0;
          STATE_SHOW = 1;
          STATE_CLEAR = 2;
        }

        .rv.analytics.UI.LowerRight.Stage.MessageState.State state = 1;
      }

      message ConfigureScreens {
      }

      message EditLayouts {
      }

      oneof Component {
        .rv.analytics.UI.LowerRight.Stage.Shown shown = 1;
        .rv.analytics.UI.LowerRight.Stage.ChangeLayout change_layout = 2;
        .rv.analytics.UI.LowerRight.Stage.MessageState message_state = 3;
        .rv.analytics.UI.LowerRight.Stage.ConfigureScreens configure_screens = 4;
        .rv.analytics.UI.LowerRight.Stage.EditLayouts edit_layouts = 5;
      }
    }

    message AudioBin {
    }

    message Macros {
      message Shown {
      }

      message Trigger {
      }

      message Create {
      }

      message Delete {
      }

      oneof Component {
        .rv.analytics.UI.LowerRight.Macros.Shown shown = 1;
        .rv.analytics.UI.LowerRight.Macros.Trigger trigger = 2;
        .rv.analytics.UI.LowerRight.Macros.Create create = 3;
        .rv.analytics.UI.LowerRight.Macros.Delete delete = 4;
      }
    }

    oneof Component {
      .rv.analytics.UI.LowerRight.Timers timers = 1;
      .rv.analytics.UI.LowerRight.Messages messages = 2;
      .rv.analytics.UI.LowerRight.Props props = 3;
      .rv.analytics.UI.LowerRight.Stage stage = 4;
      .rv.analytics.UI.LowerRight.AudioBin audio_bin = 5;
      .rv.analytics.UI.LowerRight.Macros macros = 6;
    }
  }

  message TextInspector {
    message Shown {
    }

    message Foreground {
      enum FillType {
        FILL_TYPE_UNKNOWN = 0;
        FILL_TYPE_SOLID = 1;
        FILL_TYPE_GRADIENT = 2;
      }

      .rv.analytics.UI.TextInspector.Foreground.FillType fill_type = 1;
      .rv.analytics.UI.TextInspector.SelectionMode selection_mode = 2;
    }

    message UnderlineColor {
      bool is_enabled = 1;
      .rv.analytics.UI.TextInspector.SelectionMode selection_mode = 2;
    }

    message BackgroundColor {
      enum ColorType {
        COLOR_TYPE_UNKNOWN = 0;
        COLOR_TYPE_CLEAR = 1;
        COLOR_TYPE_OTHER = 2;
      }

      .rv.analytics.UI.TextInspector.BackgroundColor.ColorType color_type = 1;
      .rv.analytics.UI.TextInspector.SelectionMode selection_mode = 2;
    }

    message ScrollingText {
      message Enable {
        bool enabled = 1;
      }

      oneof Component {
        .rv.analytics.UI.TextInspector.ScrollingText.Enable enable = 1;
      }
    }

    message LineTransform {
      enum TransformType {
        TRANSFORM_TYPE_UNKNOWN = 0;
        TRANSFORM_TYPE_NONE = 1;
        TRANSFORM_TYPE_REMOVE_LINE_RETURNS = 2;
        TRANSFORM_TYPE_REPLACE_LINE_RETURNS = 3;
        TRANSFORM_TYPE_ONE_WORD_PER_LINE = 4;
        TRANSFORM_TYPE_ONE_CHARACTER_PER_LINE = 5;
      }

      .rv.analytics.UI.TextInspector.LineTransform.TransformType transform_type = 1;
    }

    enum SelectionMode {
      SELECTION_MODE_UNKNOWN = 0;
      SELECTION_MODE_OBJECT = 1;
      SELECTION_MODE_RANGE = 2;
    }

    oneof Component {
      .rv.analytics.UI.TextInspector.Shown shown = 1;
      .rv.analytics.UI.TextInspector.Foreground foreground = 2;
      .rv.analytics.UI.TextInspector.UnderlineColor underline_color = 3;
      .rv.analytics.UI.TextInspector.BackgroundColor background_color = 4;
      .rv.analytics.UI.TextInspector.ScrollingText scrolling_text = 5;
      .rv.analytics.UI.TextInspector.LineTransform line_transform = 6;
    }
  }

  message Show {
    message SlideLabel {
      message Shown {
      }

      message Change {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_CONTEXT_MENU = 1;
          SOURCE_POPOVER = 2;
        }

        int32 number_of_slides = 1;
        .rv.analytics.UI.Show.SlideLabel.Change.Source source = 2;
      }

      oneof Component {
        .rv.analytics.UI.Show.SlideLabel.Shown shown = 1;
        .rv.analytics.UI.Show.SlideLabel.Change change = 2;
      }
    }

    oneof Component {
      .rv.analytics.UI.Show.SlideLabel slide_label = 1;
    }
  }

  message InAppStore {
    message Trial {
      message Shown {
      }

      message Complete {
        enum Result {
          RESULT_UNKNOWN = 0;
          RESULT_SUCCESS = 1;
          RESULT_EARLY_EXIT = 2;
        }

        .rv.analytics.UI.InAppStore.Trial.Complete.Result result = 1;
      }

      oneof Component {
        .rv.analytics.UI.InAppStore.Trial.Shown shown = 1;
        .rv.analytics.UI.InAppStore.Trial.Complete complete = 2;
      }
    }

    oneof Component {
      .rv.analytics.UI.InAppStore.Trial trial = 1;
    }
  }

  message Editor {
    message Overlay {
      message Shown {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_DOUBLE_CLICK = 1;
          SOURCE_CONTEXTUAL_MENU = 2;
          SOURCE_PLUS_BUTTON_MENU = 3;
        }

        .rv.analytics.UI.Editor.Overlay.Shown.Source source = 1;
      }

      message Closed {
        enum Source {
          SOURCE_UNKNOWN = 0;
          SOURCE_CLICK_OFF_ELEMENT = 1;
          SOURCE_ESCAPE_KEY = 2;
          SOURCE_CLOSE_BUTTON = 3;
        }

        .rv.analytics.UI.Editor.Overlay.Closed.Source source = 1;
      }

      oneof Component {
        .rv.analytics.UI.Editor.Overlay.Shown shown = 1;
        .rv.analytics.UI.Editor.Overlay.Closed closed = 2;
      }
    }

    oneof Component {
      .rv.analytics.UI.Editor.Overlay overlay = 1;
    }
  }

  message WhatsNew {
    message Viewed {
      string version = 1;
      string resource_name = 2;
      int32 view_time = 3;
    }

    oneof Component {
      .rv.analytics.UI.WhatsNew.Viewed viewed = 1;
    }
  }

  message ClearGroups {
    message Shown {
      enum Source {
        SOURCE_UNKNOWN = 0;
        SOURCE_APPLICATION_MENU = 1;
        SOURCE_PREVIEW_MENU = 2;
        SOURCE_ACTION_MENU = 3;
      }

      .rv.analytics.UI.ClearGroups.Shown.Source source = 1;
    }

    message Create {
    }

    message Delete {
    }

    message Group {
      message ChangeVisibility {
        enum Visibility {
          VISIBILITY_UNKNOWN = 0;
          VISIBILITY_SHOWN = 1;
          VISIBILITY_HIDDEN = 2;
        }

        .rv.analytics.UI.ClearGroups.Group.ChangeVisibility.Visibility visibility = 1;
      }

      message ChangeIcon {
        enum IconType {
          ICON_TYPE_UNKNOWN = 0;
          ICON_TYPE_DEFAULT = 1;
          ICON_TYPE_CUSTOM = 2;
        }

        .rv.analytics.UI.ClearGroups.Group.ChangeIcon.IconType icon_type = 1;
        bool is_tinted = 2;
      }

      oneof Component {
        .rv.analytics.UI.ClearGroups.Group.ChangeVisibility change_visibility = 1;
        .rv.analytics.UI.ClearGroups.Group.ChangeIcon change_icon = 2;
      }
    }

    oneof Component {
      .rv.analytics.UI.ClearGroups.Shown shown = 1;
      .rv.analytics.UI.ClearGroups.Create create = 2;
      .rv.analytics.UI.ClearGroups.Delete delete = 3;
      .rv.analytics.UI.ClearGroups.Group group = 4;
    }
  }

  message PreviewArea {
    message ClearGroups {
      message Trigger {
      }

      message Changed {
        int32 count = 1;
      }

      oneof Component {
        .rv.analytics.UI.PreviewArea.ClearGroups.Trigger trigger = 1;
        .rv.analytics.UI.PreviewArea.ClearGroups.Changed changed = 2;
      }
    }

    oneof Component {
      .rv.analytics.UI.PreviewArea.ClearGroups clear_groups = 1;
    }
  }

  message Placeholder {
    message Link {
      enum Type {
        TYPE_UNKNOWN = 0;
        TYPE_PRESENTATION = 1;
        TYPE_MEDIA = 2;
        TYPE_EXTERNAL_PRESENTATION = 3;
      }

      enum Source {
        SOURCE_UNKNOWN = 0;
        SOURCE_QUICK_SEARCH = 1;
        SOURCE_IMPORT_BUTTON = 2;
        SOURCE_CREATE_BUTTON = 3;
        SOURCE_DRAG_DROP = 4;
        SOURCE_AUTOMATIC = 5;
      }

      .rv.analytics.UI.Placeholder.Link.Type link_type = 1;
      .rv.analytics.UI.Placeholder.Link.Source link_source = 2;
    }

    message Unlink {
    }

    oneof Component {
      .rv.analytics.UI.Placeholder.Link link = 1;
      .rv.analytics.UI.Placeholder.Unlink unlink = 2;
    }
  }

  message PlanningCenterLive {
    message Shown {
      enum WindowType {
        WINDOW_TYPE_UNKNOWN = 0;
        WINDOW_TYPE_DOCKED = 1;
        WINDOW_TYPE_FLOATING = 2;
      }

      .rv.analytics.UI.PlanningCenterLive.Shown.WindowType window_type = 1;
    }

    oneof Component {
      .rv.analytics.UI.PlanningCenterLive.Shown shown = 1;
    }
  }

  message NetworkGroup {
    message Create {
    }

    message Add {
    }

    message Join {
    }

    message Invite {
      bool did_accept = 1;
    }

    message Leave {
    }

    message Remove {
    }

    oneof Component {
      .rv.analytics.UI.NetworkGroup.Create create = 1;
      .rv.analytics.UI.NetworkGroup.Add add = 2;
      .rv.analytics.UI.NetworkGroup.Join join = 3;
      .rv.analytics.UI.NetworkGroup.Invite invite = 4;
      .rv.analytics.UI.NetworkGroup.Leave leave = 5;
      .rv.analytics.UI.NetworkGroup.Remove remove = 6;
    }
  }

  message CCLI {
    message Report {
      message Shown {
      }

      message Reset {
      }

      message Export {
      }

      oneof Component {
        .rv.analytics.UI.CCLI.Report.Shown shown = 1;
        .rv.analytics.UI.CCLI.Report.Reset reset = 2;
        .rv.analytics.UI.CCLI.Report.Export export = 3;
      }
    }

    .rv.analytics.UI.CCLI.Report report = 1;
  }

  message Capture {
    message Shown {
      enum Source {
        SOURCE_UNKNOWN = 0;
        SOURCE_TOOLBAR = 1;
        SOURCE_ACTION_POPOVER = 2;
        SOURCE_ACTION_CONTEXTUAL_MENU = 3;
        SOURCE_CALENDAR = 4;
        SOURCE_PREFERENCES_RESI = 5;
        SOURCE_MAIN_MENU = 6;
      }

      .rv.analytics.UI.Capture.Shown.Source source = 1;
    }

    oneof Component {
      .rv.analytics.UI.Capture.Shown shown = 1;
    }
  }

  message WelcomeToProPresenter {
    message Shown {
      enum Source {
        SOURCE_FIRST_LAUNCH = 0;
        SOURCE_APPLICATION_MENU = 1;
      }

      .rv.analytics.UI.WelcomeToProPresenter.Shown.Source source = 1;
    }

    message Migration {
    }

    message ScreenConfigurationHelp {
    }

    message DownloadSampleContent {
    }

    message UserGroup {
    }

    message Tutorials {
    }

    message KnowledgeBase {
    }

    message Blog {
    }

    message Instagram {
    }

    message Facebook {
    }

    oneof Component {
      .rv.analytics.UI.WelcomeToProPresenter.Shown shown = 1;
      .rv.analytics.UI.WelcomeToProPresenter.Migration migration = 2;
      .rv.analytics.UI.WelcomeToProPresenter.ScreenConfigurationHelp screen_configuration_help = 3;
      .rv.analytics.UI.WelcomeToProPresenter.DownloadSampleContent download_sample_content = 4;
      .rv.analytics.UI.WelcomeToProPresenter.UserGroup user_group = 5;
      .rv.analytics.UI.WelcomeToProPresenter.Tutorials tutorials = 6;
      .rv.analytics.UI.WelcomeToProPresenter.KnowledgeBase knowledge_base = 7;
      .rv.analytics.UI.WelcomeToProPresenter.Blog blog = 8;
      .rv.analytics.UI.WelcomeToProPresenter.Instagram instagram = 9;
      .rv.analytics.UI.WelcomeToProPresenter.Facebook facebook = 10;
    }
  }

  message TestPattern {
    message Shown {
      enum Source {
        SOURCE_APPLICATION_MENU = 0;
        SOURCE_SCREEN_CONFIGURATION = 1;
      }

      .rv.analytics.UI.TestPattern.Shown.Source source = 1;
    }

    oneof Component {
      .rv.analytics.UI.TestPattern.Shown shown = 1;
    }
  }

  message Preferences {
    message CustomLogo {
      bool has_logo = 1;
    }

    oneof Component {
      .rv.analytics.UI.Preferences.CustomLogo custom_logo = 1;
    }
  }

  oneof Component {
    .rv.analytics.UI.QuickSearch quick_search = 1;
    .rv.analytics.UI.Toolbar toolbar = 2;
    .rv.analytics.UI.MainView main_view = 3;
    .rv.analytics.UI.Looks looks = 4;
    .rv.analytics.UI.ScreenConfiguration screen_configuration = 5;
    .rv.analytics.UI.LowerRight lower_right = 6;
    .rv.analytics.UI.TextInspector text_inspector = 7;
    .rv.analytics.UI.Show show = 8;
    .rv.analytics.UI.InAppStore in_app_store = 9;
    .rv.analytics.UI.Editor editor = 10;
    .rv.analytics.UI.WhatsNew whats_new = 11;
    .rv.analytics.UI.ClearGroups clear_groups = 12;
    .rv.analytics.UI.PreviewArea preview_area = 13;
    .rv.analytics.UI.Placeholder placeholder = 14;
    .rv.analytics.UI.PlanningCenterLive planning_center_live = 15;
    .rv.analytics.UI.NetworkGroup network_group = 16;
    .rv.analytics.UI.CCLI ccli = 17;
    .rv.analytics.UI.Capture capture = 18;
    .rv.analytics.UI.WelcomeToProPresenter welcomeToProPresenter = 19;
    .rv.analytics.UI.TestPattern test_pattern = 20;
    .rv.analytics.UI.Preferences preferences = 21;
  }
}

