[ 
https://issues.apache.org/jira/browse/CB-3577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Filip Maj resolved CB-3577.
---------------------------

       Resolution: Won't Fix
    Fix Version/s:     (was: 2.6.0)
         Assignee:     (was: Steve Gill)

This looks to be a problem upgrading a third-party plugin between 2.6 and 2.7. 
Closing.
                
> Issue on extending cordovaPlugin on execute() method: cordova v 2.7
> -------------------------------------------------------------------
>
>                 Key: CB-3577
>                 URL: https://issues.apache.org/jira/browse/CB-3577
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin Contacts
>    Affects Versions: 2.7.0
>         Environment: Android
>            Reporter: saurabh Trivedi
>              Labels: test
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> Hi
> i have downloaded contact_view plugin from github phonegap but on java file 
> there is error on execute method for call back and not getting super class 
> context using "this" key word , this plugin working well for v2.6 and below 
> so now what the changes requires for use this plugin on cordova v2.7 my 
> plugin code is below so pls request to elaborate the changes where needed.i 
> know there is change in execute method and now its return type is boolean but 
> what would be after this , how would we get call back and context ? how to 
> get rid of this issue in v2.7 cordova.
>      public class ContactView extends CordovaPlugin {
>       
>       
>       private static final int PICK_CONTACT = 1;
>       private String callback;
>       @Override
>       public PluginResult execute(String action, JSONArray args, String 
> callbackId) {
>               startContactActivity();
>               PluginResult mPlugin = new 
> PluginResult(PluginResult.Status.NO_RESULT);
>               mPlugin.setKeepCallback(true);
>               this.callback = callbackId;
>               return mPlugin;
>       }
>       public void startContactActivity() {
>               Intent intent = new Intent(Intent.ACTION_PICK);
>               intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
>               this.ctx.startActivityForResult((Plugin) this, intent, 
> PICK_CONTACT);
>       }
>       @Override
>       public void onActivityResult(int reqCode, int resultCode, Intent data) {
>               String name = null;
>               String number = null;
>               String email = null;
>               switch (reqCode) {
>               case (PICK_CONTACT):
>                       if (resultCode == Activity.RESULT_OK) {
>                               Uri contactData = data.getData();
>                               Cursor c = this.ctx.managedQuery(contactData, 
> null, null, null, null);
>                               if (c.moveToFirst()) {
>                                       String ContactID = c.getString(c
>                                                       
> .getColumnIndex(ContactsContract.Contacts._ID));
>                                       String hasPhone = 
> c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
>                                       if (Integer.parseInt(hasPhone) == 1) {
>                                               Cursor phoneCursor = 
> this.ctx.managedQuery(
>                                                                               
> ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
>                                                                               
> null,
>                                                                               
> ContactsContract.CommonDataKinds.Phone.CONTACT_ID
>                                                                               
>                 + "='" + ContactID + "'", null,
>                                                                               
> null);
>                                               while 
> (phoneCursor.moveToNext()) {
>                                                       number = phoneCursor
>                                                                       
> .getString(phoneCursor
>                                                                       
> .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
>                                               }
>                                       }
>                                       // get email address
>                                       Cursor emailCur = 
> this.ctx.managedQuery( 
>                                                       
> ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
>                                                       null,
>                                                       
> ContactsContract.CommonDataKinds.Email.CONTACT_ID + "='" + ContactID + "'", 
> null,null); 
>                                               while (emailCur.moveToNext()) { 
>                                                   // This would allow you get 
> several email addresses
>                                                   // if the email addresses 
> were stored in an array
>                                                   email = emailCur.getString(
>                                                             
> emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
>                                                   //String emailType = 
> emailCur.getString(
>                                                 //            
> emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 
>                                               } 
>                                               emailCur.close();
>                                       name = 
> c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
>                                       JSONObject contactObject = new 
> JSONObject();
>                                       try {
>                                               contactObject.put("name", name);
>                                               contactObject.put("phone", 
> number);
>                                               contactObject.put("email", 
> email);
>                                       } catch (JSONException e) {
>                                               e.printStackTrace();
>                                       }
>                                       this.success(new 
> PluginResult(PluginResult.Status.OK,
>                                                       contactObject), 
> this.callback);
>                               }
>                       }
>                       break;
>               }
>       }
>               
>       }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to