fix comments. and go through carefully. If contact number is search locally successfully during call receive, show notification if a sms is received, dont search call locally, just hit the api. and show notification if api return Sro. https://codereview.appspot.com/90250043/diff/1/spfaq/AndroidManifest.xml File spfaq/AndroidManifest.xml (right): https://codereview.appspot.com/90250043/diff/1/spfaq/AndroidManifest.xml#newc... spfaq/AndroidManifest.xml:56: </uses-permission> </uses-permission>, change it to similar to other closing tags. https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/qa/... File spfaq/src/app/shoppoke/faq/qa/StorePhone.java (right): https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/qa/... spfaq/src/app/shoppoke/faq/qa/StorePhone.java:82: 1000, null, null, null, " phone = '" + phoneNumber + "'"); change this 1000 to 1. https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... File spfaq/src/app/shoppoke/faq/receiver/PhoneCallReceiver.java (right): https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/PhoneCallReceiver.java:37: public Context pcontext; make both member private. https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/PhoneCallReceiver.java:47: StorePhone localContactList= StorePhone.getStorePhone(pcontext, localContactList => storePhone https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/PhoneCallReceiver.java:51: if (state == 1 && StringUtil.isNullOrEmpty(localContactList.phone) this if logic is incorrect. https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/PhoneCallReceiver.java:53: smsPhoneReceiverHandler.request(incomingNumber); don't call smsPhoneReceiverHandler. It does not make any sense. write a common class to create notification. and use that here. https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... File spfaq/src/app/shoppoke/faq/receiver/SmsPhoneReceiverHandler.java (right): https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/SmsPhoneReceiverHandler.java:21: public Context context; make it private. https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/SmsPhoneReceiverHandler.java:31: webRequestTask.AddParam("shortcode", incomingNumber); change incomingNumber to shortCode. https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/SmsPhoneReceiverHandler.java:39: if (item ==null) { format it properly https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... File spfaq/src/app/shoppoke/faq/receiver/SmsReceiver.java (right): https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/SmsReceiver.java:26: String phoneNumber = null; Change phoneNumber to shortCode https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/SmsReceiver.java:28: SmsPhoneReceiverHandler smsPhoneReceiverHandler; don't declare it here. https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/SmsReceiver.java:36: for (int i = 0; i < pdusObj.length; i++) { why are you making a loop over multiple items and over writing it again and again https://codereview.appspot.com/90250043/diff/1/spfaq/src/app/shoppoke/faq/rec... spfaq/src/app/shoppoke/faq/receiver/SmsReceiver.java:49: StorePhone localContactList = StorePhone.getStorePhone(context, Why are you fetching contact here. I am raising the same question again as in my previous review? you have not answered it there as well.