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