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