summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/app/list
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/app/list')
-rw-r--r--java/com/android/dialer/app/list/AllContactsFragment.java12
-rw-r--r--java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java13
-rw-r--r--java/com/android/dialer/app/list/DialtactsPagerAdapter.java4
-rw-r--r--java/com/android/dialer/app/list/ListsFragment.java65
-rw-r--r--java/com/android/dialer/app/list/OldSpeedDialFragment.java11
-rw-r--r--java/com/android/dialer/app/list/PhoneFavoriteTileView.java2
-rw-r--r--java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java6
-rw-r--r--java/com/android/dialer/app/list/RegularSearchFragment.java13
-rw-r--r--java/com/android/dialer/app/list/SearchFragment.java23
-rw-r--r--java/com/android/dialer/app/list/SmartDialSearchFragment.java18
10 files changed, 88 insertions, 79 deletions
diff --git a/java/com/android/dialer/app/list/AllContactsFragment.java b/java/com/android/dialer/app/list/AllContactsFragment.java
index f5fdb9e2d..32a99e795 100644
--- a/java/com/android/dialer/app/list/AllContactsFragment.java
+++ b/java/com/android/dialer/app/list/AllContactsFragment.java
@@ -38,6 +38,7 @@ import com.android.contacts.common.list.ContactEntryListFragment;
import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.DefaultContactListAdapter;
import com.android.dialer.app.R;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.CompatUtils;
import com.android.dialer.logging.InteractionEvent;
import com.android.dialer.logging.Logger;
@@ -46,6 +47,7 @@ import com.android.dialer.util.IntentUtil;
import com.android.dialer.util.PermissionsUtil;
import com.android.dialer.widget.EmptyContentView;
import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
+import java.util.Arrays;
/** Fragments to show all contacts with phone numbers. */
public class AllContactsFragment extends ContactEntryListFragment<ContactEntryListAdapter>
@@ -173,9 +175,15 @@ public class AllContactsFragment extends ContactEntryListFragment<ContactEntryLi
return;
}
- if (!PermissionsUtil.hasPermission(activity, READ_CONTACTS)) {
+ String[] deniedPermissions =
+ PermissionsUtil.getPermissionsCurrentlyDenied(
+ getContext(), PermissionsUtil.allContactsGroupPermissionsUsedInDialer);
+ if (deniedPermissions.length > 0) {
+ LogUtil.i(
+ "AllContactsFragment.onEmptyViewActionButtonClicked",
+ "Requesting permissions: " + Arrays.toString(deniedPermissions));
FragmentCompat.requestPermissions(
- this, new String[] {READ_CONTACTS}, READ_CONTACTS_PERMISSION_REQUEST_CODE);
+ this, deniedPermissions, READ_CONTACTS_PERMISSION_REQUEST_CODE);
} else {
// Add new contact
DialerUtils.startActivityWithErrorToast(
diff --git a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
index 04927cf7a..fc0bd3ccf 100644
--- a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
+++ b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
@@ -20,6 +20,7 @@ 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;
@@ -177,33 +178,33 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
resources,
R.string.search_shortcut_call_number,
mBidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR));
- drawable = getContext().getResources().getDrawable(R.drawable.quantum_ic_call_vd_theme_24);
+ 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 =
- getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24);
+ 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 =
- getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24);
+ 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 =
- getContext().getResources().getDrawable(R.drawable.quantum_ic_message_vd_theme_24);
+ 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 =
- getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
+ 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 =
- getContext().getResources().getDrawable(R.drawable.ic_not_interested_googblue_24dp);
+ ContextCompat.getDrawable(getContext(), R.drawable.ic_not_interested_googblue_24dp);
break;
default:
throw new IllegalArgumentException("Invalid shortcut type");
diff --git a/java/com/android/dialer/app/list/DialtactsPagerAdapter.java b/java/com/android/dialer/app/list/DialtactsPagerAdapter.java
index dba3d3a93..822aa789f 100644
--- a/java/com/android/dialer/app/list/DialtactsPagerAdapter.java
+++ b/java/com/android/dialer/app/list/DialtactsPagerAdapter.java
@@ -28,8 +28,8 @@ import com.android.dialer.calllog.CallLogComponent;
import com.android.dialer.calllog.CallLogFramework;
import com.android.dialer.calllog.ui.NewCallLogFragment;
import com.android.dialer.common.Assert;
-import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.configprovider.ConfigProviderBindings;
import com.android.dialer.contactsfragment.ContactsFragment;
import com.android.dialer.database.CallLogQueryHandler;
import com.android.dialer.speeddial.SpeedDialFragment;
@@ -78,7 +78,7 @@ public class DialtactsPagerAdapter extends FragmentPagerAdapter {
CallLogFramework callLogFramework = CallLogComponent.get(context).callLogFramework();
useNewCallLogTab = callLogFramework.isNewCallLogEnabled(context);
useNewContactsTab =
- ConfigProviderBindings.get(context).getBoolean("enable_new_contacts_tab", false);
+ ConfigProviderBindings.get(context).getBoolean("enable_new_contacts_tab", true);
this.tabTitles = tabTitles;
hasActiveVoicemailProvider = hasVoicemailProvider;
fragments.addAll(Collections.nCopies(TAB_COUNT_WITH_VOICEMAIL, null));
diff --git a/java/com/android/dialer/app/list/ListsFragment.java b/java/com/android/dialer/app/list/ListsFragment.java
index 32501d556..3f03db1e8 100644
--- a/java/com/android/dialer/app/list/ListsFragment.java
+++ b/java/com/android/dialer/app/list/ListsFragment.java
@@ -34,15 +34,11 @@ import android.provider.VoicemailContract;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
-import android.view.View.OnClickListener;
import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
import com.android.contacts.common.list.ViewPagerTabs;
import com.android.dialer.app.R;
import com.android.dialer.app.calllog.CallLogFragment;
import com.android.dialer.app.calllog.CallLogNotificationsService;
-import com.android.dialer.app.calllog.VisualVoicemailCallLogFragment;
import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler;
import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler.Source;
import com.android.dialer.common.LogUtil;
@@ -51,6 +47,8 @@ import com.android.dialer.database.CallLogQueryHandler.Listener;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.logging.ScreenEvent;
+import com.android.dialer.logging.UiAction;
+import com.android.dialer.performancereport.PerformanceReport;
import com.android.dialer.speeddial.SpeedDialFragment;
import com.android.dialer.util.PermissionsUtil;
import com.android.dialer.voicemailstatus.VisualVoicemailEnabledChecker;
@@ -64,22 +62,18 @@ import java.util.ArrayList;
* Contacts list. This will also eventually contain the logic that allows sliding the ViewPager
* containing the lists up above the search bar and pin it against the top of the screen.
*/
-public class ListsFragment extends Fragment
- implements OnPageChangeListener, Listener, OnClickListener {
+public class ListsFragment extends Fragment implements OnPageChangeListener, Listener {
private static final String TAG = "ListsFragment";
+
private DialerViewPager mViewPager;
private ViewPagerTabs mViewPagerTabs;
private DialtactsPagerAdapter mAdapter;
private RemoveView mRemoveView;
private View mRemoveViewContent;
- private View mMultiSelectSelectAllViewContent;
- private TextView mSelectUnselectAllViewText;
- private ImageView mSelectUnselectAllIcon;
private Fragment mCurrentPage;
private SharedPreferences mPrefs;
private boolean mHasFetchedVoicemailStatus;
- private boolean selectAllMode;
private boolean mShowVoicemailTabAfterVoicemailStatusIsFetched;
private VoicemailStatusHelper mVoicemailStatusHelper;
private final ArrayList<OnPageChangeListener> mOnPageChangeListeners = new ArrayList<>();
@@ -89,6 +83,8 @@ public class ListsFragment extends Fragment
private boolean mPaused;
private CallLogQueryHandler mCallLogQueryHandler;
+ private UiAction.Type[] actionTypeList;
+
private final ContentObserver mVoicemailStatusObserver =
new ContentObserver(new Handler()) {
@Override
@@ -159,6 +155,12 @@ public class ListsFragment extends Fragment
Trace.endSection();
Trace.beginSection(TAG + " setup views");
+ actionTypeList = new UiAction.Type[TAB_COUNT_WITH_VOICEMAIL];
+ actionTypeList[TAB_INDEX_SPEED_DIAL] = UiAction.Type.CHANGE_TAB_TO_FAVORITE;
+ actionTypeList[TAB_INDEX_HISTORY] = UiAction.Type.CHANGE_TAB_TO_CALL_LOG;
+ actionTypeList[TAB_INDEX_ALL_CONTACTS] = UiAction.Type.CHANGE_TAB_TO_CONTACTS;
+ actionTypeList[TAB_INDEX_VOICEMAIL] = UiAction.Type.CHANGE_TAB_TO_VOICEMAIL;
+
String[] tabTitles = new String[TAB_COUNT_WITH_VOICEMAIL];
tabTitles[TAB_INDEX_SPEED_DIAL] = getResources().getString(R.string.tab_speed_dial);
tabTitles[TAB_INDEX_HISTORY] = getResources().getString(R.string.tab_history);
@@ -190,13 +192,6 @@ public class ListsFragment extends Fragment
addOnPageChangeListener(mViewPagerTabs);
mRemoveView = (RemoveView) parentView.findViewById(R.id.remove_view);
mRemoveViewContent = parentView.findViewById(R.id.remove_view_content);
- mMultiSelectSelectAllViewContent =
- parentView.findViewById(R.id.multi_select_select_all_view_content);
- mSelectUnselectAllViewText = (TextView) parentView.findViewById(R.id.select_all_view_text);
- mSelectUnselectAllIcon = (ImageView) parentView.findViewById(R.id.select_all_view_icon);
- mMultiSelectSelectAllViewContent.setOnClickListener(null);
- mSelectUnselectAllIcon.setOnClickListener(this);
- mSelectUnselectAllViewText.setOnClickListener(this);
if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
&& PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
@@ -227,8 +222,8 @@ public class ListsFragment extends Fragment
/**
* Shows the tab with the specified index. If the voicemail tab index is specified, but the
- * voicemail status hasn't been fetched, it will try to show the tab after the voicemail status
- * has been fetched.
+ * voicemail status hasn't been fetched, it will show the speed dial tab and try to show the
+ * voicemail tab after the voicemail status has been fetched.
*/
public void showTab(int index) {
if (index == TAB_INDEX_VOICEMAIL) {
@@ -255,6 +250,8 @@ public class ListsFragment extends Fragment
@Override
public void onPageSelected(int position) {
+ PerformanceReport.recordClick(actionTypeList[position]);
+
LogUtil.i("ListsFragment.onPageSelected", "position: %d", position);
mTabIndex = mAdapter.getRtlPosition(position);
@@ -389,7 +386,7 @@ public class ListsFragment extends Fragment
public void markMissedCallsAsReadAndRemoveNotifications() {
if (mCallLogQueryHandler != null) {
mCallLogQueryHandler.markMissedCallsAsRead();
- CallLogNotificationsService.markNewMissedCallsAsOld(getContext(), null);
+ CallLogNotificationsService.cancelAllMissedCalls(getContext());
}
}
@@ -400,9 +397,7 @@ public class ListsFragment extends Fragment
}
public void showMultiSelectRemoveView(boolean show) {
- mMultiSelectSelectAllViewContent.setVisibility(show ? View.VISIBLE : View.GONE);
- mMultiSelectSelectAllViewContent.setAlpha(show ? 0 : 1);
- mMultiSelectSelectAllViewContent.animate().alpha(show ? 1 : 0).start();
+ mViewPagerTabs.setVisibility(show ? View.GONE : View.VISIBLE);
mViewPager.setEnableSwipingPages(!show);
}
@@ -445,28 +440,4 @@ public class ListsFragment extends Fragment
}
Logger.get(getActivity()).logScreenView(screenType, getActivity());
}
-
- @Override
- public void onClick(View v) {
- updateSelectAllIcon();
- selectAllMode = !selectAllMode;
- }
-
- public void setSelectAllModeToFalse() {
- selectAllMode = false;
- mSelectUnselectAllIcon.setImageDrawable(
- getContext().getDrawable(R.drawable.ic_empty_check_mark_white_24dp));
- }
-
- private void updateSelectAllIcon() {
- if (selectAllMode) {
- mSelectUnselectAllIcon.setImageDrawable(
- getContext().getDrawable(R.drawable.ic_empty_check_mark_white_24dp));
- ((VisualVoicemailCallLogFragment) mCurrentPage).getAdapter().onAllDeselected();
- } else {
- mSelectUnselectAllIcon.setImageDrawable(
- getContext().getDrawable(R.drawable.ic_check_mark_blue_24dp));
- ((VisualVoicemailCallLogFragment) mCurrentPage).getAdapter().onAllSelected();
- }
- }
}
diff --git a/java/com/android/dialer/app/list/OldSpeedDialFragment.java b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
index 1ddc0f4e1..05d017b28 100644
--- a/java/com/android/dialer/app/list/OldSpeedDialFragment.java
+++ b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
@@ -56,6 +56,7 @@ import com.android.dialer.util.PermissionsUtil;
import com.android.dialer.util.ViewUtil;
import com.android.dialer.widget.EmptyContentView;
import java.util.ArrayList;
+import java.util.Arrays;
/** This fragment displays the user's favorite/frequent contacts in a grid. */
public class OldSpeedDialFragment extends Fragment
@@ -403,9 +404,15 @@ public class OldSpeedDialFragment extends Fragment
return;
}
- if (!PermissionsUtil.hasPermission(activity, READ_CONTACTS)) {
+ String[] deniedPermissions =
+ PermissionsUtil.getPermissionsCurrentlyDenied(
+ getContext(), PermissionsUtil.allContactsGroupPermissionsUsedInDialer);
+ if (deniedPermissions.length > 0) {
+ LogUtil.i(
+ "OldSpeedDialFragment.onEmptyViewActionButtonClicked",
+ "Requesting permissions: " + Arrays.toString(deniedPermissions));
FragmentCompat.requestPermissions(
- this, new String[] {READ_CONTACTS}, READ_CONTACTS_PERMISSION_REQUEST_CODE);
+ this, deniedPermissions, READ_CONTACTS_PERMISSION_REQUEST_CODE);
} else {
// Switch tabs
((HostInterface) activity).showAllContactsTab();
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
index 835b448bd..eb4f8e967 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
@@ -138,6 +138,8 @@ public abstract class PhoneFavoriteTileView extends ContactTileView {
}
if (TextUtils.isEmpty(mPhoneNumberString)) {
+ // Don't set performance report now, since user may spend some time on picking a number
+
// Copy "superclass" implementation
Logger.get(getContext())
.logInteraction(InteractionEvent.Type.SPEED_DIAL_CLICK_CONTACT_WITH_AMBIGUOUS_NUMBER);
diff --git a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
index ce8598261..876fbf146 100644
--- a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
+++ b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
@@ -200,7 +200,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop
int multipleNumbersContactsCount = 0;
int contactsWithPhotoCount = 0;
int contactsWithNameCount = 0;
- int duoReachableContactsCount = 0;
+ int lightbringerReachableContactsCount = 0;
// The cursor should not be closed since this is invoked from a CursorLoader.
if (cursor.moveToFirst()) {
@@ -308,7 +308,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop
if (contact.phoneNumber == null) {
multipleNumbersContactsCount++;
} else if (lightbringer.isReachable(mContext, contact.phoneNumber)) {
- duoReachableContactsCount++;
+ lightbringerReachableContactsCount++;
}
}
@@ -320,7 +320,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop
multipleNumbersContactsCount,
contactsWithPhotoCount,
contactsWithNameCount,
- duoReachableContactsCount);
+ lightbringerReachableContactsCount);
// Logs for manual testing
LogUtil.v("PhoneFavoritesTileAdapter.saveCursorToCache", "counter: %d", counter);
LogUtil.v(
diff --git a/java/com/android/dialer/app/list/RegularSearchFragment.java b/java/com/android/dialer/app/list/RegularSearchFragment.java
index 4f032032f..728948bfc 100644
--- a/java/com/android/dialer/app/list/RegularSearchFragment.java
+++ b/java/com/android/dialer/app/list/RegularSearchFragment.java
@@ -26,11 +26,13 @@ import com.android.contacts.common.list.ContactEntryListAdapter;
import com.android.contacts.common.list.PinnedHeaderListView;
import com.android.dialer.app.R;
import com.android.dialer.callintent.CallInitiationType;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.phonenumbercache.CachedNumberLookupService;
import com.android.dialer.phonenumbercache.PhoneNumberCache;
import com.android.dialer.util.PermissionsUtil;
import com.android.dialer.widget.EmptyContentView;
import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
+import java.util.Arrays;
public class RegularSearchFragment extends SearchFragment
implements OnEmptyViewActionButtonClickedListener,
@@ -114,8 +116,15 @@ public class RegularSearchFragment extends SearchFragment
}
if (READ_CONTACTS.equals(mPermissionToRequest)) {
- FragmentCompat.requestPermissions(
- this, new String[] {mPermissionToRequest}, PERMISSION_REQUEST_CODE);
+ String[] deniedPermissions =
+ PermissionsUtil.getPermissionsCurrentlyDenied(
+ getContext(), PermissionsUtil.allContactsGroupPermissionsUsedInDialer);
+ if (deniedPermissions.length > 0) {
+ LogUtil.i(
+ "RegularSearchFragment.onEmptyViewActionButtonClicked",
+ "Requesting permissions: " + Arrays.toString(deniedPermissions));
+ FragmentCompat.requestPermissions(this, deniedPermissions, PERMISSION_REQUEST_CODE);
+ }
}
}
diff --git a/java/com/android/dialer/app/list/SearchFragment.java b/java/com/android/dialer/app/list/SearchFragment.java
index 7f2d17650..00a2708a1 100644
--- a/java/com/android/dialer/app/list/SearchFragment.java
+++ b/java/com/android/dialer/app/list/SearchFragment.java
@@ -42,6 +42,8 @@ import com.android.dialer.app.dialpad.DialpadFragment.ErrorDialogFragment;
import com.android.dialer.app.widget.DialpadSearchEmptyContentView;
import com.android.dialer.callintent.CallSpecificAppData;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.IntentUtil;
import com.android.dialer.util.PermissionsUtil;
@@ -96,9 +98,6 @@ public class SearchFragment extends PhoneNumberPickerFragment {
public void onStart() {
LogUtil.d("SearchFragment.onStart", "");
super.onStart();
- if (isSearchMode()) {
- getAdapter().setHasHeader(0, false);
- }
mActivity = (HostInterface) getActivity();
@@ -170,16 +169,6 @@ public class SearchFragment extends PhoneNumberPickerFragment {
return animator;
}
- @Override
- protected void setSearchMode(boolean flag) {
- super.setSearchMode(flag);
- // This hides the "All contacts with phone numbers" header in the search fragment
- final ContactEntryListAdapter adapter = getAdapter();
- if (adapter != null) {
- adapter.setHasHeader(0, false);
- }
- }
-
public void setAddToContactNumber(String addToContactNumber) {
mAddToContactNumber = addToContactNumber;
}
@@ -247,6 +236,10 @@ public class SearchFragment extends PhoneNumberPickerFragment {
}
break;
case DialerPhoneNumberListAdapter.SHORTCUT_CREATE_NEW_CONTACT:
+ if (this instanceof SmartDialSearchFragment) {
+ Logger.get(getContext())
+ .logImpression(DialerImpression.Type.CREATE_NEW_CONTACT_FROM_DIALPAD);
+ }
number =
TextUtils.isEmpty(mAddToContactNumber)
? adapter.getFormattedQueryString()
@@ -255,6 +248,10 @@ public class SearchFragment extends PhoneNumberPickerFragment {
DialerUtils.startActivityWithErrorToast(getActivity(), intent);
break;
case DialerPhoneNumberListAdapter.SHORTCUT_ADD_TO_EXISTING_CONTACT:
+ if (this instanceof SmartDialSearchFragment) {
+ Logger.get(getContext())
+ .logImpression(DialerImpression.Type.ADD_TO_A_CONTACT_FROM_DIALPAD);
+ }
number =
TextUtils.isEmpty(mAddToContactNumber)
? adapter.getFormattedQueryString()
diff --git a/java/com/android/dialer/app/list/SmartDialSearchFragment.java b/java/com/android/dialer/app/list/SmartDialSearchFragment.java
index fc21c8bc3..2ebc06bc3 100644
--- a/java/com/android/dialer/app/list/SmartDialSearchFragment.java
+++ b/java/com/android/dialer/app/list/SmartDialSearchFragment.java
@@ -34,6 +34,7 @@ import com.android.dialer.common.LogUtil;
import com.android.dialer.database.DialerDatabaseHelper;
import com.android.dialer.util.PermissionsUtil;
import com.android.dialer.widget.EmptyContentView;
+import java.util.Arrays;
/** Implements a fragment to load and display SmartDial search results. */
public class SmartDialSearchFragment extends SearchFragment
@@ -80,6 +81,11 @@ public class SmartDialSearchFragment extends SearchFragment
}
@Override
+ public boolean getShowEmptyListForNullQuery() {
+ return true;
+ }
+
+ @Override
protected void setupEmptyView() {
if (mEmptyView != null && getActivity() != null) {
if (!PermissionsUtil.hasPermission(getActivity(), CALL_PHONE)) {
@@ -123,8 +129,16 @@ public class SmartDialSearchFragment extends SearchFragment
return;
}
- FragmentCompat.requestPermissions(
- this, new String[] {CALL_PHONE}, CALL_PHONE_PERMISSION_REQUEST_CODE);
+ String[] deniedPermissions =
+ PermissionsUtil.getPermissionsCurrentlyDenied(
+ getContext(), PermissionsUtil.allPhoneGroupPermissionsUsedInDialer);
+ if (deniedPermissions.length > 0) {
+ LogUtil.i(
+ "SmartDialSearchFragment.onEmptyViewActionButtonClicked",
+ "Requesting permissions: " + Arrays.toString(deniedPermissions));
+ FragmentCompat.requestPermissions(
+ this, deniedPermissions, CALL_PHONE_PERMISSION_REQUEST_CODE);
+ }
}
@Override