diff --git a/frescoimageviewer/build.gradle b/frescoimageviewer/build.gradle index e2db440..6fdf2fe 100644 --- a/frescoimageviewer/build.gradle +++ b/frescoimageviewer/build.gradle @@ -39,5 +39,5 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:25.1.1' compile 'me.relex:photodraweeview:1.1.0' - provided 'com.facebook.fresco:fresco:0.12.0' + provided 'com.facebook.fresco:fresco:1.8.1' } diff --git a/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewer.java b/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewer.java index 4032f4c..b202954 100644 --- a/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewer.java +++ b/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewer.java @@ -30,6 +30,8 @@ import android.view.KeyEvent; import android.view.View; +import com.facebook.drawee.backends.pipeline.Fresco; +import com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilder; import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder; import com.facebook.imagepipeline.request.ImageRequestBuilder; @@ -72,6 +74,7 @@ private void createDialog() { viewer = new ImageViewerView(builder.context); viewer.setCustomImageRequestBuilder(builder.customImageRequestBuilder); viewer.setCustomDraweeHierarchyBuilder(builder.customHierarchyBuilder); + viewer.setCustomDraweeControllerBuilder(builder.customDraweeControllerBuilder); viewer.allowZooming(builder.isZoomingAllowed); viewer.allowSwipeToDismiss(builder.isSwipeToDismissAllowed); viewer.setOnDismissListener(this); @@ -135,6 +138,13 @@ public static ImageRequestBuilder createImageRequestBuilder() { return ImageRequestBuilder.newBuilderWithSource(Uri.parse("")); } + /** + * Creates new {@code PipelineDraweeControllerBuilder}. + */ + public static PipelineDraweeControllerBuilder createPipelineDraweeControllerBuilder() { + return Fresco.newDraweeControllerBuilder(); + } + /** * Interface definition for a callback to be invoked when image was changed */ @@ -208,6 +218,7 @@ public static class Builder { private int[] containerPaddingPixels = new int[4]; private ImageRequestBuilder customImageRequestBuilder; private GenericDraweeHierarchyBuilder customHierarchyBuilder; + private PipelineDraweeControllerBuilder customDraweeControllerBuilder; private boolean shouldStatusBarHide = true; private boolean isZoomingAllowed = true; private boolean isSwipeToDismissAllowed = true; @@ -416,6 +427,17 @@ public Builder setCustomDraweeHierarchyBuilder(GenericDraweeHierarchyBuilder cus return this; } + /** + * Set {@link PipelineDraweeControllerBuilder} for drawees inside viewer. + * Use {@link ImageViewer#createPipelineDraweeControllerBuilder()} to create its new instance. + * + * @return This Builder object to allow for chaining of calls to set methods + */ + public Builder setCustomDraweeControllerBuilder(PipelineDraweeControllerBuilder customDraweeControllerBuilder) { + this.customDraweeControllerBuilder = customDraweeControllerBuilder; + return this; + } + /** * Creates a {@link ImageViewer} with the arguments supplied to this builder. It does not * {@link ImageViewer#show()} the dialog. This allows the user to do any extra processing diff --git a/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewerAdapter.java b/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewerAdapter.java index c1a144f..fbc4204 100644 --- a/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewerAdapter.java +++ b/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewerAdapter.java @@ -32,16 +32,19 @@ class ImageViewerAdapter private HashSet holders; private ImageRequestBuilder imageRequestBuilder; private GenericDraweeHierarchyBuilder hierarchyBuilder; + private PipelineDraweeControllerBuilder controllerBuilder; private boolean isZoomingAllowed; ImageViewerAdapter(Context context, ImageViewer.DataSet dataSet, ImageRequestBuilder imageRequestBuilder, GenericDraweeHierarchyBuilder hierarchyBuilder, + PipelineDraweeControllerBuilder controllerBuilder, boolean isZoomingAllowed) { this.context = context; this.dataSet = dataSet; this.holders = new HashSet<>(); this.imageRequestBuilder = imageRequestBuilder; + this.controllerBuilder = controllerBuilder; this.hierarchyBuilder = hierarchyBuilder; this.isZoomingAllowed = isZoomingAllowed; } @@ -141,15 +144,19 @@ private void tryToSetHierarchy() { } private void setController(String url) { - PipelineDraweeControllerBuilder controllerBuilder = Fresco.newDraweeControllerBuilder(); - controllerBuilder.setUri(url); - controllerBuilder.setOldController(drawee.getController()); - controllerBuilder.setControllerListener(getDraweeControllerListener(drawee)); + PipelineDraweeControllerBuilder builder = controllerBuilder; + if (builder == null) { + builder = Fresco.newDraweeControllerBuilder(); + } + + builder.setUri(url); + builder.setOldController(drawee.getController()); + builder.setControllerListener(getDraweeControllerListener(drawee)); if (imageRequestBuilder != null) { imageRequestBuilder.setSource(Uri.parse(url)); - controllerBuilder.setImageRequest(imageRequestBuilder.build()); + builder.setImageRequest(imageRequestBuilder.build()); } - drawee.setController(controllerBuilder.build()); + drawee.setController(builder.build()); } } diff --git a/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewerView.java b/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewerView.java index 6a28515..e35bf77 100644 --- a/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewerView.java +++ b/frescoimageviewer/src/main/java/com/stfalcon/frescoimageviewer/ImageViewerView.java @@ -27,6 +27,7 @@ import android.view.ViewGroup; import android.widget.RelativeLayout; +import com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilder; import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder; import com.facebook.imagepipeline.request.ImageRequestBuilder; @@ -52,6 +53,7 @@ class ImageViewerView extends RelativeLayout private ImageRequestBuilder customImageRequestBuilder; private GenericDraweeHierarchyBuilder customDraweeHierarchyBuilder; + private PipelineDraweeControllerBuilder customDraweeControllerBuilder; private boolean wasScaled; private OnDismissListener onDismissListener; @@ -77,7 +79,8 @@ public ImageViewerView(Context context, AttributeSet attrs, int defStyleAttr) { public void setUrls(ImageViewer.DataSet dataSet, int startPosition) { adapter = new ImageViewerAdapter( - getContext(), dataSet, customImageRequestBuilder, customDraweeHierarchyBuilder, isZoomingAllowed); + getContext(), dataSet, customImageRequestBuilder, customDraweeHierarchyBuilder, + customDraweeControllerBuilder, isZoomingAllowed); pager.setAdapter(adapter); setStartPosition(startPosition); } @@ -90,6 +93,10 @@ public void setCustomDraweeHierarchyBuilder(GenericDraweeHierarchyBuilder custom this.customDraweeHierarchyBuilder = customDraweeHierarchyBuilder; } + public void setCustomDraweeControllerBuilder(PipelineDraweeControllerBuilder customDraweeControllerBuilder) { + this.customDraweeControllerBuilder = customDraweeControllerBuilder; + } + @Override public void setBackgroundColor(int color) { findViewById(R.id.backgroundView) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d50e549..21470af 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Apr 11 09:58:14 EEST 2017 +#Wed Sep 06 11:04:56 UYT 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip diff --git a/gradlew b/gradlew index 27309d9..9d82f78 100755 --- a/gradlew +++ b/gradlew @@ -6,30 +6,12 @@ ## ############################################################################## -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -48,7 +30,6 @@ die ( ) { cygwin=false msys=false darwin=false -nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -59,11 +40,26 @@ case "`uname`" in MINGW* ) msys=true ;; - NONSTOP* ) - nonstop=true - ;; esac +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -89,7 +85,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then diff --git a/gradlew.bat b/gradlew.bat index 832fdb6..8a0b282 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,7 +46,7 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windows variants +@rem Get command-line arguments, handling Windowz variants if not "%OS%" == "Windows_NT" goto win9xME_args if "%@eval[2+2]" == "4" goto 4NT_args diff --git a/sample/build.gradle b/sample/build.gradle index f87d0e6..0188087 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -29,7 +29,7 @@ android { ext { supportVersion = '25.1.1' - frescoVersion = '1.2.0' + frescoVersion = '1.8.1' } dependencies {