From e38d02a59c81f2d3c7dd2da472a26e3c61fd1116 Mon Sep 17 00:00:00 2001 From: Christine Emrich Date: Tue, 7 Nov 2017 20:44:54 +0100 Subject: [PATCH 1/5] Add full screen detail view to swipe through screenshots --- app/src/main/AndroidManifest.xml | 1 + .../views/AppDetailsRecyclerViewAdapter.java | 10 +- .../fdroid/views/ScreenShotsActivity.java | 126 ++++++++++++++++++ .../views/ScreenShotsRecyclerViewAdapter.java | 27 +++- .../main/res/layout/activity_screenshots.xml | 10 ++ .../res/layout/activity_screenshots_page.xml | 10 ++ 6 files changed, 178 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java create mode 100644 app/src/main/res/layout/activity_screenshots.xml create mode 100644 app/src/main/res/layout/activity_screenshots_page.xml 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" /> + { 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 @@ + + + From 1d51385fc627cb72e265811d7be81cdac260ba60 Mon Sep 17 00:00:00 2001 From: Christine Emrich Date: Wed, 8 Nov 2017 13:18:15 +0100 Subject: [PATCH 2/5] Add simple animation while swiping through screenshots --- .../fdroid/views/ScreenShotsActivity.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java index e9c09a403..527d40f5c 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java @@ -1,8 +1,10 @@ package org.fdroid.fdroid.views; +import android.annotation.TargetApi; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; +import android.os.Build; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; @@ -53,6 +55,11 @@ public class ScreenShotsActivity extends AppCompatActivity { ScreenShotPagerAdapter adapter = new ScreenShotPagerAdapter(getSupportFragmentManager(), screenshots); viewPager.setAdapter(adapter); viewPager.setCurrentItem(startPosition); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + // display some nice animation while swiping + viewPager.setPageTransformer(true, new DepthPageTransformer()); + } } @@ -123,4 +130,30 @@ public class ScreenShotsActivity extends AppCompatActivity { 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); + } + } + } } From 61fb63d0f9a73d6c690d7b1ba98f90557d09d46c Mon Sep 17 00:00:00 2001 From: Christine Emrich Date: Wed, 8 Nov 2017 13:29:02 +0100 Subject: [PATCH 3/5] Apply current theme to ScreenShotsActivity --- .../java/org/fdroid/fdroid/views/ScreenShotsActivity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java index 527d40f5c..cb8e2e064 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java @@ -21,6 +21,7 @@ import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; +import org.fdroid.fdroid.FDroidApp; import org.fdroid.fdroid.R; import org.fdroid.fdroid.data.App; import org.fdroid.fdroid.data.AppProvider; @@ -42,6 +43,9 @@ public class ScreenShotsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { + FDroidApp fdroidApp = (FDroidApp) getApplication(); + fdroidApp.applyTheme(this); + super.onCreate(savedInstanceState); setContentView(R.layout.activity_screenshots); From dd87ba9efc73a38ca50650b74171d310e076a554 Mon Sep 17 00:00:00 2001 From: Christine Emrich Date: Wed, 8 Nov 2017 13:57:33 +0100 Subject: [PATCH 4/5] Fix checkstyle errors --- .../java/org/fdroid/fdroid/views/ScreenShotsActivity.java | 4 ---- .../fdroid/fdroid/views/ScreenShotsRecyclerViewAdapter.java | 2 -- 2 files changed, 6 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java index cb8e2e064..a2260055b 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java @@ -66,7 +66,6 @@ public class ScreenShotsActivity extends AppCompatActivity { } } - private class ScreenShotPagerAdapter extends FragmentStatePagerAdapter { private final String[] screenshots; @@ -87,7 +86,6 @@ public class ScreenShotsActivity extends AppCompatActivity { } } - /** * A single screenshot page. */ @@ -103,7 +101,6 @@ public class ScreenShotsActivity extends AppCompatActivity { return fragment; } - private String screenshotUrl; @Override @@ -135,7 +132,6 @@ public class ScreenShotsActivity extends AppCompatActivity { } } - @TargetApi(11) public class DepthPageTransformer implements ViewPager.PageTransformer { 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 aeef6aebc..1ce4aee02 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsRecyclerViewAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsRecyclerViewAdapter.java @@ -54,7 +54,6 @@ class ScreenShotsRecyclerViewAdapter extends RecyclerView.Adapter Date: Thu, 9 Nov 2017 23:18:18 +0100 Subject: [PATCH 5/5] convert to standard Build.VERSION.SDK_INT test style --- .../main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java index a2260055b..a35de513c 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/ScreenShotsActivity.java @@ -60,7 +60,7 @@ public class ScreenShotsActivity extends AppCompatActivity { viewPager.setAdapter(adapter); viewPager.setCurrentItem(startPosition); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + if (Build.VERSION.SDK_INT >= 11) { // display some nice animation while swiping viewPager.setPageTransformer(true, new DepthPageTransformer()); }