14fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri/* 24fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * Copyright (C) 2016 The Android Open Source Project 34fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * 44fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 54fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * in compliance with the License. You may obtain a copy of the License at 64fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * 74fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * http://www.apache.org/licenses/LICENSE-2.0 84fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * 94fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * Unless required by applicable law or agreed to in writing, software distributed under the License 104fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 114fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * or implied. See the License for the specific language governing permissions and limitations under 124fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * the License. 134fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri */ 14ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.leanback.widget; 154fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 164fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.content.Context; 174fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.view.LayoutInflater; 184fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.view.View; 194fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.view.ViewGroup; 204fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.widget.ImageView; 214fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 228619e0ef7062b6a714f22af993e4b440fae7ef08Aurimas Liutikasimport androidx.leanback.R; 238619e0ef7062b6a714f22af993e4b440fae7ef08Aurimas Liutikas 244fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri/** 254fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * The presenter displaying a custom action in {@link AbstractMediaItemPresenter}. 264fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * This is the default presenter for actions in media rows if no action presenter is provided by the 274fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * user. 284fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * 294fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * Binds to items of type {@link MultiActionsProvider.MultiAction}. 304fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri */ 314fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriclass MediaItemActionPresenter extends Presenter { 324fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 334fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri MediaItemActionPresenter() { 344fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 354fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 364fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri static class ViewHolder extends Presenter.ViewHolder { 374fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri final ImageView mIcon; 384fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 394fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri public ViewHolder(View view) { 404fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri super(view); 414fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri mIcon = (ImageView) view.findViewById(R.id.actionIcon); 424fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 434fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 444fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri public ImageView getIcon() { 454fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri return mIcon; 464fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 474fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 484fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 494fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri @Override 504fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri public Presenter.ViewHolder onCreateViewHolder(ViewGroup parent) { 514fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri Context context = parent.getContext(); 523103f63e99d47573823957f7aa34308555873221Aurimas Liutikas View actionView = LayoutInflater.from(context) 533103f63e99d47573823957f7aa34308555873221Aurimas Liutikas .inflate(R.layout.lb_row_media_item_action, parent, false); 544fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri return new ViewHolder(actionView); 554fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 564fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 574fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri @Override 584fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item) { 594fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri ViewHolder actionViewHolder = (ViewHolder) viewHolder; 604fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri MultiActionsProvider.MultiAction action = (MultiActionsProvider.MultiAction) item; 614fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri actionViewHolder.getIcon().setImageDrawable(action.getCurrentDrawable()); 624fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 634fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 644fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri @Override 654fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri public void onUnbindViewHolder(Presenter.ViewHolder viewHolder) { 664fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 674fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri} 68