summaryrefslogtreecommitdiffstats
path: root/emailcommon
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2015-03-01 22:02:40 +0100
committerSteve Kondik <steve@cyngn.com>2015-10-18 14:03:21 -0700
commit8210da8b5023c6e9abe77cea6428c4c1339c0b02 (patch)
tree1a937b992b6a02a473d2ae620437b2bd55b4baaf /emailcommon
parentfb2b538c54d9c365a977a87ec94fd2f632992f73 (diff)
downloadandroid_packages_apps_Email-8210da8b5023c6e9abe77cea6428c4c1339c0b02.tar.gz
android_packages_apps_Email-8210da8b5023c6e9abe77cea6428c4c1339c0b02.tar.bz2
android_packages_apps_Email-8210da8b5023c6e9abe77cea6428c4c1339c0b02.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-xemailcommon/src/com/android/emailcommon/provider/EmailContent.java9
-rw-r--r--emailcommon/src/com/android/emailcommon/provider/SuggestedContact.java48
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 745a161e0..f1fcb0dcf 100755
--- a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java
+++ b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java
@@ -196,6 +196,7 @@ public abstract class EmailContent {
MessageStateChange.init();
Body.initBody();
Attachment.initAttachment();
+ SuggestedContact.initSuggestedContact();
}
}
@@ -1853,4 +1854,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