From bef0dcef59dbfbaeab4057d0931d3f61e15e66e1 Mon Sep 17 00:00:00 2001 From: Alex Vasilkov Date: Sun, 6 Dec 2015 23:09:41 +0600 Subject: [PATCH] Sample code cleanup --- .../activities/AdvancedDemoActivity.java | 19 ++-- .../activities/FrameLayoutSampleActivity.java | 13 +-- .../activities/ImageViewSampleActivity.java | 12 +-- .../adapters/FlickrPhotoPagerAdapter.java | 10 +-- .../sample/adapters/PaintingsListAdapter.java | 88 +++++++++++++++++++ ...dapter.java => PaintingsPagerAdapter.java} | 19 ++-- .../sample/utils/GestureSettingsMenu.java | 6 +- .../utils/GestureSettingsSetupListener.java | 7 ++ .../drawable/flickr_progress_background.xml | 11 --- .../res/layout/activity_advanced_demo.xml | 14 +-- 10 files changed, 129 insertions(+), 70 deletions(-) create mode 100644 sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsListAdapter.java rename sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/{PaintingsImagesAdapter.java => PaintingsPagerAdapter.java} (74%) create mode 100644 sample/src/main/java/com/alexvasilkov/gestures/sample/utils/GestureSettingsSetupListener.java delete mode 100644 sample/src/main/res/drawable/flickr_progress_background.xml diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/AdvancedDemoActivity.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/AdvancedDemoActivity.java index 895197b8..b3732b53 100644 --- a/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/AdvancedDemoActivity.java +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/AdvancedDemoActivity.java @@ -34,7 +34,6 @@ import com.alexvasilkov.gestures.transition.ViewsCoordinator; import com.alexvasilkov.gestures.transition.ViewsTransitionAnimator; import com.alexvasilkov.gestures.transition.ViewsTransitionBuilder; -import com.alexvasilkov.gestures.views.interfaces.GestureView; import com.alexvasilkov.gestures.views.utils.RecyclePagerAdapter; import com.googlecode.flickrjandroid.photos.Photo; @@ -42,8 +41,7 @@ public class AdvancedDemoActivity extends BaseActivity implements ViewPositionAnimator.PositionUpdateListener, - FlickrPhotoListAdapter.OnPhotoListener, - FlickrPhotoPagerAdapter.OnSetupGestureViewListener { + FlickrPhotoListAdapter.OnPhotoListener { private static final int PAGE_SIZE = 30; @@ -189,7 +187,7 @@ public void loadNextItems() { private void initPager() { // Setting up pager views mPagerAdapter = new FlickrPhotoPagerAdapter(mViews.pager); - mPagerAdapter.setSetupListener(this); + mPagerAdapter.setSetupListener(mSettingsMenu); mPagerListener = new ViewPager.SimpleOnPageChangeListener() { @Override @@ -286,11 +284,6 @@ public void onPositionUpdate(float state, boolean isLeaving) { if (isLeaving && state == 0f) mPagerAdapter.setActivated(false); } - @Override - public void onSetupGestureView(GestureView view) { - mSettingsMenu.applySettings(view); - } - @Result(FlickrApi.LOAD_IMAGES_EVENT) private void onPhotosLoaded(List photos, boolean hasMore) { @@ -352,10 +345,10 @@ public ViewHolder(Activity activity) { toolbarBack = Views.find(activity, R.id.flickr_toolbar_back); grid = Views.find(activity, R.id.flickr_list); - pager = Views.find(activity, R.id.full_images_pager); - pagerToolbar = Views.find(activity, R.id.full_image_toolbar); - pagerTitle = Views.find(activity, R.id.full_image_title); - pagerBackground = Views.find(activity, R.id.full_image_background); + pager = Views.find(activity, R.id.flickr_pager); + pagerToolbar = Views.find(activity, R.id.flickr_full_toolbar); + pagerTitle = Views.find(activity, R.id.flickr_full_title); + pagerBackground = Views.find(activity, R.id.flickr_full_background); } } diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/FrameLayoutSampleActivity.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/FrameLayoutSampleActivity.java index aa9ec9aa..1b8c9e68 100644 --- a/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/FrameLayoutSampleActivity.java +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/FrameLayoutSampleActivity.java @@ -7,13 +7,11 @@ import com.alexvasilkov.android.commons.utils.Views; import com.alexvasilkov.gestures.sample.R; -import com.alexvasilkov.gestures.sample.adapters.PaintingsLayoutsAdapter; +import com.alexvasilkov.gestures.sample.adapters.PaintingsLayoutsPagerAdapter; import com.alexvasilkov.gestures.sample.logic.Painting; import com.alexvasilkov.gestures.sample.utils.GestureSettingsMenu; -import com.alexvasilkov.gestures.views.interfaces.GestureView; -public class FrameLayoutSampleActivity extends BaseActivity - implements PaintingsLayoutsAdapter.OnSetupGestureViewListener { +public class FrameLayoutSampleActivity extends BaseActivity { private ViewPager mViewPager; private GestureSettingsMenu mSettingsMenu; @@ -31,7 +29,7 @@ protected void onCreate(Bundle savedInstanceState) { Painting[] paintings = Painting.getAllPaintings(getResources()); mViewPager = Views.find(this, R.id.paintings_view_pager); - mViewPager.setAdapter(new PaintingsLayoutsAdapter(mViewPager, paintings, this)); + mViewPager.setAdapter(new PaintingsLayoutsPagerAdapter(mViewPager, paintings, mSettingsMenu)); mViewPager.setPageMargin(getResources().getDimensionPixelSize(R.dimen.view_pager_margin)); } @@ -57,9 +55,4 @@ public boolean onOptionsItemSelected(MenuItem item) { } } - @Override - public void onSetupGestureView(GestureView view) { - mSettingsMenu.applySettings(view); - } - } diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/ImageViewSampleActivity.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/ImageViewSampleActivity.java index a52f18db..2591f140 100644 --- a/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/ImageViewSampleActivity.java +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/activities/ImageViewSampleActivity.java @@ -11,13 +11,12 @@ import com.alexvasilkov.android.commons.texts.SpannableBuilder; import com.alexvasilkov.android.commons.utils.Views; import com.alexvasilkov.gestures.sample.R; -import com.alexvasilkov.gestures.sample.adapters.PaintingsImagesAdapter; +import com.alexvasilkov.gestures.sample.adapters.PaintingsPagerAdapter; import com.alexvasilkov.gestures.sample.logic.Painting; import com.alexvasilkov.gestures.sample.utils.GestureSettingsMenu; -import com.alexvasilkov.gestures.views.interfaces.GestureView; public class ImageViewSampleActivity extends BaseActivity - implements ViewPager.OnPageChangeListener, PaintingsImagesAdapter.OnSetupGestureViewListener { + implements ViewPager.OnPageChangeListener { private Painting[] mPaintings; @@ -44,7 +43,7 @@ protected void onCreate(Bundle savedInstanceState) { mTitleView = Views.find(this, R.id.painting_title); mViewPager = Views.find(this, R.id.paintings_view_pager); - mViewPager.setAdapter(new PaintingsImagesAdapter(mViewPager, mPaintings, this)); + mViewPager.setAdapter(new PaintingsPagerAdapter(mViewPager, mPaintings, mSettingsMenu)); mViewPager.addOnPageChangeListener(this); mViewPager.setPageMargin(getResources().getDimensionPixelSize(R.dimen.view_pager_margin)); onPageSelected(0); // Manually calling for first item @@ -93,9 +92,4 @@ public void onPageScrollStateChanged(int state) { // no-op } - @Override - public void onSetupGestureView(GestureView view) { - mSettingsMenu.applySettings(view); - } - } diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/FlickrPhotoPagerAdapter.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/FlickrPhotoPagerAdapter.java index c6961d9d..d693e10d 100644 --- a/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/FlickrPhotoPagerAdapter.java +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/FlickrPhotoPagerAdapter.java @@ -8,9 +8,9 @@ import com.alexvasilkov.android.commons.utils.Views; import com.alexvasilkov.gestures.animation.ViewPositionAnimator; import com.alexvasilkov.gestures.sample.R; +import com.alexvasilkov.gestures.sample.utils.GestureSettingsSetupListener; import com.alexvasilkov.gestures.sample.utils.glide.GlideHelper; import com.alexvasilkov.gestures.views.GestureImageView; -import com.alexvasilkov.gestures.views.interfaces.GestureView; import com.alexvasilkov.gestures.views.utils.RecyclePagerAdapter; import com.bumptech.glide.Glide; import com.googlecode.flickrjandroid.photos.Photo; @@ -23,7 +23,7 @@ public class FlickrPhotoPagerAdapter extends RecyclePagerAdapter mPhotos; - private OnSetupGestureViewListener mSetupListener; + private GestureSettingsSetupListener mSetupListener; private boolean mActivated; @@ -41,7 +41,7 @@ public Photo getPhoto(int pos) { return mPhotos.get(pos); } - public void setSetupListener(OnSetupGestureViewListener listener) { + public void setSetupListener(GestureSettingsSetupListener listener) { mSetupListener = listener; } @@ -147,8 +147,4 @@ public ViewHolder(ViewGroup parent) { } } - public interface OnSetupGestureViewListener { - void onSetupGestureView(GestureView view); - } - } diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsListAdapter.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsListAdapter.java new file mode 100644 index 00000000..6d17ddf4 --- /dev/null +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsListAdapter.java @@ -0,0 +1,88 @@ +package com.alexvasilkov.gestures.sample.adapters; + +import android.support.annotation.NonNull; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; + +import com.alexvasilkov.android.commons.utils.Views; +import com.alexvasilkov.gestures.sample.R; +import com.alexvasilkov.gestures.sample.logic.Painting; +import com.alexvasilkov.gestures.sample.utils.glide.GlideHelper; + +public class PaintingsListAdapter extends BaseAdapter implements View.OnClickListener { + + private final Painting[] mPaintings; + private final OnPaintingListener mListener; + + public PaintingsListAdapter(Painting[] paintings, OnPaintingListener listener) { + mPaintings = paintings; + mListener = listener; + } + + @Override + public int getCount() { + return mPaintings.length; + } + + @Override + public Object getItem(int position) { + return mPaintings[position]; + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder holder; + if (convertView == null) { + holder = onCreateHolder(parent); + holder.itemView.setTag(R.id.tag_holder, holder); + } else { + holder = (ViewHolder) convertView.getTag(R.id.tag_holder); + } + onBindHolder(holder, position); + return holder.itemView; + } + + private ViewHolder onCreateHolder(ViewGroup parent) { + ViewHolder holder = new ViewHolder(parent); + holder.image.setOnClickListener(this); + return holder; + } + + private void onBindHolder(ViewHolder holder, int position) { + holder.image.setTag(R.id.tag_item, position); + GlideHelper.loadResource(mPaintings[position].getImageId(), holder.image); + } + + @Override + public void onClick(@NonNull View view) { + int pos = (Integer) view.getTag(R.id.tag_item); + mListener.onPaintingClick(mPaintings[pos], pos, (ImageView) view); + } + + public static ImageView getImage(View itemView) { + ViewHolder holder = (ViewHolder) itemView.getTag(R.id.tag_holder); + return holder == null ? null : holder.image; + } + + static class ViewHolder { + public final View itemView; + public final ImageView image; + + public ViewHolder(ViewGroup parent) { + itemView = Views.inflate(parent, R.layout.item_image); + image = (ImageView) itemView; + } + } + + public interface OnPaintingListener { + void onPaintingClick(Painting painting, int position, ImageView image); + } + +} diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsImagesAdapter.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsPagerAdapter.java similarity index 74% rename from sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsImagesAdapter.java rename to sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsPagerAdapter.java index 74fa0993..c7a8a0f0 100644 --- a/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsImagesAdapter.java +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsPagerAdapter.java @@ -5,19 +5,19 @@ import android.view.ViewGroup; import com.alexvasilkov.gestures.sample.logic.Painting; +import com.alexvasilkov.gestures.sample.utils.GestureSettingsSetupListener; import com.alexvasilkov.gestures.sample.utils.glide.GlideHelper; import com.alexvasilkov.gestures.views.GestureImageView; -import com.alexvasilkov.gestures.views.interfaces.GestureView; import com.alexvasilkov.gestures.views.utils.RecyclePagerAdapter; -public class PaintingsImagesAdapter extends RecyclePagerAdapter { +public class PaintingsPagerAdapter extends RecyclePagerAdapter { private final ViewPager mViewPager; private final Painting[] mPaintings; - private final OnSetupGestureViewListener mSetupListener; + private final GestureSettingsSetupListener mSetupListener; - public PaintingsImagesAdapter(ViewPager pager, Painting[] paintings, - OnSetupGestureViewListener listener) { + public PaintingsPagerAdapter(ViewPager pager, Painting[] paintings, + GestureSettingsSetupListener listener) { mViewPager = pager; mPaintings = paintings; mSetupListener = listener; @@ -38,10 +38,13 @@ public ViewHolder onCreateViewHolder(@NonNull ViewGroup container) { @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { if (mSetupListener != null) mSetupListener.onSetupGestureView(holder.image); - holder.image.getController().resetState(); GlideHelper.loadResource(mPaintings[position].getImageId(), holder.image); } + public static GestureImageView getImage(RecyclePagerAdapter.ViewHolder holder) { + return ((ViewHolder) holder).image; + } + static class ViewHolder extends RecyclePagerAdapter.ViewHolder { public final GestureImageView image; @@ -52,8 +55,4 @@ public ViewHolder(ViewGroup container) { } } - public interface OnSetupGestureViewListener { - void onSetupGestureView(GestureView view); - } - } diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/GestureSettingsMenu.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/GestureSettingsMenu.java index 1736f5a4..e4d4153a 100644 --- a/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/GestureSettingsMenu.java +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/GestureSettingsMenu.java @@ -15,7 +15,7 @@ import com.alexvasilkov.gestures.sample.R; import com.alexvasilkov.gestures.views.interfaces.GestureView; -public class GestureSettingsMenu { +public class GestureSettingsMenu implements GestureSettingsSetupListener { @InstanceState private boolean mIsPanEnabled = true; @@ -110,7 +110,8 @@ public boolean onOptionsItemSelected(MenuItem item) { return true; } - public void applySettings(GestureView view) { + @Override + public void onSetupGestureView(GestureView view) { Context context = ((View) view).getContext(); float overscrollX = mIsOverscrollXEnabled ? 32f : 0f; float overscrollY = mIsOverscrollYEnabled ? 32f : 0f; @@ -128,7 +129,6 @@ public void applySettings(GestureView view) { .setGravity(mGravity); } - private enum GravityType { CENTER(Gravity.CENTER), TOP(Gravity.TOP), diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/GestureSettingsSetupListener.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/GestureSettingsSetupListener.java new file mode 100644 index 00000000..398f9567 --- /dev/null +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/GestureSettingsSetupListener.java @@ -0,0 +1,7 @@ +package com.alexvasilkov.gestures.sample.utils; + +import com.alexvasilkov.gestures.views.interfaces.GestureView; + +public interface GestureSettingsSetupListener { + void onSetupGestureView(GestureView view); +} diff --git a/sample/src/main/res/drawable/flickr_progress_background.xml b/sample/src/main/res/drawable/flickr_progress_background.xml deleted file mode 100644 index 532e565e..00000000 --- a/sample/src/main/res/drawable/flickr_progress_background.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/sample/src/main/res/layout/activity_advanced_demo.xml b/sample/src/main/res/layout/activity_advanced_demo.xml index 6aa7a859..1fe28f98 100644 --- a/sample/src/main/res/layout/activity_advanced_demo.xml +++ b/sample/src/main/res/layout/activity_advanced_demo.xml @@ -2,8 +2,7 @@ + android:layout_height="match_parent"> + android:scrollbars="vertical" + tools:listitem="@layout/item_flickr_image" /> @@ -23,26 +23,26 @@ android:background="@color/window_background_dark_2" />