Fix NPE's due to ContentProvider unavailability
Bug: 5039272
Bug: 5039228
Change-Id: I13abe01642d7165c324b6838a0f0c9d6ed8114cf
diff --git a/src/com/android/exchange/ExchangeService.java b/src/com/android/exchange/ExchangeService.java
index 82e952f..3b71656 100644
--- a/src/com/android/exchange/ExchangeService.java
+++ b/src/com/android/exchange/ExchangeService.java
@@ -496,7 +496,7 @@
ContentResolver resolver = context.getContentResolver();
Cursor c = resolver.query(Account.CONTENT_URI, Account.CONTENT_PROJECTION, null, null,
null);
- if (c == null) return null;
+ if (c == null) return accounts;
try {
ContentValues cv = new ContentValues();
while (c.moveToNext()) {
diff --git a/src/com/android/exchange/provider/MailboxUtilities.java b/src/com/android/exchange/provider/MailboxUtilities.java
index cf5eb97..fb3ec14 100644
--- a/src/com/android/exchange/provider/MailboxUtilities.java
+++ b/src/com/android/exchange/provider/MailboxUtilities.java
@@ -68,6 +68,7 @@
Cursor childCursor = resolver.query(Mailbox.CONTENT_URI,
Mailbox.ID_PROJECTION, MailboxColumns.PARENT_SERVER_ID + "=? AND " +
accountSelector, selectionArgs, null);
+ if (childCursor == null) return;
try {
while (childCursor.moveToNext()) {
parentFlags |= Mailbox.FLAG_HAS_CHILDREN | Mailbox.FLAG_CHILDREN_VISIBLE;
@@ -104,6 +105,7 @@
Cursor cursor = context.getContentResolver().query(Mailbox.CONTENT_URI,
Mailbox.CONTENT_PROJECTION, MailboxColumns.SERVER_ID + "=? AND " + accountSelector,
new String[] {serverId}, null);
+ if (cursor == null) return;
try {
if (cursor.moveToFirst()) {
setFlagsAndChildrensParentKey(context, cursor, accountSelector);
@@ -130,6 +132,7 @@
ContentResolver resolver = context.getContentResolver();
Cursor parentCursor = resolver.query(Mailbox.CONTENT_URI, Mailbox.CONTENT_PROJECTION,
noParentKeySelection, null, null);
+ if (parentCursor == null) return;
try {
while (parentCursor.moveToNext()) {
setFlagsAndChildrensParentKey(context, parentCursor, accountSelector);