diff --git a/build.gradle b/build.gradle index e9a70f7b6..f589f9fa5 100644 --- a/build.gradle +++ b/build.gradle @@ -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 } diff --git a/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksListService.java b/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksListService.java index db15b7de0..0bb18c8ad 100644 --- a/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksListService.java +++ b/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksListService.java @@ -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; diff --git a/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java b/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java index 143399683..c94770a3b 100644 --- a/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java +++ b/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java @@ -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 { - private static final Logger log = LoggerFactory.getLogger(GtasksTaskListUpdater.class); - /** map of task -> parent task */ final HashMap parents = new HashMap<>(); @@ -202,7 +199,7 @@ public class GtasksTaskListUpdater extends OrderedMetadataListUpdater implements OrderedListFragmentHelperInterface { +import timber.log.Timber; - private static final Logger log = LoggerFactory.getLogger(OrderedMetadataListFragmentHelper.class); +public class OrderedMetadataListFragmentHelper implements OrderedListFragmentHelperInterface { private final DisplayMetrics metrics = new DisplayMetrics(); private final OrderedMetadataListUpdater updater; @@ -131,7 +129,7 @@ public class OrderedMetadataListFragmentHelper 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 implements OrderedListFragm try { updater.indent(list, targetTaskId, delta); } catch (Exception e) { - log.error(e.getMessage(), e); + Timber.e(e, e.getMessage()); } fragment.loadTaskListContent(); } diff --git a/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java b/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java index dde9b8b14..3f8bc00a3 100644 --- a/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java +++ b/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java @@ -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; } } diff --git a/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java b/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java index cda59e9b7..e8c199592 100644 --- a/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java +++ b/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java @@ -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 execute(TasksRequest 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 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 ""; diff --git a/src/googleplay/java/com/todoroo/astrid/gtasks/api/MoveRequest.java b/src/googleplay/java/com/todoroo/astrid/gtasks/api/MoveRequest.java index 045e02254..48196e0ab 100644 --- a/src/googleplay/java/com/todoroo/astrid/gtasks/api/MoveRequest.java +++ b/src/googleplay/java/com/todoroo/astrid/gtasks/api/MoveRequest.java @@ -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(); } diff --git a/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java b/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java index 391538162..1c5780580 100644 --- a/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java +++ b/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java @@ -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; } diff --git a/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java b/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java index 7533f3662..45177117c 100644 --- a/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java +++ b/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java @@ -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()); } } } diff --git a/src/googleplay/java/org/tasks/AccountManager.java b/src/googleplay/java/org/tasks/AccountManager.java index 45c950a49..c5473ae89 100644 --- a/src/googleplay/java/org/tasks/AccountManager.java +++ b/src/googleplay/java/org/tasks/AccountManager.java @@ -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)); } } diff --git a/src/googleplay/java/org/tasks/activities/DonationActivity.java b/src/googleplay/java/org/tasks/activities/DonationActivity.java index 8ea940e48..32862731d 100644 --- a/src/googleplay/java/org/tasks/activities/DonationActivity.java +++ b/src/googleplay/java/org/tasks/activities/DonationActivity.java @@ -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 purchases, List 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); diff --git a/src/googleplay/java/org/tasks/dialogs/LocationPickerDialog.java b/src/googleplay/java/org/tasks/dialogs/LocationPickerDialog.java index 5e76f2e5e..c4bb8858d 100644 --- a/src/googleplay/java/org/tasks/dialogs/LocationPickerDialog.java +++ b/src/googleplay/java/org/tasks/dialogs/LocationPickerDialog.java @@ -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 { diff --git a/src/googleplay/java/org/tasks/location/GeofenceApi.java b/src/googleplay/java/org/tasks/location/GeofenceApi.java index 8528e762f..9afee04f0 100644 --- a/src/googleplay/java/org/tasks/location/GeofenceApi.java +++ b/src/googleplay/java/org/tasks/location/GeofenceApi.java @@ -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(); diff --git a/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java b/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java index 60189dec9..bc730d4c5 100644 --- a/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java +++ b/src/googleplay/java/org/tasks/location/GeofenceTransitionsIntentService.java @@ -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 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()); } } } \ No newline at end of file diff --git a/src/googleplay/java/org/tasks/location/GoogleApi.java b/src/googleplay/java/org/tasks/location/GoogleApi.java index 70b32b879..b6c484a67 100644 --- a/src/googleplay/java/org/tasks/location/GoogleApi.java +++ b/src/googleplay/java/org/tasks/location/GoogleApi.java @@ -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); } } diff --git a/src/googleplay/java/org/tasks/location/PlaceAutocompleteAdapter.java b/src/googleplay/java/org/tasks/location/PlaceAutocompleteAdapter.java index 8edf99965..6a0db1c7e 100644 --- a/src/googleplay/java/org/tasks/location/PlaceAutocompleteAdapter.java +++ b/src/googleplay/java/org/tasks/location/PlaceAutocompleteAdapter.java @@ -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 { - private static final Logger log = LoggerFactory.getLogger(PlaceAutocompleteAdapter.class); private final GoogleApi googleApi; private List 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 iterator = autocompletePredictions.iterator(); List resultList = new ArrayList<>(autocompletePredictions.getCount()); diff --git a/src/googleplay/java/org/tasks/scheduling/GtasksBackgroundService.java b/src/googleplay/java/org/tasks/scheduling/GtasksBackgroundService.java index 276a015ae..ab5e92922 100644 --- a/src/googleplay/java/org/tasks/scheduling/GtasksBackgroundService.java +++ b/src/googleplay/java/org/tasks/scheduling/GtasksBackgroundService.java @@ -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; } diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 0b2cdcc3c..5cf887f79 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -1,9 +1,12 @@ - + + + diff --git a/src/main/assets/logback.xml b/src/main/assets/logback.xml deleted file mode 100644 index 43c6cb766..000000000 --- a/src/main/assets/logback.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - [%thread] %-5level - %msg%n - - - - - - - diff --git a/src/main/java/com/todoroo/andlib/data/AbstractModel.java b/src/main/java/com/todoroo/andlib/data/AbstractModel.java index 30895c0f9..58981631c 100644 --- a/src/main/java/com/todoroo/andlib/data/AbstractModel.java +++ b/src/main/java/com/todoroo/andlib/data/AbstractModel.java @@ -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); } } diff --git a/src/main/java/com/todoroo/andlib/data/DatabaseDao.java b/src/main/java/com/todoroo/andlib/data/DatabaseDao.java index 43cbee6d2..c66abaa86 100644 --- a/src/main/java/com/todoroo/andlib/data/DatabaseDao.java +++ b/src/main/java/com/todoroo/andlib/data/DatabaseDao.java @@ -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 { - private static final Logger log = LoggerFactory.getLogger(DatabaseDao.class); - private final Class modelClass; private final Table table; private final Database database; @@ -167,7 +164,7 @@ public class DatabaseDao { * @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 { if (result.get()) { onModelUpdated(item); item.markSaved(); - log.debug("{} {}", op, item); + Timber.d("%s %s", op, item); } } return result.get(); diff --git a/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java b/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java index 35f0a79e3..2b549dae3 100644 --- a/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java +++ b/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java @@ -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()); } } diff --git a/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java b/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java index 31cd73ee3..07fbe8060 100644 --- a/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java +++ b/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java @@ -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()); } } }); diff --git a/src/main/java/com/todoroo/andlib/utility/Preferences.java b/src/main/java/com/todoroo/andlib/utility/Preferences.java index 77752121b..0bec13816 100644 --- a/src/main/java/com/todoroo/andlib/utility/Preferences.java +++ b/src/main/java/com/todoroo/andlib/utility/Preferences.java @@ -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; } } diff --git a/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java b/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java index 8d2dc49de..ee7a809f1 100644 --- a/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java +++ b/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java @@ -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; } diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index d0130e49e..44f447bde 100755 --- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -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; diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java index e09b14f1e..3b0fe42b0 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java @@ -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()); } } diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index 45f5e47f9..c023f5c78 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -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; } } diff --git a/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java b/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java index 1b64375f6..a46ecf254 100644 --- a/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java @@ -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()); } } } diff --git a/src/main/java/com/todoroo/astrid/backup/FilePickerBuilder.java b/src/main/java/com/todoroo/astrid/backup/FilePickerBuilder.java index d8c8b2745..43391ebe8 100644 --- a/src/main/java/com/todoroo/astrid/backup/FilePickerBuilder.java +++ b/src/main/java/com/todoroo/astrid/backup/FilePickerBuilder.java @@ -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"); } } diff --git a/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java b/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java index d7127ae98..4f9a871d3 100644 --- a/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java +++ b/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java @@ -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); } diff --git a/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java b/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java index 0c4039ccf..ce70d72c1 100644 --- a/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java +++ b/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java @@ -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()); } } } diff --git a/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java b/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java index 3226de5df..a0a8a376f 100644 --- a/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java +++ b/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java @@ -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(); diff --git a/src/main/java/com/todoroo/astrid/dao/Database.java b/src/main/java/com/todoroo/astrid/dao/Database.java index a2414daaa..615df0fc8 100644 --- a/src/main/java/com/todoroo/astrid/dao/Database.java +++ b/src/main/java/com/todoroo/astrid/dao/Database.java @@ -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); } } } diff --git a/src/main/java/com/todoroo/astrid/dao/TaskDao.java b/src/main/java/com/todoroo/astrid/dao/TaskDao.java index 108760e4a..809fc7a6b 100644 --- a/src/main/java/com/todoroo/astrid/dao/TaskDao.java +++ b/src/main/java/com/todoroo/astrid/dao/TaskDao.java @@ -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 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 tasksWithUUID = dao.query(Query.select( SQL_CONSTRAINT_MERGE_PROPERTIES).where( diff --git a/src/main/java/com/todoroo/astrid/data/RemoteModel.java b/src/main/java/com/todoroo/astrid/data/RemoteModel.java index 79d0b2ee5..b8c78ff26 100644 --- a/src/main/java/com/todoroo/astrid/data/RemoteModel.java +++ b/src/main/java/com/todoroo/astrid/data/RemoteModel.java @@ -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; } } diff --git a/src/main/java/com/todoroo/astrid/files/FileExplore.java b/src/main/java/com/todoroo/astrid/files/FileExplore.java index ecce51e20..ed5cf18d1 100644 --- a/src/main/java/com/todoroo/astrid/files/FileExplore.java +++ b/src/main/java/com/todoroo/astrid/files/FileExplore.java @@ -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(this, diff --git a/src/main/java/com/todoroo/astrid/files/FilesControlSet.java b/src/main/java/com/todoroo/astrid/files/FilesControlSet.java index 7c6a75711..1f3717029 100644 --- a/src/main/java/com/todoroo/astrid/files/FilesControlSet.java +++ b/src/main/java/com/todoroo/astrid/files/FilesControlSet.java @@ -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 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(); } } diff --git a/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java b/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java index 5cd39961f..40a18e828 100644 --- a/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java +++ b/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java @@ -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()); } } diff --git a/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java b/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java index 92ec0b5bb..a6857c196 100644 --- a/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java +++ b/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java @@ -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(); diff --git a/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java b/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java index 01a3ad4ca..d0e84307c 100644 --- a/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java +++ b/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java @@ -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()); } } diff --git a/src/main/java/com/todoroo/astrid/gcal/GCalTaskCompleteListener.java b/src/main/java/com/todoroo/astrid/gcal/GCalTaskCompleteListener.java index 8d8a6178d..aa9d1b458 100644 --- a/src/main/java/com/todoroo/astrid/gcal/GCalTaskCompleteListener.java +++ b/src/main/java/com/todoroo/astrid/gcal/GCalTaskCompleteListener.java @@ -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()); } } } diff --git a/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java b/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java index aa665f59c..8d8872780 100644 --- a/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java +++ b/src/main/java/com/todoroo/astrid/notes/EditNoteActivity.java @@ -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; diff --git a/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java b/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java index e0becec76..c8ae08d9b 100644 --- a/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java +++ b/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java @@ -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()); } } diff --git a/src/main/java/com/todoroo/astrid/reminders/ReminderService.java b/src/main/java/com/todoroo/astrid/reminders/ReminderService.java index a5d6c2097..d0606fd06 100644 --- a/src/main/java/com/todoroo/astrid/reminders/ReminderService.java +++ b/src/main/java/com/todoroo/astrid/reminders/ReminderService.java @@ -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, diff --git a/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java b/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java index 4ee702e5d..93b2eb5cf 100644 --- a/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java +++ b/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java @@ -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; diff --git a/src/main/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java b/src/main/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java index 82600ce47..1d1f30366 100644 --- a/src/main/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java +++ b/src/main/java/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java @@ -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; } diff --git a/src/main/java/com/todoroo/astrid/service/StartupService.java b/src/main/java/com/todoroo/astrid/service/StartupService.java index 2c27a1778..756a68dff 100644 --- a/src/main/java/com/todoroo/astrid/service/StartupService.java +++ b/src/main/java/com/todoroo/astrid/service/StartupService.java @@ -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()); } } } diff --git a/src/main/java/com/todoroo/astrid/service/TaskService.java b/src/main/java/com/todoroo/astrid/service/TaskService.java index cd8e4e2c8..65c5308e5 100644 --- a/src/main/java/com/todoroo/astrid/service/TaskService.java +++ b/src/main/java/com/todoroo/astrid/service/TaskService.java @@ -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; diff --git a/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java b/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java index b1ff07c53..a53601240 100644 --- a/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java +++ b/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListFragmentHelper.java @@ -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 implements OrderedListFragmentHelperInterface { +import timber.log.Timber; - private static final Logger log = LoggerFactory.getLogger(AstridOrderedListFragmentHelper.class); +public class AstridOrderedListFragmentHelper implements OrderedListFragmentHelperInterface { private final DisplayMetrics metrics = new DisplayMetrics(); private final AstridOrderedListUpdater updater; @@ -117,7 +115,7 @@ public class AstridOrderedListFragmentHelper 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 implements OrderedListFragmen try { updater.indent(list, getFilter(), targetTaskId, delta); } catch (Exception e) { - log.error(e.getMessage(), e); + Timber.e(e, e.getMessage()); } fragment.reconstructCursor(); diff --git a/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListUpdater.java b/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListUpdater.java index f8f6ffc08..4eebb070e 100644 --- a/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListUpdater.java +++ b/src/main/java/com/todoroo/astrid/subtasks/AstridOrderedListUpdater.java @@ -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 { +import timber.log.Timber; - private static final Logger log = LoggerFactory.getLogger(AstridOrderedListUpdater.class); +public abstract class AstridOrderedListUpdater { private final TaskService taskService; @@ -395,7 +393,7 @@ public abstract class AstridOrderedListUpdater { JSONArray tree = new JSONArray(serializedTree); recursivelyBuildChildren(root, tree, callback); } catch (JSONException e) { - log.error(e.getMessage(), e); + Timber.e(e, e.getMessage()); } return root; } diff --git a/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java b/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java index 71830e7b0..4f0427fc9 100644 --- a/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java +++ b/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java @@ -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; } diff --git a/src/main/java/com/todoroo/astrid/ui/DraggableListView.java b/src/main/java/com/todoroo/astrid/ui/DraggableListView.java index 15e07100d..48e13b48d 100644 --- a/src/main/java/com/todoroo/astrid/ui/DraggableListView.java +++ b/src/main/java/com/todoroo/astrid/ui/DraggableListView.java @@ -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()); } } } diff --git a/src/main/java/com/todoroo/astrid/ui/MultilineListPreference.java b/src/main/java/com/todoroo/astrid/ui/MultilineListPreference.java index 4b64ed4dd..55377e113 100644 --- a/src/main/java/com/todoroo/astrid/ui/MultilineListPreference.java +++ b/src/main/java/com/todoroo/astrid/ui/MultilineListPreference.java @@ -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); } diff --git a/src/main/java/com/todoroo/astrid/ui/NumberPicker.java b/src/main/java/com/todoroo/astrid/ui/NumberPicker.java index f32eb3e2f..9cebec23a 100644 --- a/src/main/java/com/todoroo/astrid/ui/NumberPicker.java +++ b/src/main/java/com/todoroo/astrid/ui/NumberPicker.java @@ -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; } } diff --git a/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java b/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java index f0e9dc254..ec2a83172 100644 --- a/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java +++ b/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java @@ -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; } diff --git a/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java b/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java index 8428ebe90..ee0075642 100644 --- a/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java +++ b/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.java @@ -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(); diff --git a/src/main/java/com/todoroo/astrid/utility/TitleParser.java b/src/main/java/com/todoroo/astrid/utility/TitleParser.java index ff5e187b5..2fbd32b3c 100644 --- a/src/main/java/com/todoroo/astrid/utility/TitleParser.java +++ b/src/main/java/com/todoroo/astrid/utility/TitleParser.java @@ -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 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()); } } } diff --git a/src/main/java/com/todoroo/astrid/voice/AACRecorder.java b/src/main/java/com/todoroo/astrid/voice/AACRecorder.java index b7b4cbf75..faddc6f6e 100644 --- a/src/main/java/com/todoroo/astrid/voice/AACRecorder.java +++ b/src/main/java/com/todoroo/astrid/voice/AACRecorder.java @@ -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); } }); }}; diff --git a/src/main/java/com/todoroo/astrid/voice/VoiceOutputAssistant.java b/src/main/java/com/todoroo/astrid/voice/VoiceOutputAssistant.java index 7ed0d5345..368a68109 100644 --- a/src/main/java/com/todoroo/astrid/voice/VoiceOutputAssistant.java +++ b/src/main/java/com/todoroo/astrid/voice/VoiceOutputAssistant.java @@ -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()); } } } diff --git a/src/main/java/com/todoroo/astrid/widget/TasksWidget.java b/src/main/java/com/todoroo/astrid/widget/TasksWidget.java index 4c3649c25..417939497 100644 --- a/src/main/java/com/todoroo/astrid/widget/TasksWidget.java +++ b/src/main/java/com/todoroo/astrid/widget/TasksWidget.java @@ -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()); } } diff --git a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java index de4d4b319..ea3a585e2 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java @@ -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(); diff --git a/src/main/java/org/tasks/Notifier.java b/src/main/java/org/tasks/Notifier.java index 9f9aa0b8c..4982350ef 100644 --- a/src/main/java/org/tasks/Notifier.java +++ b/src/main/java/org/tasks/Notifier.java @@ -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()); } } } diff --git a/src/main/java/org/tasks/Tasks.java b/src/main/java/org/tasks/Tasks.java index 448123ef7..fd3748a62 100644 --- a/src/main/java/org/tasks/Tasks.java +++ b/src/main/java/org/tasks/Tasks.java @@ -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); + } + } + } + } } diff --git a/src/main/java/org/tasks/activities/AddAttachmentActivity.java b/src/main/java/org/tasks/activities/AddAttachmentActivity.java index a18ca31e3..aa9954c1e 100644 --- a/src/main/java/org/tasks/activities/AddAttachmentActivity.java +++ b/src/main/java/org/tasks/activities/AddAttachmentActivity.java @@ -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; } diff --git a/src/main/java/org/tasks/activities/SortActivity.java b/src/main/java/org/tasks/activities/SortActivity.java index d7948aba8..ff2e47e5b 100644 --- a/src/main/java/org/tasks/activities/SortActivity.java +++ b/src/main/java/org/tasks/activities/SortActivity.java @@ -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; } } diff --git a/src/main/java/org/tasks/preferences/DeviceInfo.java b/src/main/java/org/tasks/preferences/DeviceInfo.java index 08ae77db2..4b093116c 100644 --- a/src/main/java/org/tasks/preferences/DeviceInfo.java +++ b/src/main/java/org/tasks/preferences/DeviceInfo.java @@ -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; } diff --git a/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java b/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java index 5853f05f2..fb76badce 100644 --- a/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java +++ b/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java @@ -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); } diff --git a/src/main/java/org/tasks/preferences/PermissionChecker.java b/src/main/java/org/tasks/preferences/PermissionChecker.java index b833de184..4db089bc1 100644 --- a/src/main/java/org/tasks/preferences/PermissionChecker.java +++ b/src/main/java/org/tasks/preferences/PermissionChecker.java @@ -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 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; } } diff --git a/src/main/java/org/tasks/preferences/Preferences.java b/src/main/java/org/tasks/preferences/Preferences.java index bb81c711e..7d19cd51b 100644 --- a/src/main/java/org/tasks/preferences/Preferences.java +++ b/src/main/java/org/tasks/preferences/Preferences.java @@ -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; } } diff --git a/src/main/java/org/tasks/receivers/BootCompletedReceiver.java b/src/main/java/org/tasks/receivers/BootCompletedReceiver.java index ad5ce4a2a..67ab959a4 100644 --- a/src/main/java/org/tasks/receivers/BootCompletedReceiver.java +++ b/src/main/java/org/tasks/receivers/BootCompletedReceiver.java @@ -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(); } diff --git a/src/main/java/org/tasks/receivers/CompleteTaskReceiver.java b/src/main/java/org/tasks/receivers/CompleteTaskReceiver.java index fb758cba5..4ab63412e 100644 --- a/src/main/java/org/tasks/receivers/CompleteTaskReceiver.java +++ b/src/main/java/org/tasks/receivers/CompleteTaskReceiver.java @@ -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); } } } diff --git a/src/main/java/org/tasks/receivers/FirstLaunchReceiver.java b/src/main/java/org/tasks/receivers/FirstLaunchReceiver.java index 63f2faf55..77bdf2d30 100644 --- a/src/main/java/org/tasks/receivers/FirstLaunchReceiver.java +++ b/src/main/java/org/tasks/receivers/FirstLaunchReceiver.java @@ -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(); diff --git a/src/main/java/org/tasks/receivers/ListNotificationReceiver.java b/src/main/java/org/tasks/receivers/ListNotificationReceiver.java index f7cbc7e1c..32cff10f5 100644 --- a/src/main/java/org/tasks/receivers/ListNotificationReceiver.java +++ b/src/main/java/org/tasks/receivers/ListNotificationReceiver.java @@ -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 diff --git a/src/main/java/org/tasks/receivers/MyPackageReplacedReceiver.java b/src/main/java/org/tasks/receivers/MyPackageReplacedReceiver.java index e1f9fff62..feb982c74 100644 --- a/src/main/java/org/tasks/receivers/MyPackageReplacedReceiver.java +++ b/src/main/java/org/tasks/receivers/MyPackageReplacedReceiver.java @@ -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(); } diff --git a/src/main/java/org/tasks/receivers/PackageReplacedReceiver.java b/src/main/java/org/tasks/receivers/PackageReplacedReceiver.java index 14edc639b..99ba74a40 100644 --- a/src/main/java/org/tasks/receivers/PackageReplacedReceiver.java +++ b/src/main/java/org/tasks/receivers/PackageReplacedReceiver.java @@ -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); } } } diff --git a/src/main/java/org/tasks/receivers/RefreshReceiver.java b/src/main/java/org/tasks/receivers/RefreshReceiver.java index 69792489a..1f750a38e 100644 --- a/src/main/java/org/tasks/receivers/RefreshReceiver.java +++ b/src/main/java/org/tasks/receivers/RefreshReceiver.java @@ -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(); } diff --git a/src/main/java/org/tasks/receivers/RepeatConfirmationReceiver.java b/src/main/java/org/tasks/receivers/RepeatConfirmationReceiver.java index fefc69071..96e18071d 100644 --- a/src/main/java/org/tasks/receivers/RepeatConfirmationReceiver.java +++ b/src/main/java/org/tasks/receivers/RepeatConfirmationReceiver.java @@ -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() { diff --git a/src/main/java/org/tasks/scheduling/AlarmSchedulingIntentService.java b/src/main/java/org/tasks/scheduling/AlarmSchedulingIntentService.java index f278faa51..980cf196d 100644 --- a/src/main/java/org/tasks/scheduling/AlarmSchedulingIntentService.java +++ b/src/main/java/org/tasks/scheduling/AlarmSchedulingIntentService.java @@ -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(); diff --git a/src/main/java/org/tasks/scheduling/BackupIntentService.java b/src/main/java/org/tasks/scheduling/BackupIntentService.java index 3f4251601..01dc7f97f 100644 --- a/src/main/java/org/tasks/scheduling/BackupIntentService.java +++ b/src/main/java/org/tasks/scheduling/BackupIntentService.java @@ -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]); } } } diff --git a/src/main/java/org/tasks/scheduling/MidnightIntentService.java b/src/main/java/org/tasks/scheduling/MidnightIntentService.java index a280f2f83..934308b2b 100644 --- a/src/main/java/org/tasks/scheduling/MidnightIntentService.java +++ b/src/main/java/org/tasks/scheduling/MidnightIntentService.java @@ -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); diff --git a/src/main/java/org/tasks/scheduling/RecurringIntervalIntentService.java b/src/main/java/org/tasks/scheduling/RecurringIntervalIntentService.java index adf309938..9b84b0ef3 100644 --- a/src/main/java/org/tasks/scheduling/RecurringIntervalIntentService.java +++ b/src/main/java/org/tasks/scheduling/RecurringIntervalIntentService.java @@ -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); diff --git a/src/main/java/org/tasks/scheduling/RefreshSchedulerIntentService.java b/src/main/java/org/tasks/scheduling/RefreshSchedulerIntentService.java index 2a264627c..9b46a02a1 100644 --- a/src/main/java/org/tasks/scheduling/RefreshSchedulerIntentService.java +++ b/src/main/java/org/tasks/scheduling/RefreshSchedulerIntentService.java @@ -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(); } diff --git a/src/main/java/org/tasks/scheduling/ReminderSchedulerIntentService.java b/src/main/java/org/tasks/scheduling/ReminderSchedulerIntentService.java index dfaae6ae0..2d00bde22 100644 --- a/src/main/java/org/tasks/scheduling/ReminderSchedulerIntentService.java +++ b/src/main/java/org/tasks/scheduling/ReminderSchedulerIntentService.java @@ -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); } diff --git a/src/main/java/org/tasks/sync/IndeterminateProgressBarSyncResultCallback.java b/src/main/java/org/tasks/sync/IndeterminateProgressBarSyncResultCallback.java index cecaf3116..4e0a8677c 100644 --- a/src/main/java/org/tasks/sync/IndeterminateProgressBarSyncResultCallback.java +++ b/src/main/java/org/tasks/sync/IndeterminateProgressBarSyncResultCallback.java @@ -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()); } } }); diff --git a/src/main/java/org/tasks/ui/NavigationDrawerFragment.java b/src/main/java/org/tasks/ui/NavigationDrawerFragment.java index 9bff0849a..71a7465f8 100644 --- a/src/main/java/org/tasks/ui/NavigationDrawerFragment.java +++ b/src/main/java/org/tasks/ui/NavigationDrawerFragment.java @@ -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()); } } diff --git a/src/main/java/org/tasks/ui/ProgressDialogAsyncTask.java b/src/main/java/org/tasks/ui/ProgressDialogAsyncTask.java index d0fdbc385..a0bccdf2d 100644 --- a/src/main/java/org/tasks/ui/ProgressDialogAsyncTask.java +++ b/src/main/java/org/tasks/ui/ProgressDialogAsyncTask.java @@ -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 { +import timber.log.Timber; - private static final Logger log = LoggerFactory.getLogger(ProgressDialogAsyncTask.class); +public abstract class ProgressDialogAsyncTask extends AsyncTask { ProgressDialog progressDialog; private Activity activity; @@ -35,7 +33,7 @@ public abstract class ProgressDialogAsyncTask extends AsyncTask