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

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

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

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

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

@ -15,8 +15,6 @@ import com.google.api.services.tasks.model.TaskList;
import com.google.api.services.tasks.model.TaskLists;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.AccountManager;
import org.tasks.BuildConfig;
import org.tasks.injection.ForApplication;
@ -27,6 +25,8 @@ import java.util.Collections;
import javax.inject.Inject;
import javax.inject.Singleton;
import timber.log.Timber;
/**
* 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.
@ -36,8 +36,6 @@ import javax.inject.Singleton;
@Singleton
public class GtasksInvoker {
private static final Logger log = LoggerFactory.getLogger(GtasksInvoker.class);
private AccountManager accountManager;
private final GoogleAccountCredential credential;
private Tasks service;
@ -58,7 +56,7 @@ public class GtasksInvoker {
//If we get a 401 or 403, try revalidating the auth token before bailing
private synchronized void handleException(IOException e) throws IOException {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
if (e instanceof HttpResponseException) {
HttpResponseException h = (HttpResponseException) e;
int statusCode = h.getStatusCode();
@ -69,7 +67,7 @@ public class GtasksInvoker {
} else if (statusCode == 404) {
throw new HttpNotFoundException(h);
} 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
}
@ -126,7 +124,7 @@ public class GtasksInvoker {
private synchronized <T> T execute(TasksRequest<T> request) throws IOException {
String caller = getCaller();
log.debug("{} request: {}", caller, request);
Timber.d("%s request: %s", caller, request);
T response;
try {
response = request.execute();
@ -134,23 +132,25 @@ public class GtasksInvoker {
handleException(e);
response = request.execute();
}
log.debug("{} response: {}", caller, prettyPrint(response));
Timber.d("%s response: %s", caller, prettyPrint(response));
return response;
}
private <T> Object prettyPrint(T object) throws IOException {
if (log.isDebugEnabled() && object instanceof GenericJson) {
return ((GenericJson) object).toPrettyString();
if (BuildConfig.DEBUG) {
if (object instanceof GenericJson) {
return ((GenericJson) object).toPrettyString();
}
}
return object;
}
private String getCaller() {
if (log.isDebugEnabled()) {
if (BuildConfig.DEBUG) {
try {
return Thread.currentThread().getStackTrace()[4].getMethodName();
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
}
return "";

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

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

@ -32,8 +32,6 @@ import com.todoroo.astrid.gtasks.api.GtasksInvoker;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.sync.SyncResultCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences;
@ -47,6 +45,8 @@ import java.util.concurrent.atomic.AtomicInteger;
import javax.inject.Inject;
import javax.inject.Singleton;
import timber.log.Timber;
import static org.tasks.date.DateTimeUtils.newDateTime;
@Singleton
@ -54,7 +54,7 @@ public class GtasksSyncV2Provider {
public class SyncExceptionHandler {
public void handleException(Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
}
@ -70,8 +70,6 @@ public class GtasksSyncV2Provider {
return getName();
}
private static final Logger log = LoggerFactory.getLogger(GtasksSyncV2Provider.class);
private final TaskService taskService;
private final StoreObjectDao storeObjectDao;
private final GtasksPreferenceService gtasksPreferenceService;
@ -247,7 +245,7 @@ public class GtasksSyncV2Provider {
if (errorHandler != null) {
errorHandler.handleException(e);
} 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.Predicate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication;
import java.io.IOException;
@ -23,6 +21,8 @@ import java.util.List;
import javax.annotation.Nullable;
import javax.inject.Inject;
import timber.log.Timber;
import static com.google.common.collect.Iterables.tryFind;
import static com.google.common.collect.Lists.transform;
import static java.util.Arrays.asList;
@ -32,11 +32,11 @@ public class AccountManager {
public void clearToken(GoogleAccountCredential credential) throws IOException {
try {
String token = credential.getToken();
log.debug("Invalidating {}", token);
Timber.d("Invalidating %s", token);
GoogleAuthUtil.clearToken(context, token);
GoogleAuthUtil.getTokenWithNotification(context, credential.getSelectedAccount(), "oauth2:" + TasksScopes.TASKS, null);
} catch (GoogleAuthException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
throw new IOException(e);
}
}
@ -46,8 +46,6 @@ public class AccountManager {
void authenticationFailed(String message);
}
private static final Logger log = LoggerFactory.getLogger(AccountManager.class);
public static final int REQUEST_AUTHORIZATION = 10987;
private final Context context;
@ -89,10 +87,10 @@ public class AccountManager {
try {
handler.authenticationSuccessful(accountName, GoogleAuthUtil.getToken(activity, account, "oauth2:" + TasksScopes.TASKS, null));
} catch(UserRecoverableAuthException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
activity.startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
} catch(GoogleAuthException | IOException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
handler.authenticationFailed(context.getString(R.string.gtasks_GLA_errorIOAuth));
}
}

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

@ -1,14 +1,11 @@
package org.tasks.dialogs;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.IntentSender;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AlertDialog;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
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.maps.model.LatLng;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.InjectingDialogFragment;
import org.tasks.location.Geofence;
@ -35,9 +30,10 @@ import org.tasks.preferences.ActivityPreferences;
import javax.inject.Inject;
import timber.log.Timber;
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 PlaceAutocompleteAdapter mAdapter;
@ -90,7 +86,7 @@ public class LocationPickerDialog extends InjectingDialogFragment implements Goo
}
private void error(String text) {
log.error(text);
Timber.e(text);
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) {
final PlaceAutocompleteAdapter.PlaceAutocomplete item = mAdapter.getItem(position);
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);
}
};
@ -113,7 +109,7 @@ public class LocationPickerDialog extends InjectingDialogFragment implements Goo
final Place place = places.get(0);
LatLng latLng = place.getLatLng();
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);
dismiss();
} else {
@ -139,13 +135,13 @@ public class LocationPickerDialog extends InjectingDialogFragment implements Goo
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
if (resolvingError) {
log.info("Ignoring {}, already resolving error", connectionResult);
Timber.i("Ignoring %s, already resolving error", connectionResult);
} else if (connectionResult.hasResolution()) {
try {
resolvingError = true;
connectionResult.startResolutionForResult(fragmentActivity, RC_RESOLVE_GPS_ISSUE);
} catch (IntentSender.SendIntentException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
googleApi.connect(this);
}
} else {

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

@ -7,9 +7,6 @@ import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.data.Metadata;
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.injection.InjectingIntentService;
@ -17,9 +14,9 @@ import java.util.List;
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 Notifier notifier;
@ -33,20 +30,20 @@ public class GeofenceTransitionsIntentService extends InjectingIntentService {
GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent);
if (geofencingEvent.hasError()) {
log.error("geofence error code {}", geofencingEvent.getErrorCode());
Timber.e("geofence error code %s", geofencingEvent.getErrorCode());
return;
}
int transitionType = geofencingEvent.getGeofenceTransition();
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) {
for (com.google.android.gms.location.Geofence triggerGeofence : triggeringGeofences) {
triggerNotification(triggerGeofence);
}
} 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);
notifier.triggerTaskNotification(geofence.getTaskId(), ReminderService.TYPE_ALARM);
} 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.LatLngBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication;
import java.util.concurrent.TimeUnit;
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 googleApiClient;
@ -67,7 +65,7 @@ public class GoogleApi implements GoogleApiClient.ConnectionCallbacks {
Location lastLocation = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
return new LatLng(lastLocation.getLatitude(), lastLocation.getLongitude());
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
return new LatLng(0, 0);
}
}
@ -76,7 +74,7 @@ public class GoogleApi implements GoogleApiClient.ConnectionCallbacks {
connect(googleApiClientConnectionHandler, new GoogleApiClient.OnConnectionFailedListener() {
@Override
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() {
@Override
public void onConnect(GoogleApiClient client) {
log.info("onConnect({})", client);
Timber.i("onConnect(%s)", client);
}
}, onConnectionFailedListener);
}
@ -104,12 +102,12 @@ public class GoogleApi implements GoogleApiClient.ConnectionCallbacks {
@Override
public void onConnected(Bundle bundle) {
log.info("onConnected(Bundle)");
Timber.i("onConnected(Bundle)");
googleApiClientConnectionHandler.onConnect(googleApiClient);
}
@Override
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.AutocompletePredictionBuffer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import timber.log.Timber;
public class PlaceAutocompleteAdapter
extends ArrayAdapter<PlaceAutocompleteAdapter.PlaceAutocomplete> {
private static final Logger log = LoggerFactory.getLogger(PlaceAutocompleteAdapter.class);
private final GoogleApi googleApi;
private List<PlaceAutocomplete> mResultList = new ArrayList<>();
@ -72,13 +70,12 @@ public class PlaceAutocompleteAdapter
if (!status.isSuccess()) {
Toast.makeText(getContext(), "Error contacting API: " + status.toString(),
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();
return;
}
log.info("Query completed. Received " + autocompletePredictions.getCount()
+ " predictions.");
Timber.i("Query completed. Received %s predictions", autocompletePredictions.getCount());
Iterator<AutocompletePrediction> iterator = autocompletePredictions.iterator();
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.sync.GtasksSyncV2Provider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster;
import org.tasks.R;
import org.tasks.preferences.Preferences;
@ -12,12 +10,12 @@ import org.tasks.sync.RecordSyncStatusCallback;
import javax.inject.Inject;
import timber.log.Timber;
import static java.util.concurrent.TimeUnit.SECONDS;
public class GtasksBackgroundService extends RecurringIntervalIntentService {
private static final Logger log = LoggerFactory.getLogger(GtasksBackgroundService.class);
@Inject Preferences preferences;
@Inject GtasksPreferenceService gtasksPreferenceService;
@Inject GtasksSyncV2Provider gtasksSyncV2Provider;
@ -30,7 +28,7 @@ public class GtasksBackgroundService extends RecurringIntervalIntentService {
@Override
void run() {
if (gtasksPreferenceService.isOngoing()) {
log.debug("aborting: sync ongoing");
Timber.d("aborting: sync ongoing");
return;
}
if(gtasksPreferenceService.isLoggedIn() && gtasksSyncV2Provider.isActive()) {
@ -43,7 +41,7 @@ public class GtasksBackgroundService extends RecurringIntervalIntentService {
try {
return SECONDS.toMillis(preferences.getIntegerFromString(R.string.gtasks_GPr_interval_key, 0));
} catch(Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
preferences.setString(R.string.gtasks_GPr_interval_key, "0");
return 0;
}

@ -1,9 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.tasks">
<uses-sdk tools:overrideLibrary="timber.log"/>
<!-- ================================================== 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.utility.AndroidUtilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
@ -25,6 +22,8 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.Map.Entry;
import timber.log.Timber;
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 {
private static final Logger log = LoggerFactory.getLogger(AbstractModel.class);
private static final ContentValuesSavingVisitor saver = new ContentValuesSavingVisitor();
/** id property common to all models */
@ -191,7 +188,7 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
saver.save(property, values, cursor.get(property));
} catch (IllegalArgumentException e) {
// 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;
} catch (NumberFormatException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
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.astrid.dao.Database;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import timber.log.Timber;
/**
* 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
@ -29,8 +28,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
*/
public class DatabaseDao<TYPE extends AbstractModel> {
private static final Logger log = LoggerFactory.getLogger(DatabaseDao.class);
private final Class<TYPE> modelClass;
private final Table table;
private final Database database;
@ -167,7 +164,7 @@ public class DatabaseDao<TYPE extends AbstractModel> {
* @return # of deleted items
*/
public int deleteWhere(Criterion where) {
log.debug("deleteWhere({})", where);
Timber.d("deleteWhere(%s)", where);
return database.delete(table.name,
where.toString(), null);
}
@ -222,7 +219,7 @@ public class DatabaseDao<TYPE extends AbstractModel> {
if (result.get()) {
onModelUpdated(item);
item.markSaved();
log.debug("{} {}", op, item);
Timber.d("%s %s", op, item);
}
}
return result.get();

@ -18,9 +18,6 @@ import android.view.View.OnTouchListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.TextView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@ -31,6 +28,8 @@ import java.util.Arrays;
import java.util.Comparator;
import java.util.Map.Entry;
import timber.log.Timber;
/**
* Android Utility Classes
*
@ -39,8 +38,6 @@ import java.util.Map.Entry;
*/
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 SERIALIZATION_SEPARATOR = "|"; //$NON-NLS-1$
@ -255,10 +252,10 @@ public class AndroidUtilities {
} catch (NumberFormatException e) {
// failed parse to number
putter.put(object, key, 's', value);
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
} catch (IndexOutOfBoundsException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
}
}
@ -437,7 +434,7 @@ public class AndroidUtilities {
activity.unregisterReceiver(receiver);
} catch (IllegalArgumentException e) {
// 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.Dialog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import timber.log.Timber;
public class DialogUtilities {
private static final Logger log = LoggerFactory.getLogger(DialogUtilities.class);
/**
* Dismiss a dialog off the UI thread
*/
@ -30,7 +27,7 @@ public class DialogUtilities {
try {
dialog.dismiss();
} 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.preference.PreferenceManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import timber.log.Timber;
/**
* Helper class for reading and writing SharedPreferences
@ -21,8 +20,6 @@ import org.slf4j.LoggerFactory;
@Deprecated
public class Preferences {
private static final Logger log = LoggerFactory.getLogger(Preferences.class);
private static SharedPreferences preferences = null;
/** Get preferences object from the context */
@ -39,7 +36,7 @@ public class Preferences {
preferences.edit().commit();
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
String alternate = "preferences" + android.os.Process.myUid(); //$NON-NLS-1$
preferences = context.getSharedPreferences(alternate, Context.MODE_PRIVATE);
}
@ -51,7 +48,7 @@ public class Preferences {
try {
return getPrefs(context).getBoolean(context.getString(keyResources), defValue);
} catch (ClassCastException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
return defValue;
}
}

@ -14,8 +14,6 @@ import android.support.v4.app.Fragment;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.DeviceInfo;
@ -29,9 +27,9 @@ import java.util.concurrent.atomic.AtomicReference;
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;
@ -121,7 +119,7 @@ public class ActFmCameraModule {
}
return file;
} catch (IOException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
return null;
}

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

@ -50,8 +50,6 @@ import com.todoroo.astrid.utility.Flags;
import com.todoroo.astrid.voice.VoiceInputAssistant;
import com.todoroo.astrid.widget.TasksWidget;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.activities.SortActivity;
import org.tasks.preferences.ActivityPreferences;
@ -61,13 +59,13 @@ import org.tasks.ui.NavigationDrawerFragment;
import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.astrid.voice.VoiceInputAssistant.voiceInputAvailable;
import static org.tasks.ui.NavigationDrawerFragment.OnFilterItemClickedListener;
public class TaskListActivity extends AstridActivity implements OnPageChangeListener, OnFilterItemClickedListener {
private static final Logger log = LoggerFactory.getLogger(TaskListActivity.class);
@Inject TagDataDao tagDataDao;
@Inject ActivityPreferences preferences;
@Inject GtasksPreferenceService gtasksPreferenceService;
@ -307,7 +305,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
});
} catch (Exception e) {
// 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.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ForActivity;
@ -87,6 +85,8 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
import timber.log.Timber;
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 {
private static final Logger log = LoggerFactory.getLogger(TaskListFragment.class);
public static final String TAG_TASKLIST_FRAGMENT = "tasklist_fragment"; //$NON-NLS-1$
// --- activities
@ -183,7 +181,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
component = Class.forName(((FilterWithCustomIntent) filter).customTaskList.getClassName());
} catch (Exception e) {
// Invalid
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
}
if (component == null) {
@ -194,7 +192,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
try {
newFragment = (TaskListFragment) component.newInstance();
} catch (java.lang.InstantiationException | IllegalAccessException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
newFragment = new TaskListFragment();
}
Bundle args = new Bundle();
@ -479,7 +477,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
refresh();
} catch (IllegalStateException e) {
// 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;
taskDeleter.deleteTasksWithEmptyTitles(model == null ? null : model.getId());
} catch(Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
loadTaskListContent();
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.
// For now, we'll suppress the error
// See http://astrid.com/home#tags-7tsoi/task-1119pk
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
return null;
}
}

@ -48,8 +48,6 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.tags.TaskToTagMetadata;
import com.todoroo.astrid.ui.CheckableImageView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.ActivityPreferences;
@ -57,6 +55,8 @@ import org.tasks.preferences.ActivityPreferences;
import java.util.HashMap;
import java.util.concurrent.atomic.AtomicReference;
import timber.log.Timber;
/**
* 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 {
private static final Logger log = LoggerFactory.getLogger(TaskAdapter.class);
public interface OnCompletedTaskListener {
void onCompletedTask(Task item, boolean newState);
}
@ -418,7 +416,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
action.intent.send();
} catch (CanceledException e) {
// 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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import java.io.File;
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 {
void onFilePicked(String filePath);
@ -62,7 +60,7 @@ public class FilePickerBuilder extends AlertDialog.Builder implements DialogInte
setItems(files, this);
} else {
log.error("Cannot access sdcard.");
Timber.e("Cannot access 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.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.Preferences;
@ -41,12 +39,12 @@ import java.io.IOException;
import javax.inject.Inject;
import timber.log.Timber;
import static org.tasks.date.DateTimeUtils.newDateTime;
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 interface
@ -139,7 +137,7 @@ public class TasksXmlExporter {
onFinishExport(output);
}
} catch (IOException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
} finally {
post(new Runnable() {
@Override
@ -248,7 +246,7 @@ public class TasksXmlExporter {
try {
property.accept(xmlWritingVisitor, model);
} 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);
} catch (UnsupportedOperationException e) {
// didn't read this value, do nothing
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
} catch (IllegalArgumentException | IOException | IllegalStateException e) {
throw new RuntimeException(e);
}
@ -281,7 +279,7 @@ public class TasksXmlExporter {
xml.attribute(null, property.name, valueString);
} catch (UnsupportedOperationException e) {
// didn't read this value, do nothing
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
} catch (IllegalArgumentException | IOException | IllegalStateException e) {
throw new RuntimeException(e);
}
@ -312,7 +310,7 @@ public class TasksXmlExporter {
xml.attribute(null, property.name, value);
} catch (UnsupportedOperationException e) {
// didn't read this value, do nothing
log.trace(e.getMessage(), e);
Timber.v(e, e.getMessage());
} catch (IllegalArgumentException | IOException | IllegalStateException 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.tags.TaskToTagMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.xmlpull.v1.XmlPullParser;
@ -44,9 +42,9 @@ import java.io.IOException;
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 MetadataDao metadataDao;
@ -102,7 +100,7 @@ public class TasksXmlImporter {
}
} catch (BadTokenException e) {
// Running from a unit test or some such thing
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
new Thread(new Runnable() {
@ -111,7 +109,7 @@ public class TasksXmlImporter {
try {
performImport();
} catch (IOException | XmlPullParserException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
}
}).start();
@ -214,7 +212,7 @@ public class TasksXmlImporter {
}
} catch (Exception e) {
errorCount++;
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
}
}
@ -305,7 +303,7 @@ public class TasksXmlImporter {
try {
property.accept(xmlReadingVisitor, model);
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
}
}
@ -385,7 +383,7 @@ public class TasksXmlImporter {
}
} catch (Exception e) {
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.DateUtilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Notifier;
import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.preferences.Preferences;
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";
@ -76,7 +74,7 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
Calls.DATE + " DESC"
);
} catch (Exception e) { // Sometimes database is locked, retry once
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
AndroidUtilities.sleepDeep(300L);
try {
calls = context.getContentResolver().query(
@ -87,7 +85,7 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
Calls.DATE + " DESC"
);
} catch (Exception e2) {
log.error(e2.getMessage(), e2);
Timber.e(e2, e2.getMessage());
calls = null;
}
}
@ -123,7 +121,7 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
notifier.triggerMissedCallNotification(name, number, contactId);
}
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
} finally {
if (calls != null) {
calls.close();

@ -27,8 +27,6 @@ import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.data.UserActivity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication;
import java.util.ArrayList;
@ -36,6 +34,8 @@ import java.util.ArrayList;
import javax.inject.Inject;
import javax.inject.Singleton;
import timber.log.Timber;
/**
* Database wrapper
*
@ -45,7 +45,6 @@ import javax.inject.Singleton;
@Singleton
public class Database {
private static final Logger log = LoggerFactory.getLogger(Database.class);
private static final int VERSION = 35;
private static final String NAME = "database";
private static final Table[] TABLES = new Table[] {
@ -123,7 +122,7 @@ public class Database {
try {
database.execSQL(sql);
} 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);
} catch (SQLiteException e) {
// ignored, column already exists
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
}
@ -203,15 +202,15 @@ public class Database {
try {
database = helper.getWritableDatabase();
} catch (NullPointerException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
throw new IllegalStateException(e);
} catch (final RuntimeException original) {
log.error(original.getMessage(), original);
Timber.e(original, original.getMessage());
try {
// provide read-only database
openForReading();
} catch (Exception readException) {
log.error(readException.getMessage(), readException);
Timber.e(readException, readException.getMessage());
// throw original write exception
throw original;
}
@ -270,7 +269,7 @@ public class Database {
} catch (SQLiteConstraintException e) { // Throw these exceptions
throw e;
} catch (Exception e) { // Suppress others
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
result = -1;
}
onDatabaseUpdated();
@ -333,7 +332,7 @@ public class Database {
*/
@Override
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;
try {
@ -346,7 +345,7 @@ public class Database {
"from " + oldVersion + " to " + newVersion);
}
} 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.reminders.ReminderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster;
import org.tasks.R;
import org.tasks.location.GeofenceService;
@ -35,6 +33,8 @@ import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import timber.log.Timber;
/**
* Data Access layer for {@link Task}-related operations.
*
@ -44,8 +44,6 @@ import javax.inject.Singleton;
@Singleton
public class TaskDao {
private static final Logger log = LoggerFactory.getLogger(TaskDao.class);
private final RemoteModelDao<Task> dao;
private final MetadataDao metadataDao;
@ -191,7 +189,7 @@ public class TaskDao {
try {
createNew(task);
} 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
}
} else {
@ -289,7 +287,7 @@ public class TaskDao {
try {
saveExisting(item);
} catch (SQLiteConstraintException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
String uuid = item.getUUID();
TodorooCursor<Task> tasksWithUUID = dao.query(Query.select(
SQL_CONSTRAINT_MERGE_PROPERTIES).where(

@ -15,11 +15,11 @@ import com.todoroo.andlib.data.TodorooCursor;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import timber.log.Timber;
/**
* 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);
}
private static final Logger log = LoggerFactory.getLogger(RemoteModel.class);
/** remote id property common to all remote models */
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);
return value > 0;
} catch (NumberFormatException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
return isUuidEmpty(uuid);
}
}
@ -91,7 +89,7 @@ abstract public class RemoteModel extends AbstractModel {
put("uri", uri.toString());
}};
} catch (JSONException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
return null;
}
@ -113,7 +111,7 @@ abstract public class RemoteModel extends AbstractModel {
}
return null;
} catch (JSONException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
return null;
}
}

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

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

@ -12,8 +12,6 @@ import android.text.TextUtils;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.utility.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.preferences.PermissionChecker;
@ -26,9 +24,9 @@ import java.util.Set;
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 String BROADCAST_CALENDAR_REMINDER = Constants.PACKAGE + ".CALENDAR_EVENT";
@ -79,7 +77,7 @@ public class CalendarAlarmReceiver extends InjectingBroadcastReceiver {
}
} catch (IllegalArgumentException e) {
// 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.helper.TaskEditControlSetBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.activities.CalendarSelectionDialog;
import org.tasks.preferences.PermissionRequestor;
import org.tasks.preferences.Preferences;
import org.tasks.reminders.SnoozeDialog;
import timber.log.Timber;
/**
* Control Set for managing repeats
@ -38,7 +37,6 @@ import org.tasks.reminders.SnoozeDialog;
*/
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";
// --- instance variables
@ -127,7 +125,7 @@ public class GCalControlSet extends TaskEditControlSetBase implements CalendarSe
cursor.close();
}
} catch (Exception e) {
log.error("unable-to-parse-calendar: " + model.getCalendarURI(), e);
Timber.e(e, "unable-to-parse-calendar: %s", model.getCalendarURI());
}
} else {
hasEvent = false;
@ -168,7 +166,7 @@ public class GCalControlSet extends TaskEditControlSetBase implements CalendarSe
}
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
} else if(calendarUri != null) {
try {
@ -189,7 +187,7 @@ public class GCalControlSet extends TaskEditControlSetBase implements CalendarSe
ContentResolver cr = activity.getContentResolver();
cr.update(calendarUri, updateValues, null, null);
} 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));
} 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();
} finally {
cursor.close();

@ -18,8 +18,6 @@ import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences;
@ -30,14 +28,14 @@ import java.util.TimeZone;
import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastIceCreamSandwich;
import static com.todoroo.andlib.utility.AndroidUtilities.preIceCreamSandwich;
import static com.todoroo.astrid.gcal.Calendars.getCalendarContentUri;
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)*/
private static final long DEFAULT_CAL_TIME = DateUtilities.ONE_HOUR;
@ -124,7 +122,7 @@ public class GCalHelper {
} catch (Exception e) {
// won't work on emulator
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
return null;
@ -155,7 +153,7 @@ public class GCalHelper {
calendar.moveToFirst();
return calendar.getString(0);
} catch (CursorIndexOutOfBoundsException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
return null;
} finally {
calendar.close();
@ -195,7 +193,7 @@ public class GCalHelper {
task.setCalendarUri( "");
} 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.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver;
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;
@ -53,7 +51,7 @@ public class GCalTaskCompleteListener extends InjectingBroadcastReceiver {
task.getTitle()));
cr.update(Uri.parse(calendarUri), values, null, null);
} 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.Task;
import com.todoroo.astrid.data.UserActivity;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.timers.TimerActionControlSet.TimerActionListener;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.preferences.Preferences;
@ -61,15 +58,14 @@ import java.util.Comparator;
import java.util.LinkedList;
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.files.FileHelper.getPathFromUri;
import static org.tasks.files.ImageHelper.sampleBitmap;
public class EditNoteActivity extends LinearLayout implements TimerActionListener {
private static final Logger log = LoggerFactory.getLogger(EditNoteActivity.class);
private Task task;
private ActFmCameraModule actFmCameraModule;
@ -137,7 +133,7 @@ public class EditNoteActivity extends LinearLayout implements TimerActionListene
try {
fetchTask(t);
} catch (SQLiteException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
if(task == null) {
return;

@ -24,8 +24,6 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.tags.TagService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingContentProvider;
import java.math.BigInteger;
@ -35,6 +33,7 @@ import java.security.NoSuchAlgorithmException;
import javax.inject.Inject;
import dagger.Lazy;
import timber.log.Timber;
/**
* 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 {
private static final Logger log = LoggerFactory.getLogger(Astrid2TaskProvider.class);
public static final String AUTHORITY = "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 {
m = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
return -1;
}
@ -261,7 +258,7 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
try {
context.getContentResolver().notifyChange(CONTENT_URI, null);
} 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 org.tasks.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences;
@ -32,6 +30,8 @@ import java.util.Random;
import javax.inject.Inject;
import javax.inject.Singleton;
import timber.log.Timber;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import static org.tasks.date.DateTimeUtils.newDateTime;
@ -44,8 +44,6 @@ import static org.tasks.date.DateTimeUtils.newDateTime;
@Singleton
public final class ReminderService {
private static final Logger log = LoggerFactory.getLogger(ReminderService.class);
// --- constants
public static final Property<?>[] NOTIFICATION_PROPERTIES = new Property<?>[] {
@ -106,7 +104,7 @@ public final class ReminderService {
}
} catch (Exception e) {
// suppress
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
} finally {
cursor.close();
now = -1; // Signal done with now variable
@ -425,7 +423,7 @@ public final class ReminderService {
try {
requestCode = Integer.parseInt(rc);
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
requestCode = type;
}
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.PopupControlSet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.dialogs.MyDatePickerDialog;
@ -47,6 +45,8 @@ import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import timber.log.Timber;
import static org.tasks.date.DateTimeUtils.newDateTime;
/**
@ -57,8 +57,6 @@ import static org.tasks.date.DateTimeUtils.newDateTime;
*/
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";
// --- spinner constants
@ -185,12 +183,12 @@ public class RepeatControlSet extends PopupControlSet {
intervalValue = INTERVAL_YEARS;
break;
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) {
// invalid RRULE
recurrence = ""; //$NON-NLS-1$
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
}
doRepeat = recurrence.length() > 0;
@ -238,7 +236,7 @@ public class RepeatControlSet extends PopupControlSet {
} catch (Exception e) {
// invalid RRULE
recurrence = ""; //$NON-NLS-1$
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
}
doRepeat = recurrence.length() > 0;

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

@ -33,8 +33,6 @@ import com.todoroo.astrid.provider.Astrid2TaskProvider;
import com.todoroo.astrid.provider.Astrid3ContentProvider;
import com.todoroo.astrid.tags.TaskToTagMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster;
import org.tasks.BuildConfig;
import org.tasks.R;
@ -48,6 +46,8 @@ import java.io.File;
import javax.inject.Inject;
import javax.inject.Singleton;
import timber.log.Timber;
/**
* Service which handles jobs that need to be run when Astrid starts up.
*
@ -57,8 +57,6 @@ import javax.inject.Singleton;
@Singleton
public class StartupService {
private static final Logger log = LoggerFactory.getLogger(StartupService.class);
// --- application startup
private final TagDataDao tagDataDao;
@ -114,7 +112,7 @@ public class StartupService {
try {
database.openForWriting();
} catch (SQLiteException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
dialogBuilder.newMessageDialog(R.string.DB_corrupted_body)
.setPositiveButton(android.R.string.ok, null)
.show();
@ -125,7 +123,7 @@ public class StartupService {
final int lastVersion = preferences.getLastSetVersion();
int currentVersion = BuildConfig.VERSION_CODE;
log.info("Astrid Startup. {} => {}", lastVersion, currentVersion);
Timber.i("Astrid Startup. %s => %s", lastVersion, currentVersion);
databaseRestoreIfEmpty(activity);
@ -173,7 +171,7 @@ public class StartupService {
})
.show();
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
tracker.reportException(e);
}
}
@ -231,7 +229,7 @@ public class StartupService {
}
}
} 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.utility.TitleParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster;
import org.tasks.filters.FilterCounter;
import org.tasks.scheduling.RefreshScheduler;
@ -39,6 +37,8 @@ import java.util.Map.Entry;
import javax.inject.Inject;
import javax.inject.Singleton;
import timber.log.Timber;
/**
* Service layer for {@link Task}-centered activities.
@ -49,8 +49,6 @@ import javax.inject.Singleton;
@Singleton
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_REPEAT_COMPLETE = "repeat-complete"; //$NON-NLS-1$
@ -260,7 +258,7 @@ public class TaskService {
try {
parseQuickAddMarkup(task, tags);
} catch (Throwable e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
ContentValues forMetadata = null;

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

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

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

@ -40,13 +40,11 @@ import com.commonsware.cwac.tlv.TouchListView.GrabberClickListener;
import com.commonsware.cwac.tlv.TouchListView.SwipeListener;
import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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;
@ -342,7 +340,7 @@ public class DraggableListView extends ListView {
} catch (InterruptedException e) {
// 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.view.View;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import timber.log.Timber;
public class MultilineListPreference extends ListPreference {
private static final Logger log = LoggerFactory.getLogger(MultilineListPreference.class);
public MultilineListPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
@ -27,7 +24,7 @@ public class MultilineListPreference extends ListPreference {
super.onBindView(view);
} catch (Exception e) {
// happens on 4.0 emulators
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
MultilineHelper.makeMultiline(view);
}

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

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

@ -26,8 +26,6 @@ import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.TaskEditControlSetBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.activities.DateAndTimePickerActivity;
import org.tasks.activities.LocationPickerActivity;
@ -42,6 +40,8 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import timber.log.Timber;
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 {
private static final Logger log = LoggerFactory.getLogger(ReminderControlSet.class);
public static final int REQUEST_NEW_ALARM = 12152;
public static final int REQUEST_LOCATION_REMINDER = 12153;
@ -350,7 +348,7 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
} else if (tag instanceof Geofence) {
geofences.add((Geofence) tag);
} else {
log.error("Unexpected tag: {}", tag);
Timber.e("Unexpected tag: %s", tag);
}
}
@ -372,7 +370,7 @@ public class ReminderControlSet extends TaskEditControlSetBase implements Adapte
@Override
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);
if (selected.equals(taskEditFragment.getString(R.string.when_due))) {
addDue();

@ -14,9 +14,6 @@ import com.mdimension.jchronic.Chronic;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.tags.TagService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
@ -25,9 +22,9 @@ import java.util.Set;
import java.util.regex.Matcher;
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) {
boolean markup;
@ -453,7 +450,7 @@ public class TitleParser {
interval = Integer.parseInt(intervalStr);
} catch (NumberFormatException e) {
// 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.os.Build;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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;
@ -36,13 +33,13 @@ public class AACRecorder {
setOnErrorListener(new OnErrorListener() {
@Override
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() {
@Override
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.OnInitListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.ForApplication;
import java.util.HashMap;
@ -18,14 +16,14 @@ import java.util.UUID;
import javax.inject.Inject;
import timber.log.Timber;
/**
* @author Arne Jans
*
*/
public class VoiceOutputAssistant implements OnInitListener {
private static final Logger log = LoggerFactory.getLogger(VoiceOutputAssistant.class);
private final Context context;
private TextToSpeech mTts;
@ -44,18 +42,18 @@ public class VoiceOutputAssistant implements OnInitListener {
public void initTTS() {
if(mTts == null) {
mTts = new TextToSpeech(context, this);
log.debug("Inititalized {}", mTts);
Timber.d("Inititalized %s", mTts);
}
}
public void speak(String textToSpeak) {
if (mTts != null && isTTSInitialized) {
final String id = UUID.randomUUID().toString();
log.debug("{}: {} ({})", mTts, textToSpeak, id);
Timber.d("%s: %s (%s)", mTts, textToSpeak, id);
mTts.setOnUtteranceCompletedListener(new TextToSpeech.OnUtteranceCompletedListener() {
@Override
public void onUtteranceCompleted(String utteranceId) {
log.debug("{}: onUtteranceCompleted {}", utteranceId);
Timber.d("%s: onUtteranceCompleted %s", utteranceId);
if(utteranceId.equals(id)) {
shutdown();
}
@ -80,9 +78,9 @@ public class VoiceOutputAssistant implements OnInitListener {
// Try this someday for some interesting results.
// int result mTts.setLanguage(Locale.FRANCE);
if (result == TextToSpeech.LANG_MISSING_DATA) {
log.error("Language data missing");
Timber.e("Language data missing");
} else if(result == TextToSpeech.LANG_NOT_SUPPORTED) {
log.error("Language not supported");
Timber.e("Language not supported");
} else {
// Check the documentation for other possible result codes.
// For example, the language may be available for the locale,
@ -99,7 +97,7 @@ public class VoiceOutputAssistant implements OnInitListener {
}
}
} 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) {
try {
mTts.shutdown();
log.debug("Shutdown {}", mTts);
Timber.d("Shutdown %s", mTts);
mTts = null;
isTTSInitialized = false;
} 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.Intent;
import android.os.Build;
import android.support.v4.app.TaskStackBuilder;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.api.Filter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster;
import org.tasks.R;
import org.tasks.injection.InjectingAppWidgetProvider;
import org.tasks.intents.TaskIntents;
import org.tasks.widget.WidgetHelper;
import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.preIceCreamSandwich;
import static com.todoroo.astrid.api.AstridApiConstants.BROADCAST_EVENT_REFRESH;
import static org.tasks.intents.TaskIntents.getEditTaskStack;
public class TasksWidget extends InjectingAppWidgetProvider {
private static final Logger log = LoggerFactory.getLogger(TasksWidget.class);
@Inject Broadcaster broadcaster;
@Inject WidgetHelper widgetHelper;
@ -82,7 +78,7 @@ public class TasksWidget extends InjectingAppWidgetProvider {
}
}
} 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.utility.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.InjectingService;
import org.tasks.preferences.Preferences;
@ -31,9 +29,9 @@ import org.tasks.widget.WidgetHelper;
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;
@ -80,7 +78,7 @@ public class WidgetUpdateService extends InjectingService {
}
} catch (RuntimeException e) {
// "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 {
RemoteViews updateViews = buildUpdate(this, extrasId);
@ -171,7 +169,7 @@ public class WidgetUpdateService extends InjectingService {
}
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
} finally {
if(cursor != null) {
cursor.close();

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

@ -1,5 +1,7 @@
package org.tasks;
import android.util.Log;
import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.MetadataDao;
import com.todoroo.astrid.dao.StoreObjectDao;
@ -26,6 +28,8 @@ import org.tasks.sync.SyncThrottle;
import javax.inject.Inject;
import timber.log.Timber;
@SuppressWarnings("UnusedDeclaration")
public class Tasks extends InjectingApplication {
@ -56,6 +60,34 @@ public class Tasks extends InjectingApplication {
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
} else {
Timber.plant(new ErrorReportingTree());
}
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.astrid.files.FileExplore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.dialogs.AddAttachmentDialog;
import org.tasks.injection.InjectingAppCompatActivity;
@ -29,11 +27,12 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
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 int REQUEST_CAMERA = 12120;
private static final int REQUEST_GALLERY = 12121;
@ -102,7 +101,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
if (requestCode == REQUEST_CAMERA) {
if (resultCode == RESULT_OK) {
if (lastTempFile != null) {
log.info("Saved {}", lastTempFile.getAbsolutePath());
Timber.i("Saved %s", lastTempFile.getAbsolutePath());
setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, lastTempFile.getAbsolutePath());
}});
@ -117,7 +116,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
MimeTypeMap mime = MimeTypeMap.getSingleton();
String extension = mime.getExtensionFromMimeType(contentResolver.getType(uri));
final File tempFile = getFilename(extension);
log.info("Writing {} to {}", uri, tempFile);
Timber.i("Writing %s to %s", uri, tempFile);
try {
InputStream inputStream = contentResolver.openInputStream(uri);
copyFile(inputStream, tempFile.getPath());
@ -134,7 +133,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
String path = data.getStringExtra(FileExplore.RESULT_FILE_SELECTED);
final String destination = copyToAttachmentDirectory(path);
if (destination != null) {
log.info("Copied {} to {}", path, destination);
Timber.i("Copied %s to %s", path, destination);
setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, destination);
}});
@ -160,7 +159,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
}
return file;
} catch (IOException e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
return null;
}
@ -186,7 +185,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
try {
AndroidUtilities.copyFile(src, dst);
} 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();
return null;
}

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

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

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

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

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

@ -3,16 +3,14 @@ package org.tasks.receivers;
import android.content.Context;
import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.scheduling.BackgroundScheduler;
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;
@ -20,7 +18,7 @@ public class BootCompletedReceiver extends InjectingBroadcastReceiver {
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
log.debug("onReceive(context, {})", intent);
Timber.d("onReceive(context, %s)", intent);
backgroundScheduler.scheduleEverything();
}

@ -6,15 +6,13 @@ import android.content.Intent;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver;
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 TOGGLE_STATE = "flip_state";
@ -27,12 +25,12 @@ public class CompleteTaskReceiver extends InjectingBroadcastReceiver {
long taskId = intent.getLongExtra(TASK_ID, 0);
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);
if (task != null) {
taskService.setComplete(task, !flipState || !task.isCompleted());
} 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.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.scheduling.BackgroundScheduler;
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;
@ -20,7 +18,7 @@ public class FirstLaunchReceiver extends InjectingBroadcastReceiver {
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
log.debug("onReceive(context, {})", intent);
Timber.d("onReceive(context, %s)", intent);
backgroundScheduler.scheduleBackupService();
backgroundScheduler.scheduleMidnightRefresh();

@ -3,8 +3,6 @@ package org.tasks.receivers;
import android.content.Context;
import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Notifier;
import org.tasks.injection.InjectingBroadcastReceiver;
@ -13,9 +11,9 @@ import java.util.concurrent.Executors;
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();
@ -29,7 +27,7 @@ public class ListNotificationReceiver extends InjectingBroadcastReceiver {
public void onReceive(Context context, final Intent intent) {
super.onReceive(context, intent);
log.info("onReceive({}, {}", context, intent);
Timber.i("onReceive(%s, %s)", context, intent);
executorService.execute(new Runnable() {
@Override

@ -3,16 +3,14 @@ package org.tasks.receivers;
import android.content.Context;
import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.scheduling.BackgroundScheduler;
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;
@ -20,7 +18,7 @@ public class MyPackageReplacedReceiver extends InjectingBroadcastReceiver {
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
log.debug("onReceive(context, {})", intent);
Timber.d("onReceive(context, %s)", intent);
backgroundScheduler.scheduleEverything();
}

@ -3,16 +3,14 @@ package org.tasks.receivers;
import android.content.Context;
import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.scheduling.BackgroundScheduler;
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;
@ -21,10 +19,10 @@ public class PackageReplacedReceiver extends InjectingBroadcastReceiver {
super.onReceive(context, intent);
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();
} 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.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster;
import org.tasks.injection.InjectingBroadcastReceiver;
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;
@ -20,7 +18,7 @@ public class RefreshReceiver extends InjectingBroadcastReceiver {
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
log.debug("onReceive(context, {})", intent);
Timber.d("onReceive(context, %s)", intent);
broadcaster.refresh();
}

@ -14,19 +14,15 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver;
import javax.inject.Inject;
import static org.tasks.date.DateTimeUtils.newDate;
import timber.log.Timber;
public class RepeatConfirmationReceiver extends InjectingBroadcastReceiver {
private static final Logger log = LoggerFactory.getLogger(RepeatConfirmationReceiver.class);
private final Property<?>[] REPEAT_RESCHEDULED_PROPERTIES =
new Property<?>[]{
Task.ID,
@ -58,7 +54,7 @@ public class RepeatConfirmationReceiver extends InjectingBroadcastReceiver {
try {
showSnackbar(activity.findViewById(R.id.task_list_body), task, oldDueDate, newDueDate);
} 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() {
@Override
public void run() {

@ -4,16 +4,14 @@ import android.content.Intent;
import com.todoroo.astrid.alarms.AlarmService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingIntentService;
import org.tasks.location.GeofenceService;
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 GeofenceService geofenceService;
@ -26,7 +24,7 @@ public class AlarmSchedulingIntentService extends InjectingIntentService {
protected void onHandleIntent(Intent intent) {
super.onHandleIntent(intent);
log.debug("onHandleIntent({})", intent);
Timber.d("onHandleIntent(%s)", intent);
alarmService.scheduleAllAlarms();
geofenceService.setupGeofences();

@ -4,8 +4,6 @@ import android.content.Context;
import com.todoroo.astrid.backup.TasksXmlExporter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.preferences.Preferences;
import java.io.File;
@ -15,9 +13,9 @@ import java.util.Comparator;
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$
private static final int DAYS_TO_KEEP_BACKUP = 7;
@ -55,13 +53,13 @@ public class BackupIntentService extends MidnightIntentService {
try {
deleteOldBackups();
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
try {
xmlExporter.exportTasks(context, TasksXmlExporter.ExportType.EXPORT_TYPE_SERVICE, null);
} 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++) {
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.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingIntentService;
import org.tasks.preferences.Preferences;
import javax.inject.Inject;
import timber.log.Timber;
import static java.util.concurrent.TimeUnit.SECONDS;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import static org.tasks.date.DateTimeUtils.newDateTime;
@ -17,8 +17,6 @@ import static org.tasks.time.DateTimeUtils.printTimestamp;
public abstract class MidnightIntentService extends InjectingIntentService {
private static final Logger log = LoggerFactory.getLogger(MidnightIntentService.class);
private static final long PADDING = SECONDS.toMillis(1);
@Inject Preferences preferences;
@ -38,11 +36,11 @@ public abstract class MidnightIntentService extends InjectingIntentService {
if (nextRun <= now) {
nextRun = nextMidnight(now);
log.debug("running now [nextRun={}]", printTimestamp(nextRun));
Timber.d("running now [nextRun=%s]", printTimestamp(nextRun));
preferences.setLong(getLastRunPreference(), now);
run();
} 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);

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

@ -2,15 +2,13 @@ package org.tasks.scheduling;
import android.content.Intent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingIntentService;
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;
@ -22,7 +20,7 @@ public class RefreshSchedulerIntentService extends InjectingIntentService {
protected void onHandleIntent(Intent intent) {
super.onHandleIntent(intent);
log.debug("onHandleIntent({})", intent);
Timber.d("onHandleIntent(%s)", intent);
refreshScheduler.scheduleApplicationRefreshes();
}

@ -5,15 +5,13 @@ import android.content.Intent;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.reminders.ReminderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.injection.InjectingIntentService;
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 TaskDao taskDao;
@ -26,7 +24,7 @@ public class ReminderSchedulerIntentService extends InjectingIntentService {
protected void onHandleIntent(Intent intent) {
super.onHandleIntent(intent);
log.debug("onHandleIntent({})", intent);
Timber.d("onHandleIntent(%s)", intent);
reminderService.scheduleAllAlarms(taskDao);
}

@ -4,13 +4,10 @@ import android.support.v4.app.FragmentActivity;
import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import timber.log.Timber;
public class IndeterminateProgressBarSyncResultCallback extends RecordSyncStatusCallback {
private static final Logger log = LoggerFactory.getLogger(IndeterminateProgressBarSyncResultCallback.class);
private final FragmentActivity activity;
private Runnable onFinished;
@ -31,7 +28,7 @@ public class IndeterminateProgressBarSyncResultCallback extends RecordSyncStatus
try {
onFinished.run();
} 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.reminders.ReminderPreferences;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.filters.FilterCounter;
import org.tasks.filters.FilterProvider;
@ -37,12 +35,12 @@ import org.tasks.preferences.Preferences;
import javax.inject.Inject;
import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
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 String TOKEN_LAST_SELECTED = "lastSelected"; //$NON-NLS-1$
@ -181,7 +179,7 @@ public class NavigationDrawerFragment extends InjectingFragment {
getActivity().unregisterReceiver(refreshReceiver);
} catch (IllegalArgumentException e) {
// 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.widget.Toast;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
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;
private Activity activity;
@ -35,7 +33,7 @@ public abstract class ProgressDialogAsyncTask extends AsyncTask<Void, Void, Inte
try {
progressDialog.dismiss();
} 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.WidgetConfigActivity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.preferences.Preferences;
import timber.log.Timber;
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
private static final Logger log = LoggerFactory.getLogger(ScrollableViewsFactory.class);
private final Database database;
private final TaskService taskService;
private final SubtasksHelper subtasksHelper;
@ -185,7 +183,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
return row;
} catch (Exception e) {
log.error(e.getMessage(), e);
Timber.e(e, e.getMessage());
}
return null;
@ -201,7 +199,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
cursor.moveToPosition(position);
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;
}

Loading…
Cancel
Save