Currently set home & lock wallpaper show as circles

Let both currently set home & lock screen wallpapers will be shown as circles in wallpaper selecting page.

Bug: 186486890
Test: manual
Change-Id: I76be6ac99bf6df7cf6e8a433cd670cd8859eedfd
diff --git a/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java b/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java
index 2277a99..9fff1f3 100755
--- a/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java
+++ b/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java
@@ -31,6 +31,8 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.service.wallpaper.WallpaperService;
+import android.text.TextUtils;
+import android.util.ArraySet;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
@@ -99,6 +101,7 @@
 import java.util.List;
 import java.util.Optional;
 import java.util.Random;
+import java.util.Set;
 
 /**
  * Displays the Main UI for picking an individual wallpaper image.
@@ -294,6 +297,7 @@
     private WallpaperManager mWallpaperManager;
     private int mWallpaperDestination;
     private WallpaperSelectedListener mWallpaperSelectedListener;
+    private Set<String> mAppliedWallpaperIds;
 
     public static IndividualPickerFragment newInstance(String collectionId) {
         Bundle args = new Bundle();
@@ -509,6 +513,8 @@
             }
         }
 
+        mAppliedWallpaperIds = getAppliedWallpaperIds();
+
         mImageGrid = (RecyclerView) view.findViewById(R.id.wallpaper_grid);
         if (mFormFactor == FormFactorChecker.FORM_FACTOR_DESKTOP) {
             int gridPaddingPx = getResources().getDimensionPixelSize(R.dimen.grid_padding_desktop);
@@ -1095,6 +1101,28 @@
         }
     }
 
+    private Set<String> getAppliedWallpaperIds() {
+        WallpaperPreferences prefs =
+                InjectorProvider.getInjector().getPreferences(getContext());
+        android.app.WallpaperInfo wallpaperInfo = mWallpaperManager.getWallpaperInfo();
+        Set<String> appliedWallpaperIds = new ArraySet<>();
+
+        String homeWallpaperId = wallpaperInfo != null ? wallpaperInfo.getServiceName()
+                : prefs.getHomeWallpaperRemoteId();
+        if (!TextUtils.isEmpty(homeWallpaperId)) {
+            appliedWallpaperIds.add(homeWallpaperId);
+        }
+
+        boolean isLockWallpaperApplied =
+                mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_LOCK) >= 0;
+        String lockWallpaperId = prefs.getLockWallpaperRemoteId();
+        if (isLockWallpaperApplied && !TextUtils.isEmpty(lockWallpaperId)) {
+            appliedWallpaperIds.add(lockWallpaperId);
+        }
+
+        return appliedWallpaperIds;
+    }
+
     private void showCheckMarkAndBorderForAppliedWallpaper(boolean show) {
         updateAppliedStatus(mAppliedWallpaperInfo, show);
         if (mSelectedWallpaperInfo == null) {
@@ -1377,8 +1405,7 @@
                     ? position - 1 : position;
             WallpaperInfo wallpaper = mWallpapers.get(wallpaperIndex);
             ((IndividualHolder) holder).bindWallpaper(wallpaper);
-            String appliedWallpaperId = getAppliedWallpaperId();
-            boolean isWallpaperApplied = wallpaper.getWallpaperId().equals(appliedWallpaperId);
+            boolean isWallpaperApplied = mAppliedWallpaperIds.contains(wallpaper.getWallpaperId());
             boolean isWallpaperSelected = wallpaper.equals(mSelectedWallpaperInfo);
             boolean hasUserSelectedWallpaper = mSelectedWallpaperInfo != null;