chromium/ios/chrome/app/spotlight/actions_spotlight_manager.h

// Copyright 2016 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_APP_SPOTLIGHT_ACTIONS_SPOTLIGHT_MANAGER_H_
#define IOS_CHROME_APP_SPOTLIGHT_ACTIONS_SPOTLIGHT_MANAGER_H_

#import "ios/chrome/app/spotlight/base_spotlight_manager.h"

@class AppStartupParameters;

namespace spotlight {

// Keys for Spotlight actions.
extern const char kSpotlightActionNewTab[];
extern const char kSpotlightActionNewIncognitoTab[];
extern const char kSpotlightActionVoiceSearch[];
extern const char kSpotlightActionQRScanner[];

// Sets the correct properties for startup parameters according to the action
// specified by the `query`. Returns YES if the properties were successfully
// set. The query must represent an action and `startupParams` must not be nil.
BOOL SetStartupParametersForSpotlightAction(
    NSString* query,
    AppStartupParameters* startupParams);

}  // namespace spotlight

// Allows Chrome to add links to actions to the systemwide Spotlight search
// index.
@interface ActionsSpotlightManager : BaseSpotlightManager

// Creates an ActionsSpotlightManager.
+ (ActionsSpotlightManager*)actionsSpotlightManager;

- (instancetype)
    initWithSpotlightInterface:(SpotlightInterface*)spotlightInterface
         searchableItemFactory:(SearchableItemFactory*)searchableItemFactory;

- (instancetype)init NS_UNAVAILABLE;

// Updates the index with the Spotlight actions if the EnableSpotlightActions
// experimental flag is set. Otherwise the index is only cleared.
- (void)indexActionsWithIsGoogleDefaultSearchEngine:
    (BOOL)isGoogleDefaultSearchEngine;

@end

#endif  // IOS_CHROME_APP_SPOTLIGHT_ACTIONS_SPOTLIGHT_MANAGER_H_