Merge "Remove call to hidden suppressLayout()"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index dafe4c2..2a4f3d1 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -122,12 +122,6 @@
             </intent-filter>
 
             <intent-filter>
-                <action android:name="com.android.contacts.action.FILTER_CONTACTS" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="vnd.android.cursor.dir/contact" />
-            </intent-filter>
-
-            <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <data android:mimeType="vnd.android.cursor.dir/person" />
diff --git a/src/com/android/contacts/ContactsSearchManager.java b/src/com/android/contacts/ContactsSearchManager.java
deleted file mode 100644
index cadd2ce..0000000
--- a/src/com/android/contacts/ContactsSearchManager.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source 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.contacts;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.provider.ContactsContract;
-
-import com.android.contacts.list.ContactsRequest;
-import com.android.contacts.list.UiIntentActions;
-
-/**
- * A convenience class that helps launch contact search from within the app.
- */
-public class ContactsSearchManager {
-
-    /**
-     * An extra that provides context for search UI and defines the scope for
-     * the search queries.
-     */
-    public static final String ORIGINAL_REQUEST_KEY = "originalRequest";
-
-    /**
-     * Starts the contact list activity in the search mode.
-     */
-    public static void startSearch(Activity context, String initialQuery) {
-        context.startActivity(buildIntent(context, initialQuery, null));
-    }
-
-    public static void startSearchForResult(Activity context, String initialQuery,
-            int requestCode, ContactsRequest originalRequest) {
-        context.startActivityForResult(
-                buildIntent(context, initialQuery, originalRequest), requestCode);
-    }
-
-    public static void startSearch(Activity context, String initialQuery,
-            ContactsRequest originalRequest) {
-        context.startActivity(buildIntent(context, initialQuery, originalRequest));
-    }
-
-    private static Intent buildIntent(
-            Activity context, String initialQuery, ContactsRequest originalRequest) {
-        Intent intent = new Intent();
-        intent.setData(ContactsContract.Contacts.CONTENT_URI);
-        intent.setAction(UiIntentActions.FILTER_CONTACTS_ACTION);
-
-        Intent originalIntent = context.getIntent();
-        Bundle originalExtras = originalIntent.getExtras();
-        if (originalExtras != null) {
-            intent.putExtras(originalExtras);
-        }
-        intent.putExtra(UiIntentActions.FILTER_TEXT_EXTRA_KEY, initialQuery);
-        if (originalRequest != null) {
-            intent.putExtra(ORIGINAL_REQUEST_KEY, originalRequest);
-        }
-        return intent;
-    }
-}
diff --git a/src/com/android/contacts/list/ContactsIntentResolver.java b/src/com/android/contacts/list/ContactsIntentResolver.java
index b6bcb31..259e0c7 100644
--- a/src/com/android/contacts/list/ContactsIntentResolver.java
+++ b/src/com/android/contacts/list/ContactsIntentResolver.java
@@ -16,13 +16,10 @@
 
 package com.android.contacts.list;
 
-import com.android.contacts.ContactsSearchManager;
-
 import android.app.Activity;
 import android.app.SearchManager;
 import android.content.Intent;
 import android.net.Uri;
-import android.os.Bundle;
 import android.provider.Contacts.ContactMethods;
 import android.provider.Contacts.People;
 import android.provider.Contacts.Phones;
@@ -145,24 +142,6 @@
                 intent.setAction(Intent.ACTION_DEFAULT);
                 intent.setData(null);
             }
-        } else if (UiIntentActions.FILTER_CONTACTS_ACTION.equals(action)) {
-            // When we get a FILTER_CONTACTS_ACTION, it represents search in the context
-            // of some other action. Let's retrieve the original action to provide proper
-            // context for the search queries.
-            request.setActionCode(ContactsRequest.ACTION_DEFAULT);
-            Bundle extras = intent.getExtras();
-            if (extras != null) {
-                request.setQueryString(extras.getString(UiIntentActions.FILTER_TEXT_EXTRA_KEY));
-
-                ContactsRequest originalRequest =
-                        (ContactsRequest)extras.get(ContactsSearchManager.ORIGINAL_REQUEST_KEY);
-                if (originalRequest != null) {
-                    request.copyFrom(originalRequest);
-                }
-            }
-
-            request.setSearchMode(true);
-
         // Since this is the filter activity it receives all intents
         // dispatched from the SearchManager for security reasons
         // so we need to re-dispatch from here to the intended target.
diff --git a/src/com/android/contacts/list/ContactsRequest.java b/src/com/android/contacts/list/ContactsRequest.java
index 7955fde..68b06fa 100644
--- a/src/com/android/contacts/list/ContactsRequest.java
+++ b/src/com/android/contacts/list/ContactsRequest.java
@@ -24,7 +24,7 @@
 /**
  * Parsed form of the intent sent to the Contacts application.
  */
-public class ContactsRequest implements Parcelable {
+public class ContactsRequest {
 
     /** Default mode: browse contacts */
     public static final int ACTION_DEFAULT = 10;
@@ -106,62 +106,6 @@
                 + "}";
     }
 
-    /**
-     * Copies all fields.
-     */
-    public void copyFrom(ContactsRequest request) {
-        mValid = request.mValid;
-        mActionCode = request.mActionCode;
-        mRedirectIntent = request.mRedirectIntent;
-        mTitle = request.mTitle;
-        mSearchMode = request.mSearchMode;
-        mQueryString = request.mQueryString;
-        mIncludeProfile = request.mIncludeProfile;
-        mLegacyCompatibilityMode = request.mLegacyCompatibilityMode;
-        mDirectorySearchEnabled = request.mDirectorySearchEnabled;
-        mContactUri = request.mContactUri;
-    }
-
-    public static Parcelable.Creator<ContactsRequest> CREATOR = new Creator<ContactsRequest>() {
-
-        public ContactsRequest[] newArray(int size) {
-            return new ContactsRequest[size];
-        }
-
-        public ContactsRequest createFromParcel(Parcel source) {
-            ClassLoader classLoader = this.getClass().getClassLoader();
-            ContactsRequest request = new ContactsRequest();
-            request.mValid = source.readInt() != 0;
-            request.mActionCode = source.readInt();
-            request.mRedirectIntent = source.readParcelable(classLoader);
-            request.mTitle = source.readCharSequence();
-            request.mSearchMode = source.readInt() != 0;
-            request.mQueryString = source.readString();
-            request.mIncludeProfile = source.readInt() != 0;
-            request.mLegacyCompatibilityMode  = source.readInt() != 0;
-            request.mDirectorySearchEnabled = source.readInt() != 0;
-            request.mContactUri = source.readParcelable(classLoader);
-            return request;
-        }
-    };
-
-    public void writeToParcel(Parcel dest, int flags) {
-        dest.writeInt(mValid ? 1 : 0);
-        dest.writeInt(mActionCode);
-        dest.writeParcelable(mRedirectIntent, 0);
-        dest.writeCharSequence(mTitle);
-        dest.writeInt(mSearchMode ? 1 : 0);
-        dest.writeString(mQueryString);
-        dest.writeInt(mIncludeProfile ? 1 : 0);
-        dest.writeInt(mLegacyCompatibilityMode ? 1 : 0);
-        dest.writeInt(mDirectorySearchEnabled ? 1 : 0);
-        dest.writeParcelable(mContactUri, 0);
-    }
-
-    public int describeContents() {
-        return 0;
-    }
-
     public boolean isValid() {
         return mValid;
     }
diff --git a/src/com/android/contacts/list/UiIntentActions.java b/src/com/android/contacts/list/UiIntentActions.java
index c892895..5539635 100644
--- a/src/com/android/contacts/list/UiIntentActions.java
+++ b/src/com/android/contacts/list/UiIntentActions.java
@@ -85,17 +85,6 @@
             "com.android.contacts.extra.TITLE_EXTRA";
 
     /**
-     * Activity Action: Display a filtered list of contacts
-     * <p>
-     * Input: Extra field {@link #FILTER_TEXT_EXTRA_KEY} is the text to use for
-     * filtering
-     * <p>
-     * Output: Nothing.
-     */
-    public static final String FILTER_CONTACTS_ACTION =
-            "com.android.contacts.action.FILTER_CONTACTS";
-
-    /**
      * Used as an int extra field in {@link #FILTER_CONTACTS_ACTION}
      * intents to supply the text on which to filter.
      */
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 8ff2205..73a3db9 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -246,6 +246,7 @@
     private Contact mContactData;
     private ContactLoader mContactLoader;
     private PorterDuffColorFilter mColorFilter;
+    private int mColorFilterColor;
 
     private final ImageViewDrawableSetter mPhotoSetter = new ImageViewDrawableSetter();
 
@@ -785,7 +786,7 @@
     public void onSaveInstanceState(Bundle savedInstanceState) {
         super.onSaveInstanceState(savedInstanceState);
         if (mColorFilter != null) {
-            savedInstanceState.putInt(KEY_THEME_COLOR, mColorFilter.getColor());
+            savedInstanceState.putInt(KEY_THEME_COLOR, mColorFilterColor);
         }
     }
 
@@ -1837,16 +1838,16 @@
 
     private void setThemeColor(MaterialPalette palette) {
         // If the color is invalid, use the predefined default
-        final int primaryColor = palette.mPrimaryColor;
-        mScroller.setHeaderTintColor(primaryColor);
+        mColorFilterColor = palette.mPrimaryColor;
+        mScroller.setHeaderTintColor(mColorFilterColor);
         mStatusBarColor = palette.mSecondaryColor;
         updateStatusBarColor();
 
         mColorFilter =
-                new PorterDuffColorFilter(primaryColor, PorterDuff.Mode.SRC_ATOP);
-        mContactCard.setColorAndFilter(primaryColor, mColorFilter);
-        mRecentCard.setColorAndFilter(primaryColor, mColorFilter);
-        mAboutCard.setColorAndFilter(primaryColor, mColorFilter);
+                new PorterDuffColorFilter(mColorFilterColor, PorterDuff.Mode.SRC_ATOP);
+        mContactCard.setColorAndFilter(mColorFilterColor, mColorFilter);
+        mRecentCard.setColorAndFilter(mColorFilterColor, mColorFilter);
+        mAboutCard.setColorAndFilter(mColorFilterColor, mColorFilter);
     }
 
     private void updateStatusBarColor() {
diff --git a/src/com/android/contacts/util/AccountPromptUtils.java b/src/com/android/contacts/util/AccountPromptUtils.java
index 979176b..172d274 100644
--- a/src/com/android/contacts/util/AccountPromptUtils.java
+++ b/src/com/android/contacts/util/AccountPromptUtils.java
@@ -107,7 +107,6 @@
             public void run(AccountManagerFuture<Bundle> future) {
                 if (future.isCancelled()) {
                     // The account creation process was canceled
-                    activity.finish();
                     return;
                 }
                 try {