diff --git a/astrid/src/com/todoroo/astrid/service/StartupService.java b/astrid/src/com/todoroo/astrid/service/StartupService.java index 283c445b2..8a93610f8 100644 --- a/astrid/src/com/todoroo/astrid/service/StartupService.java +++ b/astrid/src/com/todoroo/astrid/service/StartupService.java @@ -33,6 +33,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.sql.Criterion; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; @@ -45,7 +46,10 @@ import com.todoroo.astrid.backup.BackupConstants; import com.todoroo.astrid.backup.BackupService; import com.todoroo.astrid.backup.TasksXmlImporter; import com.todoroo.astrid.dao.Database; +import com.todoroo.astrid.dao.MetadataDao.MetadataCriteria; +import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Task; +import com.todoroo.astrid.gtasks.GtasksMetadata; import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.sync.GtasksSyncService; import com.todoroo.astrid.opencrx.OpencrxCoreUtils; @@ -55,6 +59,7 @@ import com.todoroo.astrid.reminders.ReminderStartupReceiver; import com.todoroo.astrid.service.abtesting.ABChooser; import com.todoroo.astrid.service.abtesting.ABTestInvoker; import com.todoroo.astrid.service.abtesting.ABTests; +import com.todoroo.astrid.subtasks.SubtasksMetadata; import com.todoroo.astrid.utility.AstridPreferences; import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.widget.TasksWidget.WidgetUpdateService; @@ -230,6 +235,8 @@ public class StartupService { // get and display update messages if (finalLatestVersion != 0) new UpdateMessageService(context).processUpdates(); + + checkForSubtasksUse(); } }).start(); @@ -296,6 +303,31 @@ public class StartupService { } } + private static final String PREF_SUBTASKS_CHECK = "subtasks_check_stat"; //$NON-NLS-1$ + + private void checkForSubtasksUse() { + if (!Preferences.getBoolean(PREF_SUBTASKS_CHECK, false)) { + checkMetadataStat(Criterion.and(MetadataCriteria.withKey(SubtasksMetadata.METADATA_KEY), + SubtasksMetadata.ORDER.gt(0)), StatisticsConstants.SUBTASKS_ORDER_USED); + checkMetadataStat(Criterion.and(MetadataCriteria.withKey(SubtasksMetadata.METADATA_KEY), + SubtasksMetadata.INDENT.gt(0)), StatisticsConstants.SUBTASKS_INDENT_USED); + checkMetadataStat(Criterion.and(MetadataCriteria.withKey(GtasksMetadata.METADATA_KEY), + GtasksMetadata.INDENT.gt(0)), StatisticsConstants.GTASKS_INDENT_USED); + Preferences.setBoolean(PREF_SUBTASKS_CHECK, true); + } + } + + private void checkMetadataStat(Criterion criterion, String statistic) { + TodorooCursor sort = metadataService.query(Query.select(Metadata.ID).where(criterion).limit(1)); + try { + if (sort.getCount() > 0) + StatisticsService.reportEvent(statistic); + } finally { + sort.close(); + } + + } + private static final String P_TASK_KILLER_HELP = "taskkiller"; //$NON-NLS-1$ /** diff --git a/astrid/src/com/todoroo/astrid/service/StatisticsConstants.java b/astrid/src/com/todoroo/astrid/service/StatisticsConstants.java index 6fdbf325e..1bbb43fe5 100644 --- a/astrid/src/com/todoroo/astrid/service/StatisticsConstants.java +++ b/astrid/src/com/todoroo/astrid/service/StatisticsConstants.java @@ -74,6 +74,10 @@ public class StatisticsConstants { public static final String SHARE_PAGE_VIEWED = "share-page-viewed"; public static final String SHARE_BUTTON_CLICKED = "share-button-clicked"; + public static final String SUBTASKS_ORDER_USED = "subtasks-order-used"; + public static final String SUBTASKS_INDENT_USED = "subtasks-indent-used"; + public static final String GTASKS_INDENT_USED = "gtasks-indent-used"; + public static final String PREF_THIRD_PARTY_ADDONS = "pref-third-party-addons"; public static final String PREF_SHOW_NOTES_IN_ROW = "pref-show-notes"; public static final String PREF_SHOW_FEATURED_LISTS = "pref-show-featured-lists";