From 0e149be7d79377fa0adbc0222b2fb38bcf49dbbe Mon Sep 17 00:00:00 2001 From: Sergey Eremin Date: Sat, 11 Feb 2017 17:28:56 +0300 Subject: [PATCH] Fullscreen screenshot view is swipable now --- app/src/main/AndroidManifest.xml | 2 +- .../yalpstore/DetailsDependentActivity.java | 2 +- .../yalpstore/FullscreenImageActivity.java | 19 +++++++---- .../yalpstore/FullscreenImageAdapter.java | 32 +++++++++++++++++++ .../yeriomin/yalpstore/ImageAdapter.java | 19 +++++++---- .../yeriomin/yalpstore/ScreenshotManager.java | 2 +- .../fullscreen_image_activity_layout.xml | 7 ++-- 7 files changed, 63 insertions(+), 20 deletions(-) create mode 100644 app/src/main/java/com/github/yeriomin/yalpstore/FullscreenImageAdapter.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4d785e566..14e3eb89e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -103,7 +103,7 @@ - + diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/DetailsDependentActivity.java b/app/src/main/java/com/github/yeriomin/yalpstore/DetailsDependentActivity.java index 4bfea682e..f0c7d9156 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/DetailsDependentActivity.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/DetailsDependentActivity.java @@ -6,7 +6,7 @@ import java.util.Map; abstract public class DetailsDependentActivity extends AppListActivity { - static protected App app; + static public App app; protected App getApp() { return DetailsDependentActivity.app; diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/FullscreenImageActivity.java b/app/src/main/java/com/github/yeriomin/yalpstore/FullscreenImageActivity.java index 9d0a758b1..9b57a3437 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/FullscreenImageActivity.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/FullscreenImageActivity.java @@ -2,18 +2,18 @@ package com.github.yeriomin.yalpstore; import android.app.Activity; import android.content.Intent; -import android.graphics.Bitmap; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; -import android.widget.ImageView; +import android.widget.Gallery; public class FullscreenImageActivity extends Activity { - static public final String INTENT_URL = "INTENT_URL"; + static public final String INTENT_SCREENSHOT_NUMBER = "INTENT_SCREENSHOT_NUMBER"; @Override protected void onCreate(Bundle savedInstanceState) { + ThemeManager.setTheme(this); super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); @@ -30,9 +30,14 @@ public class FullscreenImageActivity extends Activity { protected void onNewIntent(Intent intent) { super.onNewIntent(intent); - String url = intent.getStringExtra(INTENT_URL); - BitmapManager manager = new BitmapManager(this); - Bitmap bitmap = manager.getBitmap(url, true); - ((ImageView) findViewById(R.id.image)).setImageBitmap(bitmap); + Gallery gallery = ((Gallery) findViewById(R.id.gallery)); + gallery.setAdapter(new FullscreenImageAdapter( + this, + DetailsDependentActivity.app.getScreenshotUrls(), + getWindowManager().getDefaultDisplay().getWidth(), + getWindowManager().getDefaultDisplay().getHeight() + )); + gallery.setSelection(intent.getIntExtra(INTENT_SCREENSHOT_NUMBER, 0)); } + } diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/FullscreenImageAdapter.java b/app/src/main/java/com/github/yeriomin/yalpstore/FullscreenImageAdapter.java new file mode 100644 index 000000000..1d9fb7c24 --- /dev/null +++ b/app/src/main/java/com/github/yeriomin/yalpstore/FullscreenImageAdapter.java @@ -0,0 +1,32 @@ +package com.github.yeriomin.yalpstore; + +import android.content.Context; +import android.widget.Gallery; +import android.widget.ImageView; + +import java.util.List; + +class FullscreenImageAdapter extends ImageAdapter { + + private int screenHeight; + + FullscreenImageAdapter(Context context, List screenshotUrls, int screenWidth, int screenHeight) { + super(context, screenshotUrls, screenWidth); + this.screenHeight = screenHeight; + } + + @Override + protected ImageDownloadTask getTask() { + ImageDownloadTask task = new ImageDownloadTask() { + + @Override + protected void onPostExecute(Void aVoid) { + super.onPostExecute(aVoid); + this.view.setLayoutParams(new Gallery.LayoutParams(screenWidth, screenHeight)); + this.view.setScaleType(ImageView.ScaleType.FIT_CENTER); + } + }; + task.setFullSize(true); + return task; + } +} diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/ImageAdapter.java b/app/src/main/java/com/github/yeriomin/yalpstore/ImageAdapter.java index d302dd834..66550b2f8 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/ImageAdapter.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/ImageAdapter.java @@ -13,9 +13,9 @@ import java.util.List; class ImageAdapter extends BaseAdapter { - private Context context; - private List screenshotUrls; - private int screenWidth; + protected Context context; + protected List screenshotUrls; + protected int screenWidth; ImageAdapter(Context context, List screenshotUrls, int screenWidth) { this.context = context; @@ -39,6 +39,14 @@ class ImageAdapter extends BaseAdapter { } public View getView(int position, View convertView, ViewGroup parent) { + ImageDownloadTask task = getTask(); + ImageView imageView = new ImageView(context); + task.setView(imageView); + task.execute((String) getItem(position)); + return imageView; + } + + protected ImageDownloadTask getTask() { ImageDownloadTask task = new ImageDownloadTask() { @Override @@ -59,10 +67,7 @@ class ImageAdapter extends BaseAdapter { } } }; - ImageView imageView = new ImageView(context); task.setFullSize(true); - task.setView(imageView); - task.execute((String) getItem(position)); - return imageView; + return task; } } diff --git a/app/src/main/java/com/github/yeriomin/yalpstore/ScreenshotManager.java b/app/src/main/java/com/github/yeriomin/yalpstore/ScreenshotManager.java index 6efb2172f..df8d53d01 100644 --- a/app/src/main/java/com/github/yeriomin/yalpstore/ScreenshotManager.java +++ b/app/src/main/java/com/github/yeriomin/yalpstore/ScreenshotManager.java @@ -33,7 +33,7 @@ public class ScreenshotManager extends DetailsManager { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { Intent intent = new Intent(activity, FullscreenImageActivity.class); - intent.putExtra(FullscreenImageActivity.INTENT_URL, app.getScreenshotUrls().get(position)); + intent.putExtra(FullscreenImageActivity.INTENT_SCREENSHOT_NUMBER, position); activity.startActivity(intent); } }); diff --git a/app/src/main/res/layout/fullscreen_image_activity_layout.xml b/app/src/main/res/layout/fullscreen_image_activity_layout.xml index 3109e14e1..65c0e1cda 100644 --- a/app/src/main/res/layout/fullscreen_image_activity_layout.xml +++ b/app/src/main/res/layout/fullscreen_image_activity_layout.xml @@ -5,10 +5,11 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + android:layout_height="match_parent" /> \ No newline at end of file