mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
Refactored welcome activity to decouple the view pager (#481)
This commit is contained in:
parent
6d080889ff
commit
0713ed9e12
2 changed files with 83 additions and 53 deletions
|
|
@ -1,32 +1,19 @@
|
||||||
package fr.free.nrw.commons;
|
package fr.free.nrw.commons;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.view.PagerAdapter;
|
|
||||||
import android.support.v4.view.ViewPager;
|
import android.support.v4.view.ViewPager;
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.Button;
|
|
||||||
|
|
||||||
import com.viewpagerindicator.CirclePageIndicator;
|
import com.viewpagerindicator.CirclePageIndicator;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
import fr.free.nrw.commons.theme.BaseActivity;
|
import fr.free.nrw.commons.theme.BaseActivity;
|
||||||
|
|
||||||
public class WelcomeActivity extends BaseActivity {
|
public class WelcomeActivity extends BaseActivity {
|
||||||
static final int PAGE_WIKIPEDIA = 0,
|
private WelcomePagerAdapter adapter;
|
||||||
PAGE_DO_UPLOAD = 1,
|
|
||||||
PAGE_DONT_UPLOAD = 2,
|
|
||||||
PAGE_IMAGE_DETAILS = 3,
|
|
||||||
PAGE_FINAL = 4;
|
|
||||||
static final int[] pageLayouts = new int[] {
|
|
||||||
R.layout.welcome_wikipedia,
|
|
||||||
R.layout.welcome_do_upload,
|
|
||||||
R.layout.welcome_dont_upload,
|
|
||||||
R.layout.welcome_image_details,
|
|
||||||
R.layout.welcome_final
|
|
||||||
};
|
|
||||||
|
|
||||||
private ViewPager pager;
|
@BindView(R.id.welcomePager) ViewPager pager;
|
||||||
private Button yesButton;
|
@BindView(R.id.welcomePagerIndicator) CirclePageIndicator indicator;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
|
@ -34,43 +21,14 @@ public class WelcomeActivity extends BaseActivity {
|
||||||
setContentView(R.layout.activity_welcome);
|
setContentView(R.layout.activity_welcome);
|
||||||
|
|
||||||
getSupportActionBar().hide();
|
getSupportActionBar().hide();
|
||||||
|
ButterKnife.bind(this);
|
||||||
|
|
||||||
pager = (ViewPager)findViewById(R.id.welcomePager);
|
setUpAdapter();
|
||||||
pager.setAdapter(new PagerAdapter() {
|
}
|
||||||
@Override
|
|
||||||
public int getCount() {
|
|
||||||
return pageLayouts.length;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
private void setUpAdapter() {
|
||||||
public boolean isViewFromObject(View view, Object o) {
|
adapter = new WelcomePagerAdapter(this);
|
||||||
return (view == o);
|
pager.setAdapter(adapter);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object instantiateItem(ViewGroup container, int position) {
|
|
||||||
View view = getLayoutInflater().inflate(pageLayouts[position], null);
|
|
||||||
container.addView(view);
|
|
||||||
if (position == PAGE_FINAL) {
|
|
||||||
yesButton = (Button)view.findViewById(R.id.welcomeYesButton);
|
|
||||||
yesButton.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return view;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void destroyItem(ViewGroup container, int position, Object obj) {
|
|
||||||
yesButton = null;
|
|
||||||
container.removeView((View)obj);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
CirclePageIndicator indicator = (CirclePageIndicator)findViewById(R.id.welcomePagerIndicator);
|
|
||||||
indicator.setViewPager(pager);
|
indicator.setViewPager(pager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
package fr.free.nrw.commons;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.v4.view.PagerAdapter;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import butterknife.ButterKnife;
|
||||||
|
import butterknife.OnClick;
|
||||||
|
|
||||||
|
public class WelcomePagerAdapter extends PagerAdapter {
|
||||||
|
|
||||||
|
private Context context;
|
||||||
|
|
||||||
|
private static final int PAGE_FINAL = 4;
|
||||||
|
|
||||||
|
static final int[] PAGE_LAYOUTS = new int[]{
|
||||||
|
R.layout.welcome_wikipedia,
|
||||||
|
R.layout.welcome_do_upload,
|
||||||
|
R.layout.welcome_dont_upload,
|
||||||
|
R.layout.welcome_image_details,
|
||||||
|
R.layout.welcome_final
|
||||||
|
};
|
||||||
|
|
||||||
|
public WelcomePagerAdapter(Context context) {
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getCount() {
|
||||||
|
return PAGE_LAYOUTS.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isViewFromObject(View view, Object object) {
|
||||||
|
return (view == object);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object instantiateItem(ViewGroup container, int position) {
|
||||||
|
LayoutInflater inflater = LayoutInflater.from(context);
|
||||||
|
ViewGroup layout = (ViewGroup) inflater.inflate(PAGE_LAYOUTS[position], container, false);
|
||||||
|
|
||||||
|
if (position == PAGE_FINAL) {
|
||||||
|
ViewHolder holder = new ViewHolder(layout, context);
|
||||||
|
layout.setTag(holder);
|
||||||
|
}
|
||||||
|
container.addView(layout);
|
||||||
|
return layout;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void destroyItem(ViewGroup container, int position, Object obj) {
|
||||||
|
container.removeView((View) obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ViewHolder {
|
||||||
|
private Context context;
|
||||||
|
|
||||||
|
public ViewHolder(View view, Context context) {
|
||||||
|
ButterKnife.bind(this, view);
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
@OnClick(R.id.welcomeYesButton)
|
||||||
|
void onClicked() {
|
||||||
|
((Activity) context).finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue