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