diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml
index f0e943ef9..806c4671a 100644
--- a/astrid/AndroidManifest.xml
+++ b/astrid/AndroidManifest.xml
@@ -73,9 +73,6 @@
-
-
diff --git a/astrid/res/layout/welcome_walkthrough_page.xml b/astrid/res/layout/welcome_walkthrough_page.xml
index df39d88bc..8d47b3022 100644
--- a/astrid/res/layout/welcome_walkthrough_page.xml
+++ b/astrid/res/layout/welcome_walkthrough_page.xml
@@ -25,20 +25,50 @@
android:layout_weight="1"
android:src="@drawable/welcome_walkthrough_1"
android:scaleType="fitCenter"/>
-
-
+ android:gravity="center_vertical">
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/astrid/res/values/strings-welcome.xml b/astrid/res/values/strings-welcome.xml
index 44d83370a..4fbcc47d7 100644
--- a/astrid/res/values/strings-welcome.xml
+++ b/astrid/res/values/strings-welcome.xml
@@ -25,4 +25,7 @@
Tap Astrid to return.
+ Back
+ Next
+
\ No newline at end of file
diff --git a/astrid/src/com/todoroo/astrid/welcome/WelcomeLogin.java b/astrid/src/com/todoroo/astrid/welcome/WelcomeLogin.java
deleted file mode 100644
index 45a929212..000000000
--- a/astrid/src/com/todoroo/astrid/welcome/WelcomeLogin.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package com.todoroo.astrid.welcome;
-
-import org.json.JSONObject;
-
-import android.content.DialogInterface;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.text.SpannableString;
-import android.text.Spanned;
-import android.text.TextPaint;
-import android.text.style.ClickableSpan;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.TextView;
-
-import com.facebook.android.AuthListener;
-import com.timsu.astrid.R;
-import com.todoroo.andlib.service.ContextManager;
-import com.todoroo.andlib.utility.DialogUtilities;
-import com.todoroo.astrid.actfm.ActFmLoginActivity;
-import com.todoroo.astrid.activity.Eula;
-import com.todoroo.astrid.data.Task;
-
-public class WelcomeLogin extends ActFmLoginActivity implements AuthListener {
-
- // --- ui initialization
-
- public static final String KEY_SHOWED_WELCOME_LOGIN = "key_showed_welcome_login"; //$NON-NLS-1$
-
- @Override
- protected int getContentViewResource() {
- return R.layout.welcome_login_activity;
- }
-
- @Override
- protected int getTitleResource() {
- return R.string.welcome_login_title;
- }
-
- @Override
- protected void recordPageView() {
- // don't record, every new user hits this page
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- ContextManager.setContext(this);
-
- initializeUI();
- }
-
- @Override
- protected void initializeUI() {
- findViewById(R.id.gg_login).setOnClickListener(googleListener);
- setupTermsOfService();
- setupPWLogin();
- setupLoginLater();
- }
-
- protected SpannableString getLinkStringWithCustomInterval(String base, String linkComponent,
- int start, int endOffset, final OnClickListener listener) {
- SpannableString link = new SpannableString (String.format("%s %s", //$NON-NLS-1$
- base, linkComponent));
- ClickableSpan linkSpan = new ClickableSpan() {
- @Override
- public void onClick(View widget) {
- listener.onClick(widget);
- }
- @Override
- public void updateDrawState(TextPaint ds) {
- ds.setUnderlineText(true);
- ds.setColor(Color.rgb(255, 255, 255));
- }
- };
- link.setSpan(linkSpan, start, link.length() + endOffset, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
- return link;
- }
-
- protected void setupTermsOfService() {
- TextView tos = (TextView)findViewById(R.id.tos);
- tos.setOnClickListener(showTosListener);
-
- String tosBase = getString(R.string.welcome_login_tos_base);
- String tosLink = getString(R.string.welcome_login_tos_link);
- SpannableString link = getLinkStringWithCustomInterval(tosBase, tosLink, tosBase.length() + 2, -1, showTosListener);
- tos.setText(link);
- }
-
- protected void setupPWLogin() {
- Button pwLogin = (Button) findViewById(R.id.pw_login);
- pwLogin.setOnClickListener(signUpListener);
- }
-
- protected void setupLoginLater() {
- TextView loginLater = (TextView)findViewById(R.id.login_later);
- loginLater.setOnClickListener(loginLaterListener);
- String loginLaterBase = getString(R.string.welcome_login_later);
- SpannableString loginLaterLink = new SpannableString(String.format("%s", loginLaterBase)); //$NON-NLS-1$
- ClickableSpan laterSpan = new ClickableSpan() {
- @Override
- public void onClick(View widget) {
- loginLaterListener.onClick(widget);
- }
- @Override
- public void updateDrawState(TextPaint ds) {
- ds.setUnderlineText(true);
- ds.setColor(Color.rgb(255, 255, 255));
- }
- };
- loginLaterLink.setSpan(laterSpan, 0, loginLaterBase.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
- loginLater.setText(loginLaterLink);
- }
-
- // --- event handler
-
- protected final OnClickListener showTosListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- Eula.showEulaBasic(WelcomeLogin.this);
- }
- };
-
- protected final OnClickListener loginLaterListener = new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- String title = getString(R.string.welcome_login_confirm_later_title);
- String confirmLater = getString(R.string.welcome_login_confirm_later_dialog);
- DialogUtilities.okCancelCustomDialog(WelcomeLogin.this, title, confirmLater,
- R.string.welcome_login_confirm_later_ok,
- R.string.welcome_login_confirm_later_cancel,
- android.R.drawable.ic_dialog_alert,
- null, confirmLaterListener);
- }
-
- private final DialogInterface.OnClickListener confirmLaterListener = new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- finish();
- }
- };
- };
-
- @Override
- protected void postAuthenticate(JSONObject result, String token) {
- // Delete the "Setup sync" task on successful login
- taskService.deleteWhere(Task.TITLE.eq(getString(R.string.intro_task_3_summary)));
- super.postAuthenticate(result, token);
- }
-}
diff --git a/astrid/src/com/todoroo/astrid/welcome/tutorial/ViewPagerAdapter.java b/astrid/src/com/todoroo/astrid/welcome/tutorial/ViewPagerAdapter.java
index 1e23255f6..af517936e 100644
--- a/astrid/src/com/todoroo/astrid/welcome/tutorial/ViewPagerAdapter.java
+++ b/astrid/src/com/todoroo/astrid/welcome/tutorial/ViewPagerAdapter.java
@@ -7,6 +7,7 @@ import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.ImageView;
@@ -77,7 +78,7 @@ public class ViewPagerAdapter extends PagerAdapter implements TitleProvider
}
@Override
- public Object instantiateItem(View pager, int position) {
+ public Object instantiateItem(final View pager, final int position) {
LayoutInflater inflater = LayoutInflater.from(context);
View pageView = inflater.inflate(layouts[position], null, true);
@@ -85,6 +86,41 @@ public class ViewPagerAdapter extends PagerAdapter implements TitleProvider
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT));
+ View back = pageView.findViewById(R.id.back);
+ View next = pageView.findViewById(R.id.next);
+
+ if (back != null) {
+ back.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (v.getVisibility() == View.VISIBLE) {
+ ((ViewPager) pager).setCurrentItem(position -1, true);
+ }
+ }
+ });
+
+ if (position == 0) {
+ back.setVisibility(View.INVISIBLE);
+ }
+ }
+
+ if (next != null) {
+ next.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (v.getVisibility() == View.VISIBLE) {
+ ((ViewPager) pager).setCurrentItem(position + 1, true);
+ }
+ }
+ });
+
+ if (position == layouts.length - 1) {
+ next.setVisibility(View.INVISIBLE);
+ }
+ }
+
+
+
if (pageView.findViewById(R.id.welcome_walkthrough_image) != null) {
ImageView imageView = (ImageView) pageView.findViewById(R.id.welcome_walkthrough_image);
imageView.setImageResource(images[position]);