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 */ 144fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiripackage android.support.v17.leanback.widget; 154fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 164fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.content.Context; 174fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.support.v17.leanback.R; 184fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.view.LayoutInflater; 194fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.view.View; 204fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.view.ViewGroup; 214fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.widget.ImageView; 224fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 234fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri/** 244fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * The presenter displaying a custom action in {@link AbstractMediaItemPresenter}. 254fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * This is the default presenter for actions in media rows if no action presenter is provided by the 264fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * user. 274fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * 284fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * Binds to items of type {@link MultiActionsProvider.MultiAction}. 294fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri */ 304fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriclass MediaItemActionPresenter extends Presenter { 314fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 324fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri MediaItemActionPresenter() { 334fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 344fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 354fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri static class ViewHolder extends Presenter.ViewHolder { 364fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri final ImageView mIcon; 374fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 384fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri public ViewHolder(View view) { 394fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri super(view); 404fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri mIcon = (ImageView) view.findViewById(R.id.actionIcon); 414fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 424fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 434fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri public ImageView getIcon() { 444fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri return mIcon; 454fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 464fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri } 474fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 484fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri @Override 494fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri public Presenter.ViewHolder onCreateViewHolder(ViewGroup parent) { 504fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri Context context = parent.getContext(); 514fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri View actionView = LayoutInflater.from(context). 524fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri inflate(R.layout.lb_row_media_item_action, parent, 534fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri 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