diff options
Diffstat (limited to 'samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SideInfoCardPresenter.java')
-rw-r--r-- | samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SideInfoCardPresenter.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SideInfoCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SideInfoCardPresenter.java new file mode 100644 index 000000000..b9f44fc43 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SideInfoCardPresenter.java @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2015 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 android.support.v17.leanback.supportleanbackshowcase.cards.presenters; + +import android.content.Context; +import android.support.v17.leanback.supportleanbackshowcase.R; +import android.support.v17.leanback.supportleanbackshowcase.models.Card; +import android.support.v17.leanback.widget.BaseCardView; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.squareup.picasso.Picasso; + +/** + * This Presenter will display a card consisting of an image on the left side of the card followed + * by text on the right side. The image and text have equal width. The text will work like a info + * box, thus it will be hidden if the parent row is inactive. This behavior is unique to this card + * and requires a special focus handler. + */ +public class SideInfoCardPresenter extends AbstractCardPresenter<BaseCardView> { + + public SideInfoCardPresenter(Context context) { + super(context); + } + + @Override + protected BaseCardView onCreateView() { + final BaseCardView cardView = new BaseCardView(getContext(), null, + R.style.SideInfoCardStyle); + cardView.setFocusable(true); + cardView.addView(LayoutInflater.from(getContext()).inflate(R.layout.side_info_card, null)); + return cardView; + } + + @Override + public void onBindViewHolder(Card card, BaseCardView cardView) { + ImageView imageView = (ImageView) cardView.findViewById(R.id.main_image); + if (card.getLocalImageResourceName() != null) { + int width = (int) getContext().getResources() + .getDimension(R.dimen.sidetext_image_card_width); + int height = (int) getContext().getResources() + .getDimension(R.dimen.sidetext_image_card_height); + int resourceId = getContext().getResources() + .getIdentifier(card.getLocalImageResourceName(), + "drawable", getContext().getPackageName()); + Picasso.with(getContext()).load(resourceId).resize(width, height).centerCrop() + .into(imageView); + } + + TextView primaryText = (TextView) cardView.findViewById(R.id.primary_text); + primaryText.setText(card.getTitle()); + + TextView secondaryText = (TextView) cardView.findViewById(R.id.secondary_text); + secondaryText.setText(card.getDescription()); + + TextView extraText = (TextView) cardView.findViewById(R.id.extra_text); + extraText.setText(card.getExtraText()); + } + +} |