diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml
index 8e811cf4e..e9aa1d671 100644
--- a/astrid/AndroidManifest.xml
+++ b/astrid/AndroidManifest.xml
@@ -314,7 +314,11 @@
+ android:theme="@style/Theme">
+
+
+
+
diff --git a/astrid/plugin-src/com/todoroo/astrid/producteev/ProducteevLoginActivity.java b/astrid/plugin-src/com/todoroo/astrid/producteev/ProducteevLoginActivity.java
index 145d0c97c..c4c1efacf 100644
--- a/astrid/plugin-src/com/todoroo/astrid/producteev/ProducteevLoginActivity.java
+++ b/astrid/plugin-src/com/todoroo/astrid/producteev/ProducteevLoginActivity.java
@@ -20,13 +20,15 @@
package com.todoroo.astrid.producteev;
import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
import android.os.Bundle;
-import android.os.Handler;
+import android.text.Editable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
-import android.widget.Toast;
+import android.widget.TextView;
import com.timsu.astrid.R;
import com.todoroo.andlib.service.Autowired;
@@ -34,9 +36,7 @@ import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.DialogUtilities;
/**
- * This activity displays a WebView that allows users to log in to
- * the synchronization provider requested. A callback method determines whether
- * their login was successful and therefore whether to dismiss the dialog.
+ * This activity allows users to sign in or log in to Producteev
*
* @author arne.jans
*
@@ -46,26 +46,6 @@ public class ProducteevLoginActivity extends Activity {
@Autowired
DialogUtilities dialogUtilities;
- // --- callback
-
- /** Callback interface */
- public interface SyncLoginCallback {
- /**
- * Verifies whether the user's login attempt was successful. Will be
- * called off of the UI thread, use the handler to post messages.
- *
- * @return error string, or null if sync was successful
- */
- public String verifyLogin(Handler handler, String email, String password);
- }
-
- protected static SyncLoginCallback callback = null;
-
- /** Sets callback method */
- public static void setCallback(SyncLoginCallback newCallback) {
- callback = newCallback;
- }
-
// --- ui initialization
public ProducteevLoginActivity() {
@@ -77,69 +57,56 @@ public class ProducteevLoginActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.producteev_login_activity);
+ setTitle(R.string.producteev_PLA_title);
+
+ // terms clicking
+ findViewById(R.id.terms).setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View arg0) {
+ startActivity(new Intent(Intent.ACTION_VIEW,
+ Uri.parse("https://www.producteev.com/#terms"))); //$NON-NLS-1$
+ }
+ });
- final EditText emailEditText = (EditText) findViewById(R.id.Poducteev_EMail_EditText);
- final EditText passwordEditText = (EditText) findViewById(R.id.Producteev_Password_EditText);
- Button cancel = (Button) findViewById(R.id.cancel);
- Button login = (Button) findViewById(R.id.done);
+ final TextView errors = (TextView) findViewById(R.id.error);
+ final EditText emailEditText = (EditText) findViewById(R.id.email);
+ final EditText passwordEditText = (EditText) findViewById(R.id.password);
+ final View newUserLayout = findViewById(R.id.newUserLayout);
- login.setOnClickListener(new OnClickListener() {
+ Button signIn = (Button) findViewById(R.id.signIn);
+ signIn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
- final Handler handler = new Handler();
-
- if (callback == null) {
- finish();
- return;
- }
-
- final String email = emailEditText.getText().toString();
- final String password = passwordEditText.getText().toString();
- if (email == null || email.length() == 0) {
- // no email given
- Toast.makeText(ProducteevLoginActivity.this,
- R.string.producteev_MLA_email_empty,
- Toast.LENGTH_LONG).show();
- setResult(RESULT_CANCELED);
- finish();
- return;
-
- }
- if (password == null || password.length() == 0) {
- // no password given
- Toast.makeText(ProducteevLoginActivity.this,
- R.string.producteev_MLA_password_empty,
- Toast.LENGTH_LONG).show();
- setResult(RESULT_CANCELED);
- finish();
- return;
-
- }
- new Thread(new Runnable() {
- public void run() {
- final String result = callback.verifyLogin(handler,
- email, password);
- if (result == null) {
- finish();
- } else {
- // display the error
- handler.post(new Runnable() {
- public void run() {
- dialogUtilities.okDialog(
- ProducteevLoginActivity.this,
- result, null);
- }
- });
- }
+ errors.setVisibility(View.GONE);
+ if(newUserLayout.getVisibility() == View.VISIBLE)
+ newUserLayout.setVisibility(View.GONE);
+ else {
+ Editable email = emailEditText.getText();
+ Editable password = passwordEditText.getText();
+ if(email.length() == 0 || password.length() == 0) {
+ errors.setVisibility(View.VISIBLE);
+ errors.setText(R.string.producteev_PLA_errorEmpty);
}
- }).start();
+ }
}
});
- cancel.setOnClickListener(new OnClickListener() {
+ Button createNew = (Button) findViewById(R.id.createNew);
+ createNew.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
- setResult(RESULT_CANCELED);
- finish();
+ errors.setVisibility(View.GONE);
+ if(newUserLayout.getVisibility() != View.VISIBLE)
+ newUserLayout.setVisibility(View.VISIBLE);
+ else {
+ Editable email = emailEditText.getText();
+ Editable password = passwordEditText.getText();
+ if(email.length() == 0 || password.length() == 0) {
+ errors.setVisibility(View.VISIBLE);
+ errors.setText(R.string.producteev_PLA_errorEmpty);
+ }
+ //
+ }
}
});
+
}
}
\ No newline at end of file
diff --git a/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java b/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java
index be5bfb904..4489d636b 100644
--- a/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java
+++ b/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java
@@ -17,7 +17,6 @@ import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.os.Handler;
import android.text.TextUtils;
import com.flurry.android.FlurryAgent;
@@ -35,16 +34,13 @@ import com.todoroo.astrid.api.TaskContainer;
import com.todoroo.astrid.common.SyncProvider;
import com.todoroo.astrid.model.Metadata;
import com.todoroo.astrid.model.Task;
-import com.todoroo.astrid.producteev.ProducteevBackgroundService;
import com.todoroo.astrid.producteev.ProducteevLoginActivity;
-import com.todoroo.astrid.producteev.ProducteevLoginActivity.SyncLoginCallback;
import com.todoroo.astrid.producteev.ProducteevPreferences;
import com.todoroo.astrid.producteev.ProducteevUtilities;
import com.todoroo.astrid.producteev.api.ApiResponseParseException;
import com.todoroo.astrid.producteev.api.ApiServiceException;
import com.todoroo.astrid.producteev.api.ApiUtilities;
import com.todoroo.astrid.producteev.api.ProducteevInvoker;
-import com.todoroo.astrid.rmilk.api.ServiceInternalException;
import com.todoroo.astrid.rmilk.data.MilkNote;
import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.tags.TagService;
@@ -166,23 +162,6 @@ public class ProducteevSyncProvider extends SyncProvider
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical"
+ android:background="@drawable/pdv_body">
-
+
-
+
+
+
+
+
+
+
+
+ android:orientation="vertical"
+ android:paddingTop="20dip"
+ android:visibility="gone">
+
+
+
+
+
+
+
+
+
+
-
+ android:text="@string/producteev_PLA_signIn" />
-
+ android:text="@string/producteev_PLA_createNew" />
+
-
-
+
+
+
+
diff --git a/astrid/res/values/strings-producteev.xml b/astrid/res/values/strings-producteev.xml
index 740ce6faa..80b353b3d 100644
--- a/astrid/res/values/strings-producteev.xml
+++ b/astrid/res/values/strings-producteev.xml
@@ -12,6 +12,45 @@
Producteev
+
+
+
+ Log In to Producteev
+
+
+ Sign in with your existing
+ Producteev account, or create a new account!
+
+
+ Terms & Conditions
+
+
+ Sign In
+
+
+ Create New User
+
+
+ E-mail
+
+
+ Password
+
+
+ Confirm Password
+
+
+ First Name
+
+
+ Last Name
+
+
+ Error: fill out all fields!
+
+
+ Error: passwords don\'t match!
+