Skip to content

Commit 040789c

Browse files
committed
Use callback pattern in Welcome activity/adapter.
1 parent 8656098 commit 040789c

File tree

2 files changed

+29
-9
lines changed

2 files changed

+29
-9
lines changed

app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java

+13-4
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class WelcomeActivity extends BaseActivity {
1313

1414
@BindView(R.id.welcomePager) ViewPager pager;
1515
@BindView(R.id.welcomePagerIndicator) CirclePageIndicator indicator;
16+
private WelcomePagerAdapter adapter = new WelcomePagerAdapter();
1617

1718
@Override
1819
public void onCreate(Bundle savedInstanceState) {
@@ -24,11 +25,19 @@ public void onCreate(Bundle savedInstanceState) {
2425
}
2526
ButterKnife.bind(this);
2627

27-
setUpAdapter();
28+
pager.setAdapter(adapter);
29+
indicator.setViewPager(pager);
30+
adapter.setCallback(new WelcomePagerAdapter.Callback() {
31+
@Override
32+
public void onYesClicked() {
33+
finish();
34+
}
35+
});
2836
}
2937

30-
private void setUpAdapter() {
31-
pager.setAdapter(new WelcomePagerAdapter());
32-
indicator.setViewPager(pager);
38+
@Override
39+
public void onDestroy() {
40+
adapter.setCallback(null);
41+
super.onDestroy();
3342
}
3443
}

app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java

+16-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package fr.free.nrw.commons;
22

3-
import android.app.Activity;
3+
import android.support.annotation.Nullable;
44
import android.support.v4.view.PagerAdapter;
55
import android.view.LayoutInflater;
66
import android.view.View;
@@ -11,6 +11,11 @@
1111

1212
public class WelcomePagerAdapter extends PagerAdapter {
1313
private static final int PAGE_FINAL = 4;
14+
private Callback callback;
15+
16+
public interface Callback {
17+
void onYesClicked();
18+
}
1419

1520
static final int[] PAGE_LAYOUTS = new int[]{
1621
R.layout.welcome_wikipedia,
@@ -20,6 +25,10 @@ public class WelcomePagerAdapter extends PagerAdapter {
2025
R.layout.welcome_final
2126
};
2227

28+
public void setCallback(@Nullable Callback callback) {
29+
this.callback = callback;
30+
}
31+
2332
@Override
2433
public int getCount() {
2534
return PAGE_LAYOUTS.length;
@@ -48,14 +57,16 @@ public void destroyItem(ViewGroup container, int position, Object obj) {
4857
container.removeView((View) obj);
4958
}
5059

51-
public static class ViewHolder {
52-
public ViewHolder(View view) {
60+
class ViewHolder {
61+
ViewHolder(View view) {
5362
ButterKnife.bind(this, view);
5463
}
5564

5665
@OnClick(R.id.welcomeYesButton)
57-
void onClicked(View view) {
58-
((Activity) view.getContext()).finish();
66+
void onClicked() {
67+
if (callback != null) {
68+
callback.onYesClicked();
69+
}
5970
}
6071
}
6172
}

0 commit comments

Comments
 (0)