diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-22 16:39:23 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-22 16:39:23 +0000 |
commit | ef49e8af7ceb2357cc2c0a9cc0d955abafd72126 (patch) | |
tree | 63e236dee8c4373ea7392f39b5a496746d35405b | |
parent | 0e7c8232d9b57b649ebe76d98f25ec60963c03f0 (diff) | |
parent | d9c22e3134d84a382edf36a91fc1c3c979f0f5e8 (diff) | |
download | cts-oreo-r2-release.tar.gz |
release-request-e0486a9a-e8f3-4d59-b812-06bc609da6d2-for-git_oc-r2-release-4283242 snap-temp-L10000000095597457android-8.0.0_r29oreo-r2-release
Change-Id: I73f18dce4806ed065e692dcdca30a03ac5f55f59
5 files changed, 60 insertions, 11 deletions
diff --git a/tests/leanbackjank/app/Android.mk b/tests/leanbackjank/app/Android.mk index 0328fdf444f..beeacdd651b 100644 --- a/tests/leanbackjank/app/Android.mk +++ b/tests/leanbackjank/app/Android.mk @@ -47,4 +47,6 @@ LOCAL_AAPT_FLAGS := \ --extra-packages android.support.v17.leanback \ --extra-packages android.support.v7.recyclerview +LOCAL_PROGUARD_FLAG_FILES := proguard.flags + include $(BUILD_CTS_SUPPORT_PACKAGE) diff --git a/tests/leanbackjank/app/proguard.flags b/tests/leanbackjank/app/proguard.flags new file mode 100644 index 00000000000..0674e77454d --- /dev/null +++ b/tests/leanbackjank/app/proguard.flags @@ -0,0 +1 @@ +-dontobfuscate
\ No newline at end of file diff --git a/tests/leanbackjank/app/res/values/dimens.xml b/tests/leanbackjank/app/res/values/dimens.xml new file mode 100644 index 00000000000..30792fd21ea --- /dev/null +++ b/tests/leanbackjank/app/res/values/dimens.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2017 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 + --> + +<resources> + <dimen name="shadow_unfocused_z">0dp</dimen> + <dimen name="shadow_focused_z">10dp</dimen> +</resources>
\ No newline at end of file diff --git a/tests/leanbackjank/app/src/android/leanbackjank/app/presenter/CardPresenter.java b/tests/leanbackjank/app/src/android/leanbackjank/app/presenter/CardPresenter.java index bedbc5d93a3..4e6b55d2fff 100644 --- a/tests/leanbackjank/app/src/android/leanbackjank/app/presenter/CardPresenter.java +++ b/tests/leanbackjank/app/src/android/leanbackjank/app/presenter/CardPresenter.java @@ -17,11 +17,15 @@ package android.leanbackjank.app.presenter; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.support.v17.leanback.widget.ImageCardView; import android.support.v17.leanback.widget.Presenter; import android.view.ViewGroup; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.drawable.GlideDrawable; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; import android.leanbackjank.app.R; import android.leanbackjank.app.model.Movie; @@ -46,25 +50,17 @@ public class CardPresenter extends Presenter { ImageCardView cardView = new ImageCardView(parent.getContext()) { @Override public void setSelected(boolean selected) { - updateCardBackgroundColor(this, selected); + findViewById(R.id.info_field).setBackgroundColor( + selected ? sSelectedBackgroundColor : sDefaultBackgroundColor); super.setSelected(selected); } }; cardView.setFocusable(true); cardView.setFocusableInTouchMode(true); - updateCardBackgroundColor(cardView, false); return new ViewHolder(cardView); } - private static void updateCardBackgroundColor(ImageCardView view, boolean selected) { - int color = selected ? sSelectedBackgroundColor : sDefaultBackgroundColor; - // Both background colors should be set because the view's background is temporarily visible - // during animations. - view.setBackgroundColor(color); - view.findViewById(R.id.info_field).setBackgroundColor(color); - } - @Override public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item) { Movie movie = (Movie) item; @@ -73,10 +69,27 @@ public class CardPresenter extends Presenter { cardView.setTitleText(movie.getTitle()); cardView.setContentText(movie.getStudio()); cardView.setMainImageDimensions(CARD_WIDTH, CARD_HEIGHT); + cardView.setBackgroundColor(sDefaultBackgroundColor); + Glide.with(viewHolder.view.getContext()) .load(R.drawable.gradation) .centerCrop() .error(mDefaultCardImage) + .listener(new RequestListener<Integer, GlideDrawable>() { + @Override + public boolean onException(Exception e, Integer i, Target<GlideDrawable> target, + boolean b) { + return false; + } + + @Override + public boolean onResourceReady(GlideDrawable glideDrawable, Integer i, + Target<GlideDrawable> target, boolean b, boolean b1) { + // Remove the background color to reduce overdraw. + cardView.setBackground(null); + return false; + } + }) .into(cardView.getMainImageView()); } diff --git a/tests/leanbackjank/app/src/android/leanbackjank/app/ui/MainFragment.java b/tests/leanbackjank/app/src/android/leanbackjank/app/ui/MainFragment.java index 399681ce107..ee04924bb73 100644 --- a/tests/leanbackjank/app/src/android/leanbackjank/app/ui/MainFragment.java +++ b/tests/leanbackjank/app/src/android/leanbackjank/app/ui/MainFragment.java @@ -15,6 +15,7 @@ package android.leanbackjank.app.ui; import android.content.Intent; +import android.content.res.Resources; import android.content.res.Resources.Theme; import android.leanbackjank.app.IntentKeys; import android.leanbackjank.app.R; @@ -32,6 +33,7 @@ import android.support.v17.leanback.widget.ListRow; import android.support.v17.leanback.widget.ListRowPresenter; import android.support.v17.leanback.widget.Presenter; import android.support.v17.leanback.widget.PresenterSelector; +import android.support.v17.leanback.widget.ShadowOverlayHelper; import android.util.DisplayMetrics; import android.view.View; @@ -166,7 +168,17 @@ public class MainFragment extends BrowseFragment { } public void buildRowAdapterItems(HashMap<String, List<Movie>> data) { - mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter()); + ListRowPresenter listRowPresenter = new ListRowPresenter() { + @Override + protected ShadowOverlayHelper.Options createShadowOverlayOptions() { + Resources res = getResources(); + ShadowOverlayHelper.Options options = new ShadowOverlayHelper.Options(); + options.dynamicShadowZ(res.getDimension(R.dimen.shadow_unfocused_z), + res.getDimension(R.dimen.shadow_focused_z)); + return options; + } + }; + mRowsAdapter = new ArrayObjectAdapter(listRowPresenter); CardPresenter cardPresenter = new CardPresenter(); int i = 0; |