Basic logic for welcome and login screens

pull/14/head
Sam Bosley 13 years ago
parent 5ddf619907
commit 13f49304ce

@ -73,12 +73,15 @@
<!-- ====================================================== Activities = -->
<!-- Activity that displays task list -->
<activity android:name="com.todoroo.astrid.activity.TaskListActivity"
android:windowSoftInputMode="stateHidden">
<activity android:name="com.todoroo.astrid.activity.WelcomeScreen"
android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.todoroo.astrid.activity.TaskListActivity"
android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />

@ -72,6 +72,7 @@ import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.sync.ActFmInvoker;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.actfm.sync.ActFmSyncProvider;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.gtasks.auth.ModernAuthManager;
import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.StatisticsService;
@ -102,6 +103,8 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
private static final int REQUEST_CODE_GOOGLE_ACCOUNTS = 1;
private static final int REQUEST_CODE_OAUTH = 2;
public static final String KEY_SHOW_LATER_BUTTON = "actfm_login_show_later";
static {
AstridDependencyInjector.initialize();
}
@ -146,6 +149,11 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
}
private void initializeUI() {
if (getIntent().getBooleanExtra(KEY_SHOW_LATER_BUTTON, false)) {
Button loginLater = (Button)findViewById(R.id.login_later);
loginLater.setVisibility(View.VISIBLE);
loginLater.setOnClickListener(loginLaterListener);
}
findViewById(R.id.gg_login).setOnClickListener(googleListener);
TextView pwLogin = (TextView) findViewById(R.id.pw_login);
pwLogin.setOnClickListener(signUpListener);
@ -170,6 +178,23 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
// --- event handler
private final OnClickListener loginLaterListener = new OnClickListener() {
@Override
public void onClick(View arg0) {
String confirmLater = ActFmLoginActivity.this.getString(R.string.actfm_ALA_confirm_later_dialog);
DialogUtilities.okCancelDialog(ActFmLoginActivity.this, confirmLater, confirmLaterListener, null);
}
private final DialogInterface.OnClickListener confirmLaterListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent taskListStartup = new Intent(ActFmLoginActivity.this, TaskListActivity.class);
ActFmLoginActivity.this.startActivity(taskListStartup);
ActFmLoginActivity.this.finish();
}
};
};
private final OnClickListener googleListener = new OnClickListener() {
@Override
@SuppressWarnings("nls")

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

@ -66,12 +66,26 @@
android:textColor="#cccccc"
android:text="@string/actfm_ALA_notice" />
<Button
android:id="@+id/login_later"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="45dip"
android:layout_above="@id/notice"
android:paddingLeft="20dip"
android:paddingRight="20dip"
android:layout_marginBottom="20dip"
android:textSize="16sp"
android:text="@string/actfm_ALA_login_later"
android:visibility="gone" />
<com.facebook.android.LoginButton
android:id="@+id/fb_login"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="45dip"
android:layout_above="@id/notice"
android:layout_above="@id/login_later"
android:paddingLeft="20dip"
android:paddingRight="20dip"
android:layout_marginBottom="20dip"

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- See the file "LICENSE" for the full license governing this code. -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
style="@style/Content"
android:orientation="vertical">
<ImageView android:id="@+id/welcome_image"
android:src="@drawable/welcome_screen"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<Button android:id="@+id/show_eula"
android:layout_width="fill_parent"
android:text="@string/welcome_show_eula"
android:layout_height="45dp"
android:layout_weight="1"
android:layout_alignParentBottom="true"/>
</RelativeLayout>

@ -144,6 +144,12 @@
<!-- share login: Sharing Login GG Prompt -->
<string name="actfm_ALA_gg_login">Sign in with Google</string>
<!-- share login: Login later button -->
<string name="actfm_ALA_login_later">Later</string>
<!-- share login: Login later button -->
<string name="actfm_ALA_confirm_later_dialog">Are you sure you don\'t want to login now?</string>
<!-- share login: Sharing Footer Password Label -->
<string name="actfm_ALA_pw_login">Don\'t have a Google or Facebook Account?</string>

@ -64,6 +64,11 @@
<!-- String formatter for Disable button -->
<string name="WID_disableButton">Disable</string>
<!-- =================================================== Welcome screen == -->
<!-- Label for DateButtons with no value -->
<string name="welcome_show_eula">Accept EULA to get started!</string>
<!-- ============================================================= notes -->
<!-- Note Exposer -->

@ -95,14 +95,25 @@ public final class Eula {
@SuppressWarnings("unused")
private static void accept(Activity activity) {
if (activity instanceof EulaCallback) {
((EulaCallback)activity).eulaAccepted();
}
Preferences.setBoolean(PREFERENCE_EULA_ACCEPTED, true);
StatisticsService.reportEvent("eula-accepted"); //$NON-NLS-1$
}
private static void refuse(Activity activity) {
if (activity instanceof EulaCallback) {
((EulaCallback)activity).eulaRefused();
}
activity.finish();
}
public static interface EulaCallback {
public void eulaAccepted();
public void eulaRefused();
}
private Eula() {
// don't construct me
DependencyInjectionService.getInstance().inject(this);

@ -0,0 +1,54 @@
package com.todoroo.astrid.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import com.timsu.astrid.R;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.ActFmLoginActivity;
public class WelcomeScreen extends Activity implements Eula.EulaCallback {
@Override
protected void onCreate(Bundle savedInstanceState) {
ContextManager.setContext(this);
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome_screen);
if(Preferences.getBoolean(Eula.PREFERENCE_EULA_ACCEPTED, false)) {
Intent taskListStartup = new Intent(this, TaskListActivity.class);
startActivity(taskListStartup);
finish();
return;
}
Button showEula = (Button) findViewById(R.id.show_eula);
showEula.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Eula.showEula(WelcomeScreen.this);
}
});
}
@Override
public void eulaAccepted() {
Intent login = new Intent(this, ActFmLoginActivity.class);
login.putExtra(ActFmLoginActivity.KEY_SHOW_LATER_BUTTON, true);
startActivity(login);
finish();
}
@Override
public void eulaRefused() {
// Do nothing
}
}
Loading…
Cancel
Save