| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "ios/chrome/browser/ui/activity_services/chrome_activity_item_source.h" | 5 #import "ios/chrome/browser/ui/activity_services/chrome_activity_item_source.h" |
| 6 | 6 |
| 7 #import <MobileCoreServices/MobileCoreServices.h> | 7 #import <MobileCoreServices/MobileCoreServices.h> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #import "ios/chrome/browser/ui/activity_services/activity_type_util.h" | 10 #import "ios/chrome/browser/ui/activity_services/activity_type_util.h" |
| 11 #import "ios/chrome/browser/ui/activity_services/appex_constants.h" | 11 #import "ios/chrome/browser/ui/activity_services/appex_constants.h" |
| 12 | 12 |
| 13 #if !defined(__has_feature) || !__has_feature(objc_arc) | 13 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 14 #error "This file requires ARC support." | 14 #error "This file requires ARC support." |
| 15 #endif | 15 #endif |
| 16 | 16 |
| 17 #pragma mark - UIActivityURLSource | |
| 18 | |
| 19 @interface UIActivityURLSource () { | |
| 20 // The shared subject. | |
| 21 NSString* _subject; | |
| 22 // The shared url. | |
| 23 NSURL* _url; | |
| 24 } | |
| 25 | |
| 26 @end | |
| 27 | |
| 28 @implementation UIActivityURLSource | |
| 29 | |
| 30 - (instancetype)init { | |
| 31 NOTREACHED(); | |
| 32 return nil; | |
| 33 } | |
| 34 | |
| 35 - (instancetype)initWithURL:(NSURL*)url subject:(NSString*)subject { | |
| 36 DCHECK(subject); | |
| 37 DCHECK(url); | |
| 38 self = [super init]; | |
| 39 if (self) { | |
| 40 _subject = [subject copy]; | |
| 41 _url = url; | |
| 42 } | |
| 43 return self; | |
| 44 } | |
| 45 | |
| 46 #pragma mark - UIActivityItemSource | |
| 47 | |
| 48 - (id)activityViewController:(UIActivityViewController*)activityViewController | |
| 49 itemForActivityType:(NSString*)activityType { | |
| 50 return _url; | |
| 51 } | |
| 52 | |
| 53 - (id)activityViewControllerPlaceholderItem: | |
| 54 (UIActivityViewController*)activityViewController { | |
| 55 return _url; | |
| 56 } | |
| 57 | |
| 58 - (NSString*)activityViewController: | |
| 59 (UIActivityViewController*)activityViewController | |
| 60 subjectForActivityType:(NSString*)activityType { | |
| 61 return _subject; | |
| 62 } | |
| 63 | |
| 64 @end | |
| 65 | |
| 66 #pragma mark - UIActivityTextSource | 17 #pragma mark - UIActivityTextSource |
| 67 | 18 |
| 68 @interface UIActivityTextSource () { | 19 @interface UIActivityTextSource () { |
| 69 // The shared text. | 20 // The shared text. |
| 70 NSString* _text; | 21 NSString* _text; |
| 71 } | 22 } |
| 72 | 23 |
| 73 @end | 24 @end |
| 74 | 25 |
| 75 @implementation UIActivityTextSource | 26 @implementation UIActivityTextSource |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 return _image; | 101 return _image; |
| 151 } | 102 } |
| 152 | 103 |
| 153 @end | 104 @end |
| 154 | 105 |
| 155 #pragma mark - UIActivityFindLoginActionSource | 106 #pragma mark - UIActivityFindLoginActionSource |
| 156 | 107 |
| 157 @interface UIActivityFindLoginActionSource () { | 108 @interface UIActivityFindLoginActionSource () { |
| 158 NSString* _subject; | 109 NSString* _subject; |
| 159 NSURL* _url; | 110 NSURL* _url; |
| 111 ThumbnailGeneratorBlock _thumbnailGenerator; |
| 160 } | 112 } |
| 161 @end | 113 @end |
| 162 | 114 |
| 163 @implementation UIActivityFindLoginActionSource | 115 @implementation UIActivityFindLoginActionSource |
| 164 | 116 |
| 165 - (instancetype)init { | 117 - (instancetype)init { |
| 166 NOTREACHED(); | 118 NOTREACHED(); |
| 167 return nil; | 119 return nil; |
| 168 } | 120 } |
| 169 | 121 |
| 170 - (instancetype)initWithURL:(NSURL*)url subject:(NSString*)subject { | 122 - (instancetype)initWithURL:(NSURL*)url |
| 123 subject:(NSString*)subject |
| 124 thumbnailGenerator:(ThumbnailGeneratorBlock)thumbnailGenerator { |
| 171 DCHECK(url); | 125 DCHECK(url); |
| 172 DCHECK(subject); | 126 DCHECK(subject); |
| 127 DCHECK(thumbnailGenerator); |
| 173 self = [super init]; | 128 self = [super init]; |
| 174 if (self) { | 129 if (self) { |
| 175 _url = url; | 130 _url = url; |
| 176 _subject = [subject copy]; | 131 _subject = [subject copy]; |
| 132 _thumbnailGenerator = thumbnailGenerator; |
| 177 } | 133 } |
| 178 return self; | 134 return self; |
| 179 } | 135 } |
| 180 | 136 |
| 181 #pragma mark - UIActivityItemSource | 137 #pragma mark - UIActivityItemSource |
| 182 | 138 |
| 183 - (id)activityViewControllerPlaceholderItem: | 139 - (id)activityViewControllerPlaceholderItem: |
| 184 (UIActivityViewController*)activityViewController { | 140 (UIActivityViewController*)activityViewController { |
| 185 // Return the current URL as a placeholder | 141 // Return the current URL as a placeholder |
| 186 return _url; | 142 return _url; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 // after user made a choice of which AppEx to run, this method may be called | 188 // after user made a choice of which AppEx to run, this method may be called |
| 233 // with |activityType| equals to the bundle ID of the AppEx selected. | 189 // with |activityType| equals to the bundle ID of the AppEx selected. |
| 234 // Default action is to return @"public.url" UTType. | 190 // Default action is to return @"public.url" UTType. |
| 235 if (!activityType || | 191 if (!activityType || |
| 236 activity_type_util::PasswordAppExActivityVersion(activityType)) { | 192 activity_type_util::PasswordAppExActivityVersion(activityType)) { |
| 237 return findLoginType; | 193 return findLoginType; |
| 238 } | 194 } |
| 239 return (NSString*)kUTTypeURL; | 195 return (NSString*)kUTTypeURL; |
| 240 } | 196 } |
| 241 | 197 |
| 198 - (UIImage*)activityViewController: |
| 199 (UIActivityViewController*)activityViewController |
| 200 thumbnailImageForActivityType:(UIActivityType)activityType |
| 201 suggestedSize:(CGSize)size { |
| 202 return _thumbnailGenerator(size); |
| 203 } |
| 204 |
| 242 @end | 205 @end |
| OLD | NEW |