private void precacheListToDisk(List<String> precacheRequestUris, int position) {
   if (precacheRequestUris != null) {
     for (String precacheRequestUri : precacheRequestUris) {
       ImageRequest imageRequest = new ImageRequest(precacheRequestUri);
       imageRequest.setImageRequestType(ImageRequestType.PRECACHE_TO_DISK_FOR_ADAPTER);
       imageRequest.setCacheKey(new CacheKey(mId, position, mMemCacheRange, mDiskCacheRange));
       mImageLoader.loadImage(imageRequest);
     }
   }
 }
 private void precacheListToMemory(List<PrecacheRequest> precacheRequests, int position) {
   if (precacheRequests != null) {
     for (PrecacheRequest precacheRequest : precacheRequests) {
       ImageRequest imageRequest = new ImageRequest(precacheRequest.uri);
       imageRequest.setOptions(precacheRequest.options);
       imageRequest.setImageRequestType(ImageRequestType.PRECACHE_TO_MEMORY_FOR_ADAPTER);
       imageRequest.setCacheKey(new CacheKey(mId, position, mMemCacheRange, mDiskCacheRange));
       mImageLoader.loadImage(imageRequest);
     }
   }
 }
コード例 #3
0
  public void testFindBestSampleSize() {
    // desired == actual == 1
    assertEquals(1, ImageRequest.findBestSampleSize(100, 150, 100, 150));

    // exactly half == 2
    assertEquals(2, ImageRequest.findBestSampleSize(280, 160, 140, 80));

    // just over half == 1
    assertEquals(1, ImageRequest.findBestSampleSize(1000, 800, 501, 401));

    // just under 1/4 == 4
    assertEquals(4, ImageRequest.findBestSampleSize(100, 200, 24, 50));
  }
コード例 #4
0
 private void verifyResize(
     NetworkResponse networkResponse,
     int maxWidth,
     int maxHeight,
     int expectedWidth,
     int expectedHeight) {
   ImageRequest request = new ImageRequest("", null, maxWidth, maxHeight, Config.RGB_565, null);
   Response<Bitmap> response = request.parseNetworkResponse(networkResponse);
   assertNotNull(response);
   assertTrue(response.isSuccess());
   Bitmap bitmap = response.result;
   assertNotNull(bitmap);
   assertEquals(expectedWidth, bitmap.getWidth());
   assertEquals(expectedHeight, bitmap.getHeight());
 }
コード例 #5
0
  private ImageRequest getImageRequest() {
    ImageRequest request = null;
    try {
      ImageRequest.Builder requestBuilder =
          new ImageRequest.Builder(
              getActivity(),
              ImageRequest.getProfilePictureUrl(
                  user.getId(),
                  getResources()
                      .getDimensionPixelSize(
                          AirFacebookExtension.context.getResourceId(
                              "dimen.com_facebook_usersettingsfragment_profile_picture_width")),
                  getResources()
                      .getDimensionPixelSize(
                          AirFacebookExtension.context.getResourceId(
                              "dimen.com_facebook_usersettingsfragment_profile_picture_height"))));

      request =
          requestBuilder
              .setCallerTag(this)
              .setCallback(
                  new ImageRequest.Callback() {
                    @Override
                    public void onCompleted(ImageResponse response) {
                      processImageResponse(user.getId(), response);
                    }
                  })
              .build();
    } catch (MalformedURLException e) {
    }
    return request;
  }
コード例 #6
0
  private void sendImageRequest(boolean allowCachedResponse) {
    try {
      ImageRequest.Builder requestBuilder =
          new ImageRequest.Builder(
              getContext(), ImageRequest.getProfilePictureUrl(profileId, queryWidth, queryHeight));

      ImageRequest request =
          requestBuilder
              .setAllowCachedRedirects(allowCachedResponse)
              .setCallerTag(this)
              .setCallback(
                  new ImageRequest.Callback() {
                    @Override
                    public void onCompleted(ImageResponse response) {
                      processResponse(response);
                    }
                  })
              .build();

      // Make sure to cancel the old request before sending the new one to prevent
      // accidental cancellation of the new request. This could happen if the URL and
      // caller tag stayed the same.
      if (lastRequest != null) {
        ImageDownloader.cancelRequest(lastRequest);
      }
      lastRequest = request;

      ImageDownloader.downloadAsync(request);
    } catch (MalformedURLException e) {
      Logger.log(LoggingBehavior.REQUESTS, Log.ERROR, TAG, e.toString());
    }
  }
 public void loadImage(ImageRequest imageRequest, int position) {
   imageRequest.setCacheKey(new CacheKey(mId, position, mMemCacheRange, mDiskCacheRange));
   imageRequest.setImageRequestType(ImageRequestType.ADAPTER_REQUEST);
   mImageLoader.loadImage(imageRequest);
 }
コード例 #8
0
  private void updateUI() {
    if (!isAdded()) {
      return;
    }
    if (isSessionOpen()) {
      connectedStateLabel.setTextColor(
          getResources()
              .getColor(
                  AirFacebookExtension.context.getResourceId(
                      "color.com_facebook_usersettingsfragment_connected_text_color")));
      connectedStateLabel.setShadowLayer(
          1f,
          0f,
          -1f,
          getResources()
              .getColor(
                  AirFacebookExtension.context.getResourceId(
                      "color.com_facebook_usersettingsfragment_connected_shadow_color")));

      if (user != null) {
        ImageRequest request = getImageRequest();
        if (request != null) {
          URL requestUrl = request.getImageUrl();
          // Do we already have the right picture? If so, leave it alone.
          if (!requestUrl.equals(connectedStateLabel.getTag())) {
            if (user.getId().equals(userProfilePicID)) {
              connectedStateLabel.setCompoundDrawables(null, userProfilePic, null, null);
              connectedStateLabel.setTag(requestUrl);
            } else {
              ImageDownloader.downloadAsync(request);
            }
          }
        }
        connectedStateLabel.setText(user.getName());
      } else {
        connectedStateLabel.setText(
            getResources()
                .getString(
                    AirFacebookExtension.context.getResourceId(
                        "string.com_facebook_usersettingsfragment_logged_in")));
        Drawable noProfilePic =
            getResources()
                .getDrawable(
                    AirFacebookExtension.context.getResourceId(
                        "drawable.com_facebook_profile_default_icon"));
        noProfilePic.setBounds(
            0,
            0,
            getResources()
                .getDimensionPixelSize(
                    AirFacebookExtension.context.getResourceId(
                        "dimen.com_facebook_usersettingsfragment_profile_picture_width")),
            getResources()
                .getDimensionPixelSize(
                    AirFacebookExtension.context.getResourceId(
                        "dimen.com_facebook_usersettingsfragment_profile_picture_height")));
        connectedStateLabel.setCompoundDrawables(null, noProfilePic, null, null);
      }
    } else {
      int textColor =
          getResources()
              .getColor(
                  AirFacebookExtension.context.getResourceId(
                      "color.com_facebook_usersettingsfragment_not_connected_text_color"));
      connectedStateLabel.setTextColor(textColor);
      connectedStateLabel.setShadowLayer(0f, 0f, 0f, textColor);
      connectedStateLabel.setText(
          getResources()
              .getString(
                  AirFacebookExtension.context.getResourceId(
                      "string.com_facebook_usersettingsfragment_not_logged_in")));
      connectedStateLabel.setCompoundDrawables(null, null, null, null);
      connectedStateLabel.setTag(null);
    }
  }
コード例 #9
0
 @Override
 public FileResponse getImage(ImageRequest imageRequest) throws IOException {
   FileResponse out =
       getImageStream(imageRequest.getIdImage(), imageRequest.getExtension(), imageRequest);
   if (out.getIdFile() == noImage.getIdFile() && imageRequest.getExtension() != null) {
     /** Image wasn't found with extension. Let's try it again without extension. */
     ImageRequest copy = new ImageRequest(imageRequest.getIdImage());
     copy.setWidth(imageRequest.getWidth());
     copy.setHeight(imageRequest.getHeight());
     copy.setKeepAspectRatio(imageRequest.isKeepAspectRatio());
     out = getImageStream(imageRequest.getIdImage(), null, copy);
     if (out.getIdFile() != noImage.getIdFile()) {
       logger.warn(
           "image '"
               + imageRequest.getIdImage()
               + "' should have extension '"
               + out.getExtension()
               + "' instead of '"
               + imageRequest.getExtension()
               + "'");
     }
   }
   return out;
 }