Android Open Source - wiki-contacts-android Contact Service Impl






From Project

Back to project page wiki-contacts-android.

License

The source code is released under:

Apache License

If you think the Android project wiki-contacts-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.kahkong.wikicontacts.service;
/*from w  w  w . j  a  va  2s .  c o  m*/
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;

import android.graphics.Bitmap;
import android.util.Log;

import com.kahkong.wikicontacts.callback.OnCompleteListener;
import com.kahkong.wikicontacts.modal.Contact;

/**
 * 
 * @author Poh Kah Kong
 *
 */
public class ContactServiceImpl implements ContactService {
  private static final String TAG = "ContactServiceImpl";
  
  private static ContactService instance;
  private WebService webService = WebServiceImpl.getInstance();
  private ImageService imageService = ImageServiceImpl.getInstance();


  private ContactServiceImpl() {  
  }

  public synchronized static ContactService getInstance() {
    if (instance==null) {
      instance = new ContactServiceImpl();
    }
    return instance;
  }

  @Override
  public void getContact(String number, final OnCompleteListener onCompleteListener) {
    Log.i("IncomingCall " + TAG, "getting contact from web");
    webService.getContact(number, new OnCompleteListener() {
      @Override
      public void onComplete(Object[] objects) {                    
        try {
          Log.i("IncomingCall " + TAG, "received contact from web");
          InputStream inputStream = (InputStream) objects[0];  
          if (inputStream==null || inputStream.available()==0) {
            onCompleteListener.onComplete(new Object[] {null});
            return;
          }
          ObjectMapper objectMapper = new ObjectMapper();
          final Contact contact = objectMapper.readValue(inputStream, Contact.class);          
          if (contact!=null) {
            onCompleteListener.onComplete(new Object[] {contact});
          } else {
            onCompleteListener.onComplete(new Object[] {null});
          }
        } catch (JsonParseException e) {
          e.printStackTrace();
        } catch (JsonMappingException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }      
    });
  }  

  @Override
  public void getContacts(String query, final OnCompleteListener onCompleteListener) {
    webService.getContacts(query, new OnCompleteListener() {
      @Override
      public void onComplete(Object[] objects) {                    
        try {
          InputStream inputStream = (InputStream) objects[0];  
          if (inputStream==null || inputStream.available()==0) {
            onCompleteListener.onComplete(new Object[] {null});
            return;
          }
          ObjectMapper objectMapper = new ObjectMapper();
          final List<Contact> contacts = objectMapper.readValue(inputStream, new TypeReference<List<Contact>>(){});
          onCompleteListener.onComplete(new Object[] {contacts});                  
        } catch (JsonParseException e) {
          e.printStackTrace();
        } catch (JsonMappingException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }      
    });
  }

  @Override
  public void addContactAndImage(Contact contact, Bitmap image, final OnCompleteListener onCompleteListener) {
    try {
      ObjectMapper objectMapper = new ObjectMapper();
      String contactJson = objectMapper.writeValueAsString(contact);
      byte[] imageBytes = null;
      if (image!=null) {
        imageBytes = imageService.bitmapToBytes(image);
      }
      webService.addContactAndImage(contactJson, imageBytes, new OnCompleteListener() {
        @Override
        public void onComplete(Object[] objects) {          
          String status = (String) objects[0];  
          if (status==null) {
            onCompleteListener.onComplete(new Object[] {Boolean.valueOf(false)});
            return;
          } else if (status.equals("success")) {
            onCompleteListener.onComplete(new Object[] {Boolean.valueOf(true)});
            return;
          } else { // status == "error"
            onCompleteListener.onComplete(new Object[] {Boolean.valueOf(false)});
            return;            
          }          
        }      
      });
    } catch (JsonGenerationException e1) {
      e1.printStackTrace();
    } catch (JsonMappingException e1) {
      e1.printStackTrace();
    } catch (IOException e1) {
      e1.printStackTrace();
    }
  }  
  
  @Override
  public void updateContactAndImage(Contact contact, Bitmap image, final OnCompleteListener onCompleteListener) {
    try {
      ObjectMapper objectMapper = new ObjectMapper();
      String contactJson = objectMapper.writeValueAsString(contact);
      byte[] imageBytes = null;
      if (image!=null) {
        imageBytes = imageService.bitmapToBytes(image);
      }
      webService.updateContactAndImage(contactJson, imageBytes, new OnCompleteListener() {
        @Override
        public void onComplete(Object[] objects) {          
          String status = (String) objects[0];  
          if (status==null) {
            onCompleteListener.onComplete(new Object[] {Boolean.valueOf(false)});
            return;
          } else if (status.equals("success")) {
            onCompleteListener.onComplete(new Object[] {Boolean.valueOf(true)});
            return;
          } else { // status == "error"
            onCompleteListener.onComplete(new Object[] {Boolean.valueOf(false)});
            return;            
          }          
        }      
      });
    } catch (JsonGenerationException e1) {
      e1.printStackTrace();
    } catch (JsonMappingException e1) {
      e1.printStackTrace();
    } catch (IOException e1) {
      e1.printStackTrace();
    }
  }
  
  @Override
  public void removeContact(int id, final OnCompleteListener onCompleteListener) {
    webService.removeContact(id, new OnCompleteListener() {
      @Override
      public void onComplete(Object[] objects) {          
        String status = (String) objects[0];  
        if (status==null) {
          onCompleteListener.onComplete(new Object[] {Boolean.valueOf(false)});
          return;
        } else if (status.equals("success")) {
          onCompleteListener.onComplete(new Object[] {Boolean.valueOf(true)});
          return;
        } else { // status == "error"
          onCompleteListener.onComplete(new Object[] {Boolean.valueOf(false)});
          return;            
        }          
      }      
    });
  }}




Java Source Code List

com.kahkong.wikicontacts.callback.OnChangeListener.java
com.kahkong.wikicontacts.callback.OnClickListener.java
com.kahkong.wikicontacts.callback.OnCompleteListener.java
com.kahkong.wikicontacts.callback.OnEventListener.java
com.kahkong.wikicontacts.callback.OnTimeOutListener.java
com.kahkong.wikicontacts.callback.Validator.java
com.kahkong.wikicontacts.controller.AddEditContactActivity.java
com.kahkong.wikicontacts.controller.CallDetectService.java
com.kahkong.wikicontacts.controller.EditContactActivity.java
com.kahkong.wikicontacts.controller.SearchActivity.java
com.kahkong.wikicontacts.controller.TestActivity.java
com.kahkong.wikicontacts.controller.UpdateEditContactActivity.java
com.kahkong.wikicontacts.form.EditTextForm.java
com.kahkong.wikicontacts.form.ImageUploadForm.java
com.kahkong.wikicontacts.form.MultiEditTextForm.java
com.kahkong.wikicontacts.form.OptionsForm.java
com.kahkong.wikicontacts.form.RadioGroupForm.java
com.kahkong.wikicontacts.form.SpinnerForm.java
com.kahkong.wikicontacts.form.TagsForm.java
com.kahkong.wikicontacts.link.EmailLink.java
com.kahkong.wikicontacts.link.Link.java
com.kahkong.wikicontacts.link.NumberLink.java
com.kahkong.wikicontacts.link.TagLink.java
com.kahkong.wikicontacts.link.UrlLink.java
com.kahkong.wikicontacts.modal.ContactAndImage.java
com.kahkong.wikicontacts.modal.Contact.java
com.kahkong.wikicontacts.modal.CountryCode.java
com.kahkong.wikicontacts.modal.CountryCodesWithSelect.java
com.kahkong.wikicontacts.service.ContactServiceImpl.java
com.kahkong.wikicontacts.service.ContactService.java
com.kahkong.wikicontacts.service.CountryCodeServiceImpl.java
com.kahkong.wikicontacts.service.CountryCodeService.java
com.kahkong.wikicontacts.service.ImageServiceImpl.java
com.kahkong.wikicontacts.service.ImageService.java
com.kahkong.wikicontacts.service.IntentServiceImpl.java
com.kahkong.wikicontacts.service.IntentService.java
com.kahkong.wikicontacts.service.NotificationServiceImpl.java
com.kahkong.wikicontacts.service.NotificationService.java
com.kahkong.wikicontacts.service.PhoneBookServiceImpl.java
com.kahkong.wikicontacts.service.PhoneBookService.java
com.kahkong.wikicontacts.service.PreferencesServiceImpl.java
com.kahkong.wikicontacts.service.PreferencesService.java
com.kahkong.wikicontacts.service.ResourceServiceImpl.java
com.kahkong.wikicontacts.service.ResourceService.java
com.kahkong.wikicontacts.service.ValidationServiceImpl.java
com.kahkong.wikicontacts.service.ValidationService.java
com.kahkong.wikicontacts.service.WebServiceImpl.java
com.kahkong.wikicontacts.service.WebService.java
com.kahkong.wikicontacts.subcontroller.CallStateListener.java
com.kahkong.wikicontacts.subcontroller.FlowLayout.java
com.kahkong.wikicontacts.subcontroller.IncomingContactLayout.java
com.kahkong.wikicontacts.subcontroller.InfoDialog.java
com.kahkong.wikicontacts.subcontroller.LoadingDialog.java
com.kahkong.wikicontacts.subcontroller.ResultAdaptor.java
com.kahkong.wikicontacts.subcontroller.ViewContactDialog.java
com.kahkong.wikicontacts.subcontroller.ViewFormatter.java