blob: 9f68f0dd83e7d08f635844a0f65112df82ad47e4 [file] [log] [blame]
// Copyright 2023 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/ui/settings/utils/password_utils.h"
#import "base/check.h"
#import "base/strings/sys_string_conversions.h"
#import "ios/chrome/grit/ios_strings.h"
#import "ui/base/l10n/l10n_util.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
std::pair<NSString*, NSString*> GetPasswordAlertTitleAndMessageForOrigins(
NSArray<NSString*>* origins) {
DCHECK(origins.count >= 1);
NSString* title;
NSString* message;
if (origins.count == 1) {
title =
l10n_util::GetNSStringF(IDS_IOS_DELETE_PASSWORD_TITLE_FOR_SINGLE_URL,
base::SysNSStringToUTF16(origins[0]));
// Message: Your <URL 1> account won't be deleted.
message = l10n_util::GetNSStringF(
IDS_IOS_DELETE_PASSWORD_DESCRIPTION_FOR_SINGLE_URL,
base::SysNSStringToUTF16(origins[0]));
} else {
NSString* count_string =
[[NSNumber numberWithInteger:origins.count] stringValue];
title =
l10n_util::GetNSStringF(IDS_IOS_DELETE_PASSWORD_TITLE_FOR_MULTI_GROUPS,
base::SysNSStringToUTF16(count_string));
if (origins.count == 2) {
// Message: Password for <URL 1> and <URL 2> will be deleted. Your
// accounts won't be deleted.
message = l10n_util::GetNSStringF(
IDS_IOS_DELETE_PASSWORD_DESCRIPTION_FOR_TWO_URLS,
base::SysNSStringToUTF16(origins[0]),
base::SysNSStringToUTF16(origins[1]));
} else if (origins.count == 3) {
// Message: Password for <URL 1>, <URL 2> and <URL 3> will be deleted.
// Your accounts won't be deleted.
message = l10n_util::GetNSStringF(
IDS_IOS_DELETE_PASSWORD_DESCRIPTION_FOR_THREE_URLS,
base::SysNSStringToUTF16(origins[0]),
base::SysNSStringToUTF16(origins[1]),
base::SysNSStringToUTF16(origins[2]));
} else {
// Message: Password for <URL 1>, <URL 2> and <number> others will be
// deleted. Your accounts won't be deleted.
NSString* leftover_count_string =
[[NSNumber numberWithInteger:(origins.count - 2)] stringValue];
message = l10n_util::GetNSStringF(
IDS_IOS_DELETE_PASSWORD_DESCRIPTION_FOR_MULTI_URLS,
base::SysNSStringToUTF16(origins[0]),
base::SysNSStringToUTF16(origins[1]),
base::SysNSStringToUTF16(leftover_count_string));
}
}
std::pair<NSString*, NSString*> pair;
pair.first = title;
pair.second = message;
return pair;
}