summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaman Tenneti <rtenneti@google.com>2019-08-02 22:54:36 +0000
committerRaman Tenneti <rtenneti@google.com>2019-08-02 22:54:36 +0000
commitf179ed014696868837a0792bc27d4aae83bc9e00 (patch)
treef8d31801a4f109df19faba5f1831da14e72a0dad
parent249fc8ff5d78ed27387d5adc86770ffc1768a857 (diff)
downloadEmail-f179ed014696868837a0792bc27d4aae83bc9e00.tar.gz
Revert "Revert "AOSP/Email - Changes for code to work with UnifiedEmail's version bump to the targetSdkVersion to 28 (maximum version). Used JobIntentservice API calls to replace context.startService for EmailBroadcastProcessorService.""
This reverts commit 249fc8ff5d78ed27387d5adc86770ffc1768a857. Reason for revert: Email app needs to target API level 28+ Bug: 138276176 Bug: 119499886 Change-Id: I8f47f809b1cdc2048fc613b819938a88a9588978
-rw-r--r--AndroidManifest.xml5
-rw-r--r--provider_src/com/android/email/EmailIntentService.java6
-rw-r--r--provider_src/com/android/email/service/EmailBroadcastProcessorService.java23
3 files changed, 20 insertions, 14 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 71648e805..9dd32c260 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -486,7 +486,9 @@
</intent-filter>
</receiver>
<service
- android:name=".service.EmailBroadcastProcessorService" />
+ android:name=".service.EmailBroadcastProcessorService"
+ android:permission="android.permission.BIND_JOB_SERVICE"
+ android:exported="true" />
<!-- Support for DeviceAdmin / DevicePolicyManager. See SecurityPolicy class for impl. -->
<receiver
@@ -725,6 +727,7 @@
</service>
<service android:name="com.android.email.EmailIntentService"
+ android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="false">
<intent-filter>
<action android:name="com.android.mail.action.RESEND_NOTIFICATIONS" />
diff --git a/provider_src/com/android/email/EmailIntentService.java b/provider_src/com/android/email/EmailIntentService.java
index 0c6d76178..5924c90ce 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("EmailIntentService");
+ super();
}
@Override
- protected void onHandleIntent(final Intent intent) {
- super.onHandleIntent(intent);
+ protected void onHandleWork(final Intent intent) {
+ super.onHandleWork(intent);
if (UIProvider.ACTION_UPDATE_NOTIFICATION.equals(intent.getAction())) {
final NotificationController nc =
diff --git a/provider_src/com/android/email/service/EmailBroadcastProcessorService.java b/provider_src/com/android/email/service/EmailBroadcastProcessorService.java
index 7aa54673e..5d264f007 100644
--- a/provider_src/com/android/email/service/EmailBroadcastProcessorService.java
+++ b/provider_src/com/android/email/service/EmailBroadcastProcessorService.java
@@ -17,7 +17,6 @@
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;
@@ -34,6 +33,8 @@ 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;
@@ -69,7 +70,9 @@ 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 IntentService {
+public class EmailBroadcastProcessorService extends JobIntentService {
+ public static final int JOB_ID = 200;
+
// Action used for BroadcastReceiver entry point
private static final String ACTION_BROADCAST = "broadcast_receiver";
@@ -81,11 +84,11 @@ public class EmailBroadcastProcessorService extends IntentService {
private static final String ACTION_UPGRADE_BROADCAST = "upgrade_broadcast_receiver";
public EmailBroadcastProcessorService() {
- // Class name will be the thread name.
- super(EmailBroadcastProcessorService.class.getName());
+ super();
+ }
- // Intent should be redelivered if the process gets killed before completing the job.
- setIntentRedelivery(true);
+ public static void enqueueWork(Context context, Intent work) {
+ enqueueWork(context, EmailBroadcastProcessorService.class, JOB_ID, work);
}
/**
@@ -95,13 +98,13 @@ public class EmailBroadcastProcessorService extends IntentService {
Intent i = new Intent(context, EmailBroadcastProcessorService.class);
i.setAction(ACTION_BROADCAST);
i.putExtra(Intent.EXTRA_INTENT, broadcastIntent);
- context.startService(i);
+ EmailBroadcastProcessorService.enqueueWork(context, i);
}
public static void processUpgradeBroadcastIntent(final Context context) {
final Intent i = new Intent(context, EmailBroadcastProcessorService.class);
i.setAction(ACTION_UPGRADE_BROADCAST);
- context.startService(i);
+ EmailBroadcastProcessorService.enqueueWork(context, i);
}
/**
@@ -113,11 +116,11 @@ public class EmailBroadcastProcessorService extends IntentService {
Intent i = new Intent(context, EmailBroadcastProcessorService.class);
i.setAction(ACTION_DEVICE_POLICY_ADMIN);
i.putExtra(EXTRA_DEVICE_POLICY_ADMIN, message);
- context.startService(i);
+ EmailBroadcastProcessorService.enqueueWork(context, i);
}
@Override
- protected void onHandleIntent(Intent intent) {
+ protected void onHandleWork(Intent intent) {
// This method is called on a worker thread.
// Dispatch from entry point