summaryrefslogtreecommitdiffstats
path: root/src/com/android/dialer/interactions
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2015-07-14 10:04:26 -0700
committerYorke Lee <yorkelee@google.com>2015-07-14 10:04:26 -0700
commit515575ebcf136c215579536c209d9e2644da16ce (patch)
tree3bb394f8e73779b6053ab1e48ed07996ad07d61c /src/com/android/dialer/interactions
parentf61a9a840eb5ec82faec8239ed398db7b2f5148e (diff)
downloadandroid_packages_apps_Dialer-515575ebcf136c215579536c209d9e2644da16ce.tar.gz
android_packages_apps_Dialer-515575ebcf136c215579536c209d9e2644da16ce.tar.bz2
android_packages_apps_Dialer-515575ebcf136c215579536c209d9e2644da16ce.zip
Permission protect UndemoteOutgoingCallReceiver
Bug: 22479151 Change-Id: I7e2689cfd3b6a315e7a225d2a8646b5917f70570
Diffstat (limited to 'src/com/android/dialer/interactions')
-rw-r--r--src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java b/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
index fd3d512f0..172a4efef 100644
--- a/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
+++ b/src/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
@@ -16,6 +16,9 @@
package com.android.dialer.interactions;
+import static android.Manifest.permission.READ_CONTACTS;
+import static android.Manifest.permission.WRITE_CONTACTS;
+
import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
@@ -41,7 +44,8 @@ public class UndemoteOutgoingCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
- if (!PermissionsUtil.hasContactsPermissions(context)) {
+ if (!PermissionsUtil.hasPermission(context, READ_CONTACTS)
+ || !PermissionsUtil.hasPermission(context, WRITE_CONTACTS)) {
return;
}
if (intent != null && Intent.ACTION_NEW_OUTGOING_CALL.equals(intent.getAction())) {
@@ -65,14 +69,29 @@ public class UndemoteOutgoingCallReceiver extends BroadcastReceiver {
// If the contact is not demoted, this will not do anything. Otherwise, it will
// restore it to an unpinned position. If it was a frequently called contact, it will
// show up once again show up on the favorites screen.
- PinnedPositions.undemote(context.getContentResolver(), id);
+ if (PermissionsUtil.hasPermission(context, WRITE_CONTACTS)) {
+ try {
+ PinnedPositions.undemote(context.getContentResolver(), id);
+ } catch (SecurityException e) {
+ // Just in case
+ }
+ }
}
private long getContactIdFromPhoneNumber(Context context, String number) {
+ if (!PermissionsUtil.hasPermission(context, READ_CONTACTS)) {
+ return NO_CONTACT_FOUND;
+ }
final Uri contactUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,
Uri.encode(number));
- final Cursor cursor = context.getContentResolver().query(contactUri, new String[] {
- PhoneLookup._ID}, null, null, null);
+ final Cursor cursor;
+ try {
+ cursor = context.getContentResolver().query(contactUri, new String[] {
+ PhoneLookup._ID}, null, null, null);
+ } catch (SecurityException e) {
+ // Just in case
+ return NO_CONTACT_FOUND;
+ }
if (cursor == null) {
return NO_CONTACT_FOUND;
}