Replace slf4j-android with timber

pull/384/head
Alex Baker 9 years ago
parent 2ba321f39e
commit 8a9db3dd40

@ -82,6 +82,7 @@ dependencies {
compile 'com.android.support:design:23.1.1' compile 'com.android.support:design:23.1.1'
compile 'com.jakewharton:butterknife:7.0.1' compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.jakewharton.timber:timber:4.1.0'
compile 'com.google.guava:guava-jdk5:17.0' compile 'com.google.guava:guava-jdk5:17.0'
compile ('com.rubiconproject.oss:jchronic:0.2.6') { compile ('com.rubiconproject.oss:jchronic:0.2.6') {
transitive = false transitive = false
@ -102,8 +103,6 @@ dependencies {
exclude group: 'org.apache.httpcomponents', module: 'httpclient' exclude group: 'org.apache.httpcomponents', module: 'httpclient'
} }
compile 'org.slf4j:slf4j-android:1.7.13'
androidTestCompile ('org.mockito:mockito-core:1.9.5') { androidTestCompile ('org.mockito:mockito-core:1.9.5') {
transitive = false transitive = false
} }

@ -9,22 +9,19 @@ import com.google.api.services.tasks.model.TaskList;
import com.google.api.services.tasks.model.TaskLists; import com.google.api.services.tasks.model.TaskLists;
import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.StoreObjectDao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Lists.newArrayList;
import static org.tasks.time.DateTimeUtils.printTimestamp; import static org.tasks.time.DateTimeUtils.printTimestamp;
public class GtasksListService { public class GtasksListService {
private static final Logger log = LoggerFactory.getLogger(GtasksListService.class);
private final StoreObjectDao storeObjectDao; private final StoreObjectDao storeObjectDao;
@Inject @Inject
@ -64,7 +61,7 @@ public class GtasksListService {
String title = remote.getTitle(); String title = remote.getTitle();
if(local == null) { if(local == null) {
log.debug("Adding new gtask list {}", title); Timber.d("Adding new gtask list %s", title);
local = new GtasksList(id); local = new GtasksList(id);
} }
@ -89,9 +86,9 @@ public class GtasksListService {
long lastUpdate = remoteList.getUpdated().getValue(); long lastUpdate = remoteList.getUpdated().getValue();
if (lastSync < lastUpdate) { if (lastSync < lastUpdate) {
listsToUpdate.add(localList); listsToUpdate.add(localList);
log.debug("{} out of date [local={}] [remote={}]", listName, printTimestamp(lastSync), printTimestamp(lastUpdate)); Timber.d("%s out of date [local=%s] [remote=%s]", listName, printTimestamp(lastSync), printTimestamp(lastUpdate));
} else { } else {
log.debug("{} up to date", listName); Timber.d("%s up to date", listName);
} }
} }
return listsToUpdate; return listsToUpdate;

@ -19,9 +19,6 @@ import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gtasks.sync.GtasksSyncService; import com.todoroo.astrid.gtasks.sync.GtasksSyncService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
@ -31,11 +28,11 @@ import java.util.concurrent.atomic.AtomicLong;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import timber.log.Timber;
@Singleton @Singleton
public class GtasksTaskListUpdater extends OrderedMetadataListUpdater<GtasksList> { public class GtasksTaskListUpdater extends OrderedMetadataListUpdater<GtasksList> {
private static final Logger log = LoggerFactory.getLogger(GtasksTaskListUpdater.class);
/** map of task -> parent task */ /** map of task -> parent task */
final HashMap<Long, Long> parents = new HashMap<>(); final HashMap<Long, Long> parents = new HashMap<>();
@ -202,7 +199,7 @@ public class GtasksTaskListUpdater extends OrderedMetadataListUpdater<GtasksList
parents.put(taskId, parent); parents.put(taskId, parent);
siblings.put(taskId, sibling); siblings.put(taskId, sibling);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
previousTask.set(taskId); previousTask.set(taskId);

@ -32,8 +32,6 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.OrderedListFragmentHelperInterface; import com.todoroo.astrid.subtasks.OrderedListFragmentHelperInterface;
import com.todoroo.astrid.ui.DraggableListView; import com.todoroo.astrid.ui.DraggableListView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
@ -45,9 +43,9 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragmentHelperInterface<LIST> { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(OrderedMetadataListFragmentHelper.class); public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragmentHelperInterface<LIST> {
private final DisplayMetrics metrics = new DisplayMetrics(); private final DisplayMetrics metrics = new DisplayMetrics();
private final OrderedMetadataListUpdater<LIST> updater; private final OrderedMetadataListUpdater<LIST> updater;
@ -131,7 +129,7 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
updater.moveTo(list, targetTaskId, destinationTaskId); updater.moveTo(list, targetTaskId, destinationTaskId);
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
fragment.loadTaskListContent(); fragment.loadTaskListContent();
@ -157,7 +155,7 @@ public class OrderedMetadataListFragmentHelper<LIST> implements OrderedListFragm
try { try {
updater.indent(list, targetTaskId, delta); updater.indent(list, targetTaskId, delta);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
fragment.loadTaskListContent(); fragment.loadTaskListContent();
} }

@ -7,15 +7,12 @@ package com.todoroo.astrid.gtasks.api;
import com.google.api.client.util.DateTime; import com.google.api.client.util.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date; import java.util.Date;
import java.util.TimeZone; import java.util.TimeZone;
public class GtasksApiUtilities { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(GtasksApiUtilities.class); public class GtasksApiUtilities {
public static DateTime unixTimeToGtasksCompletionTime(long time) { public static DateTime unixTimeToGtasksCompletionTime(long time) {
if (time < 0) { if (time < 0) {
@ -60,7 +57,7 @@ public class GtasksApiUtilities {
Date returnDate = new Date(date.getTime() + date.getTimezoneOffset() * 60000); Date returnDate = new Date(date.getTime() + date.getTimezoneOffset() * 60000);
return returnDate.getTime(); return returnDate.getTime();
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return 0; return 0;
} }
} }

@ -15,8 +15,6 @@ import com.google.api.services.tasks.model.TaskList;
import com.google.api.services.tasks.model.TaskLists; import com.google.api.services.tasks.model.TaskLists;
import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.AccountManager; import org.tasks.AccountManager;
import org.tasks.BuildConfig; import org.tasks.BuildConfig;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
@ -27,6 +25,8 @@ import java.util.Collections;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import timber.log.Timber;
/** /**
* Wrapper around the official Google Tasks API to simplify common operations. In the case * Wrapper around the official Google Tasks API to simplify common operations. In the case
* of an exception, each request is tried twice in case of a timeout. * of an exception, each request is tried twice in case of a timeout.
@ -36,8 +36,6 @@ import javax.inject.Singleton;
@Singleton @Singleton
public class GtasksInvoker { public class GtasksInvoker {
private static final Logger log = LoggerFactory.getLogger(GtasksInvoker.class);
private AccountManager accountManager; private AccountManager accountManager;
private final GoogleAccountCredential credential; private final GoogleAccountCredential credential;
private Tasks service; private Tasks service;
@ -58,7 +56,7 @@ public class GtasksInvoker {
//If we get a 401 or 403, try revalidating the auth token before bailing //If we get a 401 or 403, try revalidating the auth token before bailing
private synchronized void handleException(IOException e) throws IOException { private synchronized void handleException(IOException e) throws IOException {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
if (e instanceof HttpResponseException) { if (e instanceof HttpResponseException) {
HttpResponseException h = (HttpResponseException) e; HttpResponseException h = (HttpResponseException) e;
int statusCode = h.getStatusCode(); int statusCode = h.getStatusCode();
@ -69,7 +67,7 @@ public class GtasksInvoker {
} else if (statusCode == 404) { } else if (statusCode == 404) {
throw new HttpNotFoundException(h); throw new HttpNotFoundException(h);
} else { } else {
log.error(statusCode + ": " + h.getStatusMessage(), e); Timber.e(e, "%s: %s", statusCode, h.getStatusMessage());
} }
// 503 errors are generally either 1) quota limit reached or 2) problems on Google's end // 503 errors are generally either 1) quota limit reached or 2) problems on Google's end
} }
@ -126,7 +124,7 @@ public class GtasksInvoker {
private synchronized <T> T execute(TasksRequest<T> request) throws IOException { private synchronized <T> T execute(TasksRequest<T> request) throws IOException {
String caller = getCaller(); String caller = getCaller();
log.debug("{} request: {}", caller, request); Timber.d("%s request: %s", caller, request);
T response; T response;
try { try {
response = request.execute(); response = request.execute();
@ -134,23 +132,25 @@ public class GtasksInvoker {
handleException(e); handleException(e);
response = request.execute(); response = request.execute();
} }
log.debug("{} response: {}", caller, prettyPrint(response)); Timber.d("%s response: %s", caller, prettyPrint(response));
return response; return response;
} }
private <T> Object prettyPrint(T object) throws IOException { private <T> Object prettyPrint(T object) throws IOException {
if (log.isDebugEnabled() && object instanceof GenericJson) { if (BuildConfig.DEBUG) {
if (object instanceof GenericJson) {
return ((GenericJson) object).toPrettyString(); return ((GenericJson) object).toPrettyString();
} }
}
return object; return object;
} }
private String getCaller() { private String getCaller() {
if (log.isDebugEnabled()) { if (BuildConfig.DEBUG) {
try { try {
return Thread.currentThread().getStackTrace()[4].getMethodName(); return Thread.currentThread().getStackTrace()[4].getMethodName();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
return ""; return "";

@ -7,10 +7,10 @@ package com.todoroo.astrid.gtasks.api;
import com.google.api.services.tasks.model.Task; import com.google.api.services.tasks.model.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
import timber.log.Timber;
/** /**
* Encapsulates a request to the api to change the ordering on the given task * Encapsulates a request to the api to change the ordering on the given task
* @author Sam Bosley * @author Sam Bosley
@ -18,8 +18,6 @@ import java.io.IOException;
*/ */
public class MoveRequest { public class MoveRequest {
private static final Logger log = LoggerFactory.getLogger(MoveRequest.class);
private final GtasksInvoker service; private final GtasksInvoker service;
private String taskId; private String taskId;
private final String destinationList; private final String destinationList;
@ -38,7 +36,7 @@ public class MoveRequest {
try { try {
return executePush(); return executePush();
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
recover(); recover();
return executePush(); return executePush();
} }

@ -26,9 +26,6 @@ import com.todoroo.astrid.gtasks.api.HttpNotFoundException;
import com.todoroo.astrid.gtasks.api.MoveRequest; import com.todoroo.astrid.gtasks.api.MoveRequest;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore;
@ -36,11 +33,11 @@ import java.util.concurrent.Semaphore;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import timber.log.Timber;
@Singleton @Singleton
public class GtasksSyncService { public class GtasksSyncService {
private static final Logger log = LoggerFactory.getLogger(GtasksSyncService.class);
private static final String DEFAULT_LIST = "@default"; //$NON-NLS-1$ private static final String DEFAULT_LIST = "@default"; //$NON-NLS-1$
private final MetadataDao metadataDao; private final MetadataDao metadataDao;
@ -150,13 +147,13 @@ public class GtasksSyncService {
try { try {
op = queue.take(); op = queue.take();
} catch (InterruptedException e) { } catch (InterruptedException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
continue; continue;
} }
try { try {
op.op(gtasksInvoker); op.op(gtasksInvoker);
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }
@ -169,7 +166,7 @@ public class GtasksSyncService {
sema.acquire(); sema.acquire();
} catch (InterruptedException e) { } catch (InterruptedException e) {
// Ignored // Ignored
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
@ -286,7 +283,7 @@ public class GtasksSyncService {
try { try {
invoker.updateGtask(listId, remoteModel); invoker.updateGtask(listId, remoteModel);
} catch(HttpNotFoundException e) { } catch(HttpNotFoundException e) {
log.error("Received 404 response, deleting {}", gtasksMetadata); Timber.e("Received 404 response, deleting %s", gtasksMetadata);
metadataDao.delete(gtasksMetadata.getId()); metadataDao.delete(gtasksMetadata.getId());
return; return;
} }

@ -32,8 +32,6 @@ import com.todoroo.astrid.gtasks.api.GtasksInvoker;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.sync.SyncResultCallback; import com.todoroo.astrid.sync.SyncResultCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -47,6 +45,8 @@ import java.util.concurrent.atomic.AtomicInteger;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import timber.log.Timber;
import static org.tasks.date.DateTimeUtils.newDateTime; import static org.tasks.date.DateTimeUtils.newDateTime;
@Singleton @Singleton
@ -54,7 +54,7 @@ public class GtasksSyncV2Provider {
public class SyncExceptionHandler { public class SyncExceptionHandler {
public void handleException(Exception e) { public void handleException(Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
@ -70,8 +70,6 @@ public class GtasksSyncV2Provider {
return getName(); return getName();
} }
private static final Logger log = LoggerFactory.getLogger(GtasksSyncV2Provider.class);
private final TaskService taskService; private final TaskService taskService;
private final StoreObjectDao storeObjectDao; private final StoreObjectDao storeObjectDao;
private final GtasksPreferenceService gtasksPreferenceService; private final GtasksPreferenceService gtasksPreferenceService;
@ -247,7 +245,7 @@ public class GtasksSyncV2Provider {
if (errorHandler != null) { if (errorHandler != null) {
errorHandler.handleException(e); errorHandler.handleException(e);
} else { } else {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }

@ -13,8 +13,6 @@ import com.google.api.services.tasks.TasksScopes;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import java.io.IOException; import java.io.IOException;
@ -23,6 +21,8 @@ import java.util.List;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static com.google.common.collect.Iterables.tryFind; import static com.google.common.collect.Iterables.tryFind;
import static com.google.common.collect.Lists.transform; import static com.google.common.collect.Lists.transform;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
@ -32,11 +32,11 @@ public class AccountManager {
public void clearToken(GoogleAccountCredential credential) throws IOException { public void clearToken(GoogleAccountCredential credential) throws IOException {
try { try {
String token = credential.getToken(); String token = credential.getToken();
log.debug("Invalidating {}", token); Timber.d("Invalidating %s", token);
GoogleAuthUtil.clearToken(context, token); GoogleAuthUtil.clearToken(context, token);
GoogleAuthUtil.getTokenWithNotification(context, credential.getSelectedAccount(), "oauth2:" + TasksScopes.TASKS, null); GoogleAuthUtil.getTokenWithNotification(context, credential.getSelectedAccount(), "oauth2:" + TasksScopes.TASKS, null);
} catch (GoogleAuthException e) { } catch (GoogleAuthException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
throw new IOException(e); throw new IOException(e);
} }
} }
@ -46,8 +46,6 @@ public class AccountManager {
void authenticationFailed(String message); void authenticationFailed(String message);
} }
private static final Logger log = LoggerFactory.getLogger(AccountManager.class);
public static final int REQUEST_AUTHORIZATION = 10987; public static final int REQUEST_AUTHORIZATION = 10987;
private final Context context; private final Context context;
@ -89,10 +87,10 @@ public class AccountManager {
try { try {
handler.authenticationSuccessful(accountName, GoogleAuthUtil.getToken(activity, account, "oauth2:" + TasksScopes.TASKS, null)); handler.authenticationSuccessful(accountName, GoogleAuthUtil.getToken(activity, account, "oauth2:" + TasksScopes.TASKS, null));
} catch(UserRecoverableAuthException e) { } catch(UserRecoverableAuthException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
activity.startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION); activity.startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
} catch(GoogleAuthException | IOException e) { } catch(GoogleAuthException | IOException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
handler.authenticationFailed(context.getString(R.string.gtasks_GLA_errorIOAuth)); handler.authenticationFailed(context.getString(R.string.gtasks_GLA_errorIOAuth));
} }
} }

@ -5,8 +5,6 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.widget.Toast; import android.widget.Toast;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.BuildConfig; import org.tasks.BuildConfig;
import org.tasks.R; import org.tasks.R;
import org.tasks.billing.IabHelper; import org.tasks.billing.IabHelper;
@ -23,12 +21,12 @@ import java.util.regex.Pattern;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
public class DonationActivity extends InjectingAppCompatActivity implements IabHelper.OnIabSetupFinishedListener, public class DonationActivity extends InjectingAppCompatActivity implements IabHelper.OnIabSetupFinishedListener,
IabHelper.QueryInventoryFinishedListener, IabHelper.OnIabPurchaseFinishedListener, IabHelper.QueryInventoryFinishedListener, IabHelper.OnIabPurchaseFinishedListener,
IabHelper.OnConsumeFinishedListener, IabHelper.OnConsumeMultiFinishedListener { IabHelper.OnConsumeFinishedListener, IabHelper.OnConsumeMultiFinishedListener {
private static final Logger log = LoggerFactory.getLogger(DonationActivity.class);
private static final int RC_REQUEST = 10001; private static final int RC_REQUEST = 10001;
private IabHelper iabHelper; private IabHelper iabHelper;
@ -42,7 +40,7 @@ public class DonationActivity extends InjectingAppCompatActivity implements IabH
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
iabHelper = new IabHelper(this, getString(R.string.gp_key)); iabHelper = new IabHelper(this, getString(R.string.gp_key));
if (log.isDebugEnabled()) { if (BuildConfig.DEBUG) {
iabHelper.enableDebugLogging(true, BuildConfig.APPLICATION_ID); iabHelper.enableDebugLogging(true, BuildConfig.APPLICATION_ID);
} }
iabHelper.startSetup(this); iabHelper.startSetup(this);
@ -118,7 +116,7 @@ public class DonationActivity extends InjectingAppCompatActivity implements IabH
} }
if (result.isSuccess()) { if (result.isSuccess()) {
log.debug("IAB setup successful"); Timber.d("IAB setup successful");
iabHelper.queryInventoryAsync(this); iabHelper.queryInventoryAsync(this);
} else { } else {
error(result.getMessage()); error(result.getMessage());
@ -131,7 +129,7 @@ public class DonationActivity extends InjectingAppCompatActivity implements IabH
return; return;
} }
if (result.isFailure()) { if (result.isFailure()) {
log.error("Query inventory failed: {}", result); Timber.e("Query inventory failed: %s", result);
} else { } else {
this.inventory = inventory; this.inventory = inventory;
iabHelper.consumeAsync(inventory.getAllPurchases(), this); iabHelper.consumeAsync(inventory.getAllPurchases(), this);
@ -139,7 +137,7 @@ public class DonationActivity extends InjectingAppCompatActivity implements IabH
} }
private void error(String message) { private void error(String message) {
log.error(message); Timber.e(message);
Toast.makeText(DonationActivity.this, message, Toast.LENGTH_LONG).show(); Toast.makeText(DonationActivity.this, message, Toast.LENGTH_LONG).show();
finish(); finish();
} }
@ -151,7 +149,7 @@ public class DonationActivity extends InjectingAppCompatActivity implements IabH
} }
if (result.isSuccess()) { if (result.isSuccess()) {
log.debug("Purchased {}", purchase); Timber.d("Purchased %s", purchase);
iabHelper.consumeAsync(purchase, this); iabHelper.consumeAsync(purchase, this);
} else { } else {
error(result.getMessage()); error(result.getMessage());
@ -161,9 +159,9 @@ public class DonationActivity extends InjectingAppCompatActivity implements IabH
@Override @Override
public void onConsumeFinished(Purchase purchase, IabResult result) { public void onConsumeFinished(Purchase purchase, IabResult result) {
if (result.isSuccess()) { if (result.isSuccess()) {
log.debug("Consumed {}", purchase); Timber.d("Consumed %s", purchase);
} else { } else {
log.error("Error consuming {}: {}", purchase, result); Timber.e("Error consuming %s: %s", purchase, result);
} }
finish(); finish();
} }
@ -171,7 +169,7 @@ public class DonationActivity extends InjectingAppCompatActivity implements IabH
@Override @Override
public void onConsumeMultiFinished(List<Purchase> purchases, List<IabResult> results) { public void onConsumeMultiFinished(List<Purchase> purchases, List<IabResult> results) {
for (int i = 0 ; i < purchases.size() && i < results.size() ; i++) { for (int i = 0 ; i < purchases.size() && i < results.size() ; i++) {
log.debug("Consume {}: {}", purchases.get(i), results.get(i)); Timber.d("Consume %s: %s", purchases.get(i), results.get(i));
} }
} }
@ -183,7 +181,7 @@ public class DonationActivity extends InjectingAppCompatActivity implements IabH
: resultCode == RESULT_CANCELED : resultCode == RESULT_CANCELED
? "RESULT_CANCELED" ? "RESULT_CANCELED"
: Integer.toString(resultCode); : Integer.toString(resultCode);
log.debug("onActivityResult(RC_REQUEST, {}, {})", resultString, data); Timber.d("onActivityResult(RC_REQUEST, %s, %s)", resultString, data);
finish(); finish();
} else { } else {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);

@ -1,14 +1,11 @@
package org.tasks.dialogs; package org.tasks.dialogs;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.IntentSender; import android.content.IntentSender;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AlertDialog;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
@ -23,8 +20,6 @@ import com.google.android.gms.location.places.Place;
import com.google.android.gms.location.places.PlaceBuffer; import com.google.android.gms.location.places.PlaceBuffer;
import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.LatLng;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingDialogFragment; import org.tasks.injection.InjectingDialogFragment;
import org.tasks.location.Geofence; import org.tasks.location.Geofence;
@ -35,9 +30,10 @@ import org.tasks.preferences.ActivityPreferences;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
public class LocationPickerDialog extends InjectingDialogFragment implements GoogleApiClient.OnConnectionFailedListener { public class LocationPickerDialog extends InjectingDialogFragment implements GoogleApiClient.OnConnectionFailedListener {
private static final Logger log = LoggerFactory.getLogger(LocationPickerDialog.class);
private static final int RC_RESOLVE_GPS_ISSUE = 10009; private static final int RC_RESOLVE_GPS_ISSUE = 10009;
private PlaceAutocompleteAdapter mAdapter; private PlaceAutocompleteAdapter mAdapter;
@ -90,7 +86,7 @@ public class LocationPickerDialog extends InjectingDialogFragment implements Goo
} }
private void error(String text) { private void error(String text) {
log.error(text); Timber.e(text);
Toast.makeText(fragmentActivity, text, Toast.LENGTH_LONG).show(); Toast.makeText(fragmentActivity, text, Toast.LENGTH_LONG).show();
} }
@ -100,7 +96,7 @@ public class LocationPickerDialog extends InjectingDialogFragment implements Goo
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final PlaceAutocompleteAdapter.PlaceAutocomplete item = mAdapter.getItem(position); final PlaceAutocompleteAdapter.PlaceAutocomplete item = mAdapter.getItem(position);
final String placeId = String.valueOf(item.placeId); final String placeId = String.valueOf(item.placeId);
log.info("Autocomplete item selected: " + item.description); Timber.i("Autocomplete item selected: %s", item.description);
googleApi.getPlaceDetails(placeId, mUpdatePlaceDetailsCallback); googleApi.getPlaceDetails(placeId, mUpdatePlaceDetailsCallback);
} }
}; };
@ -113,7 +109,7 @@ public class LocationPickerDialog extends InjectingDialogFragment implements Goo
final Place place = places.get(0); final Place place = places.get(0);
LatLng latLng = place.getLatLng(); LatLng latLng = place.getLatLng();
Geofence geofence = new Geofence(place.getName().toString(), latLng.latitude, latLng.longitude, activityPreferences.getIntegerFromString(R.string.p_geofence_radius, 250)); Geofence geofence = new Geofence(place.getName().toString(), latLng.latitude, latLng.longitude, activityPreferences.getIntegerFromString(R.string.p_geofence_radius, 250));
log.info("Picked {}", geofence); Timber.i("Picked %s", geofence);
onLocationPickedHandler.onLocationPicked(geofence); onLocationPickedHandler.onLocationPicked(geofence);
dismiss(); dismiss();
} else { } else {
@ -139,13 +135,13 @@ public class LocationPickerDialog extends InjectingDialogFragment implements Goo
@Override @Override
public void onConnectionFailed(ConnectionResult connectionResult) { public void onConnectionFailed(ConnectionResult connectionResult) {
if (resolvingError) { if (resolvingError) {
log.info("Ignoring {}, already resolving error", connectionResult); Timber.i("Ignoring %s, already resolving error", connectionResult);
} else if (connectionResult.hasResolution()) { } else if (connectionResult.hasResolution()) {
try { try {
resolvingError = true; resolvingError = true;
connectionResult.startResolutionForResult(fragmentActivity, RC_RESOLVE_GPS_ISSUE); connectionResult.startResolutionForResult(fragmentActivity, RC_RESOLVE_GPS_ISSUE);
} catch (IntentSender.SendIntentException e) { } catch (IntentSender.SendIntentException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
googleApi.connect(this); googleApi.connect(this);
} }
} else { } else {

@ -12,8 +12,6 @@ import com.google.android.gms.location.GeofencingRequest;
import com.google.android.gms.location.LocationServices; import com.google.android.gms.location.LocationServices;
import com.google.common.base.Function; import com.google.common.base.Function;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.preferences.PermissionChecker; import org.tasks.preferences.PermissionChecker;
@ -22,9 +20,10 @@ import org.tasks.preferences.Preferences;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static com.google.android.gms.location.Geofence.NEVER_EXPIRE; import static com.google.android.gms.location.Geofence.NEVER_EXPIRE;
import static com.google.common.collect.Iterables.transform; import static com.google.common.collect.Iterables.transform;
import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Lists.newArrayList;
@ -32,8 +31,6 @@ import static java.util.Collections.singletonList;
public class GeofenceApi { public class GeofenceApi {
private static final Logger log = LoggerFactory.getLogger(GeofenceApi.class);
private Context context; private Context context;
private Preferences preferences; private Preferences preferences;
private PermissionChecker permissionChecker; private PermissionChecker permissionChecker;
@ -61,9 +58,9 @@ public class GeofenceApi {
@Override @Override
public void onResult(Status status) { public void onResult(Status status) {
if (status.isSuccess()) { if (status.isSuccess()) {
log.info("Registered {}", geofences); Timber.i("Registered %s", geofences);
} else { } else {
log.error("Failed to register {}", geofences); Timber.e("Failed to register %s", geofences);
} }
client.disconnect(); client.disconnect();
@ -97,9 +94,9 @@ public class GeofenceApi {
@Override @Override
public void onResult(Status status) { public void onResult(Status status) {
if (status.isSuccess()) { if (status.isSuccess()) {
log.info("Removed {}", geofences); Timber.i("Removed %s", geofences);
} else { } else {
log.error("Failed to remove {}", geofences); Timber.e("Failed to remove %s", geofences);
} }
client.disconnect(); client.disconnect();

@ -7,9 +7,6 @@ import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.reminders.ReminderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster;
import org.tasks.Notifier; import org.tasks.Notifier;
import org.tasks.injection.InjectingIntentService; import org.tasks.injection.InjectingIntentService;
@ -17,9 +14,9 @@ import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
public class GeofenceTransitionsIntentService extends InjectingIntentService { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(GeofenceTransitionsIntentService.class); public class GeofenceTransitionsIntentService extends InjectingIntentService {
@Inject MetadataDao metadataDao; @Inject MetadataDao metadataDao;
@Inject Notifier notifier; @Inject Notifier notifier;
@ -33,20 +30,20 @@ public class GeofenceTransitionsIntentService extends InjectingIntentService {
GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent); GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
if (geofencingEvent.hasError()) { if (geofencingEvent.hasError()) {
log.error("geofence error code {}", geofencingEvent.getErrorCode()); Timber.e("geofence error code %s", geofencingEvent.getErrorCode());
return; return;
} }
int transitionType = geofencingEvent.getGeofenceTransition(); int transitionType = geofencingEvent.getGeofenceTransition();
List<com.google.android.gms.location.Geofence> triggeringGeofences = geofencingEvent.getTriggeringGeofences(); List<com.google.android.gms.location.Geofence> triggeringGeofences = geofencingEvent.getTriggeringGeofences();
log.info("Received geofence transition: {}, {}", transitionType, triggeringGeofences); Timber.i("Received geofence transition: %s, %s", transitionType, triggeringGeofences);
if (transitionType == com.google.android.gms.location.Geofence.GEOFENCE_TRANSITION_ENTER) { if (transitionType == com.google.android.gms.location.Geofence.GEOFENCE_TRANSITION_ENTER) {
for (com.google.android.gms.location.Geofence triggerGeofence : triggeringGeofences) { for (com.google.android.gms.location.Geofence triggerGeofence : triggeringGeofences) {
triggerNotification(triggerGeofence); triggerNotification(triggerGeofence);
} }
} else { } else {
log.warn("invalid geofence transition type: {}", transitionType); Timber.w("invalid geofence transition type: %s", transitionType);
} }
} }
@ -57,7 +54,7 @@ public class GeofenceTransitionsIntentService extends InjectingIntentService {
Geofence geofence = new Geofence(fetch); Geofence geofence = new Geofence(fetch);
notifier.triggerTaskNotification(geofence.getTaskId(), ReminderService.TYPE_ALARM); notifier.triggerTaskNotification(geofence.getTaskId(), ReminderService.TYPE_ALARM);
} catch(Exception e) { } catch(Exception e) {
log.error(String.format("Error triggering geofence %s: %s", requestId, e.getMessage()), e); Timber.e(e, "Error triggering geofence %s: %s", requestId, e.getMessage());
} }
} }
} }

@ -14,17 +14,15 @@ import com.google.android.gms.location.places.Places;
import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.LatLngBounds; import com.google.android.gms.maps.model.LatLngBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import javax.inject.Inject; import javax.inject.Inject;
public class GoogleApi implements GoogleApiClient.ConnectionCallbacks { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(GoogleApi.class); public class GoogleApi implements GoogleApiClient.ConnectionCallbacks {
private GoogleApiClient.Builder builder; private GoogleApiClient.Builder builder;
private GoogleApiClient googleApiClient; private GoogleApiClient googleApiClient;
@ -67,7 +65,7 @@ public class GoogleApi implements GoogleApiClient.ConnectionCallbacks {
Location lastLocation = LocationServices.FusedLocationApi.getLastLocation(googleApiClient); Location lastLocation = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
return new LatLng(lastLocation.getLatitude(), lastLocation.getLongitude()); return new LatLng(lastLocation.getLatitude(), lastLocation.getLongitude());
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return new LatLng(0, 0); return new LatLng(0, 0);
} }
} }
@ -76,7 +74,7 @@ public class GoogleApi implements GoogleApiClient.ConnectionCallbacks {
connect(googleApiClientConnectionHandler, new GoogleApiClient.OnConnectionFailedListener() { connect(googleApiClientConnectionHandler, new GoogleApiClient.OnConnectionFailedListener() {
@Override @Override
public void onConnectionFailed(ConnectionResult connectionResult) { public void onConnectionFailed(ConnectionResult connectionResult) {
log.error("onConnectionFailed({})", connectionResult); Timber.e("onConnectionFailed(%s)", connectionResult);
} }
}); });
} }
@ -85,7 +83,7 @@ public class GoogleApi implements GoogleApiClient.ConnectionCallbacks {
connect(new GoogleApiClientConnectionHandler() { connect(new GoogleApiClientConnectionHandler() {
@Override @Override
public void onConnect(GoogleApiClient client) { public void onConnect(GoogleApiClient client) {
log.info("onConnect({})", client); Timber.i("onConnect(%s)", client);
} }
}, onConnectionFailedListener); }, onConnectionFailedListener);
} }
@ -104,12 +102,12 @@ public class GoogleApi implements GoogleApiClient.ConnectionCallbacks {
@Override @Override
public void onConnected(Bundle bundle) { public void onConnected(Bundle bundle) {
log.info("onConnected(Bundle)"); Timber.i("onConnected(Bundle)");
googleApiClientConnectionHandler.onConnect(googleApiClient); googleApiClientConnectionHandler.onConnect(googleApiClient);
} }
@Override @Override
public void onConnectionSuspended(int i) { public void onConnectionSuspended(int i) {
log.info("onConnectionSuspended({})", i); Timber.i("onConnectionSuspended(%s)", i);
} }
} }

@ -10,17 +10,15 @@ import com.google.android.gms.common.api.Status;
import com.google.android.gms.location.places.AutocompletePrediction; import com.google.android.gms.location.places.AutocompletePrediction;
import com.google.android.gms.location.places.AutocompletePredictionBuffer; import com.google.android.gms.location.places.AutocompletePredictionBuffer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import timber.log.Timber;
public class PlaceAutocompleteAdapter public class PlaceAutocompleteAdapter
extends ArrayAdapter<PlaceAutocompleteAdapter.PlaceAutocomplete> { extends ArrayAdapter<PlaceAutocompleteAdapter.PlaceAutocomplete> {
private static final Logger log = LoggerFactory.getLogger(PlaceAutocompleteAdapter.class);
private final GoogleApi googleApi; private final GoogleApi googleApi;
private List<PlaceAutocomplete> mResultList = new ArrayList<>(); private List<PlaceAutocomplete> mResultList = new ArrayList<>();
@ -72,13 +70,12 @@ public class PlaceAutocompleteAdapter
if (!status.isSuccess()) { if (!status.isSuccess()) {
Toast.makeText(getContext(), "Error contacting API: " + status.toString(), Toast.makeText(getContext(), "Error contacting API: " + status.toString(),
Toast.LENGTH_SHORT).show(); Toast.LENGTH_SHORT).show();
log.error("Error getting autocomplete prediction API call: " + status.toString()); Timber.e("Error getting autocomplete prediction API call: %s", status.toString());
autocompletePredictions.release(); autocompletePredictions.release();
return; return;
} }
log.info("Query completed. Received " + autocompletePredictions.getCount() Timber.i("Query completed. Received %s predictions", autocompletePredictions.getCount());
+ " predictions.");
Iterator<AutocompletePrediction> iterator = autocompletePredictions.iterator(); Iterator<AutocompletePrediction> iterator = autocompletePredictions.iterator();
List<PlaceAutocomplete> resultList = new ArrayList<>(autocompletePredictions.getCount()); List<PlaceAutocomplete> resultList = new ArrayList<>(autocompletePredictions.getCount());

@ -3,8 +3,6 @@ package org.tasks.scheduling;
import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.gtasks.sync.GtasksSyncV2Provider; import com.todoroo.astrid.gtasks.sync.GtasksSyncV2Provider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster; import org.tasks.Broadcaster;
import org.tasks.R; import org.tasks.R;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -12,12 +10,12 @@ import org.tasks.sync.RecordSyncStatusCallback;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static java.util.concurrent.TimeUnit.SECONDS; import static java.util.concurrent.TimeUnit.SECONDS;
public class GtasksBackgroundService extends RecurringIntervalIntentService { public class GtasksBackgroundService extends RecurringIntervalIntentService {
private static final Logger log = LoggerFactory.getLogger(GtasksBackgroundService.class);
@Inject Preferences preferences; @Inject Preferences preferences;
@Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksPreferenceService gtasksPreferenceService;
@Inject GtasksSyncV2Provider gtasksSyncV2Provider; @Inject GtasksSyncV2Provider gtasksSyncV2Provider;
@ -30,7 +28,7 @@ public class GtasksBackgroundService extends RecurringIntervalIntentService {
@Override @Override
void run() { void run() {
if (gtasksPreferenceService.isOngoing()) { if (gtasksPreferenceService.isOngoing()) {
log.debug("aborting: sync ongoing"); Timber.d("aborting: sync ongoing");
return; return;
} }
if(gtasksPreferenceService.isLoggedIn() && gtasksSyncV2Provider.isActive()) { if(gtasksPreferenceService.isLoggedIn() && gtasksSyncV2Provider.isActive()) {
@ -43,7 +41,7 @@ public class GtasksBackgroundService extends RecurringIntervalIntentService {
try { try {
return SECONDS.toMillis(preferences.getIntegerFromString(R.string.gtasks_GPr_interval_key, 0)); return SECONDS.toMillis(preferences.getIntegerFromString(R.string.gtasks_GPr_interval_key, 0));
} catch(Exception e) { } catch(Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
preferences.setString(R.string.gtasks_GPr_interval_key, "0"); preferences.setString(R.string.gtasks_GPr_interval_key, "0");
return 0; return 0;
} }

@ -1,9 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
package="org.tasks"> package="org.tasks">
<uses-sdk tools:overrideLibrary="timber.log"/>
<!-- ================================================== Used Permissions = --> <!-- ================================================== Used Permissions = -->
<!-- ************* --> <!-- ************* -->

@ -1,11 +0,0 @@
<configuration debug='false'>
<appender name="LOGCAT" class="ch.qos.logback.classic.android.LogcatAppender">
<encoder>
<pattern>[%thread] %-5level - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="LOGCAT"/>
</root>
</configuration>

@ -14,9 +14,6 @@ import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.PropertyVisitor; import com.todoroo.andlib.data.Property.PropertyVisitor;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Array; import java.lang.reflect.Array;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
@ -25,6 +22,8 @@ import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map.Entry; import java.util.Map.Entry;
import timber.log.Timber;
import static com.todoroo.andlib.data.Property.DoubleProperty; import static com.todoroo.andlib.data.Property.DoubleProperty;
/** /**
@ -39,8 +38,6 @@ import static com.todoroo.andlib.data.Property.DoubleProperty;
*/ */
public abstract class AbstractModel implements Parcelable, Cloneable { public abstract class AbstractModel implements Parcelable, Cloneable {
private static final Logger log = LoggerFactory.getLogger(AbstractModel.class);
private static final ContentValuesSavingVisitor saver = new ContentValuesSavingVisitor(); private static final ContentValuesSavingVisitor saver = new ContentValuesSavingVisitor();
/** id property common to all models */ /** id property common to all models */
@ -191,7 +188,7 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
saver.save(property, values, cursor.get(property)); saver.save(property, values, cursor.get(property));
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// underlying cursor may have changed, suppress // underlying cursor may have changed, suppress
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }
@ -226,7 +223,7 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
} }
return (TYPE) value; return (TYPE) value;
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return (TYPE) getDefaultValues().get(property.name); return (TYPE) getDefaultValues().get(property.name);
} }
} }

@ -12,13 +12,12 @@ import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import timber.log.Timber;
/** /**
* DAO for reading data from an instance of {@link Database}. If you * DAO for reading data from an instance of {@link Database}. If you
* are writing an add-on for Astrid, you probably want to be using a subclass * are writing an add-on for Astrid, you probably want to be using a subclass
@ -29,8 +28,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
*/ */
public class DatabaseDao<TYPE extends AbstractModel> { public class DatabaseDao<TYPE extends AbstractModel> {
private static final Logger log = LoggerFactory.getLogger(DatabaseDao.class);
private final Class<TYPE> modelClass; private final Class<TYPE> modelClass;
private final Table table; private final Table table;
private final Database database; private final Database database;
@ -167,7 +164,7 @@ public class DatabaseDao<TYPE extends AbstractModel> {
* @return # of deleted items * @return # of deleted items
*/ */
public int deleteWhere(Criterion where) { public int deleteWhere(Criterion where) {
log.debug("deleteWhere({})", where); Timber.d("deleteWhere(%s)", where);
return database.delete(table.name, return database.delete(table.name,
where.toString(), null); where.toString(), null);
} }
@ -222,7 +219,7 @@ public class DatabaseDao<TYPE extends AbstractModel> {
if (result.get()) { if (result.get()) {
onModelUpdated(item); onModelUpdated(item);
item.markSaved(); item.markSaved();
log.debug("{} {}", op, item); Timber.d("%s %s", op, item);
} }
} }
return result.get(); return result.get();

@ -18,9 +18,6 @@ import android.view.View.OnTouchListener;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.TextView; import android.widget.TextView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
@ -31,6 +28,8 @@ import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;
import java.util.Map.Entry; import java.util.Map.Entry;
import timber.log.Timber;
/** /**
* Android Utility Classes * Android Utility Classes
* *
@ -39,8 +38,6 @@ import java.util.Map.Entry;
*/ */
public class AndroidUtilities { public class AndroidUtilities {
private static final Logger log = LoggerFactory.getLogger(AndroidUtilities.class);
public static final String SEPARATOR_ESCAPE = "!PIPE!"; //$NON-NLS-1$ public static final String SEPARATOR_ESCAPE = "!PIPE!"; //$NON-NLS-1$
public static final String SERIALIZATION_SEPARATOR = "|"; //$NON-NLS-1$ public static final String SERIALIZATION_SEPARATOR = "|"; //$NON-NLS-1$
@ -255,10 +252,10 @@ public class AndroidUtilities {
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
// failed parse to number // failed parse to number
putter.put(object, key, 's', value); putter.put(object, key, 's', value);
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} catch (IndexOutOfBoundsException e) { } catch (IndexOutOfBoundsException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }
@ -437,7 +434,7 @@ public class AndroidUtilities {
activity.unregisterReceiver(receiver); activity.unregisterReceiver(receiver);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// Receiver wasn't registered for some reason // Receiver wasn't registered for some reason
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }

@ -9,13 +9,10 @@ package com.todoroo.andlib.utility;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import org.slf4j.Logger; import timber.log.Timber;
import org.slf4j.LoggerFactory;
public class DialogUtilities { public class DialogUtilities {
private static final Logger log = LoggerFactory.getLogger(DialogUtilities.class);
/** /**
* Dismiss a dialog off the UI thread * Dismiss a dialog off the UI thread
*/ */
@ -30,7 +27,7 @@ public class DialogUtilities {
try { try {
dialog.dismiss(); dialog.dismiss();
} catch(Exception e) { } catch(Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
}); });

@ -9,8 +9,7 @@ import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import org.slf4j.Logger; import timber.log.Timber;
import org.slf4j.LoggerFactory;
/** /**
* Helper class for reading and writing SharedPreferences * Helper class for reading and writing SharedPreferences
@ -21,8 +20,6 @@ import org.slf4j.LoggerFactory;
@Deprecated @Deprecated
public class Preferences { public class Preferences {
private static final Logger log = LoggerFactory.getLogger(Preferences.class);
private static SharedPreferences preferences = null; private static SharedPreferences preferences = null;
/** Get preferences object from the context */ /** Get preferences object from the context */
@ -39,7 +36,7 @@ public class Preferences {
preferences.edit().commit(); preferences.edit().commit();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
String alternate = "preferences" + android.os.Process.myUid(); //$NON-NLS-1$ String alternate = "preferences" + android.os.Process.myUid(); //$NON-NLS-1$
preferences = context.getSharedPreferences(alternate, Context.MODE_PRIVATE); preferences = context.getSharedPreferences(alternate, Context.MODE_PRIVATE);
} }
@ -51,7 +48,7 @@ public class Preferences {
try { try {
return getPrefs(context).getBoolean(context.getString(keyResources), defValue); return getPrefs(context).getBoolean(context.getString(keyResources), defValue);
} catch (ClassCastException e) { } catch (ClassCastException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return defValue; return defValue;
} }
} }

@ -14,8 +14,6 @@ import android.support.v4.app.Fragment;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.Toast; import android.widget.Toast;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.DeviceInfo; import org.tasks.preferences.DeviceInfo;
@ -29,9 +27,9 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject; import javax.inject.Inject;
public class ActFmCameraModule { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(ActFmCameraModule.class); public class ActFmCameraModule {
protected static final int REQUEST_CODE_CAMERA = 1; protected static final int REQUEST_CODE_CAMERA = 1;
@ -121,7 +119,7 @@ public class ActFmCameraModule {
} }
return file; return file;
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
return null; return null;
} }

@ -69,8 +69,6 @@ import com.todoroo.astrid.ui.PopupControlSet;
import com.todoroo.astrid.ui.ReminderControlSet; import com.todoroo.astrid.ui.ReminderControlSet;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.AddAttachmentActivity; import org.tasks.activities.AddAttachmentActivity;
import org.tasks.activities.LocationPickerActivity; import org.tasks.activities.LocationPickerActivity;
@ -95,6 +93,7 @@ import javax.inject.Inject;
import butterknife.Bind; import butterknife.Bind;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.preGingerbreadMR1; import static com.todoroo.andlib.utility.AndroidUtilities.preGingerbreadMR1;
import static org.tasks.files.FileHelper.getPathFromUri; import static org.tasks.files.FileHelper.getPathFromUri;
@ -110,8 +109,6 @@ import static org.tasks.files.FileHelper.getPathFromUri;
public final class TaskEditFragment extends InjectingFragment implements public final class TaskEditFragment extends InjectingFragment implements
ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
private static final Logger log = LoggerFactory.getLogger(TaskEditFragment.class);
public static final String TAG_TASKEDIT_FRAGMENT = "taskedit_fragment"; //$NON-NLS-1$ public static final String TAG_TASKEDIT_FRAGMENT = "taskedit_fragment"; //$NON-NLS-1$
// --- bundle tokens // --- bundle tokens
@ -518,7 +515,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
} }
} catch (Exception e) { } catch (Exception e) {
// oops, can't serialize // oops, can't serialize
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
model = taskService.createWithValues(values, null); model = taskService.createWithValues(values, null);
getActivity().getIntent().putExtra(TOKEN_ID, model.getId()); getActivity().getIntent().putExtra(TOKEN_ID, model.getId());
@ -533,7 +530,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
setIsNewTask(model.getTitle().length() == 0); setIsNewTask(model.getTitle().length() == 0);
if (model == null) { if (model == null) {
log.error("task-edit-no-task", new NullPointerException("model")); Timber.e(new NullPointerException("model"), "task-edit-no-task");
getActivity().onBackPressed(); getActivity().onBackPressed();
return; return;
} }
@ -738,7 +735,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
String extension = path.substring(path.lastIndexOf('.') + 1); String extension = path.substring(path.lastIndexOf('.') + 1);
filesControlSet.createNewFileAttachment(path, file.getName(), TaskAttachment.FILE_TYPE_IMAGE + extension); filesControlSet.createNewFileAttachment(path, file.getName(), TaskAttachment.FILE_TYPE_IMAGE + extension);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
Toast.makeText(getActivity(), R.string.file_err_copy, Toast.LENGTH_LONG).show(); Toast.makeText(getActivity(), R.string.file_err_copy, Toast.LENGTH_LONG).show();
} }
} }
@ -820,7 +817,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
if (timestamp > 0) { if (timestamp > 0) {
hideUntilControls.setCustomDate(timestamp); hideUntilControls.setCustomDate(timestamp);
} else { } else {
log.error("Invalid timestamp"); Timber.e("Invalid timestamp");
} }
return; return;
} else if (requestCode == ReminderControlSet.REQUEST_NEW_ALARM && resultCode == Activity.RESULT_OK) { } else if (requestCode == ReminderControlSet.REQUEST_NEW_ALARM && resultCode == Activity.RESULT_OK) {
@ -828,14 +825,14 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
if (timestamp > 0) { if (timestamp > 0) {
reminderControlSet.addAlarmRow(timestamp); reminderControlSet.addAlarmRow(timestamp);
} else { } else {
log.error("Invalid timestamp"); Timber.e("Invalid timestamp");
} }
} else if (requestCode == ReminderControlSet.REQUEST_LOCATION_REMINDER && resultCode == Activity.RESULT_OK) { } else if (requestCode == ReminderControlSet.REQUEST_LOCATION_REMINDER && resultCode == Activity.RESULT_OK) {
Geofence geofence = (Geofence) data.getSerializableExtra(LocationPickerActivity.EXTRA_GEOFENCE); Geofence geofence = (Geofence) data.getSerializableExtra(LocationPickerActivity.EXTRA_GEOFENCE);
if (geofence != null) { if (geofence != null) {
reminderControlSet.addGeolocationReminder(geofence); reminderControlSet.addGeolocationReminder(geofence);
} else { } else {
log.error("Invalid geofence"); Timber.e("Invalid geofence");
} }
} else if (editNotes != null && editNotes.activityResult(requestCode, resultCode, data)) { } else if (editNotes != null && editNotes.activityResult(requestCode, resultCode, data)) {
return; return;

@ -50,8 +50,6 @@ import com.todoroo.astrid.utility.Flags;
import com.todoroo.astrid.voice.VoiceInputAssistant; import com.todoroo.astrid.voice.VoiceInputAssistant;
import com.todoroo.astrid.widget.TasksWidget; import com.todoroo.astrid.widget.TasksWidget;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.SortActivity; import org.tasks.activities.SortActivity;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
@ -61,13 +59,13 @@ import org.tasks.ui.NavigationDrawerFragment;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.astrid.voice.VoiceInputAssistant.voiceInputAvailable; import static com.todoroo.astrid.voice.VoiceInputAssistant.voiceInputAvailable;
import static org.tasks.ui.NavigationDrawerFragment.OnFilterItemClickedListener; import static org.tasks.ui.NavigationDrawerFragment.OnFilterItemClickedListener;
public class TaskListActivity extends AstridActivity implements OnPageChangeListener, OnFilterItemClickedListener { public class TaskListActivity extends AstridActivity implements OnPageChangeListener, OnFilterItemClickedListener {
private static final Logger log = LoggerFactory.getLogger(TaskListActivity.class);
@Inject TagDataDao tagDataDao; @Inject TagDataDao tagDataDao;
@Inject ActivityPreferences preferences; @Inject ActivityPreferences preferences;
@Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksPreferenceService gtasksPreferenceService;
@ -307,7 +305,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
}); });
} catch (Exception e) { } catch (Exception e) {
// Don't worry about it // Don't worry about it
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }

@ -70,8 +70,6 @@ import com.todoroo.astrid.timers.TimerPlugin;
import com.todoroo.astrid.ui.QuickAddBar; import com.todoroo.astrid.ui.QuickAddBar;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ForActivity; import org.tasks.injection.ForActivity;
@ -87,6 +85,8 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static org.tasks.intents.TaskIntents.getNewTaskIntent; import static org.tasks.intents.TaskIntents.getNewTaskIntent;
/** /**
@ -98,8 +98,6 @@ import static org.tasks.intents.TaskIntents.getNewTaskIntent;
*/ */
public class TaskListFragment extends InjectingListFragment implements SwipeRefreshLayout.OnRefreshListener { public class TaskListFragment extends InjectingListFragment implements SwipeRefreshLayout.OnRefreshListener {
private static final Logger log = LoggerFactory.getLogger(TaskListFragment.class);
public static final String TAG_TASKLIST_FRAGMENT = "tasklist_fragment"; //$NON-NLS-1$ public static final String TAG_TASKLIST_FRAGMENT = "tasklist_fragment"; //$NON-NLS-1$
// --- activities // --- activities
@ -183,7 +181,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
component = Class.forName(((FilterWithCustomIntent) filter).customTaskList.getClassName()); component = Class.forName(((FilterWithCustomIntent) filter).customTaskList.getClassName());
} catch (Exception e) { } catch (Exception e) {
// Invalid // Invalid
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
if (component == null) { if (component == null) {
@ -194,7 +192,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
try { try {
newFragment = (TaskListFragment) component.newInstance(); newFragment = (TaskListFragment) component.newInstance();
} catch (java.lang.InstantiationException | IllegalAccessException e) { } catch (java.lang.InstantiationException | IllegalAccessException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
newFragment = new TaskListFragment(); newFragment = new TaskListFragment();
} }
Bundle args = new Bundle(); Bundle args = new Bundle();
@ -479,7 +477,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
refresh(); refresh();
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
// view may have been destroyed // view may have been destroyed
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
}); });
@ -598,7 +596,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
Task model = taskEditFragment == null ? null : taskEditFragment.model; Task model = taskEditFragment == null ? null : taskEditFragment.model;
taskDeleter.deleteTasksWithEmptyTitles(model == null ? null : model.getId()); taskDeleter.deleteTasksWithEmptyTitles(model == null ? null : model.getId());
} catch(Exception e) { } catch(Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
loadTaskListContent(); loadTaskListContent();
setSyncOngoing(false); setSyncOngoing(false);
@ -723,7 +721,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
// by a strange bug, but there seems to not be any negative side effect. // by a strange bug, but there seems to not be any negative side effect.
// For now, we'll suppress the error // For now, we'll suppress the error
// See http://astrid.com/home#tags-7tsoi/task-1119pk // See http://astrid.com/home#tags-7tsoi/task-1119pk
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return null; return null;
} }
} }

@ -48,8 +48,6 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.tags.TaskToTagMetadata; import com.todoroo.astrid.tags.TaskToTagMetadata;
import com.todoroo.astrid.ui.CheckableImageView; import com.todoroo.astrid.ui.CheckableImageView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
@ -57,6 +55,8 @@ import org.tasks.preferences.ActivityPreferences;
import java.util.HashMap; import java.util.HashMap;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import timber.log.Timber;
/** /**
* Adapter for displaying a user's tasks as a list * Adapter for displaying a user's tasks as a list
* *
@ -65,8 +65,6 @@ import java.util.concurrent.atomic.AtomicReference;
*/ */
public class TaskAdapter extends CursorAdapter implements Filterable { public class TaskAdapter extends CursorAdapter implements Filterable {
private static final Logger log = LoggerFactory.getLogger(TaskAdapter.class);
public interface OnCompletedTaskListener { public interface OnCompletedTaskListener {
void onCompletedTask(Task item, boolean newState); void onCompletedTask(Task item, boolean newState);
} }
@ -418,7 +416,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
action.intent.send(); action.intent.send();
} catch (CanceledException e) { } catch (CanceledException e) {
// Oh well // Oh well
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }

@ -11,16 +11,14 @@ import android.support.v7.app.AlertDialog;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import java.io.File; import java.io.File;
import java.io.FilenameFilter; import java.io.FilenameFilter;
public class FilePickerBuilder extends AlertDialog.Builder implements DialogInterface.OnClickListener { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(FilePickerBuilder.class); public class FilePickerBuilder extends AlertDialog.Builder implements DialogInterface.OnClickListener {
public interface OnFilePickedListener { public interface OnFilePickedListener {
void onFilePicked(String filePath); void onFilePicked(String filePath);
@ -62,7 +60,7 @@ public class FilePickerBuilder extends AlertDialog.Builder implements DialogInte
setItems(files, this); setItems(files, this);
} else { } else {
log.error("Cannot access sdcard."); Timber.e("Cannot access sdcard.");
setMessage(R.string.DLG_error_sdcard + "sdcard"); setMessage(R.string.DLG_error_sdcard + "sdcard");
} }
} }

@ -28,8 +28,6 @@ import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -41,12 +39,12 @@ import java.io.IOException;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static org.tasks.date.DateTimeUtils.newDateTime; import static org.tasks.date.DateTimeUtils.newDateTime;
public class TasksXmlExporter { public class TasksXmlExporter {
private static final Logger log = LoggerFactory.getLogger(TasksXmlExporter.class);
public static final String PREF_BACKUP_LAST_DATE = "backupDate"; //$NON-NLS-1$ public static final String PREF_BACKUP_LAST_DATE = "backupDate"; //$NON-NLS-1$
// --- public interface // --- public interface
@ -139,7 +137,7 @@ public class TasksXmlExporter {
onFinishExport(output); onFinishExport(output);
} }
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} finally { } finally {
post(new Runnable() { post(new Runnable() {
@Override @Override
@ -248,7 +246,7 @@ public class TasksXmlExporter {
try { try {
property.accept(xmlWritingVisitor, model); property.accept(xmlWritingVisitor, model);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }
@ -266,7 +264,7 @@ public class TasksXmlExporter {
xml.attribute(null, property.name, valueString); xml.attribute(null, property.name, valueString);
} catch (UnsupportedOperationException e) { } catch (UnsupportedOperationException e) {
// didn't read this value, do nothing // didn't read this value, do nothing
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} catch (IllegalArgumentException | IOException | IllegalStateException e) { } catch (IllegalArgumentException | IOException | IllegalStateException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
@ -281,7 +279,7 @@ public class TasksXmlExporter {
xml.attribute(null, property.name, valueString); xml.attribute(null, property.name, valueString);
} catch (UnsupportedOperationException e) { } catch (UnsupportedOperationException e) {
// didn't read this value, do nothing // didn't read this value, do nothing
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} catch (IllegalArgumentException | IOException | IllegalStateException e) { } catch (IllegalArgumentException | IOException | IllegalStateException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
@ -312,7 +310,7 @@ public class TasksXmlExporter {
xml.attribute(null, property.name, value); xml.attribute(null, property.name, value);
} catch (UnsupportedOperationException e) { } catch (UnsupportedOperationException e) {
// didn't read this value, do nothing // didn't read this value, do nothing
log.trace(e.getMessage(), e); Timber.v(e, e.getMessage());
} catch (IllegalArgumentException | IOException | IllegalStateException e) { } catch (IllegalArgumentException | IOException | IllegalStateException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }

@ -31,8 +31,6 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.tags.TaskToTagMetadata; import com.todoroo.astrid.tags.TaskToTagMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParser;
@ -44,9 +42,9 @@ import java.io.IOException;
import javax.inject.Inject; import javax.inject.Inject;
public class TasksXmlImporter { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(TasksXmlImporter.class); public class TasksXmlImporter {
private final TagDataDao tagDataDao; private final TagDataDao tagDataDao;
private final MetadataDao metadataDao; private final MetadataDao metadataDao;
@ -102,7 +100,7 @@ public class TasksXmlImporter {
} }
} catch (BadTokenException e) { } catch (BadTokenException e) {
// Running from a unit test or some such thing // Running from a unit test or some such thing
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
new Thread(new Runnable() { new Thread(new Runnable() {
@ -111,7 +109,7 @@ public class TasksXmlImporter {
try { try {
performImport(); performImport();
} catch (IOException | XmlPullParserException e) { } catch (IOException | XmlPullParserException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
}).start(); }).start();
@ -214,7 +212,7 @@ public class TasksXmlImporter {
} }
} catch (Exception e) { } catch (Exception e) {
errorCount++; errorCount++;
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }
@ -305,7 +303,7 @@ public class TasksXmlImporter {
try { try {
property.accept(xmlReadingVisitor, model); property.accept(xmlReadingVisitor, model);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }
@ -385,7 +383,7 @@ public class TasksXmlImporter {
} }
} catch (Exception e) { } catch (Exception e) {
errorCount++; errorCount++;
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }

@ -17,17 +17,15 @@ import android.text.TextUtils;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Notifier; import org.tasks.Notifier;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import javax.inject.Inject; import javax.inject.Inject;
public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(PhoneStateChangedReceiver.class); public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
private static final String PREF_LAST_INCOMING_NUMBER = "last_incoming_number"; private static final String PREF_LAST_INCOMING_NUMBER = "last_incoming_number";
@ -76,7 +74,7 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
Calls.DATE + " DESC" Calls.DATE + " DESC"
); );
} catch (Exception e) { // Sometimes database is locked, retry once } catch (Exception e) { // Sometimes database is locked, retry once
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
AndroidUtilities.sleepDeep(300L); AndroidUtilities.sleepDeep(300L);
try { try {
calls = context.getContentResolver().query( calls = context.getContentResolver().query(
@ -87,7 +85,7 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
Calls.DATE + " DESC" Calls.DATE + " DESC"
); );
} catch (Exception e2) { } catch (Exception e2) {
log.error(e2.getMessage(), e2); Timber.e(e2, e2.getMessage());
calls = null; calls = null;
} }
} }
@ -123,7 +121,7 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
notifier.triggerMissedCallNotification(name, number, contactId); notifier.triggerMissedCallNotification(name, number, contactId);
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} finally { } finally {
if (calls != null) { if (calls != null) {
calls.close(); calls.close();

@ -27,8 +27,6 @@ import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.data.TaskListMetadata; import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.data.UserActivity; import com.todoroo.astrid.data.UserActivity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import java.util.ArrayList; import java.util.ArrayList;
@ -36,6 +34,8 @@ import java.util.ArrayList;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import timber.log.Timber;
/** /**
* Database wrapper * Database wrapper
* *
@ -45,7 +45,6 @@ import javax.inject.Singleton;
@Singleton @Singleton
public class Database { public class Database {
private static final Logger log = LoggerFactory.getLogger(Database.class);
private static final int VERSION = 35; private static final int VERSION = 35;
private static final String NAME = "database"; private static final String NAME = "database";
private static final Table[] TABLES = new Table[] { private static final Table[] TABLES = new Table[] {
@ -123,7 +122,7 @@ public class Database {
try { try {
database.execSQL(sql); database.execSQL(sql);
} catch (SQLiteException e) { } catch (SQLiteException e) {
log.error("SQL Error: " + sql, e); Timber.e(e, "SQL Error: " + sql);
} }
} }
@ -150,7 +149,7 @@ public class Database {
database.execSQL(sql); database.execSQL(sql);
} catch (SQLiteException e) { } catch (SQLiteException e) {
// ignored, column already exists // ignored, column already exists
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
@ -203,15 +202,15 @@ public class Database {
try { try {
database = helper.getWritableDatabase(); database = helper.getWritableDatabase();
} catch (NullPointerException e) { } catch (NullPointerException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
throw new IllegalStateException(e); throw new IllegalStateException(e);
} catch (final RuntimeException original) { } catch (final RuntimeException original) {
log.error(original.getMessage(), original); Timber.e(original, original.getMessage());
try { try {
// provide read-only database // provide read-only database
openForReading(); openForReading();
} catch (Exception readException) { } catch (Exception readException) {
log.error(readException.getMessage(), readException); Timber.e(readException, readException.getMessage());
// throw original write exception // throw original write exception
throw original; throw original;
} }
@ -270,7 +269,7 @@ public class Database {
} catch (SQLiteConstraintException e) { // Throw these exceptions } catch (SQLiteConstraintException e) { // Throw these exceptions
throw e; throw e;
} catch (Exception e) { // Suppress others } catch (Exception e) { // Suppress others
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
result = -1; result = -1;
} }
onDatabaseUpdated(); onDatabaseUpdated();
@ -333,7 +332,7 @@ public class Database {
*/ */
@Override @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
log.info("Upgrading database from version {} to {}.", oldVersion, newVersion); Timber.i("Upgrading database from version %s to %s", oldVersion, newVersion);
database = db; database = db;
try { try {
@ -346,7 +345,7 @@ public class Database {
"from " + oldVersion + " to " + newVersion); "from " + oldVersion + " to " + newVersion);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("database-upgrade-{}-{}-{}", getName(), oldVersion, newVersion, e); Timber.e(e, "database-upgrade-%s-%s-%s", getName(), oldVersion, newVersion);
} }
} }
} }

@ -22,8 +22,6 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskApiDao; import com.todoroo.astrid.data.TaskApiDao;
import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.reminders.ReminderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster; import org.tasks.Broadcaster;
import org.tasks.R; import org.tasks.R;
import org.tasks.location.GeofenceService; import org.tasks.location.GeofenceService;
@ -35,6 +33,8 @@ import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import timber.log.Timber;
/** /**
* Data Access layer for {@link Task}-related operations. * Data Access layer for {@link Task}-related operations.
* *
@ -44,8 +44,6 @@ import javax.inject.Singleton;
@Singleton @Singleton
public class TaskDao { public class TaskDao {
private static final Logger log = LoggerFactory.getLogger(TaskDao.class);
private final RemoteModelDao<Task> dao; private final RemoteModelDao<Task> dao;
private final MetadataDao metadataDao; private final MetadataDao metadataDao;
@ -191,7 +189,7 @@ public class TaskDao {
try { try {
createNew(task); createNew(task);
} catch (SQLiteConstraintException e) { } catch (SQLiteConstraintException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
handleSQLiteConstraintException(task); // Tried to create task with remote id that already exists handleSQLiteConstraintException(task); // Tried to create task with remote id that already exists
} }
} else { } else {
@ -289,7 +287,7 @@ public class TaskDao {
try { try {
saveExisting(item); saveExisting(item);
} catch (SQLiteConstraintException e) { } catch (SQLiteConstraintException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
String uuid = item.getUUID(); String uuid = item.getUUID();
TodorooCursor<Task> tasksWithUUID = dao.query(Query.select( TodorooCursor<Task> tasksWithUUID = dao.query(Query.select(
SQL_CONSTRAINT_MERGE_PROPERTIES).where( SQL_CONSTRAINT_MERGE_PROPERTIES).where(

@ -15,11 +15,11 @@ import com.todoroo.andlib.data.TodorooCursor;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File; import java.io.File;
import timber.log.Timber;
/** /**
* A model that is synchronized to a remote server and has a remote id * A model that is synchronized to a remote server and has a remote id
* *
@ -36,8 +36,6 @@ abstract public class RemoteModel extends AbstractModel {
super(cursor); super(cursor);
} }
private static final Logger log = LoggerFactory.getLogger(RemoteModel.class);
/** remote id property common to all remote models */ /** remote id property common to all remote models */
public static final String UUID_PROPERTY_NAME = "remoteId"; //$NON-NLS-1$ public static final String UUID_PROPERTY_NAME = "remoteId"; //$NON-NLS-1$
@ -52,7 +50,7 @@ abstract public class RemoteModel extends AbstractModel {
long value = Long.parseLong(uuid); long value = Long.parseLong(uuid);
return value > 0; return value > 0;
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return isUuidEmpty(uuid); return isUuidEmpty(uuid);
} }
} }
@ -91,7 +89,7 @@ abstract public class RemoteModel extends AbstractModel {
put("uri", uri.toString()); put("uri", uri.toString());
}}; }};
} catch (JSONException e) { } catch (JSONException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
return null; return null;
} }
@ -113,7 +111,7 @@ abstract public class RemoteModel extends AbstractModel {
} }
return null; return null;
} catch (JSONException e) { } catch (JSONException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return null; return null;
} }
} }

@ -22,8 +22,6 @@ import android.widget.ListAdapter;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingAppCompatActivity; import org.tasks.injection.InjectingAppCompatActivity;
@ -36,6 +34,8 @@ import java.util.ArrayList;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
/** /**
* Based on the Android-File-Explore project by Manish Burman * Based on the Android-File-Explore project by Manish Burman
* https://github.com/mburman/Android-File-Explore * https://github.com/mburman/Android-File-Explore
@ -43,8 +43,6 @@ import javax.inject.Inject;
*/ */
public class FileExplore extends InjectingAppCompatActivity { public class FileExplore extends InjectingAppCompatActivity {
private static final Logger log = LoggerFactory.getLogger(FileExplore.class);
private static final int DIALOG_LOAD_FILE = 1000; private static final int DIALOG_LOAD_FILE = 1000;
public static final String RESULT_FILE_SELECTED = "fileSelected"; //$NON-NLS-1$ public static final String RESULT_FILE_SELECTED = "fileSelected"; //$NON-NLS-1$
@ -89,7 +87,7 @@ public class FileExplore extends InjectingAppCompatActivity {
showDialog(DIALOG_LOAD_FILE); showDialog(DIALOG_LOAD_FILE);
upString = getString(R.string.back); upString = getString(R.string.back);
log.debug(path.getAbsolutePath()); Timber.d(path.getAbsolutePath());
} }
@Override @Override
@ -109,7 +107,7 @@ public class FileExplore extends InjectingAppCompatActivity {
try { try {
path.mkdirs(); path.mkdirs();
} catch (SecurityException e) { } catch (SecurityException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
Toast.makeText(this, R.string.file_browser_err_permissions, Toast.LENGTH_LONG).show(); Toast.makeText(this, R.string.file_browser_err_permissions, Toast.LENGTH_LONG).show();
} }
@ -147,7 +145,7 @@ public class FileExplore extends InjectingAppCompatActivity {
fileList = temp; fileList = temp;
} }
} else { } else {
log.error("path {} does not exist", path); //$NON-NLS-1$ Timber.e("path %s does not exist", path); //$NON-NLS-1$
} }
adapter = new ArrayAdapter<Item>(this, adapter = new ArrayAdapter<Item>(this,

@ -31,8 +31,6 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskAttachment; import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.helper.TaskEditControlSetBase; import com.todoroo.astrid.helper.TaskEditControlSetBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.AddAttachmentActivity; import org.tasks.activities.AddAttachmentActivity;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
@ -41,12 +39,12 @@ import org.tasks.preferences.ActivityPreferences;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
public class FilesControlSet extends TaskEditControlSetBase { public class FilesControlSet extends TaskEditControlSetBase {
private static final Logger log = LoggerFactory.getLogger(FilesControlSet.class);
private final ArrayList<TaskAttachment> files = new ArrayList<>(); private final ArrayList<TaskAttachment> files = new ArrayList<>();
private final LayoutInflater inflater; private final LayoutInflater inflater;
private final TaskAttachmentDao taskAttachmentDao; private final TaskAttachmentDao taskAttachmentDao;
@ -186,7 +184,7 @@ public class FilesControlSet extends TaskEditControlSetBase {
mediaPlayer.prepare(); mediaPlayer.prepare();
mediaPlayer.start(); mediaPlayer.start();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
handler.playbackFailed(); handler.playbackFailed();
} }
} }
@ -214,7 +212,7 @@ public class FilesControlSet extends TaskEditControlSetBase {
} }
activity.startActivity(intent); activity.startActivity(intent);
} catch(ActivityNotFoundException e) { } catch(ActivityNotFoundException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
Toast.makeText(activity, R.string.no_application_found, Toast.LENGTH_SHORT).show(); Toast.makeText(activity, R.string.no_application_found, Toast.LENGTH_SHORT).show();
} }
} else { } else {
@ -244,7 +242,7 @@ public class FilesControlSet extends TaskEditControlSetBase {
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
activity.startActivity(intent); activity.startActivity(intent);
} catch (ActivityNotFoundException e) { } catch (ActivityNotFoundException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
Toast.makeText(activity, R.string.file_type_unhandled, Toast.LENGTH_LONG).show(); Toast.makeText(activity, R.string.file_type_unhandled, Toast.LENGTH_LONG).show();
} }
} }

@ -12,8 +12,6 @@ import android.text.TextUtils;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.utility.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.preferences.PermissionChecker; import org.tasks.preferences.PermissionChecker;
@ -26,9 +24,9 @@ import java.util.Set;
import javax.inject.Inject; import javax.inject.Inject;
public class CalendarAlarmReceiver extends InjectingBroadcastReceiver { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(CalendarAlarmReceiver.class); public class CalendarAlarmReceiver extends InjectingBroadcastReceiver {
public static final int REQUEST_CODE_CAL_REMINDER = 100; public static final int REQUEST_CODE_CAL_REMINDER = 100;
public static final String BROADCAST_CALENDAR_REMINDER = Constants.PACKAGE + ".CALENDAR_EVENT"; public static final String BROADCAST_CALENDAR_REMINDER = Constants.PACKAGE + ".CALENDAR_EVENT";
@ -79,7 +77,7 @@ public class CalendarAlarmReceiver extends InjectingBroadcastReceiver {
} }
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// Some cursor read failed, or badly formed uri // Some cursor read failed, or badly formed uri
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }

@ -22,13 +22,12 @@ import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.TaskEditControlSetBase; import com.todoroo.astrid.helper.TaskEditControlSetBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.CalendarSelectionDialog; import org.tasks.activities.CalendarSelectionDialog;
import org.tasks.preferences.PermissionRequestor; import org.tasks.preferences.PermissionRequestor;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.reminders.SnoozeDialog;
import timber.log.Timber;
/** /**
* Control Set for managing repeats * Control Set for managing repeats
@ -38,7 +37,6 @@ import org.tasks.reminders.SnoozeDialog;
*/ */
public class GCalControlSet extends TaskEditControlSetBase implements CalendarSelectionDialog.CalendarSelectionHandler { public class GCalControlSet extends TaskEditControlSetBase implements CalendarSelectionDialog.CalendarSelectionHandler {
private static final Logger log = LoggerFactory.getLogger(GCalControlSet.class);
private static final String FRAG_TAG_CALENDAR_SELECTION = "frag_tag_calendar_selection"; private static final String FRAG_TAG_CALENDAR_SELECTION = "frag_tag_calendar_selection";
// --- instance variables // --- instance variables
@ -127,7 +125,7 @@ public class GCalControlSet extends TaskEditControlSetBase implements CalendarSe
cursor.close(); cursor.close();
} }
} catch (Exception e) { } catch (Exception e) {
log.error("unable-to-parse-calendar: " + model.getCalendarURI(), e); Timber.e(e, "unable-to-parse-calendar: %s", model.getCalendarURI());
} }
} else { } else {
hasEvent = false; hasEvent = false;
@ -168,7 +166,7 @@ public class GCalControlSet extends TaskEditControlSetBase implements CalendarSe
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} else if(calendarUri != null) { } else if(calendarUri != null) {
try { try {
@ -189,7 +187,7 @@ public class GCalControlSet extends TaskEditControlSetBase implements CalendarSe
ContentResolver cr = activity.getContentResolver(); ContentResolver cr = activity.getContentResolver();
cr.update(calendarUri, updateValues, null, null); cr.update(calendarUri, updateValues, null, null);
} catch (Exception e) { } catch (Exception e) {
log.error("unable-to-update-calendar: " + task.getCalendarURI(), e); Timber.e(e, "unable-to-update-calendar: %s", task.getCalendarURI());
} }
} }
} }
@ -215,7 +213,7 @@ public class GCalControlSet extends TaskEditControlSetBase implements CalendarSe
intent.putExtra("endTime", cursor.getLong(1)); intent.putExtra("endTime", cursor.getLong(1));
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
Toast.makeText(activity, R.string.gcal_TEA_error, Toast.LENGTH_LONG).show(); Toast.makeText(activity, R.string.gcal_TEA_error, Toast.LENGTH_LONG).show();
} finally { } finally {
cursor.close(); cursor.close();

@ -18,8 +18,6 @@ import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -30,14 +28,14 @@ import java.util.TimeZone;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastIceCreamSandwich; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastIceCreamSandwich;
import static com.todoroo.andlib.utility.AndroidUtilities.preIceCreamSandwich; import static com.todoroo.andlib.utility.AndroidUtilities.preIceCreamSandwich;
import static com.todoroo.astrid.gcal.Calendars.getCalendarContentUri; import static com.todoroo.astrid.gcal.Calendars.getCalendarContentUri;
public class GCalHelper { public class GCalHelper {
private static final Logger log = LoggerFactory.getLogger(GCalHelper.class);
/** If task has no estimated time, how early to set a task in calendar (seconds)*/ /** If task has no estimated time, how early to set a task in calendar (seconds)*/
private static final long DEFAULT_CAL_TIME = DateUtilities.ONE_HOUR; private static final long DEFAULT_CAL_TIME = DateUtilities.ONE_HOUR;
@ -124,7 +122,7 @@ public class GCalHelper {
} catch (Exception e) { } catch (Exception e) {
// won't work on emulator // won't work on emulator
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
return null; return null;
@ -155,7 +153,7 @@ public class GCalHelper {
calendar.moveToFirst(); calendar.moveToFirst();
return calendar.getString(0); return calendar.getString(0);
} catch (CursorIndexOutOfBoundsException e) { } catch (CursorIndexOutOfBoundsException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return null; return null;
} finally { } finally {
calendar.close(); calendar.close();
@ -195,7 +193,7 @@ public class GCalHelper {
task.setCalendarUri( ""); task.setCalendarUri( "");
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }

@ -16,16 +16,14 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject; import javax.inject.Inject;
public class GCalTaskCompleteListener extends InjectingBroadcastReceiver { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(GCalTaskCompleteListener.class); public class GCalTaskCompleteListener extends InjectingBroadcastReceiver {
@Inject TaskService taskService; @Inject TaskService taskService;
@ -53,7 +51,7 @@ public class GCalTaskCompleteListener extends InjectingBroadcastReceiver {
task.getTitle())); task.getTitle()));
cr.update(Uri.parse(calendarUri), values, null, null); cr.update(Uri.parse(calendarUri), values, null, null);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }

@ -45,13 +45,10 @@ import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.UserActivity; import com.todoroo.astrid.data.UserActivity;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.timers.TimerActionControlSet.TimerActionListener; import com.todoroo.astrid.timers.TimerActionControlSet.TimerActionListener;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -61,15 +58,14 @@ import java.util.Comparator;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import static org.tasks.date.DateTimeUtils.newDate; import timber.log.Timber;
import static org.tasks.date.DateTimeUtils.newDateTime; import static org.tasks.date.DateTimeUtils.newDateTime;
import static org.tasks.files.FileHelper.getPathFromUri; import static org.tasks.files.FileHelper.getPathFromUri;
import static org.tasks.files.ImageHelper.sampleBitmap; import static org.tasks.files.ImageHelper.sampleBitmap;
public class EditNoteActivity extends LinearLayout implements TimerActionListener { public class EditNoteActivity extends LinearLayout implements TimerActionListener {
private static final Logger log = LoggerFactory.getLogger(EditNoteActivity.class);
private Task task; private Task task;
private ActFmCameraModule actFmCameraModule; private ActFmCameraModule actFmCameraModule;
@ -137,7 +133,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene
try { try {
fetchTask(t); fetchTask(t);
} catch (SQLiteException e) { } catch (SQLiteException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
if(task == null) { if(task == null) {
return; return;

@ -24,8 +24,6 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.tags.TagService; import com.todoroo.astrid.tags.TagService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingContentProvider; import org.tasks.injection.InjectingContentProvider;
import java.math.BigInteger; import java.math.BigInteger;
@ -35,6 +33,7 @@ import java.security.NoSuchAlgorithmException;
import javax.inject.Inject; import javax.inject.Inject;
import dagger.Lazy; import dagger.Lazy;
import timber.log.Timber;
/** /**
* This is the legacy Astrid task provider. While it will continue to be * This is the legacy Astrid task provider. While it will continue to be
@ -48,8 +47,6 @@ import dagger.Lazy;
*/ */
public class Astrid2TaskProvider extends InjectingContentProvider { public class Astrid2TaskProvider extends InjectingContentProvider {
private static final Logger log = LoggerFactory.getLogger(Astrid2TaskProvider.class);
public static final String AUTHORITY = "org.tasks.tasksprovider"; public static final String AUTHORITY = "org.tasks.tasksprovider";
public static final Uri CONTENT_URI = Uri.parse("content://org.tasks.tasksprovider"); public static final Uri CONTENT_URI = Uri.parse("content://org.tasks.tasksprovider");
@ -139,7 +136,7 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
try { try {
m = MessageDigest.getInstance("MD5"); m = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) { } catch (NoSuchAlgorithmException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return -1; return -1;
} }
@ -261,7 +258,7 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
try { try {
context.getContentResolver().notifyChange(CONTENT_URI, null); context.getContentResolver().notifyChange(CONTENT_URI, null);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }

@ -19,8 +19,6 @@ import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import org.tasks.time.DateTime; import org.tasks.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -32,6 +30,8 @@ import java.util.Random;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import timber.log.Timber;
import static org.tasks.time.DateTimeUtils.currentTimeMillis; import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import static org.tasks.date.DateTimeUtils.newDateTime; import static org.tasks.date.DateTimeUtils.newDateTime;
@ -44,8 +44,6 @@ import static org.tasks.date.DateTimeUtils.newDateTime;
@Singleton @Singleton
public final class ReminderService { public final class ReminderService {
private static final Logger log = LoggerFactory.getLogger(ReminderService.class);
// --- constants // --- constants
public static final Property<?>[] NOTIFICATION_PROPERTIES = new Property<?>[] { public static final Property<?>[] NOTIFICATION_PROPERTIES = new Property<?>[] {
@ -106,7 +104,7 @@ public final class ReminderService {
} }
} catch (Exception e) { } catch (Exception e) {
// suppress // suppress
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} finally { } finally {
cursor.close(); cursor.close();
now = -1; // Signal done with now variable now = -1; // Signal done with now variable
@ -425,7 +423,7 @@ public final class ReminderService {
try { try {
requestCode = Integer.parseInt(rc); requestCode = Integer.parseInt(rc);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
requestCode = type; requestCode = type;
} }
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, requestCode, PendingIntent pendingIntent = PendingIntent.getBroadcast(context, requestCode,

@ -33,8 +33,6 @@ import com.todoroo.astrid.ui.NumberPickerDialog;
import com.todoroo.astrid.ui.NumberPickerDialog.OnNumberPickedListener; import com.todoroo.astrid.ui.NumberPickerDialog.OnNumberPickedListener;
import com.todoroo.astrid.ui.PopupControlSet; import com.todoroo.astrid.ui.PopupControlSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.dialogs.MyDatePickerDialog; import org.tasks.dialogs.MyDatePickerDialog;
@ -47,6 +45,8 @@ import java.util.Calendar;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import timber.log.Timber;
import static org.tasks.date.DateTimeUtils.newDateTime; import static org.tasks.date.DateTimeUtils.newDateTime;
/** /**
@ -57,8 +57,6 @@ import static org.tasks.date.DateTimeUtils.newDateTime;
*/ */
public class RepeatControlSet extends PopupControlSet { public class RepeatControlSet extends PopupControlSet {
private static final Logger log = LoggerFactory.getLogger(RepeatControlSet.class);
private static final String FRAG_TAG_REPEAT_UNTIL = "frag_tag_repeat_until"; private static final String FRAG_TAG_REPEAT_UNTIL = "frag_tag_repeat_until";
// --- spinner constants // --- spinner constants
@ -185,12 +183,12 @@ public class RepeatControlSet extends PopupControlSet {
intervalValue = INTERVAL_YEARS; intervalValue = INTERVAL_YEARS;
break; break;
default: default:
log.error("repeat-unhandled-rule", new Exception("Unhandled rrule frequency: " + recurrence)); Timber.e(new Exception("Unhandled rrule frequency: " + recurrence), "repeat-unhandled-rule");
} }
} catch (Exception e) { } catch (Exception e) {
// invalid RRULE // invalid RRULE
recurrence = ""; //$NON-NLS-1$ recurrence = ""; //$NON-NLS-1$
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
doRepeat = recurrence.length() > 0; doRepeat = recurrence.length() > 0;
@ -238,7 +236,7 @@ public class RepeatControlSet extends PopupControlSet {
} catch (Exception e) { } catch (Exception e) {
// invalid RRULE // invalid RRULE
recurrence = ""; //$NON-NLS-1$ recurrence = ""; //$NON-NLS-1$
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
doRepeat = recurrence.length() > 0; doRepeat = recurrence.length() > 0;

@ -24,8 +24,6 @@ import com.todoroo.astrid.gcal.GCalHelper;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.time.DateTime; import org.tasks.time.DateTime;
@ -37,14 +35,14 @@ import java.util.TimeZone;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static org.tasks.date.DateTimeUtils.newDate; import static org.tasks.date.DateTimeUtils.newDate;
import static org.tasks.date.DateTimeUtils.newDateTime; import static org.tasks.date.DateTimeUtils.newDateTime;
import static org.tasks.date.DateTimeUtils.newDateUtc; import static org.tasks.date.DateTimeUtils.newDateUtc;
public class RepeatTaskCompleteListener extends InjectingBroadcastReceiver { public class RepeatTaskCompleteListener extends InjectingBroadcastReceiver {
private static final Logger log = LoggerFactory.getLogger(RepeatTaskCompleteListener.class);
@Inject TaskService taskService; @Inject TaskService taskService;
@Inject GCalHelper gcalHelper; @Inject GCalHelper gcalHelper;
@ -73,7 +71,7 @@ public class RepeatTaskCompleteListener extends InjectingBroadcastReceiver {
return; return;
} }
} catch (ParseException e) { } catch (ParseException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return; return;
} }

@ -33,8 +33,6 @@ import com.todoroo.astrid.provider.Astrid2TaskProvider;
import com.todoroo.astrid.provider.Astrid3ContentProvider; import com.todoroo.astrid.provider.Astrid3ContentProvider;
import com.todoroo.astrid.tags.TaskToTagMetadata; import com.todoroo.astrid.tags.TaskToTagMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster; import org.tasks.Broadcaster;
import org.tasks.BuildConfig; import org.tasks.BuildConfig;
import org.tasks.R; import org.tasks.R;
@ -48,6 +46,8 @@ import java.io.File;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import timber.log.Timber;
/** /**
* Service which handles jobs that need to be run when Astrid starts up. * Service which handles jobs that need to be run when Astrid starts up.
* *
@ -57,8 +57,6 @@ import javax.inject.Singleton;
@Singleton @Singleton
public class StartupService { public class StartupService {
private static final Logger log = LoggerFactory.getLogger(StartupService.class);
// --- application startup // --- application startup
private final TagDataDao tagDataDao; private final TagDataDao tagDataDao;
@ -114,7 +112,7 @@ public class StartupService {
try { try {
database.openForWriting(); database.openForWriting();
} catch (SQLiteException e) { } catch (SQLiteException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
dialogBuilder.newMessageDialog(R.string.DB_corrupted_body) dialogBuilder.newMessageDialog(R.string.DB_corrupted_body)
.setPositiveButton(android.R.string.ok, null) .setPositiveButton(android.R.string.ok, null)
.show(); .show();
@ -125,7 +123,7 @@ public class StartupService {
final int lastVersion = preferences.getLastSetVersion(); final int lastVersion = preferences.getLastSetVersion();
int currentVersion = BuildConfig.VERSION_CODE; int currentVersion = BuildConfig.VERSION_CODE;
log.info("Astrid Startup. {} => {}", lastVersion, currentVersion); Timber.i("Astrid Startup. %s => %s", lastVersion, currentVersion);
databaseRestoreIfEmpty(activity); databaseRestoreIfEmpty(activity);
@ -173,7 +171,7 @@ public class StartupService {
}) })
.show(); .show();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
tracker.reportException(e); tracker.reportException(e);
} }
} }
@ -231,7 +229,7 @@ public class StartupService {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }

@ -26,8 +26,6 @@ import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.tags.TaskToTagMetadata; import com.todoroo.astrid.tags.TaskToTagMetadata;
import com.todoroo.astrid.utility.TitleParser; import com.todoroo.astrid.utility.TitleParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster; import org.tasks.Broadcaster;
import org.tasks.filters.FilterCounter; import org.tasks.filters.FilterCounter;
import org.tasks.scheduling.RefreshScheduler; import org.tasks.scheduling.RefreshScheduler;
@ -39,6 +37,8 @@ import java.util.Map.Entry;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import timber.log.Timber;
/** /**
* Service layer for {@link Task}-centered activities. * Service layer for {@link Task}-centered activities.
@ -49,8 +49,6 @@ import javax.inject.Singleton;
@Singleton @Singleton
public class TaskService { public class TaskService {
private static final Logger log = LoggerFactory.getLogger(TaskService.class);
public static final String TRANS_EDIT_SAVE = "task-edit-save"; //$NON-NLS-1$ public static final String TRANS_EDIT_SAVE = "task-edit-save"; //$NON-NLS-1$
public static final String TRANS_REPEAT_COMPLETE = "repeat-complete"; //$NON-NLS-1$ public static final String TRANS_REPEAT_COMPLETE = "repeat-complete"; //$NON-NLS-1$
@ -260,7 +258,7 @@ public class TaskService {
try { try {
parseQuickAddMarkup(task, tags); parseQuickAddMarkup(task, tags);
} catch (Throwable e) { } catch (Throwable e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
ContentValues forMetadata = null; ContentValues forMetadata = null;

@ -28,8 +28,6 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.ui.DraggableListView; import com.todoroo.astrid.ui.DraggableListView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
@ -40,9 +38,9 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmentHelperInterface<LIST> { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(AstridOrderedListFragmentHelper.class); public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmentHelperInterface<LIST> {
private final DisplayMetrics metrics = new DisplayMetrics(); private final DisplayMetrics metrics = new DisplayMetrics();
private final AstridOrderedListUpdater<LIST> updater; private final AstridOrderedListUpdater<LIST> updater;
@ -117,7 +115,7 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
updater.moveTo(list, getFilter(), targetTaskId, destinationTaskId); updater.moveTo(list, getFilter(), targetTaskId, destinationTaskId);
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
fragment.reconstructCursor(); fragment.reconstructCursor();
@ -144,7 +142,7 @@ public class AstridOrderedListFragmentHelper<LIST> implements OrderedListFragmen
try { try {
updater.indent(list, getFilter(), targetTaskId, delta); updater.indent(list, getFilter(), targetTaskId, delta);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
fragment.reconstructCursor(); fragment.reconstructCursor();

@ -8,8 +8,6 @@ import com.todoroo.astrid.service.TaskService;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -17,9 +15,9 @@ import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
public abstract class AstridOrderedListUpdater<LIST> { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(AstridOrderedListUpdater.class); public abstract class AstridOrderedListUpdater<LIST> {
private final TaskService taskService; private final TaskService taskService;
@ -395,7 +393,7 @@ public abstract class AstridOrderedListUpdater<LIST> {
JSONArray tree = new JSONArray(serializedTree); JSONArray tree = new JSONArray(serializedTree);
recursivelyBuildChildren(root, tree, callback); recursivelyBuildChildren(root, tree, callback);
} catch (JSONException e) { } catch (JSONException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
return root; return root;
} }

@ -19,8 +19,6 @@ import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.AstridOrderedListUpdater.Node; import com.todoroo.astrid.subtasks.AstridOrderedListUpdater.Node;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -31,9 +29,9 @@ import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
public class SubtasksHelper { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(SubtasksHelper.class); public class SubtasksHelper {
private final Context context; private final Context context;
private final Preferences preferences; private final Preferences preferences;
@ -117,7 +115,7 @@ public class SubtasksHelper {
ids.add(Long.parseLong(idString)); ids.add(Long.parseLong(idString));
} }
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
return ids; return ids;
@ -176,7 +174,7 @@ public class SubtasksHelper {
try { try {
localId = Long.parseLong(uuid); localId = Long.parseLong(uuid);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
return localId; return localId;
} }

@ -40,13 +40,11 @@ import com.commonsware.cwac.tlv.TouchListView.GrabberClickListener;
import com.commonsware.cwac.tlv.TouchListView.SwipeListener; import com.commonsware.cwac.tlv.TouchListView.SwipeListener;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
public class DraggableListView extends ListView { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(DraggableListView.class); public class DraggableListView extends ListView {
private static final int SWIPE_THRESHOLD = 40; private static final int SWIPE_THRESHOLD = 40;
@ -342,7 +340,7 @@ public class DraggableListView extends ListView {
} catch (InterruptedException e) { } catch (InterruptedException e) {
// bye! // bye!
log.trace(e.getMessage(), e); Timber.v(e, e.getMessage());
} }
} }
} }

@ -10,13 +10,10 @@ import android.preference.ListPreference;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import org.slf4j.Logger; import timber.log.Timber;
import org.slf4j.LoggerFactory;
public class MultilineListPreference extends ListPreference { public class MultilineListPreference extends ListPreference {
private static final Logger log = LoggerFactory.getLogger(MultilineListPreference.class);
public MultilineListPreference(Context context, AttributeSet attrs) { public MultilineListPreference(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
} }
@ -27,7 +24,7 @@ public class MultilineListPreference extends ListPreference {
super.onBindView(view); super.onBindView(view);
} catch (Exception e) { } catch (Exception e) {
// happens on 4.0 emulators // happens on 4.0 emulators
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
MultilineHelper.makeMultiline(view); MultilineHelper.makeMultiline(view);
} }

@ -25,15 +25,13 @@ import android.widget.TextView;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import timber.log.Timber;
public class NumberPicker extends LinearLayout implements OnClickListener, public class NumberPicker extends LinearLayout implements OnClickListener,
OnFocusChangeListener, OnLongClickListener { OnFocusChangeListener, OnLongClickListener {
private static final Logger log = LoggerFactory.getLogger(NumberPicker.class);
public interface OnChangedListener { public interface OnChangedListener {
/** return new value */ /** return new value */
int onChanged(int newVal); int onChanged(int newVal);
@ -389,7 +387,7 @@ public class NumberPicker extends LinearLayout implements OnClickListener,
try { try {
return Integer.parseInt(str); return Integer.parseInt(str);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return mStart; return mStart;
} }
} }

@ -12,14 +12,14 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskCreator; import com.todoroo.astrid.service.TaskCreator;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.Injector; import org.tasks.injection.Injector;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
/** /**
* Quick Add Bar lets you add tasks. * Quick Add Bar lets you add tasks.
* *
@ -28,8 +28,6 @@ import javax.inject.Inject;
*/ */
public class QuickAddBar { public class QuickAddBar {
private static final Logger log = LoggerFactory.getLogger(QuickAddBar.class);
@Inject TaskService taskService; @Inject TaskService taskService;
@Inject TaskCreator taskCreator; @Inject TaskCreator taskCreator;
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
@ -83,7 +81,7 @@ public class QuickAddBar {
fragment.onTaskCreated(task.getId(), task.getUUID()); fragment.onTaskCreated(task.getId(), task.getUUID());
return task; return task;
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
return null; return null;
} }

@ -26,8 +26,6 @@ import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.TaskEditControlSetBase; import com.todoroo.astrid.helper.TaskEditControlSetBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.DateAndTimePickerActivity; import org.tasks.activities.DateAndTimePickerActivity;
import org.tasks.activities.LocationPickerActivity; import org.tasks.activities.LocationPickerActivity;
@ -42,6 +40,8 @@ import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import timber.log.Timber;
import static org.tasks.date.DateTimeUtils.newDateTime; import static org.tasks.date.DateTimeUtils.newDateTime;
/** /**
@ -52,8 +52,6 @@ import static org.tasks.date.DateTimeUtils.newDateTime;
*/ */
public class ReminderControlSet extends TaskEditControlSetBase implements AdapterView.OnItemSelectedListener { public class ReminderControlSet extends TaskEditControlSetBase implements AdapterView.OnItemSelectedListener {
private static final Logger log = LoggerFactory.getLogger(ReminderControlSet.class);
public static final int REQUEST_NEW_ALARM = 12152; public static final int REQUEST_NEW_ALARM = 12152;
public static final int REQUEST_LOCATION_REMINDER = 12153; public static final int REQUEST_LOCATION_REMINDER = 12153;
@ -350,7 +348,7 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
} else if (tag instanceof Geofence) { } else if (tag instanceof Geofence) {
geofences.add((Geofence) tag); geofences.add((Geofence) tag);
} else { } else {
log.error("Unexpected tag: {}", tag); Timber.e("Unexpected tag: %s", tag);
} }
} }
@ -372,7 +370,7 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
@Override @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
log.info("onItemSelected({}, {}, {}, {})", parent, view, position, id); Timber.i("onItemSelected(%s, %s, %s, %s)", parent, view, position, id);
String selected = spinnerOptions.get(position); String selected = spinnerOptions.get(position);
if (selected.equals(taskEditFragment.getString(R.string.when_due))) { if (selected.equals(taskEditFragment.getString(R.string.when_due))) {
addDue(); addDue();

@ -14,9 +14,6 @@ import com.mdimension.jchronic.Chronic;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.tags.TagService; import com.todoroo.astrid.tags.TagService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.HashMap; import java.util.HashMap;
@ -25,9 +22,9 @@ import java.util.Set;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
public class TitleParser { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(TitleParser.class); public class TitleParser {
public static boolean parse(TagService tagService, Task task, ArrayList<String> tags) { public static boolean parse(TagService tagService, Task task, ArrayList<String> tags) {
boolean markup; boolean markup;
@ -453,7 +450,7 @@ public class TitleParser {
interval = Integer.parseInt(intervalStr); interval = Integer.parseInt(intervalStr);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
// Ah well // Ah well
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }

@ -4,14 +4,11 @@ import android.annotation.TargetApi;
import android.media.MediaRecorder; import android.media.MediaRecorder;
import android.os.Build; import android.os.Build;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
public class AACRecorder { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(AACRecorder.class); public class AACRecorder {
private MediaRecorder mediaRecorder; private MediaRecorder mediaRecorder;
@ -36,13 +33,13 @@ public class AACRecorder {
setOnErrorListener(new OnErrorListener() { setOnErrorListener(new OnErrorListener() {
@Override @Override
public void onError(MediaRecorder mr, int what, int extra) { public void onError(MediaRecorder mr, int what, int extra) {
log.error("mediaRecorder.onError(mr, {}, {})", what, extra); Timber.e("mediaRecorder.onError(mr, %s, %s)", what, extra);
} }
}); });
setOnInfoListener(new OnInfoListener() { setOnInfoListener(new OnInfoListener() {
@Override @Override
public void onInfo(MediaRecorder mr, int what, int extra) { public void onInfo(MediaRecorder mr, int what, int extra) {
log.info("mediaRecorder.onInfo(mr, {}, {})", what, extra); Timber.i("mediaRecorder.onInfo(mr, %s, %s)", what, extra);
} }
}); });
}}; }};

@ -8,8 +8,6 @@ import android.media.AudioManager;
import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener; import android.speech.tts.TextToSpeech.OnInitListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import java.util.HashMap; import java.util.HashMap;
@ -18,14 +16,14 @@ import java.util.UUID;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
/** /**
* @author Arne Jans * @author Arne Jans
* *
*/ */
public class VoiceOutputAssistant implements OnInitListener { public class VoiceOutputAssistant implements OnInitListener {
private static final Logger log = LoggerFactory.getLogger(VoiceOutputAssistant.class);
private final Context context; private final Context context;
private TextToSpeech mTts; private TextToSpeech mTts;
@ -44,18 +42,18 @@ public class VoiceOutputAssistant implements OnInitListener {
public void initTTS() { public void initTTS() {
if(mTts == null) { if(mTts == null) {
mTts = new TextToSpeech(context, this); mTts = new TextToSpeech(context, this);
log.debug("Inititalized {}", mTts); Timber.d("Inititalized %s", mTts);
} }
} }
public void speak(String textToSpeak) { public void speak(String textToSpeak) {
if (mTts != null && isTTSInitialized) { if (mTts != null && isTTSInitialized) {
final String id = UUID.randomUUID().toString(); final String id = UUID.randomUUID().toString();
log.debug("{}: {} ({})", mTts, textToSpeak, id); Timber.d("%s: %s (%s)", mTts, textToSpeak, id);
mTts.setOnUtteranceCompletedListener(new TextToSpeech.OnUtteranceCompletedListener() { mTts.setOnUtteranceCompletedListener(new TextToSpeech.OnUtteranceCompletedListener() {
@Override @Override
public void onUtteranceCompleted(String utteranceId) { public void onUtteranceCompleted(String utteranceId) {
log.debug("{}: onUtteranceCompleted {}", utteranceId); Timber.d("%s: onUtteranceCompleted %s", utteranceId);
if(utteranceId.equals(id)) { if(utteranceId.equals(id)) {
shutdown(); shutdown();
} }
@ -80,9 +78,9 @@ public class VoiceOutputAssistant implements OnInitListener {
// Try this someday for some interesting results. // Try this someday for some interesting results.
// int result mTts.setLanguage(Locale.FRANCE); // int result mTts.setLanguage(Locale.FRANCE);
if (result == TextToSpeech.LANG_MISSING_DATA) { if (result == TextToSpeech.LANG_MISSING_DATA) {
log.error("Language data missing"); Timber.e("Language data missing");
} else if(result == TextToSpeech.LANG_NOT_SUPPORTED) { } else if(result == TextToSpeech.LANG_NOT_SUPPORTED) {
log.error("Language not supported"); Timber.e("Language not supported");
} else { } else {
// Check the documentation for other possible result codes. // Check the documentation for other possible result codes.
// For example, the language may be available for the locale, // For example, the language may be available for the locale,
@ -99,7 +97,7 @@ public class VoiceOutputAssistant implements OnInitListener {
} }
} }
} else { } else {
log.error("Could not initialize TextToSpeech."); Timber.e("Could not initialize TextToSpeech.");
} }
} }
@ -107,11 +105,11 @@ public class VoiceOutputAssistant implements OnInitListener {
if (mTts != null && isTTSInitialized) { if (mTts != null && isTTSInitialized) {
try { try {
mTts.shutdown(); mTts.shutdown();
log.debug("Shutdown {}", mTts); Timber.d("Shutdown %s", mTts);
mTts = null; mTts = null;
isTTSInitialized = false; isTTSInitialized = false;
} catch(VerifyError e) { } catch(VerifyError e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }

@ -11,31 +11,27 @@ import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Build; import android.os.Build;
import android.support.v4.app.TaskStackBuilder;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.activity.TaskEditFragment; import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster; import org.tasks.Broadcaster;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingAppWidgetProvider; import org.tasks.injection.InjectingAppWidgetProvider;
import org.tasks.intents.TaskIntents;
import org.tasks.widget.WidgetHelper; import org.tasks.widget.WidgetHelper;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.preIceCreamSandwich; import static com.todoroo.andlib.utility.AndroidUtilities.preIceCreamSandwich;
import static com.todoroo.astrid.api.AstridApiConstants.BROADCAST_EVENT_REFRESH; import static com.todoroo.astrid.api.AstridApiConstants.BROADCAST_EVENT_REFRESH;
import static org.tasks.intents.TaskIntents.getEditTaskStack; import static org.tasks.intents.TaskIntents.getEditTaskStack;
public class TasksWidget extends InjectingAppWidgetProvider { public class TasksWidget extends InjectingAppWidgetProvider {
private static final Logger log = LoggerFactory.getLogger(TasksWidget.class);
@Inject Broadcaster broadcaster; @Inject Broadcaster broadcaster;
@Inject WidgetHelper widgetHelper; @Inject WidgetHelper widgetHelper;
@ -82,7 +78,7 @@ public class TasksWidget extends InjectingAppWidgetProvider {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }

@ -21,8 +21,6 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksHelper; import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.utility.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingService; import org.tasks.injection.InjectingService;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -31,9 +29,9 @@ import org.tasks.widget.WidgetHelper;
import javax.inject.Inject; import javax.inject.Inject;
public class WidgetUpdateService extends InjectingService { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(WidgetUpdateService.class); public class WidgetUpdateService extends InjectingService {
private static final int NUM_VISIBLE_TASKS = 25; private static final int NUM_VISIBLE_TASKS = 25;
@ -80,7 +78,7 @@ public class WidgetUpdateService extends InjectingService {
} }
} catch (RuntimeException e) { } catch (RuntimeException e) {
// "System server dead" was sometimes thrown here by the OS. Abort if that happens // "System server dead" was sometimes thrown here by the OS. Abort if that happens
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} else { } else {
RemoteViews updateViews = buildUpdate(this, extrasId); RemoteViews updateViews = buildUpdate(this, extrasId);
@ -171,7 +169,7 @@ public class WidgetUpdateService extends InjectingService {
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} finally { } finally {
if(cursor != null) { if(cursor != null) {
cursor.close(); cursor.close();

@ -25,8 +25,6 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
import com.todoroo.astrid.voice.VoiceOutputAssistant; import com.todoroo.astrid.voice.VoiceOutputAssistant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.notifications.AudioManager; import org.tasks.notifications.AudioManager;
import org.tasks.notifications.NotificationManager; import org.tasks.notifications.NotificationManager;
@ -42,14 +40,14 @@ import java.io.InputStream;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static com.google.common.base.Strings.isNullOrEmpty; import static com.google.common.base.Strings.isNullOrEmpty;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybean; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybean;
import static org.tasks.time.DateTimeUtils.currentTimeMillis; import static org.tasks.time.DateTimeUtils.currentTimeMillis;
public class Notifier { public class Notifier {
private static final Logger log = LoggerFactory.getLogger(Notifier.class);
private static long lastNotificationSound = 0L; private static long lastNotificationSound = 0L;
private final Context context; private final Context context;
@ -130,7 +128,7 @@ public class Notifier {
try { try {
b = BitmapFactory.decodeStream(input); b = BitmapFactory.decodeStream(input);
} catch (OutOfMemoryError e) { } catch (OutOfMemoryError e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
return b; return b;
@ -149,7 +147,7 @@ public class Notifier {
return; return;
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return; return;
} finally { } finally {
if (taskTodorooCursor != null) { if (taskTodorooCursor != null) {
@ -193,7 +191,7 @@ public class Notifier {
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return false; return false;
} }
@ -371,7 +369,7 @@ public class Notifier {
} }
} catch (VerifyError e) { } catch (VerifyError e) {
// unavailable // unavailable
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
} }

@ -1,5 +1,7 @@
package org.tasks; package org.tasks;
import android.util.Log;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.MetadataDao; import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.StoreObjectDao;
@ -26,6 +28,8 @@ import org.tasks.sync.SyncThrottle;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
@SuppressWarnings("UnusedDeclaration") @SuppressWarnings("UnusedDeclaration")
public class Tasks extends InjectingApplication { public class Tasks extends InjectingApplication {
@ -56,6 +60,34 @@ public class Tasks extends InjectingApplication {
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
} else {
Timber.plant(new ErrorReportingTree());
}
tracker.setTrackingEnabled(preferences.isTrackingEnabled()); tracker.setTrackingEnabled(preferences.isTrackingEnabled());
} }
private static class ErrorReportingTree extends Timber.Tree {
@Override
protected void log(int priority, String tag, String message, Throwable t) {
if (priority < Log.WARN) {
return;
}
if (priority == Log.ERROR) {
if (t == null) {
Log.e(tag, message);
} else {
Log.e(tag, message, t);
}
} else if(priority == Log.WARN) {
if (t == null) {
Log.w(tag, message);
} else {
Log.w(tag, message, t);
}
}
}
}
} }

@ -14,8 +14,6 @@ import android.widget.Toast;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.files.FileExplore; import com.todoroo.astrid.files.FileExplore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.AddAttachmentDialog; import org.tasks.dialogs.AddAttachmentDialog;
import org.tasks.injection.InjectingAppCompatActivity; import org.tasks.injection.InjectingAppCompatActivity;
@ -29,11 +27,12 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
public class AddAttachmentActivity extends InjectingAppCompatActivity implements DialogInterface.OnCancelListener, AddAttachmentDialog.AddAttachmentCallback { public class AddAttachmentActivity extends InjectingAppCompatActivity implements DialogInterface.OnCancelListener, AddAttachmentDialog.AddAttachmentCallback {
private static final Logger log = LoggerFactory.getLogger(AddAttachmentActivity.class);
private static final String FRAG_TAG_ATTACHMENT_DIALOG = "frag_tag_attachment_dialog"; private static final String FRAG_TAG_ATTACHMENT_DIALOG = "frag_tag_attachment_dialog";
private static final int REQUEST_CAMERA = 12120; private static final int REQUEST_CAMERA = 12120;
private static final int REQUEST_GALLERY = 12121; private static final int REQUEST_GALLERY = 12121;
@ -102,7 +101,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
if (requestCode == REQUEST_CAMERA) { if (requestCode == REQUEST_CAMERA) {
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
if (lastTempFile != null) { if (lastTempFile != null) {
log.info("Saved {}", lastTempFile.getAbsolutePath()); Timber.i("Saved %s", lastTempFile.getAbsolutePath());
setResult(RESULT_OK, new Intent() {{ setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, lastTempFile.getAbsolutePath()); putExtra(EXTRA_PATH, lastTempFile.getAbsolutePath());
}}); }});
@ -117,7 +116,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
MimeTypeMap mime = MimeTypeMap.getSingleton(); MimeTypeMap mime = MimeTypeMap.getSingleton();
String extension = mime.getExtensionFromMimeType(contentResolver.getType(uri)); String extension = mime.getExtensionFromMimeType(contentResolver.getType(uri));
final File tempFile = getFilename(extension); final File tempFile = getFilename(extension);
log.info("Writing {} to {}", uri, tempFile); Timber.i("Writing %s to %s", uri, tempFile);
try { try {
InputStream inputStream = contentResolver.openInputStream(uri); InputStream inputStream = contentResolver.openInputStream(uri);
copyFile(inputStream, tempFile.getPath()); copyFile(inputStream, tempFile.getPath());
@ -134,7 +133,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
String path = data.getStringExtra(FileExplore.RESULT_FILE_SELECTED); String path = data.getStringExtra(FileExplore.RESULT_FILE_SELECTED);
final String destination = copyToAttachmentDirectory(path); final String destination = copyToAttachmentDirectory(path);
if (destination != null) { if (destination != null) {
log.info("Copied {} to {}", path, destination); Timber.i("Copied %s to %s", path, destination);
setResult(RESULT_OK, new Intent() {{ setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, destination); putExtra(EXTRA_PATH, destination);
}}); }});
@ -160,7 +159,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
} }
return file; return file;
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
return null; return null;
} }
@ -186,7 +185,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
try { try {
AndroidUtilities.copyFile(src, dst); AndroidUtilities.copyFile(src, dst);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
Toast.makeText(this, R.string.file_err_copy, Toast.LENGTH_LONG).show(); Toast.makeText(this, R.string.file_err_copy, Toast.LENGTH_LONG).show();
return null; return null;
} }

@ -9,8 +9,6 @@ import android.widget.Button;
import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.core.SortHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingAppCompatActivity; import org.tasks.injection.InjectingAppCompatActivity;
@ -22,12 +20,12 @@ import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
public class SortActivity extends InjectingAppCompatActivity { public class SortActivity extends InjectingAppCompatActivity {
private static final Logger log = LoggerFactory.getLogger(SortActivity.class);
public static final String EXTRA_MANUAL_ENABLED = "extra_manual_enabled"; public static final String EXTRA_MANUAL_ENABLED = "extra_manual_enabled";
public static final String EXTRA_TOGGLE_MANUAL = "extra_toggle_manual"; public static final String EXTRA_TOGGLE_MANUAL = "extra_toggle_manual";
@ -151,7 +149,7 @@ public class SortActivity extends InjectingAppCompatActivity {
return 5; return 5;
} }
log.error("Invalid sort mode: {}", sortMode); Timber.e("Invalid sort mode: %s", sortMode);
return 1; return 1;
} }
@ -169,7 +167,7 @@ public class SortActivity extends InjectingAppCompatActivity {
return SortHelper.SORT_MODIFIED; return SortHelper.SORT_MODIFIED;
} }
log.error("Invalid sort mode: {}", index); Timber.e("Invalid sort mode: %s", index);
return SortHelper.SORT_ALPHA; return SortHelper.SORT_ALPHA;
} }
} }

@ -9,8 +9,6 @@ import android.provider.MediaStore;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.BuildConfig; import org.tasks.BuildConfig;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
@ -20,13 +18,13 @@ import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import timber.log.Timber;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
@Singleton @Singleton
public class DeviceInfo { public class DeviceInfo {
private static final Logger log = LoggerFactory.getLogger(DeviceInfo.class);
private Context context; private Context context;
private Boolean isPlayStoreAvailable; private Boolean isPlayStoreAvailable;
private String debugInfo; private String debugInfo;
@ -80,7 +78,7 @@ public class DeviceInfo {
"" ""
)); ));
} catch(Exception e) { } catch(Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
return ""; return "";
} }
@ -95,7 +93,7 @@ public class DeviceInfo {
} }
} }
} catch(Exception e) { } catch(Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
return false; return false;
} }

@ -10,8 +10,6 @@ import android.speech.tts.TextToSpeech;
import com.todoroo.astrid.files.FileExplore; import com.todoroo.astrid.files.FileExplore;
import com.todoroo.astrid.voice.VoiceOutputAssistant; import com.todoroo.astrid.voice.VoiceOutputAssistant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingPreferenceActivity; import org.tasks.injection.InjectingPreferenceActivity;
import org.tasks.scheduling.BackgroundScheduler; import org.tasks.scheduling.BackgroundScheduler;
@ -20,9 +18,10 @@ import java.io.File;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
public class MiscellaneousPreferences extends InjectingPreferenceActivity { public class MiscellaneousPreferences extends InjectingPreferenceActivity {
private static final Logger log = LoggerFactory.getLogger(MiscellaneousPreferences.class);
private static final int REQUEST_CODE_FILES_DIR = 2; private static final int REQUEST_CODE_FILES_DIR = 2;
private static final int REQUEST_CODE_TTS_CHECK = 2534; private static final int REQUEST_CODE_TTS_CHECK = 2534;
@ -71,7 +70,7 @@ public class MiscellaneousPreferences extends InjectingPreferenceActivity {
} }
} catch (VerifyError e) { } catch (VerifyError e) {
// unavailable // unavailable
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
} }
@ -137,7 +136,7 @@ public class MiscellaneousPreferences extends InjectingPreferenceActivity {
voiceOutputAssistant.shutdown(); voiceOutputAssistant.shutdown();
} }
} catch (VerifyError e) { } catch (VerifyError e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
preference.setEnabled(false); preference.setEnabled(false);
preferences.setBoolean(preference.getKey(), false); preferences.setBoolean(preference.getKey(), false);
} }

@ -5,20 +5,18 @@ import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityCompat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
public class PermissionChecker { public class PermissionChecker {
private static final Logger log = LoggerFactory.getLogger(PermissionChecker.class);
private final Context context; private final Context context;
@Inject @Inject
@ -58,7 +56,7 @@ public class PermissionChecker {
private boolean checkPermissions(List<String> permissions) { private boolean checkPermissions(List<String> permissions) {
for (String permission : permissions) { for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
log.warn("Request for {} denied", permission); Timber.w("Request for %s denied", permission);
return false; return false;
} }
} }

@ -14,8 +14,6 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskAttachment; import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.widget.WidgetConfigActivity; import com.todoroo.astrid.widget.WidgetConfigActivity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.time.DateTime; import org.tasks.time.DateTime;
@ -27,13 +25,13 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static android.content.SharedPreferences.Editor; import static android.content.SharedPreferences.Editor;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybean; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybean;
public class Preferences { public class Preferences {
private static final Logger log = LoggerFactory.getLogger(Preferences.class);
private static final String P_CURRENT_VERSION = "cv"; //$NON-NLS-1$ private static final String P_CURRENT_VERSION = "cv"; //$NON-NLS-1$
private static final String PREF_SORT_SORT = "sort_sort"; //$NON-NLS-1$ private static final String PREF_SORT_SORT = "sort_sort"; //$NON-NLS-1$
@ -156,7 +154,7 @@ public class Preferences {
try { try {
return Integer.parseInt(value); return Integer.parseInt(value);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return defaultValue; return defaultValue;
} }
} }
@ -181,7 +179,7 @@ public class Preferences {
try { try {
return prefs.getBoolean(key, defValue); return prefs.getBoolean(key, defValue);
} catch (ClassCastException e) { } catch (ClassCastException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
return defValue; return defValue;
} }
} }

@ -3,16 +3,14 @@ package org.tasks.receivers;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.scheduling.BackgroundScheduler; import org.tasks.scheduling.BackgroundScheduler;
import javax.inject.Inject; import javax.inject.Inject;
public class BootCompletedReceiver extends InjectingBroadcastReceiver { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(BootCompletedReceiver.class); public class BootCompletedReceiver extends InjectingBroadcastReceiver {
@Inject BackgroundScheduler backgroundScheduler; @Inject BackgroundScheduler backgroundScheduler;
@ -20,7 +18,7 @@ public class BootCompletedReceiver extends InjectingBroadcastReceiver {
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent); super.onReceive(context, intent);
log.debug("onReceive(context, {})", intent); Timber.d("onReceive(context, %s)", intent);
backgroundScheduler.scheduleEverything(); backgroundScheduler.scheduleEverything();
} }

@ -6,15 +6,13 @@ import android.content.Intent;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject; import javax.inject.Inject;
public class CompleteTaskReceiver extends InjectingBroadcastReceiver { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(CompleteTaskReceiver.class); public class CompleteTaskReceiver extends InjectingBroadcastReceiver {
public static final String TASK_ID = "id"; public static final String TASK_ID = "id";
public static final String TOGGLE_STATE = "flip_state"; public static final String TOGGLE_STATE = "flip_state";
@ -27,12 +25,12 @@ public class CompleteTaskReceiver extends InjectingBroadcastReceiver {
long taskId = intent.getLongExtra(TASK_ID, 0); long taskId = intent.getLongExtra(TASK_ID, 0);
boolean flipState = intent.getBooleanExtra(TOGGLE_STATE, false); boolean flipState = intent.getBooleanExtra(TOGGLE_STATE, false);
log.info("Completing {}", taskId); Timber.i("Completing %s", taskId);
Task task = taskService.fetchById(taskId, Task.ID, Task.COMPLETION_DATE); Task task = taskService.fetchById(taskId, Task.ID, Task.COMPLETION_DATE);
if (task != null) { if (task != null) {
taskService.setComplete(task, !flipState || !task.isCompleted()); taskService.setComplete(task, !flipState || !task.isCompleted());
} else { } else {
log.error("Could not find task with id {}", taskId); Timber.e("Could not find task with id %s", taskId);
} }
} }
} }

@ -3,16 +3,14 @@ package org.tasks.receivers;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.scheduling.BackgroundScheduler; import org.tasks.scheduling.BackgroundScheduler;
import javax.inject.Inject; import javax.inject.Inject;
public class FirstLaunchReceiver extends InjectingBroadcastReceiver { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(FirstLaunchReceiver.class); public class FirstLaunchReceiver extends InjectingBroadcastReceiver {
@Inject BackgroundScheduler backgroundScheduler; @Inject BackgroundScheduler backgroundScheduler;
@ -20,7 +18,7 @@ public class FirstLaunchReceiver extends InjectingBroadcastReceiver {
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent); super.onReceive(context, intent);
log.debug("onReceive(context, {})", intent); Timber.d("onReceive(context, %s)", intent);
backgroundScheduler.scheduleBackupService(); backgroundScheduler.scheduleBackupService();
backgroundScheduler.scheduleMidnightRefresh(); backgroundScheduler.scheduleMidnightRefresh();

@ -3,8 +3,6 @@ package org.tasks.receivers;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Notifier; import org.tasks.Notifier;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
@ -13,9 +11,9 @@ import java.util.concurrent.Executors;
import javax.inject.Inject; import javax.inject.Inject;
public class ListNotificationReceiver extends InjectingBroadcastReceiver { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(ListNotificationReceiver.class); public class ListNotificationReceiver extends InjectingBroadcastReceiver {
private static ExecutorService executorService = Executors.newSingleThreadExecutor(); private static ExecutorService executorService = Executors.newSingleThreadExecutor();
@ -29,7 +27,7 @@ public class ListNotificationReceiver extends InjectingBroadcastReceiver {
public void onReceive(Context context, final Intent intent) { public void onReceive(Context context, final Intent intent) {
super.onReceive(context, intent); super.onReceive(context, intent);
log.info("onReceive({}, {}", context, intent); Timber.i("onReceive(%s, %s)", context, intent);
executorService.execute(new Runnable() { executorService.execute(new Runnable() {
@Override @Override

@ -3,16 +3,14 @@ package org.tasks.receivers;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.scheduling.BackgroundScheduler; import org.tasks.scheduling.BackgroundScheduler;
import javax.inject.Inject; import javax.inject.Inject;
public class MyPackageReplacedReceiver extends InjectingBroadcastReceiver { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(MyPackageReplacedReceiver.class); public class MyPackageReplacedReceiver extends InjectingBroadcastReceiver {
@Inject BackgroundScheduler backgroundScheduler; @Inject BackgroundScheduler backgroundScheduler;
@ -20,7 +18,7 @@ public class MyPackageReplacedReceiver extends InjectingBroadcastReceiver {
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent); super.onReceive(context, intent);
log.debug("onReceive(context, {})", intent); Timber.d("onReceive(context, %s)", intent);
backgroundScheduler.scheduleEverything(); backgroundScheduler.scheduleEverything();
} }

@ -3,16 +3,14 @@ package org.tasks.receivers;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.scheduling.BackgroundScheduler; import org.tasks.scheduling.BackgroundScheduler;
import javax.inject.Inject; import javax.inject.Inject;
public class PackageReplacedReceiver extends InjectingBroadcastReceiver { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(PackageReplacedReceiver.class); public class PackageReplacedReceiver extends InjectingBroadcastReceiver {
@Inject BackgroundScheduler backgroundScheduler; @Inject BackgroundScheduler backgroundScheduler;
@ -21,10 +19,10 @@ public class PackageReplacedReceiver extends InjectingBroadcastReceiver {
super.onReceive(context, intent); super.onReceive(context, intent);
if (intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED) && context.getPackageName().equals(intent.getData().getSchemeSpecificPart())) { if (intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED) && context.getPackageName().equals(intent.getData().getSchemeSpecificPart())) {
log.debug("onReceive(context, {})", intent); Timber.d("onReceive(context, %s)", intent);
backgroundScheduler.scheduleEverything(); backgroundScheduler.scheduleEverything();
} else { } else {
log.debug("ignoring {}", intent); Timber.d("ignoring %s", intent);
} }
} }
} }

@ -3,16 +3,14 @@ package org.tasks.receivers;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster; import org.tasks.Broadcaster;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject; import javax.inject.Inject;
public class RefreshReceiver extends InjectingBroadcastReceiver { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(RefreshReceiver.class); public class RefreshReceiver extends InjectingBroadcastReceiver {
@Inject Broadcaster broadcaster; @Inject Broadcaster broadcaster;
@ -20,7 +18,7 @@ public class RefreshReceiver extends InjectingBroadcastReceiver {
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent); super.onReceive(context, intent);
log.debug("onReceive(context, {})", intent); Timber.d("onReceive(context, %s)", intent);
broadcaster.refresh(); broadcaster.refresh();
} }

@ -14,19 +14,15 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject; import javax.inject.Inject;
import static org.tasks.date.DateTimeUtils.newDate; import timber.log.Timber;
public class RepeatConfirmationReceiver extends InjectingBroadcastReceiver { public class RepeatConfirmationReceiver extends InjectingBroadcastReceiver {
private static final Logger log = LoggerFactory.getLogger(RepeatConfirmationReceiver.class);
private final Property<?>[] REPEAT_RESCHEDULED_PROPERTIES = private final Property<?>[] REPEAT_RESCHEDULED_PROPERTIES =
new Property<?>[]{ new Property<?>[]{
Task.ID, Task.ID,
@ -58,7 +54,7 @@ public class RepeatConfirmationReceiver extends InjectingBroadcastReceiver {
try { try {
showSnackbar(activity.findViewById(R.id.task_list_body), task, oldDueDate, newDueDate); showSnackbar(activity.findViewById(R.id.task_list_body), task, oldDueDate, newDueDate);
} catch (WindowManager.BadTokenException e) { // Activity not running when tried to show dialog--rebroadcast } catch (WindowManager.BadTokenException e) { // Activity not running when tried to show dialog--rebroadcast
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
new Thread() { new Thread() {
@Override @Override
public void run() { public void run() {

@ -4,16 +4,14 @@ import android.content.Intent;
import com.todoroo.astrid.alarms.AlarmService; import com.todoroo.astrid.alarms.AlarmService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingIntentService; import org.tasks.injection.InjectingIntentService;
import org.tasks.location.GeofenceService; import org.tasks.location.GeofenceService;
import javax.inject.Inject; import javax.inject.Inject;
public class AlarmSchedulingIntentService extends InjectingIntentService { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(AlarmSchedulingIntentService.class); public class AlarmSchedulingIntentService extends InjectingIntentService {
@Inject AlarmService alarmService; @Inject AlarmService alarmService;
@Inject GeofenceService geofenceService; @Inject GeofenceService geofenceService;
@ -26,7 +24,7 @@ public class AlarmSchedulingIntentService extends InjectingIntentService {
protected void onHandleIntent(Intent intent) { protected void onHandleIntent(Intent intent) {
super.onHandleIntent(intent); super.onHandleIntent(intent);
log.debug("onHandleIntent({})", intent); Timber.d("onHandleIntent(%s)", intent);
alarmService.scheduleAllAlarms(); alarmService.scheduleAllAlarms();
geofenceService.setupGeofences(); geofenceService.setupGeofences();

@ -4,8 +4,6 @@ import android.content.Context;
import com.todoroo.astrid.backup.TasksXmlExporter; import com.todoroo.astrid.backup.TasksXmlExporter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import java.io.File; import java.io.File;
@ -15,9 +13,9 @@ import java.util.Comparator;
import javax.inject.Inject; import javax.inject.Inject;
public class BackupIntentService extends MidnightIntentService { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(BackupIntentService.class); public class BackupIntentService extends MidnightIntentService {
public static final String BACKUP_FILE_NAME_REGEX = "auto\\.[-\\d]+\\.xml"; //$NON-NLS-1$ public static final String BACKUP_FILE_NAME_REGEX = "auto\\.[-\\d]+\\.xml"; //$NON-NLS-1$
private static final int DAYS_TO_KEEP_BACKUP = 7; private static final int DAYS_TO_KEEP_BACKUP = 7;
@ -55,13 +53,13 @@ public class BackupIntentService extends MidnightIntentService {
try { try {
deleteOldBackups(); deleteOldBackups();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
try { try {
xmlExporter.exportTasks(context, TasksXmlExporter.ExportType.EXPORT_TYPE_SERVICE, null); xmlExporter.exportTasks(context, TasksXmlExporter.ExportType.EXPORT_TYPE_SERVICE, null);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
@ -94,7 +92,7 @@ public class BackupIntentService extends MidnightIntentService {
}); });
for(int i = DAYS_TO_KEEP_BACKUP; i < files.length; i++) { for(int i = DAYS_TO_KEEP_BACKUP; i < files.length; i++) {
if(!files[i].delete()) { if(!files[i].delete()) {
log.info("Unable to delete: {}", files[i]); Timber.i("Unable to delete: %s", files[i]);
} }
} }
} }

@ -3,13 +3,13 @@ package org.tasks.scheduling;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.content.Intent; import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingIntentService; import org.tasks.injection.InjectingIntentService;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static java.util.concurrent.TimeUnit.SECONDS; import static java.util.concurrent.TimeUnit.SECONDS;
import static org.tasks.time.DateTimeUtils.currentTimeMillis; import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import static org.tasks.date.DateTimeUtils.newDateTime; import static org.tasks.date.DateTimeUtils.newDateTime;
@ -17,8 +17,6 @@ import static org.tasks.time.DateTimeUtils.printTimestamp;
public abstract class MidnightIntentService extends InjectingIntentService { public abstract class MidnightIntentService extends InjectingIntentService {
private static final Logger log = LoggerFactory.getLogger(MidnightIntentService.class);
private static final long PADDING = SECONDS.toMillis(1); private static final long PADDING = SECONDS.toMillis(1);
@Inject Preferences preferences; @Inject Preferences preferences;
@ -38,11 +36,11 @@ public abstract class MidnightIntentService extends InjectingIntentService {
if (nextRun <= now) { if (nextRun <= now) {
nextRun = nextMidnight(now); nextRun = nextMidnight(now);
log.debug("running now [nextRun={}]", printTimestamp(nextRun)); Timber.d("running now [nextRun=%s]", printTimestamp(nextRun));
preferences.setLong(getLastRunPreference(), now); preferences.setLong(getLastRunPreference(), now);
run(); run();
} else { } else {
log.debug("will run at {} [lastRun={}]", printTimestamp(nextRun), printTimestamp(lastRun)); Timber.d("will run at %s [lastRun=%s]", printTimestamp(nextRun), printTimestamp(lastRun));
} }
PendingIntent pendingIntent = PendingIntent.getService(this, 0, new Intent(this, this.getClass()), PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent pendingIntent = PendingIntent.getService(this, 0, new Intent(this, this.getClass()), PendingIntent.FLAG_UPDATE_CURRENT);

@ -3,21 +3,19 @@ package org.tasks.scheduling;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.content.Intent; import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingIntentService; import org.tasks.injection.InjectingIntentService;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static java.util.concurrent.TimeUnit.SECONDS; import static java.util.concurrent.TimeUnit.SECONDS;
import static org.tasks.time.DateTimeUtils.currentTimeMillis; import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import static org.tasks.time.DateTimeUtils.printTimestamp; import static org.tasks.time.DateTimeUtils.printTimestamp;
public abstract class RecurringIntervalIntentService extends InjectingIntentService { public abstract class RecurringIntervalIntentService extends InjectingIntentService {
private static final Logger log = LoggerFactory.getLogger(RecurringIntervalIntentService.class);
private static final long PADDING = SECONDS.toMillis(1); private static final long PADDING = SECONDS.toMillis(1);
@Inject Preferences preferences; @Inject Preferences preferences;
@ -34,7 +32,7 @@ public abstract class RecurringIntervalIntentService extends InjectingIntentServ
long interval = intervalMillis(); long interval = intervalMillis();
if (interval <= 0) { if (interval <= 0) {
log.debug("service disabled"); Timber.d("service disabled");
return; return;
} }
@ -45,13 +43,13 @@ public abstract class RecurringIntervalIntentService extends InjectingIntentServ
if (lastRunPreference == null || nextRun < now + PADDING) { if (lastRunPreference == null || nextRun < now + PADDING) {
nextRun = now + interval; nextRun = now + interval;
log.debug("running now [nextRun={}]", printTimestamp(nextRun)); Timber.d("running now [nextRun=%s]", printTimestamp(nextRun));
if (lastRunPreference != null) { if (lastRunPreference != null) {
preferences.setLong(lastRunPreference, now); preferences.setLong(lastRunPreference, now);
} }
run(); run();
} else { } else {
log.debug("will run at {} [lastRun={}]", printTimestamp(nextRun), printTimestamp(lastRun)); Timber.d("will run at %s [lastRun=%s]", printTimestamp(nextRun), printTimestamp(lastRun));
} }
PendingIntent pendingIntent = PendingIntent.getService(this, 0, new Intent(this, this.getClass()), PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent pendingIntent = PendingIntent.getService(this, 0, new Intent(this, this.getClass()), PendingIntent.FLAG_UPDATE_CURRENT);

@ -2,15 +2,13 @@ package org.tasks.scheduling;
import android.content.Intent; import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingIntentService; import org.tasks.injection.InjectingIntentService;
import javax.inject.Inject; import javax.inject.Inject;
public class RefreshSchedulerIntentService extends InjectingIntentService { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(RefreshSchedulerIntentService.class); public class RefreshSchedulerIntentService extends InjectingIntentService {
@Inject RefreshScheduler refreshScheduler; @Inject RefreshScheduler refreshScheduler;
@ -22,7 +20,7 @@ public class RefreshSchedulerIntentService extends InjectingIntentService {
protected void onHandleIntent(Intent intent) { protected void onHandleIntent(Intent intent) {
super.onHandleIntent(intent); super.onHandleIntent(intent);
log.debug("onHandleIntent({})", intent); Timber.d("onHandleIntent(%s)", intent);
refreshScheduler.scheduleApplicationRefreshes(); refreshScheduler.scheduleApplicationRefreshes();
} }

@ -5,15 +5,13 @@ import android.content.Intent;
import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.reminders.ReminderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingIntentService; import org.tasks.injection.InjectingIntentService;
import javax.inject.Inject; import javax.inject.Inject;
public class ReminderSchedulerIntentService extends InjectingIntentService { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(ReminderSchedulerIntentService.class); public class ReminderSchedulerIntentService extends InjectingIntentService {
@Inject ReminderService reminderService; @Inject ReminderService reminderService;
@Inject TaskDao taskDao; @Inject TaskDao taskDao;
@ -26,7 +24,7 @@ public class ReminderSchedulerIntentService extends InjectingIntentService {
protected void onHandleIntent(Intent intent) { protected void onHandleIntent(Intent intent) {
super.onHandleIntent(intent); super.onHandleIntent(intent);
log.debug("onHandleIntent({})", intent); Timber.d("onHandleIntent(%s)", intent);
reminderService.scheduleAllAlarms(taskDao); reminderService.scheduleAllAlarms(taskDao);
} }

@ -4,13 +4,10 @@ import android.support.v4.app.FragmentActivity;
import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import org.slf4j.Logger; import timber.log.Timber;
import org.slf4j.LoggerFactory;
public class IndeterminateProgressBarSyncResultCallback extends RecordSyncStatusCallback { public class IndeterminateProgressBarSyncResultCallback extends RecordSyncStatusCallback {
private static final Logger log = LoggerFactory.getLogger(IndeterminateProgressBarSyncResultCallback.class);
private final FragmentActivity activity; private final FragmentActivity activity;
private Runnable onFinished; private Runnable onFinished;
@ -31,7 +28,7 @@ public class IndeterminateProgressBarSyncResultCallback extends RecordSyncStatus
try { try {
onFinished.run(); onFinished.run();
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }
}); });

@ -24,8 +24,6 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.reminders.ReminderPreferences; import com.todoroo.astrid.reminders.ReminderPreferences;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.filters.FilterCounter; import org.tasks.filters.FilterCounter;
import org.tasks.filters.FilterProvider; import org.tasks.filters.FilterProvider;
@ -37,12 +35,12 @@ import org.tasks.preferences.Preferences;
import javax.inject.Inject; import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop; import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
public class NavigationDrawerFragment extends InjectingFragment { public class NavigationDrawerFragment extends InjectingFragment {
private static final Logger log = LoggerFactory.getLogger(NavigationDrawerFragment.class);
public static final int FRAGMENT_NAVIGATION_DRAWER = R.id.navigation_drawer; public static final int FRAGMENT_NAVIGATION_DRAWER = R.id.navigation_drawer;
public static final String TOKEN_LAST_SELECTED = "lastSelected"; //$NON-NLS-1$ public static final String TOKEN_LAST_SELECTED = "lastSelected"; //$NON-NLS-1$
@ -181,7 +179,7 @@ public class NavigationDrawerFragment extends InjectingFragment {
getActivity().unregisterReceiver(refreshReceiver); getActivity().unregisterReceiver(refreshReceiver);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// Might not have fully initialized // Might not have fully initialized
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }

@ -5,14 +5,12 @@ import android.app.ProgressDialog;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.widget.Toast; import android.widget.Toast;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.dialogs.DialogBuilder; import org.tasks.dialogs.DialogBuilder;
public abstract class ProgressDialogAsyncTask extends AsyncTask<Void, Void, Integer> { import timber.log.Timber;
private static final Logger log = LoggerFactory.getLogger(ProgressDialogAsyncTask.class); public abstract class ProgressDialogAsyncTask extends AsyncTask<Void, Void, Integer> {
ProgressDialog progressDialog; ProgressDialog progressDialog;
private Activity activity; private Activity activity;
@ -35,7 +33,7 @@ public abstract class ProgressDialogAsyncTask extends AsyncTask<Void, Void, Inte
try { try {
progressDialog.dismiss(); progressDialog.dismiss();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
} }

@ -26,16 +26,14 @@ import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.widget.TasksWidget; import com.todoroo.astrid.widget.TasksWidget;
import com.todoroo.astrid.widget.WidgetConfigActivity; import com.todoroo.astrid.widget.WidgetConfigActivity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import timber.log.Timber;
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory { public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
private static final Logger log = LoggerFactory.getLogger(ScrollableViewsFactory.class);
private final Database database; private final Database database;
private final TaskService taskService; private final TaskService taskService;
private final SubtasksHelper subtasksHelper; private final SubtasksHelper subtasksHelper;
@ -185,7 +183,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
return row; return row;
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); Timber.e(e, e.getMessage());
} }
return null; return null;
@ -201,7 +199,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
cursor.moveToPosition(position); cursor.moveToPosition(position);
return new Task(cursor); return new Task(cursor);
} }
log.warn("requested task at position {}, cursor count is {}", position, cursor.getCount()); Timber.w("requested task at position %s, cursor count is %s", position, cursor.getCount());
return null; return null;
} }

Loading…
Cancel
Save