172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/* 272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2008 Esmertec AG. 372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * you may not use this file except in compliance with the License. 772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * You may obtain a copy of the License at 872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 1072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * 1172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * See the License for the specific language governing permissions and 1572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * limitations under the License. 1672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 1772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 1872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpackage com.android.mms.ui; 1972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 2072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.content.Context; 21d12d6808584a4f8ef2c589618013dd9e4d4e3f23Mark Wagnerimport android.text.TextUtils; 2272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.util.AttributeSet; 23831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylorimport android.view.View; 2472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.ImageView; 2572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.LinearLayout; 2672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectimport android.widget.TextView; 2772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 28d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.R; 29d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chenimport com.android.mms.data.Contact; 30d64419030e1fec1e751695dab3bd7236e2fb0214Roger Chen 3172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project/** 3272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * This class displays the status for a single recipient of a message. It is used in 3372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project * the ListView of DeliveryReportActivity. 3472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project */ 3572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Projectpublic class DeliveryReportListItem extends LinearLayout { 3672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private TextView mRecipientView; 3772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private TextView mStatusView; 38831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylor private TextView mDeliveryDateView; 3972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project private ImageView mIconView; 4072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 4172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project DeliveryReportListItem(Context context) { 4272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super(context); 4372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 4472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 4572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project @Override 4672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project protected void onFinishInflate() { 4772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super.onFinishInflate(); 4872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 4972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mRecipientView = (TextView) findViewById(R.id.recipient); 5072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mStatusView = (TextView) findViewById(R.id.status); 51831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylor mDeliveryDateView = (TextView) findViewById(R.id.delivery_date); 5272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mIconView = (ImageView) findViewById(R.id.icon); 5372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 5472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 5572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project public DeliveryReportListItem(Context context, AttributeSet attrs) { 5672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project super(context, attrs); 5772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 5872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 59831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylor public final void bind(String recipient, String status, String deliveryDate) { 6072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Recipient 61d12d6808584a4f8ef2c589618013dd9e4d4e3f23Mark Wagner if (!TextUtils.isEmpty(recipient)) { 62d12d6808584a4f8ef2c589618013dd9e4d4e3f23Mark Wagner mRecipientView.setText(Contact.get(recipient, false).getName()); 63d12d6808584a4f8ef2c589618013dd9e4d4e3f23Mark Wagner } else { 64d12d6808584a4f8ef2c589618013dd9e4d4e3f23Mark Wagner mRecipientView.setText(""); 65d12d6808584a4f8ef2c589618013dd9e4d4e3f23Mark Wagner } 6672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Status text 6733a87f96f8c625aa10131a77a3968c97c4ec5a62Ficus Kirkpatrick mStatusView.setText(status); 6872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 6972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // Status icon 7033a87f96f8c625aa10131a77a3968c97c4ec5a62Ficus Kirkpatrick Context context = getContext(); 7172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project String receivedStr = context.getString(R.string.status_received); 7272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project String failedStr = context.getString(R.string.status_failed); 7372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project String pendingStr = context.getString(R.string.status_pending); 7472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project String rejectStr = context.getString(R.string.status_rejected); 7572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project 7672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project if (status.compareTo(receivedStr) == 0) { 7772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mIconView.setImageResource(R.drawable.ic_sms_mms_delivered); 7872735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else if (status.compareTo(failedStr) == 0) { 7972735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mIconView.setImageResource(R.drawable.ic_sms_mms_not_delivered); 8072735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else if (status.compareTo(pendingStr) == 0) { 8172735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mIconView.setImageResource(R.drawable.ic_sms_mms_pending); 8272735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else if (status.compareTo(rejectStr) == 0) { 8372735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // FIXME: need replace ic_sms_mms_not_delivered by a rejected icon. 8472735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project mIconView.setImageResource(R.drawable.ic_sms_mms_not_delivered); 8572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } else { 8672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project // No status report or unknown 8772735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 88831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylor 89831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylor if (TextUtils.isEmpty(deliveryDate)) { 90831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylor mDeliveryDateView.setVisibility(View.GONE); 91831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylor } else { 92831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylor mDeliveryDateView.setVisibility(View.VISIBLE); 93831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylor mDeliveryDateView.setText(deliveryDate); 94831b1232edf7f01b9d31322083ad0180b2b375b9Tom Taylor } 9572735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project } 9672735c62aba8fd2a9420a0f9f83d22543e3c164fThe Android Open Source Project} 97