Add 'addTask' event

pull/1830/head
Alex Baker 4 years ago
parent f97a9fc2a3
commit 99b533e5cd

@ -11,5 +11,7 @@ class Firebase @Inject constructor() {
fun logEvent(event: Int, vararg params: Pair<Int, Any>) {} fun logEvent(event: Int, vararg params: Pair<Int, Any>) {}
fun addTask(source: String) {}
val subscribeCooldown = false val subscribeCooldown = false
} }

@ -47,6 +47,9 @@ class Firebase @Inject constructor(
} }
} }
fun addTask(source: String) =
logEvent(R.string.event_add_task, R.string.param_type to source)
fun logEvent(@StringRes event: Int, vararg p: Pair<Int, Any>) { fun logEvent(@StringRes event: Int, vararg p: Pair<Int, Any>) {
analytics?.logEvent(context.getString(event), Bundle().apply { analytics?.logEvent(context.getString(event), Bundle().apply {
p.forEach { p.forEach {

@ -161,7 +161,10 @@ class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandl
return null return null
} }
if (intent.hasExtra(CREATE_TASK)) { if (intent.hasExtra(CREATE_TASK)) {
val source = intent.getStringExtra(CREATE_SOURCE)
firebase.addTask(source ?: "unknown")
intent.removeExtra(CREATE_TASK) intent.removeExtra(CREATE_TASK)
intent.removeExtra(CREATE_SOURCE)
return taskCreator.createWithValues(filter, "") return taskCreator.createWithValues(filter, "")
} }
if (intent.hasExtra(OPEN_TASK)) { if (intent.hasExtra(OPEN_TASK)) {
@ -493,6 +496,7 @@ class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandl
const val OPEN_FILTER = "open_filter" // $NON-NLS-1$ const val OPEN_FILTER = "open_filter" // $NON-NLS-1$
const val LOAD_FILTER = "load_filter" const val LOAD_FILTER = "load_filter"
const val CREATE_TASK = "open_task" // $NON-NLS-1$ const val CREATE_TASK = "open_task" // $NON-NLS-1$
const val CREATE_SOURCE = "create_source"
const val OPEN_TASK = "open_new_task" // $NON-NLS-1$ const val OPEN_TASK = "open_new_task" // $NON-NLS-1$
const val REMOVE_TASK = "remove_task" const val REMOVE_TASK = "remove_task"
const val FINISH_AFFINITY = "finish_affinity" const val FINISH_AFFINITY = "finish_affinity"

@ -10,13 +10,13 @@ import com.todoroo.astrid.service.TaskCreator
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.tasks.Strings.isNullOrEmpty import org.tasks.Strings.isNullOrEmpty
import org.tasks.analytics.Firebase
import org.tasks.data.TaskAttachment import org.tasks.data.TaskAttachment
import org.tasks.files.FileHelper import org.tasks.files.FileHelper
import org.tasks.injection.InjectingAppCompatActivity import org.tasks.injection.InjectingAppCompatActivity
import org.tasks.intents.TaskIntents import org.tasks.intents.TaskIntents
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import timber.log.Timber import timber.log.Timber
import java.util.*
import javax.inject.Inject import javax.inject.Inject
import kotlin.math.min import kotlin.math.min
@ -29,6 +29,7 @@ import kotlin.math.min
class ShareLinkActivity : InjectingAppCompatActivity() { class ShareLinkActivity : InjectingAppCompatActivity() {
@Inject lateinit var taskCreator: TaskCreator @Inject lateinit var taskCreator: TaskCreator
@Inject lateinit var preferences: Preferences @Inject lateinit var preferences: Preferences
@Inject lateinit var firebase: Firebase
public override fun onCreate(savedInstanceState: Bundle?) { public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -40,6 +41,7 @@ class ShareLinkActivity : InjectingAppCompatActivity() {
if (text != null) { if (text != null) {
val task = taskCreator.createWithValues(text.toString()) val task = taskCreator.createWithValues(text.toString())
editTask(task) editTask(task)
firebase.addTask("clipboard")
} }
finish() finish()
} }
@ -49,6 +51,9 @@ class ShareLinkActivity : InjectingAppCompatActivity() {
task.notes = intent.getStringExtra(Intent.EXTRA_TEXT) task.notes = intent.getStringExtra(Intent.EXTRA_TEXT)
if (hasAttachments(intent)) { if (hasAttachments(intent)) {
task.putTransitory(TaskAttachment.KEY, copyAttachment(intent)) task.putTransitory(TaskAttachment.KEY, copyAttachment(intent))
firebase.addTask("share_attachment")
} else {
firebase.addTask("share_text")
} }
editTask(task) editTask(task)
finish() finish()
@ -58,12 +63,16 @@ class ShareLinkActivity : InjectingAppCompatActivity() {
task.notes = intent.getStringExtra(Intent.EXTRA_TEXT) task.notes = intent.getStringExtra(Intent.EXTRA_TEXT)
if (hasAttachments(intent)) { if (hasAttachments(intent)) {
task.putTransitory(TaskAttachment.KEY, copyMultipleAttachments(intent)) task.putTransitory(TaskAttachment.KEY, copyMultipleAttachments(intent))
firebase.addTask("share_multiple_attachments")
} else {
firebase.addTask("share_multiple_text")
} }
editTask(task) editTask(task)
finish() finish()
} }
Intent.ACTION_VIEW == action -> lifecycleScope.launch { Intent.ACTION_VIEW == action -> lifecycleScope.launch {
editTask(taskCreator.createWithValues("")) editTask(taskCreator.createWithValues(""))
firebase.addTask("action_view")
finish() finish()
} }
else -> { else -> {

@ -545,6 +545,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
lifecycleScope.launch { lifecycleScope.launch {
shortcutManager.reportShortcutUsed(ShortcutManager.SHORTCUT_NEW_TASK) shortcutManager.reportShortcutUsed(ShortcutManager.SHORTCUT_NEW_TASK)
onTaskListItemClicked(addTask("")) onTaskListItemClicked(addTask(""))
firebase.addTask("fab")
} }
} }
@ -637,6 +638,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
recognizedSpeech = (recognizedSpeech.substring(0, 1).toUpperCase() recognizedSpeech = (recognizedSpeech.substring(0, 1).toUpperCase()
+ recognizedSpeech.substring(1).toLowerCase()) + recognizedSpeech.substring(1).toLowerCase())
onTaskListItemClicked(addTask(recognizedSpeech)) onTaskListItemClicked(addTask(recognizedSpeech))
firebase.addTask("voice")
} }
} }
} }

@ -49,7 +49,7 @@ class UriHandler : AppCompatActivity() {
} }
private fun newTask() { private fun newTask() {
val intent = TaskIntents.getNewTaskIntent(this@UriHandler, null) val intent = TaskIntents.getNewTaskIntent(this@UriHandler, null, "content_provider")
intent.flags = TaskIntents.FLAGS intent.flags = TaskIntents.FLAGS
startActivity(intent) startActivity(intent)
finish() finish()

@ -12,12 +12,17 @@ public class TaskIntents {
public static final int FLAGS = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP; public static final int FLAGS = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP;
public static Intent getNewTaskIntent(Context context, @Nullable Filter filter) { public static Intent getNewTaskIntent(
Context context,
@Nullable Filter filter,
String createSource
) {
Intent intent = new Intent(context, MainActivity.class); Intent intent = new Intent(context, MainActivity.class);
if (filter != null) { if (filter != null) {
intent.putExtra(MainActivity.OPEN_FILTER, filter); intent.putExtra(MainActivity.OPEN_FILTER, filter);
} }
intent.putExtra(MainActivity.CREATE_TASK, 0L); intent.putExtra(MainActivity.CREATE_TASK, 0L);
intent.putExtra(MainActivity.CREATE_SOURCE, createSource);
intent.putExtra(MainActivity.REMOVE_TASK, true); intent.putExtra(MainActivity.REMOVE_TASK, true);
return intent; return intent;
} }

@ -5,6 +5,7 @@ import com.todoroo.astrid.data.Task
import com.todoroo.astrid.data.Task.Companion.createDueDate import com.todoroo.astrid.data.Task.Companion.createDueDate
import com.todoroo.astrid.service.TaskCreator import com.todoroo.astrid.service.TaskCreator
import org.tasks.Strings.isNullOrEmpty import org.tasks.Strings.isNullOrEmpty
import org.tasks.analytics.Firebase
import org.tasks.locale.bundle.TaskCreationBundle import org.tasks.locale.bundle.TaskCreationBundle
import org.tasks.time.DateTime import org.tasks.time.DateTime
import org.tasks.time.DateTimeUtils import org.tasks.time.DateTimeUtils
@ -18,8 +19,9 @@ import kotlin.math.min
class TaskerTaskCreator @Inject internal constructor( class TaskerTaskCreator @Inject internal constructor(
private val taskCreator: TaskCreator, private val taskCreator: TaskCreator,
private val taskDao: TaskDao) { private val taskDao: TaskDao,
private val firebase: Firebase,
) {
suspend fun handle(bundle: TaskCreationBundle) { suspend fun handle(bundle: TaskCreationBundle) {
val task = taskCreator.basicQuickAddTask(bundle.title) val task = taskCreator.basicQuickAddTask(bundle.title)
val dueDateString = bundle.dueDate val dueDateString = bundle.dueDate
@ -58,6 +60,7 @@ class TaskerTaskCreator @Inject internal constructor(
task.notes = bundle.description task.notes = bundle.description
taskDao.save(task) taskDao.save(task)
taskCreator.createTags(task) taskCreator.createTags(task)
firebase.addTask("tasker")
} }
companion object { companion object {

@ -31,6 +31,7 @@ import kotlinx.coroutines.withContext
import net.fortuna.ical4j.model.Recur import net.fortuna.ical4j.model.Recur
import org.tasks.R import org.tasks.R
import org.tasks.Strings import org.tasks.Strings
import org.tasks.analytics.Firebase
import org.tasks.calendars.CalendarEventProvider import org.tasks.calendars.CalendarEventProvider
import org.tasks.data.Alarm import org.tasks.data.Alarm
import org.tasks.data.Alarm.Companion.TYPE_RANDOM import org.tasks.data.Alarm.Companion.TYPE_RANDOM
@ -81,6 +82,7 @@ class TaskEditViewModel @Inject constructor(
private val alarmService: AlarmService, private val alarmService: AlarmService,
private val taskListEvents: TaskListEventBus, private val taskListEvents: TaskListEventBus,
private val mainActivityEvents: MainActivityEventBus, private val mainActivityEvents: MainActivityEventBus,
private val firebase: Firebase,
) : ViewModel() { ) : ViewModel() {
private var cleared = false private var cleared = false
@ -384,6 +386,7 @@ class TaskEditViewModel @Inject constructor(
subtask.completionDate = task.completionDate subtask.completionDate = task.completionDate
} }
taskDao.createNew(subtask) taskDao.createNew(subtask)
firebase.addTask("subtasks")
when (selectedList) { when (selectedList) {
is GtasksFilter -> { is GtasksFilter -> {
val googleTask = GoogleTask(subtask.id, (selectedList as GtasksFilter).remoteId) val googleTask = GoogleTask(subtask.id, (selectedList as GtasksFilter).remoteId)

@ -9,6 +9,7 @@ import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.tasks.R import org.tasks.R
import org.tasks.analytics.Firebase
import org.tasks.extensions.Context.toast import org.tasks.extensions.Context.toast
import org.tasks.injection.InjectingAppCompatActivity import org.tasks.injection.InjectingAppCompatActivity
import javax.inject.Inject import javax.inject.Inject
@ -17,6 +18,7 @@ import javax.inject.Inject
class VoiceCommandActivity : InjectingAppCompatActivity() { class VoiceCommandActivity : InjectingAppCompatActivity() {
@Inject lateinit var taskCreator: TaskCreator @Inject lateinit var taskCreator: TaskCreator
@Inject @ApplicationContext lateinit var context: Context @Inject @ApplicationContext lateinit var context: Context
@Inject lateinit var firebase: Firebase
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -28,6 +30,7 @@ class VoiceCommandActivity : InjectingAppCompatActivity() {
?.let { ?.let {
taskCreator.basicQuickAddTask(it) taskCreator.basicQuickAddTask(it)
toast(R.string.voice_command_added_task) toast(R.string.voice_command_added_task)
firebase.addTask("note_to_self")
} }
finish() finish()
} }

@ -174,7 +174,7 @@ class TasksWidget : AppWidgetProvider() {
} }
private fun getNewTaskIntent(context: Context, filter: Filter, widgetId: Int): PendingIntent { private fun getNewTaskIntent(context: Context, filter: Filter, widgetId: Int): PendingIntent {
val intent = TaskIntents.getNewTaskIntent(context, filter) val intent = TaskIntents.getNewTaskIntent(context, filter, "widget")
intent.action = "new_task" intent.action = "new_task"
return PendingIntent.getActivity( return PendingIntent.getActivity(
context, context,

@ -5,7 +5,7 @@ import org.tasks.intents.TaskIntents
class TileService : TileService() { class TileService : TileService() {
override fun onClick() { override fun onClick() {
val newTaskIntent = TaskIntents.getNewTaskIntent(this, null) val newTaskIntent = TaskIntents.getNewTaskIntent(this, null, "tile")
.addFlags(TaskIntents.FLAGS) .addFlags(TaskIntents.FLAGS)
startActivityAndCollapse(newTaskIntent) startActivityAndCollapse(newTaskIntent)
} }

@ -433,6 +433,7 @@
<string name="event_sync_unknown_access">sync_unknown_access</string> <string name="event_sync_unknown_access">sync_unknown_access</string>
<string name="event_banner_beast">banner_beast</string> <string name="event_banner_beast">banner_beast</string>
<string name="event_banner_sub">banner_subscribe</string> <string name="event_banner_sub">banner_subscribe</string>
<string name="event_add_task">add_task</string>
<string name="param_type">type</string> <string name="param_type">type</string>
<string name="p_map_theme">map_theme</string> <string name="p_map_theme">map_theme</string>
<string name="p_picker_mode_date">picker_mode_date</string> <string name="p_picker_mode_date">picker_mode_date</string>

Loading…
Cancel
Save