blob: aca839d6cba218f3dc66f6baca0e08ca3596e397 [file] [log] [blame]
// Copyright 2019 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_COMMON_APP_GROUP_APP_GROUP_COMMAND_H_
#define IOS_CHROME_COMMON_APP_GROUP_APP_GROUP_COMMAND_H_
#import <UIKit/UIKit.h>
#import "base/ios/block_types.h"
typedef void (^URLOpenerBlock)(NSURL* URL);
// This class contains helper functions to prepare dictionary commands, place
// them in the shared NSUserDefault, and launch Chrome to execute them.
@interface AppGroupCommand : NSObject
- (instancetype)initWithSourceApp:(NSString*)sourceApp
URLOpenerBlock:(URLOpenerBlock)opener;
// Prepares a command without argument.
- (void)prepareWithCommandID:(NSString*)commandID;
// Prepares a command to open `URL`.
- (void)prepareToOpenURL:(NSURL*)URL;
// Prepares a command to open `URL` in incognito.
- (void)prepareToOpenURLInIncognito:(NSURL*)URL;
// Prepares a command to open an item in a list.
// `URL` is the URL in the item, and `index` is the index of the item in the
// list.
- (void)prepareToOpenItem:(NSURL*)URL index:(NSNumber*)index;
// Prepares a command to search for `text`.
- (void)prepareToSearchText:(NSString*)text;
// Prepares a command to incognito search for `text`.
- (void)prepareToIncognitoSearchText:(NSString*)text;
// Prepares a command to search for `image`.
- (void)prepareToSearchImageData:(NSData*)imageData
completion:(ProceduralBlock)completion;
// Prepares a command to incognito search for `image`.
- (void)prepareToIncognitoSearchImageData:(NSData*)imageData
completion:(ProceduralBlock)completion;
// Launches the main app and execute the receiver.
- (void)executeInApp;
// Launches the main app and execute the receiver for a given `gaiaID`.
- (void)executeInAppWithGaiaID:(NSString*)gaiaID;
@end
#endif // IOS_CHROME_COMMON_APP_GROUP_APP_GROUP_COMMAND_H_