summaryrefslogtreecommitdiffstats
path: root/src/com/android/email/service/EmailBroadcastReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/email/service/EmailBroadcastReceiver.java')
-rwxr-xr-x[-rw-r--r--]src/com/android/email/service/EmailBroadcastReceiver.java146
1 files changed, 145 insertions, 1 deletions
diff --git a/src/com/android/email/service/EmailBroadcastReceiver.java b/src/com/android/email/service/EmailBroadcastReceiver.java
index ce7221043..2564c46e1 100644..100755
--- a/src/com/android/email/service/EmailBroadcastReceiver.java
+++ b/src/com/android/email/service/EmailBroadcastReceiver.java
@@ -19,13 +19,157 @@ package com.android.email.service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import com.android.email.Preferences;
+import com.android.email.R;
+import com.android.email.SecurityPolicy;
+import com.android.email.provider.AccountReconciler;
+import com.android.email.provider.EmailProvider;
+import com.android.emailcommon.Logging;
+import com.android.emailcommon.VendorPolicyLoader;
+import com.android.emailcommon.provider.Account;
+import com.android.emailcommon.provider.EmailContent;
+import com.android.emailcommon.provider.EmailContent.AccountColumns;
+import com.android.emailcommon.provider.HostAuth;
+import com.android.emailcommon.provider.Mailbox;
+import com.android.mail.utils.LogUtils;
+import android.util.Log;
+
/**
* The broadcast receiver. The actual job is done in EmailBroadcastProcessor on a worker thread.
*/
public class EmailBroadcastReceiver extends BroadcastReceiver {
+
+ private static final String TAG = "EmailBroadcastReceiver";
+ private static final String ACTION_CHECK_MAIL =
+ "com.android.email.intent.action.MAIL_SERVICE_WAKEUP";
+ private static final String EXTRA_ACCOUNT = "com.android.email.intent.extra.ACCOUNT";
+ private static final String ACTION_DELETE_MESSAGE =
+ "com.android.email.intent.action.MAIL_SERVICE_DELETE_MESSAGE";
+ private static final String ACTION_MOVE_MESSAGE =
+ "com.android.email.intent.action.MAIL_SERVICE_MOVE_MESSAGE";
+ private static final String ACTION_MESSAGE_READ =
+ "com.android.email.intent.action.MAIL_SERVICE_MESSAGE_READ";
+ private static final String ACTION_SEND_PENDING_MAIL =
+ "com.android.email.intent.action.MAIL_SERVICE_SEND_PENDING";
+ private static final String EXTRA_MESSAGE_ID = "com.android.email.intent.extra.MESSAGE_ID";
+ private static final String EXTRA_MESSAGE_INFO = "com.android.email.intent.extra.MESSAGE_INFO";
+
@Override
public void onReceive(Context context, Intent intent) {
- EmailBroadcastProcessorService.processBroadcastIntent(context, intent);
+ String action = intent.getAction();
+ Log.d(TAG,"Received " + action);
+ if(ACTION_CHECK_MAIL.equals(action)) {
+ Intent i;
+ final long accountId = intent.getLongExtra(EXTRA_ACCOUNT, -1);
+ Log.d(TAG,"accountId is " + accountId);
+ final long inboxId = Mailbox.findMailboxOfType(context, accountId,
+ Mailbox.TYPE_INBOX);
+ Log.d(TAG,"inboxId is " + inboxId);
+ Mailbox mailbox = Mailbox.restoreMailboxWithId(context, inboxId);
+ if (mailbox == null) return;
+ Account account = Account.restoreAccountWithId(context, mailbox.mAccountKey);
+
+ String protocol = account.getProtocol(context);
+ Log.d(TAG,"protocol is "+protocol);
+ String legacyImapProtocol = context.getString(R.string.protocol_legacy_imap);
+ if (protocol.equals(legacyImapProtocol)) {
+ i = new Intent(context, ImapService.class);
+ } else {
+ i = new Intent(context, Pop3Service.class);
+ }
+ i.setAction(intent.getAction());
+ i.putExtra(EXTRA_ACCOUNT,
+ intent.getLongExtra(EXTRA_ACCOUNT, -1));
+ context.startService(i);
+ } else if (ACTION_DELETE_MESSAGE.equals(action)) {
+ Intent i;
+ final long messageId = intent.getLongExtra(EXTRA_MESSAGE_ID, -1);
+ Log.d(TAG,"messageId is " + messageId);
+ Account account = Account.getAccountForMessageId(context, messageId);
+ if(account == null )
+ return;
+ String protocol = account.getProtocol(context);
+ Log.d(TAG,"protocol is "+protocol + " ActId: " +account.getId());
+ String legacyImapProtocol = context.getString(R.string.protocol_legacy_imap);
+ if (protocol.equals(legacyImapProtocol)) {
+ i = new Intent(context, ImapService.class);
+ i.setAction(intent.getAction());
+ i.putExtra(EXTRA_ACCOUNT,
+ intent.getLongExtra(EXTRA_ACCOUNT, -1));
+ i.putExtra(EXTRA_MESSAGE_ID,
+ intent.getLongExtra(EXTRA_MESSAGE_ID, -1));
+ context.startService(i);
+ } else {
+ Log.i(TAG, "DELETE MESSAGE POP3 NOT Implemented");
+ }
+ } else if (ACTION_MESSAGE_READ.equals(action)) {
+ Intent i;
+ final long messageId = intent.getLongExtra(EXTRA_MESSAGE_ID, -1);
+ Log.d(TAG,"messageId is " + messageId);
+ Account account = Account.getAccountForMessageId(context, messageId);
+ if(account == null )
+ return;
+ String protocol = account.getProtocol(context);
+ Log.d(TAG,"protocol is "+protocol + " ActId: " +account.getId());
+ String legacyImapProtocol = context.getString(R.string.protocol_legacy_imap);
+ if (protocol.equals(legacyImapProtocol)) {
+ i = new Intent(context, ImapService.class);
+ i.setAction(intent.getAction());
+ i.putExtra(EXTRA_ACCOUNT,
+ intent.getLongExtra(EXTRA_ACCOUNT, -1));
+ i.putExtra(EXTRA_MESSAGE_ID,
+ intent.getLongExtra(EXTRA_MESSAGE_ID, -1));
+ i.putExtra(EXTRA_MESSAGE_INFO,
+ intent.getIntExtra(EXTRA_MESSAGE_INFO, 0));
+ context.startService(i);
+ } else {
+ Log.i(TAG, "READ MESSAGE POP3 NOT Implemented");
+ }
+ } else if (ACTION_MOVE_MESSAGE.equals(action)) {
+ Intent i;
+ final long messageId = intent.getLongExtra(EXTRA_MESSAGE_ID, -1);
+ Log.d(TAG,"messageId is " + messageId);
+ Account account = Account.getAccountForMessageId(context, messageId);
+ if(account == null )
+ return;
+ String protocol = account.getProtocol(context);
+ Log.d(TAG,"protocol is "+protocol + " ActId: " +account.getId());
+ String legacyImapProtocol = context.getString(R.string.protocol_legacy_imap);
+ if (protocol.equals(legacyImapProtocol)) {
+ i = new Intent(context, ImapService.class);
+ i.setAction(intent.getAction());
+ i.putExtra(EXTRA_ACCOUNT,
+ intent.getLongExtra(EXTRA_ACCOUNT, -1));
+ i.putExtra(EXTRA_MESSAGE_ID,
+ intent.getLongExtra(EXTRA_MESSAGE_ID, -1));
+ i.putExtra(EXTRA_MESSAGE_INFO,
+ intent.getIntExtra(EXTRA_MESSAGE_INFO, 0));
+ context.startService(i);
+ } else {
+ Log.i(TAG, "READ MESSAGE POP3 NOT Implemented");
+ }
+ } else if (ACTION_SEND_PENDING_MAIL.equals(action)) {
+ Intent i;
+ final long accountId = intent.getLongExtra(EXTRA_ACCOUNT, -1);
+ Log.d(TAG,"accountId is " + accountId);
+ Account account = Account.restoreAccountWithId(context, accountId);
+ if(account == null )
+ return;
+ String protocol = account.getProtocol(context);
+ Log.d(TAG,"protocol is "+protocol);
+ String legacyImapProtocol = context.getString(R.string.protocol_legacy_imap);
+ if (protocol.equals(legacyImapProtocol)) {
+ i = new Intent(context, ImapService.class);
+ i.setAction(intent.getAction());
+ i.putExtra(EXTRA_ACCOUNT,
+ intent.getLongExtra(EXTRA_ACCOUNT, -1));
+ context.startService(i);
+ } else {
+ Log.i(TAG, "SEND MESSAGE POP3 NOT Implemented");
+ }
+ } else {
+ EmailBroadcastProcessorService.processBroadcastIntent(context, intent);
+ }
}
}