diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 10210c842..8f70454b9 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -426,12 +426,7 @@ android:theme="@style/Theme" /> - - - - - + android:theme="@style/Theme" /> diff --git a/astrid/common-src/com/facebook/android/LoginButton.java b/astrid/common-src/com/facebook/android/LoginButton.java index 0c3f0cf12..41ec94e91 100644 --- a/astrid/common-src/com/facebook/android/LoginButton.java +++ b/astrid/common-src/com/facebook/android/LoginButton.java @@ -27,6 +27,8 @@ import com.facebook.android.Facebook.DialogListener; public class LoginButton extends Button { + public static final int REQUEST_CODE_FACEBOOK = 21421; + private Facebook mFb; private AuthListener mListener; private String[] mPermissions; @@ -61,7 +63,7 @@ public class LoginButton extends Button { private final class ButtonOnClickListener implements OnClickListener { public void onClick(View arg0) { - mFb.authorize(mActivity, mPermissions, + mFb.authorize(mActivity, mPermissions, REQUEST_CODE_FACEBOOK, new LoginDialogListener()); } } diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java index 0d2354f28..cbfccf886 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java @@ -23,16 +23,24 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.net.MalformedURLException; +import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; +import android.app.AlertDialog; import android.app.ProgressDialog; +import android.content.DialogInterface; import android.content.Intent; import android.graphics.PixelFormat; +import android.os.Build; import android.os.Bundle; +import android.text.method.PasswordTransformationMethod; import android.util.Log; import android.view.View; +import android.view.View.OnClickListener; import android.view.WindowManager; +import android.widget.EditText; +import android.widget.LinearLayout; import android.widget.TextView; import com.facebook.android.AsyncFacebookRunner; @@ -42,6 +50,8 @@ import com.facebook.android.Facebook; import com.facebook.android.FacebookError; import com.facebook.android.LoginButton; import com.facebook.android.Util; +import com.google.android.googlelogin.GoogleLoginServiceConstants; +import com.google.android.googlelogin.GoogleLoginServiceHelper; import com.timsu.astrid.C2DMReceiver; import com.timsu.astrid.R; import com.todoroo.andlib.service.Autowired; @@ -51,6 +61,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.gtasks.auth.ModernAuthManager; import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.TaskService; @@ -75,6 +86,8 @@ public class ActFmLoginActivity extends Activity implements AuthListener { // --- ui initialization + private static final int REQUEST_CODE_GOOGLE = 1; + static { AstridDependencyInjector.initialize(); } @@ -92,8 +105,8 @@ public class ActFmLoginActivity extends Activity implements AuthListener { super.onCreate(savedInstanceState); ContextManager.setContext(this); - setContentView(R.layout.sharing_login_activity); - setTitle(R.string.sharing_SLA_title); + setContentView(R.layout.actfm_login_activity); + setTitle(R.string.actfm_ALA_title); noSync = getIntent().getBooleanExtra(EXTRA_DO_NOT_SYNC, false); @@ -108,34 +121,101 @@ public class ActFmLoginActivity extends Activity implements AuthListener { "publish_stream" }); + findViewById(R.id.pw_signup).setOnClickListener(signUpListener); + findViewById(R.id.pw_login).setOnClickListener(loginListener); + getWindow().setFormat(PixelFormat.RGBA_8888); getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER); setResult(RESULT_CANCELED); } - // --- facebook handler + // --- event handler - @SuppressWarnings("nls") - @Override - protected void onActivityResult(int requestCode, int resultCode, - Intent data) { - String error = data.getStringExtra("error"); - if (error == null) { - error = data.getStringExtra("error_type"); + private final OnClickListener signUpListener = new OnClickListener() { + @Override + public void onClick(View arg0) { + LinearLayout body = new LinearLayout(ActFmLoginActivity.this); + body.setOrientation(LinearLayout.VERTICAL); + body.setPadding(10, 0, 10, 0); + + final EditText name = addEditField(body, R.string.actfm_ALA_name_label); + + final EditText email = addEditField(body, R.string.actfm_ALA_email_label); + getCredentials(new OnGetCredentials() { + @Override + public void getCredentials(String[] accounts) { + if(accounts != null && accounts.length > 0) + email.setText(accounts[0]); + } + }); + + final EditText password = addEditField(body, R.string.actfm_ALA_password_label); + password.setTransformationMethod(new PasswordTransformationMethod()); + + new AlertDialog.Builder(ActFmLoginActivity.this) + .setTitle(R.string.actfm_ALA_signup_title) + .setView(body) + .setIcon(R.drawable.icon_32) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + authenticate(email.getText().toString(), name.getText().toString(), + ActFmInvoker.PROVIDER_PASSWORD, password.getText().toString()); + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show().setOwnerActivity(ActFmLoginActivity.this); } - String token = data.getStringExtra("access_token"); - if(error != null) { - onFBAuthFail(error); - } else if(token == null) { - onFBAuthFail("Something went wrong! Please try again."); - } else { - facebook.setAccessToken(token); - onFBAuthSucceed(); + }; + + private final OnClickListener loginListener = new OnClickListener() { + @Override + public void onClick(View arg0) { + LinearLayout body = new LinearLayout(ActFmLoginActivity.this); + body.setOrientation(LinearLayout.VERTICAL); + body.setPadding(10, 0, 10, 0); + + final EditText email = addEditField(body, R.string.actfm_ALA_username_email_label); + getCredentials(new OnGetCredentials() { + @Override + public void getCredentials(String[] accounts) { + if(accounts != null && accounts.length > 0) + email.setText(accounts[0]); + } + }); + + final EditText password = addEditField(body, R.string.actfm_ALA_password_label); + password.setTransformationMethod(new PasswordTransformationMethod()); + + new AlertDialog.Builder(ActFmLoginActivity.this) + .setTitle(R.string.actfm_ALA_login_title) + .setView(body) + .setIcon(R.drawable.icon_32) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + authenticate(email.getText().toString(), null, + ActFmInvoker.PROVIDER_PASSWORD, password.getText().toString()); + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show().setOwnerActivity(ActFmLoginActivity.this); } - errors.setVisibility(View.GONE); + }; + + private EditText addEditField(LinearLayout body, int hint) { + TextView label = new TextView(ActFmLoginActivity.this); + label.setText(hint); + body.addView(label); + EditText field = new EditText(ActFmLoginActivity.this); + field.setHint(hint); + body.addView(field); + return field; } + // --- facebook handler + public void onFBAuthSucceed() { createUserAccountFB(); } @@ -150,9 +230,7 @@ public class ActFmLoginActivity extends Activity implements AuthListener { // do nothing } - // --- astrid social handler - - ProgressDialog progressDialog; + private ProgressDialog progressDialog; /** * Create user account via FB @@ -165,7 +243,6 @@ public class ActFmLoginActivity extends Activity implements AuthListener { private class SLARequestListener implements RequestListener { - @SuppressWarnings("nls") @Override public void onComplete(String response, Object state) { JSONObject json; @@ -174,49 +251,15 @@ public class ActFmLoginActivity extends Activity implements AuthListener { String name = json.getString("name"); //$NON-NLS-1$ String email = json.getString("email"); //$NON-NLS-1$ - JSONObject result = actFmInvoker.authenticate(email, name, ActFmInvoker.PROVIDER_FACEBOOK, + authenticate(email, name, ActFmInvoker.PROVIDER_FACEBOOK, facebook.getAccessToken()); - - String token = actFmInvoker.getToken(); - actFmPreferenceService.setToken(token); - - if(Preferences.getStringValue(R.string.actfm_APr_interval_key) == null) - Preferences.setStringFromInteger(R.string.actfm_APr_interval_key, 3600); - - Preferences.setLong(ActFmPreferenceService.PREF_USER_ID, - result.optLong("id")); - Preferences.setString(ActFmPreferenceService.PREF_NAME, result.optString("name")); - Preferences.setString(ActFmPreferenceService.PREF_EMAIL, result.optString("email")); - Preferences.setString(ActFmPreferenceService.PREF_PICTURE, result.optString("picture")); - - C2DMReceiver.register(); - - progressDialog.dismiss(); - setResult(RESULT_OK); - finish(); - - if(!noSync) { - synchronize(); - } - - } catch (Throwable e) { + } catch (FacebookError e) { + handleError(e); + } catch (JSONException e) { handleError(e); } } - private void handleError(final Throwable e) { - progressDialog.dismiss(); - Log.e("astrid-sharing", "error-doing-sla", e); //$NON-NLS-1$ //$NON-NLS-2$ - - runOnUiThread(new Runnable() { - @Override - public void run() { - errors.setText(e.toString()); - errors.setVisibility(View.VISIBLE); - } - }); - } - @Override public void onFacebookError(FacebookError e, Object state) { handleError(e); @@ -241,9 +284,100 @@ public class ActFmLoginActivity extends Activity implements AuthListener { } + // --- utilities + + @SuppressWarnings("nls") + public void authenticate(String email, String name, String provider, String secret) { + if(progressDialog == null) + progressDialog = DialogUtilities.progressDialog(this, getString(R.string.DLG_please_wait)); + + try { + JSONObject result = actFmInvoker.authenticate(email, name, provider, secret); + String token = actFmInvoker.getToken(); + actFmPreferenceService.setToken(token); + + if(Preferences.getStringValue(R.string.actfm_APr_interval_key) == null) + Preferences.setStringFromInteger(R.string.actfm_APr_interval_key, 3600); + + Preferences.setLong(ActFmPreferenceService.PREF_USER_ID, + result.optLong("id")); + Preferences.setString(ActFmPreferenceService.PREF_NAME, result.optString("name")); + Preferences.setString(ActFmPreferenceService.PREF_EMAIL, result.optString("email")); + Preferences.setString(ActFmPreferenceService.PREF_PICTURE, result.optString("picture")); + + C2DMReceiver.register(); + + setResult(RESULT_OK); + finish(); + + if(!noSync) + synchronize(); + } catch (IOException e) { + handleError(e); + } finally { + DialogUtilities.dismissDialog(this, progressDialog); + } + } + + private void handleError(final Throwable e) { + DialogUtilities.dismissDialog(this, progressDialog); + Log.e("astrid-sharing", "error-doing-sla", e); //$NON-NLS-1$ //$NON-NLS-2$ + + runOnUiThread(new Runnable() { + @Override + public void run() { + errors.setText(e.getMessage()); + errors.setVisibility(View.VISIBLE); + } + }); + } + public void synchronize() { startService(new Intent(null, null, this, ActFmBackgroundService.class)); } + // --- google account manager + + @SuppressWarnings("nls") + @Override + protected void onActivityResult(int requestCode, int resultCode, + Intent data) { + if(requestCode == REQUEST_CODE_GOOGLE){ + String accounts[] = data.getExtras().getStringArray(GoogleLoginServiceConstants.ACCOUNTS_KEY); + credentialsListener.getCredentials(accounts); + } else if(requestCode == LoginButton.REQUEST_CODE_FACEBOOK) { + if(data == null) + return; + + String error = data.getStringExtra("error"); + if (error == null) { + error = data.getStringExtra("error_type"); + } + String token = data.getStringExtra("access_token"); + if(error != null) { + onFBAuthFail(error); + } else if(token == null) { + onFBAuthFail("Something went wrong! Please try again."); + } else { + facebook.setAccessToken(token); + onFBAuthSucceed(); + } + errors.setVisibility(View.GONE); + } + } + public interface OnGetCredentials { + public void getCredentials(String[] accounts); + } + + private OnGetCredentials credentialsListener; + + public void getCredentials(OnGetCredentials onGetCredentials) { + credentialsListener = onGetCredentials; + if(Integer.parseInt(Build.VERSION.SDK) >= 7) + credentialsListener.getCredentials(ModernAuthManager.getAccounts(this)); + else + GoogleLoginServiceHelper.getAccount(this, REQUEST_CODE_GOOGLE, false); + } + } \ No newline at end of file diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ProjectDetailExposer.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ProjectDetailExposer.java deleted file mode 100644 index 912c1dfa7..000000000 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ProjectDetailExposer.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.actfm; - - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; - -import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; -import com.todoroo.astrid.api.AstridApiConstants; - -/** - * Exposes Task Detail for notes - * - * @author Tim Su - * - */ -public class TagDataDetailExposer extends BroadcastReceiver { - - @Override - public void onReceive(Context context, Intent intent) { - long taskId = intent.getLongExtra(AstridApiConstants.EXTRAS_TASK_ID, -1); - if(taskId == -1) - return; - - String taskDetail = getTaskDetails(taskId); - if(taskDetail == null) - return; - - // transmit - Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_DETAILS); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, taskDetail); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_ADDON, - ActFmPreferenceService.IDENTIFIER); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, taskId); - context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); - } - - public String getTaskDetails(long id) { - /*Task task = PluginServices.getTaskService().fetchById(id, Task.PROJECT_ID); - if(task == null) - return null; - TagData tagData = PluginServices.getTagDataService().fetchById(task.getValue(Task.PROJECT_ID), TagData.TITLE); - if(tagData == null)*/ - return null; - - // return " " + tagData.getValue(TagData.TITLE); //$NON-NLS-1$ - } - -} diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ProjectListActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ProjectListActivity.java deleted file mode 100644 index aa841ef9f..000000000 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ProjectListActivity.java +++ /dev/null @@ -1,229 +0,0 @@ -/** - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.actfm; - -import java.util.concurrent.atomic.AtomicReference; - -import android.app.ListActivity; -import android.content.Intent; -import android.database.Cursor; -import android.os.Bundle; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.Window; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.ImageButton; -import android.widget.ImageView; - -import com.timsu.astrid.R; -import com.todoroo.andlib.data.TodorooCursor; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; -import com.todoroo.andlib.sql.QueryTemplate; -import com.todoroo.andlib.utility.DialogUtilities; -import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; -import com.todoroo.astrid.actfm.sync.ActFmSyncService; -import com.todoroo.astrid.activity.TaskListActivity; -import com.todoroo.astrid.adapter.TagDataAdapter; -import com.todoroo.astrid.dao.TagDataDao.TagDataCriteria; -import com.todoroo.astrid.data.TagData; -import com.todoroo.astrid.service.AstridDependencyInjector; -import com.todoroo.astrid.service.TagDataService; -import com.todoroo.astrid.service.StatisticsService; -import com.todoroo.astrid.service.ThemeService; - -/** - * Activity that displays a user's task lists and allows users - * to filter their task list. - * - * @author Tim Su - * - */ -public class TagDataListActivity extends ListActivity implements OnItemClickListener { - - // --- constants - - private static final int REQUEST_LOG_IN = 1; - private static final int REQUEST_SHOW_GOAL = 2; - - private static final int MENU_REFRESH_ID = Menu.FIRST + 0; - - // --- instance variables - - @Autowired ExceptionService exceptionService; - @Autowired TagDataService tagDataService; - @Autowired ActFmPreferenceService actFmPreferenceService; - @Autowired ActFmSyncService actFmSyncService; - - protected TagDataAdapter adapter = null; - protected AtomicReference queryTemplate = new AtomicReference(); - - /* ====================================================================== - * ======================================================= initialization - * ====================================================================== */ - - static { - AstridDependencyInjector.initialize(); - } - - /** Called when loading up the activity */ - @Override - protected void onCreate(Bundle savedInstanceState) { - DependencyInjectionService.getInstance().inject(this); - requestWindowFeature(Window.FEATURE_NO_TITLE); - super.onCreate(savedInstanceState); - - setContentView(R.layout.tagData_list_activity); - ThemeService.applyTheme(this); - - if(!actFmPreferenceService.isLoggedIn()) { - Intent login = new Intent(this, ActFmLoginActivity.class); - login.putExtra(ActFmLoginActivity.EXTRA_DO_NOT_SYNC, true); - startActivityForResult(login, REQUEST_LOG_IN); - } - - initializeUIComponents(); - setUpList(); - refreshList(false); - } - - @SuppressWarnings("nls") - private void initializeUIComponents() { - ((ImageButton) findViewById(R.id.extendedAddButton)).setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DialogUtilities.okDialog(TagDataListActivity.this, "unsupported", null); - } - }); - - ((ImageButton) findViewById(R.id.extendedAddButton)).setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - DialogUtilities.okDialog(TagDataListActivity.this, "unsupported", null); - } - }); - - ((ImageView) findViewById(R.id.goals)).setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(TagDataListActivity.this, TaskListActivity.class); - startActivity(intent); - finish(); - } - }); - - - } - - /** - * Create options menu (displayed when user presses menu key) - * - * @return true if menu should be displayed - */ - @Override - public boolean onPrepareOptionsMenu(Menu menu) { - if(menu.size() > 0) - return true; - - MenuItem item; - - item = menu.add(Menu.NONE, MENU_REFRESH_ID, Menu.NONE, - R.string.PLA_menu_refresh); - item.setIcon(R.drawable.ic_menu_refresh); - - return true; - } - - /* ====================================================================== - * ============================================================ lifecycle - * ====================================================================== */ - - @Override - protected void onStart() { - super.onStart(); - StatisticsService.sessionStart(this); - StatisticsService.reportEvent("goal-list"); //$NON-NLS-1$ - } - - @Override - protected void onStop() { - super.onStop(); - StatisticsService.sessionStop(this); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - if(requestCode == REQUEST_LOG_IN) { - if(resultCode == RESULT_CANCELED) - finish(); - else - refreshList(true); - } else - super.onActivityResult(requestCode, resultCode, data); - } - - /* ====================================================================== - * ====================================================== populating list - * ====================================================================== */ - - /** Sets up the coach list adapter */ - protected void setUpList() { - queryTemplate.set(new QueryTemplate().where(TagDataCriteria.isTeam()).toString()); - TodorooCursor currentCursor = tagDataService.fetchFiltered(queryTemplate.get(), - null, TagData.PROPERTIES); - startManagingCursor(currentCursor); - - adapter = new TagDataAdapter(this, R.layout.tagData_adapter_row, - currentCursor, queryTemplate, false, null); - setListAdapter(adapter); - - getListView().setOnItemClickListener(this); - } - - /** refresh the list with latest data from the web */ - private void refreshList(boolean manual) { - actFmSyncService.fetchTagDataDashboard(manual, new Runnable() { - @Override - public void run() { - runOnUiThread(new Runnable() { - @Override - public void run() { - Cursor cursor = adapter.getCursor(); - cursor.requery(); - startManagingCursor(cursor); - } - }); - } - }); - } - - /* ====================================================================== - * ============================================================== actions - * ====================================================================== */ - - @Override - public void onItemClick(AdapterView adapterView, View view, int position, long id) { - Intent intent = new Intent(this, TagDataViewActivity.class); - intent.putExtra(TagDataViewActivity.EXTRA_PROJECT_ID, id); - startActivityForResult(intent, REQUEST_SHOW_GOAL); - } - - @Override - public boolean onMenuItemSelected(int featureId, final MenuItem item) { - - // handle my own menus - switch (item.getItemId()) { - case MENU_REFRESH_ID: { - refreshList(true); - return true; - } - } - - return false; - } -} diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ShowProjectExposer.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ShowProjectExposer.java deleted file mode 100644 index c683d863f..000000000 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ShowProjectExposer.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.todoroo.astrid.actfm; - -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.graphics.Bitmap; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; - -import com.timsu.astrid.R; -import com.todoroo.andlib.service.ContextManager; -import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; -import com.todoroo.astrid.api.AstridApiConstants; -import com.todoroo.astrid.api.TaskAction; -import com.todoroo.astrid.core.PluginServices; -import com.todoroo.astrid.data.TagData; - -public class ShowTagDataExposer extends BroadcastReceiver { - - private static final String FILTER_ACTION = "com.todoroo.astrid.SHOW_PROJECT"; //$NON-NLS-1$ - - @Override - public void onReceive(Context context, Intent intent) { - ContextManager.setContext(context); - long taskId = intent.getLongExtra(AstridApiConstants.EXTRAS_TASK_ID, -1); - if(taskId == -1) - return; - - TagData tagData = PluginServices.getTagDataService().getTagData(taskId, - TagData.ID, TagData.TITLE); - if(tagData == null) - return; - - if(AstridApiConstants.BROADCAST_REQUEST_ACTIONS.equals(intent.getAction())) { - final String label = tagData.getValue(TagData.TITLE); - final Drawable drawable = context.getResources().getDrawable(R.drawable.tango_users); - Intent newIntent = new Intent(FILTER_ACTION); - newIntent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, taskId); - Bitmap icon = ((BitmapDrawable)drawable).getBitmap(); - TaskAction action = new TaskAction(label, - PendingIntent.getBroadcast(context, (int)taskId, newIntent, 0), icon); - - // transmit - Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_ACTIONS); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_ADDON, ActFmPreferenceService.IDENTIFIER); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, action); - broadcastIntent.putExtra(AstridApiConstants.EXTRAS_TASK_ID, taskId); - context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ); - } else if(FILTER_ACTION.equals(intent.getAction())) { - Intent launchIntent = new Intent(context, TagDataViewActivity.class); - launchIntent.putExtra(TagDataViewActivity.EXTRA_PROJECT_ID, tagData.getId()); - ContextManager.getContext().startActivity(launchIntent); - } - } - -} diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TaskFields.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TaskFields.java deleted file mode 100644 index 9a564891a..000000000 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/TaskFields.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.todoroo.astrid.actfm; - -import com.todoroo.andlib.data.Property.IntegerProperty; -import com.todoroo.andlib.data.Property.LongProperty; -import com.todoroo.andlib.data.Property.StringProperty; -import com.todoroo.astrid.data.Metadata; - -/** - * Metadata entry for a task shared with astrid.com - * - * @author Tim Su - * - */ -public class TaskFields { - - /** metadata key */ - public static final String METADATA_KEY = "actfm"; //$NON-NLS-1$ - - /** remote id*/ - public static final LongProperty REMOTE_ID = new LongProperty(Metadata.TABLE, Metadata.VALUE2.name); - - /** goal id */ - public static final LongProperty GOAL_ID = new LongProperty(Metadata.TABLE, Metadata.VALUE2.name); - - /** user id */ - public static final LongProperty USER_ID = new LongProperty(Metadata.TABLE, Metadata.VALUE3.name); - - /** user */ - public static final StringProperty USER = Metadata.VALUE4; - - /** comment count */ - public static final IntegerProperty COMMENT_COUNT = new IntegerProperty(Metadata.TABLE, - Metadata.VALUE4.name); - -} diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmInvoker.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmInvoker.java index e2e4ab2ed..70eba973c 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmInvoker.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmInvoker.java @@ -30,6 +30,7 @@ public class ActFmInvoker { public static final String PROVIDER_FACEBOOK = "facebook"; public static final String PROVIDER_GOOGLE= "google"; + public static final String PROVIDER_PASSWORD = "password"; @Autowired private RestClient restClient; diff --git a/astrid/res/drawable-hdpi/facebook.png b/astrid/res/drawable-hdpi/facebook.png new file mode 100644 index 000000000..24d7f41d5 Binary files /dev/null and b/astrid/res/drawable-hdpi/facebook.png differ diff --git a/astrid/res/drawable/sharing_gradient.xml b/astrid/res/drawable/astrid_com_gradient.xml similarity index 100% rename from astrid/res/drawable/sharing_gradient.xml rename to astrid/res/drawable/astrid_com_gradient.xml diff --git a/astrid/res/drawable/sharing_logo.png b/astrid/res/drawable/astrid_com_logo.png similarity index 57% rename from astrid/res/drawable/sharing_logo.png rename to astrid/res/drawable/astrid_com_logo.png index 8fd00da91..c8c8ce873 100644 Binary files a/astrid/res/drawable/sharing_logo.png and b/astrid/res/drawable/astrid_com_logo.png differ diff --git a/astrid/res/drawable/facebook.png b/astrid/res/drawable/facebook.png new file mode 100644 index 000000000..f0faf29a7 Binary files /dev/null and b/astrid/res/drawable/facebook.png differ diff --git a/astrid/res/drawable/sharing_button.xml b/astrid/res/drawable/sharing_button.xml deleted file mode 100644 index ec27f4ba2..000000000 --- a/astrid/res/drawable/sharing_button.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - diff --git a/astrid/res/drawable/sharing_button_focused.9.png b/astrid/res/drawable/sharing_button_focused.9.png deleted file mode 100644 index e730ae885..000000000 Binary files a/astrid/res/drawable/sharing_button_focused.9.png and /dev/null differ diff --git a/astrid/res/drawable/sharing_button_normal.9.png b/astrid/res/drawable/sharing_button_normal.9.png deleted file mode 100644 index ab8d02ac8..000000000 Binary files a/astrid/res/drawable/sharing_button_normal.9.png and /dev/null differ diff --git a/astrid/res/drawable/sharing_button_pressed.9.png b/astrid/res/drawable/sharing_button_pressed.9.png deleted file mode 100644 index 90c2783a7..000000000 Binary files a/astrid/res/drawable/sharing_button_pressed.9.png and /dev/null differ diff --git a/astrid/res/layout/sharing_login_activity.xml b/astrid/res/layout/actfm_login_activity.xml similarity index 56% rename from astrid/res/layout/sharing_login_activity.xml rename to astrid/res/layout/actfm_login_activity.xml index 481571401..91c207bd2 100644 --- a/astrid/res/layout/sharing_login_activity.xml +++ b/astrid/res/layout/actfm_login_activity.xml @@ -6,7 +6,7 @@ android:layout_height="fill_parent" android:paddingLeft="4px" android:paddingRight="4px" - android:background="@drawable/sharing_gradient"> + android:background="@drawable/astrid_com_gradient"> + android:text="@string/actfm_ALA_body" /> @@ -40,7 +40,8 @@ android:scaleType="fitCenter" android:paddingLeft="20dip" android:paddingRight="20dip" - android:src="@drawable/sharing_logo" /> + android:layout_marginBottom="95dip" + android:src="@drawable/astrid_com_logo" /> + android:text="@string/actfm_ALA_notice" /> + +