chromium/ios/chrome/browser/contextual_panel/utils/contextual_panel_metrics.h

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_CONTEXTUAL_PANEL_UTILS_CONTEXTUAL_PANEL_METRICS_H_
#define IOS_CHROME_BROWSER_CONTEXTUAL_PANEL_UTILS_CONTEXTUAL_PANEL_METRICS_H_

// Values of the UMA IOS.ContextualPanel.Model.Relevance histograms. Must be
// kept up to date with IOSContextualPanelModelRelevance in enums.xml. These
// values are persisted to logs. Entries should not be renumbered and numeric
// values should never be reused.
// LINT.IfChange(ModelRelevanceType)
enum class ModelRelevanceType {
  NoData = 0,
  Low = 1,
  High = 2,
  kMaxValue = High,
};
// LINT.ThenChange(/tools/metrics/histograms/enums.xml:IOSContextualPanelModelRelevance)

// Values of the UMA IOS.ContextualPanel.InfoBlockImpression histograms. Must be
// kept up to date with IOSContextualPanelInfoBlockImpression in enums.xml.
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
// LINT.IfChange(PanelBlockImpressionType)
enum class PanelBlockImpressionType {
  NeverVisible = 0,
  VisibleAndSmallEntrypoint = 1,
  VisibleAndLoudEntrypoint = 2,
  VisibleAndOtherWasSmallEntrypoint = 3,
  VisibleAndOtherWasLoudEntrypoint = 4,
  kMaxValue = VisibleAndOtherWasLoudEntrypoint,
};
// LINT.ThenChange(/tools/metrics/histograms/enums.xml:IOSContextualPanelInfoBlockImpression)

// Values of the UMA IOS.ContextualPanel.DismissedReason histogram. Must be
// kept up to date with IOSContextualPanelDismissedReason in enums.xml.
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
// LINT.IfChange(ContextualPanelDismissedReason)
enum class ContextualPanelDismissedReason {
  UserDismissed = 0,
  TabChanged = 1,
  NavigationInitiated = 2,
  BlockInteraction = 3,
  KeyboardOpened = 4,
  kMaxValue = KeyboardOpened,
};
// LINT.ThenChange(/tools/metrics/histograms/enums.xml:IOSContextualPanelDismissedReason)

// Values of the UMA IOS.ContextualPanel.Entrypoint histograms. Must be
// kept up to date with IOSContextualPanelEntrypointInteractionType in
// enums.xml. These values are persisted to logs. Entries should not be
// renumbered and numeric values should never be reused.
// LINT.IfChange(EntrypointInteractionType)
enum class EntrypointInteractionType {
  Displayed = 0,
  Tapped = 1,
  kMaxValue = Tapped,
};
// LINT.ThenChange(/tools/metrics/histograms/enums.xml:IOSContextualPanelEntrypointInteractionType)

// Values of the UMA IOS.ContextualPanel.IPH.DismissedReason histogram (IPH here
// is an acronym for in-product help). Must be kept up to date with
// IOSContextualPanelIPHDismissedReason in enums.xml. These values are persisted
// to logs. Entries should not be renumbered and numeric values should never be
// reused.
// LINT.IfChange(ContextualPanelIPHDismissedReason)
enum class ContextualPanelIPHDismissedReason {
  Other = 0,
  UserDismissed = 1,
  TimedOut = 2,
  UserInteracted = 3,  // The user clicked on the IPH or the entrypoint.
  kMaxValue = UserInteracted,
};
// LINT.ThenChange(/tools/metrics/histograms/enums.xml:IOSContextualPanelIPHDismissedReason)

#endif  // IOS_CHROME_BROWSER_CONTEXTUAL_PANEL_UTILS_CONTEXTUAL_PANEL_METRICS_H_