Added left and right buttons to welcome walkthrough

pull/14/head
Sam Bosley 13 years ago
parent db7ac008f9
commit d5eb057498

@ -73,9 +73,6 @@
<!-- ====================================================== Activities = -->
<!-- Activity that displays task list -->
<activity android:name="com.todoroo.astrid.welcome.WelcomeLogin"
android:windowSoftInputMode="stateHidden">
</activity>
<activity android:name="com.todoroo.astrid.activity.TaskListActivity"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>

@ -25,20 +25,50 @@
android:layout_weight="1"
android:src="@drawable/welcome_walkthrough_1"
android:scaleType="fitCenter"/>
<TextView
android:id="@+id/welcome_walkthrough_body"
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="75dp"
android:gravity="center_horizontal"
android:text="Hello"
android:textColor="#444444"
android:textSize="20dip"
android:textStyle="bold"
android:shadowRadius="2"
android:shadowDy="1"
android:shadowColor="@android:color/white" />
android:gravity="center_vertical">
<ImageView
android:id="@+id/back"
android:layout_width="30dip"
android:layout_height="30dip"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:layout_marginLeft="3dip"
android:src="@drawable/icn_arrow_left"
android:scaleType="fitCenter"/>
<TextView
android:id="@+id/welcome_walkthrough_body"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:text="Hello"
android:textColor="#444444"
android:textSize="20dip"
android:textStyle="bold"
android:shadowRadius="2"
android:shadowDy="1"
android:shadowColor="@android:color/white" />
<ImageView
android:id="@+id/next"
android:layout_width="30dip"
android:layout_height="30dip"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:layout_marginRight="3dip"
android:gravity="center_horizontal"
android:src="@drawable/icn_arrow_right"
android:scaleType="fitCenter"/>
</LinearLayout>
</LinearLayout>

@ -25,4 +25,7 @@
<string name="welcome_body_7_return">Tap Astrid to return.</string>
<string name="welcome_back">Back</string>
<string name="welcome_next">Next</string>
</resources>

@ -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);
}
}

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

Loading…
Cancel
Save