Set "supports settings" on EAS folders (database upgrade)

Change-Id: I19324d25846e8f12a5e4783c427291d4fc13bd3d
diff --git a/CleanSpec.mk b/CleanSpec.mk
index f62280c..d974023 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -69,6 +69,8 @@
 $(call add-clean-step, rm -rf $(OUT_DIR)/out/target/common/obj/JAVA_LIBRARIES/com.android.emailcommon*)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/EmailGoogle_intermediates)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Email2_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/out/target/common/obj/JAVA_LIBRARIES/com.android.emailcommon*)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Email*)
 
 # ************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
diff --git a/email2/emailcommon/src/com/android/emailcommon/provider/Mailbox.java b/email2/emailcommon/src/com/android/emailcommon/provider/Mailbox.java
index 4e44ad2..6a3019d 100644
--- a/email2/emailcommon/src/com/android/emailcommon/provider/Mailbox.java
+++ b/email2/emailcommon/src/com/android/emailcommon/provider/Mailbox.java
@@ -211,6 +211,8 @@
     public static final int FLAG_ACCEPTS_MOVED_MAIL = 1<<4;
     /** can be used as a target for appending messages */
     public static final int FLAG_ACCEPTS_APPENDED_MAIL = 1<<5;
+    /** has user settings (sync lookback, etc.) */
+    public static final int FLAG_SUPPORTS_SETTINGS = 1<<6;
 
     // Magic mailbox ID's
     // NOTE:  This is a quick solution for merged mailboxes.  I would rather implement this
diff --git a/email2/src/com/android/email/provider/DBHelper.java b/email2/src/com/android/email/provider/DBHelper.java
index 4339fb7..bc783ab 100644
--- a/email2/src/com/android/email/provider/DBHelper.java
+++ b/email2/src/com/android/email/provider/DBHelper.java
@@ -24,6 +24,7 @@
 import android.database.SQLException;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
+import android.os.Debug;
 import android.provider.ContactsContract;
 import android.util.Log;
 
@@ -119,8 +120,10 @@
     // Version 33: Add columns to attachment for ui provider columns
     // Version 34: Add total count to mailbox
     // Version 35: Set up defaults for lastTouchedCount for drafts and sent
+    // Version 36: mblank intentionally left this space
+    // Version 37: Add flag for settings support in folders
 
-    public static final int DATABASE_VERSION = 35;
+    public static final int DATABASE_VERSION = 37;
 
     // Any changes to the database format *must* include update-in-place code.
     // Original version: 2
@@ -881,6 +884,25 @@
                 }
                 oldVersion = 35;
             }
+            if (oldVersion == 35 || oldVersion == 36) {
+                try {
+                    // Set "supports settings" for EAS mailboxes
+                    db.execSQL("update " + Mailbox.TABLE_NAME + " set " +
+                            MailboxColumns.FLAGS + "=" + MailboxColumns.FLAGS + "+" +
+                            Mailbox.FLAG_SUPPORTS_SETTINGS + " where (" +
+                            MailboxColumns.FLAGS + "&" + Mailbox.FLAG_HOLDS_MAIL + ")!=0 and " +
+                            MailboxColumns.ACCOUNT_KEY + " IN (SELECT " + Account.TABLE_NAME +
+                            "." + AccountColumns.ID + " from " + Account.TABLE_NAME + "," +
+                            HostAuth.TABLE_NAME + " where " + Account.TABLE_NAME + "." +
+                            AccountColumns.HOST_AUTH_KEY_RECV + "=" + HostAuth.TABLE_NAME + "." +
+                            HostAuthColumns.ID + " and " + HostAuthColumns.PROTOCOL + "='" +
+                            HostAuth.SCHEME_EAS + "')");
+                } catch (SQLException e) {
+                    // Shouldn't be needed unless we're debugging and interrupt the process
+                    Log.w(TAG, "Exception upgrading EmailProvider.db from 35 to 36 " + e);
+                }
+                oldVersion = 37;
+            }
         }
 
         @Override