You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by rk...@apache.org on 2016/01/14 01:42:39 UTC
cordova-plugin-contacts git commit: CB-10159 android: Adding restore
callback to handle Activity destruction
Repository: cordova-plugin-contacts
Updated Branches:
refs/heads/master 077631e82 -> 00f71a8aa
CB-10159 android: Adding restore callback to handle Activity destruction
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/commit/00f71a8a
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/tree/00f71a8a
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/diff/00f71a8a
Branch: refs/heads/master
Commit: 00f71a8aafeb26d8172cb77833e7cc6fec7d905c
Parents: 077631e
Author: riknoll <ri...@gmail.com>
Authored: Mon Dec 7 14:54:22 2015 -0800
Committer: riknoll <ri...@gmail.com>
Committed: Wed Jan 13 14:54:28 2016 -0800
----------------------------------------------------------------------
README.md | 21 +++++++++++++++++++++
src/android/ContactManager.java | 11 +++++++++++
2 files changed, 32 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/blob/00f71a8a/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 2279173..77e8c88 100644
--- a/README.md
+++ b/README.md
@@ -227,6 +227,27 @@ function specified by the __contactSuccess__ parameter.
console.log('Error: ' + err);
});
+### Android Quirks
+
+This plugin launches an external Activity for picking contacts. See the
+[Android Lifecycle Guide](http://cordova.apache.org/docs/en/dev/guide/platforms/android/lifecycle.html)
+for an explanation of how this affects your application. If the plugin returns
+its result in the `resume` event, then you must first wrap the returned object
+in a `Contact` object before using it. Here is an example:
+
+```javascript
+function onResume(resumeEvent) {
+ if(resumeEvent.pendingResult) {
+ if(resumeEvent.pendingResult.pluginStatus === "OK") {
+ var contact = navigator.contacts.create(resumeEvent.pendingResult.result);
+ successCallback(contact);
+ } else {
+ failCallback(resumeEvent.pendingResult.result);
+ }
+ }
+}
+```
+
## Contact
The `Contact` object represents a user's contact. Contacts can be
http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/blob/00f71a8a/src/android/ContactManager.java
----------------------------------------------------------------------
diff --git a/src/android/ContactManager.java b/src/android/ContactManager.java
index d8f611b..448302d 100644
--- a/src/android/ContactManager.java
+++ b/src/android/ContactManager.java
@@ -32,6 +32,7 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Build;
+import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.RawContacts;
import android.util.Log;
@@ -292,4 +293,14 @@ public class ContactManager extends CordovaPlugin {
}
}
+ /**
+ * This plugin launches an external Activity when a contact is picked, so we
+ * need to implement the save/restore API in case the Activity gets killed
+ * by the OS while it's in the background. We don't actually save anything
+ * because picking a contact doesn't take in any arguments.
+ */
+ public void onRestoreStateForActivityResult(Bundle state, CallbackContext callbackContext) {
+ this.callbackContext = callbackContext;
+ this.contactAccessor = new ContactAccessorSdk5(this.cordova);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org