diff options
Diffstat (limited to 'samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/ShadowRowPresenterSelector.java')
-rw-r--r-- | samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/ShadowRowPresenterSelector.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/ShadowRowPresenterSelector.java b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/ShadowRowPresenterSelector.java new file mode 100644 index 000000000..987365a87 --- /dev/null +++ b/samples/SupportLeanbackShowcase/app/src/main/java/android/support/v17/leanback/supportleanbackshowcase/app/details/ShadowRowPresenterSelector.java @@ -0,0 +1,44 @@ +/* + * 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.app.details; + +import android.support.v17.leanback.supportleanbackshowcase.models.CardRow; +import android.support.v17.leanback.supportleanbackshowcase.utils.CardListRow; +import android.support.v17.leanback.widget.ListRowPresenter; +import android.support.v17.leanback.widget.Presenter; +import android.support.v17.leanback.widget.PresenterSelector; + +/** + * This {@link PresenterSelector} will return a {@link ListRowPresenter} which has shadow support + * enabled or not depending on {@link CardRow#useShadow()} for a given row. + */ +public class ShadowRowPresenterSelector extends PresenterSelector { + + private ListRowPresenter mShadowEnabledRowPresenter = new ListRowPresenter(); + private ListRowPresenter mShadowDisabledRowPresenter = new ListRowPresenter(); + + public ShadowRowPresenterSelector() { + mShadowDisabledRowPresenter.setShadowEnabled(false); + } + + @Override public Presenter getPresenter(Object item) { + if (!(item instanceof CardListRow)) return mShadowDisabledRowPresenter; + CardListRow listRow = (CardListRow) item; + CardRow row = listRow.getCardRow(); + if (row.useShadow()) return mShadowEnabledRowPresenter; + return mShadowDisabledRowPresenter; + } +} |