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]);