From 040789ca2ec0c699f9a9cd9b968de5d115ff4749 Mon Sep 17 00:00:00 2001 From: Dmitry Brant Date: Fri, 26 May 2017 17:06:03 -0400 Subject: [PATCH] Use callback pattern in Welcome activity/adapter. --- .../fr/free/nrw/commons/WelcomeActivity.java | 17 +++++++++++---- .../free/nrw/commons/WelcomePagerAdapter.java | 21 ++++++++++++++----- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java index 822d7f91a..007e0e7ab 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java @@ -13,6 +13,7 @@ public class WelcomeActivity extends BaseActivity { @BindView(R.id.welcomePager) ViewPager pager; @BindView(R.id.welcomePagerIndicator) CirclePageIndicator indicator; + private WelcomePagerAdapter adapter = new WelcomePagerAdapter(); @Override public void onCreate(Bundle savedInstanceState) { @@ -24,11 +25,19 @@ public class WelcomeActivity extends BaseActivity { } ButterKnife.bind(this); - setUpAdapter(); + pager.setAdapter(adapter); + indicator.setViewPager(pager); + adapter.setCallback(new WelcomePagerAdapter.Callback() { + @Override + public void onYesClicked() { + finish(); + } + }); } - private void setUpAdapter() { - pager.setAdapter(new WelcomePagerAdapter()); - indicator.setViewPager(pager); + @Override + public void onDestroy() { + adapter.setCallback(null); + super.onDestroy(); } } diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java index cb4db4f65..9669196e9 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java @@ -1,6 +1,6 @@ package fr.free.nrw.commons; -import android.app.Activity; +import android.support.annotation.Nullable; import android.support.v4.view.PagerAdapter; import android.view.LayoutInflater; import android.view.View; @@ -11,6 +11,11 @@ import butterknife.OnClick; public class WelcomePagerAdapter extends PagerAdapter { private static final int PAGE_FINAL = 4; + private Callback callback; + + public interface Callback { + void onYesClicked(); + } static final int[] PAGE_LAYOUTS = new int[]{ R.layout.welcome_wikipedia, @@ -20,6 +25,10 @@ public class WelcomePagerAdapter extends PagerAdapter { R.layout.welcome_final }; + public void setCallback(@Nullable Callback callback) { + this.callback = callback; + } + @Override public int getCount() { return PAGE_LAYOUTS.length; @@ -48,14 +57,16 @@ public class WelcomePagerAdapter extends PagerAdapter { container.removeView((View) obj); } - public static class ViewHolder { - public ViewHolder(View view) { + class ViewHolder { + ViewHolder(View view) { ButterKnife.bind(this, view); } @OnClick(R.id.welcomeYesButton) - void onClicked(View view) { - ((Activity) view.getContext()).finish(); + void onClicked() { + if (callback != null) { + callback.onYesClicked(); + } } } }