summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml2
-rw-r--r--src/com/android/dialer/database/DialerDatabaseHelper.java14
-rw-r--r--src/com/android/dialer/database/FilteredNumberContract.java19
-rw-r--r--src/com/android/dialer/database/FilteredNumberProvider.java15
-rw-r--r--src/com/android/dialerbind/ObjectFactory.java4
-rw-r--r--tests/src/com/android/dialer/database/FilteredNumberProviderTest.java9
6 files changed, 43 insertions, 20 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index bc78f18c2..32d88cc1f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -308,7 +308,7 @@
<provider
android:name=".database.FilteredNumberProvider"
- android:authorities="com.android.dialer"
+ android:authorities="com.android.dialer.database.filterednumberprovider"
android:exported="false"
android:multiprocess="false"
/>
diff --git a/src/com/android/dialer/database/DialerDatabaseHelper.java b/src/com/android/dialer/database/DialerDatabaseHelper.java
index 8fcbb9208..d36a0f6d8 100644
--- a/src/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/src/com/android/dialer/database/DialerDatabaseHelper.java
@@ -75,7 +75,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
* 0-98 KitKat
* </pre>
*/
- public static final int DATABASE_VERSION = 5;
+ public static final int DATABASE_VERSION = 6;
public static final String DATABASE_NAME = "dialer.db";
/**
@@ -400,7 +400,8 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
// and to be able to guarantee the state of the DB at each upgrade step.
db.execSQL("CREATE TABLE " + Tables.FILTERED_NUMBER_TABLE + " ("
+ FilteredNumberColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
- + FilteredNumberColumns.NORMALIZED_NUMBER + " TEXT,"
+ + FilteredNumberColumns.NORMALIZED_NUMBER + " TEXT UNIQUE,"
+ + FilteredNumberColumns.NUMBER + " TEXT,"
+ FilteredNumberColumns.COUNTRY_ISO + " TEXT,"
+ FilteredNumberColumns.TIMES_FILTERED + " INTEGER,"
+ FilteredNumberColumns.LAST_TIME_FILTERED + " LONG,"
@@ -418,6 +419,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
db.execSQL("DROP TABLE IF EXISTS " + Tables.PREFIX_TABLE);
db.execSQL("DROP TABLE IF EXISTS " + Tables.SMARTDIAL_TABLE);
db.execSQL("DROP TABLE IF EXISTS " + Tables.PROPERTIES);
+ db.execSQL("DROP TABLE IF EXISTS " + Tables.FILTERED_NUMBER_TABLE);
}
@Override
@@ -438,10 +440,12 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
return;
}
- if (oldVersion < 5) {
+ if (oldVersion < 6) {
+ db.execSQL("DROP TABLE IF EXISTS " + Tables.FILTERED_NUMBER_TABLE);
db.execSQL("CREATE TABLE " + Tables.FILTERED_NUMBER_TABLE + " ("
+ FilteredNumberColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
- + FilteredNumberColumns.NORMALIZED_NUMBER + " TEXT,"
+ + FilteredNumberColumns.NORMALIZED_NUMBER + " TEXT UNIQUE,"
+ + FilteredNumberColumns.NUMBER + " TEXT,"
+ FilteredNumberColumns.COUNTRY_ISO + " TEXT,"
+ FilteredNumberColumns.TIMES_FILTERED + " INTEGER,"
+ FilteredNumberColumns.LAST_TIME_FILTERED + " LONG,"
@@ -449,7 +453,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
+ FilteredNumberColumns.TYPE + " INTEGER,"
+ FilteredNumberColumns.SOURCE + " INTEGER"
+ ");");
- oldVersion = 5;
+ oldVersion = 6;
}
if (oldVersion != DATABASE_VERSION) {
diff --git a/src/com/android/dialer/database/FilteredNumberContract.java b/src/com/android/dialer/database/FilteredNumberContract.java
index 1fb2363d0..0ec171b15 100644
--- a/src/com/android/dialer/database/FilteredNumberContract.java
+++ b/src/com/android/dialer/database/FilteredNumberContract.java
@@ -16,8 +16,15 @@
package com.android.dialer.database;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.database.Cursor;
import android.net.Uri;
import android.provider.BaseColumns;
+import android.telephony.PhoneNumberUtils;
+
+import com.android.dialerbind.ObjectFactory;
/**
* <p>
@@ -29,7 +36,7 @@ import android.provider.BaseColumns;
public final class FilteredNumberContract {
/** The authority for the filtered numbers provider */
- public static final String AUTHORITY = "com.android.dialer";
+ public static final String AUTHORITY = ObjectFactory.getFilteredNumberProviderAuthority();
/** A content:// style uri to the authority for the filtered numbers provider */
public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
@@ -62,6 +69,13 @@ public final class FilteredNumberContract {
*/
static final String NORMALIZED_NUMBER = "normalized_number";
/**
+ * Represents the number to be filtered, for formatting and
+ * used with country iso for contact lookups.
+ *
+ * TYPE: TEXT
+ */
+ static final String NUMBER = "number";
+ /**
* The country code representing the country detected when
* the phone number was added to the database.
* Most numbers don't have the country code, so a best guess is provided by
@@ -111,7 +125,7 @@ public final class FilteredNumberContract {
* <h3>Operations</h3>
* <dl>
* <dt><b>Insert</b></dt>
- * <dd>Required fields: NORMALIZED_NUMBER, TYPE, SOURCE.
+ * <dd>Required fields: NUMBER, NORMALIZED_NUMBER, TYPE, SOURCE.
* A default value will be used for the other fields if left null.</dd>
* <dt><b>Update</b></dt>
* <dt><b>Delete</b></dt>
@@ -144,6 +158,5 @@ public final class FilteredNumberContract {
*/
public static final String CONTENT_ITEM_TYPE =
"vnd.android.cursor.item/filtered_numbers_table";
-
}
}
diff --git a/src/com/android/dialer/database/FilteredNumberProvider.java b/src/com/android/dialer/database/FilteredNumberProvider.java
index 2bacd89b2..2bea7cae1 100644
--- a/src/com/android/dialer/database/FilteredNumberProvider.java
+++ b/src/com/android/dialer/database/FilteredNumberProvider.java
@@ -33,6 +33,7 @@ import android.util.Log;
import com.android.contacts.common.GeoUtil;
import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
import com.android.dialerbind.DatabaseHelperManager;
+import com.android.dialerbind.ObjectFactory;
import com.google.common.annotations.VisibleForTesting;
import java.util.Arrays;
@@ -50,14 +51,6 @@ public class FilteredNumberProvider extends ContentProvider {
private static final int FILTERED_NUMBERS_TABLE_ID = 2;
private static final UriMatcher sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
- static {
- sUriMatcher.addURI(FilteredNumberContract.AUTHORITY,
- FilteredNumberContract.FilteredNumber.FILTERED_NUMBERS_TABLE,
- FILTERED_NUMBERS_TABLE);
- sUriMatcher.addURI(FilteredNumberContract.AUTHORITY,
- FilteredNumberContract.FilteredNumber.FILTERED_NUMBERS_TABLE + "/#",
- FILTERED_NUMBERS_TABLE_ID);
- }
@Override
public boolean onCreate() {
@@ -65,6 +58,12 @@ public class FilteredNumberProvider extends ContentProvider {
if (mDialerDatabaseHelper == null) {
return false;
}
+ sUriMatcher.addURI(ObjectFactory.getFilteredNumberProviderAuthority(),
+ FilteredNumberContract.FilteredNumber.FILTERED_NUMBERS_TABLE,
+ FILTERED_NUMBERS_TABLE);
+ sUriMatcher.addURI(ObjectFactory.getFilteredNumberProviderAuthority(),
+ FilteredNumberContract.FilteredNumber.FILTERED_NUMBERS_TABLE + "/#",
+ FILTERED_NUMBERS_TABLE_ID);
return true;
}
diff --git a/src/com/android/dialerbind/ObjectFactory.java b/src/com/android/dialerbind/ObjectFactory.java
index 73c1c6fb3..d67ada0d1 100644
--- a/src/com/android/dialerbind/ObjectFactory.java
+++ b/src/com/android/dialerbind/ObjectFactory.java
@@ -35,6 +35,10 @@ public class ObjectFactory {
return null;
}
+ public static String getFilteredNumberProviderAuthority() {
+ return "com.android.dialer.database.filterednumberprovider";
+ }
+
/**
* Create a new instance of the call log adapter.
* @param context The context to use.
diff --git a/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java b/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java
index 94bf6e6c2..5184930f7 100644
--- a/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java
+++ b/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java
@@ -32,7 +32,8 @@ public class FilteredNumberProviderTest extends
private static final String TIME_ZONE_AMERICA_LOS_ANGELES = "America/Los_Angeles";
private static final String DEFAULT_TIMEZONE = TIME_ZONE_AMERICA_LOS_ANGELES;
private static final String DEFAULT_COUNTRY_ISO = "US";
- private static final String TEST_NUMBER = "+1234567890";
+ private static final String TEST_NUMBER = "234567890";
+ private static final String TEST_NORMALIZED_NUMBER = "+1234567890";
private static final long TEST_TIME = 1439936706;
public FilteredNumberProviderTest () {
@@ -141,7 +142,7 @@ public class FilteredNumberProviderTest extends
v.put(FilteredNumberContract.FilteredNumberColumns.LAST_TIME_FILTERED, TEST_TIME);
int rows = mResolver.update(FilteredNumberContract.FilteredNumber.CONTENT_URI, v,
FilteredNumberContract.FilteredNumberColumns.NORMALIZED_NUMBER + " = ?",
- new String[]{TEST_NUMBER});
+ new String[]{TEST_NORMALIZED_NUMBER});
assertEquals(rows, 1);
ContentValues expected = getTestValues(TEST_TIME);
@@ -186,7 +187,9 @@ public class FilteredNumberProviderTest extends
private ContentValues getTestValues(Long timeNow) {
ContentValues v = new ContentValues();
v.putNull(FilteredNumberContract.FilteredNumberColumns._ID);
- v.put(FilteredNumberContract.FilteredNumberColumns.NORMALIZED_NUMBER, TEST_NUMBER);
+ v.put(FilteredNumberContract.FilteredNumberColumns.NORMALIZED_NUMBER,
+ TEST_NORMALIZED_NUMBER);
+ v.put(FilteredNumberContract.FilteredNumberColumns.NUMBER, TEST_NUMBER);
v.put(FilteredNumberContract.FilteredNumberColumns.COUNTRY_ISO, DEFAULT_COUNTRY_ISO);
v.put(FilteredNumberContract.FilteredNumberColumns.TIMES_FILTERED, 0);
v.putNull(FilteredNumberContract.FilteredNumberColumns.LAST_TIME_FILTERED);