From 6ee2ff8a75f4e029ed1bf8a0e780c567974cabd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rom=C3=A1n=20A=2E=20Sarria?= Date: Wed, 9 Jan 2019 09:44:58 -0300 Subject: [PATCH] Adding picasso options --- README.md | 4 ++++ package.json | 2 +- plugin.xml | 2 +- src/android/PhotoActivity.java | 32 +++++++++++++++++++++++++------- www/PhotoViewer.js | 12 +++++++++++- 5 files changed, 42 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index c2d062f..476e560 100644 --- a/README.md +++ b/README.md @@ -86,3 +86,7 @@ PhotoViewer.show('http://my_site.com/my_image.jpg', 'Optional Title', options); (1.1.17) - Additional options added for iOS - Fix share issue with SDK version 24 or above on Android + +(1.1.9) +- Support for Headers +- Enable or Disable Picasso Options ( Only Android ): fit, centerInside, centerCrop. \ No newline at end of file diff --git a/package.json b/package.json index 419d1fb..0c4a1a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com-sarriaroman-photoviewer", - "version": "1.1.18", + "version": "1.1.19", "description": "This plugin is intended to show a picture from an URL into a Photo Viewer with zoom features.", "cordova": { "id": "com-sarriaroman-photoviewer", diff --git a/plugin.xml b/plugin.xml index 9e01f32..530693a 100644 --- a/plugin.xml +++ b/plugin.xml @@ -1,5 +1,5 @@ - + PhotoViewer This plugin is intended to show a picture from an URL into a Photo Viewer with zoom features. diff --git a/src/android/PhotoActivity.java b/src/android/PhotoActivity.java index 07dd059..52e81e7 100644 --- a/src/android/PhotoActivity.java +++ b/src/android/PhotoActivity.java @@ -51,6 +51,7 @@ public class PhotoActivity extends Activity { private String mTitle; private boolean mShare; private JSONObject mHeaders; + private JSONObject pOptions; private File mTempImage; private int shareBtnVisibility; @@ -70,6 +71,7 @@ protected void onCreate(Bundle savedInstanceState) { this.mTitle = mArgs.getString(1); this.mShare = mArgs.getBoolean(2); this.mHeaders = parseHeaders(mArgs.getString(5)); + this.pOptions = mArgs.getJSONObject(6); //Set the share button visibility shareBtnVisibility = this.mShare ? View.VISIBLE : View.INVISIBLE; @@ -164,6 +166,22 @@ private void hideLoadingAndUpdate() { mAttacher.update(); } + private Piccasso setOptions(Piccasso picasso) throws JSONException { + if(this.pOptions.has("fit") && this.pOptions.optBoolean("fit")) { + picasso.fit(); + } + + if(this.pOptions.has("centerInside") && this.pOptions.optBoolean("centerInside")) { + picasso.centerInside(); + } + + if(this.pOptions.has("centerCrop") && this.pOptions.optBoolean("centerCrop")) { + picasso.centerCrop(); + } + + return picasso; + } + /** * Load the image using Picasso */ @@ -176,9 +194,9 @@ private void loadImage() { picasso = getImageLoader(this); } - picasso.load(mImage) - .fit() - .centerInside() + picasso.load(mImage); + + this.setOptions(picasso) .into(photo, new com.squareup.picasso.Callback() { @Override public void onSuccess() { @@ -203,10 +221,10 @@ protected File doInBackground(Void... params) { protected void onPostExecute(File file) { mTempImage = file; - Picasso.with(PhotoActivity.this) - .load(mTempImage) - .fit() - .centerCrop() + Piccasso picasso = Picasso.with(PhotoActivity.this) + .load(mTempImage); + + this.setOptions(picasso) .into(photo, new com.squareup.picasso.Callback() { @Override public void onSuccess() { diff --git a/www/PhotoViewer.js b/www/PhotoViewer.js index cd4683f..d267784 100644 --- a/www/PhotoViewer.js +++ b/www/PhotoViewer.js @@ -25,7 +25,17 @@ exports.show = function(url, title, options) { options.headers = ''; } - var args = [url, title, options.share, options.closeButton, options.copyToReference, options.headers]; + var piccasoOptions = { + fit: true, + centerInside: true, + centerCrop: false + }; + + if(options.picassoOptions) { + piccasoOptions = Object.assign(piccasoOptions, options.picassoOptions); + } + + var args = [url, title, options.share, options.closeButton, options.copyToReference, options.headers, picassoOptions]; exec(function() {}, function() {}, "PhotoViewer", "show", args); };