private void recreateImageList(boolean reparse) {
   if (grabber == null) {
     grabber = new MediaStoreImageGrabber(GalleryWallpaper.this);
     reparse = true;
   }
   if (reparse) {
     String imageSearchPref =
         prefs.getString(
             GalleryWallpaper.SHARED_PREFS_IMAGESEARCH,
             GalleryWallpaper.SHARED_PREFS_IMAGESEARCH_DEFAULT);
     if (imageSearchPref.equals(GalleryWallpaper.SHARED_PREFS_IMAGESEARCH_LIST)) {
       String imagelist =
           prefs.getString(
               GalleryWallpaper.SHARED_PREFS_IMAGELIST,
               GalleryWallpaper.SHARED_PREFS_IMAGELIST_DEFAULT);
       if (imagelist.equals("")) {
         grabber.replaceImageList(new Uri[] {Uri.EMPTY});
       } else {
         ArrayList<Uri> uris = new ArrayList<Uri>();
         String[] imagelistarr = GalleryWallpaper.getCSVRow(imagelist);
         for (int i = 0; i < imagelistarr.length; i++) {
           String thisimg = imagelistarr[i];
           Uri uri = Uri.parse(thisimg);
           uris.add(uri);
         }
         Uri[] uriArray = new Uri[uris.size()];
         uris.toArray(uriArray);
         grabber.replaceImageList(uriArray);
       }
     } else if (imageSearchPref.equals(GalleryWallpaper.SHARED_PREFS_IMAGESEARCH_MEDIASTORE)) {
       String searchlist =
           prefs.getString(
               GalleryWallpaper.SHARED_PREFS_IMAGEDIRS,
               GalleryWallpaper.SHARED_PREFS_IMAGEDIRS_DEFAULT);
       if (searchlist.equals("")) {
         grabber.replaceImageSources(new Uri[] {Uri.EMPTY});
       } else {
         ArrayList<Uri> uris = new ArrayList<Uri>();
         String[] searchlistarr = GalleryWallpaper.getCSVRow(searchlist);
         for (int i = 0; i < searchlistarr.length; i++) {
           Uri uri = Uri.parse(searchlistarr[i]);
           uris.add(uri);
         }
         Uri[] uriArray = new Uri[uris.size()];
         uris.toArray(uriArray);
         grabber.replaceImageSources(uriArray);
       }
     }
     this.changedSearch = false;
   }
   grabber.refreshImageList();
   this.syncRequired = false;
 }
 private void replaceImage() {
   Bitmap nextImage = grabber.getNextImage();
   if (nextImage != null) {
     this.errorMsg = "";
     currentImage = nextImage;
   } else if (this.currentImage == null) {
     this.errorMsg = "Could not load image";
   }
   this.replaceRequired = false;
   this.redrawRequired = true;
   rescaleImage();
   handler.postDelayed(timerRefresh, refreshDelay);
 }