package fr.neamar.kiss.broadcast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.TelephonyManager; import android.util.Log; import fr.neamar.kiss.DataHandler; import fr.neamar.kiss.KissApplication; import fr.neamar.kiss.dataprovider.ContactsProvider; import fr.neamar.kiss.pojo.ContactsPojo; public class IncomingCallHandler extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { try { DataHandler dataHandler = KissApplication.getDataHandler(context); ContactsProvider contactsProvider = dataHandler.getContactsProvider(); // Stop if contacts are not enabled if (contactsProvider == null) { return; } if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) { String phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); if(phoneNumber == null) { // Skipping (private call) return; } ContactsPojo contactPojo = contactsProvider.findByPhone(phoneNumber); if (contactPojo != null) { dataHandler.addToHistory(contactPojo.id); } } } catch (Exception e) { Log.e("Phone Receive Error", " " + e); } } }