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