/* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package com.android.dialer.database; import android.net.Uri; import android.provider.BaseColumns; import com.android.dialerbind.ObjectFactory; /** *

* The contract between the filtered number provider and applications. Contains * definitions for the supported URIs and columns. * Currently only accessible within Dialer. *

*/ public final class FilteredNumberContract { /** The authority for the filtered numbers provider */ 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); /** The type of filtering to be applied, e.g. block the number or whitelist the number. */ public interface FilteredNumberTypes { static final int UNDEFINED = 0; /** * Dialer will disconnect the call without sending the caller to voicemail. */ static final int BLOCKED_NUMBER = 1; } /** The original source of the filtered number, e.g. the user manually added it. */ public interface FilteredNumberSources { static final int UNDEFINED = 0; /** * The user manually added this number through Dialer (e.g. from the call log or InCallUI). */ static final int USER = 1; } public interface FilteredNumberColumns { // TYPE: INTEGER static final String _ID = "_id"; /** * Represents the number to be filtered, normalized to compare phone numbers for equality. * * TYPE: TEXT */ 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 * the country detector system. The country iso is also needed in order to format * phone numbers correctly. * * TYPE: TEXT */ static final String COUNTRY_ISO = "country_iso"; /** * The number of times the number has been filtered by Dialer. * When this number is incremented, LAST_TIME_FILTERED should also be updated to * the current time. * * TYPE: INTEGER */ static final String TIMES_FILTERED = "times_filtered"; /** * Set to the current time when the phone number is filtered. * When this is updated, TIMES_FILTERED should also be incremented. * * TYPE: LONG */ static final String LAST_TIME_FILTERED = "last_time_filtered"; // TYPE: LONG static final String CREATION_TIME = "creation_time"; /** * Indicates the type of filtering to be applied. * * TYPE: INTEGER * See {@link FilteredNumberTypes} */ static final String TYPE = "type"; /** * Integer representing the original source of the filtered number. * * TYPE: INTEGER * See {@link FilteredNumberSources} */ static final String SOURCE = "source"; } /** *

* Constants for the table of filtered numbers. *

*

Operations

*
*
Insert
*
Required fields: NUMBER, NORMALIZED_NUMBER, TYPE, SOURCE. * A default value will be used for the other fields if left null.
*
Update
*
Delete
*
Query
*
{@link #CONTENT_URI} can be used for any query, append an ID to * retrieve a specific filtered number entry.
*
*/ public static class FilteredNumber implements BaseColumns { public static final String FILTERED_NUMBERS_TABLE = "filtered_numbers_table"; public static final String FILTERED_NUMBERS_INCREMENT_FILTERED_COUNT = "filtered_numbers_increment_filtered_count"; public static final Uri CONTENT_URI = Uri.withAppendedPath( AUTHORITY_URI, FILTERED_NUMBERS_TABLE); public static final Uri CONTENT_URI_INCREMENT_FILTERED_COUNT = Uri.withAppendedPath( AUTHORITY_URI, FILTERED_NUMBERS_INCREMENT_FILTERED_COUNT); /** * This utility class cannot be instantiated. */ private FilteredNumber () {} /** * The MIME type of {@link #CONTENT_URI} providing a directory of * filtered numbers. */ public static final String CONTENT_TYPE = "vnd.android.cursor.dir/filtered_numbers_table"; /** * The MIME type of a {@link #CONTENT_URI} single filtered number. */ public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/filtered_numbers_table"; } }