diff --git a/api/build.gradle b/api/build.gradle index bde3d5c0d..6162f05d2 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -34,5 +34,7 @@ android { dependencies { compile group: 'com.android.support', name: 'support-v4', version: '19.1.+' + compile group: 'org.slf4j', name: 'slf4j-android', version: '1.7.7', transitive: false + compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.7' compile group: 'joda-time', name: 'joda-time', version: '2.3', transitive: false } diff --git a/api/src/main/java/com/todoroo/andlib/data/AbstractDatabase.java b/api/src/main/java/com/todoroo/andlib/data/AbstractDatabase.java index 7328622f3..74f815985 100644 --- a/api/src/main/java/com/todoroo/andlib/data/AbstractDatabase.java +++ b/api/src/main/java/com/todoroo/andlib/data/AbstractDatabase.java @@ -14,12 +14,12 @@ import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import com.todoroo.andlib.data.Property.PropertyVisitor; -import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; -import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.utility.AndroidUtilities; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.ArrayList; /** @@ -39,6 +39,8 @@ import java.util.ArrayList; */ abstract public class AbstractDatabase { + Logger log = LoggerFactory.getLogger(AbstractDatabase.class); + // --- abstract methods /** @@ -105,15 +107,6 @@ abstract public class AbstractDatabase { } } - // --- internal implementation - - @Autowired - private ExceptionService exceptionService; - - public AbstractDatabase() { - DependencyInjectionService.getInstance().inject(this); - } - /** * Return the name of the table containing these models */ @@ -159,8 +152,7 @@ abstract public class AbstractDatabase { // provide read-only database openForReading(); } catch (Exception readException) { - exceptionService.reportError("database-open-" + getName(), original); - + log.error("database-open-{}", getName(), original); // throw original write exception throw original; } @@ -312,8 +304,7 @@ abstract public class AbstractDatabase { "from " + oldVersion + " to " + newVersion); } } catch (Exception e) { - exceptionService.reportError(String.format("database-upgrade-%s-%d-%d", - getName(), oldVersion, newVersion), e); + log.error("database-upgrade-{}-{}-{}", getName(), oldVersion, newVersion, e); } } } diff --git a/api/src/main/java/com/todoroo/andlib/service/AbstractDependencyInjector.java b/api/src/main/java/com/todoroo/andlib/service/AbstractDependencyInjector.java index f42599980..1444da2fc 100644 --- a/api/src/main/java/com/todoroo/andlib/service/AbstractDependencyInjector.java +++ b/api/src/main/java/com/todoroo/andlib/service/AbstractDependencyInjector.java @@ -5,8 +5,6 @@ */ package com.todoroo.andlib.service; -import com.todoroo.andlib.service.ExceptionService.ErrorReporter; - import java.lang.ref.WeakReference; import java.lang.reflect.Field; import java.util.HashMap; @@ -24,7 +22,6 @@ abstract public class AbstractDependencyInjector { /** * Initialize list of injection variables. Special care must used when * instantiating classes that themselves depend on dependency injection - * (i.e. {@link ErrorReporter}. */ protected void addInjectables() { // your injectables here diff --git a/api/src/main/java/com/todoroo/andlib/service/DependencyInjectionService.java b/api/src/main/java/com/todoroo/andlib/service/DependencyInjectionService.java index 438b4f142..cfd90b71b 100644 --- a/api/src/main/java/com/todoroo/andlib/service/DependencyInjectionService.java +++ b/api/src/main/java/com/todoroo/andlib/service/DependencyInjectionService.java @@ -5,9 +5,6 @@ */ package com.todoroo.andlib.service; -import com.todoroo.andlib.service.ExceptionService.AndroidLogReporter; -import com.todoroo.andlib.service.ExceptionService.ErrorReporter; - import java.lang.reflect.Field; import java.util.LinkedList; @@ -124,10 +121,6 @@ public class DependencyInjectionService { @Override protected void addInjectables() { injectables.put("debug", false); - injectables.put("exceptionService", ExceptionService.class); - injectables.put("errorReporters", new ErrorReporter[] { - new AndroidLogReporter(), - }); } } diff --git a/api/src/main/java/com/todoroo/andlib/service/ExceptionService.java b/api/src/main/java/com/todoroo/andlib/service/ExceptionService.java deleted file mode 100644 index ff6097678..000000000 --- a/api/src/main/java/com/todoroo/andlib/service/ExceptionService.java +++ /dev/null @@ -1,142 +0,0 @@ -/** - * Copyright (c) 2012 Todoroo Inc - * - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.andlib.service; - -import android.app.Activity; -import android.app.AlertDialog; -import android.content.Context; -import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; -import android.util.Log; - -import org.tasks.api.R; - -/** - * Exception handling utility class - reports and logs errors - * - * @author Tim Su - * - */ -public class ExceptionService { - - @Autowired - public ErrorReporter[] errorReporters; - - public ExceptionService() { - DependencyInjectionService.getInstance().inject(this); - if(errorReporters == null) { - errorReporters = new ErrorReporter[] { - new AndroidLogReporter() - }; - } - } - - /** - * Report the error via registered error handlers - * - * @param name Internal error name. Not displayed to user - * @param error Exception encountered. Message will be displayed to user - */ - public void reportError(String name, Throwable error) { - if(errorReporters == null) { - return; - } - - for(ErrorReporter reporter : errorReporters) { - try { - reporter.handleError(name, error); - } catch (Exception e) { - Log.e("astrid-exception-service", "Exception handling error", e); //$NON-NLS-1$ //$NON-NLS-2$ - } - } - } - - /** - * Display error dialog if context is activity and report error - * - * @param context Application Context - * @param name Internal error name. Not displayed to user - * @param error Exception encountered. Message will be displayed to user - */ - public void displayAndReportError(final Context context, String name, Throwable error) { - if(context instanceof Activity) { - final String messageToDisplay; - - // pretty up the message when displaying to user - if(error == null) { - messageToDisplay = context.getString(R.string.DLG_error_generic); - } else { - messageToDisplay = context.getString(R.string.DLG_error, error); - } - - ((Activity)context).runOnUiThread(new Runnable() { - @Override - public void run() { - try { - new AlertDialog.Builder(context) - .setTitle(R.string.DLG_error_title) - .setMessage(messageToDisplay) - .setIcon(android.R.drawable.ic_dialog_alert) - .setPositiveButton(android.R.string.ok, null) - .show(); - } catch (Exception e) { - // suppress errors during dialog creation - } - } - }); - } - - reportError(name, error); - } - - /** - * Error reporter interface - * - * @author Tim Su - * - */ - public interface ErrorReporter { - public void handleError(String name, Throwable error); - } - - /** - * AndroidLogReporter reports errors to LogCat - * - * @author Tim Su - * - */ - public static class AndroidLogReporter implements ErrorReporter { - - /** - * Report the error to the logs - */ - @Override - public void handleError(String name, Throwable error) { - String tag = null; - if(ContextManager.getContext() != null) { - PackageManager pm = ContextManager.getContext().getPackageManager(); - try { - String appName = pm.getApplicationInfo(ContextManager.getContext(). - getPackageName(), 0).loadLabel(pm).toString(); - tag = appName + "-" + name; //$NON-NLS-1$ - } catch (NameNotFoundException e) { - // give up - } - } - - if(tag == null) { - tag = "unknown-" + name; //$NON-NLS-1$ - } - - if(error == null) { - Log.e(tag, "Exception: " + name); //$NON-NLS-1$ - } else { - Log.e(tag, error.toString(), error); - } - } - } -} - diff --git a/api/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java b/api/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java index 6ce7f2dcf..fd65cf7e9 100644 --- a/api/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java +++ b/api/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java @@ -23,7 +23,8 @@ import android.view.View.OnTouchListener; import android.view.inputmethod.InputMethodManager; import android.widget.TextView; -import com.todoroo.andlib.service.ExceptionService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileInputStream; @@ -44,6 +45,8 @@ 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$ @@ -97,9 +100,7 @@ public class AndroidUtilities { context.startActivity(intent); } } catch (Exception e) { - getExceptionService().displayAndReportError(context, - "start-external-intent-" + intent.toString(), //$NON-NLS-1$ - e); + log.error("start-external-intent-{}", intent.toString(), e); } } @@ -470,21 +471,6 @@ public class AndroidUtilities { return newList; } - // --- internal - - private static ExceptionService exceptionService = null; - - private static ExceptionService getExceptionService() { - if(exceptionService == null) { - synchronized (AndroidUtilities.class) { - if (exceptionService == null) { - exceptionService = new ExceptionService(); - } - } - } - return exceptionService; - } - /** * Capitalize the first character */ diff --git a/api/src/main/java/com/todoroo/astrid/sync/SyncV2BackgroundService.java b/api/src/main/java/com/todoroo/astrid/sync/SyncV2BackgroundService.java index 5d208912d..2ce221324 100644 --- a/api/src/main/java/com/todoroo/astrid/sync/SyncV2BackgroundService.java +++ b/api/src/main/java/com/todoroo/astrid/sync/SyncV2BackgroundService.java @@ -13,14 +13,14 @@ import android.content.Intent; import android.os.IBinder; import android.util.Log; -import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; -import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.api.AstridApiConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.concurrent.atomic.AtomicBoolean; /** @@ -36,24 +36,15 @@ import java.util.concurrent.atomic.AtomicBoolean; */ abstract public class SyncV2BackgroundService extends Service { + private static final Logger log = LoggerFactory.getLogger(SyncV2BackgroundService.class); + /** Minimum time before an auto-sync */ private static final long AUTO_SYNC_MIN_OFFSET = 5*60*1000L; - @Autowired private ExceptionService exceptionService; - - // --- abstract methods - abstract protected SyncV2Provider getSyncProvider(); abstract protected SyncProviderUtilities getSyncUtilities(); - // --- implementation - - @SuppressWarnings("unused") - public SyncV2BackgroundService() { - DependencyInjectionService.getInstance().inject(this); - } - private final AtomicBoolean started = new AtomicBoolean(false); /** Receive the alarm - start the synchronize service! */ @@ -64,7 +55,7 @@ abstract public class SyncV2BackgroundService extends Service { startSynchronization(this); } } catch (Exception e) { - exceptionService.reportError(getSyncUtilities().getIdentifier() + "-bg-sync", e); //$NON-NLS-1$ + log.error("{}-bg-sync", getSyncUtilities().getIdentifier(), e); } } diff --git a/api/src/main/java/com/todoroo/astrid/sync/SyncV2Provider.java b/api/src/main/java/com/todoroo/astrid/sync/SyncV2Provider.java index fa74558b4..ed30fa2e5 100644 --- a/api/src/main/java/com/todoroo/astrid/sync/SyncV2Provider.java +++ b/api/src/main/java/com/todoroo/astrid/sync/SyncV2Provider.java @@ -5,45 +5,22 @@ */ package com.todoroo.astrid.sync; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; - -import java.io.IOException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; abstract public class SyncV2Provider { + private static final Logger log = LoggerFactory.getLogger(SyncV2Provider.class); + public class SyncExceptionHandler { public void handleException(String tag, Exception e, String type) { getUtilities().setLastError(e.toString(), type); - - // occurs when application was closed - if(e instanceof IllegalStateException) { - exceptionService.reportError(tag + "-caught", e); //$NON-NLS-1$ - } - - // occurs when network error - else if(e instanceof IOException) { - exceptionService.reportError(tag + "-io", e); //$NON-NLS-1$ - } - - // unhandled error - else { - exceptionService.reportError(tag + "-unhandled", e); //$NON-NLS-1$ - } + log.error("{}: {}", tag, e.getMessage(), e); } } - @Autowired - protected ExceptionService exceptionService; - - protected final SyncExceptionHandler handler; - - public SyncV2Provider() { - DependencyInjectionService.getInstance().inject(this); - handler = new SyncExceptionHandler(); - } + protected final SyncExceptionHandler handler = new SyncExceptionHandler(); /** * @return sync provider name (displayed in sync menu) diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/astrid/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index e22a1df28..9e33b94b3 100755 --- a/astrid/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -44,7 +44,6 @@ import android.widget.Toast; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DialogUtilities; @@ -83,6 +82,8 @@ import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.voice.VoiceInputAssistant; import com.todoroo.astrid.voice.VoiceRecognizer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import java.io.File; @@ -106,6 +107,8 @@ import static android.support.v4.view.MenuItemCompat.setShowAsAction; public final class TaskEditFragment extends Fragment 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 @@ -164,9 +167,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { public static final int TAB_VIEW_UPDATES = 0; - @Autowired - private ExceptionService exceptionService; - @Autowired private TaskService taskService; @@ -612,8 +612,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { setIsNewTask(model.getTitle().length() == 0); if (model == null) { - exceptionService.reportError("task-edit-no-task", - new NullPointerException("model")); + log.error("task-edit-no-task", new NullPointerException("model")); getActivity().onBackPressed(); return; } diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index 73069cb9a..236ec65d4 100644 --- a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -48,7 +48,6 @@ import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Field; import com.todoroo.andlib.sql.Join; @@ -90,6 +89,8 @@ import com.todoroo.astrid.utility.AstridPreferences; import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.widget.TasksWidget; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import java.util.List; @@ -106,6 +107,8 @@ import java.util.concurrent.atomic.AtomicReference; */ public class TaskListFragment extends ListFragment implements OnSortSelectedListener { + private static final Logger log = LoggerFactory.getLogger(TaskListFragment.class); + public static final String TAG_TASKLIST_FRAGMENT = "tasklist_fragment"; //$NON-NLS-1$ // --- activities @@ -139,9 +142,6 @@ public class TaskListFragment extends ListFragment implements OnSortSelectedList // --- instance variables - @Autowired - protected ExceptionService exceptionService; - @Autowired protected TaskService taskService; @@ -693,9 +693,7 @@ public class TaskListFragment extends ListFragment implements OnSortSelectedList taskAdapter.addDetails(taskId, detail); } } catch (Exception e) { - exceptionService.reportError("receive-detail-" + //$NON-NLS-1$ - intent.getStringExtra(AstridApiConstants.EXTRAS_ADDON), - e); + log.error("receive-detail-{}", intent.getStringExtra(AstridApiConstants.EXTRAS_ADDON), e); } } } diff --git a/astrid/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java b/astrid/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java index 91a152149..57980e68b 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java +++ b/astrid/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java @@ -24,15 +24,14 @@ import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.gcal.Calendars.CalendarResult; import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.ui.PopupControlSet; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import java.util.ArrayList; @@ -46,10 +45,9 @@ import java.util.Collections; */ public class GCalControlSet extends PopupControlSet { - // --- instance variables + private static final Logger log = LoggerFactory.getLogger(GCalControlSet.class); - @Autowired - private ExceptionService exceptionService; + // --- instance variables private Uri calendarUri = null; @@ -61,7 +59,6 @@ public class GCalControlSet extends PopupControlSet { public GCalControlSet(final Activity activity, int viewLayout, int displayViewLayout, int title) { super(activity, viewLayout, displayViewLayout, title); - DependencyInjectionService.getInstance().inject(this); this.title = title; calendars = Calendars.getCalendars(); getView(); // Hack to force initialized @@ -121,8 +118,7 @@ public class GCalControlSet extends PopupControlSet { hasEvent = true; } catch (Exception e) { - exceptionService.reportError("unable-to-parse-calendar: " + //$NON-NLS-1$ - model.getCalendarURI(), e); + log.error("unable-to-parse-calendar: {}", model.getCalendarURI(), e); } } else { hasEvent = false; @@ -169,8 +165,7 @@ public class GCalControlSet extends PopupControlSet { } } catch (Exception e) { - exceptionService.displayAndReportError(activity, - activity.getString(R.string.gcal_TEA_error), e); + log.error(e.getMessage(), e); } } else if(calendarUri != null) { try { @@ -191,8 +186,7 @@ public class GCalControlSet extends PopupControlSet { ContentResolver cr = activity.getContentResolver(); cr.update(calendarUri, updateValues, null, null); } catch (Exception e) { - exceptionService.reportError("unable-to-update-calendar: " + //$NON-NLS-1$ - task.getCalendarURI(), e); + log.error("unable-to-update-calendar: {}", task.getCalendarURI(), e); } } } diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java index cbd8a60e8..5c9b3d611 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java @@ -14,12 +14,11 @@ import com.google.api.services.tasks.Tasks.TasksOperations.Move; import com.google.api.services.tasks.model.Task; import com.google.api.services.tasks.model.TaskList; import com.google.api.services.tasks.model.TaskLists; -import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; -import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.astrid.gtasks.auth.GtasksTokenValidator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import java.io.IOException; @@ -31,16 +30,16 @@ import java.io.IOException; * */ public class GtasksInvoker { + + private static final Logger log = LoggerFactory.getLogger(GtasksInvoker.class); + private Tasks service; private GoogleAccessProtectedResource accessProtectedResource; private String token; - @Autowired ExceptionService exceptionService; - public static final String AUTH_TOKEN_TYPE = "Manage your tasks"; //"oauth2:https://www.googleapis.com/auth/tasks"; public GtasksInvoker(String authToken) { - DependencyInjectionService.getInstance().inject(this); authenticate(authToken); } @@ -68,10 +67,7 @@ public class GtasksInvoker { accessProtectedResource.setAccessToken(token); } } else if (statusCode == 503) { // 503 errors are generally either 1) quota limit reached or 2) problems on Google's end - System.err.println("Encountered 503 error"); - final Context context = ContextManager.getContext(); - String message = context.getString(R.string.gtasks_error_backend); - exceptionService.reportError(message, h); + log.error("503: {}", e.getMessage(), e); } else if (statusCode == 400 || statusCode == 500) { System.err.println("Encountered " + statusCode + " error"); System.err.println(h.getResponse().getStatusMessage()); diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java index 3f34afe6c..148509c63 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java @@ -12,6 +12,7 @@ import com.todoroo.andlib.data.AbstractModel; import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; +import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Join; import com.todoroo.andlib.sql.Query; @@ -71,7 +72,7 @@ public class GtasksSyncV2Provider extends SyncV2Provider { private static GtasksSyncV2Provider instance = null; protected GtasksSyncV2Provider() { - // prevent multiple sync providers + DependencyInjectionService.getInstance().inject(this); } public synchronized static GtasksSyncV2Provider getInstance() { diff --git a/astrid/src/main/java/com/todoroo/astrid/helper/SyncActionHelper.java b/astrid/src/main/java/com/todoroo/astrid/helper/SyncActionHelper.java index 1620a1713..c060bbd5a 100644 --- a/astrid/src/main/java/com/todoroo/astrid/helper/SyncActionHelper.java +++ b/astrid/src/main/java/com/todoroo/astrid/helper/SyncActionHelper.java @@ -21,7 +21,6 @@ import android.widget.ArrayAdapter; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.Preferences; @@ -33,6 +32,8 @@ import com.todoroo.astrid.service.SyncV2Service; import com.todoroo.astrid.sync.SyncResultCallback; import com.todoroo.astrid.sync.SyncV2Provider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import java.util.ArrayList; @@ -52,6 +53,8 @@ import java.util.List; */ public class SyncActionHelper { + private static final Logger log = LoggerFactory.getLogger(SyncActionHelper.class); + public static final String PREF_LAST_AUTO_SYNC = "taskListLastAutoSync"; //$NON-NLS-1$ private final LinkedHashSet syncActions = new LinkedHashSet<>(); @@ -65,7 +68,6 @@ public class SyncActionHelper { protected SyncActionReceiver syncActionReceiver = new SyncActionReceiver(); @Autowired SyncV2Service syncService; - @Autowired ExceptionService exceptionService; // --- boilerplate @@ -113,9 +115,7 @@ public class SyncActionHelper { SyncAction syncAction = extras.getParcelable(AstridApiConstants.EXTRAS_RESPONSE); syncActions.add(syncAction); } catch (Exception e) { - exceptionService.reportError("receive-sync-action-" + //$NON-NLS-1$ - intent.getStringExtra(AstridApiConstants.EXTRAS_ADDON), - e); + log.error("receive-sync-action-{}", intent.getStringExtra(AstridApiConstants.EXTRAS_ADDON), e); } } } diff --git a/astrid/src/main/java/com/todoroo/astrid/provider/Astrid3ContentProvider.java b/astrid/src/main/java/com/todoroo/astrid/provider/Astrid3ContentProvider.java index a8798e5df..9e5faa657 100644 --- a/astrid/src/main/java/com/todoroo/astrid/provider/Astrid3ContentProvider.java +++ b/astrid/src/main/java/com/todoroo/astrid/provider/Astrid3ContentProvider.java @@ -22,7 +22,6 @@ import com.todoroo.andlib.data.DatabaseDao; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.MetadataDao; @@ -35,6 +34,9 @@ import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.UserActivity; import com.todoroo.astrid.service.AstridDependencyInjector; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.HashSet; import java.util.Map.Entry; import java.util.Set; @@ -68,6 +70,8 @@ import java.util.Set; */ public class Astrid3ContentProvider extends ContentProvider { + private static final Logger log = LoggerFactory.getLogger(Astrid3ContentProvider.class); + static { AstridDependencyInjector.initialize(); } @@ -103,16 +107,13 @@ public class Astrid3ContentProvider extends ContentProvider { @Autowired private UserActivityDao userActivityDao; - @Autowired - private ExceptionService exceptionService; - @Override public boolean onCreate() { try { database.openForWriting(); return database.getDatabase() != null; } catch (Exception e) { - exceptionService.reportError("astrid-provider", e); + log.error(e.getMessage(), e); return false; } } diff --git a/astrid/src/main/java/com/todoroo/astrid/provider/SqlContentProvider.java b/astrid/src/main/java/com/todoroo/astrid/provider/SqlContentProvider.java index 88ca57c52..f0164db92 100644 --- a/astrid/src/main/java/com/todoroo/astrid/provider/SqlContentProvider.java +++ b/astrid/src/main/java/com/todoroo/astrid/provider/SqlContentProvider.java @@ -13,11 +13,13 @@ import android.net.Uri; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.service.AstridDependencyInjector; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Non-public-API SQL content provider. * @@ -30,6 +32,8 @@ import com.todoroo.astrid.service.AstridDependencyInjector; */ public class SqlContentProvider extends ContentProvider { + private static final Logger log = LoggerFactory.getLogger(SqlContentProvider.class); + // --- instance variables private static UriMatcher uriMatcher; @@ -46,16 +50,13 @@ public class SqlContentProvider extends ContentProvider { @Autowired private Database database; - @Autowired - private ExceptionService exceptionService; - @Override public boolean onCreate() { try { database.openForWriting(); return database.getDatabase() != null; } catch (Exception e) { - exceptionService.reportError("astrid-provider", e); + log.error(e.getMessage(), e); return false; } } diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/Notifications.java b/astrid/src/main/java/com/todoroo/astrid/reminders/Notifications.java index 79ed6dd1a..d4fce6cf0 100644 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/Notifications.java +++ b/astrid/src/main/java/com/todoroo/astrid/reminders/Notifications.java @@ -23,7 +23,6 @@ import android.util.Log; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.service.NotificationManager; import com.todoroo.andlib.service.NotificationManager.AndroidNotificationManager; import com.todoroo.andlib.sql.QueryTemplate; @@ -43,6 +42,8 @@ import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.voice.VoiceOutputService; import org.joda.time.DateTime; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import java.util.concurrent.ExecutorService; @@ -53,6 +54,8 @@ import static org.tasks.date.DateTimeUtils.currentTimeMillis; public class Notifications extends BroadcastReceiver { + private static final Logger log = LoggerFactory.getLogger(Notifications.class); + // --- constants /** task id extra */ @@ -82,9 +85,6 @@ public class Notifications extends BroadcastReceiver { @Autowired private TaskDao taskDao; - @Autowired - private ExceptionService exceptionService; - public static NotificationManager notificationManager = null; private static boolean forceNotificationManager = false; @@ -154,7 +154,7 @@ public class Notifications extends BroadcastReceiver { } } catch (Exception e) { - exceptionService.reportError("show-notif", e); //$NON-NLS-1$ + log.error(e.getMessage(), e); return false; } diff --git a/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java b/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java index 88fe22c3d..e234df088 100644 --- a/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java +++ b/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatControlSet.java @@ -25,9 +25,6 @@ import com.google.ical.values.Frequency; import com.google.ical.values.RRule; import com.google.ical.values.Weekday; import com.google.ical.values.WeekdayNum; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.service.TaskService; @@ -39,6 +36,8 @@ 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 java.text.DateFormatSymbols; @@ -58,6 +57,8 @@ import static org.tasks.date.DateTimeUtils.newDate; */ public class RepeatControlSet extends PopupControlSet { + private static final Logger log = LoggerFactory.getLogger(RepeatControlSet.class); + // --- spinner constants public static final int INTERVAL_DAYS = 0; @@ -91,14 +92,10 @@ public class RepeatControlSet extends PopupControlSet { public void repeatChanged(boolean repeat); } - @Autowired - ExceptionService exceptionService; - // --- implementation public RepeatControlSet(Activity activity, int viewLayout, int displayViewLayout, int title) { super(activity, viewLayout, displayViewLayout, title); - DependencyInjectionService.getInstance().inject(this); } /** Set up the repeat value button */ @@ -189,14 +186,12 @@ public class RepeatControlSet extends PopupControlSet { intervalValue = INTERVAL_YEARS; break; default: - // an unhandled recurrence - exceptionService.reportError("repeat-unhandled-rule", //$NON-NLS-1$ - new Exception("Unhandled rrule frequency: " + recurrence)); + log.error("repeat-unhandled-rule", new Exception("Unhandled rrule frequency: " + recurrence)); } } catch (Exception e) { // invalid RRULE recurrence = ""; //$NON-NLS-1$ - exceptionService.reportError("repeat-parse-exception", e); + log.error(e.getMessage(), e); } } doRepeat = recurrence.length() > 0; @@ -239,7 +234,7 @@ public class RepeatControlSet extends PopupControlSet { } catch (Exception e) { // invalid RRULE recurrence = ""; //$NON-NLS-1$ - exceptionService.reportError("repeat-parse-exception", e); + log.error(e.getMessage(), e); } } doRepeat = recurrence.length() > 0; diff --git a/astrid/src/main/java/com/todoroo/astrid/service/AstridDependencyInjector.java b/astrid/src/main/java/com/todoroo/astrid/service/AstridDependencyInjector.java index b165b8177..94d0351c1 100644 --- a/astrid/src/main/java/com/todoroo/astrid/service/AstridDependencyInjector.java +++ b/astrid/src/main/java/com/todoroo/astrid/service/AstridDependencyInjector.java @@ -7,8 +7,6 @@ package com.todoroo.astrid.service; import com.todoroo.andlib.service.AbstractDependencyInjector; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService.AndroidLogReporter; -import com.todoroo.andlib.service.ExceptionService.ErrorReporter; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.MetadataDao; import com.todoroo.astrid.dao.StoreObjectDao; @@ -49,7 +47,6 @@ public class AstridDependencyInjector extends AbstractDependencyInjector { /** * Initialize list of injectables. Special care must used when * instantiating classes that themselves depend on dependency injection - * (i.e. {@link ErrorReporter}. */ @Override protected void addInjectables() { @@ -90,11 +87,6 @@ public class AstridDependencyInjector extends AbstractDependencyInjector { injectables.put("filterCounter", FilterCounter.class); injectables.put("refreshScheduler", RefreshScheduler.class); - - // these make reference to fields defined above - injectables.put("errorReporters", new ErrorReporter[] { - new AndroidLogReporter(), - }); } /** diff --git a/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java b/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java index fb93bbae9..f6b976549 100644 --- a/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java +++ b/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java @@ -24,7 +24,6 @@ import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.utility.AndroidUtilities; @@ -50,6 +49,8 @@ import com.todoroo.astrid.tags.TaskToTagMetadata; import com.todoroo.astrid.utility.AstridPreferences; import com.todoroo.astrid.utility.Constants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import java.io.File; @@ -63,6 +64,7 @@ import java.util.List; */ public class StartupService { + private static final Logger log = LoggerFactory.getLogger(StartupService.class); static { AstridDependencyInjector.initialize(); @@ -74,8 +76,6 @@ public class StartupService { // --- application startup - @Autowired ExceptionService exceptionService; - @Autowired UpgradeService upgradeService; @Autowired TaskService taskService; @@ -128,7 +128,7 @@ public class StartupService { try { latestSetVersion = AstridPreferences.getCurrentVersion(); } catch (Exception e) { - exceptionService.reportError("astrid-startup-version-read", e); //$NON-NLS-1$ + log.error(e.getMessage(), e); } if (latestSetVersion == 0) { @@ -147,7 +147,7 @@ public class StartupService { version = pi.versionCode; versionName = pi.versionName; } catch (Exception e) { - exceptionService.reportError("astrid-startup-package-read", e); //$NON-NLS-1$ + log.error(e.getMessage(), e); } Log.i("astrid", "Astrid Startup. " + latestSetVersion + //$NON-NLS-1$ //$NON-NLS-2$ diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java b/astrid/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java index 2770c8d2c..c61c184fa 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/QuickAddBar.java @@ -27,7 +27,6 @@ import android.widget.TextView.OnEditorActionListener; import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.ExceptionService; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; import com.todoroo.astrid.activity.AstridActivity; @@ -47,6 +46,8 @@ import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.voice.VoiceRecognizer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import java.util.HashSet; @@ -59,6 +60,8 @@ import java.util.HashSet; */ public class QuickAddBar extends LinearLayout { + private static final Logger log = LoggerFactory.getLogger(QuickAddBar.class); + private ImageButton voiceAddButton; private ImageButton quickAddButton; private EditText quickAddBox; @@ -69,7 +72,6 @@ public class QuickAddBar extends LinearLayout { private RepeatControlSet repeatControl; private GCalControlSet gcalControl; - @Autowired ExceptionService exceptionService; @Autowired private TaskAttachmentDao taskAttachmentDao; @@ -293,8 +295,7 @@ public class QuickAddBar extends LinearLayout { return task; } catch (Exception e) { - exceptionService.displayAndReportError(activity, - "quick-add-task", e); + log.error(e.getMessage(), e); return new Task(); } }