@Override public void onViewDetachedFromWindow(View v) { pauseMyRequest(); } };
@Override public boolean handleMessage(Message message) { if (message.what == MESSAGE_CLEAR) { ((PreloadTarget<?>) message.obj).clear(); return true; } return false; } });
@Override public void onViewDetachedFromWindow(View v) { pauseMyRequest(); } };
@Test public void getSize_withValidWidthAndHeight_notLaidOut_notLayoutRequested_callsSizeReady() { shadowView .setWidth(100) .setHeight(100) .setIsLaidOut(false); target.getSize(cb); verify(cb).onSizeReady(100, 100); }
@Test public void getSize_withWrapContentHeightAndValidWidth_returnsWidthAndDisplayDimen() { int width = 100; LayoutParams params = new LayoutParams(width, LayoutParams.WRAP_CONTENT); view.setLayoutParams(params); shadowView.setIsLaidOut(true); setDisplayDimens(200, 100); target.getSize(cb); verify(cb).onSizeReady(width, 200); }
@Test public void getSize_withValidWidthAndHeight_preV19_layoutRequested_callsSizeReady() { Util.setSdkVersionInt(18); shadowView .setWidth(100) .setHeight(100) .requestLayout(); target.getSize(cb); verify(cb).onSizeReady(100, 100); }
/** * Sets the given {@link android.graphics.drawable.Drawable} on the view using {@link * android.widget.ImageView#setImageDrawable(android.graphics.drawable.Drawable)}. * * @param placeholder {@inheritDoc} */ @Override public void onLoadStarted(@Nullable Drawable placeholder) { super.onLoadStarted(placeholder); setResourceInternal(null); setDrawable(placeholder); }
/** * Sets the given {@link android.graphics.drawable.Drawable} on the view using {@link * android.widget.ImageView#setImageDrawable(android.graphics.drawable.Drawable)}. * * @param errorDrawable {@inheritDoc} */ @Override public void onLoadFailed(@Nullable Drawable errorDrawable) { super.onLoadFailed(errorDrawable); setResourceInternal(null); setDrawable(errorDrawable); }
@CallSuper @Override public void onLoadCleared(@Nullable Drawable placeholder) { super.onLoadCleared(placeholder); sizeDeterminer.clearCallbacksAndListener(); if (!isClearedByUs) { maybeRemoveAttachStateListener(); } }
@Test public void clearOnDetach_onDetach_withNullRequest_doesNothing() { attachStateTarget.clearOnDetach(); attachStateTarget.setRequest(null); shadowView.callOnAttachedToWindow(); }
/** * Returns a PreloadTarget. * * @param width The width in pixels of the desired resource. * @param height The height in pixels of the desired resource. * @param <Z> The type of the desired resource. */ public static <Z> PreloadTarget<Z> obtain(RequestManager requestManager, int width, int height) { return new PreloadTarget<>(requestManager, width, height); }
@Override public final void onLoadCleared(@Nullable Drawable placeholder) { sizeDeterminer.clearCallbacksAndListener(); onResourceCleared(placeholder); if (!isClearedByUs) { maybeRemoveAttachStateListener(); } }
@Override public void onViewAttachedToWindow(View v) { resumeMyRequest(); }
@Override public void onViewAttachedToWindow(View v) { resumeMyRequest(); }
private boolean isViewStateAndSizeValid(int width, int height) { return isDimensionValid(width) && isDimensionValid(height); }
@Test public void testSizeCallbackIsCalledPreDrawIfNoDimensAndNoLayoutParams() { target.getSize(cb); int width = 12; int height = 32; shadowView .setWidth(width) .setHeight(height) .setIsLaidOut(true); shadowObserver.fireOnPreDrawListeners(); verify(cb).onSizeReady(eq(width), eq(height)); }
@Test public void getSize_withBothWrapContent_usesDisplayDimens() { LayoutParams layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); view.setLayoutParams(layoutParams); shadowView.setIsLaidOut(true); setDisplayDimens(200, 300); target.getSize(cb); verify(cb).onSizeReady(300, 300); }
@Test public void clearOnDetach_onAttach_withNullRequest_doesNothing() { attachStateTarget.clearOnDetach(); attachStateTarget.setRequest(null); shadowView.callOnAttachedToWindow(); }
@Test public void testSizeCallbackIsCalledSynchronouslyIfViewSizeSet() { int dimens = 333; shadowView .setWidth(dimens) .setHeight(dimens) .setIsLaidOut(true); target.getSize(cb); verify(cb).onSizeReady(eq(dimens), eq(dimens)); }
@Test public void getSize_withWrapContentWidthAndValidHeight_usesDisplayDimenAndValidHeight() { int height = 100; LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, height); view.setLayoutParams(params); shadowView.setIsLaidOut(true); setDisplayDimens(100, 200); target.getSize(cb); verify(cb).onSizeReady(200, height); }