|  | // Copyright 2013 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. | 
|  |  | 
|  | #include "ios/chrome/browser/ui/show_mail_composer_util.h" | 
|  |  | 
|  | #include <UIKit/UIKit.h> | 
|  |  | 
|  | #include "base/logging.h" | 
|  | #include "base/mac/scoped_nsobject.h" | 
|  | #include "base/strings/sys_string_conversions.h" | 
|  | #include "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h" | 
|  | #include "ios/chrome/browser/ui/commands/show_mail_composer_command.h" | 
|  |  | 
|  | void ShowMailComposer(const base::string16& to_recipient, | 
|  | const base::string16& subject, | 
|  | const base::string16& body, | 
|  | const base::string16& title, | 
|  | const base::FilePath& text_file_to_attach, | 
|  | int email_not_configured_alert_title_id, | 
|  | int email_not_configured_alert_message_id) { | 
|  | base::scoped_nsobject<ShowMailComposerCommand> | 
|  | command([[ShowMailComposerCommand alloc] | 
|  | initWithToRecipient:base::SysUTF16ToNSString(to_recipient) | 
|  | subject:base::SysUTF16ToNSString(subject) | 
|  | body:base::SysUTF16ToNSString(body) | 
|  | emailNotConfiguredAlertTitleId:email_not_configured_alert_title_id | 
|  | emailNotConfiguredAlertMessageId:email_not_configured_alert_message_id]); | 
|  | [command setTextFileToAttach:text_file_to_attach]; | 
|  | UIWindow* main_window = [[UIApplication sharedApplication] keyWindow]; | 
|  | DCHECK(main_window); | 
|  | [main_window.rootViewController chromeExecuteCommand:command]; | 
|  | } |