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