From 9a977e01299203d48abece1006cbac70f3e505d5 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Tue, 5 Oct 2010 17:25:46 -0700 Subject: [PATCH] Google tasks login thing --- astrid/AndroidManifest.xml | 4 - astrid/libs/todoroo-g.jar | Bin 31163 -> 31172 bytes .../astrid/gtasks/GtasksListActivity.java | 27 +----- .../astrid/gtasks/GtasksPreferences.java | 25 +++--- .../gtasks/sync/GtasksSyncProvider.java | 80 +++++++++++++----- astrid/res/values/strings-gtasks.xml | 13 +++ 6 files changed, 92 insertions(+), 57 deletions(-) diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 7ee4e4a1c..f5ea7cedc 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -24,11 +24,7 @@ - - - - diff --git a/astrid/libs/todoroo-g.jar b/astrid/libs/todoroo-g.jar index 49034cac1d93ff12d87c5ae06a1cfec342076cf4..f89c99c7744262bbcd8c683336fd44c6b31719c5 100644 GIT binary patch delta 4689 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 S*3FFyC=WbKGI#rA_WuC6o*JqE diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListActivity.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListActivity.java index d111df48c..de9eaadaf 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksListActivity.java @@ -7,17 +7,7 @@ import com.commonsware.cwac.tlv.TouchListView.DropListener; import com.commonsware.cwac.tlv.TouchListView.SwipeListener; import com.todoroo.andlib.data.Property.IntegerProperty; import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.sql.Criterion; -import com.todoroo.andlib.sql.Functions; -import com.todoroo.andlib.sql.Join; -import com.todoroo.andlib.sql.Order; -import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.astrid.activity.DraggableTaskListActivity; -import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; -import com.todoroo.astrid.dao.TaskDao.TaskCriteria; -import com.todoroo.astrid.data.Metadata; -import com.todoroo.astrid.data.Task; public class GtasksListActivity extends DraggableTaskListActivity { @@ -25,18 +15,7 @@ public class GtasksListActivity extends DraggableTaskListActivity { public static final String TOKEN_LIST_ID = "listId"; //$NON-NLS-1$ - // --- gtasks temp stuff - private final String listId = "17816916813445155620:0:0"; //$NON-NLS-1$ - Filter builtInFilter = new Filter("Tim's Tasks", "Tim's Tasks", new QueryTemplate().join( //$NON-NLS-1$ //$NON-NLS-2$ - Join.left(Metadata.TABLE, Task.ID.eq(Metadata.TASK))).where(Criterion.and( - MetadataCriteria.withKey("gtasks"), //$NON-NLS-1$ - TaskCriteria.isVisible(), - TaskCriteria.notDeleted(), - Metadata.VALUE2.eq(listId))).orderBy( - Order.asc(Functions.cast(Metadata.VALUE5, "INTEGER"))), //$NON-NLS-1$ - null); - - // --- end + private String listId; @Override protected IntegerProperty getIndentProperty() { @@ -45,10 +24,10 @@ public class GtasksListActivity extends DraggableTaskListActivity { @Override public void onCreate(Bundle icicle) { - if(!getIntent().hasExtra(TOKEN_FILTER)) - getIntent().putExtra(TOKEN_FILTER, builtInFilter); super.onCreate(icicle); + listId = getIntent().getStringExtra(TOKEN_LIST_ID); + getTouchListView().setDropListener(dropListener); getTouchListView().setSwipeListener(swipeListener); } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksPreferences.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksPreferences.java index 89bd2de4b..a22b86692 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksPreferences.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/GtasksPreferences.java @@ -3,11 +3,11 @@ package com.todoroo.astrid.gtasks; import android.content.Intent; import android.os.Bundle; +import com.google.android.googlelogin.GoogleLoginServiceConstants; +import com.google.android.googlelogin.GoogleLoginServiceHelper; import com.timsu.astrid.R; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.astrid.gtasks.auth.AuthManager; -import com.todoroo.astrid.gtasks.auth.AuthManagerFactory; import com.todoroo.astrid.gtasks.sync.GtasksSyncProvider; import com.todoroo.astrid.sync.SyncProviderPreferences; import com.todoroo.astrid.sync.SyncProviderUtilities; @@ -25,9 +25,6 @@ public class GtasksPreferences extends SyncProviderPreferences { private static final int REQUEST_CODE_GOOGLE = 1; - private final AuthManager authManager = AuthManagerFactory.getAuthManager( - this, REQUEST_CODE_GOOGLE, new Bundle(), false, "goanna_mobile"); //$NON-NLS-1$ - public GtasksPreferences() { super(); DependencyInjectionService.getInstance().inject(this); @@ -42,14 +39,11 @@ public class GtasksPreferences extends SyncProviderPreferences { protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == REQUEST_CODE_GOOGLE){ - authManager.authResult(resultCode, data); + String accounts[] = data.getExtras().getStringArray(GoogleLoginServiceConstants.ACCOUNTS_KEY); + credentialsListener.getCredentials(accounts); } } - public AuthManager getAuthManager() { - return authManager; - } - @Override public int getPreferenceResource() { return R.xml.preferences_gtasks; @@ -70,4 +64,15 @@ public class GtasksPreferences extends SyncProviderPreferences { return gtasksPreferenceService; } + public interface OnGetCredentials { + public void getCredentials(String[] accounts); + } + + private OnGetCredentials credentialsListener; + + public void getCredentials(OnGetCredentials onGetCredentials) { + credentialsListener = onGetCredentials; + GoogleLoginServiceHelper.getAccount(this, REQUEST_CODE_GOOGLE, false); + } + } \ No newline at end of file diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java index 6b89b9141..f9905470b 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java @@ -15,8 +15,15 @@ import android.app.Notification; import android.app.PendingIntent; import android.app.Service; import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; import android.content.Intent; +import android.text.method.PasswordTransformationMethod; import android.util.Log; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; import com.flurry.android.FlurryAgent; import com.timsu.astrid.R; @@ -41,6 +48,7 @@ import com.todoroo.astrid.gtasks.GtasksMetadata; import com.todoroo.astrid.gtasks.GtasksMetadataService; import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.GtasksPreferences; +import com.todoroo.astrid.gtasks.GtasksPreferences.OnGetCredentials; import com.todoroo.astrid.gtasks.GtasksTaskListUpdater; import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.sync.SyncBackgroundService; @@ -177,24 +185,38 @@ public class GtasksSyncProvider extends SyncProvider { // check if we have a token & it works if(authToken == null) { - try { - final GtasksPreferences preferenceActivity = (GtasksPreferences)activity; - preferenceActivity.getAuthManager().invalidateAndRefresh(new Runnable() { - @Override - public void run() { - String token = preferenceActivity.getAuthManager().getAuthToken(); - if(token != null) { - token = "auth=" + token; - gtasksPreferenceService.setToken(token); - activity.startService(new Intent(SyncBackgroundService.SYNC_ACTION, null, - activity, GtasksBackgroundService.class)); - activity.finish(); - } - } - }); - } catch (Exception e) { - handleException("auth", e, true); - } + final GtasksPreferences preferenceActivity = (GtasksPreferences)activity; + preferenceActivity.getCredentials(new OnGetCredentials() { + @Override + public void getCredentials(String[] accounts) { + LinearLayout layout = new LinearLayout(activity); + layout.setPadding(5, -5, 5, 0); + layout.setOrientation(LinearLayout.VERTICAL); + TextView textView = new TextView(activity); + textView.setText(R.string.producteev_PLA_email); + layout.addView(textView); + final EditText email = new EditText(activity); + if(accounts != null && accounts.length > 0) + email.setText(accounts[0]); + layout.addView(email); + textView = new TextView(activity); + textView.setText(R.string.producteev_PLA_password); + layout.addView(textView); + final EditText password = new EditText(activity); + password.setTransformationMethod(new PasswordTransformationMethod()); + layout.addView(password); + + DialogUtilities.viewDialog(activity, + activity.getString(R.string.gtasks_login), layout, + new OnClickListener() { + @Override + public void onClick(DialogInterface arg0, int arg1) { + trySynchronizing(activity, email.getText(), password.getText()); + } + + }, null); + } + }); } else { activity.startService(new Intent(SyncBackgroundService.SYNC_ACTION, null, activity, GtasksBackgroundService.class)); @@ -202,6 +224,23 @@ public class GtasksSyncProvider extends SyncProvider { } } + private void trySynchronizing(Activity activity, CharSequence email, CharSequence password) { + GoogleConnectionManager gcm = new GoogleConnectionManager(email.toString(), password.toString()); + try { + gcm.authenticate(false); + } catch (GoogleLoginException e) { + Toast.makeText(activity, R.string.gtasks_login_error, Toast.LENGTH_LONG).show(); + return; + } catch (IOException e) { + Toast.makeText(activity, R.string.SyP_ioerror, Toast.LENGTH_LONG).show(); + } + String token = gcm.getToken(); + System.err.println("got token " + token); + gtasksPreferenceService.setToken(token); + activity.startService(new Intent(SyncBackgroundService.SYNC_ACTION, null, + activity, GtasksBackgroundService.class)); + activity.finish(); + } // ---------------------------------------------------------------------- // ----------------------------------------------------- synchronization! @@ -213,8 +252,11 @@ public class GtasksSyncProvider extends SyncProvider { try { GoogleTaskView taskView = taskService.getTaskView(); - Preferences.setString(GtasksPreferenceService.PREF_DEFAULT_LIST, + if(taskView.getActiveTaskList() != null) + Preferences.setString(GtasksPreferenceService.PREF_DEFAULT_LIST, taskView.getActiveTaskList().getInfo().getId()); + else + Preferences.setString(GtasksPreferenceService.PREF_DEFAULT_LIST, null); gtasksListService.updateLists(taskView.getAllLists()); diff --git a/astrid/res/values/strings-gtasks.xml b/astrid/res/values/strings-gtasks.xml index 61dc4f1ce..a0a7c4272 100644 --- a/astrid/res/values/strings-gtasks.xml +++ b/astrid/res/values/strings-gtasks.xml @@ -32,5 +32,18 @@ We were unable to find a Google account on this phone. You will not be able to synchronize to Google Tasks without one! + + E-mail + + + Password + + + Google Account: + + + Please try your e-mail and password again. + +