summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java')
-rw-r--r--java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java236
1 files changed, 0 insertions, 236 deletions
diff --git a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
deleted file mode 100644
index d5609b856..000000000
--- a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.app.list;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.graphics.drawable.Drawable;
-import android.support.v4.content.ContextCompat;
-import android.telephony.PhoneNumberUtils;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
-import android.view.View;
-import android.view.ViewGroup;
-import com.android.contacts.common.list.ContactListItemView;
-import com.android.contacts.common.list.PhoneNumberListAdapter;
-import com.android.contacts.common.util.ContactDisplayUtils;
-import com.android.dialer.app.R;
-import com.android.dialer.location.GeoUtil;
-import com.android.dialer.phonenumberutil.PhoneNumberHelper;
-
-/**
- * {@link PhoneNumberListAdapter} with the following added shortcuts, that are displayed as list
- * items: 1) Directly calling the phone number query 2) Adding the phone number query to a contact
- *
- * <p>These shortcuts can be enabled or disabled to toggle whether or not they show up in the list.
- */
-public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
-
- public static final int SHORTCUT_INVALID = -1;
- public static final int SHORTCUT_DIRECT_CALL = 0;
- public static final int SHORTCUT_CREATE_NEW_CONTACT = 1;
- public static final int SHORTCUT_ADD_TO_EXISTING_CONTACT = 2;
- public static final int SHORTCUT_SEND_SMS_MESSAGE = 3;
- public static final int SHORTCUT_MAKE_VIDEO_CALL = 4;
- public static final int SHORTCUT_BLOCK_NUMBER = 5;
- public static final int SHORTCUT_COUNT = 6;
-
- private final boolean[] shortcutEnabled = new boolean[SHORTCUT_COUNT];
- private final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
- private final String countryIso;
-
- private String formattedQueryString;
-
- public DialerPhoneNumberListAdapter(Context context) {
- super(context);
-
- countryIso = GeoUtil.getCurrentCountryIso(context);
- }
-
- @Override
- public int getCount() {
- return super.getCount() + getShortcutCount();
- }
-
- /** @return The number of enabled shortcuts. Ranges from 0 to a maximum of SHORTCUT_COUNT */
- public int getShortcutCount() {
- int count = 0;
- for (int i = 0; i < shortcutEnabled.length; i++) {
- if (shortcutEnabled[i]) {
- count++;
- }
- }
- return count;
- }
-
- public void disableAllShortcuts() {
- for (int i = 0; i < shortcutEnabled.length; i++) {
- shortcutEnabled[i] = false;
- }
- }
-
- @Override
- public int getItemViewType(int position) {
- final int shortcut = getShortcutTypeFromPosition(position);
- if (shortcut >= 0) {
- // shortcutPos should always range from 1 to SHORTCUT_COUNT
- return super.getViewTypeCount() + shortcut;
- } else {
- return super.getItemViewType(position);
- }
- }
-
- @Override
- public int getViewTypeCount() {
- // Number of item view types in the super implementation + 2 for the 2 new shortcuts
- return super.getViewTypeCount() + SHORTCUT_COUNT;
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- final int shortcutType = getShortcutTypeFromPosition(position);
- if (shortcutType >= 0) {
- if (convertView != null) {
- assignShortcutToView((ContactListItemView) convertView, shortcutType);
- return convertView;
- } else {
- final ContactListItemView v =
- new ContactListItemView(getContext(), null, mIsImsVideoEnabled);
- assignShortcutToView(v, shortcutType);
- return v;
- }
- } else {
- return super.getView(position, convertView, parent);
- }
- }
-
- @Override
- protected ContactListItemView newView(
- Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
- final ContactListItemView view = super.newView(context, partition, cursor, position, parent);
-
- view.setSupportVideoCallIcon(mIsImsVideoEnabled);
- return view;
- }
-
- /**
- * @param position The position of the item
- * @return The enabled shortcut type matching the given position if the item is a shortcut, -1
- * otherwise
- */
- public int getShortcutTypeFromPosition(int position) {
- int shortcutCount = position - super.getCount();
- if (shortcutCount >= 0) {
- // Iterate through the array of shortcuts, looking only for shortcuts where
- // mShortcutEnabled[i] is true
- for (int i = 0; shortcutCount >= 0 && i < shortcutEnabled.length; i++) {
- if (shortcutEnabled[i]) {
- shortcutCount--;
- if (shortcutCount < 0) {
- return i;
- }
- }
- }
- throw new IllegalArgumentException(
- "Invalid position - greater than cursor count " + " but not a shortcut.");
- }
- return SHORTCUT_INVALID;
- }
-
- @Override
- public boolean isEmpty() {
- return getShortcutCount() == 0 && super.isEmpty();
- }
-
- @Override
- public boolean isEnabled(int position) {
- final int shortcutType = getShortcutTypeFromPosition(position);
- if (shortcutType >= 0) {
- return true;
- } else {
- return super.isEnabled(position);
- }
- }
-
- private void assignShortcutToView(ContactListItemView v, int shortcutType) {
- final CharSequence text;
- final Drawable drawable;
- final Resources resources = getContext().getResources();
- final String number = getFormattedQueryString();
- switch (shortcutType) {
- case SHORTCUT_DIRECT_CALL:
- text =
- ContactDisplayUtils.getTtsSpannedPhoneNumber(
- resources,
- R.string.search_shortcut_call_number,
- bidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR));
- drawable = ContextCompat.getDrawable(getContext(), R.drawable.quantum_ic_call_vd_theme_24);
- break;
- case SHORTCUT_CREATE_NEW_CONTACT:
- text = resources.getString(R.string.search_shortcut_create_new_contact);
- drawable =
- ContextCompat.getDrawable(getContext(), R.drawable.quantum_ic_person_add_vd_theme_24);
- drawable.setAutoMirrored(true);
- break;
- case SHORTCUT_ADD_TO_EXISTING_CONTACT:
- text = resources.getString(R.string.search_shortcut_add_to_contact);
- drawable =
- ContextCompat.getDrawable(getContext(), R.drawable.quantum_ic_person_add_vd_theme_24);
- break;
- case SHORTCUT_SEND_SMS_MESSAGE:
- text = resources.getString(R.string.search_shortcut_send_sms_message);
- drawable =
- ContextCompat.getDrawable(getContext(), R.drawable.quantum_ic_message_vd_theme_24);
- break;
- case SHORTCUT_MAKE_VIDEO_CALL:
- text = resources.getString(R.string.search_shortcut_make_video_call);
- drawable =
- ContextCompat.getDrawable(getContext(), R.drawable.quantum_ic_videocam_vd_theme_24);
- break;
- case SHORTCUT_BLOCK_NUMBER:
- text = resources.getString(R.string.search_shortcut_block_number);
- drawable =
- ContextCompat.getDrawable(getContext(), R.drawable.ic_not_interested_googblue_24dp);
- break;
- default:
- throw new IllegalArgumentException("Invalid shortcut type");
- }
- v.setDrawable(drawable);
- v.setDisplayName(text);
- v.setAdjustSelectionBoundsEnabled(false);
- }
-
- /** @return True if the shortcut state (disabled vs enabled) was changed by this operation */
- public boolean setShortcutEnabled(int shortcutType, boolean visible) {
- final boolean changed = shortcutEnabled[shortcutType] != visible;
- shortcutEnabled[shortcutType] = visible;
- return changed;
- }
-
- public String getFormattedQueryString() {
- return formattedQueryString;
- }
-
- @Override
- public void setQueryString(String queryString) {
- formattedQueryString =
- PhoneNumberHelper.formatNumber(
- getContext(), PhoneNumberUtils.normalizeNumber(queryString), countryIso);
- super.setQueryString(queryString);
- }
-}