diff --git a/app/build.gradle b/app/build.gradle
index 161bee86..cad0b874 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -40,4 +40,5 @@ dependencies {
compile('com.mikepenz:materialdrawer:5.8.2@aar') {
transitive = true
}
+ compile 'com.github.chrisbanes:PhotoView:1.3.1'
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/SFragment.java b/app/src/main/java/com/keylesspalace/tusky/SFragment.java
index 15ac7506..6b7845f5 100644
--- a/app/src/main/java/com/keylesspalace/tusky/SFragment.java
+++ b/app/src/main/java/com/keylesspalace/tusky/SFragment.java
@@ -252,11 +252,13 @@ public class SFragment extends Fragment {
FragmentManager manager = getFragmentManager();
manager.beginTransaction()
+ .setCustomAnimations(R.anim.zoom_in, R.anim.zoom_out, R.anim.zoom_in, R.anim.zoom_out)
.add(R.id.overlay_fragment_container, newFragment)
.addToBackStack(null)
.commit();
break;
}
+ case GIFV:
case VIDEO: {
Intent intent = new Intent(getContext(), ViewVideoActivity.class);
intent.putExtra("url", url);
diff --git a/app/src/main/java/com/keylesspalace/tusky/ViewGifFragment.java b/app/src/main/java/com/keylesspalace/tusky/ViewGifFragment.java
deleted file mode 100644
index b75ca396..00000000
--- a/app/src/main/java/com/keylesspalace/tusky/ViewGifFragment.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright 2017 Andrew Dawson
- *
- * This file is part of Tusky.
- *
- * Tusky is free software: you can redistribute it and/or modify it under the terms of the GNU
- * General Public License as published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * Tusky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
- * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with Tusky. If not, see
- * . */
-
-package com.keylesspalace.tusky;
-
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.webkit.WebView;
-
-public class ViewGifFragment extends Fragment {
- public static ViewGifFragment newInstance(String url) {
- Bundle arguments = new Bundle();
- ViewGifFragment fragment = new ViewGifFragment();
- arguments.putString("url", url);
- fragment.setArguments(arguments);
- return fragment;
- }
-
- @Nullable
- @Override
- public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
- @Nullable Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.fragment_view_gif, container, false);
-
- String url = getArguments().getString("url");
- WebView gifView = (WebView) rootView.findViewById(R.id.gif_view);
- gifView.loadUrl(url);
-
- rootView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- dismiss();
- }
- });
-
- return rootView;
- }
-
- private void dismiss() {
- getFragmentManager().popBackStack();
- }
-}
diff --git a/app/src/main/java/com/keylesspalace/tusky/ViewMediaFragment.java b/app/src/main/java/com/keylesspalace/tusky/ViewMediaFragment.java
index aeb78f6f..ffb74241 100644
--- a/app/src/main/java/com/keylesspalace/tusky/ViewMediaFragment.java
+++ b/app/src/main/java/com/keylesspalace/tusky/ViewMediaFragment.java
@@ -21,8 +21,11 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import com.android.volley.toolbox.ImageLoader;
-import com.android.volley.toolbox.NetworkImageView;
+import com.squareup.picasso.Callback;
+import com.squareup.picasso.Picasso;
+
+import uk.co.senab.photoview.PhotoView;
+import uk.co.senab.photoview.PhotoViewAttacher;
public class ViewMediaFragment extends Fragment {
public static ViewMediaFragment newInstance(String url) {
@@ -40,17 +43,36 @@ public class ViewMediaFragment extends Fragment {
Bundle arguments = getArguments();
String url = arguments.getString("url");
- NetworkImageView image = (NetworkImageView) rootView.findViewById(R.id.view_media_image);
- ImageLoader imageLoader = VolleySingleton.getInstance(getContext()).getImageLoader();
- image.setImageUrl(url, imageLoader);
+ PhotoView photoView = (PhotoView) rootView.findViewById(R.id.view_media_image);
+
+ final PhotoViewAttacher attacher = new PhotoViewAttacher(photoView);
- rootView.setOnClickListener(new View.OnClickListener() {
+ attacher.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {
@Override
- public void onClick(View v) {
+ public void onPhotoTap(View view, float x, float y) {
+
+ }
+
+ @Override
+ public void onOutsidePhotoTap() {
dismiss();
}
});
+ Picasso.with(getContext())
+ .load(url)
+ .into(photoView, new Callback() {
+ @Override
+ public void onSuccess() {
+ attacher.update();
+ }
+
+ @Override
+ public void onError() {
+
+ }
+ });
+
return rootView;
}
diff --git a/app/src/main/res/anim/zoom_in.xml b/app/src/main/res/anim/zoom_in.xml
new file mode 100644
index 00000000..e607a315
--- /dev/null
+++ b/app/src/main/res/anim/zoom_in.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/zoom_out.xml b/app/src/main/res/anim/zoom_out.xml
new file mode 100644
index 00000000..ab81c679
--- /dev/null
+++ b/app/src/main/res/anim/zoom_out.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_view_media.xml b/app/src/main/res/layout/fragment_view_media.xml
index 50de8b59..1126dbe0 100644
--- a/app/src/main/res/layout/fragment_view_media.xml
+++ b/app/src/main/res/layout/fragment_view_media.xml
@@ -3,12 +3,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#60000000">
-
-
-
+ android:layout_height="match_parent" />
\ No newline at end of file