allRequestHandlers.add(new ContentStreamRequestHandler(context)); allRequestHandlers.add(new AssetRequestHandler(context)); allRequestHandlers.add(new FileRequestHandler(context)); allRequestHandlers.add(new NetworkRequestHandler(callFactory, stats)); requestHandlers = Collections.unmodifiableList(allRequestHandlers);
@Override public void load(@NonNull Picasso picasso, @NonNull Request request, @NonNull Callback callback) { boolean signaledCallback = false; try { Uri requestUri = checkNotNull(request.uri, "request.uri == null"); Source source = getSource(requestUri); Bitmap bitmap = decodeStream(source, request); int exifRotation = getExifOrientation(requestUri); signaledCallback = true; callback.onSuccess(new Result(bitmap, DISK, exifRotation)); } catch (Exception e) { if (!signaledCallback) { callback.onError(e); } } }
@Test public void forFileWithNoPathSegments() { Action action = mockAction("keykeykey", Uri.fromFile(new File("/"))); BitmapHunter hunter = forRequest(mockPicasso(new FileRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(FileRequestHandler.class); }
@Test public void forFileWithAuthorityRequest() { Action action = mockAction(FILE_KEY_1, FILE_1_URL); BitmapHunter hunter = forRequest(mockPicasso(new FileRequestHandler(context)), dispatcher, cache, stats, action); assertThat(hunter.requestHandler).isInstanceOf(FileRequestHandler.class); }