Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(257)

Unified Diff: ios/chrome/widget_extension/widget_view_controller.mm

Issue 2814783003: Rename widget to search widget and use new bundleid to always build. (Closed)
Patch Set: seems I didn't actually delete widget_view_controller... Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ios/chrome/widget_extension/widget_view_controller.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/widget_extension/widget_view_controller.mm
diff --git a/ios/chrome/widget_extension/widget_view_controller.mm b/ios/chrome/widget_extension/widget_view_controller.mm
deleted file mode 100644
index 141cc231832d6d646736c8bcb5ee0fc903cee702..0000000000000000000000000000000000000000
--- a/ios/chrome/widget_extension/widget_view_controller.mm
+++ /dev/null
@@ -1,222 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "ios/chrome/widget_extension/widget_view_controller.h"
-
-#import <NotificationCenter/NotificationCenter.h>
-
-#include "base/ios/ios_util.h"
-#include "base/mac/foundation_util.h"
-#include "base/strings/sys_string_conversions.h"
-#include "components/open_from_clipboard/clipboard_recent_content_impl_ios.h"
-#include "ios/chrome/common/app_group/app_group_constants.h"
-#import "ios/chrome/widget_extension/widget_view.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-namespace {
-// Using GURL in the extension is not wanted as it includes ICU which makes the
-// extension binary much larger; therefore, ios/chrome/common/x_callback_url.h
-// cannot be used. This class makes a very basic use of x-callback-url, so no
-// full implementation is required.
-NSString* const kXCallbackURLHost = @"x-callback-url";
-} // namespace
-
-@interface WidgetViewController ()<WidgetViewActionTarget>
-@property(nonatomic, weak) WidgetView* widgetView;
-@property(nonatomic, strong) NSURL* copiedURL;
-@property(nonatomic, strong)
- ClipboardRecentContentImplIOS* clipboardRecentContent;
-
-// Updates the widget with latest data from the clipboard. Returns whether any
-// visual updates occured.
-- (BOOL)updateWidget;
-// Opens the main application with the given |command|.
-- (void)openAppWithCommand:(NSString*)command;
-// Opens the main application with the given |command| and |parameter|.
-- (void)openAppWithCommand:(NSString*)command parameter:(NSString*)parameter;
-// Returns the dictionary of commands to pass via user defaults to open the main
-// application for a given |command| and |parameter|.
-+ (NSDictionary*)dictForCommand:(NSString*)command
- parameter:(NSString*)parameter;
-
-@end
-
-@implementation WidgetViewController
-
-@synthesize widgetView = _widgetView;
-@synthesize copiedURL = _copiedURL;
-@synthesize clipboardRecentContent = _clipboardRecentContent;
-
-- (instancetype)init {
- self = [super init];
- if (self) {
- _clipboardRecentContent = [[ClipboardRecentContentImplIOS alloc]
- initWithMaxAge:1 * 60 * 60
- authorizedSchemes:[NSSet setWithObjects:@"http", @"https", nil]
- userDefaults:app_group::GetGroupUserDefaults()
- delegate:nil];
- }
- return self;
-}
-
-#pragma mark - UIViewController
-
-- (void)viewDidLoad {
- [super viewDidLoad];
-
- // A local variable is necessary here as the property is declared weak and the
- // object would be deallocated before being retained by the addSubview call.
- WidgetView* widgetView = [[WidgetView alloc] initWithActionTarget:self];
- self.widgetView = widgetView;
- [self.view addSubview:self.widgetView];
-
- if (base::ios::IsRunningOnIOS10OrLater()) {
- self.extensionContext.widgetLargestAvailableDisplayMode =
- NCWidgetDisplayModeExpanded;
- }
-
- self.widgetView.translatesAutoresizingMaskIntoConstraints = NO;
-
- NSLayoutConstraint* heightAnchor = [self.widgetView.heightAnchor
- constraintEqualToAnchor:self.view.heightAnchor];
- heightAnchor.priority = 900;
-
- [NSLayoutConstraint activateConstraints:@[
- [self.widgetView.leadingAnchor
- constraintEqualToAnchor:self.view.leadingAnchor],
- [self.widgetView.widthAnchor constraintEqualToAnchor:self.view.widthAnchor],
- [self.widgetView.trailingAnchor
- constraintEqualToAnchor:self.view.trailingAnchor],
- heightAnchor,
- [self.widgetView.topAnchor constraintEqualToAnchor:self.view.topAnchor],
- ]];
-}
-
-- (void)viewWillAppear:(BOOL)animated {
- [super viewWillAppear:animated];
- [self updateWidget];
-}
-
-- (void)widgetPerformUpdateWithCompletionHandler:
- (void (^)(NCUpdateResult))completionHandler {
- completionHandler([self updateWidget] ? NCUpdateResultNewData
- : NCUpdateResultNoData);
-}
-
-- (BOOL)updateWidget {
- NSURL* url = [_clipboardRecentContent recentURLFromClipboard];
-
- if (![url isEqual:self.copiedURL]) {
- self.copiedURL = url;
- [self.widgetView updateCopiedURL:self.copiedURL.absoluteString];
- return YES;
- }
- return NO;
-}
-
-#pragma mark - NCWidgetProviding
-
-- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode
- withMaximumSize:(CGSize)maxSize {
- CGSize fittingSize = [self.widgetView
- systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
- if (fittingSize.height > maxSize.height) {
- self.preferredContentSize = maxSize;
- } else {
- self.preferredContentSize = fittingSize;
- }
-}
-
-#pragma mark - WidgetViewActionTarget
-
-- (void)openSearch:(id)sender {
- [self openAppWithCommand:base::SysUTF8ToNSString(
- app_group::kChromeAppGroupFocusOmniboxCommand)];
-}
-
-- (void)openIncognito:(id)sender {
- [self
- openAppWithCommand:base::SysUTF8ToNSString(
- app_group::kChromeAppGroupIncognitoSearchCommand)];
-}
-
-- (void)openVoice:(id)sender {
- [self openAppWithCommand:base::SysUTF8ToNSString(
- app_group::kChromeAppGroupVoiceSearchCommand)];
-}
-
-- (void)openQRCode:(id)sender {
- [self openAppWithCommand:base::SysUTF8ToNSString(
- app_group::kChromeAppGroupQRScannerCommand)];
-}
-
-- (void)openCopiedURL:(id)sender {
- DCHECK(self.copiedURL);
- [self openAppWithCommand:base::SysUTF8ToNSString(
- app_group::kChromeAppGroupOpenURLCommand)
- parameter:self.copiedURL.absoluteString];
-}
-
-#pragma mark - internal
-
-- (void)openAppWithCommand:(NSString*)command {
- return [self openAppWithCommand:command parameter:nil];
-}
-
-- (void)openAppWithCommand:(NSString*)command parameter:(NSString*)parameter {
- NSUserDefaults* sharedDefaults =
- [[NSUserDefaults alloc] initWithSuiteName:app_group::ApplicationGroup()];
- NSString* defaultsKey =
- base::SysUTF8ToNSString(app_group::kChromeAppGroupCommandPreference);
- [sharedDefaults setObject:[WidgetViewController dictForCommand:command
- parameter:parameter]
- forKey:defaultsKey];
- [sharedDefaults synchronize];
-
- NSString* scheme = base::mac::ObjCCast<NSString>([[NSBundle mainBundle]
- objectForInfoDictionaryKey:@"KSChannelChromeScheme"]);
- if (!scheme)
- return;
-
- NSURLComponents* urlComponents = [NSURLComponents new];
- urlComponents.scheme = scheme;
- urlComponents.host = kXCallbackURLHost;
- urlComponents.path = [NSString
- stringWithFormat:@"/%@", base::SysUTF8ToNSString(
- app_group::kChromeAppGroupXCallbackCommand)];
-
- NSURL* openURL = [urlComponents URL];
- [self.extensionContext openURL:openURL completionHandler:nil];
-}
-
-+ (NSDictionary*)dictForCommand:(NSString*)command
- parameter:(NSString*)parameter {
- NSString* timePrefKey =
- base::SysUTF8ToNSString(app_group::kChromeAppGroupCommandTimePreference);
- NSString* appPrefKey =
- base::SysUTF8ToNSString(app_group::kChromeAppGroupCommandAppPreference);
- NSString* commandPrefKey = base::SysUTF8ToNSString(
- app_group::kChromeAppGroupCommandCommandPreference);
-
- if (parameter) {
- NSString* paramPrefKey = base::SysUTF8ToNSString(
- app_group::kChromeAppGroupCommandParameterPreference);
- return @{
- timePrefKey : [NSDate date],
- appPrefKey : @"TodayExtension",
- commandPrefKey : command,
- paramPrefKey : parameter,
- };
- }
- return @{
- timePrefKey : [NSDate date],
- appPrefKey : @"TodayExtension",
- commandPrefKey : command,
- };
-}
-
-@end
« no previous file with comments | « ios/chrome/widget_extension/widget_view_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698