Fix a race condition when switching between settings panels

The fragment was removed while the images were being loaded, so the
activity was null. This fix holds on to the Resources object.

Bug: 7490425
Change-Id: Ic2d8dd3c620fc34ce8255104001e17b39f828601
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 632dfe5..dbaaf37 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -26,6 +26,7 @@
 import android.content.IntentFilter;
 import android.content.SharedPreferences;
 import android.content.pm.UserInfo;
+import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.drawable.BitmapDrawable;
@@ -477,6 +478,7 @@
     }
 
     private void loadIconsAsync(List<Integer> missingIcons) {
+        final Resources resources = getResources();
         new AsyncTask<List<Integer>, Void, Void>() {
             @Override
             protected void onPostExecute(Void result) {
@@ -485,17 +487,16 @@
 
             @Override
             protected Void doInBackground(List<Integer>... values) {
-                if (getActivity() == null) return null;
                 for (int userId : values[0]) {
                     Bitmap bitmap = mUserManager.getUserIcon(userId);
-                    Drawable d = new BitmapDrawable(getResources(), bitmap);
+                    Drawable d = new BitmapDrawable(resources, bitmap);
                     mUserIcons.append(userId, d);
                 }
                 return null;
             }
         }.execute(missingIcons);
-
     }
+
     private void assignProfilePhoto(final UserInfo user) {
         if (!Utils.copyMeProfilePhoto(getActivity(), user)) {
             assignDefaultPhoto(user);