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.graphics.Canvas;
184fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.graphics.Paint;
194fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.graphics.RectF;
204fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.util.AttributeSet;
214fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.view.View;
224fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriimport android.support.v17.leanback.R;
234fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri
244fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri/**
254fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri * Creates a view for a media item row in a playlist
261dcc356c7c60f493010d69ded3d8e8f92f54217dKeyvan Amiri * @hide
274fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri */
284fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiriclass MediaRowFocusView extends View {
294fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri
304fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    private final Paint mPaint;
314fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    private final RectF mRoundRectF = new RectF();
324fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    private int mRoundRectRadius;
334fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri
344fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    public MediaRowFocusView(Context context) {
354fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        super(context);
364fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        mPaint = createPaint(context);
374fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    }
384fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri
394fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    public MediaRowFocusView(Context context, AttributeSet attrs) {
404fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        super(context, attrs);
414fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        mPaint = createPaint(context);
424fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    }
434fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri
444fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    public MediaRowFocusView(Context context, AttributeSet attrs, int defStyleAttr) {
454fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        super(context, attrs, defStyleAttr);
464fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        mPaint = createPaint(context);
474fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    }
484fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri
494fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    @Override
504fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    protected void onDraw(Canvas canvas) {
514fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        super.onDraw(canvas);
524fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        mRoundRectRadius = getHeight() / 2;
534fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        int drawHeight = 2 * mRoundRectRadius;
544fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        int drawOffset = (drawHeight - getHeight()) / 2;
554fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        mRoundRectF.set(0, -drawOffset, getWidth(), getHeight() + drawOffset);
564fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        canvas.drawRoundRect(mRoundRectF, mRoundRectRadius, mRoundRectRadius, mPaint);
574fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    }
584fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri
594fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    private Paint createPaint(Context context) {
604fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        Paint paint = new Paint();
614fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        paint.setColor(context.getResources().getColor(
624fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri                R.color.lb_playback_media_row_highlight_color));
634fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        return paint;
644fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    }
654fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri
664fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    public int getRoundRectRadius() {
674fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri        return mRoundRectRadius;
684fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri    }
694fe538f2d65eefc57f618887ccb1226ec1a9741dKeyvan Amiri}