Migrate to Hilt

pull/1025/head
Alex Baker 4 years ago
parent da1a69760f
commit 52952e22cd

@ -7,6 +7,7 @@ plugins {
id("com.cookpad.android.plugin.license-tools") version "1.2.2"
id("com.github.ben-manes.versions") version "0.28.0"
id("com.vanniktech.android.junit.jacoco") version "0.16.0"
id("dagger.hilt.android.plugin")
}
repositories {
@ -47,7 +48,7 @@ android {
versionName = "9.7"
targetSdkVersion(Versions.targetSdk)
minSdkVersion(Versions.minSdk)
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunner = "org.tasks.TestRunner"
kapt {
arguments {
@ -142,8 +143,11 @@ dependencies {
implementation("com.gitlab.bitfireAT:ical4android:a675c7194b")
implementation("com.gitlab.bitfireAT:cert4android:1488e39a66")
kapt("com.google.dagger:dagger-compiler:${Versions.dagger}")
implementation("com.google.dagger:dagger:${Versions.dagger}")
implementation("com.google.dagger:hilt-android:${Versions.hilt}")
kapt("com.google.dagger:hilt-android-compiler:${Versions.hilt}")
kapt("androidx.hilt:hilt-compiler:${Versions.hilt_androidx}")
implementation("androidx.hilt:hilt-work:${Versions.hilt_androidx}")
implementation("androidx.hilt:hilt-lifecycle-viewmodel:${Versions.hilt_androidx}")
implementation("androidx.room:room-rxjava2:${Versions.room}")
kapt("androidx.room:room-compiler:${Versions.room}")
@ -199,7 +203,9 @@ dependencies {
googleplayImplementation("com.google.android.libraries.places:places:2.2.0")
googleplayImplementation("com.android.billingclient:billing:1.2.2")
kaptAndroidTest("com.google.dagger:dagger-compiler:${Versions.dagger}")
androidTestImplementation("com.google.dagger:hilt-android-testing:${Versions.hilt}")
kaptAndroidTest("com.google.dagger:hilt-android-compiler:${Versions.hilt}")
kaptAndroidTest("androidx.hilt:hilt-compiler:${Versions.hilt_androidx}")
kaptAndroidTest("com.jakewharton:butterknife-compiler:${Versions.butterknife}")
androidTestImplementation("org.mockito:mockito-android:${Versions.mockito}")
androidTestImplementation("com.natpryce:make-it-easy:${Versions.make_it_easy}")

@ -1,16 +1,16 @@
package com.todoroo.astrid.adapter
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.natpryce.makeiteasy.PropertyValue
import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.LocalBroadcastManager
import org.tasks.R
import org.tasks.data.CaldavCalendar
@ -19,7 +19,7 @@ import org.tasks.data.GoogleTaskDao
import org.tasks.data.TaskContainer
import org.tasks.data.TaskListQuery.getQuery
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.CaldavTaskMaker.CALENDAR
import org.tasks.makers.CaldavTaskMaker.REMOTE_PARENT
import org.tasks.makers.CaldavTaskMaker.TASK
@ -31,7 +31,8 @@ import org.tasks.preferences.Preferences
import org.tasks.time.DateTime
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class CaldavManualSortTaskAdapterTest : InjectingTestCase() {
@Inject lateinit var googleTaskDao: GoogleTaskDao
@Inject lateinit var taskDao: TaskDao
@ -241,6 +242,4 @@ class CaldavManualSortTaskAdapterTest : InjectingTestCase() {
with(REMOTE_PARENT, remoteParent)))
return task.id
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,24 +1,24 @@
package com.todoroo.astrid.adapter
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.natpryce.makeiteasy.PropertyValue
import com.todoroo.astrid.dao.TaskDao
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.*
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.LocalBroadcastManager
import org.tasks.data.*
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.TaskContainerMaker.PARENT
import org.tasks.makers.TaskContainerMaker.newTaskContainer
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class CaldavTaskAdapterTest : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var caldavDao: CaldavDao
@Inject lateinit var googleTaskDao: GoogleTaskDao
@ -211,6 +211,4 @@ class CaldavTaskAdapterTest : InjectingTestCase() {
result.cd_remote_parent = remoteParent
return result
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,15 +1,15 @@
package com.todoroo.astrid.adapter
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.natpryce.makeiteasy.PropertyValue
import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.LocalBroadcastManager
import org.tasks.R
import org.tasks.data.CaldavDao
@ -17,7 +17,7 @@ import org.tasks.data.GoogleTaskDao
import org.tasks.data.TaskContainer
import org.tasks.data.TaskListQuery.getQuery
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.GoogleTaskListMaker.REMOTE_ID
import org.tasks.makers.GoogleTaskListMaker.newGoogleTaskList
import org.tasks.makers.GoogleTaskMaker
@ -29,9 +29,9 @@ import org.tasks.makers.TaskMaker.newTask
import org.tasks.preferences.Preferences
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class GoogleTaskManualSortAdapterTest : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var caldavDao: CaldavDao
@Inject lateinit var googleTaskDao: GoogleTaskDao
@ -444,6 +444,4 @@ class GoogleTaskManualSortAdapterTest : InjectingTestCase() {
false)
return task.id
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -2,16 +2,16 @@ package com.todoroo.astrid.adapter
import android.content.Context
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.natpryce.makeiteasy.PropertyValue
import com.todoroo.astrid.core.BuiltInFilterExposer
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.LocalBroadcastManager
import org.tasks.R
import org.tasks.data.CaldavDao
@ -19,15 +19,15 @@ import org.tasks.data.GoogleTaskDao
import org.tasks.data.TaskContainer
import org.tasks.data.TaskListQuery.getQuery
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.TaskMaker.PARENT
import org.tasks.makers.TaskMaker.newTask
import org.tasks.preferences.Preferences
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class NonRecursiveQueryTest : InjectingTestCase() {
@Inject lateinit var googleTaskDao: GoogleTaskDao
@Inject lateinit var caldavDao: CaldavDao
@Inject lateinit var taskDao: TaskDao
@ -74,6 +74,4 @@ class NonRecursiveQueryTest : InjectingTestCase() {
private fun query() {
tasks.addAll(taskDao.fetchTasks { getQuery(preferences, filter, it) })
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -2,31 +2,31 @@ package com.todoroo.astrid.adapter
import android.content.Context
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.natpryce.makeiteasy.PropertyValue
import com.todoroo.astrid.core.BuiltInFilterExposer
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.LocalBroadcastManager
import org.tasks.data.CaldavDao
import org.tasks.data.GoogleTaskDao
import org.tasks.data.TaskContainer
import org.tasks.data.TaskListQuery.getQuery
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.TaskMaker.PARENT
import org.tasks.makers.TaskMaker.newTask
import org.tasks.preferences.Preferences
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class OfflineSubtaskTest : InjectingTestCase() {
@Inject lateinit var googleTaskDao: GoogleTaskDao
@Inject lateinit var caldavDao: CaldavDao
@Inject lateinit var taskDao: TaskDao
@ -85,6 +85,4 @@ class OfflineSubtaskTest : InjectingTestCase() {
private fun query() {
tasks.addAll(taskDao.fetchTasks { getQuery(preferences, filter, it) })
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,16 +1,16 @@
package com.todoroo.astrid.alarms
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.astrid.dao.TaskDao
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.data.Alarm
import org.tasks.data.AlarmDao
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.jobs.AlarmEntry
import org.tasks.jobs.NotificationQueue
import org.tasks.makers.TaskMaker.REMINDER_LAST
@ -18,7 +18,8 @@ import org.tasks.makers.TaskMaker.newTask
import org.tasks.time.DateTime
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class AlarmJobServiceTest : InjectingTestCase() {
@Inject lateinit var alarmDao: AlarmDao
@Inject lateinit var taskDao: TaskDao
@ -47,6 +48,4 @@ class AlarmJobServiceTest : InjectingTestCase() {
assertTrue(jobs.getJobs().isEmpty())
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -5,23 +5,25 @@
*/
package com.todoroo.astrid.dao
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.data.Task
import com.todoroo.astrid.service.TaskDeleter
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.*
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.TaskMaker.ID
import org.tasks.makers.TaskMaker.PARENT
import org.tasks.makers.TaskMaker.newTask
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class TaskDaoTests : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var taskDeleter: TaskDeleter
@ -162,6 +164,4 @@ class TaskDaoTests : InjectingTestCase() {
taskDao.createNew(newTask(with(ID, 3L), with(PARENT, 2L)))
assertEquals(listOf(2L, 3L), taskDao.getChildren(listOf(1L, 3L)))
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,18 +1,19 @@
package com.todoroo.astrid.gtasks
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.api.services.tasks.model.TaskList
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.astrid.service.TaskDeleter
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.LocalBroadcastManager
import org.tasks.data.GoogleTaskAccount
import org.tasks.data.GoogleTaskListDao
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.GtaskListMaker.ID
import org.tasks.makers.GtaskListMaker.NAME
import org.tasks.makers.GtaskListMaker.REMOTE_ID
@ -21,7 +22,8 @@ import org.tasks.makers.RemoteGtaskListMaker
import org.tasks.makers.RemoteGtaskListMaker.newRemoteList
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class GtasksListServiceTest : InjectingTestCase() {
@Inject lateinit var taskDeleter: TaskDeleter
@Inject lateinit var localBroadcastManager: LocalBroadcastManager
@ -29,13 +31,12 @@ class GtasksListServiceTest : InjectingTestCase() {
private lateinit var gtasksListService: GtasksListService
@Before
override fun setUp() {
super.setUp()
gtasksListService = GtasksListService(googleTaskListDao, taskDeleter, localBroadcastManager)
}
override fun inject(component: TestComponent) = component.inject(this)
@Test
fun testCreateNewList() {
setLists(
@ -50,12 +51,12 @@ class GtasksListServiceTest : InjectingTestCase() {
fun testGetListByRemoteId() {
val list = newGtaskList(with(REMOTE_ID, "1"))
list.id = googleTaskListDao.insertOrReplace(list)
assertEquals(list, gtasksListService.getList("1"))
assertEquals(list, googleTaskListDao.getByRemoteId("1"))
}
@Test
fun testGetListReturnsNullWhenNotFound() {
assertNull(gtasksListService.getList("1"))
assertNull(googleTaskListDao.getByRemoteId("1"))
}
@Test
@ -81,7 +82,7 @@ class GtasksListServiceTest : InjectingTestCase() {
@Test
fun testNewListLastSyncIsZero() {
setLists(TaskList().setId("1"))
assertEquals(0L, gtasksListService.getList("1").lastSync)
assertEquals(0L, googleTaskListDao.getByRemoteId("1")!!.lastSync)
}
private fun setLists(vararg list: TaskList) {

@ -5,28 +5,27 @@
*/
package com.todoroo.astrid.gtasks
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertNull
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.data.GoogleTask
import org.tasks.data.GoogleTaskDao
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class GtasksMetadataServiceTest : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var googleTaskDao: GoogleTaskDao
private var task: Task? = null
private var metadata: GoogleTask? = null
override fun inject(component: TestComponent) = component.inject(this)
@Test
fun testMetadataFound() {

@ -1,18 +1,19 @@
package com.todoroo.astrid.model
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.Freeze
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.time.DateTimeUtils
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class TaskTest : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
@ -32,6 +33,4 @@ class TaskTest : InjectingTestCase() {
val fromDb = taskDao.fetch(task.id)
assertEquals(task, fromDb)
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,19 +1,20 @@
package com.todoroo.astrid.reminders
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.Freeze
import org.tasks.R
import org.tasks.date.DateTimeUtils
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.jobs.NotificationQueue
import org.tasks.jobs.ReminderEntry
import org.tasks.makers.TaskMaker.COMPLETION_TIME
@ -33,7 +34,8 @@ import org.tasks.time.DateTime
import java.util.concurrent.TimeUnit
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class ReminderServiceTest : InjectingTestCase() {
@Inject lateinit var preferences: Preferences
@Inject lateinit var taskDao: TaskDao
@ -42,6 +44,7 @@ class ReminderServiceTest : InjectingTestCase() {
private lateinit var service: ReminderService
private lateinit var random: RandomStub
@Before
override fun setUp() {
super.setUp()
random = RandomStub()
@ -49,8 +52,6 @@ class ReminderServiceTest : InjectingTestCase() {
service = ReminderService(preferences, jobs, random, taskDao)
}
override fun inject(component: TestComponent) = component.inject(this)
@Test
fun dontScheduleDueDateReminderWhenFlagNotSet() {
service.scheduleAlarm(newTask(with(ID, 1L), with(DUE_TIME, DateTimeUtils.newDateTime())))

@ -1,23 +1,23 @@
package com.todoroo.astrid.repeats
import android.annotation.SuppressLint
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.ical.values.RRule
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.astrid.alarms.AlarmService
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import com.todoroo.astrid.gcal.GCalHelper
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.InOrder
import org.mockito.Mockito
import org.tasks.LocalBroadcastManager
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.TaskMaker.AFTER_COMPLETE
import org.tasks.makers.TaskMaker.COMPLETION_TIME
import org.tasks.makers.TaskMaker.DUE_TIME
@ -29,7 +29,8 @@ import java.text.ParseException
import javax.inject.Inject
@SuppressLint("NewApi")
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class RepeatTaskHelperTest : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
private lateinit var localBroadcastManager: LocalBroadcastManager
@ -188,6 +189,4 @@ class RepeatTaskHelperTest : InjectingTestCase() {
mocks.verify(alarmService).rescheduleAlarms(1, oldDueDate.millis, newDueDate.millis)
mocks.verify(localBroadcastManager).broadcastRepeat(1, oldDueDate.millis, newDueDate.millis)
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -5,26 +5,25 @@
*/
package com.todoroo.astrid.service
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.todoroo.astrid.data.Task
import com.todoroo.astrid.utility.TitleParser
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.data.TagDataDao
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import java.util.*
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class QuickAddMarkupTest : InjectingTestCase() {
private val tags = ArrayList<String>()
@Inject lateinit var tagDataDao: TagDataDao
private var task: Task? = null
override fun inject(component: TestComponent) = component.inject(this)
@Test
fun testTags() {

@ -1,19 +1,19 @@
package com.todoroo.astrid.service
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.dao.TaskDao
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.*
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.data.CaldavCalendar
import org.tasks.data.CaldavDao
import org.tasks.data.GoogleTaskDao
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.jobs.WorkManager
import org.tasks.makers.CaldavTaskMaker
import org.tasks.makers.CaldavTaskMaker.CALENDAR
@ -31,7 +31,8 @@ import org.tasks.makers.TaskMaker.ID
import org.tasks.makers.TaskMaker.newTask
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class TaskMoverTest : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var googleTaskDao: GoogleTaskDao
@ -298,6 +299,4 @@ class TaskMoverTest : InjectingTestCase() {
private fun moveToCaldavList(calendar: String, vararg tasks: Long) {
taskMover.move(tasks.toList(), CaldavFilter(CaldavCalendar("", calendar)))
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -5,36 +5,37 @@
*/
package com.todoroo.astrid.service
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.ical.values.Frequency
import com.google.ical.values.RRule
import com.todoroo.astrid.data.Task
import com.todoroo.astrid.utility.TitleParser
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.*
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.R
import org.tasks.data.TagDataDao
import org.tasks.date.DateTimeUtils
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.preferences.Preferences
import java.util.*
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class TitleParserTest : InjectingTestCase() {
@Inject lateinit var tagDataDao: TagDataDao
@Inject lateinit var preferences: Preferences
@Inject lateinit var taskCreator: TaskCreator
@Before
override fun setUp() {
super.setUp()
preferences.setStringFromInteger(R.string.p_default_urgency_key, 0)
}
override fun inject(component: TestComponent) = component.inject(this)
/**
* test that completing a task w/ no regular expressions creates a simple task with no date, no
* repeat, no lists

@ -1,16 +1,18 @@
package com.todoroo.astrid.subtasks
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.data.TaskListMetadata
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class SubtasksHelperTest : SubtasksTestCase() {
@Before
override fun setUp() {
super.setUp()
createTasks()
@ -53,8 +55,6 @@ class SubtasksHelperTest : SubtasksTestCase() {
assertEquals(EXPECTED_REMOTE, mapped)
}
override fun inject(component: TestComponent) = component.inject(this)
companion object {
private val EXPECTED_ORDER = arrayOf("-1", "1", "2", "3", "4", "5", "6")
private val EXPECTED_REMOTE = "[\"-1\", [\"6\", \"4\", [\"3\", \"1\"]], \"2\", \"5\"]".replace("\\s".toRegex(), "")

@ -1,13 +1,15 @@
package com.todoroo.astrid.subtasks
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.data.TaskListMetadata
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class SubtasksMovingTest : SubtasksTestCase() {
private lateinit var A: Task
private lateinit var B: Task
@ -16,6 +18,7 @@ class SubtasksMovingTest : SubtasksTestCase() {
private lateinit var E: Task
private lateinit var F: Task
@Before
override fun setUp() {
super.setUp()
createTasks()
@ -33,8 +36,6 @@ class SubtasksMovingTest : SubtasksTestCase() {
expectParentAndPosition(F, null, 2)
}
override fun inject(component: TestComponent) = component.inject(this)
private fun createTasks() {
A = createTask("A")
B = createTask("B")

@ -5,7 +5,6 @@ import com.todoroo.astrid.data.Task
import org.tasks.data.TagData
import org.tasks.data.TagDataDao
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import javax.inject.Inject
open class NewSyncTestCase : InjectingTestCase() {
@ -27,8 +26,6 @@ open class NewSyncTestCase : InjectingTestCase() {
return tag
}
override fun inject(component: TestComponent) = component.inject(this)
companion object {
private const val SYNC_TASK_TITLE = "new title"
private const val SYNC_TASK_IMPORTANCE = Task.Priority.MEDIUM

@ -1,13 +1,16 @@
package com.todoroo.astrid.sync
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertNotEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.injection.ProductionModule
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class SyncModelTest : NewSyncTestCase() {
@Test
fun testCreateTaskMakesUuid() {
val task = createTask()

@ -0,0 +1,13 @@
package org.tasks
import android.app.Application
import android.content.Context
import androidx.test.runner.AndroidJUnitRunner
import dagger.hilt.android.testing.HiltTestApplication
@Suppress("unused")
class TestRunner : AndroidJUnitRunner() {
override fun newApplication(cl: ClassLoader?, name: String?, context: Context?): Application {
return super.newApplication(cl, HiltTestApplication::class.java.name, context)
}
}

@ -6,8 +6,6 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.TestUtilities.newPreferences
import java.security.KeyManagementException
import java.security.NoSuchAlgorithmException
@RunWith(AndroidJUnit4::class)
class CaldavClientTest {

@ -1,25 +1,25 @@
package org.tasks.data
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.natpryce.makeiteasy.PropertyValue
import com.todoroo.andlib.utility.DateUtilities.now
import com.todoroo.astrid.dao.TaskDao
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.Freeze.Companion.freezeAt
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.TaskContainerMaker
import org.tasks.makers.TaskContainerMaker.CREATED
import org.tasks.time.DateTime
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class CaldavDaoShiftTests : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var caldavDao: CaldavDao
@ -163,6 +163,4 @@ class CaldavDaoShiftTests : InjectingTestCase() {
result.cd_remote_parent = remoteParent
return result
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,15 +1,14 @@
package org.tasks.data
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.helper.UUIDHelper
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.*
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.TagDataMaker.newTagData
import org.tasks.makers.TagMaker.TAGDATA
import org.tasks.makers.TagMaker.TASK
@ -20,7 +19,8 @@ import org.tasks.makers.TaskMaker.newTask
import org.tasks.time.DateTime
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class CaldavDaoTests : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var tagDao: TagDao
@ -143,6 +143,4 @@ class CaldavDaoTests : InjectingTestCase() {
assertEquals(order, sortOrder)
}
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,16 +1,16 @@
package org.tasks.data
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.helper.UUIDHelper
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.*
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.data.CaldavDao.Companion.LOCAL
import org.tasks.date.DateTimeUtils.newDateTime
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.TaskMaker.CREATION_TIME
import org.tasks.makers.TaskMaker.DELETION_TIME
import org.tasks.makers.TaskMaker.newTask
@ -18,7 +18,8 @@ import org.tasks.time.DateTime
import org.tasks.time.DateTimeUtils
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class DeletionDaoTests : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var deletionDao: DeletionDao
@ -89,6 +90,4 @@ class DeletionDaoTests : InjectingTestCase() {
assertNotNull(taskDao.fetch(task.id))
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,15 +1,15 @@
package org.tasks.data
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.astrid.dao.TaskDao
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.GoogleTaskMaker.LIST
import org.tasks.makers.GoogleTaskMaker.PARENT
import org.tasks.makers.GoogleTaskMaker.REMOTE_ID
@ -19,7 +19,8 @@ import org.tasks.makers.GtaskListMaker.newGtaskList
import org.tasks.makers.TaskMaker.newTask
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class GoogleTaskDaoTests : InjectingTestCase() {
@Inject lateinit var googleTaskListDao: GoogleTaskListDao
@Inject lateinit var googleTaskDao: GoogleTaskDao
@ -177,6 +178,4 @@ class GoogleTaskDaoTests : InjectingTestCase() {
result.gt_parent = googleTask.parent
return result
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,20 +1,20 @@
package org.tasks.data
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.*
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.GoogleTaskListMaker.ACCOUNT
import org.tasks.makers.GoogleTaskListMaker.REMOTE_ID
import org.tasks.makers.GoogleTaskListMaker.newGoogleTaskList
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class GoogleTaskListDaoTest : InjectingTestCase() {
@Inject lateinit var googleTaskListDao: GoogleTaskListDao
@Test
@ -49,6 +49,4 @@ class GoogleTaskListDaoTest : InjectingTestCase() {
assertNull(googleTaskListDao.findExistingList("1234"))
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,18 +1,18 @@
package org.tasks.data
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.andlib.utility.DateUtilities.now
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.*
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.Freeze
import org.tasks.caldav.GeoUtils.toLikeString
import org.tasks.date.DateTimeUtils.newDateTime
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.GeofenceMaker.ARRIVAL
import org.tasks.makers.GeofenceMaker.DEPARTURE
import org.tasks.makers.GeofenceMaker.PLACE
@ -30,9 +30,9 @@ import org.tasks.makers.TaskMaker.SNOOZE_TIME
import org.tasks.makers.TaskMaker.newTask
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class LocationDaoTest : InjectingTestCase() {
@Inject lateinit var locationDao: LocationDao
@Inject lateinit var taskDao: TaskDao
@ -228,7 +228,5 @@ class LocationDaoTest : InjectingTestCase() {
assertEquals(listOf(geofence), locationDao.getDepartureGeofences(place.uid!!, now()))
}
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,18 +1,18 @@
package org.tasks.data
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.helper.UUIDHelper
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.R
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.GoogleTaskListMaker.REMOTE_ID
import org.tasks.makers.GoogleTaskListMaker.newGoogleTaskList
import org.tasks.makers.GoogleTaskMaker.LIST
@ -26,9 +26,9 @@ import org.tasks.makers.TaskMaker.UUID
import org.tasks.preferences.Preferences
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class ManualGoogleTaskQueryTest : InjectingTestCase() {
@Inject lateinit var googleTaskDao: GoogleTaskDao
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var preferences: Preferences
@ -106,6 +106,4 @@ class ManualGoogleTaskQueryTest : InjectingTestCase() {
private fun query(): List<TaskContainer> = taskDao.fetchTasks {
TaskListQuery.getQuery(preferences, filter, it)
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,14 +1,14 @@
package org.tasks.data
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.natpryce.makeiteasy.MakeItEasy.with
import com.todoroo.astrid.dao.TaskDao
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.makers.TagDataMaker.NAME
import org.tasks.makers.TagDataMaker.newTagData
import org.tasks.makers.TagMaker.TAGDATA
@ -19,7 +19,8 @@ import org.tasks.makers.TaskMaker.ID
import org.tasks.makers.TaskMaker.newTask
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class TagDataDaoTest : InjectingTestCase() {
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var tagDao: TagDao
@ -136,6 +137,4 @@ class TagDataDaoTest : InjectingTestCase() {
tagDao.insert(newTag(with(TASK, task), with(TAGUID, tag)))
}
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -1,20 +1,16 @@
package org.tasks.injection
import android.content.Context
import androidx.test.core.app.ApplicationProvider
import dagger.hilt.android.testing.HiltAndroidRule
import org.junit.Before
import timber.log.Timber
import org.junit.Rule
abstract class InjectingTestCase {
@get:Rule
var hiltRule = HiltAndroidRule(this)
@Before
open fun setUp() {
Thread.setDefaultUncaughtExceptionHandler { _, e: Throwable? -> Timber.e(e) }
val context = ApplicationProvider.getApplicationContext<Context>()
val component = DaggerTestComponent.builder()
.applicationModule(ApplicationModule(context))
.testModule(TestModule()).build()
inject(component)
hiltRule.inject()
}
protected abstract fun inject(component: TestComponent)
}

@ -1,52 +0,0 @@
package org.tasks.injection
import com.todoroo.astrid.adapter.*
import com.todoroo.astrid.alarms.AlarmJobServiceTest
import com.todoroo.astrid.dao.TaskDaoTests
import com.todoroo.astrid.gtasks.GtasksListServiceTest
import com.todoroo.astrid.gtasks.GtasksMetadataServiceTest
import com.todoroo.astrid.model.TaskTest
import com.todoroo.astrid.reminders.ReminderServiceTest
import com.todoroo.astrid.repeats.RepeatTaskHelperTest
import com.todoroo.astrid.service.QuickAddMarkupTest
import com.todoroo.astrid.service.TaskMoverTest
import com.todoroo.astrid.service.TitleParserTest
import com.todoroo.astrid.subtasks.SubtasksHelperTest
import com.todoroo.astrid.subtasks.SubtasksMovingTest
import com.todoroo.astrid.sync.NewSyncTestCase
import dagger.Component
import org.tasks.data.*
import org.tasks.jobs.BackupServiceTests
import javax.inject.Singleton
@Singleton
@Component(modules = [TestModule::class])
interface TestComponent : ApplicationComponent {
fun inject(tests: GtasksListServiceTest)
fun inject(tests: ReminderServiceTest)
fun inject(tests: TaskTest)
fun inject(tests: TaskDaoTests)
fun inject(tests: NewSyncTestCase)
fun inject(tests: SubtasksMovingTest)
fun inject(tests: SubtasksHelperTest)
fun inject(tests: QuickAddMarkupTest)
fun inject(tests: TitleParserTest)
fun inject(tests: BackupServiceTests)
fun inject(tests: AlarmJobServiceTest)
fun inject(tests: RepeatTaskHelperTest)
fun inject(tests: GtasksMetadataServiceTest)
fun inject(tests: DeletionDaoTests)
fun inject(tests: GoogleTaskDaoTests)
fun inject(tests: TagDataDaoTest)
fun inject(tests: CaldavDaoTests)
fun inject(tests: TaskMoverTest)
fun inject(tests: LocationDaoTest)
fun inject(tests: GoogleTaskListDaoTest)
fun inject(tests: CaldavTaskAdapterTest)
fun inject(tests: ManualGoogleTaskQueryTest)
fun inject(tests: CaldavDaoShiftTests)
fun inject(tests: CaldavManualSortTaskAdapterTest)
fun inject(tests: GoogleTaskManualSortAdapterTest)
fun inject(tests: OfflineSubtaskTest)
fun inject(tests: NonRecursiveQueryTest)
}

@ -5,13 +5,19 @@ import androidx.room.Room
import com.todoroo.astrid.dao.Database
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ApplicationComponent
import dagger.hilt.android.qualifiers.ApplicationContext
import org.mockito.Mockito.mock
import org.tasks.TestUtilities
import org.tasks.jobs.WorkManager
import org.tasks.preferences.PermissionChecker
import org.tasks.preferences.PermissivePermissionChecker
import org.tasks.preferences.Preferences
import javax.inject.Singleton
@Module(includes = [ApplicationModule::class])
@Module
@InstallIn(ApplicationComponent::class)
class TestModule {
@Provides
@Singleton
@ -30,4 +36,7 @@ class TestModule {
fun getPreferences(@ApplicationContext context: Context): Preferences {
return TestUtilities.newPreferences(context)
}
@Provides
fun getWorkManager(): WorkManager = mock(WorkManager::class.java)
}

@ -7,31 +7,34 @@ package org.tasks.jobs
import android.net.Uri
import androidx.test.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import dagger.hilt.android.testing.HiltAndroidTest
import dagger.hilt.android.testing.UninstallModules
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.tasks.R
import org.tasks.backup.TasksJsonExporter
import org.tasks.backup.TasksJsonExporter.ExportType
import org.tasks.injection.InjectingTestCase
import org.tasks.injection.TestComponent
import org.tasks.injection.ProductionModule
import org.tasks.preferences.Preferences
import java.io.File
import java.io.IOException
import javax.inject.Inject
@RunWith(AndroidJUnit4::class)
@UninstallModules(ProductionModule::class)
@HiltAndroidTest
class BackupServiceTests : InjectingTestCase() {
@Inject lateinit var jsonExporter: TasksJsonExporter
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var preferences: Preferences
private lateinit var temporaryDirectory: File
@Before
override fun setUp() {
super.setUp()
temporaryDirectory = try {
@ -55,8 +58,6 @@ class BackupServiceTests : InjectingTestCase() {
taskDao.createNew(task)
}
override fun inject(component: TestComponent) = component.inject(this)
@After
fun tearDown() {
for (file in temporaryDirectory.listFiles()!!) {
@ -73,6 +74,6 @@ class BackupServiceTests : InjectingTestCase() {
// assert file created
val files = temporaryDirectory.listFiles()
assertEquals(1, files!!.size)
assertTrue(files[0].name.matches(Regex(BackupWork.BACKUP_FILE_NAME_REGEX)))
assertTrue(files[0].name.matches(BackupWork.BACKUP_FILE_NAME_REGEX))
}
}

@ -7,7 +7,6 @@ import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito
import org.tasks.Freeze
import org.tasks.notifications.Throttle
import org.tasks.time.DateTimeUtils
@RunWith(AndroidJUnit4::class)

@ -1,7 +1,7 @@
package org.tasks.preferences
import android.content.Context
import org.tasks.injection.ApplicationContext
import dagger.hilt.android.qualifiers.ApplicationContext
class PermissivePermissionChecker(@ApplicationContext context: Context) : PermissionChecker(context) {
override fun canAccessCalendars() = true

@ -11,8 +11,8 @@ import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin
import com.facebook.flipper.plugins.network.NetworkFlipperPlugin
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin
import com.facebook.soloader.SoLoader
import dagger.hilt.android.qualifiers.ApplicationContext
import leakcanary.AppWatcher
import org.tasks.injection.ApplicationContext
import org.tasks.preferences.Preferences
import timber.log.Timber
import timber.log.Timber.DebugTree

@ -6,8 +6,8 @@ import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor
import com.facebook.flipper.plugins.network.NetworkFlipperPlugin
import com.google.api.client.http.HttpRequest
import com.google.api.client.http.HttpResponse
import dagger.hilt.android.qualifiers.ApplicationContext
import okhttp3.OkHttpClient
import org.tasks.injection.ApplicationContext
import java.io.IOException
import javax.inject.Inject

@ -4,14 +4,15 @@ import android.os.Bundle
import androidx.annotation.StringRes
import androidx.preference.Preference
import at.bitfire.cert4android.CustomCertManager.Companion.resetCertificates
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.billing.BillingClient
import org.tasks.billing.Inventory
import org.tasks.injection.FragmentComponent
import org.tasks.injection.InjectingPreferenceFragment
import org.tasks.ui.Toaster
import javax.inject.Inject
@AndroidEntryPoint
class Debug : InjectingPreferenceFragment() {
@Inject lateinit var inventory: Inventory
@ -60,6 +61,4 @@ class Debug : InjectingPreferenceFragment() {
}
}
}
override fun inject(component: FragmentComponent) = component.inject(this)
}

@ -3,12 +3,17 @@ package org.tasks.injection
import android.content.Context
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ActivityComponent
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.android.scopes.ActivityScoped
import org.tasks.location.MapFragment
import org.tasks.location.MapboxMapFragment
import org.tasks.location.MapboxSearchProvider
import org.tasks.location.PlaceSearchProvider
@Module
@InstallIn(ActivityComponent::class)
class LocationModule {
@Provides
@ActivityScoped

@ -8,10 +8,10 @@ import com.crashlytics.android.Crashlytics
import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.remoteconfig.FirebaseRemoteConfig
import com.google.firebase.remoteconfig.ktx.remoteConfigSettings
import dagger.hilt.android.qualifiers.ApplicationContext
import io.fabric.sdk.android.Fabric
import org.tasks.R
import org.tasks.billing.BillingClientImpl
import org.tasks.injection.ApplicationContext
import org.tasks.jobs.WorkManager
import org.tasks.preferences.Preferences
import timber.log.Timber

@ -16,13 +16,13 @@ import com.android.billingclient.api.Purchase.PurchasesResult;
import com.android.billingclient.api.PurchasesUpdatedListener;
import com.google.common.base.Joiner;
import com.google.common.collect.Iterables;
import dagger.hilt.android.qualifiers.ApplicationContext;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import java.util.List;
import org.tasks.BuildConfig;
import org.tasks.analytics.Firebase;
import org.tasks.injection.ApplicationContext;
import timber.log.Timber;
@SuppressWarnings("all")

@ -1,8 +1,8 @@
package org.tasks.billing
import android.content.Context
import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.R
import org.tasks.injection.ApplicationContext
import timber.log.Timber
import java.io.IOException
import javax.inject.Inject

@ -5,6 +5,7 @@ import android.content.Context
import android.widget.Toast
import com.google.android.gms.common.ConnectionResult
import com.google.android.gms.common.GoogleApiAvailability
import dagger.hilt.android.qualifiers.ApplicationContext
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
@ -13,7 +14,6 @@ import io.reactivex.schedulers.Schedulers
import org.tasks.R
import org.tasks.data.GoogleTaskListDao
import org.tasks.data.LocationDao
import org.tasks.injection.ApplicationContext
import org.tasks.preferences.Preferences
import timber.log.Timber
import javax.inject.Inject

@ -3,12 +3,17 @@ package org.tasks.injection
import android.content.Context
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ActivityComponent
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.android.scopes.ActivityScoped
import org.tasks.billing.Inventory
import org.tasks.gtasks.PlayServices
import org.tasks.location.*
import org.tasks.preferences.Preferences
@Module
@InstallIn(ActivityComponent::class)
internal class LocationModule {
@Provides
@ActivityScoped

@ -7,10 +7,10 @@ import android.content.Intent
import com.google.android.gms.location.Geofence
import com.google.android.gms.location.GeofencingRequest
import com.google.android.gms.location.LocationServices
import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.data.LocationDao
import org.tasks.data.MergedGeofence
import org.tasks.data.Place
import org.tasks.injection.ApplicationContext
import org.tasks.preferences.PermissionChecker
import timber.log.Timber
import javax.inject.Inject

@ -7,16 +7,17 @@ import com.google.android.gms.location.Geofence
import com.google.android.gms.location.GeofencingEvent
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.reminders.ReminderService
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.Notifier
import org.tasks.data.LocationDao
import org.tasks.data.Place
import org.tasks.injection.ApplicationComponent
import org.tasks.injection.InjectingJobIntentService
import org.tasks.notifications.Notification
import org.tasks.time.DateTimeUtils
import timber.log.Timber
import javax.inject.Inject
@AndroidEntryPoint
class GeofenceTransitionsIntentService : InjectingJobIntentService() {
@Inject lateinit var locationDao: LocationDao
@Inject lateinit var notifier: Notifier
@ -69,8 +70,6 @@ class GeofenceTransitionsIntentService : InjectingJobIntentService() {
return notification
}
override fun inject(component: ApplicationComponent) = component.inject(this)
class Broadcast : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
enqueueWork(

@ -17,16 +17,17 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import dagger.hilt.android.AndroidEntryPoint;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.ThemedInjectingAppCompatActivity;
import org.tasks.preferences.Preferences;
import org.tasks.preferences.beast.BeastModeRecyclerAdapter;
@AndroidEntryPoint
public class BeastModePreferences extends ThemedInjectingAppCompatActivity
implements Toolbar.OnMenuItemClickListener {
@ -102,11 +103,6 @@ public class BeastModePreferences extends ThemedInjectingAppCompatActivity
adapter.applyToRecyclerView(recyclerView);
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
@Override
public boolean onMenuItemClick(MenuItem item) {
if (item.getItemId() == R.id.menu_reset_to_defaults) {

@ -17,7 +17,6 @@ import android.view.inputmethod.InputMethodManager
import androidx.appcompat.view.ActionMode
import androidx.drawerlayout.widget.DrawerLayout.SimpleDrawerListener
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.ViewModelProvider
import com.todoroo.andlib.utility.AndroidUtilities
import com.todoroo.astrid.activity.TaskEditFragment.TaskEditFragmentCallbackHandler
import com.todoroo.astrid.activity.TaskListFragment.TaskListFragmentCallbackHandler
@ -26,6 +25,7 @@ import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import com.todoroo.astrid.service.TaskCreator
import com.todoroo.astrid.timers.TimerControlSet.TimerControlSetCallback
import dagger.hilt.android.AndroidEntryPoint
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
@ -42,7 +42,6 @@ import org.tasks.dialogs.WhatsNewDialog
import org.tasks.filters.PlaceFilter
import org.tasks.fragments.CommentBarFragment.CommentBarFragmentCallback
import org.tasks.gtasks.PlayServices
import org.tasks.injection.ActivityComponent
import org.tasks.injection.InjectingAppCompatActivity
import org.tasks.intents.TaskIntents
import org.tasks.location.LocationPickerActivity
@ -57,9 +56,9 @@ import org.tasks.ui.DeadlineControlSet.DueDateChangeListener
import org.tasks.ui.EmptyTaskEditFragment.Companion.newEmptyTaskEditFragment
import org.tasks.ui.ListFragment.OnListChanged
import org.tasks.ui.NavigationDrawerFragment
import org.tasks.ui.TaskListViewModel
import javax.inject.Inject
@AndroidEntryPoint
class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandler, OnListChanged, TimerControlSetCallback, DueDateChangeListener, TaskEditFragmentCallbackHandler, CommentBarFragmentCallback, SortDialogCallback {
@Inject lateinit var preferences: Preferences
@Inject lateinit var repeatConfirmationReceiver: RepeatConfirmationReceiver
@ -83,8 +82,7 @@ class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandl
*/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val viewModel = ViewModelProvider(this).get(TaskListViewModel::class.java)
component.inject(viewModel)
theme.applyTheme(this)
currentNightMode = nightMode
currentPro = inventory.hasPro()
binding = TaskListActivityBinding.inflate(layoutInflater)
@ -301,11 +299,6 @@ class MainActivity : InjectingAppCompatActivity(), TaskListFragmentCallbackHandl
private val nightMode: Int
get() = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
override fun inject(component: ActivityComponent) {
component.inject(this)
theme.applyTheme(this)
}
override fun onPause() {
super.onPause()
localBroadcastManager.unregisterReceiver(repeatConfirmationReceiver)

@ -16,12 +16,12 @@ import androidx.core.app.TaskStackBuilder;
import com.google.common.io.Files;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskCreator;
import dagger.hilt.android.AndroidEntryPoint;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.util.ArrayList;
import javax.inject.Inject;
import org.tasks.data.TaskAttachment;
import org.tasks.files.FileHelper;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.ApplicationContext;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.Preferences;
import timber.log.Timber;
@ -30,6 +30,7 @@ import timber.log.Timber;
* @author joshuagross
* <p>Create a new task based on incoming links from the "share" menu
*/
@AndroidEntryPoint
public final class ShareLinkActivity extends InjectingAppCompatActivity {
@Inject @ApplicationContext Context context;
@ -49,11 +50,6 @@ public final class ShareLinkActivity extends InjectingAppCompatActivity {
readIntent();
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);

@ -2,15 +2,16 @@ package com.todoroo.astrid.activity;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.service.TaskCreator;
import dagger.hilt.android.AndroidEntryPoint;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
import javax.inject.Inject;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.intents.TaskIntents;
@AndroidEntryPoint
public class TaskEditActivity extends InjectingAppCompatActivity {
private static final String TOKEN_ID = "id";
@ -49,9 +50,4 @@ public class TaskEditActivity extends InjectingAppCompatActivity {
disposables.dispose();
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
}

@ -34,6 +34,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.google.android.material.appbar.AppBarLayout;
@ -46,6 +47,7 @@ import com.todoroo.astrid.notes.CommentsController;
import com.todoroo.astrid.repeats.RepeatControlSet;
import com.todoroo.astrid.service.TaskDeleter;
import com.todoroo.astrid.timers.TimerPlugin;
import dagger.hilt.android.AndroidEntryPoint;
import io.reactivex.Completable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
@ -59,16 +61,14 @@ import org.tasks.databinding.FragmentTaskEditBinding;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.dialogs.Linkify;
import org.tasks.fragments.TaskEditControlSetFragmentManager;
import org.tasks.injection.ActivityContext;
import org.tasks.injection.FragmentComponent;
import org.tasks.injection.InjectingFragment;
import org.tasks.notifications.NotificationManager;
import org.tasks.preferences.Preferences;
import org.tasks.themes.ThemeColor;
import org.tasks.ui.SubtaskControlSet;
import org.tasks.ui.TaskEditControlFragment;
public final class TaskEditFragment extends InjectingFragment
@AndroidEntryPoint
public final class TaskEditFragment extends Fragment
implements Toolbar.OnMenuItemClickListener {
static final String TAG_TASKEDIT_FRAGMENT = "taskedit_fragment";
@ -81,7 +81,7 @@ public final class TaskEditFragment extends InjectingFragment
@Inject TaskDeleter taskDeleter;
@Inject NotificationManager notificationManager;
@Inject DialogBuilder dialogBuilder;
@Inject @ActivityContext Context context;
@Inject Activity context;
@Inject TaskEditControlSetFragmentManager taskEditControlSetFragmentManager;
@Inject CommentsController commentsController;
@Inject Preferences preferences;
@ -118,11 +118,6 @@ public final class TaskEditFragment extends InjectingFragment
outState.putBoolean(EXTRA_COMPLETED, completed);
}
@Override
protected void inject(FragmentComponent component) {
component.inject(this);
}
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

@ -19,6 +19,7 @@ import androidx.appcompat.view.ActionMode
import androidx.appcompat.widget.SearchView
import androidx.appcompat.widget.Toolbar
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.paging.PagedList
@ -44,6 +45,7 @@ import com.todoroo.astrid.service.TaskDuplicator
import com.todoroo.astrid.service.TaskMover
import com.todoroo.astrid.timers.TimerPlugin
import com.todoroo.astrid.utility.Flags
import dagger.hilt.android.AndroidEntryPoint
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
@ -63,8 +65,6 @@ import org.tasks.dialogs.DateTimePicker.Companion.newDateTimePicker
import org.tasks.dialogs.DialogBuilder
import org.tasks.dialogs.SortDialog
import org.tasks.filters.PlaceFilter
import org.tasks.injection.FragmentComponent
import org.tasks.injection.InjectingFragment
import org.tasks.intents.TaskIntents
import org.tasks.notifications.NotificationManager
import org.tasks.preferences.Device
@ -84,7 +84,8 @@ import java.util.concurrent.TimeUnit
import javax.inject.Inject
import kotlin.math.max
class TaskListFragment : InjectingFragment(), OnRefreshListener, Toolbar.OnMenuItemClickListener, MenuItem.OnActionExpandListener, SearchView.OnQueryTextListener, ActionMode.Callback {
@AndroidEntryPoint
class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickListener, MenuItem.OnActionExpandListener, SearchView.OnQueryTextListener, ActionMode.Callback {
private val refreshReceiver = RefreshReceiver()
private var disposables: CompositeDisposable? = null
@ -176,8 +177,6 @@ class TaskListFragment : InjectingFragment(), OnRefreshListener, Toolbar.OnMenuI
callbacks = activity as TaskListFragmentCallbackHandler
}
public override fun inject(component: FragmentComponent) = component.inject(this)
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
val selectedTaskIds: List<Long> = taskAdapter.getSelected()

@ -10,13 +10,13 @@ import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task.Companion.isUuidEmpty
import com.todoroo.astrid.subtasks.SubtasksFilterUpdater
import com.todoroo.astrid.subtasks.SubtasksHelper
import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.LocalBroadcastManager
import org.tasks.Strings.isNullOrEmpty
import org.tasks.data.CaldavDao
import org.tasks.data.GoogleTaskDao
import org.tasks.data.TaskListMetadata
import org.tasks.data.TaskListMetadataDao
import org.tasks.injection.ApplicationContext
import org.tasks.preferences.Preferences
import javax.inject.Inject

@ -17,6 +17,7 @@ import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.timers.TimerPlugin;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -25,7 +26,6 @@ import javax.inject.Inject;
import org.tasks.R;
import org.tasks.filters.RecentlyModifiedFilter;
import org.tasks.filters.SortableFilter;
import org.tasks.injection.ApplicationContext;
import org.tasks.preferences.Preferences;
import org.tasks.themes.CustomIcons;

@ -7,7 +7,6 @@ package com.todoroo.astrid.files
import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
@ -19,21 +18,21 @@ import android.widget.TextView
import butterknife.BindView
import butterknife.OnClick
import com.todoroo.astrid.data.Task
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.data.TaskAttachment
import org.tasks.data.TaskAttachmentDao
import org.tasks.dialogs.AddAttachmentDialog
import org.tasks.dialogs.DialogBuilder
import org.tasks.files.FileHelper
import org.tasks.injection.ActivityContext
import org.tasks.injection.FragmentComponent
import org.tasks.preferences.Preferences
import org.tasks.ui.TaskEditControlFragment
import java.util.*
import javax.inject.Inject
@AndroidEntryPoint
class FilesControlSet : TaskEditControlFragment() {
@Inject @ActivityContext lateinit var activity: Context
@Inject lateinit var activity: Activity
@Inject lateinit var taskAttachmentDao: TaskAttachmentDao
@Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var preferences: Preferences
@ -128,8 +127,6 @@ class FilesControlSet : TaskEditControlFragment() {
}
}
override fun inject(component: FragmentComponent) = component.inject(this)
@SuppressLint("NewApi")
private fun showFile(m: TaskAttachment) {
FileHelper.startActionView(requireActivity(), m.parseUri())

@ -6,6 +6,7 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import com.todoroo.andlib.utility.DateUtilities;
import dagger.hilt.android.AndroidEntryPoint;
import java.util.List;
import javax.inject.Inject;
import org.tasks.BuildConfig;
@ -14,12 +15,12 @@ import org.tasks.calendars.AndroidCalendarEvent;
import org.tasks.calendars.AndroidCalendarEventAttendee;
import org.tasks.calendars.CalendarEventProvider;
import org.tasks.gtasks.GoogleAccountManager;
import org.tasks.injection.ApplicationComponent;
import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.preferences.Preferences;
import org.tasks.scheduling.CalendarNotificationIntentService;
import timber.log.Timber;
@AndroidEntryPoint
public class CalendarAlarmReceiver extends InjectingBroadcastReceiver {
public static final int REQUEST_CODE_CAL_REMINDER = 100;
@ -63,11 +64,6 @@ public class CalendarAlarmReceiver extends InjectingBroadcastReceiver {
}
}
@Override
protected void inject(ApplicationComponent component) {
component.inject(this);
}
private void showCalReminder(Context context, final long eventId, final boolean fromPostpone) {
final AndroidCalendarEvent event = calendarEventProvider.getEvent(eventId);
if (event == null) {

@ -9,10 +9,10 @@ import android.view.View.OnClickListener;
import android.widget.TextView;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.activity.MainActivity;
import dagger.hilt.android.AndroidEntryPoint;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.ThemedInjectingAppCompatActivity;
import org.tasks.preferences.MainPreferences;
import org.tasks.preferences.Preferences;
@ -20,6 +20,7 @@ import org.tasks.scheduling.AlarmManager;
import org.tasks.scheduling.CalendarNotificationIntentService;
import org.tasks.themes.ThemeAccent;
@AndroidEntryPoint
public class CalendarReminderActivity extends ThemedInjectingAppCompatActivity {
public static final String TOKEN_EVENT_ID = "eventId";
@ -97,11 +98,6 @@ public class CalendarReminderActivity extends ThemedInjectingAppCompatActivity {
addListeners();
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
private void setupUi() {
((TextView) findViewById(R.id.reminder_title)).setText(getString(R.string.CRA_title));

@ -17,12 +17,12 @@ import android.text.format.Time;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.util.TimeZone;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.calendars.AndroidCalendarEvent;
import org.tasks.calendars.CalendarEventProvider;
import org.tasks.injection.ApplicationContext;
import org.tasks.preferences.PermissionChecker;
import org.tasks.preferences.Preferences;
import timber.log.Timber;

@ -34,10 +34,6 @@ public class GtasksListService {
this.localBroadcastManager = localBroadcastManager;
}
public GoogleTaskList getList(long id) {
return googleTaskListDao.getById(id);
}
/**
* Reads in remote list information and updates local list objects.
*
@ -89,8 +85,4 @@ public class GtasksListService {
localBroadcastManager.broadcastRefreshList();
}
public GoogleTaskList getList(String listId) {
return googleTaskListDao.getByRemoteId(listId);
}
}

@ -13,12 +13,12 @@ import com.google.api.services.tasks.TasksScopes;
import com.google.api.services.tasks.model.Task;
import com.google.api.services.tasks.model.TaskList;
import com.google.api.services.tasks.model.TaskLists;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.io.IOException;
import javax.inject.Inject;
import org.tasks.BuildConfig;
import org.tasks.DebugNetworkInterceptor;
import org.tasks.gtasks.GoogleAccountManager;
import org.tasks.injection.ApplicationContext;
import org.tasks.preferences.Preferences;
import timber.log.Timber;

@ -13,13 +13,13 @@ import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.NonNull;
import com.todoroo.andlib.utility.DialogUtilities;
import dagger.hilt.android.AndroidEntryPoint;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.data.GoogleTaskAccount;
import org.tasks.data.GoogleTaskListDao;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.gtasks.GoogleAccountManager;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.play.AuthResultHandler;
import org.tasks.preferences.ActivityPermissionRequestor;
@ -31,6 +31,7 @@ import org.tasks.preferences.PermissionRequestor;
*
* @author Sam Bosley
*/
@AndroidEntryPoint
public class GtasksLoginActivity extends InjectingAppCompatActivity {
public static final String EXTRA_ERROR = "extra_error";
@ -49,11 +50,6 @@ public class GtasksLoginActivity extends InjectingAppCompatActivity {
}
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
private void chooseAccount() {
Intent chooseAccountIntent =
android.accounts.AccountManager.newChooseAccountIntent(

@ -6,6 +6,7 @@
package com.todoroo.astrid.provider;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.Context;
import android.content.UriMatcher;
@ -17,19 +18,19 @@ import androidx.annotation.NonNull;
import com.google.common.base.Joiner;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import dagger.Lazy;
import dagger.hilt.EntryPoint;
import dagger.hilt.InstallIn;
import dagger.hilt.android.EntryPointAccessors;
import dagger.hilt.android.components.ApplicationComponent;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import javax.inject.Inject;
import org.tasks.BuildConfig;
import org.tasks.R;
import org.tasks.data.TagDao;
import org.tasks.data.TagData;
import org.tasks.data.TagDataDao;
import org.tasks.injection.ApplicationComponent;
import org.tasks.injection.InjectingContentProvider;
import timber.log.Timber;
/**
@ -40,7 +41,15 @@ import timber.log.Timber;
*
* @author Tim Su <tim@todoroo.com>
*/
public class Astrid2TaskProvider extends InjectingContentProvider {
public class Astrid2TaskProvider extends ContentProvider {
@EntryPoint
@InstallIn(ApplicationComponent.class)
interface Astrid2TaskProviderEntryPoint {
TagDataDao getTagDataDao();
TaskDao getTaskDao();
TagDao getTagDao();
}
private static final String AUTHORITY = BuildConfig.APPLICATION_ID + ".tasksprovider";
@ -81,10 +90,6 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
URI_MATCHER.addURI(AUTHORITY, "tags", URI_TAGS);
}
@Inject Lazy<TagDataDao> tagDataDao;
@Inject Lazy<TaskDao> taskDao;
@Inject Lazy<TagDao> tagDao;
public static void notifyDatabaseModification(Context context) {
try {
context.getContentResolver().notifyChange(CONTENT_URI, null);
@ -110,13 +115,12 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
@Override
public boolean onCreate() {
super.onCreate();
return false;
return true;
}
@Override
protected void inject(ApplicationComponent component) {
component.inject(this);
private Astrid2TaskProviderEntryPoint hilt() {
return EntryPointAccessors.fromApplication(
getContext().getApplicationContext(), Astrid2TaskProviderEntryPoint.class);
}
/**
@ -125,7 +129,7 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
* @return two-column cursor: tag id (string) and tag name
*/
private Cursor getTags() {
List<TagData> tags = tagDataDao.get().tagDataOrderedByName();
List<TagData> tags = hilt().getTagDataDao().tagDataOrderedByName();
MatrixCursor ret = new MatrixCursor(TAGS_FIELD_LIST);
@ -170,7 +174,7 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
*/
private Cursor getTasks() {
MatrixCursor ret = new MatrixCursor(TASK_FIELD_LIST);
List<Task> tasks = taskDao.get().getAstrid2TaskProviderTasks();
List<Task> tasks = hilt().getTaskDao().getAstrid2TaskProviderTasks();
for (Task task : tasks) {
String taskTags = getTagsAsString(task.getId(), TAG_SEPARATOR);
@ -233,6 +237,6 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
* @return empty string if no tags, otherwise string
*/
private String getTagsAsString(long taskId, String separator) {
return Joiner.on(separator).join(tagDao.get().getTagNames(taskId));
return Joiner.on(separator).join(hilt().getTagDao().getTagNames(taskId));
}
}

@ -5,7 +5,7 @@
*/
package com.todoroo.astrid.repeats
import android.content.Context
import android.app.Activity
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@ -20,12 +20,11 @@ import com.google.ical.values.Frequency
import com.google.ical.values.RRule
import com.google.ical.values.WeekdayNum
import com.todoroo.astrid.data.Task
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.Strings.isNullOrEmpty
import org.tasks.analytics.Firebase
import org.tasks.dialogs.DialogBuilder
import org.tasks.injection.ActivityContext
import org.tasks.injection.FragmentComponent
import org.tasks.repeats.BasicRecurrenceDialog
import org.tasks.repeats.RepeatRuleToString
import org.tasks.themes.Theme
@ -42,10 +41,11 @@ import javax.inject.Inject
*
* @author Tim Su <tim></tim>@todoroo.com>
*/
@AndroidEntryPoint
class RepeatControlSet : TaskEditControlFragment() {
private val repeatTypes: MutableList<String> = ArrayList()
@Inject @ActivityContext lateinit var activity: Context
@Inject lateinit var activity: Activity
@Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var theme: Theme
@Inject lateinit var firebase: Firebase
@ -158,8 +158,6 @@ class RepeatControlSet : TaskEditControlFragment() {
outState.putLong(EXTRA_DUE_DATE, dueDate)
}
override fun inject(component: FragmentComponent) = component.inject(this)
override fun onRowClick() {
BasicRecurrenceDialog.newBasicRecurrenceDialog(this, rrule, dueDate)
.show(parentFragmentManager, FRAG_TAG_BASIC_RECURRENCE)

@ -7,11 +7,11 @@ import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.BuildConfig
import org.tasks.LocalBroadcastManager
import org.tasks.data.*
import org.tasks.db.DbUtils.dbchunk
import org.tasks.injection.ApplicationContext
import org.tasks.preferences.Preferences
import java.util.*
import javax.inject.Inject

@ -7,6 +7,7 @@ import com.google.common.collect.ListMultimap
import com.google.common.collect.Multimaps
import com.todoroo.astrid.api.GtasksFilter
import com.todoroo.astrid.dao.TaskDao
import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.R
import org.tasks.Strings.isNullOrEmpty
import org.tasks.caldav.iCalendar
@ -14,7 +15,6 @@ import org.tasks.caldav.iCalendar.Companion.fromVtodo
import org.tasks.caldav.iCalendar.Companion.getParent
import org.tasks.caldav.iCalendar.Companion.order
import org.tasks.data.*
import org.tasks.injection.ApplicationContext
import org.tasks.preferences.DefaultFilterProvider
import org.tasks.preferences.Preferences
import org.tasks.widget.AppWidgetManager

@ -9,6 +9,7 @@ import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.subtasks.SubtasksFilterUpdater.Node;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -18,7 +19,6 @@ import org.tasks.data.TagData;
import org.tasks.data.TagDataDao;
import org.tasks.data.TaskListMetadata;
import org.tasks.data.TaskListMetadataDao;
import org.tasks.injection.ApplicationContext;
import org.tasks.preferences.Preferences;
import timber.log.Timber;

@ -16,11 +16,11 @@ import butterknife.BindView
import com.google.android.material.chip.ChipGroup
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.data.Task
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.data.TagDao
import org.tasks.data.TagData
import org.tasks.data.TagDataDao
import org.tasks.injection.FragmentComponent
import org.tasks.tags.TagPickerActivity
import org.tasks.ui.ChipProvider
import org.tasks.ui.TaskEditControlFragment
@ -32,6 +32,7 @@ import javax.inject.Inject
*
* @author Tim Su <tim></tim>@todoroo.com>
*/
@AndroidEntryPoint
class TagsControlSet : TaskEditControlFragment() {
@Inject lateinit var tagDao: TagDao
@Inject lateinit var tagDataDao: TagDataDao
@ -129,8 +130,6 @@ class TagsControlSet : TaskEditControlFragment() {
}
}
override fun inject(component: FragmentComponent) = component.inject(this)
override fun requiresId() = true
companion object {

@ -6,7 +6,6 @@
package com.todoroo.astrid.timers
import android.app.Activity
import android.content.Context
import android.os.Bundle
import android.os.SystemClock
import android.text.format.DateFormat
@ -24,11 +23,10 @@ import butterknife.OnClick
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.data.Task
import com.todoroo.astrid.ui.TimeDurationControlSet
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.Strings.isNullOrEmpty
import org.tasks.dialogs.DialogBuilder
import org.tasks.injection.ActivityContext
import org.tasks.injection.FragmentComponent
import org.tasks.themes.Theme
import org.tasks.ui.TaskEditControlFragment
import javax.inject.Inject
@ -38,8 +36,9 @@ import javax.inject.Inject
*
* @author Tim Su <tim></tim>@todoroo.com>
*/
@AndroidEntryPoint
class TimerControlSet : TaskEditControlFragment() {
@Inject @ActivityContext lateinit var activity: Context
@Inject lateinit var activity: Activity
@Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var theme: Theme
@ -87,8 +86,6 @@ class TimerControlSet : TaskEditControlFragment() {
callback = activity as TimerControlSetCallback
}
override fun inject(component: FragmentComponent) = component.inject(this)
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt(EXTRA_ELAPSED, elapsed.timeDurationInSeconds)

@ -20,11 +20,11 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.utility.Constants;
import dagger.hilt.android.qualifiers.ApplicationContext;
import io.reactivex.Completable;
import io.reactivex.schedulers.Schedulers;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.injection.ApplicationContext;
import org.tasks.intents.TaskIntents;
import org.tasks.notifications.NotificationManager;

@ -6,7 +6,6 @@
package com.todoroo.astrid.ui
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
@ -18,12 +17,11 @@ import butterknife.BindView
import butterknife.OnClick
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.data.Task
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.activities.DateAndTimePickerActivity
import org.tasks.date.DateTimeUtils
import org.tasks.dialogs.MyTimePickerDialog
import org.tasks.injection.ActivityContext
import org.tasks.injection.FragmentComponent
import org.tasks.locale.Locale
import org.tasks.preferences.Preferences
import org.tasks.themes.ThemeBase
@ -37,10 +35,11 @@ import javax.inject.Inject
*
* @author Tim Su <tim></tim>@todoroo.com>
*/
@AndroidEntryPoint
class HideUntilControlSet : TaskEditControlFragment(), OnItemSelectedListener {
private val spinnerItems: MutableList<HideUntilValue> = ArrayList()
@Inject @ActivityContext lateinit var activity: Context
@Inject lateinit var activity: Activity
@Inject lateinit var themeBase: ThemeBase
@Inject lateinit var preferences: Preferences
@Inject lateinit var locale: Locale
@ -181,10 +180,6 @@ class HideUntilControlSet : TaskEditControlFragment(), OnItemSelectedListener {
outState.putInt(EXTRA_SELECTION, selection)
}
override fun inject(component: FragmentComponent) {
component.inject(this)
}
private fun updateSpinnerOptions(specificDate: Long) {
spinnerItems.clear()
// set up base values

@ -6,7 +6,6 @@
package com.todoroo.astrid.ui
import android.app.Activity
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.graphics.Paint
@ -22,14 +21,13 @@ import butterknife.OnClick
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.alarms.AlarmService
import com.todoroo.astrid.data.Task
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.activities.DateAndTimePickerActivity
import org.tasks.data.Alarm
import org.tasks.date.DateTimeUtils
import org.tasks.dialogs.DialogBuilder
import org.tasks.dialogs.MyTimePickerDialog
import org.tasks.injection.ActivityContext
import org.tasks.injection.FragmentComponent
import org.tasks.locale.Locale
import org.tasks.ui.TaskEditControlFragment
import java.util.*
@ -41,10 +39,11 @@ import javax.inject.Inject
*
* @author Tim Su <tim></tim>@todoroo.com>
*/
@AndroidEntryPoint
class ReminderControlSet : TaskEditControlFragment() {
private val alarms: MutableSet<Long> = LinkedHashSet()
@Inject @ActivityContext lateinit var activity: Context
@Inject lateinit var activity: Activity
@Inject lateinit var alarmService: AlarmService
@Inject lateinit var locale: Locale
@Inject lateinit var dialogBuilder: DialogBuilder
@ -291,8 +290,6 @@ class ReminderControlSet : TaskEditControlFragment() {
}
}
override fun inject(component: FragmentComponent) = component.inject(this)
companion object {
const val TAG = R.string.TEA_ctrl_reminders_pref
private const val REQUEST_NEW_ALARM = 12152

@ -4,11 +4,11 @@ import android.content.Context;
import android.media.AudioManager;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.util.HashMap;
import java.util.Locale;
import java.util.UUID;
import javax.inject.Inject;
import org.tasks.injection.ApplicationContext;
import timber.log.Timber;
/** @author Arne Jans */

@ -5,8 +5,8 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import com.todoroo.astrid.api.AstridApiConstants;
import dagger.hilt.android.qualifiers.ApplicationContext;
import javax.inject.Inject;
import org.tasks.injection.ApplicationContext;
import org.tasks.widget.AppWidgetManager;
public class LocalBroadcastManager {

@ -10,7 +10,7 @@ import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.reminders.ReminderService
import com.todoroo.astrid.voice.VoiceOutputAssistant
import org.tasks.injection.ApplicationContext
import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.notifications.AudioManager
import org.tasks.notifications.Notification
import org.tasks.notifications.NotificationManager

@ -3,7 +3,7 @@ package org.tasks
import android.content.Context
import android.content.pm.ShortcutManager
import com.todoroo.andlib.utility.AndroidUtilities
import org.tasks.injection.ApplicationContext
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject
import javax.inject.Singleton

@ -1,23 +1,25 @@
package org.tasks
import android.app.Application
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.util.Log
import androidx.core.app.JobIntentService
import androidx.hilt.work.HiltWorkerFactory
import androidx.work.Configuration
import com.todoroo.astrid.service.Upgrader
import dagger.Lazy
import dagger.hilt.android.HiltAndroidApp
import dagger.hilt.android.qualifiers.ApplicationContext
import io.reactivex.Completable
import io.reactivex.schedulers.Schedulers
import org.tasks.billing.BillingClient
import org.tasks.billing.Inventory
import org.tasks.files.FileHelper
import org.tasks.injection.ApplicationComponent
import org.tasks.injection.ApplicationContext
import org.tasks.injection.InjectingApplication
import org.tasks.injection.InjectingJobIntentService
import org.tasks.jobs.WorkManager
import org.tasks.locale.Locale
import org.tasks.location.GeofenceApi
import org.tasks.preferences.Preferences
import org.tasks.receivers.RefreshReceiver
@ -29,7 +31,8 @@ import org.tasks.widget.AppWidgetManager
import timber.log.Timber
import javax.inject.Inject
class Tasks : InjectingApplication(), Configuration.Provider {
@HiltAndroidApp
class Tasks : Application(), Configuration.Provider {
@Inject @ApplicationContext lateinit var context: Context
@Inject lateinit var preferences: Preferences
@Inject lateinit var buildSetup: BuildSetup
@ -41,6 +44,7 @@ class Tasks : InjectingApplication(), Configuration.Provider {
@Inject lateinit var geofenceApi: Lazy<GeofenceApi>
@Inject lateinit var billingClient: Lazy<BillingClient>
@Inject lateinit var appWidgetManager: Lazy<AppWidgetManager>
@Inject lateinit var workerFactory: HiltWorkerFactory
override fun onCreate() {
super.onCreate()
@ -49,6 +53,7 @@ class Tasks : InjectingApplication(), Configuration.Provider {
preferences.isSyncOngoing = false
ThemeBase.getThemeBase(preferences, inventory, null).setDefaultNightMode()
localBroadcastManager.registerRefreshReceiver(RefreshBroadcastReceiver())
Locale.getInstance(this).createConfigurationContext(applicationContext)
Completable.fromAction { doInBackground() }.subscribeOn(Schedulers.io()).subscribe()
}
@ -78,10 +83,9 @@ class Tasks : InjectingApplication(), Configuration.Provider {
appWidgetManager.get().reconfigureWidgets()
}
override fun inject(component: ApplicationComponent) = component.inject(this)
override fun getWorkManagerConfiguration(): Configuration {
return Configuration.Builder()
.setWorkerFactory(workerFactory)
.setMinimumLoggingLevel(if (BuildConfig.DEBUG) Log.DEBUG else Log.INFO)
.build()
}

@ -8,15 +8,16 @@ import android.os.Bundle;
import android.provider.MediaStore;
import androidx.core.content.FileProvider;
import com.todoroo.astrid.utility.Constants;
import dagger.hilt.android.AndroidEntryPoint;
import java.io.File;
import java.io.IOException;
import javax.inject.Inject;
import org.tasks.files.FileHelper;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.Preferences;
import org.tasks.time.DateTime;
@AndroidEntryPoint
public class CameraActivity extends InjectingAppCompatActivity {
private static final int REQUEST_CODE_CAMERA = 75;
@ -57,11 +58,6 @@ public class CameraActivity extends InjectingAppCompatActivity {
}
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_CAMERA) {

@ -7,15 +7,16 @@ import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import dagger.hilt.android.AndroidEntryPoint;
import javax.inject.Inject;
import org.tasks.dialogs.MyDatePickerDialog;
import org.tasks.dialogs.MyTimePickerDialog;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.Preferences;
import org.tasks.themes.ThemeAccent;
import org.tasks.time.DateTime;
@AndroidEntryPoint
public class DateAndTimePickerActivity extends InjectingAppCompatActivity
implements MyDatePickerDialog.DatePickerCallback, MyTimePickerDialog.TimePickerCallback {
@ -51,11 +52,6 @@ public class DateAndTimePickerActivity extends InjectingAppCompatActivity
}
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);

@ -8,6 +8,8 @@ import android.os.Bundle;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter;
import dagger.hilt.android.AndroidEntryPoint;
import dagger.hilt.android.qualifiers.ApplicationContext;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
@ -16,13 +18,12 @@ import javax.inject.Inject;
import org.tasks.LocalBroadcastManager;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.filters.FilterProvider;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.ApplicationContext;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Preferences;
import org.tasks.widget.WidgetPreferences;
@AndroidEntryPoint
public class FilterSelectionActivity extends InjectingAppCompatActivity {
public static final String EXTRA_RETURN_FILTER = "extra_include_filter";
@ -125,9 +126,4 @@ public class FilterSelectionActivity extends InjectingAppCompatActivity {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(items -> filterAdapter.setData(items, selected)));
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
}

@ -33,17 +33,18 @@ import com.todoroo.astrid.core.CustomFilterItemTouchHelper
import com.todoroo.astrid.dao.Database
import com.todoroo.astrid.dao.TaskDao.TaskCriteria.activeAndVisible
import com.todoroo.astrid.data.Task
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.Strings
import org.tasks.data.Filter
import org.tasks.data.FilterDao
import org.tasks.filters.FilterCriteriaProvider
import org.tasks.injection.ActivityComponent
import org.tasks.locale.Locale
import java.util.*
import javax.inject.Inject
import kotlin.math.max
@AndroidEntryPoint
class FilterSettingsActivity : BaseListSettingsActivity() {
@Inject lateinit var filterDao: FilterDao
@Inject lateinit var locale: Locale
@ -225,8 +226,6 @@ class FilterSettingsActivity : BaseListSettingsActivity() {
nameLayout.error = null
}
override fun inject(component: ActivityComponent) = component.inject(this)
override fun save() {
val newName = newName
if (Strings.isNullOrEmpty(newName)) {

@ -19,15 +19,16 @@ import com.todoroo.astrid.api.GtasksFilter;
import com.todoroo.astrid.gtasks.GtasksListService;
import com.todoroo.astrid.gtasks.api.GtasksInvoker;
import com.todoroo.astrid.service.TaskDeleter;
import dagger.hilt.android.AndroidEntryPoint;
import dagger.hilt.android.qualifiers.ApplicationContext;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.data.GoogleTaskAccount;
import org.tasks.data.GoogleTaskList;
import org.tasks.data.GoogleTaskListDao;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.ApplicationContext;
import timber.log.Timber;
@AndroidEntryPoint
public class GoogleTaskListSettingsActivity extends BaseListSettingsActivity {
public static final String EXTRA_ACCOUNT = "extra_account";
@ -116,11 +117,6 @@ public class GoogleTaskListSettingsActivity extends BaseListSettingsActivity {
return progressView.getVisibility() == View.VISIBLE;
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
@Override
protected void save() {
if (requestInProgress()) {

@ -8,12 +8,14 @@ import android.content.DialogInterface
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment
import com.todoroo.astrid.adapter.FilterAdapter
import com.todoroo.astrid.api.CaldavFilter
import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.api.FilterListItem
import com.todoroo.astrid.api.GtasksFilter
import dagger.hilt.android.AndroidEntryPoint
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
@ -21,11 +23,10 @@ import io.reactivex.schedulers.Schedulers
import org.tasks.LocalBroadcastManager
import org.tasks.dialogs.DialogBuilder
import org.tasks.filters.FilterProvider
import org.tasks.injection.FragmentComponent
import org.tasks.injection.InjectingDialogFragment
import javax.inject.Inject
class ListPicker : InjectingDialogFragment() {
@AndroidEntryPoint
class ListPicker : DialogFragment() {
@Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var filterAdapter: FilterAdapter
@Inject lateinit var filterProvider: FilterProvider
@ -63,8 +64,6 @@ class ListPicker : InjectingDialogFragment() {
filterAdapter.save(outState)
}
override fun inject(component: FragmentComponent) = component.inject(this)
private fun selectedList(list: Filter) {
targetFragment!!.onActivityResult(
targetRequestCode,

@ -16,6 +16,7 @@ import com.todoroo.astrid.adapter.FilterViewHolder
import com.todoroo.astrid.adapter.NavigationDrawerAdapter
import com.todoroo.astrid.api.*
import com.todoroo.astrid.api.FilterListItem.Type.ITEM
import dagger.hilt.android.AndroidEntryPoint
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
@ -29,12 +30,12 @@ import org.tasks.dialogs.NewFilterDialog.Companion.newFilterDialog
import org.tasks.filters.FilterProvider
import org.tasks.filters.NavigationDrawerAction
import org.tasks.filters.PlaceFilter
import org.tasks.injection.ActivityComponent
import org.tasks.injection.ThemedInjectingAppCompatActivity
import org.tasks.preferences.Preferences
import org.tasks.ui.NavigationDrawerFragment.Companion.REQUEST_NEW_FILTER
import javax.inject.Inject
@AndroidEntryPoint
class NavigationDrawerCustomization : ThemedInjectingAppCompatActivity(), Toolbar.OnMenuItemClickListener {
@Inject lateinit var filterProvider: FilterProvider
@ -144,8 +145,6 @@ class NavigationDrawerCustomization : ThemedInjectingAppCompatActivity(), Toolba
}
}
override fun inject(component: ActivityComponent) = component.inject(this)
override fun onMenuItemClick(item: MenuItem): Boolean {
return if (item.itemId == R.id.reset_sort) {
filterDao.resetOrders()

@ -9,15 +9,16 @@ import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
import com.todoroo.astrid.activity.MainActivity
import com.todoroo.astrid.activity.TaskListFragment
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.Strings.isNullOrEmpty
import org.tasks.data.LocationDao
import org.tasks.data.Place
import org.tasks.filters.PlaceFilter
import org.tasks.injection.ActivityComponent
import org.tasks.location.MapFragment
import javax.inject.Inject
@AndroidEntryPoint
class PlaceSettingsActivity : BaseListSettingsActivity(), MapFragment.MapFragmentCallback {
companion object {
@ -101,8 +102,6 @@ class PlaceSettingsActivity : BaseListSettingsActivity(), MapFragment.MapFragmen
finish()
}
override fun inject(component: ActivityComponent) = component.inject(this)
override fun onMapReady(mapFragment: MapFragment?) {
map = mapFragment!!
map.setMarkers(listOf(place))

@ -20,13 +20,14 @@ import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.api.TagFilter;
import com.todoroo.astrid.helper.UUIDHelper;
import dagger.hilt.android.AndroidEntryPoint;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.data.TagDao;
import org.tasks.data.TagData;
import org.tasks.data.TagDataDao;
import org.tasks.injection.ActivityComponent;
@AndroidEntryPoint
public class TagSettingsActivity extends BaseListSettingsActivity {
public static final String TOKEN_AUTOPOPULATE_NAME = "autopopulateName"; // $NON-NLS-1$
@ -90,11 +91,6 @@ public class TagSettingsActivity extends BaseListSettingsActivity {
nameLayout.setError(null);
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
private String getNewName() {
return name.getText().toString().trim();
}

@ -8,13 +8,14 @@ import androidx.recyclerview.widget.RecyclerView
import butterknife.BindView
import butterknife.ButterKnife
import com.google.common.collect.Multimaps
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.activities.attribution.AttributionViewModel.LibraryAttribution
import org.tasks.injection.ActivityComponent
import org.tasks.injection.ThemedInjectingAppCompatActivity
import timber.log.Timber
import java.util.*
@AndroidEntryPoint
class AttributionActivity : ThemedInjectingAppCompatActivity() {
@BindView(R.id.toolbar)
lateinit var toolbar: Toolbar
@ -60,6 +61,4 @@ class AttributionActivity : ThemedInjectingAppCompatActivity() {
AttributionRow(it, libraries.sorted().joinToString("\n"))
}
}
override fun inject(component: ActivityComponent) = component.inject(this)
}

@ -6,21 +6,31 @@ import android.app.backup.FileBackupHelper;
import android.net.Uri;
import android.os.ParcelFileDescriptor;
import com.todoroo.astrid.backup.BackupConstants;
import dagger.hilt.EntryPoint;
import dagger.hilt.InstallIn;
import dagger.hilt.android.EntryPointAccessors;
import dagger.hilt.android.components.ApplicationComponent;
import java.io.File;
import java.io.IOException;
import javax.inject.Inject;
import org.tasks.injection.InjectingApplication;
import timber.log.Timber;
public class TasksBackupAgent extends BackupAgentHelper {
@EntryPoint
@InstallIn(ApplicationComponent.class)
interface TasksBackupAgentEntryPoint {
TasksJsonImporter getTasksJsonImporter();
}
private static final String BACKUP_KEY = "backup";
@Inject TasksJsonImporter importer;
private TasksJsonImporter importer;
@Override
public void onCreate() {
((InjectingApplication) getApplicationContext()).getComponent().inject(this);
TasksBackupAgentEntryPoint hilt =
EntryPointAccessors.fromApplication(getApplicationContext(), TasksBackupAgentEntryPoint.class);
importer = hilt.getTasksJsonImporter();
addHelper(BACKUP_KEY, new FileBackupHelper(this, BackupConstants.INTERNAL_BACKUP));
}

@ -12,12 +12,12 @@ import androidx.appcompat.widget.Toolbar
import butterknife.ButterKnife
import butterknife.OnClick
import com.google.android.material.button.MaterialButtonToggleGroup
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.LocalBroadcastManager
import org.tasks.R
import org.tasks.databinding.ActivityPurchaseBinding
import org.tasks.dialogs.DialogBuilder
import org.tasks.dialogs.IconLayoutManager
import org.tasks.injection.ActivityComponent
import org.tasks.injection.ThemedInjectingAppCompatActivity
import org.tasks.locale.Locale
import timber.log.Timber
@ -26,6 +26,7 @@ import javax.inject.Inject
private const val EXTRA_MONTHLY = "extra_monthly"
private const val EXTRA_PRICE = "extra_price"
@AndroidEntryPoint
class PurchaseActivity : ThemedInjectingAppCompatActivity(), OnPurchasesUpdated, Toolbar.OnMenuItemClickListener {
@Inject lateinit var inventory: Inventory
@ -129,10 +130,6 @@ class PurchaseActivity : ThemedInjectingAppCompatActivity(), OnPurchasesUpdated,
localBroadcastManager.unregisterReceiver(purchaseReceiver)
}
override fun inject(component: ActivityComponent) {
component.inject(this)
}
private fun setup() {
currentSubscription = inventory.subscription
if (adapter.selected == 0) {

@ -4,12 +4,13 @@ import android.os.Bundle;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProvider;
import com.todoroo.astrid.helper.UUIDHelper;
import dagger.hilt.android.AndroidEntryPoint;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.data.CaldavAccount;
import org.tasks.injection.ActivityComponent;
import timber.log.Timber;
@AndroidEntryPoint
public class CaldavAccountSettingsActivity extends BaseCaldavAccountSettingsActivity
implements Toolbar.OnMenuItemClickListener {
@ -94,9 +95,4 @@ public class CaldavAccountSettingsActivity extends BaseCaldavAccountSettingsActi
protected String getHelpUrl() {
return "https://tasks.org/caldav";
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
}

@ -2,12 +2,13 @@ package org.tasks.caldav;
import android.os.Bundle;
import androidx.lifecycle.ViewModelProvider;
import dagger.hilt.android.AndroidEntryPoint;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.data.CaldavAccount;
import org.tasks.data.CaldavCalendar;
import org.tasks.injection.ActivityComponent;
@AndroidEntryPoint
public class CaldavCalendarSettingsActivity extends BaseCaldavCalendarSettingsActivity {
@Inject CaldavClient client;
@ -35,11 +36,6 @@ public class CaldavCalendarSettingsActivity extends BaseCaldavCalendarSettingsAc
updateCalendarViewModel.observe(this, ignored -> updateCalendar(), this::requestFailed);
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
}
@Override
protected void createCalendar(CaldavAccount caldavAccount, String name, int color) {
createCalendarViewModel.createCalendar(client, caldavAccount, name, color);

@ -25,6 +25,7 @@ import at.bitfire.dav4jvm.property.ResourceType;
import at.bitfire.dav4jvm.property.SupportedCalendarComponentSet;
import at.bitfire.dav4jvm.property.SyncToken;
import com.todoroo.astrid.helper.UUIDHelper;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.io.IOException;
import java.io.StringWriter;
import java.security.KeyManagementException;
@ -43,7 +44,6 @@ import org.tasks.DebugNetworkInterceptor;
import org.tasks.R;
import org.tasks.data.CaldavAccount;
import org.tasks.data.CaldavCalendar;
import org.tasks.injection.ApplicationContext;
import org.tasks.preferences.Preferences;
import org.tasks.security.KeyStoreEncryption;
import org.tasks.ui.DisplayableException;

@ -31,6 +31,7 @@ import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.UUIDHelper;
import com.todoroo.astrid.service.TaskDeleter;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.io.IOException;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
@ -55,7 +56,6 @@ import org.tasks.data.CaldavAccount;
import org.tasks.data.CaldavCalendar;
import org.tasks.data.CaldavDao;
import org.tasks.data.CaldavTask;
import org.tasks.injection.ApplicationContext;
import timber.log.Timber;
public class CaldavSynchronizer {

@ -1,12 +1,13 @@
package org.tasks.caldav
import android.os.Bundle
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.data.CaldavAccount
import org.tasks.data.CaldavCalendar
import org.tasks.data.CaldavDao
import org.tasks.injection.ActivityComponent
@AndroidEntryPoint
class LocalListSettingsActivity : BaseCaldavCalendarSettingsActivity() {
override fun getLayout() = R.layout.activity_caldav_calendar_settings
@ -17,8 +18,6 @@ class LocalListSettingsActivity : BaseCaldavCalendarSettingsActivity() {
toolbar.menu.findItem(R.id.delete)?.isVisible = caldavDao.getCalendarsByAccount(CaldavDao.LOCAL).size > 1
}
override fun inject(component: ActivityComponent) = component.inject(this)
override fun createCalendar(caldavAccount: CaldavAccount, name: String, color: Int) =
createSuccessful(null)

@ -4,11 +4,11 @@ import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.provider.CalendarContract;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
import org.tasks.injection.ApplicationContext;
import org.tasks.preferences.PermissionChecker;
import timber.log.Timber;

@ -10,11 +10,11 @@ import android.net.Uri;
import android.provider.CalendarContract;
import androidx.annotation.Nullable;
import com.todoroo.astrid.data.Task;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
import org.tasks.injection.ApplicationContext;
import org.tasks.preferences.PermissionChecker;
import timber.log.Timber;

@ -12,21 +12,22 @@ import android.widget.ListView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import dagger.hilt.android.AndroidEntryPoint;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.FragmentComponent;
import org.tasks.injection.InjectingDialogFragment;
import org.tasks.preferences.FragmentPermissionRequestor;
import org.tasks.preferences.PermissionChecker;
import org.tasks.preferences.PermissionRequestor;
import org.tasks.themes.Theme;
import org.tasks.ui.SingleCheckedArrayAdapter;
public class CalendarPicker extends InjectingDialogFragment {
@AndroidEntryPoint
public class CalendarPicker extends DialogFragment {
public static final String EXTRA_CALENDAR_ID = "extra_calendar_id";
public static final String EXTRA_CALENDAR_NAME = "extra_calendar_name";
@ -124,9 +125,4 @@ public class CalendarPicker extends InjectingDialogFragment {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
@Override
protected void inject(FragmentComponent component) {
component.inject(this);
}
}

@ -9,11 +9,11 @@ import android.database.Cursor;
import android.net.Uri;
import android.provider.CalendarContract;
import androidx.annotation.Nullable;
import dagger.hilt.android.qualifiers.ApplicationContext;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
import org.tasks.injection.ApplicationContext;
import org.tasks.preferences.PermissionChecker;
import timber.log.Timber;

@ -8,15 +8,16 @@ import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import dagger.hilt.android.AndroidEntryPoint;
import java.util.List;
import javax.inject.Inject;
import org.tasks.LocalBroadcastManager;
import org.tasks.R;
import org.tasks.injection.InjectingApplication;
import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Preferences;
import timber.log.Timber;
@AndroidEntryPoint
public class DashClockExtension extends com.google.android.apps.dashclock.api.DashClockExtension {
@Inject DefaultFilterProvider defaultFilterProvider;
@ -36,8 +37,6 @@ public class DashClockExtension extends com.google.android.apps.dashclock.api.Da
public void onCreate() {
super.onCreate();
((InjectingApplication) getApplication()).getComponent().inject(this);
localBroadcastManager.registerRefreshReceiver(refreshReceiver);
}

@ -1,14 +1,13 @@
package org.tasks.dashclock
import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.injection.ActivityComponent
import org.tasks.preferences.BasePreferences
import org.tasks.preferences.fragments.DashClock
@AndroidEntryPoint
class DashClockSettings : BasePreferences() {
override fun getRootTitle() = R.string.pro_dashclock_extension
override fun getRootPreference() = DashClock()
override fun inject(component: ActivityComponent) = component.inject(this)
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save