Moved TOS setup logic into upstream ActFmLoginActivity

pull/14/head
Tim Su 13 years ago
parent e5613404e9
commit 9038184770

@ -34,12 +34,17 @@ import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.text.InputType;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.method.PasswordTransformationMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
@ -69,6 +74,7 @@ import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.sync.ActFmInvoker;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.activity.Eula;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.gtasks.auth.ModernAuthManager;
import com.todoroo.astrid.helper.SyncResultCallbackAdapter;
@ -188,6 +194,43 @@ public class ActFmLoginActivity extends FragmentActivity implements AuthListener
StatisticsService.reportEvent(StatisticsConstants.ACTFM_LOGIN_SHOW);
}
protected void setupTermsOfService(TextView tos) {
OnClickListener showTosListener = new OnClickListener() {
@Override
public void onClick(View v) {
Eula.showEulaBasic(ActFmLoginActivity.this);
}
};
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 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(68, 68, 68));
}
};
link.setSpan(linkSpan, start, link.length() + endOffset, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return link;
}
@SuppressWarnings("nls")
protected void initializeUI() {
facebook = new Facebook(APP_ID);
@ -201,6 +244,7 @@ public class ActFmLoginActivity extends FragmentActivity implements AuthListener
findViewById(R.id.gg_login).setOnClickListener(googleListener);
Button pwLogin = (Button) findViewById(R.id.pw_login);
pwLogin.setOnClickListener(signUpListener);
setupTermsOfService((TextView) findViewById(R.id.tos));
}
// --- event handler

@ -42,29 +42,17 @@
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="5dip">
<TextView
android:id="@+id/notice"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:gravity="center"
android:layout_marginBottom="5dip"
android:textSize="12sp"
android:textColor="#cccccc"
android:text="@string/actfm_ALA_notice" />
<Button
android:id="@+id/pw_login"
android:layout_width="fill_parent"
android:layout_height="45dip"
android:layout_above="@id/notice"
android:layout_alignParentBottom="true"
android:paddingLeft="20dip"
android:paddingRight="20dip"
android:layout_marginLeft="15dip"
android:layout_marginRight="15dip"
android:layout_marginBottom="20dip"
android:textSize="16sp"
android:text="@string/welcome_login_pw"/>

@ -18,7 +18,6 @@ import android.widget.TextView;
import com.timsu.astrid.R;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.actfm.ActFmLoginActivity;
import com.todoroo.astrid.activity.Eula;
import com.viewpagerindicator.CirclePageIndicator;
import com.viewpagerindicator.PageIndicator;
@ -74,7 +73,6 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
if(currentPage == mAdapter.getCount()-1) {
if(findViewById(R.id.fb_login) != null) {
super.initializeUI();
setupTermsOfService();
setupLoginLater();
} else {
OnClickListener done = new OnClickListener() {
@ -90,33 +88,6 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
}
}
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(68, 68, 68));
}
};
link.setSpan(linkSpan, start, link.length() + endOffset, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return link;
}
protected void setupTermsOfService() {
TextView tos = (TextView)currentView.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);
@ -142,12 +113,6 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
loginLater.setText(loginLaterLink);
}
protected final OnClickListener showTosListener = new OnClickListener() {
@Override
public void onClick(View v) {
Eula.showEulaBasic(WelcomeWalkthrough.this);
}
};
protected final OnClickListener loginLaterListener = new OnClickListener() {
@Override
@ -170,4 +135,3 @@ public class WelcomeWalkthrough extends ActFmLoginActivity {
};
}

Loading…
Cancel
Save