diff --git a/api/src/com/todoroo/astrid/sync/SyncBackgroundService.java b/api/src/com/todoroo/astrid/sync/SyncBackgroundService.java index 533808fd0..f15794569 100644 --- a/api/src/com/todoroo/astrid/sync/SyncBackgroundService.java +++ b/api/src/com/todoroo/astrid/sync/SyncBackgroundService.java @@ -1,5 +1,7 @@ package com.todoroo.astrid.sync; +import java.util.concurrent.atomic.AtomicBoolean; + import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; @@ -45,12 +47,15 @@ abstract public class SyncBackgroundService extends Service { DependencyInjectionService.getInstance().inject(this); } + private final AtomicBoolean started = new AtomicBoolean(false); + /** Receive the alarm - start the synchronize service! */ @Override public void onStart(Intent intent, int startId) { try { - if(intent != null) + if(intent != null && !started.getAndSet(true)) { startSynchronization(this); + } } catch (Exception e) { exceptionService.reportError(getSyncUtilities().getIdentifier() + "-bg-sync", e); //$NON-NLS-1$ } @@ -67,8 +72,6 @@ abstract public class SyncBackgroundService extends Service { return; getSyncProvider().synchronize(context); - - stopSelf(); } @Override @@ -76,6 +79,11 @@ abstract public class SyncBackgroundService extends Service { return null; } + public synchronized void stop() { + started.set(false); + stopSelf(); + } + // --- alarm management /** diff --git a/api/src/com/todoroo/astrid/sync/SyncProvider.java b/api/src/com/todoroo/astrid/sync/SyncProvider.java index 53cded1d1..7894d3917 100644 --- a/api/src/com/todoroo/astrid/sync/SyncProvider.java +++ b/api/src/com/todoroo/astrid/sync/SyncProvider.java @@ -11,7 +11,6 @@ import java.util.HashMap; import android.app.Activity; import android.app.Notification; -import android.app.Service; import android.content.Context; import android.widget.Toast; @@ -162,7 +161,7 @@ public abstract class SyncProvider { }); } initiateManual((Activity)context); - } else if(context instanceof Service) { + } else if(context instanceof SyncBackgroundService) { // display notification final int notificationId = updateNotification(context, notification); final NotificationManager nm = new NotificationManager.AndroidNotificationManager(context); @@ -175,6 +174,7 @@ public abstract class SyncProvider { initiateBackground(); } finally { nm.cancel(notificationId); + ((SyncBackgroundService)context).stop(); } } }).start(); diff --git a/astrid/.classpath b/astrid/.classpath index 882117a95..373554c21 100644 --- a/astrid/.classpath +++ b/astrid/.classpath @@ -17,7 +17,6 @@ - @@ -30,5 +29,6 @@ + diff --git a/astrid/libs/google-api-services-tasks-v1-1.2.2-beta-sources.jar b/astrid/libs/google-api-services-tasks-v1-1.2.2-beta-sources.jar deleted file mode 100644 index afe7b02aa..000000000 Binary files a/astrid/libs/google-api-services-tasks-v1-1.2.2-beta-sources.jar and /dev/null differ diff --git a/astrid/libs/google-api-services-tasks-v1-1.2.2-beta.jar b/astrid/libs/google-api-services-tasks-v1-1.2.2-beta.jar deleted file mode 100644 index ed071e8f1..000000000 Binary files a/astrid/libs/google-api-services-tasks-v1-1.2.2-beta.jar and /dev/null differ diff --git a/astrid/libs/google-api-services-tasks-v1-1.2.5-beta-sources.jar b/astrid/libs/google-api-services-tasks-v1-1.2.5-beta-sources.jar new file mode 100644 index 000000000..b2214dfa9 Binary files /dev/null and b/astrid/libs/google-api-services-tasks-v1-1.2.5-beta-sources.jar differ diff --git a/astrid/libs/google-api-services-tasks-v1-1.2.5-beta.jar b/astrid/libs/google-api-services-tasks-v1-1.2.5-beta.jar new file mode 100644 index 000000000..ef1ed0744 Binary files /dev/null and b/astrid/libs/google-api-services-tasks-v1-1.2.5-beta.jar differ diff --git a/astrid/plugin-src/com/timsu/astrid/C2DMReceiver.java b/astrid/plugin-src/com/timsu/astrid/C2DMReceiver.java index bd034e572..1979531bb 100644 --- a/astrid/plugin-src/com/timsu/astrid/C2DMReceiver.java +++ b/astrid/plugin-src/com/timsu/astrid/C2DMReceiver.java @@ -74,8 +74,8 @@ public class C2DMReceiver extends BroadcastReceiver { new Thread(new Runnable() { @Override public void run() { - if(intent.hasExtra("web_update")) - if (DateUtilities.now() - actFmPreferenceService.getLastSyncDate() > MIN_MILLIS_BETWEEN_FULL_SYNCS) + if(intent.hasExtra("web_update") && actFmPreferenceService.isLoggedIn()) + if (DateUtilities.now() - actFmPreferenceService.getLastSyncDate() > MIN_MILLIS_BETWEEN_FULL_SYNCS && !actFmPreferenceService.isOngoing()) new ActFmSyncProvider().synchronize(ContextManager.getContext()); else handleWebUpdate(intent); diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java index 724d8f21e..7386f05cf 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/ActFmLoginActivity.java @@ -24,6 +24,7 @@ import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.security.NoSuchAlgorithmException; +import java.util.Random; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @@ -63,6 +64,7 @@ import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.ExceptionService; +import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.sync.ActFmInvoker; @@ -91,6 +93,7 @@ public class ActFmLoginActivity extends Activity implements AuthListener { @Autowired protected ActFmPreferenceService actFmPreferenceService; private final ActFmInvoker actFmInvoker = new ActFmInvoker(); + private Random rand; private Facebook facebook; private AsyncFacebookRunner facebookRunner; @@ -134,6 +137,8 @@ public class ActFmLoginActivity extends Activity implements AuthListener { setContentView(getContentViewResource()); setTitle(getTitleResource()); + rand = new Random(DateUtilities.now()); + noSync = getIntent().getBooleanExtra(EXTRA_DO_NOT_SYNC, false); facebook = new Facebook(APP_ID); @@ -233,6 +238,7 @@ public class ActFmLoginActivity extends Activity implements AuthListener { isNew.set(!isNew.get()); int nameIndex = body.indexOfChild(name); int visibility = isNew.get() ? View.VISIBLE : View.GONE; + int passwordVisibility = isNew.get() ? View.GONE : View.VISIBLE; toggleNew.setText(isNew.get() ? R.string.actfm_ALA_pw_returning : R.string.actfm_ALA_pw_new); dialog.get().setTitle( @@ -240,6 +246,12 @@ public class ActFmLoginActivity extends Activity implements AuthListener { : R.string.actfm_ALA_login_title); body.getChildAt(nameIndex - 1).setVisibility(visibility); body.getChildAt(nameIndex).setVisibility(visibility); + + EditText password = (EditText) body.getChildAt(nameIndex + 4); + String passwordText = isNew.get() ? generateRandomPassword() : ""; //$NON-NLS-1$ + password.setText(passwordText); + body.getChildAt(nameIndex + 3).setVisibility(passwordVisibility); + body.getChildAt(nameIndex + 4).setVisibility(passwordVisibility); } }); toggleNew.setText(R.string.actfm_ALA_pw_returning); @@ -259,6 +271,10 @@ public class ActFmLoginActivity extends Activity implements AuthListener { R.string.actfm_ALA_password_label); password.setTransformationMethod(new PasswordTransformationMethod()); + password.setText(generateRandomPassword()); + body.getChildAt(body.indexOfChild(password) - 1).setVisibility(View.GONE); + password.setVisibility(View.GONE); + dialog.set(new AlertDialog.Builder(ActFmLoginActivity.this).setView( body).setIcon(R.drawable.icon_32).setTitle( R.string.actfm_ALA_signup_title).setPositiveButton( @@ -282,6 +298,35 @@ public class ActFmLoginActivity extends Activity implements AuthListener { } }; + private String generateRandomPassword() { + String acceptable = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*(),."; //$NON-NLS-1$ + char[] chars = new char[8]; + char last = 'a'; + for (int i = 0; i < chars.length; i++) { + char r = acceptable.charAt(rand.nextInt(acceptable.length())); + while (checkSimilar(last, r)) + r = acceptable.charAt(rand.nextInt(acceptable.length())); + last = r; + chars[i] = r; + } + return new String(chars); + } + + @SuppressWarnings("nls") + private boolean checkSimilar(char last, char check) { + String iSimilar = "ijl1!"; + String oSimilar = "oO0"; + String puncSimilar = ".,"; + + boolean match = (iSimilar.indexOf(last) > 0 && iSimilar.indexOf(check) > 0) + || (oSimilar.indexOf(last) > 0 && oSimilar.indexOf(check) > 0) + || (puncSimilar.indexOf(last) > 0 && puncSimilar.indexOf(check) > 0); + + if (match) + return false; + return true; + } + private EditText addEditField(LinearLayout body, int hint) { TextView label = new TextView(ActFmLoginActivity.this); label.setText(hint); 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 606f5b2e3..967b91994 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/ActFmSyncService.java @@ -55,7 +55,6 @@ import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Update; import com.todoroo.astrid.service.MetadataService; -import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.StatisticsConstants; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.service.TagDataService; @@ -119,6 +118,8 @@ public final class ActFmSyncService { public void onModelUpdated(final Task model) { if(Flags.checkAndClear(Flags.ACTFM_SUPPRESS_SYNC)) return; + if (actFmPreferenceService.isOngoing()) + return; final ContentValues setValues = model.getSetValues(); if(setValues == null || !checkForToken() || setValues.containsKey(RemoteModel.REMOTE_ID_PROPERTY_NAME)) return; @@ -145,6 +146,8 @@ public final class ActFmSyncService { public void onModelUpdated(final Update model) { if(Flags.checkAndClear(Flags.ACTFM_SUPPRESS_SYNC)) return; + if (actFmPreferenceService.isOngoing()) + return; final ContentValues setValues = model.getSetValues(); if(setValues == null || !checkForToken() || model.getValue(Update.REMOTE_ID) > 0) return; @@ -163,6 +166,8 @@ public final class ActFmSyncService { public void onModelUpdated(final TagData model) { if(Flags.checkAndClear(Flags.ACTFM_SUPPRESS_SYNC)) return; + if (actFmPreferenceService.isOngoing()) + return; final ContentValues setValues = model.getSetValues(); if(setValues == null || !checkForToken() || setValues.containsKey(RemoteModel.REMOTE_ID_PROPERTY_NAME)) return; @@ -276,9 +281,9 @@ public final class ActFmSyncService { */ public void pushTaskOnSave(Task task, ContentValues values) { long remoteId; - if(task.containsValue(Task.REMOTE_ID)) + if(task.containsValue(Task.REMOTE_ID)) { remoteId = task.getValue(Task.REMOTE_ID); - else { + } else { Task taskForRemote = taskService.fetchById(task.getId(), Task.REMOTE_ID); if(taskForRemote == null) return; @@ -292,8 +297,13 @@ public final class ActFmSyncService { if(newlyCreated) { if(task.getValue(Task.TITLE).length() == 0) return; - if(task.getId() <= StartupService.INTRO_TASK_SIZE) - return; + for(int taskTitle : new int[] { R.string.intro_task_1_summary, + R.string.intro_task_2_summary, R.string.intro_task_3_summary }) { + String title = ContextManager.getString(taskTitle); + if(task.getValue(Task.TITLE).equals(title)) + return; + } + values = task.getMergedValues(); } if(values.containsKey(Task.TITLE.name)) { diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/CreateRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/CreateRequest.java index 2d922d24f..77e4fe304 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/CreateRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/CreateRequest.java @@ -24,6 +24,12 @@ public class CreateRequest extends PushRequest { return service.createGtask(listId, toPush, parent, priorSiblingId); } + @Override + protected void recover() { + parent = null; + priorSiblingId = null; + } + public String getParent() { return parent; } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java index 70016fe4b..d2a00174b 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveListRequest.java @@ -29,6 +29,12 @@ public class MoveListRequest extends PushRequest { return service.createGtask(dstList, toPush); } + @Override + protected void recover() { + //If there's a good way to recover, put it here + //Since MoveListRequest isn't actually used at the moment, it's probably fine for now + } + private void transferProperties(Task local) { toPush.setCompleted(local.getCompleted()); toPush.setDeleted(local.getDeleted()); diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveRequest.java index 6e3580902..e481d0437 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/MoveRequest.java @@ -34,6 +34,12 @@ public class MoveRequest extends PushRequest { return service.moveGtask(super.listId, taskId, parentId, priorSiblingId); } + @Override + protected void recover() { + parentId = null; + priorSiblingId = null; + } + public String getParentId() { return parentId; } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/PushRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/PushRequest.java index 0d46e5a80..0b7cd23c6 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/PushRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/PushRequest.java @@ -41,5 +41,16 @@ public abstract class PushRequest { this.service = service; } - public abstract Task executePush() throws IOException; + public Task push() throws IOException { + try { + return executePush(); + } catch (IOException e) { + recover(); + return executePush(); + } + } + + protected abstract Task executePush() throws IOException; + + protected abstract void recover(); } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java index c25cc1cdf..5ee27f300 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/api/UpdateRequest.java @@ -20,4 +20,9 @@ public class UpdateRequest extends PushRequest { return service.updateGtask(listId, toPush); } + @Override + protected void recover() { + //Figure out a good way to recover! + } + } diff --git a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncOnSaveService.java b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncOnSaveService.java index 4243f0047..33094dc4f 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncOnSaveService.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncOnSaveService.java @@ -292,7 +292,7 @@ public final class GtasksSyncOnSaveService { } MoveRequest move = new MoveRequest(gtasksService, taskId, listId, parent, priorSibling); - move.executePush(); + move.push(); } private boolean syncOnSaveEnabled() { 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 9e9207e60..32b623c76 100644 --- a/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java +++ b/astrid/plugin-src/com/todoroo/astrid/gtasks/sync/GtasksSyncProvider.java @@ -294,7 +294,7 @@ public class GtasksSyncProvider extends SyncProvider { String remoteSibling = gtasksMetadataService.getRemoteSiblingId(listId, t.gtaskMetadata); MoveRequest move = new MoveRequest(taskService, toMove, listId, remoteParent, remoteSibling); - move.executePush(); + move.push(); } } @@ -435,7 +435,7 @@ public class GtasksSyncProvider extends SyncProvider { CreateRequest createRequest = new CreateRequest(taskService, listId, createdTask, local.parentId, local.priorSiblingId); //updateTaskHelper(local, null, createRequest); localPropertiesToModel(local, null, createRequest.getToPush()); - com.google.api.services.tasks.model.Task createResult = createRequest.executePush(); + com.google.api.services.tasks.model.Task createResult = createRequest.push(); createdWithoutId.add(local); createdWithoutOrder.add(local); String newIdTask = createResult.getId(); @@ -499,11 +499,11 @@ public class GtasksSyncProvider extends SyncProvider { Log.e("gtasks-debug", "ACTION: move(1) - " + newIdTask + ", " + local.parentId + ", " + local.priorSiblingId); //This case basically defaults to whatever local settings are. Future versions could try and merge better MoveRequest moveRequest = new MoveRequest(taskService, newIdTask, idList, local.parentId, local.priorSiblingId); - moveRequest.executePush(); + moveRequest.push(); } if (request instanceof UpdateRequest) { - request.executePush(); + request.push(); } //Strategy--delete, migrate properties, recreate, update local AND remote ids; happens in MoveListRequest @@ -513,7 +513,7 @@ public class GtasksSyncProvider extends SyncProvider { Log.e("gtasks-debug", "ACTION: moveTask(5), " + newIdTask + ", " + idList + " to " + remote.gtaskMetadata.getValue(GtasksMetadata.LIST_ID)); MoveListRequest moveList = new MoveListRequest(taskService, newIdTask, remote.gtaskMetadata.getValue(GtasksMetadata.LIST_ID), idList, null); - com.google.api.services.tasks.model.Task result = moveList.executePush(); + com.google.api.services.tasks.model.Task result = moveList.push(); local.gtaskMetadata.setValue(GtasksMetadata.ID, result.getId()); remote.gtaskMetadata.setValue(GtasksMetadata.ID, result.getId()); } diff --git a/astrid/res/drawable-hdpi/header_logo_new.png b/astrid/res/drawable-hdpi/header_logo_new.png index b9b33f305..f47916337 100644 Binary files a/astrid/res/drawable-hdpi/header_logo_new.png and b/astrid/res/drawable-hdpi/header_logo_new.png differ diff --git a/astrid/res/drawable/astrid_com_logo.png b/astrid/res/drawable/astrid_com_logo.png index 933d4448d..f7e1d3093 100644 Binary files a/astrid/res/drawable/astrid_com_logo.png and b/astrid/res/drawable/astrid_com_logo.png differ diff --git a/astrid/res/drawable/header_logo_new.png b/astrid/res/drawable/header_logo_new.png index 8c89e7c4e..0aedfed9e 100644 Binary files a/astrid/res/drawable/header_logo_new.png and b/astrid/res/drawable/header_logo_new.png differ diff --git a/astrid/res/drawable/icon.png b/astrid/res/drawable/icon.png index 25402e7f6..f3f1d6ba8 100644 Binary files a/astrid/res/drawable/icon.png and b/astrid/res/drawable/icon.png differ diff --git a/astrid/res/drawable/icon_old.png b/astrid/res/drawable/icon_old.png new file mode 100644 index 000000000..25402e7f6 Binary files /dev/null and b/astrid/res/drawable/icon_old.png differ diff --git a/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java b/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java index 3e7c9798f..067fc4f34 100644 --- a/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/FilterListActivity.java @@ -467,9 +467,13 @@ public class FilterListActivity extends ExpandableListActivity { } catch (IOException e) { if (manual) exceptionService.displayAndReportError(FilterListActivity.this, "refresh-tags-io", e); + else + exceptionService.reportError("refresh-tags-io", e); } catch (JSONException e) { if (manual) exceptionService.displayAndReportError(FilterListActivity.this, "refresh-tags-json", e); + else + exceptionService.reportError("refresh-tags-io", e); } finally { if (manual) DialogUtilities.dismissDialog(FilterListActivity.this, progressDialog); diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java index ab0e13d0e..8742882d8 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java @@ -34,6 +34,7 @@ import android.content.IntentFilter; import android.content.res.Resources; import android.os.Bundle; import android.speech.RecognizerIntent; +import android.text.TextUtils; import android.text.format.DateUtils; import android.util.Log; import android.view.KeyEvent; @@ -432,6 +433,7 @@ public final class TaskEditActivity extends TabActivity { database.openForReading(); if(idParam > -1L) { model = taskService.fetchById(idParam, Task.PROPERTIES); + model.clearValue(Task.REMOTE_ID); // Having this can screw up autosync } // not found by id or was never passed an id @@ -506,8 +508,10 @@ public final class TaskEditActivity extends TabActivity { if(!onPause && peopleControlSet != null && !peopleControlSet.saveSharingSettings(processedToast)) return; - if (!onPause) // Saving during on pause could cause a double finish + if (!onPause) { // Saving during on pause could cause a double finish + shouldSaveState = false; finish(); + } } @Override @@ -599,7 +603,7 @@ public final class TaskEditActivity extends TabActivity { shouldSaveState = false; // abandon editing in this case - if(title.getText().length() == 0) { + if(title.getText().length() == 0 || TextUtils.isEmpty(model.getValue(Task.TITLE))) { if(isNewTask) taskService.delete(model); } diff --git a/astrid/src/com/todoroo/astrid/dao/TaskDao.java b/astrid/src/com/todoroo/astrid/dao/TaskDao.java index e1abaccb9..bb3d398cf 100644 --- a/astrid/src/com/todoroo/astrid/dao/TaskDao.java +++ b/astrid/src/com/todoroo/astrid/dao/TaskDao.java @@ -169,7 +169,6 @@ public class TaskDao extends DatabaseDao { */ public boolean save(Task task) { boolean saveSuccessful; - if (task.getId() == Task.NO_ID) { saveSuccessful = createNew(task); } else { diff --git a/astrid/src/com/todoroo/astrid/service/UpgradeService.java b/astrid/src/com/todoroo/astrid/service/UpgradeService.java index 68583c91a..58e027410 100644 --- a/astrid/src/com/todoroo/astrid/service/UpgradeService.java +++ b/astrid/src/com/todoroo/astrid/service/UpgradeService.java @@ -33,7 +33,6 @@ import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.notes.NoteMetadata; import com.todoroo.astrid.producteev.sync.ProducteevDataService; import com.todoroo.astrid.service.abtesting.ABChooser; -import com.todoroo.astrid.service.abtesting.ABOptions; import com.todoroo.astrid.tags.TagCaseMigrator; import com.todoroo.astrid.utility.AstridPreferences; @@ -114,9 +113,6 @@ public final class UpgradeService { Preferences.setInt(AstridPreferences.P_UPGRADE_FROM, from); - if (from <= V3_8_3_1) // This needs to happen synchronously - abChooser.setChoiceForOption(ABOptions.AB_OPTION_FIRST_ACTIVITY, 0); - new Thread(new Runnable() { @Override public void run() { diff --git a/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java b/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java index 0f4ea9438..b037f6215 100644 --- a/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java +++ b/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java @@ -4,8 +4,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import com.todoroo.astrid.service.StatisticsConstants; - /** * Helper class to define options with their probabilities and descriptions * @author Sam Bosley @@ -168,29 +166,7 @@ public class ABOptions { } private void initialize() { // Set up - addOption(AB_OPTION_FIRST_ACTIVITY, AB_OPTION_FIRST_ACTIVITY_PROBS, - AB_OPTION_FIRST_ACTIVITY_DESCRIPTIONS, AB_OPTION_FIRST_ACTIVITY_RELEVANT_EVENTS); - - addOption(AB_OPTION_WELCOME_LOGIN, AB_OPTION_WELCOME_LOGIN_PROBS, - AB_OPTION_WELCOME_LOGIN_DESCRIPTIONS, AB_OPTION_WELCOME_LOGIN_RELEVANT_EVENTS); + //Calls to addOption go here } - - public static final String AB_OPTION_FIRST_ACTIVITY = "ab_first_activity"; - private static final int[] AB_OPTION_FIRST_ACTIVITY_PROBS = { 9, 1 }; - private static final String[] AB_OPTION_FIRST_ACTIVITY_DESCRIPTIONS = { "ab-show-tasks-first", "ab-show-lists-first" }; - private static final String[] AB_OPTION_FIRST_ACTIVITY_RELEVANT_EVENTS = { StatisticsConstants.CREATE_TASK, - StatisticsConstants.TASK_CREATED_TASKLIST, - StatisticsConstants.USER_FIRST_TASK, - StatisticsConstants.ACTFM_LIST_SHARED, - StatisticsConstants.ACTFM_NEW_USER };//*/ - - public static final String AB_OPTION_WELCOME_LOGIN = "ab_welcome_login"; - private static final int[] AB_OPTION_WELCOME_LOGIN_PROBS = { 9, 1 }; - private static final String[] AB_OPTION_WELCOME_LOGIN_DESCRIPTIONS = { "ab-welcome-login-show", "ab-welcome-login-skip" }; - private static final String[] AB_OPTION_WELCOME_LOGIN_RELEVANT_EVENTS = { StatisticsConstants.CREATE_TASK, - StatisticsConstants.TASK_CREATED_TASKLIST, - StatisticsConstants.USER_FIRST_TASK, - StatisticsConstants.ACTFM_LIST_SHARED, - StatisticsConstants.ACTFM_NEW_USER };//*/ } diff --git a/astrid/src/com/todoroo/astrid/welcome/SplashScreenLauncher.java b/astrid/src/com/todoroo/astrid/welcome/SplashScreenLauncher.java index a5b59404a..696e39f75 100644 --- a/astrid/src/com/todoroo/astrid/welcome/SplashScreenLauncher.java +++ b/astrid/src/com/todoroo/astrid/welcome/SplashScreenLauncher.java @@ -9,13 +9,11 @@ import com.timsu.astrid.R; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.astrid.activity.FilterListActivity; import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.service.abtesting.ABChooser; -import com.todoroo.astrid.service.abtesting.ABOptions; import com.todoroo.astrid.utility.AstridPreferences; public class SplashScreenLauncher extends Activity { @@ -43,46 +41,22 @@ public class SplashScreenLauncher extends Activity { private void finishAndShowNext(boolean isNewUser) { if (isNewUser) { - int welcomeLoginChoice = abChooser.getChoiceForOption(ABOptions.AB_OPTION_WELCOME_LOGIN); - welcomeLoginPath(welcomeLoginChoice); + welcomeLoginPath(); } else { - int tasksOrListsChoice = abChooser.getChoiceForOption(ABOptions.AB_OPTION_FIRST_ACTIVITY); - mainActivityPath(tasksOrListsChoice); + mainActivityPath(); } } - private void welcomeLoginPath(int welcomeLoginChoice) { + private void welcomeLoginPath() { Intent intent = new Intent(); - switch(welcomeLoginChoice) { - case 0: // Show welcome login, then welcome screen - intent.setClass(this, WelcomeLogin.class); - break; - case 1: // Go straight to welcome screen - intent.setClass(this, WelcomeGraphic.class); - intent.putExtra(WelcomeGraphic.KEY_SHOW_EULA, true); - break; - default: - intent.setClass(this, WelcomeLogin.class); - break; - } + intent.setClass(this, WelcomeLogin.class); startActivity(intent); finish(); } - private void mainActivityPath(int tasksOrListsChoice) { + private void mainActivityPath() { Intent intent = new Intent(); - switch (tasksOrListsChoice) { - case 0: - intent.setClass(this, TaskListActivity.class); // Go to task list activity - break; - case 1: - intent.setClass(this, FilterListActivity.class); // Go to filter list activity - intent.putExtra(FilterListActivity.SHOW_BACK_BUTTON, false); - break; - default: - intent.setClass(this, TaskListActivity.class); - break; - } + intent.setClass(this, TaskListActivity.class); // Go to task list activity startActivity(intent); finish(); } diff --git a/astrid/src/com/todoroo/astrid/welcome/WelcomeGraphic.java b/astrid/src/com/todoroo/astrid/welcome/WelcomeGraphic.java index a5cffa569..aeb06369e 100644 --- a/astrid/src/com/todoroo/astrid/welcome/WelcomeGraphic.java +++ b/astrid/src/com/todoroo/astrid/welcome/WelcomeGraphic.java @@ -15,12 +15,10 @@ import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.astrid.actfm.sync.ActFmSyncProvider; import com.todoroo.astrid.activity.Eula; -import com.todoroo.astrid.activity.FilterListActivity; import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.StatisticsService; import com.todoroo.astrid.service.abtesting.ABChooser; -import com.todoroo.astrid.service.abtesting.ABOptions; public class WelcomeGraphic extends Activity { @@ -99,18 +97,7 @@ public class WelcomeGraphic extends Activity { private Intent getNextIntent() { Intent intent = new Intent(); - int choice = abChooser.getChoiceForOption(ABOptions.AB_OPTION_FIRST_ACTIVITY); - switch (choice) { - case 0: - intent.setClass(this, TaskListActivity.class); - break; - case 1: - intent.setClass(this, FilterListActivity.class); - intent.putExtra(FilterListActivity.SHOW_BACK_BUTTON, false); - break; - default: - intent.setClass(this, TaskListActivity.class); - } + intent.setClass(this, TaskListActivity.class); return intent; } }