1d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng/* 2d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * Copyright (C) 2011 The Android Open Source Project 3d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * 4d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * Licensed under the Apache License, Version 2.0 (the "License"); 5d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * you may not use this file except in compliance with the License. 6d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * You may obtain a copy of the License at 7d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * 8d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * http://www.apache.org/licenses/LICENSE-2.0 9d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * 10d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * Unless required by applicable law or agreed to in writing, software 11d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * distributed under the License is distributed on an "AS IS" BASIS, 12d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * See the License for the specific language governing permissions and 14d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * limitations under the License. 15d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng */ 16d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Chengpackage com.android.contacts.common.list; 17d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng 18d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Chengimport android.content.Context; 19d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Chengimport android.text.TextUtils; 20d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Chengimport android.util.AttributeSet; 21d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Chengimport android.view.View; 22d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng 23d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Chengimport com.android.contacts.common.MoreContactUtils; 24d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Chengimport com.android.contacts.common.util.ViewUtil; 25d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng 26d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng/** 27d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * A dark version of the {@link com.android.contacts.common.list.ContactTileView} that is used in Dialtacts 28d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * for frequently called contacts. Slightly different behavior from superclass... 29d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * when you tap it, you want to call the frequently-called number for the 30d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng * contact, even if that is not the default number for that contact. 31d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng */ 32d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Chengpublic class ContactTilePhoneFrequentView extends ContactTileView { 33d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng private String mPhoneNumberString; 34d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng 35d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng public ContactTilePhoneFrequentView(Context context, AttributeSet attrs) { 36d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng super(context, attrs); 37d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng } 38d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng 39d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng @Override 40d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng protected boolean isDarkTheme() { 41d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng return true; 42d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng } 43d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng 44d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng @Override 45d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng protected int getApproximateImageSize() { 46d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng return ViewUtil.getConstantPreLayoutWidth(getQuickContact()); 47d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng } 48d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng 49d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng @Override 50d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng public void loadFromContact(ContactEntry entry) { 51d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng super.loadFromContact(entry); 52d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng mPhoneNumberString = null; // ... in case we're reusing the view 53d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng if (entry != null) { 54d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng // Grab the phone-number to call directly... see {@link onClick()} 55d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng mPhoneNumberString = entry.phoneNumber; 56d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng } 57d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng } 58d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng 59d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng @Override 60d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng protected OnClickListener createClickListener() { 61d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng return new OnClickListener() { 62d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng @Override 63d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng public void onClick(View v) { 64d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng if (mListener == null) return; 65d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng if (TextUtils.isEmpty(mPhoneNumberString)) { 66d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng // Copy "superclass" implementation 67d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng mListener.onContactSelected(getLookupUri(), MoreContactUtils 68039b4d46787bd06f2faeaac8c332459c86f3cffeYorke Lee .getTargetRectFromView(ContactTilePhoneFrequentView.this)); 69d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng } else { 70d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng // When you tap a frequently-called contact, you want to 71d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng // call them at the number that you usually talk to them 72d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng // at (i.e. the one displayed in the UI), regardless of 73d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng // whether that's their default number. 74d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng mListener.onCallNumberDirectly(mPhoneNumberString); 75d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng } 76d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng } 77d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng }; 78d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng } 79d0c8da65af3b67ba551a220ca40be31f644dfed6Chiao Cheng} 80