EMMA Coverage Report (generated Fri Aug 23 16:39:17 PDT 2013)
[all classes][org.chromium.chrome.browser]

COVERAGE SUMMARY FOR SOURCE FILE [IntentHelper.java]

nameclass, %method, %block, %line, %
IntentHelper.java0%   (0/1)0%   (0/2)0%   (0/109)0%   (0/24)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class IntentHelper0%   (0/1)0%   (0/2)0%   (0/109)0%   (0/24)
IntentHelper (): void 0%   (0/1)0%   (0/3)0%   (0/1)
sendEmail (Context, String, String, String, String, String): void 0%   (0/1)0%   (0/106)0%   (0/23)

1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4 
5package org.chromium.chrome.browser;
6 
7import android.accounts.Account;
8import android.accounts.AccountManager;
9import android.content.Context;
10import android.content.Intent;
11import android.net.Uri;
12import android.text.Html;
13import android.text.TextUtils;
14import android.util.Patterns;
15 
16import org.chromium.base.CalledByNative;
17 
18import java.io.File;
19import java.util.HashSet;
20import java.util.Set;
21import java.util.regex.Pattern;
22 
23/**
24 * Helper for issuing intents to the android framework.
25 */
26public abstract class IntentHelper {
27 
28    private IntentHelper() {}
29 
30    /**
31     * Triggers a send email intent.  If no application has registered to receive these intents,
32     * this will fail silently.
33     *
34     * @param context The context for issuing the intent.
35     * @param email The email address to send to.
36     * @param subject The subject of the email.
37     * @param body The body of the email.
38     * @param chooserTitle The title of the activity chooser.
39     * @param fileToAttach The file name of the attachment.
40     */
41    @CalledByNative
42    static void sendEmail(Context context, String email, String subject, String body,
43            String chooserTitle, String fileToAttach) {
44        Set<String> possibleEmails = new HashSet<String>();
45 
46        if (!TextUtils.isEmpty(email)) {
47            possibleEmails.add(email);
48        } else {
49            Pattern emailPattern = Patterns.EMAIL_ADDRESS;
50            Account[] accounts = AccountManager.get(context).getAccounts();
51            for (Account account : accounts) {
52                if (emailPattern.matcher(account.name).matches()) {
53                    possibleEmails.add(account.name);
54                }
55            }
56        }
57 
58        Intent send = new Intent(Intent.ACTION_SEND);
59        send.setType("message/rfc822");
60        if (possibleEmails.size() != 0) {
61            send.putExtra(Intent.EXTRA_EMAIL,
62                    possibleEmails.toArray(new String[possibleEmails.size()]));
63        }
64        send.putExtra(Intent.EXTRA_SUBJECT, subject);
65        send.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body));
66        if (!TextUtils.isEmpty(fileToAttach)) {
67            File fileIn = new File(fileToAttach);
68            send.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(fileIn));
69        }
70 
71        try {
72            Intent chooser = Intent.createChooser(send, chooserTitle);
73            // we start this activity outside the main activity.
74            chooser.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
75            context.startActivity(chooser);
76        } catch (android.content.ActivityNotFoundException ex) {
77            // If no app handles it, do nothing.
78        }
79    }
80}

[all classes][org.chromium.chrome.browser]
EMMA 2.0.5312 (C) Vladimir Roubtsov