Prototype ConversationCursor/ConversationProvider

* Handles updates/deletes from the list instantly, then forwards the request
  to the underlying provider
* Only starred/delete are implemented currently for Email types; the Gmail
  provider doesn't yet support updates to UIProvider uri's
  Note: Email types support read there's no read/unread support in the prototype
  UI
* Updated UIProvider/MockUiProvider with latest adds to Conversation class
* Underlying provider must notify ConversationCursor of changes via newly
  defined notifier URI

TODO: ConversationCursor wants unit tests

Change-Id: I91babcd5c27109acaa1f7479d584524e8a508a56
diff --git a/src/com/android/mail/providers/UIProvider.java b/src/com/android/mail/providers/UIProvider.java
index 8fcfe2b..e1121d3 100644
--- a/src/com/android/mail/providers/UIProvider.java
+++ b/src/com/android/mail/providers/UIProvider.java
@@ -161,7 +161,7 @@
         FolderColumns.CONVERSATION_LIST_URI,
         FolderColumns.CHILD_FOLDERS_LIST_URI,
         FolderColumns.UNREAD_COUNT,
-        FolderColumns.TOTAL_COUNT
+        FolderColumns.TOTAL_COUNT,
     };
 
     public static final int FOLDER_ID_COLUMN = 0;
@@ -243,7 +243,9 @@
         ConversationColumns.NUM_MESSAGES,
         ConversationColumns.NUM_DRAFTS,
         ConversationColumns.SENDING_STATE,
-        ConversationColumns.PRIORITY
+        ConversationColumns.PRIORITY,
+        ConversationColumns.READ,
+        ConversationColumns.STARRED
     };
 
     // These column indexes only work when the caller uses the
@@ -260,6 +262,8 @@
     public static final int CONVERSATION_NUM_DRAFTS_COLUMN = 9;
     public static final int CONVERSATION_SENDING_STATE_COLUMN = 10;
     public static final int CONVERSATION_PRIORITY_COLUMN = 11;
+    public static final int CONVERSATION_READ_COLUMN = 12;
+    public static final int CONVERSATION_STARRED_COLUMN = 13;
 
     public static final class ConversationSendingState {
         public static final int OTHER = 0;
@@ -273,6 +277,13 @@
         public static final int HIGH = 1;
     };
 
+    public static final class ConversationFlags {
+        public static final int READ = 1<<0;
+        public static final int STARRED = 1<<1;
+        public static final int REPLIED = 1<<2;
+        public static final int FORWARDED = 1<<3;
+    };
+
     public static final class ConversationColumns {
         public static final String URI = "conversationUri";
         /**
@@ -330,6 +341,16 @@
          */
         public static String PRIORITY = "priority";
 
+        /**
+         * This boolean column indicates whether the conversation has been read
+         */
+        public static String READ = "read";
+
+        /**
+         * This boolean column indicates whether the conversation has been read
+         */
+        public static String STARRED = "starred";
+
         public ConversationColumns() {
         }
     }