blob: 6878847eb95843c56caa911e8c7ddd1b8d3b06f7 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.download.home.list.holder;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.appcompat.content.res.AppCompatResources;
import org.chromium.chrome.browser.download.R;
import org.chromium.chrome.browser.download.home.list.ListItem;
import org.chromium.components.browser_ui.widget.async_image.AutoAnimatorDrawable;
import org.chromium.ui.modelutil.PropertyModel;
/**
* A {@link RecyclerView.ViewHolder} specifically meant to display an in-progress image {@code
* OfflineItem}.
*/
public class InProgressImageViewHolder extends InProgressViewHolder {
private final ImageView mPlaceholder;
/**
* Creates a new {@link InProgressViewHolder} instance.
*/
public static InProgressImageViewHolder create(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.download_manager_in_progress_image_item, null);
return new InProgressImageViewHolder(view);
}
/** Constructor. */
public InProgressImageViewHolder(View view) {
super(view, true /* constrainCaption */);
mPlaceholder = view.findViewById(R.id.placeholder);
mPlaceholder.setImageDrawable(AutoAnimatorDrawable.wrap(AppCompatResources.getDrawable(
view.getContext(), R.drawable.async_image_view_waiting)));
}
// InProgressViewHolder implementation.
@Override
public void bind(PropertyModel properties, ListItem item) {
super.bind(properties, item);
mPlaceholder.setContentDescription(((ListItem.OfflineItemListItem) item).item.title);
}
}