ImageCardView.java revision 5358b0ca6ed795892bd097fdf15d41fb6b1a03d2
1b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn/* 2b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * Copyright (C) 2014 The Android Open Source Project 3b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * 4b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * in compliance with the License. You may obtain a copy of the License at 6b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * 7b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * http://www.apache.org/licenses/LICENSE-2.0 8b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * 9b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * Unless required by applicable law or agreed to in writing, software distributed under the License 10b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * or implied. See the License for the specific language governing permissions and limitations under 12b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn * the License. 13b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn */ 14b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbournpackage android.support.v17.leanback.widget; 15b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 16b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbournimport android.content.Context; 17ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Guimport android.content.res.TypedArray; 18b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbournimport android.graphics.drawable.Drawable; 19b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbournimport android.support.v17.leanback.R; 20b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilsonimport android.text.TextUtils; 21b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbournimport android.util.AttributeSet; 22b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbournimport android.view.LayoutInflater; 23b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbournimport android.view.View; 24b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilsonimport android.view.ViewGroup; 25b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbournimport android.widget.ImageView; 269de363b8db05106b03d115c266859fe200d41db7Dake Guimport android.widget.ImageView.ScaleType; 27b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbournimport android.widget.TextView; 28b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 29961a8f12d1fbeeb86ea066f9f2c693abb2ce50f2Tim Kilbourn/** 30961a8f12d1fbeeb86ea066f9f2c693abb2ce50f2Tim Kilbourn * A card view with an {@link ImageView} as its main region. 31961a8f12d1fbeeb86ea066f9f2c693abb2ce50f2Tim Kilbourn */ 32b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbournpublic class ImageCardView extends BaseCardView { 33b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 34b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn private ImageView mImageView; 35b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn private View mInfoArea; 36b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn private TextView mTitleView; 37b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn private TextView mContentView; 38b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn private ImageView mBadgeImage; 39b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn private ImageView mBadgeFadeMask; 40b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 41b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public ImageCardView(Context context) { 42b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn this(context, null); 43b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 44b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 45b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public ImageCardView(Context context, AttributeSet attrs) { 46b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn this(context, attrs, R.attr.imageCardViewStyle); 47b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 48b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 49b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public ImageCardView(Context context, AttributeSet attrs, int defStyle) { 50b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn super(context, attrs, defStyle); 51b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 52b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn LayoutInflater inflater = LayoutInflater.from(context); 53b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn View v = inflater.inflate(R.layout.lb_image_card_view, this); 54b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 55b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mImageView = (ImageView) v.findViewById(R.id.main_image); 56b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson mImageView.setVisibility(View.INVISIBLE); 57b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mInfoArea = v.findViewById(R.id.info_field); 58b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mTitleView = (TextView) v.findViewById(R.id.title_text); 59b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mContentView = (TextView) v.findViewById(R.id.content_text); 60b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mBadgeImage = (ImageView) v.findViewById(R.id.extra_badge); 61b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mBadgeFadeMask = (ImageView) v.findViewById(R.id.fade_mask); 62ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu 63ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu if (mInfoArea != null) { 64ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.lbImageCardView, 65ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu defStyle, 0); 66ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu try { 67ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu setInfoAreaBackground( 68ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu a.getDrawable(R.styleable.lbImageCardView_infoAreaBackground)); 69ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } finally { 70ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu a.recycle(); 71ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } 72ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } 73b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 74b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 759de363b8db05106b03d115c266859fe200d41db7Dake Gu public final ImageView getMainImageView() { 769de363b8db05106b03d115c266859fe200d41db7Dake Gu return mImageView; 779de363b8db05106b03d115c266859fe200d41db7Dake Gu } 789de363b8db05106b03d115c266859fe200d41db7Dake Gu 799de363b8db05106b03d115c266859fe200d41db7Dake Gu public void setMainImageAdjustViewBounds(boolean adjustViewBounds) { 809de363b8db05106b03d115c266859fe200d41db7Dake Gu if (mImageView != null) { 819de363b8db05106b03d115c266859fe200d41db7Dake Gu mImageView.setAdjustViewBounds(adjustViewBounds); 829de363b8db05106b03d115c266859fe200d41db7Dake Gu } 839de363b8db05106b03d115c266859fe200d41db7Dake Gu } 849de363b8db05106b03d115c266859fe200d41db7Dake Gu 859de363b8db05106b03d115c266859fe200d41db7Dake Gu public void setMainImageScaleType(ScaleType scaleType) { 869de363b8db05106b03d115c266859fe200d41db7Dake Gu if (mImageView != null) { 879de363b8db05106b03d115c266859fe200d41db7Dake Gu mImageView.setScaleType(scaleType); 889de363b8db05106b03d115c266859fe200d41db7Dake Gu } 899de363b8db05106b03d115c266859fe200d41db7Dake Gu } 909de363b8db05106b03d115c266859fe200d41db7Dake Gu 91932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu /** 92932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu * Set drawable with fade-in animation. 93932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu */ 94b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public void setMainImage(Drawable drawable) { 95932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu setMainImage(drawable, true); 96932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu } 97932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu 98932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu /** 99932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu * Set drawable with optional fade-in animation. 100932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu */ 101932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu public void setMainImage(Drawable drawable, boolean fade) { 102b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn if (mImageView == null) { 103b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return; 104b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 105b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 106b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mImageView.setImageDrawable(drawable); 107b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson if (drawable == null) { 108932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu mImageView.animate().cancel(); 109932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu mImageView.setAlpha(1f); 110b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson mImageView.setVisibility(View.INVISIBLE); 111b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson } else { 112b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson mImageView.setVisibility(View.VISIBLE); 113932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu if (fade) { 114932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu fadeIn(mImageView); 115932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu } else { 116932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu mImageView.animate().cancel(); 117932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu mImageView.setAlpha(1f); 118932feed83c3dbc49c9855a1736afd9d5a3428b8eDake Gu } 119b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson } 120b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson } 121b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson 122b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson public void setMainImageDimensions(int width, int height) { 123b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson ViewGroup.LayoutParams lp = mImageView.getLayoutParams(); 124b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson lp.width = width; 125b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson lp.height = height; 126b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson mImageView.setLayoutParams(lp); 127b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 128b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 129b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public Drawable getMainImage() { 130b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn if (mImageView == null) { 131b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return null; 132b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 133b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 134b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return mImageView.getDrawable(); 135b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 136b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 137ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu public Drawable getInfoAreaBackground() { 138ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu if (mInfoArea != null) { 139ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu return mInfoArea.getBackground(); 140ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } 141ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu return null; 142ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } 143ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu 144ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu public void setInfoAreaBackground(Drawable drawable) { 145ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu if (mInfoArea != null) { 146ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu mInfoArea.setBackground(drawable); 147ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu if (mBadgeImage != null) { 148ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu mBadgeImage.setBackground(drawable); 149ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } 150ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } 151ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } 152ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu 153ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu public void setInfoAreaBackgroundColor(int color) { 154ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu if (mInfoArea != null) { 155ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu mInfoArea.setBackgroundColor(color); 156ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu if (mBadgeImage != null) { 157ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu mBadgeImage.setBackgroundColor(color); 158ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } 159ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } 160ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu } 161ae2614fe4c86c79344dc7dcb07777143b2fbd0d6Dake Gu 162b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public void setTitleText(CharSequence text) { 163b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn if (mTitleView == null) { 164b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return; 165b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 166b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 167b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mTitleView.setText(text); 168b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson setTextMaxLines(); 169b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 170b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 171b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public CharSequence getTitleText() { 172b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn if (mTitleView == null) { 173b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return null; 174b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 175b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 176b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return mTitleView.getText(); 177b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 178b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 179b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public void setContentText(CharSequence text) { 180b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn if (mContentView == null) { 181b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return; 182b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 183b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 184b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mContentView.setText(text); 185b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson setTextMaxLines(); 186b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 187b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 188b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public CharSequence getContentText() { 189b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn if (mContentView == null) { 190b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return null; 191b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 192b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 193b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return mContentView.getText(); 194b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 195b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 196b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public void setBadgeImage(Drawable drawable) { 197b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn if (mBadgeImage == null) { 198b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return; 199b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 200b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 201b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn if (drawable != null) { 202b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mBadgeImage.setImageDrawable(drawable); 203b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mBadgeImage.setVisibility(View.VISIBLE); 204b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mBadgeFadeMask.setVisibility(View.VISIBLE); 205b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } else { 206b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mBadgeImage.setVisibility(View.GONE); 207b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn mBadgeFadeMask.setVisibility(View.GONE); 208b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 209b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 210b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 211b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn public Drawable getBadgeImage() { 212b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn if (mBadgeImage == null) { 213b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return null; 214b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 215b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn 216b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn return mBadgeImage.getDrawable(); 217b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn } 218b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson 219b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson private void fadeIn(View v) { 220b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson v.setAlpha(0f); 221b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson v.animate().alpha(1f).setDuration(v.getContext().getResources().getInteger( 222b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson android.R.integer.config_shortAnimTime)).start(); 223b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson } 224b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson 225b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson private void setTextMaxLines() { 226b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson if (TextUtils.isEmpty(getTitleText())) { 227b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson mContentView.setMaxLines(2); 228b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson } else { 229b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson mContentView.setMaxLines(1); 230b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson } 231b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson if (TextUtils.isEmpty(getContentText())) { 232b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson mTitleView.setMaxLines(2); 233b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson } else { 234b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson mTitleView.setMaxLines(1); 235b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson } 236b6e24f60743bd2022dd496126f0ff683ff6b3713Andrew Wilson } 2375358b0ca6ed795892bd097fdf15d41fb6b1a03d2Craig Stout 2385358b0ca6ed795892bd097fdf15d41fb6b1a03d2Craig Stout @Override 2395358b0ca6ed795892bd097fdf15d41fb6b1a03d2Craig Stout protected void onDetachedFromWindow() { 2405358b0ca6ed795892bd097fdf15d41fb6b1a03d2Craig Stout mImageView.animate().cancel(); 2415358b0ca6ed795892bd097fdf15d41fb6b1a03d2Craig Stout mImageView.setAlpha(1f); 2425358b0ca6ed795892bd097fdf15d41fb6b1a03d2Craig Stout super.onDetachedFromWindow(); 2435358b0ca6ed795892bd097fdf15d41fb6b1a03d2Craig Stout } 244b55f0880c367c0b7e4132e7d954b60725e01e0b2Tim Kilbourn} 245