Merge "Add a fall back for when the thumbnail is not generated for a task" into nyc-dev

This commit is contained in:
Sid Soundararajan
2016-04-14 15:19:22 +00:00
committed by Android (Google) Code Review
16 changed files with 268 additions and 132 deletions

View File

@@ -16,7 +16,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#99000000"
android:endColor="#E6000000"
android:startColor="#4C000000"
android:endColor="#72000000"
android:angle="90"/>
</shape>

View File

@@ -19,7 +19,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false">
android:clipToPadding="false"
android:background="@drawable/recents_tv_background_gradient">
<com.android.systemui.recents.tv.views.TaskStackHorizontalGridView
android:id="@+id/task_list"
android:layout_width="wrap_content"

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/card_dismiss"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_horizontal"
android:alpha="0.0"
tools:showIn="@layout/recents_tv_task_card_view">
<ImageView
android:id="@+id/card_dismiss_icon"
android:layout_width="@dimen/recents_tv_dismiss_icon_size"
android:layout_height="@dimen/recents_tv_dismiss_icon_size"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/recents_tv_dismiss_icon_top_margin"
android:layout_marginBottom="@dimen/recents_tv_dismiss_icon_bottom_margin"
android:src="@drawable/ic_cancel_white_24dp"/>
<TextView
android:id="@+id/card_dismiss_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/recents_tv_dismiss_text_size"
android:fontFamily="@string/font_roboto_light"
android:textColor="@color/recents_tv_dismiss_text_color"
android:text="@string/recents_tv_dismiss"
android:layout_gravity="center_horizontal"/>
</LinearLayout>

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/card_info_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:showIn="@layout/recents_tv_task_card_view_fallback_banner">
<ImageView
android:id="@+id/card_extra_badge"
android:layout_width="@dimen/recents_tv_card_extra_badge_size"
android:layout_height="@dimen/recents_tv_card_extra_badge_size"
android:layout_marginBottom="@dimen/recents_tv_icon_padding_bottom"
android:scaleType="fitCenter"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"/>
<TextView
android:id="@+id/card_title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:includeFontPadding="true"
android:singleLine="true"
android:shadowColor="@color/recents_tv_text_shadow_color"
android:shadowRadius="5"
android:shadowDx="0"
android:shadowDy="0"
android:textColor="@color/recents_tv_card_title_text_color"
android:fontFamily="@string/font_roboto_regular"
android:textSize="@dimen/recents_tv_title_text_size"
android:paddingStart="@dimen/recents_tv_text_padding_start"
android:layout_marginBottom="@dimen/recents_tv_text_padding_bottom"
android:ellipsize="end"/>
</LinearLayout>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<com.android.systemui.recents.tv.views.TaskCardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_gravity="center"
android:layout_centerInParent="true"
android:clipToPadding="false"
android:orientation="vertical" >
<include layout="@layout/recents_tv_card_info_field"/>
<LinearLayout
android:id="@+id/card_view_thumbnail"
android:layout_width="@dimen/recents_tv_card_width"
android:layout_height="@dimen/recents_tv_screenshot_height"
android:gravity="center"
android:orientation="vertical"
android:background="@color/recents_tv_card_background_color"
android:layout_centerHorizontal="true" >
<ImageView
android:id="@+id/card_view_banner_icon"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:scaleType="centerCrop"
android:gravity="center" />
</LinearLayout>
<include layout="@layout/recents_tv_card_dismiss"/>
</com.android.systemui.recents.tv.views.TaskCardView>

View File

@@ -1,97 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<com.android.systemui.recents.tv.views.TaskCardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_gravity="center"
android:layout_centerInParent="true"
android:orientation="vertical"
android:layoutDirection="ltr">
<LinearLayout
android:id="@+id/recents_tv_card"
android:layout_width="@dimen/recents_tv_card_width"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/card_info_field"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/card_extra_badge"
android:layout_width="@dimen/recents_tv_card_extra_badge_size"
android:layout_height="@dimen/recents_tv_card_extra_badge_size"
android:layout_marginBottom="@dimen/recents_tv_icon_padding_bottom"
android:layout_marginEnd="@dimen/recents_tv_icon_padding_end"
android:scaleType="fitCenter"
android:layout_centerVertical="true"
android:layout_alignParentRight="true" />
<TextView
android:id="@+id/card_title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="false"
android:includeFontPadding="true"
android:minLines="1"
android:maxLines="1"
android:textColor="@color/recents_tv_card_title_text_color"
android:fontFamily="@string/font_roboto_regular"
android:textSize="@dimen/recents_tv_title_text_size"
android:layout_marginBottom="@dimen/recents_tv_text_padding_bottom"
android:ellipsize="end"/>
</LinearLayout>
<ImageView
android:id="@+id/card_view_thumbnail"
android:layout_width="match_parent"
android:layout_height="@dimen/recents_tv_screenshot_height"
android:scaleType="centerCrop"
android:gravity="center"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_below="@id/card_title_text" />
</LinearLayout>
<LinearLayout
android:id="@+id/card_dismiss"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_horizontal"
android:layout_below="@id/recents_tv_card"
android:alpha="0.0">
<ImageView
android:id="@+id/card_dismiss_icon"
android:layout_width="@dimen/recents_tv_dismiss_icon_size"
android:layout_height="@dimen/recents_tv_dismiss_icon_size"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/recents_tv_dismiss_icon_top_margin"
android:layout_marginBottom="@dimen/recents_tv_dismiss_icon_bottom_margin"
android:src="@drawable/ic_cancel_white_24dp" />
<TextView
android:id="@+id/card_dismiss_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/recents_tv_dismiss_text_size"
android:fontFamily="@string/font_roboto_light"
android:textColor="@color/recents_tv_dismiss_text_color"
android:text="@string/recents_tv_dismiss"
android:layout_gravity="center_horizontal" />
</LinearLayout>
</com.android.systemui.recents.tv.views.TaskCardView>

View File

@@ -17,7 +17,8 @@
*/
-->
<resources>
<color name="recents_tv_card_background_color">#FF37474F</color>
<color name="recents_tv_card_background_color">#FF263238</color>
<color name="recents_tv_card_title_text_color">#CCEEEEEE</color>
<color name="recents_tv_dismiss_text_color">#7FEEEEEE</color>
<color name="recents_tv_text_shadow_color">#7F000000</color>
</resources>

View File

@@ -21,11 +21,13 @@
<dimen name="recents_tv_card_width">240dip</dimen>
<dimen name="recents_tv_screenshot_height">135dip</dimen>
<dimen name="recents_tv_card_extra_badge_size">20dip</dimen>
<dimen name="recents_tv_banner_width">114dip</dimen>
<dimen name="recents_tv_banner_height">64dip</dimen>
<dimen name="recents_tv_banner_width">130dip</dimen>
<dimen name="recents_tv_banner_height">72dip</dimen>
<dimen name="recents_tv_fallback_icon_width">40dip</dimen>
<dimen name="recents_tv_fallback_icon_height">40dip</dimen>
<dimen name="recents_tv_banner_margin_top">16dip</dimen>
<dimen name="recents_tv_icon_padding_bottom">8dip</dimen>
<dimen name="recents_tv_icon_padding_end">12dip</dimen>
<dimen name="recents_tv_text_padding_start">12dip</dimen>
<dimen name="recents_tv_text_padding_bottom">12dip</dimen>
<!-- Padding for grid view in recents view on tv -->

View File

@@ -18,6 +18,7 @@ package com.android.systemui.recents.tv.animations;
import android.animation.Animator;
import android.content.res.Resources;
import android.view.View;
import android.widget.LinearLayout;
import com.android.systemui.Interpolators;
import com.android.systemui.recents.tv.views.TaskCardView;
@@ -26,15 +27,16 @@ import com.android.systemui.R;
public class DismissAnimationsHolder {
private LinearLayout mDismissArea;
private LinearLayout mRecentsTvCard;
private LinearLayout mInfoField;
private View mThumbnailView;
private int mCardYDelta;
private long mShortDuration;
private long mLongDuration;
public DismissAnimationsHolder(TaskCardView taskCardView) {
mRecentsTvCard = (LinearLayout) taskCardView.findViewById(R.id.recents_tv_card);
mInfoField = (LinearLayout) taskCardView.findViewById(R.id.card_info_field);
mDismissArea = (LinearLayout) taskCardView.findViewById(R.id.card_dismiss);
mThumbnailView = taskCardView.findViewById(R.id.card_view_thumbnail);
Resources res = taskCardView.getResources();
mCardYDelta = res.getDimensionPixelOffset(R.dimen.recents_tv_dismiss_shift_down);
mShortDuration = res.getInteger(R.integer.dismiss_short_duration);
@@ -47,7 +49,13 @@ public class DismissAnimationsHolder {
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.alpha(1.0f);
mRecentsTvCard.animate()
mInfoField.animate()
.setDuration(mShortDuration)
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.translationYBy(mCardYDelta)
.alpha(0.5f);
mThumbnailView.animate()
.setDuration(mShortDuration)
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.translationYBy(mCardYDelta)
@@ -60,7 +68,13 @@ public class DismissAnimationsHolder {
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.alpha(0.0f);
mRecentsTvCard.animate()
mInfoField.animate()
.setDuration(mShortDuration)
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.translationYBy(-mCardYDelta)
.alpha(1.0f);
mThumbnailView.animate()
.setDuration(mShortDuration)
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.translationYBy(-mCardYDelta)
@@ -73,17 +87,25 @@ public class DismissAnimationsHolder {
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.alpha(0.0f);
mRecentsTvCard.animate()
mInfoField.animate()
.setDuration(mLongDuration)
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.translationYBy(mCardYDelta)
.alpha(0.0f)
.setListener(listener);
mThumbnailView.animate()
.setDuration(mLongDuration)
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
.translationYBy(mCardYDelta)
.alpha(0.0f);
}
public void reset() {
mRecentsTvCard.setAlpha(1.0f);
mRecentsTvCard.setTranslationY(0);
mRecentsTvCard.animate().setListener(null);
mInfoField.setAlpha(1.0f);
mInfoField.setTranslationY(0);
mInfoField.animate().setListener(null);
mThumbnailView.setAlpha(1.0f);
mThumbnailView.setTranslationY(0);
}
}

View File

@@ -46,7 +46,6 @@ public class HomeRecentsEnterExitAnimationHolder {
for(int i = 0; i < mGridView.getChildCount(); i++) {
TaskCardView view = (TaskCardView) mGridView.getChildAt(i);
view.setTranslationX(-mTranslationX);
view.setAlpha(0.0f);
view.animate()
.alpha(1.0f)
.translationX(0)
@@ -76,7 +75,7 @@ public class HomeRecentsEnterExitAnimationHolder {
public void setEnterFromHomeStartingAnimationValues() {
for(int i = 0; i < mGridView.getChildCount(); i++) {
TaskCardView view = (TaskCardView) mGridView.getChildAt(i);
view.setTranslationX(-mTranslationX);
view.setTranslationX(0);
view.setAlpha(0.0f);
}
}

View File

@@ -26,6 +26,7 @@ import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Interpolator;
import com.android.systemui.R;
import com.android.systemui.recents.tv.views.TaskCardView;
public class ViewFocusAnimator implements View.OnFocusChangeListener {
private final float mUnselectedScale;
@@ -94,10 +95,13 @@ public class ViewFocusAnimator implements View.OnFocusChangeListener {
mTargetView.setScaleX(scale);
mTargetView.setScaleY(scale);
mTargetView.setZ(z);
mTargetView.setPadding((int) spacing, mTargetView.getPaddingTop(),
(int) spacing, mTargetView.getPaddingBottom());
if (mTargetView instanceof TaskCardView) {
((TaskCardView) mTargetView).getThumbnailView().setZ(z);
}
}
public float getFocusProgress() {

View File

@@ -16,7 +16,6 @@
package com.android.systemui.recents.tv.views;
import android.annotation.Nullable;
import android.app.Activity;
import android.app.ActivityOptions;
import android.content.Context;
import android.graphics.Bitmap;

View File

@@ -18,7 +18,6 @@ package com.android.systemui.recents.tv.views;
import android.content.Context;
import android.graphics.Rect;
import android.os.Handler;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import android.util.Log;
@@ -35,7 +34,6 @@ import com.android.systemui.recents.RecentsConfiguration;
import com.android.systemui.recents.events.EventBus;
import com.android.systemui.recents.events.activity.CancelEnterRecentsWindowAnimationEvent;
import com.android.systemui.recents.events.activity.DismissRecentsToHomeAnimationStarted;
import com.android.systemui.recents.events.activity.ExitRecentsWindowFirstAnimationFrameEvent;
import com.android.systemui.recents.events.activity.LaunchTvTaskEvent;
import com.android.systemui.recents.events.component.RecentsVisibilityChangedEvent;
import com.android.systemui.recents.misc.SystemServicesProxy;

View File

@@ -17,10 +17,15 @@ package com.android.systemui.recents.tv.views;
import android.animation.Animator;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;
import android.util.TypedValue;
import android.view.Display;
import android.view.KeyEvent;
@@ -38,7 +43,8 @@ import com.android.systemui.recents.model.Task;
public class TaskCardView extends LinearLayout {
private ImageView mThumbnailView;
private static final String TAG = "TaskCardView";
private View mThumbnailView;
private TextView mTitleTextView;
private ImageView mBadgeView;
private Task mTask;
@@ -58,26 +64,28 @@ public class TaskCardView extends LinearLayout {
public TaskCardView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mViewFocusAnimator = new ViewFocusAnimator(this);
mDismissState = false;
Configuration config = getResources().getConfiguration();
setLayoutDirection(config.getLayoutDirection());
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mThumbnailView = (ImageView) findViewById(R.id.card_view_thumbnail);
mThumbnailView = findViewById(R.id.card_view_thumbnail);
mTitleTextView = (TextView) findViewById(R.id.card_title_text);
mBadgeView = (ImageView) findViewById(R.id.card_extra_badge);
mDismissAnimationsHolder = new DismissAnimationsHolder(this);
View title = findViewById(R.id.card_info_field);
mRecentsRowFocusAnimationHolder = new RecentsRowFocusAnimationHolder(this, title);
mViewFocusAnimator = new ViewFocusAnimator(this);
}
public void init(Task task) {
mTask = task;
mThumbnailView.setImageBitmap(task.thumbnail);
mTitleTextView.setText(task.title);
mBadgeView.setImageDrawable(task.icon);
setThumbnailView();
}
public Task getTask() {
@@ -238,4 +246,64 @@ public class TaskCardView extends LinearLayout {
mRecentsRowFocusAnimationHolder.reset();
mDismissAnimationsHolder.reset();
}
private void setThumbnailView() {
ImageView screenshotView = (ImageView) findViewById(R.id.card_view_banner_icon);
PackageManager pm = getContext().getPackageManager();
if (mTask.thumbnail != null) {
setAsScreenShotView(mTask.thumbnail, screenshotView);
} else {
try {
Drawable banner = null;
if (mTask.key != null) {
banner = pm.getActivityBanner(mTask.key.baseIntent);
}
if (banner != null) {
setAsBannerView(banner, screenshotView);
} else {
setAsIconView(mTask.icon, screenshotView);
}
} catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "Package not found : " + e);
setAsIconView(mTask.icon, screenshotView);
}
}
}
private void setAsScreenShotView(Bitmap screenshot, ImageView screenshotView) {
LayoutParams lp = (LayoutParams) screenshotView.getLayoutParams();
lp.width = getResources()
.getDimensionPixelSize(R.dimen.recents_tv_card_width);
lp.height = getResources()
.getDimensionPixelSize(R.dimen.recents_tv_screenshot_height);
screenshotView.setLayoutParams(lp);
screenshotView.setImageBitmap(screenshot);
}
private void setAsBannerView(Drawable banner, ImageView bannerView) {
LayoutParams lp = (LayoutParams) bannerView.getLayoutParams();
lp.width = getResources()
.getDimensionPixelSize(R.dimen.recents_tv_banner_width);
lp.height = getResources()
.getDimensionPixelSize(R.dimen.recents_tv_banner_height);
bannerView.setLayoutParams(lp);
bannerView.setImageDrawable(banner);
}
private void setAsIconView(Drawable icon, ImageView iconView) {
LayoutParams lp = (LayoutParams) iconView.getLayoutParams();
lp.width = getResources()
.getDimensionPixelSize(R.dimen.recents_tv_fallback_icon_width);
lp.height = getResources()
.getDimensionPixelSize(R.dimen.recents_tv_fallback_icon_height);
iconView.setLayoutParams(lp);
iconView.setImageDrawable(icon);
}
public View getThumbnailView() {
return mThumbnailView;
}
}

View File

@@ -33,9 +33,6 @@ import com.android.systemui.recents.model.TaskStack;
import com.android.systemui.recents.model.TaskStack.TaskStackCallbacks;
import com.android.systemui.recents.views.AnimationProps;
import java.util.ArrayList;
import java.util.List;
/**
* Horizontal Grid View Implementation to show the Task Stack for TV.
*/

View File

@@ -27,7 +27,6 @@ import com.android.systemui.R;
import com.android.systemui.recents.events.EventBus;
import com.android.systemui.recents.events.activity.LaunchTvTaskEvent;
import com.android.systemui.recents.events.ui.DeleteTaskDataEvent;
import com.android.systemui.recents.events.ui.TaskViewDismissedEvent;
import com.android.systemui.recents.model.Task;
import com.android.systemui.recents.views.AnimationProps;
@@ -47,6 +46,7 @@ public class TaskStackHorizontalViewAdapter extends
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private TaskCardView mTaskCardView;
private Task mTask;
private boolean mShouldReset;
public ViewHolder(View v) {
super(v);
if(v instanceof TaskCardView) {
@@ -69,7 +69,6 @@ public class TaskStackHorizontalViewAdapter extends
} else {
EventBus.getDefault().send(new LaunchTvTaskEvent(mTaskCardView, mTask,
null, INVALID_STACK_ID));
((Activity) (v.getContext())).finish();
}
} catch (Exception e) {
Log.e(TAG, v.getContext()
@@ -89,6 +88,7 @@ public class TaskStackHorizontalViewAdapter extends
public void onAnimationEnd(Animator animation) {
removeAt(position);
EventBus.getDefault().send(new DeleteTaskDataEvent(task));
mShouldReset = true;
}
@Override
@@ -114,9 +114,9 @@ public class TaskStackHorizontalViewAdapter extends
@Override
public TaskStackHorizontalViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recents_tv_task_card_view, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
ViewHolder viewHolder = new ViewHolder(
inflater.inflate(R.layout.recents_tv_task_card_view, parent, false));
return viewHolder;
}
@@ -127,7 +127,12 @@ public class TaskStackHorizontalViewAdapter extends
@Override
public void onViewDetachedFromWindow(ViewHolder holder) {
holder.mTaskCardView.reset();
// We only want to reset on view detach if this is the last task being dismissed.
// This is so that we do not reset when shifting to apps etc, as it is not needed.
if (holder.mShouldReset) {
holder.mTaskCardView.reset();
holder.mShouldReset = false;
}
}
@Override
@@ -157,6 +162,7 @@ public class TaskStackHorizontalViewAdapter extends
return (position >= 0) ? position : 0;
}
public void setTaskStackHorizontalGridView(TaskStackHorizontalGridView gridView) {
mGridView = gridView;
}