diff options
author | Flavio Lerda <flerda@google.com> | 2011-06-29 10:54:29 +0100 |
---|---|---|
committer | Flavio Lerda <flerda@google.com> | 2011-06-29 17:57:03 +0100 |
commit | 92d97071e56110e0df7f25e6ebc92ff4ebf74a88 (patch) | |
tree | c10d82fe895fb7cc365821a2c438d8ef673e25d0 | |
parent | 7d7d0e95636344c01eb4e4d034791c199bee98e9 (diff) | |
download | packages_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.java | 31 | ||||
-rw-r--r-- | tests/src/com/android/providers/contacts/CallLogProviderTest.java | 37 |
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 { |