Merge changes If1b344d5,Idaffc3f0,I5a33ad27 into ub-contactsdialer-i-dev

* changes:
  Remove getGroupWritableAccounts method
  Replace getAccounts method with blockForWritableAccounts
  Add setter for accounts in AccountsListAdapter
diff --git a/src/com/android/contacts/editor/EditorUiUtils.java b/src/com/android/contacts/editor/EditorUiUtils.java
index 23c7fa0..a500eae 100644
--- a/src/com/android/contacts/editor/EditorUiUtils.java
+++ b/src/com/android/contacts/editor/EditorUiUtils.java
@@ -40,6 +40,7 @@
 import android.provider.ContactsContract.CommonDataKinds.SipAddress;
 import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
 import android.provider.ContactsContract.CommonDataKinds.Website;
+import android.support.v4.content.res.ResourcesCompat;
 import android.text.TextUtils;
 import android.widget.ImageView;
 
@@ -158,37 +159,44 @@
     public static Drawable getMimeTypeDrawable(Context context, String mimeType) {
         switch (mimeType) {
             case StructuredName.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.quantum_ic_person_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_person_vd_theme_24, null);
             case StructuredPostal.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.quantum_ic_place_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_place_vd_theme_24, null);
             case SipAddress.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(
-                        R.drawable.quantum_ic_dialer_sip_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_dialer_sip_vd_theme_24, null);
             case Phone.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.quantum_ic_phone_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_phone_vd_theme_24, null);
             case Im.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(
-                        R.drawable.quantum_ic_message_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_message_vd_theme_24, null);
             case Event.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.quantum_ic_event_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_event_vd_theme_24, null);
             case Email.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.quantum_ic_email_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_email_vd_theme_24, null);
             case Website.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.quantum_ic_public_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_public_vd_theme_24, null);
             case Photo.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(
-                        R.drawable.quantum_ic_camera_alt_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_camera_alt_vd_theme_24, null);
             case GroupMembership.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(R.drawable.quantum_ic_label_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_label_vd_theme_24, null);
             case Organization.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(
-                        R.drawable.quantum_ic_business_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_business_vd_theme_24, null);
             case Note.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(
-                        R.drawable.quantum_ic_insert_comment_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_insert_comment_vd_theme_24, null);
             case Relation.CONTENT_ITEM_TYPE:
-                return context.getResources().getDrawable(
-                        R.drawable.quantum_ic_circles_ext_vd_theme_24);
+                return ResourcesCompat.getDrawable(context.getResources(),
+                        R.drawable.quantum_ic_circles_ext_vd_theme_24, null);
             default:
                 return null;
         }
diff --git a/src/com/android/contacts/model/account/FallbackAccountType.java b/src/com/android/contacts/model/account/FallbackAccountType.java
index f36f370..907fce4 100644
--- a/src/com/android/contacts/model/account/FallbackAccountType.java
+++ b/src/com/android/contacts/model/account/FallbackAccountType.java
@@ -21,6 +21,7 @@
 import android.graphics.PorterDuff;
 import android.graphics.drawable.Drawable;
 import android.support.v4.content.ContextCompat;
+import android.support.v4.content.res.ResourcesCompat;
 
 import com.android.contacts.R;
 import com.android.contacts.model.dataitem.DataKind;
@@ -63,7 +64,7 @@
 
     @Override
     public Drawable getDisplayIcon(Context context) {
-        final Drawable icon = context.getResources().getDrawable(iconRes);
+        final Drawable icon = ResourcesCompat.getDrawable(context.getResources(), iconRes, null);
         icon.mutate().setColorFilter(ContextCompat.getColor(context,
                 R.color.actionbar_icon_color_grey), PorterDuff.Mode.SRC_ATOP);
         return icon;
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 767b6c7..dc1cfcf 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -74,6 +74,7 @@
 import android.support.graphics.drawable.VectorDrawableCompat;
 import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.LocalBroadcastManager;
+import android.support.v4.content.res.ResourcesCompat;
 import android.support.v7.graphics.Palette;
 import android.telecom.PhoneAccount;
 import android.telecom.TelecomManager;
@@ -1374,8 +1375,8 @@
      * When contact is a SIM contact, only shows "Add phone number".
      */
     private void initializeNoContactDetailCard(boolean areAllRawContactsSimAccounts) {
-        final Drawable phoneIcon = getResources().getDrawable(
-                R.drawable.quantum_ic_phone_vd_theme_24).mutate();
+        final Drawable phoneIcon = ResourcesCompat.getDrawable(getResources(),
+                R.drawable.quantum_ic_phone_vd_theme_24, null).mutate();
         final Entry phonePromptEntry = new Entry(CARD_ENTRY_ID_EDIT_CONTACT,
                 phoneIcon, getString(R.string.quickcontact_add_phone_number),
                 /* subHeader = */ null, /* subHeaderIcon = */ null, /* text = */ null,
@@ -1395,8 +1396,8 @@
         promptEntries.get(0).add(phonePromptEntry);
 
         if (!areAllRawContactsSimAccounts) {
-            final Drawable emailIcon = getResources().getDrawable(
-                    R.drawable.quantum_ic_email_vd_theme_24).mutate();
+            final Drawable emailIcon = ResourcesCompat.getDrawable(getResources(),
+                    R.drawable.quantum_ic_email_vd_theme_24, null).mutate();
             final Entry emailPromptEntry = new Entry(CARD_ENTRY_ID_EDIT_CONTACT,
                     emailIcon, getString(R.string.quickcontact_add_email), /* subHeader = */ null,
                     /* subHeaderIcon = */ null,
@@ -2481,8 +2482,8 @@
                 Trace.endSection();
                 Trace.beginSection("initialize permission explanation card");
 
-                final Drawable historyIcon = getResources().getDrawable(
-                        R.drawable.quantum_ic_history_vd_theme_24);
+                final Drawable historyIcon = ResourcesCompat.getDrawable(getResources(),
+                        R.drawable.quantum_ic_history_vd_theme_24, null);
 
                 final Entry permissionExplanationEntry = new Entry(CARD_ENTRY_ID_REQUEST_PERMISSION,
                         historyIcon, getString(R.string.permission_explanation_header),