Dismissing location prompt now actually prevents it from reshowing.

Bug: 67709163
Test: NewSearchFragmentTest
PiperOrigin-RevId: 172378559
Change-Id: I2b92e1e06057a57638d23a333d04239b2e288bc1
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index 393b07a..6115c2f 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -345,7 +345,7 @@
     if (!PermissionsUtil.hasLocationPermissions(getContext())
         && !DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(getContext())
             .getBoolean(KEY_LOCATION_PROMPT_DISMISSED, false)) {
-      if (adapter != null && isRegularSearch()) {
+      if (adapter != null && isRegularSearch() && !hasBeenDismissed()) {
         adapter.showLocationPermissionRequest(
             v -> requestLocationPermission(), v -> dismissLocationPermission());
       }
@@ -372,7 +372,8 @@
     requestPermissions(deniedPermissions, LOCATION_PERMISSION_REQUEST_CODE);
   }
 
-  private void dismissLocationPermission() {
+  @VisibleForTesting
+  public void dismissLocationPermission() {
     PreferenceManager.getDefaultSharedPreferences(getContext())
         .edit()
         .putBoolean(KEY_LOCATION_PROMPT_DISMISSED, true)
@@ -380,6 +381,11 @@
     adapter.hideLocationPermissionRequest();
   }
 
+  private boolean hasBeenDismissed() {
+    return PreferenceManager.getDefaultSharedPreferences(getContext())
+        .getBoolean(KEY_LOCATION_PROMPT_DISMISSED, false);
+  }
+
   @Override
   public void onResume() {
     super.onResume();
diff --git a/java/com/android/dialer/searchfragment/list/SearchAdapter.java b/java/com/android/dialer/searchfragment/list/SearchAdapter.java
index 29e4e23..949c2a2 100644
--- a/java/com/android/dialer/searchfragment/list/SearchAdapter.java
+++ b/java/com/android/dialer/searchfragment/list/SearchAdapter.java
@@ -187,7 +187,7 @@
     this.allowClickListener = Assert.isNotNull(allowClickListener);
     this.dismissClickListener = Assert.isNotNull(dismissClickListener);
     if (searchCursorManager.showLocationPermissionRequest(true)) {
-      notifyItemRemoved(0);
+      notifyItemInserted(0);
     }
   }