/** * Initiates a call to the number at the specified position. * * @param position The position. * @param isVideoCall {@code true} if the call should be initiated as a video call, * {@code false} otherwise. */ private void callNumber(int position, boolean isVideoCall) { final Uri phoneUri = getPhoneUri(position); if (phoneUri != null) { pickPhoneNumber(phoneUri, isVideoCall); } else { final String number = getPhoneNumber(position); if (!TextUtils.isEmpty(number)) { cacheContactInfo(position); mListener.onPickPhoneNumber(number, isVideoCall, getCallInitiationType(true /* isRemoteDirectory */)); } else { Log.w(TAG, "Item at " + position + " was clicked before" + " adapter is ready. Ignoring"); } } // Get the lookup key and track any analytics final String lookupKey = getLookupKey(position); if (!TextUtils.isEmpty(lookupKey)) { maybeTrackAnalytics(lookupKey); } }
/** * Handles a click on the video call icon for a row in the list. * * @param position The position in the list where the click ocurred. */ @Override public void onVideoCallIconClicked(int position) { callNumber(position, true /* isVideoCall */); }
@Override protected void configureAdapter() { super.configureAdapter(); final ContactEntryListAdapter adapter = getAdapter(); if (adapter == null) { return; } if (!isSearchMode() && mFilter != null) { adapter.setFilter(mFilter); } setPhotoPosition(adapter); }
public void pickPhoneNumber(Uri uri, boolean isVideoCall) { if (mShortcutAction == null) { mListener.onPickDataUri(uri, isVideoCall, getCallInitiationType(false /* isRemoteDirectory */)); } else { startPhoneNumberShortcutIntent(uri, isVideoCall); } }
@Override protected void onCreateView(LayoutInflater inflater, ViewGroup container) { super.onCreateView(inflater, container); View paddingView = inflater.inflate(R.layout.contact_detail_list_padding, null, false); mPaddingView = paddingView.findViewById(R.id.contact_detail_list_padding); getListView().addHeaderView(paddingView); mAccountFilterHeader = getView().findViewById(R.id.account_filter_header_container); mAccountFilterHeader.setOnClickListener(mFilterHeaderClickListener); updateFilterHeaderView(); setVisibleScrollbarEnabled(getVisibleScrollbarEnabled()); }
private void updateFilterHeaderView() { final ContactListFilter filter = getFilter(); if (mAccountFilterHeader == null || filter == null) { return; } final boolean shouldShowHeader = !isSearchMode() && AccountFilterUtil.updateAccountFilterTitleForPhone( mAccountFilterHeader, filter, false); if (shouldShowHeader) { mPaddingView.setVisibility(View.GONE); mAccountFilterHeader.setVisibility(View.VISIBLE); } else { mPaddingView.setVisibility(View.VISIBLE); mAccountFilterHeader.setVisibility(View.GONE); } }
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_ACCOUNT_FILTER) { if (getActivity() != null) { AccountFilterUtil.handleAccountFilterResult( ContactListFilterController.getInstance(getActivity()), resultCode, data); } else { Log.e(TAG, "getActivity() returns null during Fragment#onActivityResult()"); } } }
public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) { mPhotoPosition = photoPosition; final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter(); if (adapter != null) { adapter.setPhotoPosition(photoPosition); } }
@Override public void onPickerResult(Intent data) { mListener.onPickDataUri(data.getData(), false /* isVideoCall */, getCallInitiationType(false /* isRemoteDirectory */)); }
AnalyticsUtil.sendEvent(getActivity().getApplication(), analyticsCategory, analyticsAction, "" /* label */, value); } catch (JSONException e) {
protected String getPhoneNumber(int position) { final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter(); return adapter.getPhoneNumber(position); }
protected void startPhoneNumberShortcutIntent(Uri uri, boolean isVideoCall) { ShortcutIntentBuilder builder = new ShortcutIntentBuilder(getActivity(), this); builder.createPhoneNumberShortcutIntent(uri, mShortcutAction); }
protected String getLookupKey(int position) { final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter(); return adapter.getLookupKey(position); }
@Override protected void onItemClick(int position, long id) { callNumber(position, false /* isVideoCall */); }
@Override protected ContactEntryListAdapter createListAdapter() { PhoneNumberListAdapter adapter = new PhoneNumberListAdapter(getActivity()); adapter.setDisplayPhotos(true); adapter.setUseCallableUri(mUseCallableUri); return adapter; }
protected Uri getPhoneUri(int position) { final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter(); return adapter.getDataUri(position); }