[
https://issues.apache.org/jira/browse/CB-12326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15879638#comment-15879638
]
ASF GitHub Bot commented on CB-12326:
-------------------------------------
Github user filmaj commented on the issue:
https://github.com/apache/cordova-plugin-contacts/pull/146
It _does_ look like [iOS returns label
information](https://github.com/apache/cordova-plugin-contacts/blob/master/src/ios/CDVContact.h#L92)
in contacts, so there is precedent to enhance Android to do that as well.
> Adding the missing "LABEL" CommonDataKinds columns to the
ContactAccessorSdk5 to fix the app crash issue.
@mad-nuts can you elaborate on what 'the app crash issue' is? I'm curious
what scenario caused a crash.
@infil00p if you have a moment, take a look at the generic try/catch flow
this pull request introduces and let us know if you have any comments on that.
> Crash on Android: CommonDataKinds.*.LABEL
> -----------------------------------------
>
> Key: CB-12326
> URL: https://issues.apache.org/jira/browse/CB-12326
> Project: Apache Cordova
> Issue Type: Bug
> Components: Plugin Contacts
> Environment: Android: Samsung Galaxy S6
> Reporter: Andreas
> Priority: Critical
> Labels: Android, crash, reproduced
>
> The ContactAccessorSdk5 is missing the "LABEL" CommonDataKinds column
> definition for multple Cursors, causing the "search" function to crash.
> {code:title=is|borderStyle=solid}
> if (isRequired("emails", populate)) {
> columnsToFetch.add(CommonDataKinds.Email._ID);
> columnsToFetch.add(CommonDataKinds.Email.DATA);
> columnsToFetch.add(CommonDataKinds.Email.TYPE);
> }
> {code}
> {code:title=should be|borderStyle=solid}
> if (isRequired("emails", populate)) {
> columnsToFetch.add(CommonDataKinds.Email._ID);
> columnsToFetch.add(CommonDataKinds.Email.DATA);
> columnsToFetch.add(CommonDataKinds.Email.TYPE);
> columnsToFetch.add(CommonDataKinds.Email.LABEL);
> }
> {code}
> missing columns are:
> - CommonDataKinds.Phone.LABEL
> - CommonDataKinds.Email.LABEL
> - CommonDataKinds.StructuredPostal.LABEL
> - CommonDataKinds.Organization.LABEL
> - CommonDataKinds.Website.LABEL
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime:
> java.lang.IllegalStateException: Couldn't read row 174, col -1 from
> CursorWindow. Make sure the Cursor is initialized correctly before accessing
> data from it.
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> android.database.CursorWindow.nativeGetString(Native Method)
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> android.database.CursorWindow.getString(CursorWindow.java:451)
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> android.database.CursorWrapper.getString(CursorWrapper.java:137)
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> org.apache.cordova.contacts.ContactAccessorSdk5.emailQuery(ContactAccessorSdk5.java:900)
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> org.apache.cordova.contacts.ContactAccessorSdk5.populateContactArray(ContactAccessorSdk5.java:428)
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> org.apache.cordova.contacts.ContactAccessorSdk5.search(ContactAccessorSdk5.java:287)
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> org.apache.cordova.contacts.ContactManager$3.run(ContactManager.java:209)
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
> 01-06 13:43:03.871 7333 7527 E AndroidRuntime: at
> java.lang.Thread.run(Thread.java:818)
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]