summaryrefslogtreecommitdiff
path: root/provider_src
diff options
context:
space:
mode:
Diffstat (limited to 'provider_src')
-rw-r--r--provider_src/com/android/email/EmailIntentService.java6
-rw-r--r--provider_src/com/android/email/provider/EmailProvider.java44
-rw-r--r--provider_src/com/android/email/service/AttachmentService.java51
-rw-r--r--provider_src/com/android/email/service/EmailBroadcastProcessorService.java23
4 files changed, 31 insertions, 93 deletions
diff --git a/provider_src/com/android/email/EmailIntentService.java b/provider_src/com/android/email/EmailIntentService.java
index 5924c90ce..0c6d76178 100644
--- a/provider_src/com/android/email/EmailIntentService.java
+++ b/provider_src/com/android/email/EmailIntentService.java
@@ -29,12 +29,12 @@ public class EmailIntentService extends MailIntentService {
private static final String LOG_TAG = LogTag.getLogTag();
public EmailIntentService() {
- super();
+ super("EmailIntentService");
}
@Override
- protected void onHandleWork(final Intent intent) {
- super.onHandleWork(intent);
+ protected void onHandleIntent(final Intent intent) {
+ super.onHandleIntent(intent);
if (UIProvider.ACTION_UPDATE_NOTIFICATION.equals(intent.getAction())) {
final NotificationController nc =
diff --git a/provider_src/com/android/email/provider/EmailProvider.java b/provider_src/com/android/email/provider/EmailProvider.java
index aadc51b0b..00d608f30 100644
--- a/provider_src/com/android/email/provider/EmailProvider.java
+++ b/provider_src/com/android/email/provider/EmailProvider.java
@@ -1346,10 +1346,8 @@ public class EmailProvider extends ContentProvider
c = uiQuery(match, uri, projection, unseenOnly);
return c;
case UI_FOLDERS:
- // TODO(rtenneti): Enable notifications.
- // c = uiFolders(uri, projection);
- // return c;
- return null;
+ c = uiFolders(uri, projection);
+ return c;
case UI_FOLDER_LOAD_MORE:
c = uiFolderLoadMore(getMailbox(uri));
return c;
@@ -1541,8 +1539,7 @@ public class EmailProvider extends ContentProvider
}
if ((c != null) && !isTemporary()) {
- // TODO(rtenneti): Enable notifications.
- // c.setNotificationUri(getContext().getContentResolver(), uri);
+ c.setNotificationUri(getContext().getContentResolver(), uri);
}
return c;
}
@@ -2549,8 +2546,7 @@ public class EmailProvider extends ContentProvider
final Set<Uri> notifications = getBatchNotificationsSet();
setBatchNotificationsSet(null);
for (final Uri uri : notifications) {
- // TODO(rtenneti): Enable notifications.
- // context.getContentResolver().notifyChange(uri, null);
+ context.getContentResolver().notifyChange(uri, null);
}
}
}
@@ -2566,8 +2562,7 @@ public class EmailProvider extends ContentProvider
@Override
public void attachmentChanged(final Context context, final long id, final int flags) {
// The default implementation delegates to the real service.
- // TODO(rtenneti): Enable AttachmentService.
- // AttachmentService.attachmentChanged(context, id, flags);
+ AttachmentService.attachmentChanged(context, id, flags);
}
};
private EmailAttachmentService mAttachmentService = DEFAULT_ATTACHMENT_SERVICE;
@@ -3981,8 +3976,7 @@ public class EmailProvider extends ContentProvider
} finally {
accountIdCursor.close();
}
- // TODO(rtenneti): Enable notifications.
- // mc.setNotificationUri(context.getContentResolver(), UIPROVIDER_ALL_ACCOUNTS_NOTIFIER);
+ mc.setNotificationUri(context.getContentResolver(), UIPROVIDER_ALL_ACCOUNTS_NOTIFIER);
return mc;
}
@@ -4643,9 +4637,8 @@ public class EmailProvider extends ContentProvider
// Return real and virtual mailboxes alike
final Cursor rawc = db.rawQuery(genQueryAccountAllMailboxes(uiProjection),
new String[] {id});
- // TODO(rtenneti): Enable notifications.
- // rawc.setNotificationUri(context.getContentResolver(), notifyUri);
- // vc.setNotificationUri(context.getContentResolver(), notifyUri);
+ rawc.setNotificationUri(context.getContentResolver(), notifyUri);
+ vc.setNotificationUri(context.getContentResolver(), notifyUri);
if (rawc.getCount() > 0) {
c = new MergeCursor(new Cursor[]{rawc, vc});
} else {
@@ -4786,8 +4779,7 @@ public class EmailProvider extends ContentProvider
break;
}
if (notifyUri != null) {
- // TODO(rtenneti): Enable notifications.
- // c.setNotificationUri(resolver, notifyUri);
+ c.setNotificationUri(resolver, notifyUri);
}
return c;
}
@@ -5242,8 +5234,7 @@ public class EmailProvider extends ContentProvider
mailPrefs.setConversationOverviewMode(overviewMode);
}
- // TODO(rtenneti): Enable notifications.
- // c.getContentResolver().notifyChange(UIPROVIDER_ALL_ACCOUNTS_NOTIFIER, null, false);
+ c.getContentResolver().notifyChange(UIPROVIDER_ALL_ACCOUNTS_NOTIFIER, null, false);
return 1;
}
@@ -5720,8 +5711,7 @@ public class EmailProvider extends ContentProvider
if (batchNotifications != null) {
batchNotifications.add(notifyUri);
} else {
- // TODO(rtenneti): Enable notifications.
- // getContext().getContentResolver().notifyChange(notifyUri, null);
+ getContext().getContentResolver().notifyChange(notifyUri, null);
}
}
@@ -6367,7 +6357,7 @@ public class EmailProvider extends ContentProvider
// Start/stop the various services depending on whether there are any accounts
// TODO: Make sure that the AttachmentService responds to this request as it
// expects a particular set of data in the intents that it receives or it ignores.
- startOrStopService(enabled, context);
+ startOrStopService(enabled, context, new Intent(context, AttachmentService.class));
final NotificationController controller =
NotificationControllerCreatorHolder.getInstance(context);
@@ -6377,16 +6367,16 @@ public class EmailProvider extends ContentProvider
}
/**
- * Starts or stops the attachment service as necessary.
- *
+ * Starts or stops the service as necessary.
* @param enabled If {@code true}, the service will be started. Otherwise, it will be stopped.
* @param context The context to manage the service with.
+ * @param intent The intent of the service to be managed.
*/
- private static void startOrStopService(boolean enabled, Context context) {
+ private static void startOrStopService(boolean enabled, Context context, Intent intent) {
if (enabled) {
- AttachmentService.startWithoutSpecificAttachmentChange(context);
+ context.startService(intent);
} else {
- AttachmentService.stop(context);
+ context.stopService(intent);
}
}
diff --git a/provider_src/com/android/email/service/AttachmentService.java b/provider_src/com/android/email/service/AttachmentService.java
index 1a628f799..632104931 100644
--- a/provider_src/com/android/email/service/AttachmentService.java
+++ b/provider_src/com/android/email/service/AttachmentService.java
@@ -27,20 +27,15 @@ import android.content.Intent;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.Uri;
-import android.os.Build.VERSION_CODES;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.SystemClock;
import android.text.format.DateUtils;
-import androidx.core.os.BuildCompat;
-
import com.android.email.AttachmentInfo;
import com.android.email.EmailConnectivityManager;
-import com.android.email.EmailNotificationController;
import com.android.email.NotificationControllerCreatorHolder;
import com.android.email.NotificationController;
-import com.android.email.R;
import com.android.emailcommon.provider.Account;
import com.android.emailcommon.provider.EmailContent;
import com.android.emailcommon.provider.EmailContent.Attachment;
@@ -126,10 +121,6 @@ public class AttachmentService extends Service implements Runnable {
// Signify that we are being shut down & destroyed.
private volatile boolean mStop = false;
- // Indicates whether this service is currently running. Currently, only used for Android O+ to
- // decide whether to call startForegroundService or startService in start method.
- private static volatile boolean isRunning = false;
-
EmailConnectivityManager mConnectivityManager;
// Helper class that keeps track of in progress downloads to make sure that they
@@ -595,36 +586,7 @@ public class AttachmentService extends Service implements Runnable {
debugTrace("Calling startService with extras %d & %d", id, flags);
intent.putExtra(EXTRA_ATTACHMENT_ID, id);
intent.putExtra(EXTRA_ATTACHMENT_FLAGS, flags);
- start(context, intent);
- }
-
- public static void startWithoutSpecificAttachmentChange(Context context) {
- LogUtils.d(LOG_TAG, "Going to start AttachmentService without specifying an attachment.");
-
- Intent intent = new Intent(context, AttachmentService.class);
- start(context, intent);
- }
-
- /**
- * Starts running attachment service.
- *
- * @param intent an intent set to run AttachmentService class
- */
- public static void start(Context context, Intent intent) {
- // TODO(rtenneti): Enable notifications.
- // if (context.getApplicationInfo().targetSdkVersion >= android.os.Build.VERSION_CODES.O &&
- // !isRunning) {
- // LogUtils.i(LOG_TAG, "startForegroundService");
- // context.startForegroundService(intent);
- // } else {
- // LogUtils.i(LOG_TAG, "startService");
- // context.startService(intent);
- // }
- }
-
- public static void stop(Context context) {
- Intent intent = new Intent(context, AttachmentService.class);
- context.stopService(intent);
+ context.startService(intent);
}
/**
@@ -660,16 +622,6 @@ public class AttachmentService extends Service implements Runnable {
*/
@Override
public void onCreate() {
- isRunning = true;
- if (getApplicationInfo().targetSdkVersion >= android.os.Build.VERSION_CODES.O) {
- LogUtils.i(LOG_TAG, "startForeground");
- startForeground(
- EmailNotificationController.NOTIFICATION_ID_ONGOING_ATTACHMENT,
- EmailNotificationController.getOngoingDownloadNotification(
- getApplicationContext(),
- getApplicationContext().getString(
- R.string.notification_downloading_attachments_title)));
- }
// Start up our service thread.
new Thread(this, "AttachmentService").start();
}
@@ -697,7 +649,6 @@ public class AttachmentService extends Service implements Runnable {
mConnectivityManager.stopWait();
mConnectivityManager = null;
}
- isRunning = false;
}
/**
diff --git a/provider_src/com/android/email/service/EmailBroadcastProcessorService.java b/provider_src/com/android/email/service/EmailBroadcastProcessorService.java
index 5d264f007..7aa54673e 100644
--- a/provider_src/com/android/email/service/EmailBroadcastProcessorService.java
+++ b/provider_src/com/android/email/service/EmailBroadcastProcessorService.java
@@ -17,6 +17,7 @@
package com.android.email.service;
import android.accounts.AccountManager;
+import android.app.IntentService;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.ContentUris;
@@ -33,8 +34,6 @@ import android.provider.ContactsContract;
import android.text.TextUtils;
import android.text.format.DateUtils;
-import androidx.core.app.JobIntentService;
-
import com.android.email.EmailIntentService;
import com.android.email.Preferences;
import com.android.email.R;
@@ -70,9 +69,7 @@ import java.util.Set;
* This also handles the DeviceAdminReceiver in SecurityPolicy, because it is also
* a BroadcastReceiver and requires the same processing semantics.
*/
-public class EmailBroadcastProcessorService extends JobIntentService {
- public static final int JOB_ID = 200;
-
+public class EmailBroadcastProcessorService extends IntentService {
// Action used for BroadcastReceiver entry point
private static final String ACTION_BROADCAST = "broadcast_receiver";
@@ -84,11 +81,11 @@ public class EmailBroadcastProcessorService extends JobIntentService {
private static final String ACTION_UPGRADE_BROADCAST = "upgrade_broadcast_receiver";
public EmailBroadcastProcessorService() {
- super();
- }
+ // Class name will be the thread name.
+ super(EmailBroadcastProcessorService.class.getName());
- public static void enqueueWork(Context context, Intent work) {
- enqueueWork(context, EmailBroadcastProcessorService.class, JOB_ID, work);
+ // Intent should be redelivered if the process gets killed before completing the job.
+ setIntentRedelivery(true);
}
/**
@@ -98,13 +95,13 @@ public class EmailBroadcastProcessorService extends JobIntentService {
Intent i = new Intent(context, EmailBroadcastProcessorService.class);
i.setAction(ACTION_BROADCAST);
i.putExtra(Intent.EXTRA_INTENT, broadcastIntent);
- EmailBroadcastProcessorService.enqueueWork(context, i);
+ context.startService(i);
}
public static void processUpgradeBroadcastIntent(final Context context) {
final Intent i = new Intent(context, EmailBroadcastProcessorService.class);
i.setAction(ACTION_UPGRADE_BROADCAST);
- EmailBroadcastProcessorService.enqueueWork(context, i);
+ context.startService(i);
}
/**
@@ -116,11 +113,11 @@ public class EmailBroadcastProcessorService extends JobIntentService {
Intent i = new Intent(context, EmailBroadcastProcessorService.class);
i.setAction(ACTION_DEVICE_POLICY_ADMIN);
i.putExtra(EXTRA_DEVICE_POLICY_ADMIN, message);
- EmailBroadcastProcessorService.enqueueWork(context, i);
+ context.startService(i);
}
@Override
- protected void onHandleWork(Intent intent) {
+ protected void onHandleIntent(Intent intent) {
// This method is called on a worker thread.
// Dispatch from entry point