1ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian/* 2ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Copyright (C) 2011 The Android Open Source Project 3ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * 4ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Licensed under the Apache License, Version 2.0 (the "License"); 5ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * you may not use this file except in compliance with the License. 6ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * You may obtain a copy of the License at 7ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * 8ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * http://www.apache.org/licenses/LICENSE-2.0 9ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * 10ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Unless required by applicable law or agreed to in writing, software 11ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * distributed under the License is distributed on an "AS IS" BASIS, 12ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * See the License for the specific language governing permissions and 14ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * limitations under the License. 15ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian */ 16ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 17ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianpackage com.android.dialer.app.calllog; 18ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 19ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.content.Context; 20ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.view.View; 21ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.widget.TextView; 22ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport com.android.dialer.app.R; 23d5e47f6da5b08b13ecdfa7f1edc7e12aeb83fab9Eric Erfanianimport com.android.dialer.calllogutils.CallTypeIconsView; 24ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 25ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian/** Encapsulates the views that are used to display the details of a phone call in the call log. */ 26ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianpublic final class PhoneCallDetailsViews { 27ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 28ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public final TextView nameView; 29ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public final View callTypeView; 30ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public final CallTypeIconsView callTypeIcons; 31ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public final TextView callLocationAndDate; 32ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public final TextView voicemailTranscriptionView; 33ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public final TextView callAccountLabel; 34ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 35ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian private PhoneCallDetailsViews( 36ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian TextView nameView, 37ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian View callTypeView, 38ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian CallTypeIconsView callTypeIcons, 39ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian TextView callLocationAndDate, 40ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian TextView voicemailTranscriptionView, 41ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian TextView callAccountLabel) { 42ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian this.nameView = nameView; 43ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian this.callTypeView = callTypeView; 44ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian this.callTypeIcons = callTypeIcons; 45ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian this.callLocationAndDate = callLocationAndDate; 46ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian this.voicemailTranscriptionView = voicemailTranscriptionView; 47ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian this.callAccountLabel = callAccountLabel; 48ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 49ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 50ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian /** 51ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Create a new instance by extracting the elements from the given view. 52ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * 53ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * <p>The view should contain three text views with identifiers {@code R.id.name}, {@code 54ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * R.id.date}, and {@code R.id.number}, and a linear layout with identifier {@code 55ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * R.id.call_types}. 56ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian */ 57ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public static PhoneCallDetailsViews fromView(View view) { 58ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return new PhoneCallDetailsViews( 59ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian (TextView) view.findViewById(R.id.name), 60ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian view.findViewById(R.id.call_type), 61ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian (CallTypeIconsView) view.findViewById(R.id.call_type_icons), 62ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian (TextView) view.findViewById(R.id.call_location_and_date), 63ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian (TextView) view.findViewById(R.id.voicemail_transcription), 64ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian (TextView) view.findViewById(R.id.call_account_label)); 65ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 66ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian 67ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian public static PhoneCallDetailsViews createForTest(Context context) { 68ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian return new PhoneCallDetailsViews( 69ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian new TextView(context), 70ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian new View(context), 71ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian new CallTypeIconsView(context), 72ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian new TextView(context), 73ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian new TextView(context), 74ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian new TextView(context)); 75ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian } 76ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian} 77