/**
   * Load Boot image from network if it does not exist in the cache, and then store it.
   *
   * @param bootUrl The URL to load the image.
   */
  public void loadAndStoreBootImage(String bootUrl) {
    if (TextUtils.isEmpty(bootUrl)) {
      return;
    }

    SharedStore sharedStore = new SharedStore(mContext, null);
    String bootUrlSaved = sharedStore.getString("boot_url", null);

    File bootCacheDirectory = mContext.getCacheDir();
    String imageName = "boot";
    File imageFile = new File(bootCacheDirectory, imageName);
    FastBitmapDrawable drawable = getImageFromCache(bootCacheDirectory, imageName);
    if (bootUrl.equals(bootUrlSaved) && drawable != null) {
      // same url and downloaded
      return;
    }

    int orientation = mContext.getResources().getConfiguration().orientation;
    DisplayMetrics metrics = mContext.getResources().getDisplayMetrics();
    int width = metrics.widthPixels;
    int height = metrics.heightPixels;
    if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
      width = metrics.heightPixels;
      height = metrics.widthPixels;
    }

    Bitmap bootImage = loadImage(bootUrl, true);
    if (bootImage != null) {
      if (imageFile.exists()) {
        imageFile.delete();
      }
      putBootImageToCache(bootImage, width, height, imageName, bootCacheDirectory);
      sharedStore.putString("boot_url", bootUrl);
    }
  }
  /**
   * Load LOGO image from network if it does not exist in the cache, and then store it.
   *
   * @param logoUrl The URL to load the LOGO image.
   */
  public void loadAndStoreLogoImage(String logoUrl) {
    if (TextUtils.isEmpty(logoUrl)) {
      return;
    }

    SharedStore sharedStore = new SharedStore(mContext, null);

    String logoUrlSaved = sharedStore.getString("logo_url", null);

    File logoCacheDir = mContext.getCacheDir();
    String imageName = "logo";
    File imageFile = new File(logoCacheDir, imageName);
    FastBitmapDrawable drawable = getImageFromCache(logoCacheDir, imageName);
    if (drawable != null && logoUrl.equals(logoUrlSaved)) {
      // same url and downloaded
      return;
    }

    DisplayMetrics metrics = mContext.getResources().getDisplayMetrics();
    int width = (int) (172 * metrics.density);
    int height = (int) (44 * metrics.density);

    Bitmap logoImage = loadImage(logoUrl, true);
    if (logoImage != null) {
      imageFile.delete();
      putImageToCache(logoImage, width, height, imageName, logoCacheDir, true);
      sharedStore.putString("logo_url", logoUrl);
    }
  }