1/* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16package com.android.messaging.ui.conversation; 17 18import android.content.Context; 19import android.text.TextUtils; 20import android.util.AttributeSet; 21import android.view.View; 22import android.widget.LinearLayout; 23import android.widget.TextView; 24 25import com.android.messaging.R; 26import com.android.messaging.datamodel.data.SubscriptionListData.SubscriptionListEntry; 27import com.android.messaging.util.Assert; 28 29/** 30 * Shows a view for a SIM in the SIM selector. 31 */ 32public class SimSelectorItemView extends LinearLayout { 33 public interface HostInterface { 34 void onSimItemClicked(SubscriptionListEntry item); 35 } 36 37 private SubscriptionListEntry mData; 38 private TextView mNameTextView; 39 private TextView mDetailsTextView; 40 private SimIconView mSimIconView; 41 private HostInterface mHost; 42 43 public SimSelectorItemView(final Context context, final AttributeSet attrs) { 44 super(context, attrs); 45 } 46 47 @Override 48 protected void onFinishInflate() { 49 mNameTextView = (TextView) findViewById(R.id.name); 50 mDetailsTextView = (TextView) findViewById(R.id.details); 51 mSimIconView = (SimIconView) findViewById(R.id.sim_icon); 52 setOnClickListener(new OnClickListener() { 53 @Override 54 public void onClick(View v) { 55 mHost.onSimItemClicked(mData); 56 } 57 }); 58 } 59 60 public void bind(final SubscriptionListEntry simEntry) { 61 Assert.notNull(simEntry); 62 mData = simEntry; 63 updateViewAppearance(); 64 } 65 66 public void setHostInterface(final HostInterface host) { 67 mHost = host; 68 } 69 70 private void updateViewAppearance() { 71 Assert.notNull(mData); 72 final String displayName = mData.displayName; 73 if (TextUtils.isEmpty(displayName)) { 74 mNameTextView.setVisibility(GONE); 75 } else { 76 mNameTextView.setVisibility(VISIBLE); 77 mNameTextView.setText(displayName); 78 } 79 80 final String details = mData.displayDestination; 81 if (TextUtils.isEmpty(details)) { 82 mDetailsTextView.setVisibility(GONE); 83 } else { 84 mDetailsTextView.setVisibility(VISIBLE); 85 mDetailsTextView.setText(details); 86 } 87 88 mSimIconView.setImageResourceUri(mData.iconUri); 89 } 90} 91