Fix crash on startup

pull/996/head 8.6.1
Alex Baker 4 years ago
parent fb4b241c55
commit e37e5a8059

@ -1,5 +1,9 @@
Change Log
---
### 8.6.1 (2020-03-19)
* Fix crash on startup
### 8.6 (2020-03-17)
* Expand and collapse navigation drawer groups

@ -35,8 +35,8 @@ android {
defaultConfig {
testApplicationId = "org.tasks.test"
applicationId = "org.tasks"
versionCode = 706
versionName = "8.6"
versionCode = 707
versionName = "8.6.1"
targetSdkVersion(Versions.targetSdk)
minSdkVersion(Versions.minSdk)
multiDexEnabled = true

@ -1,6 +1,7 @@
package org.tasks.data;
import static com.natpryce.makeiteasy.MakeItEasy.with;
import static com.todoroo.andlib.utility.DateUtilities.now;
import static java.util.Collections.singletonList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@ -14,6 +15,7 @@ import static org.tasks.makers.TaskMaker.newTask;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.UUIDHelper;
import javax.inject.Inject;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -63,6 +65,15 @@ public class CaldavDaoTests extends InjectingTestCase {
assertTrue(caldavDao.getTasksWithTags().isEmpty());
}
@Test
public void noResultsForEmptyAccounts() {
CaldavAccount caldavAccount = new CaldavAccount();
caldavAccount.setUuid(UUIDHelper.newUUID());
caldavDao.insert(caldavAccount);
assertTrue(caldavDao.getCaldavFilters(caldavAccount.getUuid(), now()).isEmpty());
}
@Override
protected void inject(TestComponent component) {
component.inject(this);

@ -0,0 +1,27 @@
package org.tasks.data
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.todoroo.andlib.utility.DateUtilities.now
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 javax.inject.Inject
@RunWith(AndroidJUnit4::class)
class GoogleTaskListDaoTest : InjectingTestCase() {
@Inject lateinit var googleTaskListDao: GoogleTaskListDao
@Test
fun noResultsForEmptyAccount() {
val account = GoogleTaskAccount()
account.account = "user@gmail.com"
googleTaskListDao.insert(account)
assertTrue(googleTaskListDao.getGoogleTaskFilters(account.account, now()).isEmpty())
}
override fun inject(component: TestComponent) = component.inject(this)
}

@ -17,6 +17,7 @@ import dagger.Component;
import org.tasks.data.CaldavDaoTests;
import org.tasks.data.DeletionDaoTests;
import org.tasks.data.GoogleTaskDaoTests;
import org.tasks.data.GoogleTaskListDaoTest;
import org.tasks.data.LocationDaoTest;
import org.tasks.data.TagDataDaoTest;
import org.tasks.jobs.BackupServiceTests;
@ -62,4 +63,6 @@ public interface TestComponent extends ApplicationComponent {
void inject(TaskMoverTest taskMoverTest);
void inject(LocationDaoTest locationDaoTest);
void inject(GoogleTaskListDaoTest googleTaskListDaoTest);
}

@ -147,14 +147,12 @@ public abstract class CaldavDao {
@Query(
"SELECT caldav_lists.*, COUNT(tasks._id) AS count"
+ " FROM caldav_accounts"
+ " LEFT JOIN caldav_lists ON caldav_lists.cdl_account = caldav_accounts.cda_uuid"
+ " FROM caldav_lists"
+ " LEFT JOIN caldav_tasks ON caldav_tasks.cd_calendar = caldav_lists.cdl_uuid"
+ " LEFT JOIN tasks ON caldav_tasks.cd_task = tasks._id AND tasks.deleted = 0 AND tasks.completed = 0 AND tasks.hideUntil < :now AND cd_deleted = 0"
+ " WHERE caldav_accounts.cda_id = :accountId"
+ " GROUP BY caldav_lists.cdl_uuid"
+ " ORDER BY caldav_accounts.cda_name COLLATE NOCASE")
public abstract List<CaldavFilters> getCaldavFilters(long accountId, long now);
+ " WHERE caldav_lists.cdl_account = :uuid"
+ " GROUP BY caldav_lists.cdl_uuid")
public abstract List<CaldavFilters> getCaldavFilters(String uuid, long now);
@Query(
"SELECT tasks._id FROM tasks "

@ -64,12 +64,10 @@ public abstract class GoogleTaskListDao {
@Query(
"SELECT google_task_lists.*, COUNT(tasks._id) AS count"
+ " FROM google_task_accounts "
+ " LEFT JOIN google_task_lists ON google_task_lists.gtl_account = google_task_accounts.gta_account"
+ " FROM google_task_lists "
+ " LEFT JOIN google_tasks ON google_tasks.gt_list_id = google_task_lists.gtl_remote_id"
+ " LEFT JOIN tasks ON google_tasks.gt_task = tasks._id AND tasks.deleted = 0 AND tasks.completed = 0 AND tasks.hideUntil < :now AND gt_deleted = 0"
+ " WHERE google_task_accounts.gta_id = :accountId"
+ " GROUP BY google_task_lists.gtl_remote_id"
+ " ORDER BY google_task_lists.gtl_account COLLATE NOCASE")
public abstract List<GoogleTaskFilters> getGoogleTaskFilters(long accountId, long now);
+ " WHERE google_task_lists.gtl_account = :account"
+ " GROUP BY google_task_lists.gtl_remote_id")
public abstract List<GoogleTaskFilters> getGoogleTaskFilters(String account, long now);
}

@ -254,7 +254,7 @@ public class FilterProvider {
? Collections.emptyList()
: newArrayList(
transform(
googleTaskListDao.getGoogleTaskFilters(account.getId(), now()),
googleTaskListDao.getGoogleTaskFilters(account.getAccount(), now()),
GoogleTaskFilters::toGtasksFilter)));
}
for (Map.Entry<GoogleTaskAccount, List<Filter>> entry : filters.entrySet()) {
@ -273,7 +273,7 @@ public class FilterProvider {
? Collections.emptyList()
: newArrayList(
transform(
caldavDao.getCaldavFilters(account.getId(), now()),
caldavDao.getCaldavFilters(account.getUuid(), now()),
CaldavFilters::toCaldavFilter)));
}
for (Map.Entry<CaldavAccount, List<Filter>> entry : filters.entrySet()) {

@ -0,0 +1,4 @@
* Expand and collapse navigation drawer groups
* Update translations
Full release notes: https://tasks.org/changelog
Loading…
Cancel
Save