Home | History | Annotate | Download | only in ui
      1 /*
      2  * Copyright (C) 2008 Esmertec AG.
      3  * Copyright (C) 2008 The Android Open Source Project
      4  *
      5  * Licensed under the Apache License, Version 2.0 (the "License");
      6  * you may not use this file except in compliance with the License.
      7  * You may obtain a copy of the License at
      8  *
      9  *      http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  */
     17 
     18 package com.android.mms.ui;
     19 
     20 import android.content.Context;
     21 import android.text.TextUtils;
     22 import android.util.AttributeSet;
     23 import android.view.View;
     24 import android.widget.ImageView;
     25 import android.widget.LinearLayout;
     26 import android.widget.TextView;
     27 
     28 import com.android.mms.R;
     29 import com.android.mms.data.Contact;
     30 
     31 /**
     32  * This class displays the status for a single recipient of a message.  It is used in
     33  * the ListView of DeliveryReportActivity.
     34  */
     35 public class DeliveryReportListItem extends LinearLayout {
     36     private TextView mRecipientView;
     37     private TextView mStatusView;
     38     private TextView mDeliveryDateView;
     39     private ImageView mIconView;
     40 
     41     DeliveryReportListItem(Context context) {
     42         super(context);
     43     }
     44 
     45     @Override
     46     protected void onFinishInflate() {
     47         super.onFinishInflate();
     48 
     49         mRecipientView = (TextView) findViewById(R.id.recipient);
     50         mStatusView = (TextView) findViewById(R.id.status);
     51         mDeliveryDateView = (TextView) findViewById(R.id.delivery_date);
     52         mIconView = (ImageView) findViewById(R.id.icon);
     53     }
     54 
     55     public DeliveryReportListItem(Context context, AttributeSet attrs) {
     56         super(context, attrs);
     57     }
     58 
     59     public final void bind(String recipient, String status, String deliveryDate) {
     60         // Recipient
     61         if (!TextUtils.isEmpty(recipient)) {
     62             mRecipientView.setText(Contact.get(recipient, false).getName());
     63         } else {
     64             mRecipientView.setText("");
     65         }
     66         // Status text
     67         mStatusView.setText(status);
     68 
     69         // Status icon
     70         Context context = getContext();
     71         String receivedStr = context.getString(R.string.status_received);
     72         String failedStr = context.getString(R.string.status_failed);
     73         String pendingStr = context.getString(R.string.status_pending);
     74         String rejectStr = context.getString(R.string.status_rejected);
     75 
     76         if (status.compareTo(receivedStr) == 0) {
     77             mIconView.setImageResource(R.drawable.ic_sms_mms_delivered);
     78         } else if (status.compareTo(failedStr) == 0) {
     79             mIconView.setImageResource(R.drawable.ic_sms_mms_not_delivered);
     80         } else if (status.compareTo(pendingStr) == 0) {
     81             mIconView.setImageResource(R.drawable.ic_sms_mms_pending);
     82         } else if (status.compareTo(rejectStr) == 0) {
     83             // FIXME: need replace ic_sms_mms_not_delivered by a rejected icon.
     84             mIconView.setImageResource(R.drawable.ic_sms_mms_not_delivered);
     85         } else {
     86             // No status report or unknown
     87         }
     88 
     89         if (TextUtils.isEmpty(deliveryDate)) {
     90             mDeliveryDateView.setVisibility(View.GONE);
     91         } else {
     92             mDeliveryDateView.setVisibility(View.VISIBLE);
     93             mDeliveryDateView.setText(deliveryDate);
     94         }
     95     }
     96 }
     97