summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrabhakara Rao Pediredla <ppedired@codeaurora.org>2016-03-14 15:21:08 +0530
committerMichael Bestas <mikeioannina@gmail.com>2016-12-30 23:45:10 +0200
commit9e96317a0d905734d8c96be1e08157ccf701661e (patch)
treed77f452b37b9de4ff2cca54b8a8cb2125e515779
parent73e48fa813fcc048622216a548d50539e98ec1b3 (diff)
downloadandroid_packages_services_Telephony-9e96317a0d905734d8c96be1e08157ccf701661e.tar.gz
android_packages_services_Telephony-9e96317a0d905734d8c96be1e08157ccf701661e.tar.bz2
android_packages_services_Telephony-9e96317a0d905734d8c96be1e08157ccf701661e.zip
PhoneApp Crash: Multiple times due to permission issue
Phone App crashes while monkey is running with no read contacts permission. Handled run time check before making a contacts db query. It will avoid exceptions. Change-Id: I855d5358fcff06a245a0ec2734efa32e37b4daf0
-rw-r--r--src/com/android/phone/CallerInfoCache.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/com/android/phone/CallerInfoCache.java b/src/com/android/phone/CallerInfoCache.java
index 644aa2222..83db85749 100644
--- a/src/com/android/phone/CallerInfoCache.java
+++ b/src/com/android/phone/CallerInfoCache.java
@@ -20,6 +20,7 @@ import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.PowerManager;
@@ -30,6 +31,7 @@ import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Data;
import android.telephony.PhoneNumberUtils;
import android.util.Log;
+import android.Manifest.permission;
import java.util.HashMap;
import java.util.Map.Entry;
@@ -184,6 +186,10 @@ public class CallerInfoCache {
// it keeps older one as much as it can, and replaces it with newer one inside a very small
// synchronized block.
+ if (!(mContext != null && (mContext.checkSelfPermission(permission.READ_CONTACTS)
+ == PackageManager.PERMISSION_GRANTED))) {
+ return; // If there is no contacts permission, don't query.
+ }
Cursor cursor = null;
try {
cursor = mContext.getContentResolver().query(Callable.CONTENT_URI,