Snap for 10447354 from 79b15fa9ed4496a4a1f50f5f0fbe2527a6f76c5e to mainline-wifi-release

Change-Id: Ia22a7a217b0d6d17b12d1bcd559f1cae1a04fbff
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 3170b82..329444c 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -28,6 +28,6 @@
     <string name="debug_tool_start_button" msgid="2827965939935983665">"Баштоо"</string>
     <string name="debug_tool_message" msgid="2315979068524074618">"1) жылнааманын дайындар базасын бардык колдонмолордо окулган SD картага/USB сактагычка көчүрүп, 2) электрондук почта аркылуу жөнөткөнү жатасыз. Аны түзмөктөн көчүрүп же электрондук почта аркылуу алаарыңыз менен жок кылууну унутпаңыз."</string>
     <string name="debug_tool_email_sender_picker" msgid="2527150861906694072">"Файлыңызды жөнөтүүчү программаны тандаңыз"</string>
-    <string name="debug_tool_email_subject" msgid="1450453531950410260">"Жылнааманын дайындар базасы тиркелди"</string>
-    <string name="debug_tool_email_body" msgid="1271714905048793618">"Жылнааманын дайындар базасы, анын ичинде бардык жолугушуулар менен жеке маалыматым тиркелди. Этият болуңуз."</string>
+    <string name="debug_tool_email_subject" msgid="1450453531950410260">"Жылнааманын маалыматтар базасы тиркелди"</string>
+    <string name="debug_tool_email_body" msgid="1271714905048793618">"Жылнааманын маалыматтар базасы, анын ичинде бардык жолугушуулар менен жеке маалыматым тиркелди. Этият болуңуз."</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index a37f4e2..a2a5fe2 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -24,10 +24,10 @@
     <string name="calendar_info_events" msgid="6513451584822286165">"Evenimente: <xliff:g id="EVENTS">%1$d</xliff:g>"</string>
     <string name="calendar_info_events_dirty" msgid="3953603148780098018">"Evenimente: <xliff:g id="EVENTS_0">%1$d</xliff:g>. Nesalvate: <xliff:g id="DIRTY_EVENTS">%2$d</xliff:g>"</string>
     <string name="provider_label" msgid="1910026788169486138">"Calendar"</string>
-    <string name="debug_tool_delete_button" msgid="2843837310185088850">"Ștergeți acum"</string>
-    <string name="debug_tool_start_button" msgid="2827965939935983665">"Începeți"</string>
-    <string name="debug_tool_message" msgid="2315979068524074618">"Sunteți pe cale 1) să faceți o copie a bazei de date a calendarului dvs. pe cardul SD / în stocarea USB, care poate fi citită de orice aplicație și 2) să o trimiteți prin e-mail. Nu uitați să ștergeți copia după ce ați copiat-o de pe respectivul dispozitiv sau după primirea e-mailului."</string>
-    <string name="debug_tool_email_sender_picker" msgid="2527150861906694072">"Alegeți un program pentru a trimite fișierul"</string>
+    <string name="debug_tool_delete_button" msgid="2843837310185088850">"Șterge acum"</string>
+    <string name="debug_tool_start_button" msgid="2827965939935983665">"Începe"</string>
+    <string name="debug_tool_message" msgid="2315979068524074618">"Ești pe cale 1) să faci o copie a bazei de date a calendarului tău pe cardul SD / în stocarea USB, care poate fi citită de orice aplicație și 2) să o trimiți prin e-mail. Nu uita să ștergi copia după ce ai copiat-o de pe respectivul dispozitiv sau după primirea e-mailului."</string>
+    <string name="debug_tool_email_sender_picker" msgid="2527150861906694072">"Alege un program pentru a trimite fișierul"</string>
     <string name="debug_tool_email_subject" msgid="1450453531950410260">"Baza de date a calendarului a fost atașată"</string>
-    <string name="debug_tool_email_body" msgid="1271714905048793618">"Găsiți atașată baza de date a calendarului, cu toate întâlnirile și informațiile mele cu caracter personal. Gestionați-o cu atenție."</string>
+    <string name="debug_tool_email_body" msgid="1271714905048793618">"Găsește atașată baza de date a calendarului, cu toate întâlnirile și informațiile mele cu caracter personal. Gestioneaz-o cu atenție."</string>
 </resources>
diff --git a/src/com/android/providers/calendar/CalendarProviderBroadcastReceiver.java b/src/com/android/providers/calendar/CalendarProviderBroadcastReceiver.java
index c27044f..933baf2 100644
--- a/src/com/android/providers/calendar/CalendarProviderBroadcastReceiver.java
+++ b/src/com/android/providers/calendar/CalendarProviderBroadcastReceiver.java
@@ -34,8 +34,9 @@
     @Override
     public void onReceive(Context context, Intent intent) {
         String action = intent.getAction();
-        if (!CalendarAlarmManager.ACTION_CHECK_NEXT_ALARM.equals(action)
-                && !CalendarContract.ACTION_EVENT_REMINDER.equals(action)) {
+        if (action == null ||
+                (!CalendarAlarmManager.ACTION_CHECK_NEXT_ALARM.equals(action)
+                    && !CalendarContract.ACTION_EVENT_REMINDER.equals(action))) {
             Log.e(TAG, "Received invalid intent: " + intent);
             setResultCode(Activity.RESULT_CANCELED);
             return;
@@ -45,15 +46,21 @@
         }
 
         JobWorkItem jwi = new JobWorkItem(intent);
-        JobInfo alarmJob = new JobInfo.Builder(CalendarProviderJobService.JOB_ID,
+        JobInfo.Builder alarmJobBuilder = new JobInfo.Builder(CalendarProviderJobService.JOB_ID,
                 new ComponentName(context, CalendarProviderJobService.class))
-                .setExpedited(true)
-                .build();
+                .setExpedited(true);
         JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
-        if (jobScheduler.enqueue(alarmJob, jwi) == JobScheduler.RESULT_SUCCESS) {
+        if (jobScheduler.enqueue(alarmJobBuilder.build(), jwi) == JobScheduler.RESULT_SUCCESS) {
             setResultCode(Activity.RESULT_OK);
         } else {
             Slog.wtf(TAG, "Failed to schedule expedited job");
+            // Unable to schedule an expedited job. Fall back to a regular job.
+            alarmJobBuilder.setExpedited(false);
+            if (jobScheduler.enqueue(alarmJobBuilder.build(), jwi) == JobScheduler.RESULT_SUCCESS) {
+                setResultCode(Activity.RESULT_OK);
+            } else {
+                Slog.wtf(TAG, "Failed to schedule regular job");
+            }
         }
     }
 }
diff --git a/src/com/android/providers/calendar/enterprise/CrossProfileCalendarHelper.java b/src/com/android/providers/calendar/enterprise/CrossProfileCalendarHelper.java
index 8c5ace7..8e078e8 100644
--- a/src/com/android/providers/calendar/enterprise/CrossProfileCalendarHelper.java
+++ b/src/com/android/providers/calendar/enterprise/CrossProfileCalendarHelper.java
@@ -164,7 +164,7 @@
                 || CalendarContract.Instances.CONTENT_SEARCH_BY_DAY_URI.equals(localUri)) {
             validColumnsSet = INSTANCES_TABLE_ALLOWED_LIST;
         } else {
-            throw new IllegalArgumentException(String.format("Cross profile version of %d is not "
+            throw new IllegalArgumentException(String.format("Cross profile version of %s is not "
                     + "supported", localUri.toSafeString()));
         }