187061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer/*
287061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer * Copyright (c) 2016, The Android Open Source Project
387061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer *
487061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer * Licensed under the Apache License, Version 2.0 (the "License");
587061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer * you may not use this file except in compliance with the License.
687061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer * You may obtain a copy of the License at
787061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer *
887061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer *     http://www.apache.org/licenses/LICENSE-2.0
987061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer *
1087061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer * Unless required by applicable law or agreed to in writing, software
1187061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer * distributed under the License is distributed on an "AS IS" BASIS,
1287061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1387061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer * See the License for the specific language governing permissions and
1487061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer * limitations under the License.
1587061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer */
1687061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyerpackage com.android.car.overview;
1787061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
1887061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyerimport android.app.PendingIntent;
1987061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyerimport android.content.Context;
2087061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyerimport android.text.TextUtils;
2187061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyerimport android.util.Log;
2287061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyerimport android.view.View;
2387061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyerimport android.widget.ImageView;
2487061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyerimport android.widget.TextView;
2587061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyerimport com.android.car.stream.StreamCard;
2687061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
2787061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer/**
2887061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer * A {@link StreamViewHolder} that binds a {@link StreamCard} to a basic card layout.
2987061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer */
3087061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyerpublic class SimpleStreamViewHolder extends StreamViewHolder {
3187061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    private static final String TAG = "SimpleStreamCardVH";
3287061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
3387061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    private final TextView mPrimaryTextView;
3487061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    private final TextView mSecondaryTextView;
3587061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    private final ImageView mPrimaryIconView;
3687061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    private final ImageView mSecondaryIconView;
3787061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
3887061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    private PendingIntent mContentPendingIntent;
3987061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
4087061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    public SimpleStreamViewHolder(Context context, View itemView) {
4187061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        super(context, itemView);
4287061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mPrimaryTextView = (TextView) itemView.findViewById(R.id.primary_text);
4387061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mSecondaryTextView = (TextView) itemView.findViewById(R.id.secondary_text);
4487061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mPrimaryIconView = (ImageView) itemView.findViewById(R.id.primary_icon_button);
4587061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mSecondaryIconView = (ImageView) itemView.findViewById(R.id.secondary_icon_button);
4687061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
4787061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mActionContainer.setOnClickListener(new View.OnClickListener() {
4887061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer            @Override
4987061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer            public void onClick(View v) {
5087061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer                if (mContentPendingIntent == null) {
5187061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer                    return;
5287061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer                }
5387061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
5487061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer                try {
5587061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer                    mContentPendingIntent.send(mContext, 0 /* resultCode */, null /* intent */);
5687061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer                } catch (PendingIntent.CanceledException e) {
5787061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer                    Log.e(TAG, "Failed to send pending intent for card");
5887061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer                }
5987061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer            }
6087061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        });
6187061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    }
6287061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
6387061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    @Override
6487061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    public void bindStreamCard(StreamCard card) {
6587061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        super.bindStreamCard(card);
6687061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
6787061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        if (!TextUtils.isEmpty(card.getPrimaryText())) {
6887061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer            mPrimaryTextView.setText(card.getPrimaryText());
6987061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        }
7087061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
7187061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        if (!TextUtils.isEmpty(card.getSecondaryText())) {
7287061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer            mSecondaryTextView.setText(card.getSecondaryText());
7387061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        }
7487061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
7587061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        if (card.getPrimaryIcon() != null) {
7687061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer            mPrimaryIconView.setImageBitmap(card.getPrimaryIcon());
7787061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        }
7887061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
7987061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        if (card.getSecondaryIcon() != null) {
8087061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer            mSecondaryIconView.setImageBitmap(card.getSecondaryIcon());
8187061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        }
8287061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mContentPendingIntent = card.getContentPendingIntent();
8387061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    }
8487061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer
8587061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    @Override
8687061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    protected void resetViews() {
8787061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mPrimaryTextView.setText(null);
8887061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mSecondaryTextView.setText(null);
8987061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mPrimaryIconView.setImageBitmap(null);
9087061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mSecondaryIconView.setImageBitmap(null);
9187061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer        mContentPendingIntent = null;
9287061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer    }
9387061df379ddeaf474b98f06cd778335adf8cf23Rakesh Iyer}
94