From 1def6c8c04c0923c8d645325ef5ac160cef4d501 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sat, 7 Apr 2018 23:38:42 +0200 Subject: fixed rare crash on jolla devices --- .../de/pixart/messenger/utils/PhoneHelper.java | 46 +++++++--------------- 1 file changed, 15 insertions(+), 31 deletions(-) (limited to 'src/main/java/de/pixart/messenger/utils/PhoneHelper.java') diff --git a/src/main/java/de/pixart/messenger/utils/PhoneHelper.java b/src/main/java/de/pixart/messenger/utils/PhoneHelper.java index a8c53f699..452a31adc 100644 --- a/src/main/java/de/pixart/messenger/utils/PhoneHelper.java +++ b/src/main/java/de/pixart/messenger/utils/PhoneHelper.java @@ -3,8 +3,6 @@ package de.pixart.messenger.utils; import android.Manifest; import android.content.Context; import android.content.CursorLoader; -import android.content.Loader; -import android.content.Loader.OnLoadCompleteListener; import android.content.pm.PackageManager; import android.database.Cursor; import android.net.Uri; @@ -41,36 +39,22 @@ public class PhoneHelper { CursorLoader mCursorLoader = new NotThrowCursorLoader(context, ContactsContract.Data.CONTENT_URI, PROJECTION, SELECTION, null, null); - mCursorLoader.registerListener(0, new OnLoadCompleteListener() { - - @Override - public void onLoadComplete(Loader arg0, Cursor cursor) { - if (cursor != null) { - while (cursor.moveToNext()) { - Bundle contact = new Bundle(); - contact.putInt("phoneid", cursor.getInt(cursor - .getColumnIndex(ContactsContract.Data._ID))); - contact.putString( - "displayname", - cursor.getString(cursor - .getColumnIndex(ContactsContract.Data.DISPLAY_NAME))); - contact.putString("photouri", cursor.getString(cursor - .getColumnIndex(ContactsContract.Data.PHOTO_URI))); - contact.putString("lookup", cursor.getString(cursor - .getColumnIndex(ContactsContract.Data.LOOKUP_KEY))); - - contact.putString( - "jid", - cursor.getString(cursor - .getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA))); - phoneContacts.add(contact); - } - cursor.close(); + mCursorLoader.registerListener(0, (arg0, c) -> { + if (c != null) { + while (c.moveToNext()) { + Bundle contact = new Bundle(); + contact.putInt("phoneid", c.getInt(c.getColumnIndex(ContactsContract.Data._ID))); + contact.putString("displayname", c.getString(c.getColumnIndex(ContactsContract.Data.DISPLAY_NAME))); + contact.putString("photouri", c.getString(c.getColumnIndex(ContactsContract.Data.PHOTO_URI))); + contact.putString("lookup", c.getString(c.getColumnIndex(ContactsContract.Data.LOOKUP_KEY))); + contact.putString("jid", c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA))); + phoneContacts.add(contact); } + c.close(); + } - if (listener != null) { - listener.onPhoneContactsLoaded(phoneContacts); - } + if (listener != null) { + listener.onPhoneContactsLoaded(phoneContacts); } }); try { @@ -91,7 +75,7 @@ public class PhoneHelper { final Cursor cursor; try { cursor = context.getContentResolver().query(Profile.CONTENT_URI, projection, null, null, null); - } catch (SecurityException e) { + } catch (Throwable e) { return null; } if (cursor == null) { -- cgit v1.2.3