From e9e5a27be6a8d0ce44cf12204157c50ed8c01fdb Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 15 Jan 2013 17:12:09 -0800 Subject: [PATCH 01/20] Don't fetch comments for featured lists --- .../com/todoroo/astrid/actfm/sync/ActFmSyncService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java index e9ca994cc..cf8121eca 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -1166,6 +1166,11 @@ public final class ActFmSyncService { * @param done */ public void fetchUpdatesForTag(final TagData tagData, final boolean manual, Runnable done) { + if (tagData.getFlag(TagData.FLAGS, TagData.FLAG_FEATURED)) { + if (done != null) + done.run(); + return; + } invokeFetchList("activity", manual, null, new UpdateListItemProcessor(), done, "updates:" + tagData.getId(), "tag_id", tagData.getValue(TagData.REMOTE_ID)); From 208b1c3e5f71d4def006e83621f4f24d5bd40f71 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 16 Jan 2013 11:01:14 -0800 Subject: [PATCH 02/20] Fixed a weird bug where the quickadd visibility was somehow blocking selectCustomId from working --- astrid/src/com/todoroo/astrid/ui/QuickAddBar.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java b/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java index afa96e3fe..adbf89b59 100644 --- a/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java +++ b/astrid/src/com/todoroo/astrid/ui/QuickAddBar.java @@ -143,9 +143,14 @@ public class QuickAddBar extends LinearLayout { quickAddBox.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { - boolean visible = !TextUtils.isEmpty(s) && quickAddBox.hasFocus(); - boolean showControls = Preferences.getBoolean(R.string.p_show_quickadd_controls, true); - quickAddControlsContainer.setVisibility((showControls && visible) ? View.VISIBLE : View.GONE); + final boolean visible = !TextUtils.isEmpty(s) && quickAddBox.hasFocus(); + final boolean showControls = Preferences.getBoolean(R.string.p_show_quickadd_controls, true); + quickAddControlsContainer.postDelayed(new Runnable() { + @Override + public void run() { + quickAddControlsContainer.setVisibility((showControls && visible) ? View.VISIBLE : View.GONE); + } + }, 10); } @Override From c5e785b902c17bf8f35976372781c9b2aebdfc93 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 16 Jan 2013 13:28:24 -0800 Subject: [PATCH 03/20] Fixed a bug where unassigning a task could issue a weird prompt about adding nobody to the list --- .../com/todoroo/astrid/actfm/EditPeopleControlSet.java | 2 +- astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java b/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java index 8a180f33b..5d8606da4 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java @@ -741,6 +741,7 @@ public class EditPeopleControlSet extends PopupControlSet { } else if(userJson.optLong("id") == Task.USER_ID_UNASSIGNED) { dirty = task.getValue(Task.USER_ID) == Task.USER_ID_UNASSIGNED ? dirty : true; task.setValue(Task.USER_ID, Task.USER_ID_UNASSIGNED); + task.setValue(Task.USER, "{}"); } else { String user = userJson.toString(); @@ -764,7 +765,6 @@ public class EditPeopleControlSet extends PopupControlSet { task.setValue(Task.USER_ID, userJson.optLong("id", Task.USER_ID_EMAIL)); task.setValue(Task.USER, user); - String assignedName = userJson.optString("name", userEmail); } JSONObject sharedWith = sharedWithContainer.parseSharedWithAndTags(activity, false); diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java index f8b6a201b..6cb17a01d 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java @@ -932,7 +932,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { try { JSONObject assignedUser = new JSONObject(model.getValue(Task.USER)); assignedEmail = assignedUser.optString("email", ""); //$NON-NLS-1$ //$NON-NLS-2$ - assignedId = assignedUser.optLong("id", Task.USER_ID_IGNORE); + assignedId = assignedUser.optLong("id", Task.USER_ID_IGNORE); //$NON-NLS-1$ } catch (JSONException e) { // } From 182e892ec1e81d7a0cf5e2d023ae63800500acb6 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 16 Jan 2013 14:09:39 -0800 Subject: [PATCH 04/20] Fixed bug with trying to add list creators to their own lists when tasks assigned to them --- .../src/com/todoroo/astrid/activity/TaskListActivity.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java index 338825ebd..4874f0c7e 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java @@ -710,6 +710,13 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener break; } } + if (!memberFound) { + String ownerString = td.getValue(TagData.USER); + JSONObject owner = new JSONObject(ownerString); + long ownerId = owner.optLong("id", Task.USER_ID_IGNORE); //$NON-NLS-1$ + if (ownerId > 0 && assignedId == ownerId) + memberFound = true; + } } catch (JSONException e) { return; } From aa29b74554fe929e4397b197cb03ecd6308f04cd Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 16 Jan 2013 14:16:26 -0800 Subject: [PATCH 05/20] When filtering list by assigned, order and indent should be ignored --- .../todoroo/astrid/actfm/TagViewFragment.java | 8 +++++- .../subtasks/SubtasksTagListFragment.java | 2 +- .../astrid/subtasks/SubtasksTagUpdater.java | 27 +++++++++++++++---- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java index d1f2e313d..468eac34b 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagViewFragment.java @@ -5,6 +5,8 @@ */ package com.todoroo.astrid.actfm; +import java.util.concurrent.atomic.AtomicBoolean; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -99,7 +101,9 @@ public class TagViewFragment extends TaskListFragment { private boolean dataLoaded = false; - private long currentId; + private long currentId = Task.USER_ID_IGNORE; + + protected AtomicBoolean isBeingFiltered = new AtomicBoolean(false); private Filter originalFilter; @@ -428,6 +432,7 @@ public class TagViewFragment extends TaskListFragment { else filterByAssigned.setText(getString(R.string.actfm_TVA_filtered_by_assign, displayName)); } + isBeingFiltered.set(true); setUpTaskList(); } } @@ -443,6 +448,7 @@ public class TagViewFragment extends TaskListFragment { private void resetAssignedFilter() { currentId = Task.USER_ID_IGNORE; + isBeingFiltered.set(false); filter = originalFilter; View filterAssigned = getView().findViewById(R.id.filter_assigned); if (filterAssigned != null) diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java index 8ae8db831..2707bf38f 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagListFragment.java @@ -21,7 +21,7 @@ public class SubtasksTagListFragment extends TagViewFragment { public SubtasksTagListFragment() { super(); - helper = new AstridOrderedListFragmentHelper(this, new SubtasksTagUpdater()); + helper = new AstridOrderedListFragmentHelper(this, new SubtasksTagUpdater(isBeingFiltered)); } @Override diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagUpdater.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagUpdater.java index 77341f0d7..17ad2c080 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagUpdater.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/SubtasksTagUpdater.java @@ -1,13 +1,21 @@ package com.todoroo.astrid.subtasks; +import java.util.concurrent.atomic.AtomicBoolean; + import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.data.TagData; public class SubtasksTagUpdater extends SubtasksUpdater { + private final AtomicBoolean isBeingFiltered; + + public SubtasksTagUpdater(AtomicBoolean isBeingFiltered) { + this.isBeingFiltered = isBeingFiltered; + } + @Override protected String getSerializedTree(TagData list, Filter filter) { - if (list == null) + if (list == null || isBeingFiltered.get()) return "[]"; //$NON-NLS-1$ String order = list.getValue(TagData.TAG_ORDERING); if (order == null || "null".equals(order)) //$NON-NLS-1$ @@ -18,10 +26,19 @@ public class SubtasksTagUpdater extends SubtasksUpdater { @Override protected void writeSerialization(TagData list, String serialized, boolean shouldQueueSync) { - list.setValue(TagData.TAG_ORDERING, serialized); - tagDataService.save(list); - if (shouldQueueSync) - actFmSyncService.pushTagOrderingOnSave(list.getId()); + if (!isBeingFiltered.get()) { + list.setValue(TagData.TAG_ORDERING, serialized); + tagDataService.save(list); + if (shouldQueueSync) + actFmSyncService.pushTagOrderingOnSave(list.getId()); + } + } + + @Override + public int getIndentForTask(long targetTaskId) { + if (isBeingFiltered.get()) + return 0; + return super.getIndentForTask(targetTaskId); } } From b1b7e78019eb7928fcf42033a37867d81e67e7f1 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 16 Jan 2013 15:39:08 -0800 Subject: [PATCH 06/20] Date update in upgrade message --- astrid/src/com/todoroo/astrid/service/UpgradeService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/astrid/src/com/todoroo/astrid/service/UpgradeService.java b/astrid/src/com/todoroo/astrid/service/UpgradeService.java index f855ca04a..8dbf669c6 100644 --- a/astrid/src/com/todoroo/astrid/service/UpgradeService.java +++ b/astrid/src/com/todoroo/astrid/service/UpgradeService.java @@ -284,7 +284,7 @@ public final class UpgradeService { StringBuilder changeLog = new StringBuilder(); if (from >= V4_5_0 && from < V4_5_1) { - newVersionString(changeLog, "4.5.1 (1/15/13)", new String[] { + newVersionString(changeLog, "4.5.1 (1/16/13)", new String[] { "New 'Titles only' style option for task lists (Settings > Appearance > Task row appearance)", "Bug and crash fixes" }); From 0e33c93a5dcfbd94b0ef044bfecd39672ca52533 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 17 Jan 2013 10:40:55 -0800 Subject: [PATCH 07/20] Fixed a bug with title only mode in Google lists --- .../OrderedMetadataListFragmentHelper.java | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedMetadataListFragmentHelper.java b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedMetadataListFragmentHelper.java index 4a5adb173..54048d2ed 100644 --- a/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedMetadataListFragmentHelper.java +++ b/astrid/plugin-src/com/todoroo/astrid/subtasks/OrderedMetadataListFragmentHelper.java @@ -13,15 +13,12 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicReference; import android.app.Activity; -import android.content.Context; import android.database.Cursor; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; import android.view.View; -import android.view.ViewGroup; -import android.view.ViewGroup.MarginLayoutParams; import android.widget.ListView; import com.commonsware.cwac.tlv.TouchListView.DropListener; @@ -228,25 +225,6 @@ public class OrderedMetadataListFragmentHelper implements OrderedListFragm return (ViewHolder)((View)v.getParent()).getTag(); } - @Override - public View newView(Context context, Cursor cursor, ViewGroup parent) { - View view = super.newView(context, cursor, parent); - view.getLayoutParams().height = Math.round(45 * metrics.density); - - ViewHolder vh = (ViewHolder) view.getTag(); - - MarginLayoutParams rowParams = (MarginLayoutParams) vh.rowBody.getLayoutParams(); - rowParams.topMargin = rowParams.bottomMargin = 0; - - ViewGroup.LayoutParams pictureParams = vh.picture.getLayoutParams(); - pictureParams.width = pictureParams.height = Math.round(38 * metrics.density); - - pictureParams = vh.pictureBorder.getLayoutParams(); - pictureParams.width = pictureParams.height = Math.round(38 * metrics.density); - - return view; - } - @Override public synchronized void setFieldContentsAndVisibility(View view) { super.setFieldContentsAndVisibility(view); From 75da01e64647326a995d5a28089bd58e44dd3ab0 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 17 Jan 2013 10:45:28 -0800 Subject: [PATCH 08/20] Fixed several issues with the title only mode --- .../todoroo/astrid/adapter/TaskAdapter.java | 93 +++++++++---------- 1 file changed, 46 insertions(+), 47 deletions(-) diff --git a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java index e6011f3e2..295e59b75 100644 --- a/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/TaskAdapter.java @@ -375,8 +375,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { viewHolder.details1.setTag(viewHolder); // add UI component listeners - if (!titleOnlyLayout) - addListeners(view); + addListeners(view); return view; } @@ -397,8 +396,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { task.readFromCursor(cursor); setFieldContentsAndVisibility(view); - if (!titleOnlyLayout) - setTaskAppearance(viewHolder, task); + setTaskAppearance(viewHolder, task); } /** @@ -457,7 +455,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable { } if (titleOnlyLayout) { - setupCompleteBox(viewHolder); return; } @@ -1099,9 +1096,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable { } boolean state = task.isCompleted(); - - setupDueDateAndTags(viewHolder, task); - TextView name = viewHolder.nameView; if(state) { name.setPaintFlags(name.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); @@ -1111,46 +1105,51 @@ public class TaskAdapter extends CursorAdapter implements Filterable { name.setTextAppearance(activity, R.style.TextAppearance_TAd_ItemTitle); } name.setTextSize(fontSize); - float detailTextSize = Math.max(10, fontSize * 14 / 20); - if(viewHolder.details1 != null) - viewHolder.details1.setTextSize(detailTextSize); - if(viewHolder.details2 != null) - viewHolder.details2.setTextSize(detailTextSize); - if(viewHolder.dueDate != null) { - viewHolder.dueDate.setTextSize(detailTextSize); - if (simpleLayout) - viewHolder.dueDate.setTypeface(null, 0); - } - if (viewHolder.tagsView != null) { - viewHolder.tagsView.setTextSize(detailTextSize); - if (simpleLayout) - viewHolder.tagsView.setTypeface(null, 0); - } - paint.setTextSize(detailTextSize); - // image view - final AsyncImageView pictureView = viewHolder.picture; { - if (pictureView != null) { - if(task.getValue(Task.USER_ID) == Task.USER_ID_SELF && !viewHolder.isTaskRabbit) { - pictureView.setVisibility(View.GONE); - if (viewHolder.pictureBorder != null) - viewHolder.pictureBorder.setVisibility(View.GONE); - } else { - pictureView.setVisibility(View.VISIBLE); - if (viewHolder.pictureBorder != null) - viewHolder.pictureBorder.setVisibility(View.VISIBLE); - pictureView.setUrl(null); - if (viewHolder.isTaskRabbit) { - pictureView.setDefaultImageResource(R.drawable.task_rabbit_image); - } else if(task.getValue(Task.USER_ID) == Task.USER_ID_UNASSIGNED) - pictureView.setDefaultImageResource(R.drawable.icn_anyone_transparent); - else { - pictureView.setDefaultImageResource(R.drawable.icn_default_person_image); - try { - JSONObject user = new JSONObject(task.getValue(Task.USER)); - pictureView.setUrl(user.optString("picture")); //$NON-NLS-1$ - } catch (JSONException e) { - Log.w("astrid", "task-adapter-image", e); //$NON-NLS-1$ //$NON-NLS-2$ + if (!titleOnlyLayout) { + setupDueDateAndTags(viewHolder, task); + + float detailTextSize = Math.max(10, fontSize * 14 / 20); + if(viewHolder.details1 != null) + viewHolder.details1.setTextSize(detailTextSize); + if(viewHolder.details2 != null) + viewHolder.details2.setTextSize(detailTextSize); + if(viewHolder.dueDate != null) { + viewHolder.dueDate.setTextSize(detailTextSize); + if (simpleLayout) + viewHolder.dueDate.setTypeface(null, 0); + } + if (viewHolder.tagsView != null) { + viewHolder.tagsView.setTextSize(detailTextSize); + if (simpleLayout) + viewHolder.tagsView.setTypeface(null, 0); + } + paint.setTextSize(detailTextSize); + + // image view + final AsyncImageView pictureView = viewHolder.picture; { + if (pictureView != null) { + if(task.getValue(Task.USER_ID) == Task.USER_ID_SELF && !viewHolder.isTaskRabbit) { + pictureView.setVisibility(View.GONE); + if (viewHolder.pictureBorder != null) + viewHolder.pictureBorder.setVisibility(View.GONE); + } else { + pictureView.setVisibility(View.VISIBLE); + if (viewHolder.pictureBorder != null) + viewHolder.pictureBorder.setVisibility(View.VISIBLE); + pictureView.setUrl(null); + if (viewHolder.isTaskRabbit) { + pictureView.setDefaultImageResource(R.drawable.task_rabbit_image); + } else if(task.getValue(Task.USER_ID) == Task.USER_ID_UNASSIGNED) + pictureView.setDefaultImageResource(R.drawable.icn_anyone_transparent); + else { + pictureView.setDefaultImageResource(R.drawable.icn_default_person_image); + try { + JSONObject user = new JSONObject(task.getValue(Task.USER)); + pictureView.setUrl(user.optString("picture")); //$NON-NLS-1$ + } catch (JSONException e) { + Log.w("astrid", "task-adapter-image", e); //$NON-NLS-1$ //$NON-NLS-2$ + } } } } From 35b4313911e5583375aa6235f14aa236b52fac9d Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 17 Jan 2013 10:47:44 -0800 Subject: [PATCH 09/20] Catch exceptions when getting google accounts --- .../astrid/gtasks/auth/ModernAuthManager.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/auth/ModernAuthManager.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/auth/ModernAuthManager.java index fe8fc6e0d..34567788b 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/auth/ModernAuthManager.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/auth/ModernAuthManager.java @@ -212,12 +212,16 @@ public class ModernAuthManager implements AuthManager { } public static String[] getAccounts(Activity activity) { - GoogleAccountManager accountManager = new GoogleAccountManager(activity); - Account[] accounts = accountManager.getAccounts(); - ArrayList accountNames = new ArrayList(); - for (Account a : accounts) { - accountNames.add(a.name); + try { + GoogleAccountManager accountManager = new GoogleAccountManager(activity); + Account[] accounts = accountManager.getAccounts(); + ArrayList accountNames = new ArrayList(); + for (Account a : accounts) { + accountNames.add(a.name); + } + return accountNames.toArray(new String[accountNames.size()]); + } catch (Exception e) { + return new String[] {}; // Empty array on failure } - return accountNames.toArray(new String[accountNames.size()]); } } From 40c7d1bf102dbb924109f5e7a044692caa3478b4 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 17 Jan 2013 11:03:10 -0800 Subject: [PATCH 10/20] Refactored how accounts are fetched in welcome flow to eliminate errors --- .../astrid/welcome/tutorial/WelcomePagerAdapter.java | 12 +++++++++--- .../astrid/welcome/tutorial/WelcomeWalkthrough.java | 8 ++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/astrid/src/com/todoroo/astrid/welcome/tutorial/WelcomePagerAdapter.java b/astrid/src/com/todoroo/astrid/welcome/tutorial/WelcomePagerAdapter.java index 9575e1b97..b5eb183c4 100644 --- a/astrid/src/com/todoroo/astrid/welcome/tutorial/WelcomePagerAdapter.java +++ b/astrid/src/com/todoroo/astrid/welcome/tutorial/WelcomePagerAdapter.java @@ -68,6 +68,7 @@ public class WelcomePagerAdapter extends PagerAdapter implements TitleProvider public int fallbackLoginPage; private final Context context; + public Account[] accounts; public WelcomeWalkthrough parent; @Autowired ActFmPreferenceService actFmPreferenceService; @@ -75,6 +76,14 @@ public class WelcomePagerAdapter extends PagerAdapter implements TitleProvider this.context = context; DependencyInjectionService.getInstance().inject(this); + accounts = null; + try { + GoogleAccountManager am = new GoogleAccountManager(context); + accounts = am.getAccounts(); + } catch (Exception e) { + // + } + if (manual) { layouts[layouts.length - 1] = R.layout.welcome_walkthrough_page; title[title.length - 1] = R.string.welcome_title_7_return; @@ -86,9 +95,6 @@ public class WelcomePagerAdapter extends PagerAdapter implements TitleProvider adjustResourcesForLite(); } - GoogleAccountManager am = new GoogleAccountManager(context); - Account[] accounts = am.getAccounts(); - // Setup login page from AB tests fallbackLoginPage = layouts[layouts.length - 1]; if (accounts != null && accounts.length > 0) { // If has google account diff --git a/astrid/src/com/todoroo/astrid/welcome/tutorial/WelcomeWalkthrough.java b/astrid/src/com/todoroo/astrid/welcome/tutorial/WelcomeWalkthrough.java index 41df09096..190f18deb 100644 --- a/astrid/src/com/todoroo/astrid/welcome/tutorial/WelcomeWalkthrough.java +++ b/astrid/src/com/todoroo/astrid/welcome/tutorial/WelcomeWalkthrough.java @@ -31,7 +31,6 @@ import com.timsu.astrid.R; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.astrid.actfm.ActFmGoogleAuthActivity; import com.todoroo.astrid.actfm.ActFmLoginActivity; -import com.todoroo.astrid.gtasks.auth.ModernAuthManager; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; import com.viewpagerindicator.CirclePageIndicator; @@ -39,6 +38,7 @@ import com.viewpagerindicator.CirclePageIndicator; public class WelcomeWalkthrough extends ActFmLoginActivity { private ViewPager mPager; private WelcomePagerAdapter mAdapter; + private Account[] accounts; private CirclePageIndicator mIndicator; private View currentView; private int currentPage; @@ -54,6 +54,7 @@ public class WelcomeWalkthrough extends ActFmLoginActivity { mAdapter = new WelcomePagerAdapter(this, getIntent().hasExtra(TOKEN_MANUAL_SHOW)); mAdapter.parent = this; + accounts = mAdapter.accounts; mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter); @@ -87,10 +88,9 @@ public class WelcomeWalkthrough extends ActFmLoginActivity { @Override protected void initializeUI() { - String[] accounts = ModernAuthManager.getAccounts(this); String email = null; - if (accounts != null && accounts.length > 0) { - email = accounts[0]; + if (accounts != null && accounts.length > 0 && !TextUtils.isEmpty(accounts[0].name)) { + email = accounts[0].name; } Button simpleLogin = (Button) findViewById(R.id.quick_login_google); if (simpleLogin != null && !TextUtils.isEmpty(email)) { From 8eab520fc8a594a659ef9bcc65fc5451e5ef0c9d Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 17 Jan 2013 11:23:08 -0800 Subject: [PATCH 11/20] Version bump and upgrade message --- astrid/AndroidManifest.xml | 4 ++-- astrid/src/com/todoroo/astrid/service/UpgradeService.java | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 439348b66..541e16bde 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -6,8 +6,8 @@ --> + android:versionName="4.5.1.1" + android:versionCode="293"> diff --git a/astrid/src/com/todoroo/astrid/service/UpgradeService.java b/astrid/src/com/todoroo/astrid/service/UpgradeService.java index 8dbf669c6..715afd842 100644 --- a/astrid/src/com/todoroo/astrid/service/UpgradeService.java +++ b/astrid/src/com/todoroo/astrid/service/UpgradeService.java @@ -50,6 +50,7 @@ import com.todoroo.astrid.utility.Constants; public final class UpgradeService { + public static final int V4_5_1_1 = 293; public static final int V4_5_1 = 292; public static final int V4_5_0 = 291; public static final int V4_4_4_1 = 290; @@ -283,6 +284,12 @@ public final class UpgradeService { Preferences.clear(AstridPreferences.P_UPGRADE_FROM); StringBuilder changeLog = new StringBuilder(); + if (from >= V4_5_1 && from < V4_5_1_1) { + newVersionString(changeLog, "4.5.1.1 (1/17/13)", new String[] { + "Fixed a crash that could affect some Google Tasks users" + }); + } + if (from >= V4_5_0 && from < V4_5_1) { newVersionString(changeLog, "4.5.1 (1/16/13)", new String[] { "New 'Titles only' style option for task lists (Settings > Appearance > Task row appearance)", From d04c37e2de759828348e2eca2bbcbf3fc3cc9437 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Thu, 17 Jan 2013 15:21:11 -0800 Subject: [PATCH 12/20] Many polish improvements --- .../todoroo/astrid/alarms/AlarmControlSet.java | 5 +++-- astrid/res/layout/control_set_alarms.xml | 17 ++++++++++++----- astrid/res/layout/control_set_collaborators.xml | 3 ++- astrid/res/layout/control_set_reminders.xml | 10 +++++++--- astrid/res/layout/control_set_timers.xml | 4 ++++ astrid/res/values/strings-actfm.xml | 2 +- astrid/res/values/strings-core.xml | 4 ++-- astrid/res/values/strings-reminders.xml | 10 +++++----- astrid/res/values/strings-timers.xml | 2 +- astrid/res/values/styles.xml | 4 ++-- .../todoroo/astrid/service/UpgradeService.java | 4 ++++ .../utility/AstridDefaultPreferenceSpec.java | 2 +- 12 files changed, 44 insertions(+), 23 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmControlSet.java b/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmControlSet.java index 0433f72e0..780f6dc04 100644 --- a/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/alarms/AlarmControlSet.java @@ -58,12 +58,13 @@ public final class AlarmControlSet extends TaskEditControlSet { @Override protected void afterInflate() { this.alertsContainer = (LinearLayout) getView().findViewById(R.id.alert_container); - getView().findViewById(R.id.alarms_add).setOnClickListener(new View.OnClickListener() { + View.OnClickListener addAlarmListener = new View.OnClickListener() { @Override public void onClick(View arg0) { addAlarm(new Date()); } - }); + }; + getView().findViewById(R.id.alarms_add).setOnClickListener(addAlarmListener); pickerDialog = new DateAndTimeDialog(activity, 0); } diff --git a/astrid/res/layout/control_set_alarms.xml b/astrid/res/layout/control_set_alarms.xml index af5c387e0..0ece52938 100644 --- a/astrid/res/layout/control_set_alarms.xml +++ b/astrid/res/layout/control_set_alarms.xml @@ -12,24 +12,31 @@ -