diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e11473eec..f67dcbafb 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -201,6 +201,7 @@
android:name="android.support.PARENT_ACTIVITY"
android:value=".views.main.MainActivity" />
+
= 11) {
+ // display some nice animation while swiping
+ viewPager.setPageTransformer(true, new DepthPageTransformer());
+ }
+ }
+
+ private class ScreenShotPagerAdapter extends FragmentStatePagerAdapter {
+
+ private final String[] screenshots;
+
+ ScreenShotPagerAdapter(FragmentManager fragmentManager, String[] screenshots) {
+ super(fragmentManager);
+ this.screenshots = screenshots;
+ }
+
+ @Override
+ public Fragment getItem(int position) {
+ return ScreenShotPageFragment.newInstance(screenshots[position]);
+ }
+
+ @Override
+ public int getCount() {
+ return screenshots.length;
+ }
+ }
+
+ /**
+ * A single screenshot page.
+ */
+ public static class ScreenShotPageFragment extends Fragment {
+
+ private static final String ARG_SCREENSHOT_URL = "ARG_SCREENSHOT_URL";
+
+ static ScreenShotPageFragment newInstance(String screenshotUrl) {
+ ScreenShotPageFragment fragment = new ScreenShotPageFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_SCREENSHOT_URL, screenshotUrl);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ private String screenshotUrl;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ screenshotUrl = getArguments() != null ? getArguments().getString(ARG_SCREENSHOT_URL) : null;
+ }
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
+ @Nullable Bundle savedInstanceState) {
+
+ DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
+ .cacheInMemory(true)
+ .cacheOnDisk(true)
+ .imageScaleType(ImageScaleType.NONE)
+ .showImageOnLoading(R.drawable.screenshot_placeholder)
+ .showImageForEmptyUri(R.drawable.screenshot_placeholder)
+ .bitmapConfig(Bitmap.Config.RGB_565)
+ .build();
+
+ View rootView = inflater.inflate(R.layout.activity_screenshots_page, container, false);
+
+ ImageView screenshotView = (ImageView) rootView.findViewById(R.id.screenshot);
+ ImageLoader.getInstance().displayImage(screenshotUrl, screenshotView, displayImageOptions);
+
+ return rootView;
+ }
+ }
+
+ @TargetApi(11)
+ public class DepthPageTransformer implements ViewPager.PageTransformer {
+
+ public void transformPage(View view, float position) {
+ int pageWidth = view.getWidth();
+
+ if (position <= 0) {
+ // use the default slide transition when moving to the left page
+ view.setAlpha(1);
+ view.setTranslationX(0);
+
+ } else if (position <= 1) {
+ // fade the page out.
+ view.setAlpha(1 - position);
+
+ // add parallax effect
+ view.setTranslationX(pageWidth * -position / 2);
+
+ } else {
+ // this page is way off-screen to the right.
+ view.setAlpha(0);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsRecyclerViewAdapter.java b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsRecyclerViewAdapter.java
index 048395dfe..1ce4aee02 100644
--- a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsRecyclerViewAdapter.java
+++ b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsRecyclerViewAdapter.java
@@ -18,9 +18,12 @@ import org.fdroid.fdroid.data.App;
class ScreenShotsRecyclerViewAdapter extends RecyclerView.Adapter {
private final String[] screenshots;
private final DisplayImageOptions displayImageOptions;
+ private final Listener listener;
- ScreenShotsRecyclerViewAdapter(Context context, App app) {
+ ScreenShotsRecyclerViewAdapter(Context context, App app, Listener listener) {
super();
+ this.listener = listener;
+
screenshots = app.getAllScreenshots(context);
displayImageOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true)
@@ -33,8 +36,8 @@ class ScreenShotsRecyclerViewAdapter extends RecyclerView.Adapter
+
+
+
+
diff --git a/app/src/main/res/layout/activity_screenshots_page.xml b/app/src/main/res/layout/activity_screenshots_page.xml
new file mode 100644
index 000000000..55c0a4a6d
--- /dev/null
+++ b/app/src/main/res/layout/activity_screenshots_page.xml
@@ -0,0 +1,10 @@
+
+
+