From 32bd06219afaaa0ce398d0dd60b0b3e5cd467eaa Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 24 Apr 2012 11:47:41 -0700 Subject: [PATCH] Replaced the Performance preferences with 'Astrid Labs', where users can go to enable/disable features that are being AB tested --- astrid/AndroidManifest.xml | 4 ++-- .../com/todoroo/astrid/actfm/EditPeopleControlSet.java | 10 ++++------ ...erformancePreferences.java => LabsPreferences.java} | 6 +++--- astrid/res/values/keys.xml | 3 +++ astrid/res/values/strings-core.xml | 9 +++++++-- ...references_performance.xml => preferences_labs.xml} | 7 ++++++- .../src/com/todoroo/astrid/service/StartupService.java | 1 + .../todoroo/astrid/service/abtesting/ABOptions.java | 4 ++-- .../com/todoroo/astrid/utility/AstridPreferences.java | 5 ++++- 9 files changed, 32 insertions(+), 17 deletions(-) rename astrid/plugin-src/com/todoroo/astrid/core/{PerformancePreferences.java => LabsPreferences.java} (85%) rename astrid/res/xml/{preferences_performance.xml => preferences_labs.xml} (64%) diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml index 81214724e..0708e7888 100644 --- a/astrid/AndroidManifest.xml +++ b/astrid/AndroidManifest.xml @@ -261,9 +261,9 @@ - + android:label="@string/EPr_labs_header"> diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java b/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java index 1eded0215..2e403f4a7 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/EditPeopleControlSet.java @@ -49,6 +49,7 @@ import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.sql.Order; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.utility.DialogUtilities; +import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.actfm.sync.ActFmSyncService; import com.todoroo.astrid.activity.TaskEditFragment; @@ -66,7 +67,6 @@ import com.todoroo.astrid.service.TagDataService; import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.service.abtesting.ABChooser; -import com.todoroo.astrid.service.abtesting.ABOptions; import com.todoroo.astrid.tags.TagService; import com.todoroo.astrid.ui.PeopleContainer; import com.todoroo.astrid.ui.PeopleContainer.OnAddNewPersonListener; @@ -394,17 +394,15 @@ public class EditPeopleControlSet extends PopupControlSet { new JSONObject().put("default_picture", R.drawable.icn_friends) .put(CONTACT_CHOOSER_USER, true)); int contactsIndex = addUnassigned ? 2 : 1; - boolean addedContacts = true; - if (abChooser.getChoiceForOption(ABOptions.AB_OPTION_CONTACTS_PICKER_ENABLED) == 0) + boolean addContactPicker = Preferences.getBoolean(R.string.p_use_contact_picker, true); + if (addContactPicker) coreUsers.add(contactsIndex, contactPickerUser); - else - addedContacts = false; for (AssignedChangedListener l : listeners) { if (l.shouldShowTaskRabbit()) { taskRabbitUser = new AssignedToUser(activity.getString(R.string.actfm_EPA_task_rabbit), new JSONObject().put("default_picture", R.drawable.task_rabbit_image)); int taskRabbitIndex = addUnassigned ? 3 : 2; - if (!addedContacts) + if (!addContactPicker) taskRabbitIndex--; coreUsers.add(taskRabbitIndex, taskRabbitUser); if(l.didPostToTaskRabbit()){ diff --git a/astrid/plugin-src/com/todoroo/astrid/core/PerformancePreferences.java b/astrid/plugin-src/com/todoroo/astrid/core/LabsPreferences.java similarity index 85% rename from astrid/plugin-src/com/todoroo/astrid/core/PerformancePreferences.java rename to astrid/plugin-src/com/todoroo/astrid/core/LabsPreferences.java index c57c9ed16..34dadcb37 100644 --- a/astrid/plugin-src/com/todoroo/astrid/core/PerformancePreferences.java +++ b/astrid/plugin-src/com/todoroo/astrid/core/LabsPreferences.java @@ -10,11 +10,11 @@ import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.TodorooPreferenceActivity; -public class PerformancePreferences extends TodorooPreferenceActivity { +public class LabsPreferences extends TodorooPreferenceActivity { @Override public int getPreferenceResource() { - return R.xml.preferences_performance; + return R.xml.preferences_labs; } @Override @@ -25,7 +25,7 @@ public class PerformancePreferences extends TodorooPreferenceActivity { preference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference p, Object newValue) { - DialogUtilities.okDialog(PerformancePreferences.this, r.getString(R.string.EPr_swipe_lists_restart_alert), null); + DialogUtilities.okDialog(LabsPreferences.this, r.getString(R.string.EPr_swipe_lists_restart_alert), null); return true; } }); diff --git a/astrid/res/values/keys.xml b/astrid/res/values/keys.xml index 76a360c85..966ba9664 100644 --- a/astrid/res/values/keys.xml +++ b/astrid/res/values/keys.xml @@ -290,6 +290,9 @@ p_swipe_lists_perf + + p_use_contact_picker + -1 diff --git a/astrid/res/values/strings-core.xml b/astrid/res/values/strings-core.xml index 2a2ffca95..86e6ec114 100644 --- a/astrid/res/values/strings-core.xml +++ b/astrid/res/values/strings-core.xml @@ -540,13 +540,18 @@ Task Row Appearance - - Performance + + Astrid Labs + Enable or disable experimental features Swipe between lists Controls the memory performance of swipe between lists + + Use contact picker + Display the system contact picker option in the task assignment window + You will need to restart Astrid for this change to take effect diff --git a/astrid/res/xml/preferences_performance.xml b/astrid/res/xml/preferences_labs.xml similarity index 64% rename from astrid/res/xml/preferences_performance.xml rename to astrid/res/xml/preferences_labs.xml index a76131977..ac0e07add 100644 --- a/astrid/res/xml/preferences_performance.xml +++ b/astrid/res/xml/preferences_labs.xml @@ -1,11 +1,16 @@ + android:title="@string/EPr_labs_header" + android:summary="@string/EPr_labs_desc"> + diff --git a/astrid/src/com/todoroo/astrid/service/StartupService.java b/astrid/src/com/todoroo/astrid/service/StartupService.java index 4dc4aa604..78c8ada1a 100644 --- a/astrid/src/com/todoroo/astrid/service/StartupService.java +++ b/astrid/src/com/todoroo/astrid/service/StartupService.java @@ -214,6 +214,7 @@ public class StartupService { }).start(); abChooser.getChoiceForOption(ABOptions.AB_OPTION_SWIPE_ENABLED_KEY); + abChooser.getChoiceForOption(ABOptions.AB_OPTION_CONTACTS_PICKER_ENABLED); AstridPreferences.setPreferenceDefaults(); // check for task killers diff --git a/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java b/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java index 62d10a953..622e6dff9 100644 --- a/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java +++ b/astrid/src/com/todoroo/astrid/service/abtesting/ABOptions.java @@ -174,7 +174,7 @@ public class ABOptions { public static final String AB_OPTION_SWIPE_ENABLED_KEY = "swipeEnabled"; //$NON-NLS-1$ private static final int[] AB_OPTION_SWIPE_ENABLED_PROBS = { 1, 1 }; - private static final String[] AB_OPTION_SWIPE_ENABLED_DESC = { "swipe-lists-enabled", "swipe-lists-disabled" }; //$NON-NLS-1$//$NON-NLS-2$ + private static final String[] AB_OPTION_SWIPE_ENABLED_DESC = { "swipe-lists-disabled", "swipe-lists-enabled" }; //$NON-NLS-1$//$NON-NLS-2$ private static final String[] AB_OPTION_SWIPE_ENABLED_EVENTS = { StatisticsConstants.APP_OPEN_THREE_DAYS, StatisticsConstants.APP_OPEN_ONE_WEEK, StatisticsConstants.APP_OPEN_TWO_WEEKS, @@ -182,7 +182,7 @@ public class ABOptions { public static final String AB_OPTION_CONTACTS_PICKER_ENABLED = "contactsEnabled"; //$NON-NLS-1$ private static final int[] AB_OPTION_CONTACTS_ENABLED_PROBS = { 1, 1 }; - private static final String[] AB_OPTION_CONTACTS_ENABLED_DESC = { "contacts-enabled", "contacts-disabled" }; //$NON-NLS-1$//$NON-NLS-2$ + private static final String[] AB_OPTION_CONTACTS_ENABLED_DESC = { "contacts-disabled", "contacts-enabled" }; //$NON-NLS-1$//$NON-NLS-2$ private static final String[] AB_OPTION_CONTACTS_ENABLED_EVENTS = { StatisticsConstants.APP_OPEN_THREE_DAYS, StatisticsConstants.APP_OPEN_ONE_WEEK, StatisticsConstants.APP_OPEN_TWO_WEEKS, diff --git a/astrid/src/com/todoroo/astrid/utility/AstridPreferences.java b/astrid/src/com/todoroo/astrid/utility/AstridPreferences.java index 1e9a4e786..9592ce3f8 100644 --- a/astrid/src/com/todoroo/astrid/utility/AstridPreferences.java +++ b/astrid/src/com/todoroo/astrid/utility/AstridPreferences.java @@ -49,9 +49,12 @@ public class AstridPreferences { Preferences.setIfUnset(prefs, editor, r, R.string.p_fontSize, 18); Preferences.setIfUnset(prefs, editor, r, R.string.p_showNotes, false); - boolean swipeEnabled = (ABChooser.readChoiceForOption(ABOptions.AB_OPTION_SWIPE_ENABLED_KEY) == 0); + boolean swipeEnabled = (ABChooser.readChoiceForOption(ABOptions.AB_OPTION_SWIPE_ENABLED_KEY) == 1); Preferences.setIfUnset(prefs, editor, r, R.string.p_swipe_lists_performance_key, swipeEnabled ? 3 : 0); + boolean contactsPickerEnabled = (ABChooser.readChoiceForOption(ABOptions.AB_OPTION_CONTACTS_PICKER_ENABLED) == 1); + Preferences.setIfUnset(prefs, editor, r, R.string.p_use_contact_picker, contactsPickerEnabled); + if ("white-blue".equals(Preferences.getStringValue(R.string.p_theme))) { //$NON-NLS-1$ migrate from when white-blue wasn't the default Preferences.setString(R.string.p_theme, ThemeService.THEME_WHITE); }