summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/searchfragment/list/NewSearchFragment.java')
-rw-r--r--java/com/android/dialer/searchfragment/list/NewSearchFragment.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index 1dbd953dd..47a4ee608 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -24,6 +24,7 @@ import android.content.Loader;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Bundle;
+import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
@@ -53,6 +54,7 @@ import com.android.dialer.searchfragment.remote.RemoteContactsCursorLoader;
import com.android.dialer.searchfragment.remote.RemoteDirectoriesCursorLoader;
import com.android.dialer.searchfragment.remote.RemoteDirectoriesCursorLoader.Directory;
import com.android.dialer.util.CallUtil;
+import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.PermissionsUtil;
import com.android.dialer.util.ViewUtil;
import com.android.dialer.widget.EmptyContentView;
@@ -76,6 +78,7 @@ public final class NewSearchFragment extends Fragment
private static final int ENRICHED_CALLING_CAPABILITIES_UPDATED_DELAY = 400;
private static final String KEY_SHOW_ZERO_SUGGEST = "use_zero_suggest";
+ private static final String KEY_LOCATION_PROMPT_DISMISSED = "search_location_prompt_dismissed";
@VisibleForTesting public static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1;
@VisibleForTesting private static final int LOCATION_PERMISSION_REQUEST_CODE = 2;
@@ -326,9 +329,12 @@ public final class NewSearchFragment extends Fragment
// Should not be called before remote directories (not contacts) have finished loading.
private void loadNearbyPlacesCursor() {
- if (!PermissionsUtil.hasLocationPermissions(getContext())) {
+ if (!PermissionsUtil.hasLocationPermissions(getContext())
+ && !DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(getContext())
+ .getBoolean(KEY_LOCATION_PROMPT_DISMISSED, false)) {
if (adapter != null) {
- adapter.showLocationPermissionRequest(v -> requestLocationPermission());
+ adapter.showLocationPermissionRequest(
+ v -> requestLocationPermission(), v -> dismissLocationPermission());
}
return;
}
@@ -353,6 +359,14 @@ public final class NewSearchFragment extends Fragment
requestPermissions(deniedPermissions, LOCATION_PERMISSION_REQUEST_CODE);
}
+ private void dismissLocationPermission() {
+ PreferenceManager.getDefaultSharedPreferences(getContext())
+ .edit()
+ .putBoolean(KEY_LOCATION_PROMPT_DISMISSED, true)
+ .apply();
+ adapter.hideLocationPermissionRequest();
+ }
+
@Override
public void onResume() {
super.onResume();