mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 12:53:55 +01:00
Fix all compile errors in Zoom.java and ShareActivity.java
This commit is contained in:
parent
c885c31cc5
commit
56592b3bcd
2 changed files with 52 additions and 34 deletions
|
|
@ -2,27 +2,23 @@ package fr.free.nrw.commons.upload;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
import android.animation.AnimatorListenerAdapter;
|
import android.animation.AnimatorListenerAdapter;
|
||||||
import android.animation.AnimatorSet;
|
import android.animation.AnimatorSet;
|
||||||
import android.animation.ObjectAnimator;
|
import android.animation.ObjectAnimator;
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapRegionDecoder;
|
|
||||||
import android.graphics.Point;
|
import android.graphics.Point;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.provider.MediaStore;
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.RequiresApi;
|
import android.support.annotation.RequiresApi;
|
||||||
import android.support.design.widget.FloatingActionButton;
|
import android.support.design.widget.FloatingActionButton;
|
||||||
|
|
@ -30,7 +26,6 @@ import android.support.design.widget.Snackbar;
|
||||||
import android.support.graphics.drawable.VectorDrawableCompat;
|
import android.support.graphics.drawable.VectorDrawableCompat;
|
||||||
import android.support.v4.app.ActivityCompat;
|
import android.support.v4.app.ActivityCompat;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.support.v4.graphics.BitmapCompat;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
@ -68,7 +63,6 @@ import fr.free.nrw.commons.modifications.ModifierSequenceDao;
|
||||||
import fr.free.nrw.commons.modifications.TemplateRemoveModifier;
|
import fr.free.nrw.commons.modifications.TemplateRemoveModifier;
|
||||||
import fr.free.nrw.commons.mwapi.CategoryApi;
|
import fr.free.nrw.commons.mwapi.CategoryApi;
|
||||||
import fr.free.nrw.commons.mwapi.MediaWikiApi;
|
import fr.free.nrw.commons.mwapi.MediaWikiApi;
|
||||||
import io.reactivex.schedulers.Schedulers;
|
|
||||||
import fr.free.nrw.commons.utils.ViewUtil;
|
import fr.free.nrw.commons.utils.ViewUtil;
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
|
|
@ -524,7 +518,27 @@ public class ShareActivity
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
ZoomUtils.zoomImageUtil(thumbView, startBounds, input);
|
Zoom zoomObj = new Zoom(thumbView, startBounds, input, imageuri, this.getContentResolver());
|
||||||
|
Bitmap scaledImage = zoomObj.createScaledImage();
|
||||||
|
|
||||||
|
// Load the high-resolution "zoomed-in" image.
|
||||||
|
expandedImageView.setImageBitmap(scaledImage);
|
||||||
|
|
||||||
|
float startScale = zoomObj.adjustStartEndBounds(finalBounds, globalOffset);
|
||||||
|
|
||||||
|
// Hide the thumbnail and show the zoomed-in view. When the animation
|
||||||
|
// begins, it will position the zoomed-in view in the place of the
|
||||||
|
// thumbnail.
|
||||||
|
thumbView.setAlpha(0f);
|
||||||
|
expandedImageView.setVisibility(View.VISIBLE);
|
||||||
|
zoomOutButton.setVisibility(View.VISIBLE);
|
||||||
|
zoomInButton.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
// Set the pivot point for SCALE_X and SCALE_Y transformations
|
||||||
|
// to the top-left corner of the zoomed-in view (the default
|
||||||
|
// is the center of the view).
|
||||||
|
expandedImageView.setPivotX(0f);
|
||||||
|
expandedImageView.setPivotY(0f);
|
||||||
|
|
||||||
// Construct and run the parallel animation of the four translation and
|
// Construct and run the parallel animation of the four translation and
|
||||||
// scale properties (X, Y, SCALE_X, and SCALE_Y).
|
// scale properties (X, Y, SCALE_X, and SCALE_Y).
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,38 @@
|
||||||
package fr.free.nrw.commons.upload;
|
package fr.free.nrw.commons.upload;
|
||||||
|
|
||||||
|
import android.content.ContentResolver;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapRegionDecoder;
|
import android.graphics.BitmapRegionDecoder;
|
||||||
|
import android.graphics.Point;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
import android.net.Uri;
|
||||||
import android.provider.MediaStore;
|
import android.provider.MediaStore;
|
||||||
import android.support.v4.graphics.BitmapCompat;
|
import android.support.v4.graphics.BitmapCompat;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.FrameLayout;
|
||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
public class ZoomUtils {
|
public class Zoom {
|
||||||
|
|
||||||
static void zoomImageUtil(View thumbView, Rect startBounds, InputStream input) {
|
private View thumbView;
|
||||||
|
private Rect startBounds;
|
||||||
|
private InputStream input;
|
||||||
|
private Uri imageUri;
|
||||||
|
private ContentResolver contentResolver;
|
||||||
|
private FrameLayout flContainer;
|
||||||
|
|
||||||
|
public Zoom(View thumbView, Rect startBounds, InputStream input, Uri imageUri, ContentResolver contentResolver) {
|
||||||
|
this.thumbView = thumbView;
|
||||||
|
this.startBounds = startBounds;
|
||||||
|
this.input = input;
|
||||||
|
this.imageUri = imageUri;
|
||||||
|
this.contentResolver = contentResolver;
|
||||||
|
}
|
||||||
|
|
||||||
|
Bitmap createScaledImage() {
|
||||||
|
|
||||||
Bitmap scaled = null;
|
Bitmap scaled = null;
|
||||||
BitmapRegionDecoder decoder = null;
|
BitmapRegionDecoder decoder = null;
|
||||||
|
|
@ -28,24 +47,23 @@ public class ZoomUtils {
|
||||||
System.gc();
|
System.gc();
|
||||||
Runtime rt = Runtime.getRuntime();
|
Runtime rt = Runtime.getRuntime();
|
||||||
long maxMemory = rt.freeMemory();
|
long maxMemory = rt.freeMemory();
|
||||||
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageuri);
|
bitmap = MediaStore.Images.Media.getBitmap(contentResolver, imageUri);
|
||||||
int bitmapByteCount= BitmapCompat.getAllocationByteCount(bitmap);
|
int bitmapByteCount = BitmapCompat.getAllocationByteCount(bitmap);
|
||||||
long height = bitmap.getHeight();
|
long height = bitmap.getHeight();
|
||||||
long width = bitmap.getWidth();
|
long width = bitmap.getWidth();
|
||||||
long calHeight = (long) ((height * maxMemory)/(bitmapByteCount * 1.1));
|
long calHeight = (long) ((height * maxMemory) / (bitmapByteCount * 1.1));
|
||||||
long calWidth = (long) ((width * maxMemory)/(bitmapByteCount * 1.1));
|
long calWidth = (long) ((width * maxMemory) / (bitmapByteCount * 1.1));
|
||||||
scaled = Bitmap.createScaledBitmap(bitmap,(int) Math.min(width,calWidth), (int) Math.min(height,calHeight), true);
|
scaled = Bitmap.createScaledBitmap(bitmap, (int) Math.min(width, calWidth), (int) Math.min(height, calHeight), true);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
} catch (NullPointerException e){
|
} catch (NullPointerException e) {
|
||||||
scaled = bitmap;
|
scaled = bitmap;
|
||||||
}
|
}
|
||||||
// Load the high-resolution "zoomed-in" image.
|
return scaled;
|
||||||
expandedImageView.setImageBitmap(scaled);
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
float adjustStartEndBounds(Rect finalBounds, Point globalOffset) {
|
||||||
// Calculate the starting and ending bounds for the zoomed-in image.
|
// Calculate the starting and ending bounds for the zoomed-in image.
|
||||||
// This step involves lots of math. Yay, math.
|
|
||||||
// The start bounds are the global visible rectangle of the thumbnail,
|
// The start bounds are the global visible rectangle of the thumbnail,
|
||||||
// and the final bounds are the global visible rectangle of the container
|
// and the final bounds are the global visible rectangle of the container
|
||||||
// view. Also set the container view's offset as the origin for the
|
// view. Also set the container view's offset as the origin for the
|
||||||
|
|
@ -77,20 +95,6 @@ public class ZoomUtils {
|
||||||
startBounds.top -= deltaHeight;
|
startBounds.top -= deltaHeight;
|
||||||
startBounds.bottom += deltaHeight;
|
startBounds.bottom += deltaHeight;
|
||||||
}
|
}
|
||||||
|
return startScale;
|
||||||
// Hide the thumbnail and show the zoomed-in view. When the animation
|
|
||||||
// begins, it will position the zoomed-in view in the place of the
|
|
||||||
// thumbnail.
|
|
||||||
thumbView.setAlpha(0f);
|
|
||||||
expandedImageView.setVisibility(View.VISIBLE);
|
|
||||||
zoomOutButton.setVisibility(View.VISIBLE);
|
|
||||||
zoomInButton.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
// Set the pivot point for SCALE_X and SCALE_Y transformations
|
|
||||||
// to the top-left corner of the zoomed-in view (the default
|
|
||||||
// is the center of the view).
|
|
||||||
expandedImageView.setPivotX(0f);
|
|
||||||
expandedImageView.setPivotY(0f);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue