1ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa/* 2da9cdc10fca76c960b43923d7da3abc627655fefMakoto Onuki * Copyright (C) 2012 The Android Open Source Project 3ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * 4ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * Licensed under the Apache License, Version 2.0 (the "License"); 5ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * you may not use this file except in compliance with the License. 6ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * You may obtain a copy of the License at 7ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * 8ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * http://www.apache.org/licenses/LICENSE-2.0 9ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * 10ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * Unless required by applicable law or agreed to in writing, software 11ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * distributed under the License is distributed on an "AS IS" BASIS, 12ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * See the License for the specific language governing permissions and 14ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * limitations under the License. 15ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa */ 16da9cdc10fca76c960b43923d7da3abc627655fefMakoto Onuki 17da9cdc10fca76c960b43923d7da3abc627655fefMakoto Onukipackage com.android.contacts.widget; 18ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa 19ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawaimport android.content.Context; 20ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawaimport android.util.AttributeSet; 21da9cdc10fca76c960b43923d7da3abc627655fefMakoto Onukiimport android.widget.QuickContactBadge; 22ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa 23ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa/** 24da9cdc10fca76c960b43923d7da3abc627655fefMakoto Onuki * Custom {@link QuickContactBadge} that improves layouting performance. 25ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa * 26da9cdc10fca76c960b43923d7da3abc627655fefMakoto Onuki * This improves the performance by not passing requestLayout() to its parent, taking advantage 27da9cdc10fca76c960b43923d7da3abc627655fefMakoto Onuki * of knowing that image size won't change once set. 28ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa */ 29da9cdc10fca76c960b43923d7da3abc627655fefMakoto Onukipublic class LayoutSuppressingQuickContactBadge extends QuickContactBadge { 30ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa 31da9cdc10fca76c960b43923d7da3abc627655fefMakoto Onuki public LayoutSuppressingQuickContactBadge(Context context, AttributeSet attrs) { 32ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa super(context, attrs); 33ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa } 34ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa 35ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa @Override 36ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa public void requestLayout() { 37ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa forceLayout(); 38ef0513fe308c6a1fcf9cb9e3251711da9d07ae47Daisuke Miyakawa } 39da9cdc10fca76c960b43923d7da3abc627655fefMakoto Onuki} 40