chromium/ios/chrome/browser/incognito_reauth/ui_bundled/incognito_reauth_util.mm

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

#import "ios/chrome/browser/incognito_reauth/ui_bundled/incognito_reauth_util.h"

#import <LocalAuthentication/LocalAuthentication.h>
#import "ios/chrome/grit/ios_strings.h"
#import "ui/base/l10n/l10n_util.h"

NSString* BiometricAuthenticationTypeString() {
  LAContext* ctx = [[LAContext alloc] init];
  // Call canEvaluatePolicy:error: once to populate biometrics type
  NSError* error;
  [ctx canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                   error:&error];
  if (error.code == LAErrorBiometryNotAvailable ||
      error.code == LAErrorBiometryNotEnrolled) {
    return l10n_util::GetNSString(IDS_IOS_INCOGNITO_REAUTH_PASSCODE);
  }

  switch (ctx.biometryType) {
    case LABiometryTypeFaceID:
      return @"Face ID";
    case LABiometryTypeTouchID:
      return @"Touch ID";
    default:
      return l10n_util::GetNSString(IDS_IOS_INCOGNITO_REAUTH_PASSCODE);
  }
}