blob: 2f7cc8fae9cbe0f6b92bfb5c56e9e8951da79a8c [file] [log] [blame]
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "components/autofill/ios/browser/form_suggestion.h"
#import <optional>
#import "components/autofill/ios/form_util/form_activity_params.h"
@implementation FormSuggestion
- (instancetype)initWithValue:(NSString*)value
minorValue:(NSString*)minorValue
displayDescription:(NSString*)displayDescription
icon:(UIImage*)icon
type:(autofill::SuggestionType)type
payload:(autofill::Suggestion::Payload)payload
fieldByFieldFillingTypeUsed:(autofill::FieldType)fieldByFieldFillingTypeUsed
requiresReauth:(BOOL)requiresReauth
acceptanceA11yAnnouncement:(NSString*)acceptanceA11yAnnouncement
metadata:(FormSuggestionMetadata)metadata
params:
(std::optional<autofill::FormActivityParams>)params
provider:(id<FormSuggestionProvider>)provider
featureForIPH:(SuggestionFeatureForIPH)featureForIPH
suggestionIconType:(SuggestionIconType)suggestionIconType {
self = [super init];
if (self) {
_value = [value copy];
_minorValue = [minorValue copy];
_displayDescription = [displayDescription copy];
_icon = [icon copy];
_type = type;
_payload = payload;
_fieldByFieldFillingTypeUsed = fieldByFieldFillingTypeUsed;
_requiresReauth = requiresReauth;
_acceptanceA11yAnnouncement = [acceptanceA11yAnnouncement copy];
_metadata = metadata;
_params = params;
_provider = provider;
_featureForIPH = featureForIPH;
_suggestionIconType = suggestionIconType;
}
return self;
}
+ (FormSuggestion*)suggestionWithValue:(NSString*)value
displayDescription:(NSString*)displayDescription
icon:(UIImage*)icon
type:(autofill::SuggestionType)type
payload:(autofill::Suggestion::Payload)payload
requiresReauth:(BOOL)requiresReauth
acceptanceA11yAnnouncement:(NSString*)acceptanceA11yAnnouncement
metadata:(FormSuggestionMetadata)metadata {
return
[[FormSuggestion alloc] initWithValue:value
minorValue:nil
displayDescription:displayDescription
icon:icon
type:type
payload:payload
fieldByFieldFillingTypeUsed:autofill::FieldType::EMPTY_TYPE
requiresReauth:requiresReauth
acceptanceA11yAnnouncement:acceptanceA11yAnnouncement
metadata:metadata
params:std::nullopt
provider:nil
featureForIPH:SuggestionFeatureForIPH::kUnknown
suggestionIconType:SuggestionIconType::kNone];
}
+ (FormSuggestion*)suggestionWithValue:(NSString*)value
minorValue:(NSString*)minorValue
displayDescription:(NSString*)displayDescription
icon:(UIImage*)icon
type:(autofill::SuggestionType)type
payload:(autofill::Suggestion::Payload)payload
fieldByFieldFillingTypeUsed:
(autofill::FieldType)fieldByFieldFillingTypeUsed
requiresReauth:(BOOL)requiresReauth
acceptanceA11yAnnouncement:(NSString*)acceptanceA11yAnnouncement {
return
[[FormSuggestion alloc] initWithValue:value
minorValue:minorValue
displayDescription:displayDescription
icon:icon
type:type
payload:payload
fieldByFieldFillingTypeUsed:fieldByFieldFillingTypeUsed
requiresReauth:requiresReauth
acceptanceA11yAnnouncement:acceptanceA11yAnnouncement
metadata:FormSuggestionMetadata()
params:std::nullopt
provider:nil
featureForIPH:SuggestionFeatureForIPH::kUnknown
suggestionIconType:SuggestionIconType::kNone];
}
+ (FormSuggestion*)suggestionWithValue:(NSString*)value
displayDescription:(NSString*)displayDescription
icon:(UIImage*)icon
type:(autofill::SuggestionType)type
payload:(autofill::Suggestion::Payload)payload
requiresReauth:(BOOL)requiresReauth {
return
[[FormSuggestion alloc] initWithValue:value
minorValue:nil
displayDescription:displayDescription
icon:icon
type:type
payload:payload
fieldByFieldFillingTypeUsed:autofill::FieldType::EMPTY_TYPE
requiresReauth:requiresReauth
acceptanceA11yAnnouncement:nil
metadata:FormSuggestionMetadata()
params:std::nullopt
provider:nil
featureForIPH:SuggestionFeatureForIPH::kUnknown
suggestionIconType:SuggestionIconType::kNone];
}
+ (FormSuggestion*)copy:(FormSuggestion*)formSuggestionToCopy
andSetParams:(std::optional<autofill::FormActivityParams>)params
provider:(id<FormSuggestionProvider>)provider {
return [[FormSuggestion alloc]
initWithValue:formSuggestionToCopy.value
minorValue:formSuggestionToCopy.minorValue
displayDescription:formSuggestionToCopy.displayDescription
icon:formSuggestionToCopy.icon
type:formSuggestionToCopy.type
payload:formSuggestionToCopy.payload
fieldByFieldFillingTypeUsed:formSuggestionToCopy
.fieldByFieldFillingTypeUsed
requiresReauth:formSuggestionToCopy.requiresReauth
acceptanceA11yAnnouncement:formSuggestionToCopy
.acceptanceA11yAnnouncement
metadata:formSuggestionToCopy.metadata
params:params
provider:provider
featureForIPH:formSuggestionToCopy.featureForIPH
suggestionIconType:formSuggestionToCopy.suggestionIconType];
}
@end