diff options
author | Jorge Ruesga <jorge@ruesga.com> | 2015-03-01 22:02:40 +0100 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2016-12-30 20:13:39 +0200 |
commit | 6fb0b9f34afe929281f3d523896c99fdd78cc152 (patch) | |
tree | 4aca3e6a78c5229250f831ee457994ffcd16284a /emailcommon | |
parent | d8546653e38b4cd8d2e9fd2ca5f168bfe6ff4f68 (diff) | |
download | android_packages_apps_Email-6fb0b9f34afe929281f3d523896c99fdd78cc152.tar.gz android_packages_apps_Email-6fb0b9f34afe929281f3d523896c99fdd78cc152.tar.bz2 android_packages_apps_Email-6fb0b9f34afe929281f3d523896c99fdd78cc152.zip |
email: suggested contacts
This change adds support for suggested contacts (email addresses not in the contact
provider and received via email). The implementation creates a new separate
"extras" database (to avoid conflicts with future aosp changes). In the table
SuggestedContacts are stored every email address present in every email inserted
in the database.
This allow to display this contacts in the RecipientEditTextView when compose an email.
Suggested contacts are selected by account (only those ones received by that account).
This features is opt-out by default, but it can be activated in general settings by
choosing the suggested contact mode:
* none: Not active
* recents: Those received within the last 7 days
* all: All the suggested contacts
Change-Id: I156c3b1e2c4e4cff985a2183bc72b805bd596f3b
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
Diffstat (limited to 'emailcommon')
-rwxr-xr-x | emailcommon/src/com/android/emailcommon/provider/EmailContent.java | 9 | ||||
-rw-r--r-- | emailcommon/src/com/android/emailcommon/provider/SuggestedContact.java | 48 |
2 files changed, 57 insertions, 0 deletions
diff --git a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java index d4538172f..913cb2bfe 100755 --- a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java +++ b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java @@ -198,6 +198,7 @@ public abstract class EmailContent { MessageStateChange.init(); Body.initBody(); Attachment.initAttachment(); + SuggestedContact.initSuggestedContact(); } } @@ -1921,4 +1922,12 @@ public abstract class EmailContent { public static final String PROTOCOL_POLICIES_ENFORCED = "protocolPoliciesEnforced"; public static final String PROTOCOL_POLICIES_UNSUPPORTED = "protocolPoliciesUnsupported"; } + + public interface SuggestedContactColumns extends BaseColumns { + static final String ACCOUNT_KEY = "accountKey"; + static final String ADDRESS = "address"; + static final String NAME = "name"; + static final String DISPLAY_NAME = "display_name"; + static final String LAST_SEEN = "last_seen"; + } } diff --git a/emailcommon/src/com/android/emailcommon/provider/SuggestedContact.java b/emailcommon/src/com/android/emailcommon/provider/SuggestedContact.java new file mode 100644 index 000000000..ef46d9cfb --- /dev/null +++ b/emailcommon/src/com/android/emailcommon/provider/SuggestedContact.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2014 The CyanogenMod 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.emailcommon.provider; + +import android.net.Uri; +import android.provider.BaseColumns; + +import com.android.emailcommon.provider.EmailContent.SuggestedContactColumns; + +/** + * A suggested contact extracted from sent and received emails to be displayed when the user + * compose a message. Tied to a specific account. + */ +public abstract class SuggestedContact extends EmailContent + implements SuggestedContactColumns { + public static final String TABLE_NAME = "SuggestedContact"; + public static Uri CONTENT_URI; + public static Uri ACCOUNT_ID_URI; + + public static final String[] PROJECTION = new String[] { + SuggestedContact._ID, + SuggestedContact.ACCOUNT_KEY, + SuggestedContact.ADDRESS, + SuggestedContact.NAME, + SuggestedContact.DISPLAY_NAME, + SuggestedContact.LAST_SEEN, + }; + + public static void initSuggestedContact() { + CONTENT_URI = Uri.parse(EmailContent.CONTENT_URI + "/suggestedcontact"); + ACCOUNT_ID_URI = Uri.parse(EmailContent.CONTENT_URI + "/suggestedcontact/account"); + } +}
\ No newline at end of file |