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

Side by Side Diff: ios/chrome/browser/web/mailto_url_rewriter.mm

Issue 2904663003: Revert to system Mail app if current default Mail app is no longer there (Closed)
Patch Set: clarified a comment Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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/web/mailto_url_rewriter.h" 5 #import "ios/chrome/browser/web/mailto_url_rewriter.h"
6 6
7 #import "base/logging.h" 7 #import "base/logging.h"
8 #import "ios/chrome/browser/web/mailto_handler.h" 8 #import "ios/chrome/browser/web/mailto_handler.h"
9 #import "ios/chrome/browser/web/mailto_handler_gmail.h" 9 #import "ios/chrome/browser/web/mailto_handler_gmail.h"
10 #import "ios/chrome/browser/web/mailto_handler_system_mail.h" 10 #import "ios/chrome/browser/web/mailto_handler_system_mail.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 return [[_handlers allValues] 83 return [[_handlers allValues]
84 sortedArrayUsingComparator:^NSComparisonResult( 84 sortedArrayUsingComparator:^NSComparisonResult(
85 MailtoHandler* _Nonnull obj1, MailtoHandler* _Nonnull obj2) { 85 MailtoHandler* _Nonnull obj1, MailtoHandler* _Nonnull obj2) {
86 return [[obj1 appName] compare:[obj2 appName]]; 86 return [[obj1 appName] compare:[obj2 appName]];
87 }]; 87 }];
88 } 88 }
89 89
90 - (NSString*)defaultHandlerID { 90 - (NSString*)defaultHandlerID {
91 NSString* value = [[NSUserDefaults standardUserDefaults] 91 NSString* value = [[NSUserDefaults standardUserDefaults]
92 stringForKey:kMailtoDefaultHandlerKey]; 92 stringForKey:kMailtoDefaultHandlerKey];
93 return value ? value : [[self class] systemMailApp]; 93 if ([_handlers[value] isAvailable])
94 return value;
95 return [[self class] systemMailApp];
94 } 96 }
95 97
96 - (void)setDefaultHandlerID:(NSString*)appStoreID { 98 - (void)setDefaultHandlerID:(NSString*)appStoreID {
97 DCHECK([appStoreID length]); 99 DCHECK([appStoreID length]);
98 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; 100 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
99 if ([appStoreID 101 if ([appStoreID
100 isEqualToString:[defaults objectForKey:kMailtoDefaultHandlerKey]]) 102 isEqualToString:[defaults objectForKey:kMailtoDefaultHandlerKey]])
101 return; 103 return;
102 [defaults setObject:appStoreID forKey:kMailtoDefaultHandlerKey]; 104 [defaults setObject:appStoreID forKey:kMailtoDefaultHandlerKey];
103 [_observer rewriterDidChange:self]; 105 [_observer rewriterDidChange:self];
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 if ([defaults objectForKey:kMailtoDefaultHandlerKey]) 213 if ([defaults objectForKey:kMailtoDefaultHandlerKey])
212 return; 214 return;
213 215
214 NSString* const kGmailAppStoreID = @"422689480"; 216 NSString* const kGmailAppStoreID = @"422689480";
215 MailtoHandler* gmailHandler = _handlers[kGmailAppStoreID]; 217 MailtoHandler* gmailHandler = _handlers[kGmailAppStoreID];
216 if ([gmailHandler isAvailable]) 218 if ([gmailHandler isAvailable])
217 [defaults setObject:kGmailAppStoreID forKey:kMailtoDefaultHandlerKey]; 219 [defaults setObject:kGmailAppStoreID forKey:kMailtoDefaultHandlerKey];
218 } 220 }
219 221
220 @end 222 @end
OLDNEW
« no previous file with comments | « ios/chrome/browser/web/mailto_url_rewriter.h ('k') | ios/chrome/browser/web/mailto_url_rewriter_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698