Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit ae8e53e

Browse files
Ramkishorevitkunall17
authored andcommitted
Fixes #487 Made image zoomable after clicking on the image
1 parent 471dca2 commit ae8e53e

File tree

3 files changed

+30
-31
lines changed

3 files changed

+30
-31
lines changed

app/build.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ apply plugin: 'io.fabric'
1313
repositories {
1414
maven { url 'https://maven.fabric.io/public' }
1515
}
16-
16+
repositories {
17+
maven { url "https://jitpack.io" }
18+
}
1719

1820
android {
1921
compileSdkVersion 24
@@ -86,6 +88,7 @@ dependencies {
8688
compile 'com.github.bumptech.glide:glide:3.8.0'
8789
compile 'com.android.support:support-v4:24.1.0'
8890
compile 'com.theartofdev.edmodo:android-image-cropper:2.3.+'
91+
compile 'com.github.chrisbanes:PhotoView:1.3.0'
8992
compile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
9093
transitive = true;
9194
}

app/src/main/java/com/zulip/android/activities/PhotoViewActivity.java

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import android.content.Intent;
1111
import android.content.SharedPreferences;
1212
import android.content.pm.PackageManager;
13+
import android.graphics.Bitmap;
14+
import android.graphics.drawable.Drawable;
1315
import android.net.ConnectivityManager;
1416
import android.net.NetworkInfo;
1517
import android.net.Uri;
@@ -29,15 +31,13 @@
2931
import android.widget.ImageView;
3032
import android.widget.ProgressBar;
3133
import android.widget.Toast;
32-
3334
import com.bumptech.glide.Glide;
3435
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
3536
import com.bumptech.glide.request.RequestListener;
36-
import com.bumptech.glide.request.target.GlideDrawableImageViewTarget;
37-
import com.bumptech.glide.request.target.Target;
37+
import com.bumptech.glide.request.animation.GlideAnimation;
38+
import com.bumptech.glide.request.target.SimpleTarget;
3839
import com.zulip.android.R;
3940
import com.zulip.android.util.ZLog;
40-
4141
import java.io.BufferedInputStream;
4242
import java.io.File;
4343
import java.io.FileOutputStream;
@@ -47,6 +47,7 @@
4747
import java.net.MalformedURLException;
4848
import java.net.URL;
4949
import java.net.URLConnection;
50+
import uk.co.senab.photoview.PhotoView;
5051

5152

5253
public class PhotoViewActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback {
@@ -55,7 +56,7 @@ public class PhotoViewActivity extends AppCompatActivity implements ActivityComp
5556
private static final int EXTERNAL_STORAGE_PERMISSION_CONSTANT = 100;
5657
private static final int REQUEST_PERMISSION_SETTING = 101;
5758
int id = 1;
58-
private ImageView linkImage;
59+
private PhotoView linkImage;
5960
private ProgressBar progressBar;
6061
private NotificationManager mNotifyManager;
6162
private NotificationCompat.Builder mBuilder;
@@ -74,31 +75,26 @@ protected void onCreate(Bundle savedInstanceState) {
7475
final Intent intent = getIntent();
7576
String url = intent.getStringExtra(Intent.EXTRA_TEXT);
7677
getSupportActionBar().setTitle(url);
77-
linkImage = (ImageView) findViewById(R.id.linkImageView);
78+
linkImage = (PhotoView) findViewById(R.id.linkImageView);
7879
progressBar = (ProgressBar) findViewById(R.id.progress);
79-
GlideDrawableImageViewTarget imageViewPreview = new GlideDrawableImageViewTarget(linkImage);
80-
Glide
81-
.with(this)
82-
.load(url)
83-
.listener(new RequestListener<String, GlideDrawable>() {
84-
@Override
85-
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
86-
progressBar.setVisibility(View.GONE);
87-
if (!isNetworkAvailable()) {
88-
Toast.makeText(getApplicationContext(), R.string.toast_no_internet_connection, Toast.LENGTH_SHORT).show();
89-
} else {
90-
Toast.makeText(getApplicationContext(), R.string.toast_unable_to_load_image, Toast.LENGTH_SHORT).show();
91-
}
92-
return false;
93-
}
94-
95-
@Override
96-
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
97-
progressBar.setVisibility(View.GONE);
98-
return false;
99-
}
100-
})
101-
.into(imageViewPreview);
80+
Glide.with(this).load(url).asBitmap().into(new SimpleTarget<Bitmap>() {
81+
@Override
82+
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
83+
progressBar.setVisibility(View.GONE);
84+
linkImage.setImageBitmap(resource);
85+
}
86+
87+
@Override
88+
public void onLoadFailed(Exception e, Drawable errorDrawable) {
89+
super.onLoadFailed(e, errorDrawable);
90+
progressBar.setVisibility(View.GONE);
91+
if (!isNetworkAvailable()) {
92+
Toast.makeText(getApplicationContext(), R.string.toast_no_internet_connection, Toast.LENGTH_SHORT).show();
93+
} else {
94+
Toast.makeText(getApplicationContext(), R.string.toast_unable_to_load_image, Toast.LENGTH_SHORT).show();
95+
}
96+
}
97+
});
10298
}
10399

104100
private boolean isNetworkAvailable() {

app/src/main/res/layout/activity_photo_view.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
android:visibility="visible" />
2121

2222

23-
<ImageView
23+
<uk.co.senab.photoview.PhotoView
2424
android:id="@+id/linkImageView"
2525
android:layout_width="match_parent"
2626
android:layout_height="match_parent"

0 commit comments

Comments
 (0)