summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlavio Lerda <flerda@google.com>2011-06-29 10:54:29 +0100
committerFlavio Lerda <flerda@google.com>2011-06-29 17:57:03 +0100
commit92d97071e56110e0df7f25e6ebc92ff4ebf74a88 (patch)
treec10d82fe895fb7cc365821a2c438d8ef673e25d0
parent7d7d0e95636344c01eb4e4d034791c199bee98e9 (diff)
downloadpackages_providers_ContactsProvider-92d97071e56110e0df7f25e6ebc92ff4ebf74a88.zip
packages_providers_ContactsProvider-92d97071e56110e0df7f25e6ebc92ff4ebf74a88.tar.gz
packages_providers_ContactsProvider-92d97071e56110e0df7f25e6ebc92ff4ebf74a88.tar.bz2
Use shared constants for call log with voicemails.
Use the shared constants for accessing voicemails in the call log. Remove the local copies in the content provider. Change-Id: I1c026ab604201b73e4f6a057a8b725479c72c796
-rw-r--r--src/com/android/providers/contacts/CallLogProvider.java31
-rw-r--r--tests/src/com/android/providers/contacts/CallLogProviderTest.java37
2 files changed, 20 insertions, 48 deletions
diff --git a/src/com/android/providers/contacts/CallLogProvider.java b/src/com/android/providers/contacts/CallLogProvider.java
index b07a56d..c0f8644 100644
--- a/src/com/android/providers/contacts/CallLogProvider.java
+++ b/src/com/android/providers/contacts/CallLogProvider.java
@@ -21,7 +21,6 @@ import static com.android.providers.contacts.util.DbQueryUtils.getEqualityClause
import static com.android.providers.contacts.util.DbQueryUtils.getInequalityClause;
import com.android.providers.contacts.ContactsDatabaseHelper.Tables;
-import com.android.providers.contacts.util.DbQueryUtils;
import com.android.providers.contacts.util.SelectionBuilder;
import android.content.ContentProvider;
@@ -36,38 +35,13 @@ import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.provider.CallLog;
import android.provider.CallLog.Calls;
-import android.provider.ContactsContract;
-import android.util.Log;
import java.util.HashMap;
-import java.util.Set;
/**
* Call log content provider.
*/
public class CallLogProvider extends ContentProvider {
-
- /**
- * An optional URI parameter for call_log operations which instructs the
- * provider to allow the operation to be applied to voicemail records as well.
- * <p> TYPE: Boolean
- *
- * <p> Using this parameter with a value true will result in a security
- * error if the calling application does not have appropriate permissions
- * to access voicemails.
- */
- // TODO: Move this to ContactsContract.Calls once we are happy with the changes.
- public static final String ALLOW_VOICEMAILS_PARAM_KEY = "allow_voicemails";
-
- /**
- * Content uri with {@link #ALLOW_VOICEMAILS_PARAM_KEY} set. This can directly
- * be used to access call log entries that includes voicemail records.
- */
- // TODO: Move this to ContactsContract.Calls once we are happy with the changes.
- public static Uri CONTENT_URI_WITH_VOICEMAIL = Calls.CONTENT_URI.buildUpon()
- .appendQueryParameter(CallLogProvider.ALLOW_VOICEMAILS_PARAM_KEY, "true")
- .build();
-
/** Selection clause to use to exclude voicemail records. */
private static final String EXCLUDE_VOICEMAIL_SELECTION = getInequalityClause(
Calls.TYPE, Integer.toString(Calls.VOICEMAIL_TYPE));
@@ -297,7 +271,7 @@ public class CallLogProvider extends ContentProvider {
* included.
*/
private boolean isAllowVoicemailRequest(Uri uri) {
- return uri.getBooleanQueryParameter(ALLOW_VOICEMAILS_PARAM_KEY, false);
+ return uri.getBooleanQueryParameter(Calls.ALLOW_VOICEMAILS_PARAM_KEY, false);
}
/**
@@ -310,7 +284,8 @@ public class CallLogProvider extends ContentProvider {
if (!isAllowVoicemailRequest(uri)) {
throw new IllegalArgumentException(
String.format("Uri %s cannot be used for voicemail record." +
- " Please set '%s=true' in the uri.", uri, ALLOW_VOICEMAILS_PARAM_KEY));
+ " Please set '%s=true' in the uri.", uri,
+ Calls.ALLOW_VOICEMAILS_PARAM_KEY));
}
}
diff --git a/tests/src/com/android/providers/contacts/CallLogProviderTest.java b/tests/src/com/android/providers/contacts/CallLogProviderTest.java
index 5a55311..c10be38 100644
--- a/tests/src/com/android/providers/contacts/CallLogProviderTest.java
+++ b/tests/src/com/android/providers/contacts/CallLogProviderTest.java
@@ -18,25 +18,23 @@ package com.android.providers.contacts;
import com.android.internal.telephony.CallerInfo;
import com.android.internal.telephony.Connection;
-import com.android.providers.contacts.EvenMoreAsserts;
-
-import java.util.Arrays;
-import java.util.List;
import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
-import android.database.sqlite.SQLiteException;
import android.net.Uri;
import android.provider.CallLog;
-import android.provider.ContactsContract;
import android.provider.CallLog.Calls;
+import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.VoicemailContract.Voicemails;
import android.test.suitebuilder.annotation.MediumTest;
+import java.util.Arrays;
+import java.util.List;
+
/**
* Unit tests for {@link CallLogProvider}.
*
@@ -53,8 +51,6 @@ public class CallLogProviderTest extends BaseContactsProvider2Test {
private static final String VOICEMAIL_OWN_PERMISSION =
"com.android.voicemail.permission.READ_WRITE_OWN_VOICEMAIL";
- private static final Uri VOICEMAIL_CONTENT_URI = CallLogProvider.CONTENT_URI_WITH_VOICEMAIL;
-
/** Fields specific to voicemail provider that should not be exposed by call_log*/
private static final String[] VOICEMAIL_PROVIDER_SPECIFIC_COLUMNS = new String[] {
Voicemails._DATA,
@@ -85,7 +81,7 @@ public class CallLogProviderTest extends BaseContactsProvider2Test {
@Override
protected void tearDown() throws Exception {
setUpWithVoicemailPermissions();
- mResolver.delete(VOICEMAIL_CONTENT_URI, null, null);
+ mResolver.delete(Calls.CONTENT_URI_WITH_VOICEMAIL, null, null);
super.tearDown();
}
@@ -122,7 +118,7 @@ public class CallLogProviderTest extends BaseContactsProvider2Test {
});
// Now grant voicemail permission - should succeed.
- Uri uri = mResolver.insert(VOICEMAIL_CONTENT_URI, values);
+ Uri uri = mResolver.insert(Calls.CONTENT_URI_WITH_VOICEMAIL, values);
assertStoredValues(uri, values);
assertSelection(uri, values, Calls._ID, ContentUris.parseId(uri));
}
@@ -206,7 +202,7 @@ public class CallLogProviderTest extends BaseContactsProvider2Test {
// With the default uri, only 2 call entries should be returned.
// With the voicemail uri all 3 should be returned.
assertEquals(2, getCount(Calls.CONTENT_URI, null, null));
- assertEquals(3, getCount(VOICEMAIL_CONTENT_URI, null, null));
+ assertEquals(3, getCount(Calls.CONTENT_URI_WITH_VOICEMAIL, null, null));
}
// Test to check that none of the voicemail provider specific fields are
@@ -260,48 +256,49 @@ public class CallLogProviderTest extends BaseContactsProvider2Test {
EvenMoreAsserts.assertThrows(SecurityException.class, new Runnable() {
@Override
public void run() {
- mResolver.insert(VOICEMAIL_CONTENT_URI, getDefaultVoicemailValues());
+ mResolver.insert(Calls.CONTENT_URI_WITH_VOICEMAIL, getDefaultVoicemailValues());
}
});
// Should now succeed with permissions granted.
setUpWithVoicemailPermissions();
- mResolver.insert(VOICEMAIL_CONTENT_URI, getDefaultVoicemailValues());
+ mResolver.insert(Calls.CONTENT_URI_WITH_VOICEMAIL, getDefaultVoicemailValues());
}
public void testVoicemailPermissions_Update() {
EvenMoreAsserts.assertThrows(SecurityException.class, new Runnable() {
@Override
public void run() {
- mResolver.update(VOICEMAIL_CONTENT_URI, getDefaultVoicemailValues(), null, null);
+ mResolver.update(Calls.CONTENT_URI_WITH_VOICEMAIL, getDefaultVoicemailValues(),
+ null, null);
}
});
// Should now succeed with permissions granted.
setUpWithVoicemailPermissions();
- mResolver.update(VOICEMAIL_CONTENT_URI, getDefaultCallValues(), null, null);
+ mResolver.update(Calls.CONTENT_URI_WITH_VOICEMAIL, getDefaultCallValues(), null, null);
}
public void testVoicemailPermissions_Query() {
EvenMoreAsserts.assertThrows(SecurityException.class, new Runnable() {
@Override
public void run() {
- mResolver.query(VOICEMAIL_CONTENT_URI, null, null, null, null);
+ mResolver.query(Calls.CONTENT_URI_WITH_VOICEMAIL, null, null, null, null);
}
});
// Should now succeed with permissions granted.
setUpWithVoicemailPermissions();
- mResolver.query(VOICEMAIL_CONTENT_URI, null, null, null, null);
+ mResolver.query(Calls.CONTENT_URI_WITH_VOICEMAIL, null, null, null, null);
}
public void testVoicemailPermissions_Delete() {
EvenMoreAsserts.assertThrows(SecurityException.class, new Runnable() {
@Override
public void run() {
- mResolver.delete(VOICEMAIL_CONTENT_URI, null, null);
+ mResolver.delete(Calls.CONTENT_URI_WITH_VOICEMAIL, null, null);
}
});
// Should now succeed with permissions granted.
setUpWithVoicemailPermissions();
- mResolver.delete(VOICEMAIL_CONTENT_URI, null, null);
+ mResolver.delete(Calls.CONTENT_URI_WITH_VOICEMAIL, null, null);
}
private ContentValues getDefaultValues(int callType) {
@@ -327,7 +324,7 @@ public class CallLogProviderTest extends BaseContactsProvider2Test {
}
private Uri insertVoicemailRecord() {
- return mResolver.insert(VOICEMAIL_CONTENT_URI, getDefaultVoicemailValues());
+ return mResolver.insert(Calls.CONTENT_URI_WITH_VOICEMAIL, getDefaultVoicemailValues());
}
public static class TestCallLogProvider extends CallLogProvider {