diff options
Diffstat (limited to 'samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards')
10 files changed, 600 insertions, 0 deletions
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/CharacterCardView.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/CharacterCardView.java new file mode 100644 index 000000000..962adb007 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/CharacterCardView.java @@ -0,0 +1,69 @@ +/* + * 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; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.support.v17.leanback.supportleanbackshowcase.R; +import android.support.v17.leanback.supportleanbackshowcase.models.Card; +import android.support.v17.leanback.widget.BaseCardView; +import android.support.v4.graphics.drawable.RoundedBitmapDrawable; +import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +public class CharacterCardView extends BaseCardView { + + public CharacterCardView(Context context) { + super(context, null, R.style.CharacterCardStyle); + LayoutInflater.from(getContext()).inflate(R.layout.character_card, this); + setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + ImageView mainImage = (ImageView) findViewById(R.id.main_image); + View container = findViewById(R.id.container); + if (hasFocus) { + container.setBackgroundResource(R.drawable.character_focused); + mainImage.setBackgroundResource(R.drawable.character_focused); + } else { + container.setBackgroundResource(R.drawable.character_not_focused_padding); + mainImage.setBackgroundResource(R.drawable.character_not_focused); + } + } + }); + setFocusable(true); + } + + public void updateUi(Card card) { + TextView primaryText = (TextView) findViewById(R.id.primary_text); + final ImageView imageView = (ImageView) findViewById(R.id.main_image); + + primaryText.setText(card.getTitle()); + if (card.getLocalImageResourceName() != null) { + int resourceId = card.getLocalImageResourceId(getContext()); + Bitmap bitmap = BitmapFactory + .decodeResource(getContext().getResources(), resourceId); + RoundedBitmapDrawable drawable = RoundedBitmapDrawableFactory.create(getContext().getResources(), bitmap); + drawable.setAntiAlias(true); + drawable.setCornerRadius(Math.max(bitmap.getWidth(), bitmap.getHeight()) / 2.0f); + imageView.setImageDrawable(drawable); + } + } + + +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/TextCardView.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/TextCardView.java new file mode 100644 index 000000000..830b47441 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/TextCardView.java @@ -0,0 +1,56 @@ +/* + * 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; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.support.v17.leanback.supportleanbackshowcase.R; +import android.support.v17.leanback.supportleanbackshowcase.models.Card; +import android.support.v17.leanback.widget.BaseCardView; +import android.support.v4.graphics.drawable.RoundedBitmapDrawable; +import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory; +import android.view.LayoutInflater; +import android.widget.ImageView; +import android.widget.TextView; + +public class TextCardView extends BaseCardView { + + public TextCardView(Context context) { + super(context, null, R.style.TextCardStyle); + LayoutInflater.from(getContext()).inflate(R.layout.text_icon_card, this); + setFocusable(true); + } + + public void updateUi(Card card) { + TextView extraText = (TextView) findViewById(R.id.extra_text); + TextView primaryText = (TextView) findViewById(R.id.primary_text); + final ImageView imageView = (ImageView) findViewById(R.id.main_image); + + extraText.setText(card.getExtraText()); + primaryText.setText(card.getTitle()); + + // Create a rounded drawable. + int resourceId = card.getLocalImageResourceId(getContext()); + Bitmap bitmap = BitmapFactory + .decodeResource(getContext().getResources(), resourceId); + RoundedBitmapDrawable drawable = RoundedBitmapDrawableFactory.create(getContext().getResources(), bitmap); + drawable.setAntiAlias(true); + drawable.setCornerRadius( + Math.max(bitmap.getWidth(), bitmap.getHeight()) / 2.0f); + imageView.setImageDrawable(drawable); + } + +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/AbstractCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/AbstractCardPresenter.java new file mode 100644 index 000000000..0301cdc1c --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/AbstractCardPresenter.java @@ -0,0 +1,79 @@ +/* + * 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.models.Card; +import android.support.v17.leanback.widget.BaseCardView; +import android.support.v17.leanback.widget.Presenter; +import android.view.ViewGroup; + +/** + * This abstract, generic class will create and manage the + * ViewHolder and will provide typed Presenter callbacks such that you do not have to perform casts + * on your own. + * + * @param <CardViewType> The cards' View Type. + */ +public abstract class AbstractCardPresenter<CardViewType extends BaseCardView> extends Presenter { + + private static final String TAG = "AbstractCardPresenter"; + private final Context mContext; + + /** + * @param context The current context. + */ + public AbstractCardPresenter(Context context) { + mContext = context; + } + + public Context getContext() { + return mContext; + } + + @Override public final ViewHolder onCreateViewHolder(ViewGroup parent) { + CardViewType cardView = onCreateView(); + return new ViewHolder(cardView); + } + + @Override public final void onBindViewHolder(ViewHolder viewHolder, Object item) { + Card card = (Card) item; + onBindViewHolder(card, (CardViewType) viewHolder.view); + } + + @Override public final void onUnbindViewHolder(ViewHolder viewHolder) { + onUnbindViewHolder((CardViewType) viewHolder.view); + } + + public void onUnbindViewHolder(CardViewType cardView) { + // Nothing to clean up. Override if necessary. + } + + /** + * Invoked when a new view is created. + * + * @return Returns the newly created view. + */ + protected abstract CardViewType onCreateView(); + + /** + * Implement this method to update your card's view with the data bound to it. + * + * @param card The model containing the data for the card. + * @param cardView The view the card is bound to. + * @see Presenter#onBindViewHolder(Presenter.ViewHolder, Object) + */ + public abstract void onBindViewHolder(Card card, CardViewType cardView); + +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CardPresenterSelector.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CardPresenterSelector.java new file mode 100644 index 000000000..1228b14a9 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CardPresenterSelector.java @@ -0,0 +1,92 @@ +/* + * 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.Presenter; +import android.support.v17.leanback.widget.PresenterSelector; + +import java.util.HashMap; + +/** + * This PresenterSelector will decide what Presenter to use depending on a given card's type. + */ +public class CardPresenterSelector extends PresenterSelector { + + private final Context mContext; + private final HashMap<Card.Type, Presenter> presenters = new HashMap<Card.Type, Presenter>(); + + public CardPresenterSelector(Context context) { + mContext = context; + } + + @Override + public Presenter getPresenter(Object item) { + if (!(item instanceof Card)) throw new RuntimeException( + String.format("The PresenterSelector only supports data items of type '%s'", + Card.class.getName())); + Card card = (Card) item; + Presenter presenter = presenters.get(card.getType()); + if (presenter == null) { + switch (card.getType()) { + case SINGLE_LINE: + presenter = new SingleLineCardPresenter(mContext); + break; + case MOVIE: + case MOVIE_BASE: + case MOVIE_COMPLETE: + case SQUARE_BIG: + case GRID_SQUARE: + case GAME: { + int style = R.style.MovieCardSimpleStyle; + if (card.getType() == Card.Type.MOVIE_BASE) { + style = R.style.MovieCardBasicStyle; + } else if (card.getType() == Card.Type.MOVIE_COMPLETE) { + style = R.style.MovieCardCompleteStyle; + } else if (card.getType() == Card.Type.SQUARE_BIG) { + style = R.style.SquareBigCard; + } else if (card.getType() == Card.Type.GRID_SQUARE) { + style = R.style.GridCardStyle; + } else if (card.getType() == Card.Type.GAME) { + style = R.style.GameCardStyle; + } + presenter = new ImageCardViewPresenter(mContext, style); + break; + } + case SIDE_INFO: + presenter = new SideInfoCardPresenter(mContext); + break; + case TEXT: + presenter = new TextCardPresenter(mContext); + break; + case ICON: + presenter = new IconCardPresenter(mContext); + break; + case CHARACTER: + presenter = new CharacterCardPresenter(mContext); + break; + default: + presenter = new ImageCardViewPresenter(mContext); + break; + } + } + presenters.put(card.getType(), presenter); + return presenter; + } + +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CharacterCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CharacterCardPresenter.java new file mode 100644 index 000000000..35a42a969 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/CharacterCardPresenter.java @@ -0,0 +1,40 @@ +/* + * 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.cards.CharacterCardView; +import android.support.v17.leanback.supportleanbackshowcase.models.Card; + +/** + * This Presenter is used to display the characters card row in the DetailView examples. + */ +public class CharacterCardPresenter extends AbstractCardPresenter<CharacterCardView> { + + public CharacterCardPresenter(Context context) { + super(context); + } + + @Override + protected CharacterCardView onCreateView() { + return new CharacterCardView(getContext()); + } + + @Override + public void onBindViewHolder(Card card, CharacterCardView cardView) { + cardView.updateUi(card); + } + +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/IconCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/IconCardPresenter.java new file mode 100644 index 000000000..bf5be70f4 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/IconCardPresenter.java @@ -0,0 +1,51 @@ +/* + * 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.widget.ImageCardView; +import android.view.View; +import android.widget.ImageView; + +/** + * This Presenter will display cards which consists of a single icon which will be highlighted by a + * surrounding circle when the card is focused. AndroidTV uses these cards for entering settings + * menu. + */ +public class IconCardPresenter extends ImageCardViewPresenter { + + public IconCardPresenter(Context context) { + super(context, R.style.IconCardStyle); + } + + @Override + protected ImageCardView onCreateView() { + final ImageCardView imageCardView = super.onCreateView(); + final ImageView image = imageCardView.getMainImageView(); + imageCardView.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (hasFocus) { + image.setBackgroundResource(R.drawable.icon_focused); + } else { + image.setBackground(null); + } + } + }); + return imageCardView; + } + +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/ImageCardViewPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/ImageCardViewPresenter.java new file mode 100644 index 000000000..813c1e78d --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/ImageCardViewPresenter.java @@ -0,0 +1,60 @@ +/* + * 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.ImageCardView; +import com.squareup.picasso.Picasso; + +/** + * A very basic {@link ImageCardView} {@link android.support.v17.leanback.widget.Presenter}.You can + * pass a custom style for the ImageCardView in the constructor. Use the default constructor to + * create a Presenter with a default ImageCardView style. + */ +public class ImageCardViewPresenter extends AbstractCardPresenter<ImageCardView> { + + private final int mCardStyleResId; + + public ImageCardViewPresenter(Context context, int cardStyleResId) { + super(context); + mCardStyleResId = cardStyleResId; + } + + public ImageCardViewPresenter(Context context) { + super(context); + mCardStyleResId = R.style.DefaultCardStyle; + } + + @Override + protected ImageCardView onCreateView() { + return new ImageCardView(getContext(), mCardStyleResId); + } + + @Override + public void onBindViewHolder(Card card, final ImageCardView cardView) { + cardView.setTag(card); + cardView.setTitleText(card.getTitle()); + cardView.setContentText(card.getDescription()); + if (card.getLocalImageResourceName() != null) { + int resourceId = getContext().getResources() + .getIdentifier(card.getLocalImageResourceName(), + "drawable", getContext().getPackageName()); + Picasso.with(getContext()).load(resourceId).into(cardView.getMainImageView()); + } + } + +} 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()); + } + +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SingleLineCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SingleLineCardPresenter.java new file mode 100644 index 000000000..24dedd5c6 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/SingleLineCardPresenter.java @@ -0,0 +1,38 @@ +/* + * 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.ImageCardView; + +/** + * This Presenter will display a card which consists of a big image followed by a colored footer. + * Not only the colored footer is unique to this card, but also it's footer (info) will be visible + * even when its parent row is inactive. + */ +public class SingleLineCardPresenter extends ImageCardViewPresenter { + + public SingleLineCardPresenter(Context context) { + super(context, R.style.SingleLineCardStyle); + } + + @Override public void onBindViewHolder(Card card, ImageCardView cardView) { + super.onBindViewHolder(card, cardView); + cardView.setInfoAreaBackgroundColor(card.getFooterColor()); + } + +} diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/TextCardPresenter.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/TextCardPresenter.java new file mode 100644 index 000000000..7e65f0f13 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/cards/presenters/TextCardPresenter.java @@ -0,0 +1,41 @@ +/* + * 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.cards.TextCardView; +import android.support.v17.leanback.supportleanbackshowcase.models.Card; + +/** + * The Presenter displays a card consisting of text as a replacement for a big image. The footer is + * also quite unique since it does contain two images rather than one or non. + */ +public class TextCardPresenter extends AbstractCardPresenter<TextCardView> { + + public TextCardPresenter(Context context) { + super(context); + } + + @Override + protected TextCardView onCreateView() { + return new TextCardView(getContext()); + } + + @Override + public void onBindViewHolder(Card card, TextCardView cardView) { + cardView.updateUi(card); + } + +} |