chromium/ios/chrome/browser/ui/lens/lens_availability.h

// Copyright 2021 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_UI_LENS_LENS_AVAILABILITY_H_
#define IOS_CHROME_BROWSER_UI_LENS_LENS_AVAILABILITY_H_

#import "ios/chrome/browser/ui/lens/lens_entrypoint.h"

// Enum representing the possible Lens avaiability statuses on iOS.
// Current values should not be renumbered. Please keep in sync with
// "IOSLensSupportStatus" in src/tools/metrics/histograms/enums.xml.
enum class LensSupportStatus {
  LensSearchSupported = 0,
  NonGoogleSearchEngine = 1,
  DeviceFormFactorTablet = 2,
  DisabledByFlag = 3,
  ProviderUnsupported = 4,
  DisabledByEnterprisePolicy = 5,
  kMaxValue = DisabledByEnterprisePolicy,
};

// Histogram name for the support status of the context menu entrypoint.
extern const char kIOSLensContextMenuSupportStatusHistogramName[];

// Histogram name for the support status of the keyboard entrypoint.
extern const char kIOSLensKeyboardSupportStatusHistogramName[];

// Histogram name for the support status of the new tab page entrypoint.
extern const char kIOSLensNewTabPageSupportStatusHistogramName[];

namespace lens_availability {
// Checks for and performs UMA logging for the availability of the given
// Lens entry point and search engine default provider.
bool CheckAndLogAvailabilityForLensEntryPoint(
    LensEntrypoint entry_point,
    bool is_google_default_search_engine);
}  // namespace lens_availability

#endif  // IOS_CHROME_BROWSER_UI_LENS_LENS_AVAILABILITY_H_