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 8475f8218..7d408fa0f 100644 --- a/api/src/main/java/com/todoroo/andlib/data/AbstractDatabase.java +++ b/api/src/main/java/com/todoroo/andlib/data/AbstractDatabase.java @@ -11,7 +11,6 @@ import android.database.Cursor; import android.database.sqlite.SQLiteConstraintException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; -import android.util.Log; import com.todoroo.andlib.data.Property.PropertyVisitor; import com.todoroo.andlib.service.ContextManager; @@ -288,8 +287,7 @@ abstract public class AbstractDatabase { */ @Override public synchronized void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { - Log.w("database-" + getName(), String.format("Upgrading database from version %d to %d.", - oldVersion, newVersion)); + log.info("Upgrading database from version {} to {}.", oldVersion, newVersion); database = db; try { diff --git a/api/src/main/java/com/todoroo/andlib/data/AbstractModel.java b/api/src/main/java/com/todoroo/andlib/data/AbstractModel.java index aa8f70ea2..38f268efd 100644 --- a/api/src/main/java/com/todoroo/andlib/data/AbstractModel.java +++ b/api/src/main/java/com/todoroo/andlib/data/AbstractModel.java @@ -14,6 +14,9 @@ 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; @@ -34,12 +37,10 @@ import java.util.Map.Entry; */ public abstract class AbstractModel implements Parcelable, Cloneable { - // --- static variables + private static final Logger log = LoggerFactory.getLogger(AbstractModel.class); private static final ContentValuesSavingVisitor saver = new ContentValuesSavingVisitor(); - // --- constants - /** id property common to all models */ protected static final String ID_PROPERTY_NAME = "_id"; //$NON-NLS-1$ @@ -183,6 +184,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); } } } @@ -214,6 +216,7 @@ public abstract class AbstractModel implements Parcelable, Cloneable { } return (TYPE) value; } catch (NumberFormatException e) { + log.error(e.getMessage(), e); return (TYPE) getDefaultValues().get(property.name); } } 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 0a347a41f..d6cc26414 100644 --- a/api/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java +++ b/api/src/main/java/com/todoroo/andlib/utility/AndroidUtilities.java @@ -309,6 +309,7 @@ public class AndroidUtilities { } catch (NumberFormatException e) { // failed parse to number putter.put(object, key, 's', value); + log.error(e.getMessage(), e); } } catch (IndexOutOfBoundsException e) { log.error(e.getMessage(), e); @@ -494,6 +495,7 @@ public class AndroidUtilities { activity.unregisterReceiver(receiver); } catch (IllegalArgumentException e) { // Receiver wasn't registered for some reason + log.error(e.getMessage(), e); } } diff --git a/api/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java b/api/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java index 5f432b76f..0e4138e00 100644 --- a/api/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java +++ b/api/src/main/java/com/todoroo/andlib/utility/DialogUtilities.java @@ -13,10 +13,14 @@ import android.app.ProgressDialog; import android.content.DialogInterface; import android.view.View; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.api.R; public class DialogUtilities { + private static final Logger log = LoggerFactory.getLogger(DialogUtilities.class); + /** * Displays a dialog box with a EditText and an ok / cancel */ @@ -143,8 +147,8 @@ public class DialogUtilities { try { runnable.run(); } catch (Exception e) { - DialogUtilities.okDialog(activity, - activity.getString(R.string.DLG_error, e.toString()), null); + log.error(e.getMessage(), e); + DialogUtilities.okDialog(activity, activity.getString(R.string.DLG_error, e.toString()), null); } finally { DialogUtilities.dismissDialog(activity, progressdiag); } @@ -181,6 +185,7 @@ public class DialogUtilities { dialog.dismiss(); } catch (Exception e) { // could have killed activity + log.error(e.getMessage(), e); } } }); @@ -195,6 +200,7 @@ public class DialogUtilities { runnable.run(); } catch (Exception e) { // probably window was closed + log.error(e.getMessage(), e); } } }); diff --git a/api/src/main/java/com/todoroo/andlib/utility/Preferences.java b/api/src/main/java/com/todoroo/andlib/utility/Preferences.java index fefb1568e..46b2aad2c 100644 --- a/api/src/main/java/com/todoroo/andlib/utility/Preferences.java +++ b/api/src/main/java/com/todoroo/andlib/utility/Preferences.java @@ -11,6 +11,9 @@ import android.preference.PreferenceManager; import com.todoroo.andlib.service.ContextManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Helper class for reading and writing SharedPreferences * @@ -20,6 +23,8 @@ import com.todoroo.andlib.service.ContextManager; @Deprecated public class Preferences { + private static final Logger log = LoggerFactory.getLogger(Preferences.class); + private static SharedPreferences preferences = null; /** Get preferences object from the context */ @@ -36,6 +41,7 @@ public class Preferences { preferences.edit().commit(); } catch (Exception e) { + log.error(e.getMessage(), e); String alternate = "preferences" + android.os.Process.myUid(); //$NON-NLS-1$ preferences = context.getSharedPreferences(alternate, Context.MODE_PRIVATE); } @@ -48,6 +54,7 @@ public class Preferences { try { return getPrefs(context).getBoolean(context.getString(keyResources), defValue); } catch (ClassCastException e) { + log.error(e.getMessage(), e); return defValue; } } diff --git a/api/src/main/java/com/todoroo/astrid/data/RemoteModel.java b/api/src/main/java/com/todoroo/astrid/data/RemoteModel.java index 4b16383ac..c594ff5fe 100644 --- a/api/src/main/java/com/todoroo/astrid/data/RemoteModel.java +++ b/api/src/main/java/com/todoroo/astrid/data/RemoteModel.java @@ -19,6 +19,8 @@ import com.todoroo.andlib.utility.DateUtilities; import org.json.JSONException; import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileOutputStream; @@ -34,6 +36,8 @@ import static org.tasks.date.DateTimeUtils.currentTimeMillis; */ abstract public class RemoteModel extends AbstractModel { + 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$ @@ -57,6 +61,7 @@ abstract public class RemoteModel extends AbstractModel { long value = Long.parseLong(uuid); return value > 0; } catch (NumberFormatException e) { + log.error(e.getMessage(), e); return isUuidEmpty(uuid); } } @@ -137,14 +142,14 @@ abstract public class RemoteModel extends AbstractModel { fos.close(); jsonObject.put("path", file.getAbsolutePath()); } catch (IOException e) { - // + log.error(e.getMessage(), e); } return jsonObject; } else { return null; } } catch (JSONException e) { - // + log.error(e.getMessage(), e); } return null; } @@ -161,6 +166,7 @@ abstract public class RemoteModel extends AbstractModel { } return pictureJson.optString(size); } catch (JSONException e) { + log.error(e.getMessage(), e); return value; } } @@ -179,6 +185,7 @@ abstract public class RemoteModel extends AbstractModel { } return null; } catch (JSONException e) { + log.error(e.getMessage(), e); return null; } diff --git a/astrid/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java b/astrid/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java index a9acaeddf..8b4dba27e 100644 --- a/astrid/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java +++ b/astrid/src/main/java/com/todoroo/astrid/actfm/ActFmCameraModule.java @@ -21,6 +21,8 @@ import android.widget.ArrayAdapter; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import java.io.File; @@ -29,6 +31,8 @@ import java.util.ArrayList; public class ActFmCameraModule { + private static final Logger log = LoggerFactory.getLogger(ActFmCameraModule.class); + protected static final int REQUEST_CODE_CAMERA = 1; protected static final int REQUEST_CODE_PICTURE = 2; @@ -93,6 +97,7 @@ public class ActFmCameraModule { return File.createTempFile("comment_pic_" + DateUtilities.now(), ".jpg", new File(path)); } } catch (IOException e) { + log.error(e.getMessage(), e); return null; } return null; diff --git a/astrid/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java b/astrid/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java index 8205594c7..8d7ca6665 100644 --- a/astrid/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/actfm/TagSettingsActivity.java @@ -34,6 +34,8 @@ import com.todoroo.astrid.tags.TagService; import org.json.JSONArray; import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.injection.InjectingActionBarActivity; import org.tasks.preferences.ActivityPreferences; @@ -45,6 +47,8 @@ import static android.support.v4.view.MenuItemCompat.setShowAsAction; public class TagSettingsActivity extends InjectingActionBarActivity { + private static final Logger log = LoggerFactory.getLogger(TagSettingsActivity.class); + public static final String TOKEN_NEW_FILTER = "newFilter"; //$NON-NLS-1$ private static final int MENU_SAVE_ID = R.string.TEA_menu_save; @@ -210,7 +214,7 @@ public class TagSettingsActivity extends InjectingActionBarActivity { tagData.setPicture(tagPicture); } catch (Exception e) { - e.printStackTrace(); + log.error(e.getMessage(), e); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/AstridActivity.java b/astrid/src/main/java/com/todoroo/astrid/activity/AstridActivity.java index 91aaeb826..669966cff 100644 --- a/astrid/src/main/java/com/todoroo/astrid/activity/AstridActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/AstridActivity.java @@ -38,6 +38,8 @@ import com.todoroo.astrid.ui.QuickAddBar; import com.todoroo.astrid.voice.RecognizerApi.RecognizerApiListener; import com.todoroo.astrid.voice.VoiceRecognizer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.injection.InjectingActionBarActivity; import org.tasks.preferences.Preferences; @@ -60,6 +62,8 @@ public class AstridActivity extends InjectingActionBarActivity TaskListFragment.OnTaskListItemClickedListener, RecognizerApiListener { + private static final Logger log = LoggerFactory.getLogger(AstridActivity.class); + public static final int LAYOUT_SINGLE = 0; public static final int LAYOUT_DOUBLE = 1; @@ -197,7 +201,7 @@ public class AstridActivity extends InjectingActionBarActivity }); } catch (Exception e) { // Don't worry about it - e.printStackTrace(); + log.error(e.getMessage(), e); } } @@ -263,12 +267,10 @@ public class AstridActivity extends InjectingActionBarActivity if(fragment == null) { try { fragment = cls.newInstance(); - } catch (InstantiationException e) { - return null; - } catch (IllegalAccessException e) { + } catch (InstantiationException | IllegalAccessException e) { + log.error(e.getMessage(), e); return null; } - FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); if (container == 0) { ft.add(fragment, tag); @@ -381,6 +383,7 @@ public class AstridActivity extends InjectingActionBarActivity gcalHelper, taskService, AstridActivity.this, task, oldDueDate, newDueDate, lastTime); } catch (BadTokenException e) { // Activity not running when tried to show dialog--rebroadcast + log.error(e.getMessage(), e); new Thread() { @Override public void run() { diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/EditPreferences.java b/astrid/src/main/java/com/todoroo/astrid/activity/EditPreferences.java index c8f8bd250..c2a7f66ca 100644 --- a/astrid/src/main/java/com/todoroo/astrid/activity/EditPreferences.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/EditPreferences.java @@ -235,6 +235,7 @@ public class EditPreferences extends TodorooPreferenceActivity { preference.setIntent(intent); } } catch (ClassNotFoundException e) { + log.error(e.getMessage(), e); preference.setIntent(intent); } @@ -283,7 +284,7 @@ public class EditPreferences extends TodorooPreferenceActivity { preference.setTitle(getString(R.string.EPr_task_row_style_title, titles[valueInt])); preference.setSummary(descriptions[valueInt]); } catch (Exception e) { - // + log.error(e.getMessage(), e); } preference.setOnPreferenceChangeListener(new SetResultOnPreferenceChangeListener(RESULT_CODE_PERFORMANCE_PREF_CHANGED) { @@ -296,7 +297,7 @@ public class EditPreferences extends TodorooPreferenceActivity { fullTitle.setEnabled(newValueInt != 2); notes.setEnabled(newValueInt == 0); } catch (Exception e) { - e.printStackTrace(); + log.error(e.getMessage(), e); } return super.onPreferenceChange(p, newValue); } @@ -399,6 +400,7 @@ public class EditPreferences extends TodorooPreferenceActivity { } } catch (VerifyError e) { // unavailable + log.error(e.getMessage(), e); } super.onActivityResult(requestCode, resultCode, data); } diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/FilterListFragment.java b/astrid/src/main/java/com/todoroo/astrid/activity/FilterListFragment.java index 63c0efcb3..fc0aef03f 100644 --- a/astrid/src/main/java/com/todoroo/astrid/activity/FilterListFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/FilterListFragment.java @@ -41,6 +41,8 @@ import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.filters.FilterCounter; import org.tasks.injection.InjectingListFragment; @@ -57,6 +59,8 @@ import javax.inject.Inject; */ public class FilterListFragment extends InjectingListFragment { + private static final Logger log = LoggerFactory.getLogger(FilterListFragment.class); + public static final String TAG_FILTERLIST_FRAGMENT = "filterlist_fragment"; //$NON-NLS-1$ public static final String TOKEN_LAST_SELECTED = "lastSelected"; //$NON-NLS-1$ @@ -170,6 +174,7 @@ public class FilterListFragment extends InjectingListFragment { getActivity().unregisterReceiver(refreshReceiver); } catch (IllegalArgumentException e) { // Might not have fully initialized + log.error(e.getMessage(), e); } } 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 5c52b4de8..60722d5b9 100755 --- a/astrid/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -606,6 +606,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { } } catch (Exception e) { // oops, can't serialize + log.error(e.getMessage(), e); } model = TaskService.createWithValues(taskService, metadataService, tagService, values, null); getActivity().getIntent().putExtra(TOKEN_ID, model.getId()); @@ -872,6 +873,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { try { AndroidUtilities.copyFile(src, dst); } catch (Exception e) { + log.error(e.getMessage(), e); Toast.makeText(getActivity(), R.string.file_err_copy, Toast.LENGTH_LONG).show(); return; } @@ -905,6 +907,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { createNewFileAttachment(path, nameRef.get(), TaskAttachment.FILE_TYPE_IMAGE + "png"); } catch (Exception e) { + log.error(e.getMessage(), e); Toast.makeText(getActivity(), R.string.file_err_copy, Toast.LENGTH_LONG).show(); } } 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 8ed0fa4cc..6facd02d1 100644 --- a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -190,6 +190,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel component = Class.forName(((FilterWithCustomIntent) filter).customTaskList.getClassName()); } catch (Exception e) { // Invalid + log.error(e.getMessage(), e); } } if (component == null) { @@ -504,6 +505,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel refresh(); } catch (IllegalStateException e) { // view may have been destroyed + log.error(e.getMessage(), e); } } }); @@ -834,6 +836,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel // 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); return null; } } diff --git a/astrid/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java b/astrid/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java index e827b24d0..8a098fd10 100644 --- a/astrid/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java +++ b/astrid/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java @@ -43,6 +43,8 @@ import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.FilterWithUpdate; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.filters.FilterCounter; import org.tasks.injection.Injector; @@ -53,6 +55,8 @@ import java.util.regex.Pattern; public class FilterAdapter extends ArrayAdapter { + private static final Logger log = LoggerFactory.getLogger(FilterAdapter.class); + // --- style constants public int filterStyle = R.style.TextAppearance_FLA_Filter; @@ -288,7 +292,7 @@ public class FilterAdapter extends ArrayAdapter { } } } catch (Exception e) { - e.printStackTrace(); + log.error(e.getMessage(), e); } } @@ -465,6 +469,7 @@ public class FilterAdapter extends ArrayAdapter { }, null); } catch (CanceledException e) { // do nothing + log.error(e.getMessage(), e); } } }); diff --git a/astrid/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java b/astrid/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java index ab44e7698..e52d3734d 100644 --- a/astrid/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java +++ b/astrid/src/main/java/com/todoroo/astrid/adapter/TaskAdapter.java @@ -65,6 +65,8 @@ import com.todoroo.astrid.tags.TaskToTagMetadata; import com.todoroo.astrid.ui.CheckableImageView; import com.todoroo.astrid.utility.Constants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.preferences.ActivityPreferences; @@ -84,6 +86,8 @@ import static org.tasks.date.DateTimeUtils.newDate; */ public class TaskAdapter extends CursorAdapter implements Filterable { + private static final Logger log = LoggerFactory.getLogger(TaskAdapter.class); + public interface OnCompletedTaskListener { public void onCompletedTask(Task item, boolean newState); } @@ -565,6 +569,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { action.intent.send(); } catch (CanceledException e) { // Oh well + log.error(e.getMessage(), e); } } } @@ -632,6 +637,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { try { html = Html.fromHtml(string, imageGetter, null); } catch (RuntimeException e) { + log.error(e.getMessage(), e); html = Spannable.Factory.getInstance().newSpannable(string); } htmlCache.put(string, html); @@ -713,6 +719,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { } } catch (Exception e) { // suppress silently + log.error(e.getMessage(), e); } finally { fetchCursor.close(); } diff --git a/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmService.java b/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmService.java index cd2ae0517..8da4ff119 100644 --- a/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmService.java +++ b/astrid/src/main/java/com/todoroo/astrid/alarms/AlarmService.java @@ -135,6 +135,7 @@ public class AlarmService { } } catch (Exception e) { // suppress + log.error(e.getMessage(), e); } finally { cursor.close(); } @@ -154,7 +155,7 @@ public class AlarmService { scheduleAlarm(alarm); } } catch (Exception e) { - log.info(e.getMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$ + log.error(e.getMessage(), e); } finally { cursor.close(); } diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java b/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java index d00ca17ef..9b948c02d 100644 --- a/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java +++ b/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlExporter.java @@ -267,6 +267,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); } catch (IllegalArgumentException | IOException | IllegalStateException e) { throw new RuntimeException(e); } @@ -281,6 +282,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); } catch (IllegalArgumentException | IOException | IllegalStateException e) { throw new RuntimeException(e); } @@ -297,6 +299,7 @@ public class TasksXmlExporter { xml.attribute(null, property.name, value); } catch (UnsupportedOperationException e) { // didn't read this value, do nothing + log.error(e.getMessage(), e); } catch (IllegalArgumentException | IOException | IllegalStateException e) { throw new RuntimeException(e); } diff --git a/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java b/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java index cb99b4b8f..19af4d078 100644 --- a/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java +++ b/astrid/src/main/java/com/todoroo/astrid/backup/TasksXmlImporter.java @@ -113,6 +113,7 @@ public class TasksXmlImporter { } } catch (BadTokenException e) { // Running from a unit test or some such thing + log.error(e.getMessage(), e); } new Thread(new Runnable() { diff --git a/astrid/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java b/astrid/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java index 2714a04db..5dbe843cb 100644 --- a/astrid/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java @@ -30,6 +30,8 @@ import com.todoroo.astrid.reminders.SnoozeDialog; import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.TaskService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.injection.InjectingActivity; import org.tasks.preferences.Preferences; @@ -41,6 +43,8 @@ import javax.inject.Inject; public class MissedCallActivity extends InjectingActivity { + private static final Logger log = LoggerFactory.getLogger(MissedCallActivity.class); + public static final String EXTRA_NUMBER = "number"; //$NON-NLS-1$ public static final String EXTRA_NAME = "name"; //$NON-NLS-1$ public static final String EXTRA_TIME = "time"; //$NON-NLS-1$ @@ -139,7 +143,7 @@ public class MissedCallActivity extends InjectingActivity { try { b = BitmapFactory.decodeStream(input); } catch (OutOfMemoryError e) { - // + log.error(e.getMessage(), e); } if (b != null) { pictureView.setImageBitmap(b); diff --git a/astrid/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java b/astrid/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java index 5f234fcc3..d051e63b3 100644 --- a/astrid/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java +++ b/astrid/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java @@ -77,6 +77,7 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver { Calls.DATE + " DESC" ); } catch (Exception e) { // Sometimes database is locked, retry once + log.error(e.getMessage(), e); AndroidUtilities.sleepDeep(300L); try { calls = context.getContentResolver().query( @@ -87,6 +88,7 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver { Calls.DATE + " DESC" ); } catch (Exception e2) { + log.error(e2.getMessage(), e2); calls = null; } } diff --git a/astrid/src/main/java/com/todoroo/astrid/dao/Database.java b/astrid/src/main/java/com/todoroo/astrid/dao/Database.java index d82e11dd7..d96e122dd 100644 --- a/astrid/src/main/java/com/todoroo/astrid/dao/Database.java +++ b/astrid/src/main/java/com/todoroo/astrid/dao/Database.java @@ -327,6 +327,7 @@ public class Database extends AbstractDatabase { database.execSQL(sql); } catch (SQLiteException e) { // ignored, column already exists + log.error(e.getMessage(), e); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/dao/TagMetadataDao.java b/astrid/src/main/java/com/todoroo/astrid/dao/TagMetadataDao.java index dc9996c14..4b485074d 100644 --- a/astrid/src/main/java/com/todoroo/astrid/dao/TagMetadataDao.java +++ b/astrid/src/main/java/com/todoroo/astrid/dao/TagMetadataDao.java @@ -20,6 +20,8 @@ import com.todoroo.astrid.tags.TagMemberMetadata; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.HashSet; @@ -37,6 +39,8 @@ import javax.inject.Singleton; @Singleton public class TagMetadataDao extends DatabaseDao { + private static final Logger log = LoggerFactory.getLogger(TagMetadataDao.class); + private final TagDataDao tagDataDao; @Inject @@ -132,7 +136,7 @@ public class TagMetadataDao extends DatabaseDao { } } catch (JSONException e) { - // + log.error(e.getMessage(), e); } tagData.setMembers(""); //$NON-NLS-1$ tagDataDao.saveExisting(tagData); diff --git a/astrid/src/main/java/com/todoroo/astrid/dao/TaskDao.java b/astrid/src/main/java/com/todoroo/astrid/dao/TaskDao.java index 09baa8bf8..8c1d566f1 100644 --- a/astrid/src/main/java/com/todoroo/astrid/dao/TaskDao.java +++ b/astrid/src/main/java/com/todoroo/astrid/dao/TaskDao.java @@ -21,6 +21,8 @@ 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.notifications.NotificationManager; @@ -38,6 +40,8 @@ import javax.inject.Singleton; @Singleton public class TaskDao extends RemoteModelDao { + private static final Logger log = LoggerFactory.getLogger(TaskDao.class); + private final MetadataDao metadataDao; private final Broadcaster broadcaster; private final ReminderService reminderService; @@ -168,6 +172,7 @@ public class TaskDao extends RemoteModelDao { try { saveSuccessful = createNew(task); } catch (SQLiteConstraintException e) { + log.error(e.getMessage(), e); saveSuccessful = handleSQLiteConstraintException(task); // Tried to create task with remote id that already exists } } else { @@ -279,6 +284,7 @@ public class TaskDao extends RemoteModelDao { try { saveExisting(item); } catch (SQLiteConstraintException e) { + log.error(e.getMessage(), e); String uuid = item.getUUID(); TodorooCursor tasksWithUUID = query(Query.select( SQL_CONSTRAINT_MERGE_PROPERTIES).where( diff --git a/astrid/src/main/java/com/todoroo/astrid/files/FileExplore.java b/astrid/src/main/java/com/todoroo/astrid/files/FileExplore.java index a01a725c9..b74ea74b7 100644 --- a/astrid/src/main/java/com/todoroo/astrid/files/FileExplore.java +++ b/astrid/src/main/java/com/todoroo/astrid/files/FileExplore.java @@ -86,6 +86,7 @@ public class FileExplore extends Activity { try { path.mkdirs(); } catch (SecurityException e) { + log.error(e.getMessage(), e); DialogUtilities.okDialog(this, getString(R.string.file_browser_err_permissions), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { diff --git a/astrid/src/main/java/com/todoroo/astrid/files/FilesControlSet.java b/astrid/src/main/java/com/todoroo/astrid/files/FilesControlSet.java index 038a90e4f..2f27af974 100644 --- a/astrid/src/main/java/com/todoroo/astrid/files/FilesControlSet.java +++ b/astrid/src/main/java/com/todoroo/astrid/files/FilesControlSet.java @@ -39,6 +39,8 @@ import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.voice.RecognizerApi; import com.todoroo.astrid.voice.RecognizerApi.PlaybackExceptionHandler; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.preferences.ActivityPreferences; @@ -49,6 +51,8 @@ import static org.tasks.preferences.ResourceResolver.getResource; public class FilesControlSet extends PopupControlSet { + private static final Logger log = LoggerFactory.getLogger(FilesControlSet.class); + private final ArrayList files = new ArrayList<>(); private final LinearLayout fileDisplayList; private final LayoutInflater inflater; @@ -245,6 +249,7 @@ public class FilesControlSet extends PopupControlSet { intent.setDataAndType(Uri.fromFile(new File(file)), type); activity.startActivity(intent); } catch (ActivityNotFoundException e) { + log.error(e.getMessage(), e); handleActivityNotFound(type); } } @@ -274,6 +279,7 @@ public class FilesControlSet extends PopupControlSet { } activity.startActivity(marketIntent); } catch (ActivityNotFoundException anf) { + log.error(anf.getMessage(), anf); DialogUtilities.okDialog(activity, activity.getString(R.string.market_unavailable), null); diff --git a/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java b/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java index 040acd0fe..c447e0336 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java +++ b/astrid/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java @@ -13,6 +13,8 @@ import com.todoroo.andlib.utility.AndroidUtilities; 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.Preferences; @@ -25,6 +27,8 @@ import javax.inject.Inject; public class CalendarAlarmReceiver extends InjectingBroadcastReceiver { + private static final Logger log = LoggerFactory.getLogger(CalendarAlarmReceiver.class); + public static final int REQUEST_CODE_CAL_REMINDER = 100; public static final String BROADCAST_CALENDAR_REMINDER = Constants.PACKAGE + ".CALENDAR_EVENT"; @@ -66,8 +70,9 @@ public class CalendarAlarmReceiver extends InjectingBroadcastReceiver { if (eventId > 0) { showCalReminder(context, eventId, fromPostpone); } - } catch (IllegalArgumentException e) { // Some cursor read failed, or badly formed uri - e.printStackTrace(); + } catch (IllegalArgumentException e) { + // Some cursor read failed, or badly formed uri + log.error(e.getMessage(), 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 5a10389be..d5136a46c 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java +++ b/astrid/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java @@ -120,7 +120,7 @@ public class GCalControlSet extends PopupControlSet { hasEvent = true; } catch (Exception e) { - log.error("unable-to-parse-calendar: {}", model.getCalendarURI(), e); + log.error("unable-to-parse-calendar: " + model.getCalendarURI(), e); } } else { hasEvent = false; @@ -188,7 +188,7 @@ public class GCalControlSet extends PopupControlSet { ContentResolver cr = activity.getContentResolver(); cr.update(calendarUri, updateValues, null, null); } catch (Exception e) { - log.error("unable-to-update-calendar: {}", task.getCalendarURI(), e); + log.error("unable-to-update-calendar: " + task.getCalendarURI(), e); } } } diff --git a/astrid/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java b/astrid/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java index a7e0e68ed..8c16dc0ad 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java +++ b/astrid/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java @@ -14,7 +14,6 @@ import android.database.CursorIndexOutOfBoundsException; import android.net.Uri; import android.text.TextUtils; import android.text.format.Time; -import android.util.Log; import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.DateUtilities; @@ -129,8 +128,7 @@ public class GCalHelper { } catch (Exception e) { // won't work on emulator - Log.v("astrid-gcal", - "error-creating-calendar-event", e); + log.error(e.getMessage(), e); } return null; @@ -161,6 +159,7 @@ public class GCalHelper { calendar.moveToFirst(); return calendar.getString(0); } catch (CursorIndexOutOfBoundsException e) { + log.error(e.getMessage(), e); return null; } finally { calendar.close(); diff --git a/astrid/src/main/java/com/todoroo/astrid/gcal/GCalTaskCompleteListener.java b/astrid/src/main/java/com/todoroo/astrid/gcal/GCalTaskCompleteListener.java index 918354ec0..ae5db6a93 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gcal/GCalTaskCompleteListener.java +++ b/astrid/src/main/java/com/todoroo/astrid/gcal/GCalTaskCompleteListener.java @@ -55,7 +55,7 @@ public class GCalTaskCompleteListener extends InjectingBroadcastReceiver { task.getTitle())); cr.update(Uri.parse(calendarUri), values, null, null); } catch (Exception e) { - log.error(e.getMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$ + log.error(e.getMessage(), e); } } } diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java index 515601890..9abfe8bda 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksListAdder.java @@ -19,6 +19,8 @@ import com.todoroo.astrid.data.StoreObject; import com.todoroo.astrid.gtasks.api.GtasksInvoker; import com.todoroo.astrid.gtasks.auth.GtasksTokenValidator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.injection.InjectingActivity; @@ -28,6 +30,8 @@ import javax.inject.Inject; public class GtasksListAdder extends InjectingActivity { + private static final Logger log = LoggerFactory.getLogger(GtasksListAdder.class); + @Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksListService gtasksListService; @Inject GtasksTokenValidator gtasksTokenValidator; @@ -71,6 +75,7 @@ public class GtasksListAdder extends InjectingActivity { } } catch (IOException e) { + log.error(e.getMessage(), e); DialogUtilities.okDialog(activity, activity.getString(R.string.gtasks_FEx_create_list_error), null); } finally { pd.dismiss(); diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksScheduler.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksScheduler.java index 388025b11..a405baadd 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksScheduler.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksScheduler.java @@ -43,6 +43,7 @@ public class GtasksScheduler { syncFrequencySeconds = preferences.getIntegerFromString( gtasksPreferenceService.getSyncIntervalKey(), -1); } catch(ClassCastException e) { + log.error(e.getMessage(), e); preferences.setStringFromInteger(gtasksPreferenceService.getSyncIntervalKey(), 0); } if(syncFrequencySeconds <= 0) { diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java index 77c52af89..a8559a3d4 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java @@ -7,6 +7,9 @@ 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; @@ -14,6 +17,8 @@ import static org.tasks.date.DateTimeUtils.newDate; public class GtasksApiUtilities { + private static final Logger log = LoggerFactory.getLogger(GtasksApiUtilities.class); + public static DateTime unixTimeToGtasksCompletionTime(long time) { if (time < 0) { return null; @@ -57,6 +62,7 @@ public class GtasksApiUtilities { Date returnDate = newDate(date.getTime() + date.getTimezoneOffset() * 60000); return returnDate.getTime(); } catch (NumberFormatException e) { + log.error(e.getMessage(), e); return 0; } } 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 9af44163e..5bce2b03f 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 @@ -58,20 +58,18 @@ public class GtasksInvoker { if (e instanceof HttpResponseException) { HttpResponseException h = (HttpResponseException)e; int statusCode = h.getResponse().getStatusCode(); + log.error(statusCode + ": " + h.getResponse().getStatusMessage(), e); if (statusCode == 401 || statusCode == 403) { - System.err.println("Encountered " + statusCode + " error"); token = gtasksTokenValidator.validateAuthToken(ContextManager.getContext(), token); if (token != null) { accessProtectedResource.setAccessToken(token); } - } else if (statusCode == 503) { // 503 errors are generally either 1) quota limit reached or 2) problems on Google's end - log.error("503: {}", e.getMessage(), e); } else if (statusCode == 400 || statusCode == 500) { - System.err.println("Encountered " + statusCode + " error"); - System.err.println(h.getResponse().getStatusMessage()); - h.printStackTrace(); throw h; } + // 503 errors are generally either 1) quota limit reached or 2) problems on Google's end + } else { + log.error(e.getMessage(), e); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/api/PushRequest.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/api/PushRequest.java index bc5ebea79..5be7b9b80 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/api/PushRequest.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/api/PushRequest.java @@ -7,6 +7,9 @@ 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; /** @@ -15,6 +18,9 @@ import java.io.IOException; * */ public abstract class PushRequest { + + private static final Logger log = LoggerFactory.getLogger(PushRequest.class); + protected String listId; protected Task toPush; protected GtasksInvoker service; @@ -29,6 +35,7 @@ public abstract class PushRequest { try { return executePush(); } catch (IOException e) { + log.error(e.getMessage(), e); recover(); return executePush(); } diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/auth/GtasksTokenValidator.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/auth/GtasksTokenValidator.java index 88d2cc3a0..d769e1dcd 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/auth/GtasksTokenValidator.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/auth/GtasksTokenValidator.java @@ -19,6 +19,8 @@ import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.api.GoogleTasksException; import com.todoroo.astrid.gtasks.api.GtasksInvoker; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import java.io.IOException; @@ -29,6 +31,8 @@ import javax.inject.Singleton; @Singleton public class GtasksTokenValidator { + private static final Logger log = LoggerFactory.getLogger(GtasksTokenValidator.class); + private static final String TOKEN_INTENT_RECEIVED = "intent!"; //$NON-NLS-1$ private static final int REVALIDATION_TRIES = 4; @@ -82,6 +86,7 @@ public class GtasksTokenValidator { testService.ping(); return true; } catch (IOException i) { + log.error(i.getMessage(), i); return false; } } diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java index bcb6ba95a..319599489 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java @@ -7,7 +7,6 @@ package com.todoroo.astrid.gtasks.sync; import android.content.ContentValues; import android.text.TextUtils; -import android.util.Log; import com.todoroo.andlib.data.DatabaseDao.ModelUpdateListener; import com.todoroo.andlib.data.Property; @@ -29,6 +28,9 @@ import com.todoroo.astrid.gtasks.auth.GtasksTokenValidator; import com.todoroo.astrid.service.MetadataService; 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; @@ -39,6 +41,8 @@ import javax.inject.Singleton; @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 MetadataService metadataService; @@ -155,13 +159,14 @@ public class GtasksSyncService { try { op = queue.take(); } catch (InterruptedException e) { + log.error(e.getMessage(), e); continue; } try { GtasksInvoker invoker = new GtasksInvoker(gtasksTokenValidator, gtasksPreferenceService.getToken()); op.op(invoker); } catch (IOException e) { - Log.w("gtasks-sync-error", "Sync on save failed", e); + log.error(e.getMessage(), e); } } } @@ -174,6 +179,7 @@ public class GtasksSyncService { sema.acquire(); } catch (InterruptedException e) { // Ignored + log.error(e.getMessage(), e); } } @@ -230,7 +236,7 @@ public class GtasksSyncService { invoker.deleteGtask(gtasksMetadata.getValue(GtasksMetadata.LIST_ID), gtasksMetadata.getValue(GtasksMetadata.ID)); metadataDao.delete(gtasksMetadata.getId()); } catch (IOException e) { - // + log.error(e.getMessage(), e); } } return; 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 9f2223092..e5c1bbad0 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 @@ -37,6 +37,8 @@ import com.todoroo.astrid.service.TaskService; 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 org.tasks.injection.ForApplication; import org.tasks.preferences.Preferences; @@ -56,6 +58,8 @@ import static org.tasks.date.DateTimeUtils.newDate; @Singleton public class GtasksSyncV2Provider extends SyncV2Provider { + private static final Logger log = LoggerFactory.getLogger(GtasksSyncV2Provider.class); + private final TaskService taskService; private final MetadataService metadataService; private final StoreObjectDao storeObjectDao; @@ -218,6 +222,7 @@ public class GtasksSyncV2Provider extends SyncV2Provider { gtasksPreferenceService.setToken(authToken); } } catch (GoogleTasksException e) { + log.error(e.getMessage(), e); authToken = null; } return authToken; @@ -285,6 +290,8 @@ public class GtasksSyncV2Provider extends SyncV2Provider { } catch (IOException e) { if (errorHandler != null) { errorHandler.handleException("gtasks-sync-io", e); //$NON-NLS-1$ + } else { + log.error(e.getMessage(), e); } } } diff --git a/astrid/src/main/java/com/todoroo/astrid/helper/MetadataHelper.java b/astrid/src/main/java/com/todoroo/astrid/helper/MetadataHelper.java index f807a4e26..c918493ed 100644 --- a/astrid/src/main/java/com/todoroo/astrid/helper/MetadataHelper.java +++ b/astrid/src/main/java/com/todoroo/astrid/helper/MetadataHelper.java @@ -8,10 +8,16 @@ package com.todoroo.astrid.helper; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * @author joshuagross */ public class MetadataHelper { + + private static final Logger log = LoggerFactory.getLogger(MetadataHelper.class); + private static final String CATEGORY_KEY = "category"; //$NON-NLS-1$ public static String resolveActivityCategoryName (ResolveInfo resolveInfo, PackageManager pm) { @@ -27,7 +33,7 @@ public class MetadataHelper { resolveInfo.activityInfo.applicationInfo).getString( resource); } catch (Exception e) { - // + log.error(e.getMessage(), e); } } else { // category stored as String in Manifest 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 8b0eb719d..187cabb58 100644 --- a/astrid/src/main/java/com/todoroo/astrid/helper/SyncActionHelper.java +++ b/astrid/src/main/java/com/todoroo/astrid/helper/SyncActionHelper.java @@ -112,7 +112,7 @@ public class SyncActionHelper { SyncAction syncAction = extras.getParcelable(AstridApiConstants.EXTRAS_RESPONSE); syncActions.add(syncAction); } catch (Exception e) { - log.error("receive-sync-action-{}", 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/Astrid2TaskProvider.java b/astrid/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java index 0a58c96f1..7e9548d15 100644 --- a/astrid/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java +++ b/astrid/src/main/java/com/todoroo/astrid/provider/Astrid2TaskProvider.java @@ -138,6 +138,7 @@ public class Astrid2TaskProvider extends InjectingContentProvider { try { m = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { + log.error(e.getMessage(), e); return -1; } diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java b/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java index f22ca28a8..8d47e6160 100644 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java +++ b/astrid/src/main/java/com/todoroo/astrid/reminders/ReminderService.java @@ -23,6 +23,8 @@ import com.todoroo.astrid.dao.TaskDao.TaskCriteria; import com.todoroo.astrid.data.Task; import org.joda.time.DateTime; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.injection.ForApplication; import org.tasks.preferences.Preferences; @@ -45,6 +47,8 @@ import static org.tasks.date.DateTimeUtils.newDate; @Singleton public final class ReminderService { + private static final Logger log = LoggerFactory.getLogger(ReminderService.class); + // --- constants public static final Property[] NOTIFICATION_PROPERTIES = new Property[] { @@ -127,6 +131,7 @@ public final class ReminderService { } } catch (Exception e) { // suppress + log.error(e.getMessage(), e); } finally { cursor.close(); now = -1; // Signal done with now variable @@ -438,6 +443,7 @@ public final class ReminderService { try { requestCode = Integer.parseInt(rc); } catch (Exception e) { + log.error(e.getMessage(), e); requestCode = type; } AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/ShowNotificationReceiver.java b/astrid/src/main/java/com/todoroo/astrid/reminders/ShowNotificationReceiver.java index 2dbea155e..e94ae4783 100644 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/ShowNotificationReceiver.java +++ b/astrid/src/main/java/com/todoroo/astrid/reminders/ShowNotificationReceiver.java @@ -15,6 +15,8 @@ import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.voice.VoiceOutputAssistant; import org.joda.time.DateTime; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.notifications.NotificationManager; @@ -35,6 +37,8 @@ import static org.tasks.date.DateTimeUtils.currentTimeMillis; */ public class ShowNotificationReceiver extends InjectingBroadcastReceiver { + private static final Logger log = LoggerFactory.getLogger(ShowNotificationReceiver.class); + private static ExecutorService singleThreadVoicePool = Executors.newSingleThreadExecutor(); private static long lastNotificationSound = 0L; @@ -253,6 +257,7 @@ public class ShowNotificationReceiver extends InjectingBroadcastReceiver { } } catch (VerifyError e) { // unavailable + log.error(e.getMessage(), e); } } } diff --git a/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatDetailExposer.java b/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatDetailExposer.java index ba60fa6a7..23a59286d 100644 --- a/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatDetailExposer.java +++ b/astrid/src/main/java/com/todoroo/astrid/repeats/RepeatDetailExposer.java @@ -16,6 +16,8 @@ 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; @@ -33,6 +35,8 @@ import javax.inject.Inject; */ public class RepeatDetailExposer extends InjectingBroadcastReceiver { + private static final Logger log = LoggerFactory.getLogger(RepeatDetailExposer.class); + @Inject TaskService taskService; @Override @@ -72,7 +76,7 @@ public class RepeatDetailExposer extends InjectingBroadcastReceiver { try { rrule = new RRule(recurrence); } catch (ParseException e) { - System.err.println(e.toString()); + log.error(e.getMessage(), e); return null; } 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 ca6bc8561..9041b38c4 100644 --- a/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java +++ b/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java @@ -16,7 +16,6 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.database.sqlite.SQLiteException; import android.media.AudioManager; -import android.util.Log; import android.widget.Toast; import com.todoroo.andlib.data.AbstractDatabase; @@ -241,6 +240,7 @@ public class StartupService { tasks.close(); } } catch (SQLiteException e) { + log.error(e.getMessage(), e); database.tryAddColumn(Task.TABLE, Task.UUID, "'0'"); //$NON-NLS-1$ database.tryAddColumn(Task.TABLE, Task.USER_ID, "0"); //$NON-NLS-1$ } @@ -265,7 +265,7 @@ public class StartupService { } } } catch (Exception e) { - Log.w("astrid-database-restore", e); //$NON-NLS-1$ + log.error(e.getMessage(), e); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/service/UpdateScreenFlow.java b/astrid/src/main/java/com/todoroo/astrid/service/UpdateScreenFlow.java index a166f27d8..0bffc07c3 100644 --- a/astrid/src/main/java/com/todoroo/astrid/service/UpdateScreenFlow.java +++ b/astrid/src/main/java/com/todoroo/astrid/service/UpdateScreenFlow.java @@ -5,10 +5,15 @@ import android.content.ActivityNotFoundException; import android.content.Intent; import android.os.Bundle; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.util.ArrayList; public class UpdateScreenFlow extends Activity { + private static final Logger log = LoggerFactory.getLogger(UpdateScreenFlow.class); + public static final String TOKEN_SCREENS = "token_screens"; //$NON-NLS-1$ private static final int REQUEST_CODE_SCREEN_FLOW = 5; @@ -49,7 +54,7 @@ public class UpdateScreenFlow extends Activity { Intent intent = new Intent(this, activityClass); startActivityForResult(intent, REQUEST_CODE_SCREEN_FLOW); } catch (ClassNotFoundException | ActivityNotFoundException e) { - e.printStackTrace(); + log.error(e.getMessage(), e); finish(); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java b/astrid/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java index 0ea333ae6..40686f777 100644 --- a/astrid/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java +++ b/astrid/src/main/java/com/todoroo/astrid/subtasks/SubtasksHelper.java @@ -170,7 +170,9 @@ public class SubtasksHelper { Long localId = -1L; try { localId = Long.parseLong(uuid); - } catch (NumberFormatException e) {/**/} + } catch (NumberFormatException e) { + log.error(e.getMessage(), e); + } return localId; } }); diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/DateChangedAlerts.java b/astrid/src/main/java/com/todoroo/astrid/ui/DateChangedAlerts.java index 78418722e..b31acf81f 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/DateChangedAlerts.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/DateChangedAlerts.java @@ -34,6 +34,8 @@ import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.ui.DateAndTimeDialog.DateAndTimeDialogListener; import com.todoroo.astrid.utility.Flags; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.preferences.ActivityPreferences; @@ -50,6 +52,8 @@ import static org.tasks.date.DateTimeUtils.newDate; */ public class DateChangedAlerts { + private static final Logger log = LoggerFactory.getLogger(DateChangedAlerts.class); + /** Preference key for how many of these helper dialogs we've shown */ private static final String PREF_NUM_HELPERS_SHOWN = "pref_num_date_helpers"; //$NON-NLS-1$ @@ -345,6 +349,7 @@ public class DateChangedAlerts { } catch (ParseException e) { // Eh + log.error(e.getMessage(), e); } return ""; } diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/DraggableListView.java b/astrid/src/main/java/com/todoroo/astrid/ui/DraggableListView.java index 0b6936fb9..17dbf7c90 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/DraggableListView.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/DraggableListView.java @@ -40,10 +40,14 @@ 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 { + private static final Logger log = LoggerFactory.getLogger(DraggableListView.class); + private static final int SWIPE_THRESHOLD = 40; private static final int MOVEMENT_THRESHOLD = 30; @@ -338,6 +342,7 @@ public class DraggableListView extends ListView { } catch (InterruptedException e) { // bye! + log.error(e.getMessage(), e); } } } diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/ErrorCatchingEditText.java b/astrid/src/main/java/com/todoroo/astrid/ui/ErrorCatchingEditText.java index a28300839..f093cb5ab 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/ErrorCatchingEditText.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/ErrorCatchingEditText.java @@ -9,8 +9,13 @@ import android.content.Context; import android.util.AttributeSet; import android.widget.EditText; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class ErrorCatchingEditText extends EditText { + private static final Logger log = LoggerFactory.getLogger(ErrorCatchingEditText.class); + public ErrorCatchingEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); @@ -32,6 +37,7 @@ public class ErrorCatchingEditText extends EditText { try { return super.getExtendedPaddingTop(); } catch (Exception e) { + log.error(e.getMessage(), e); return 0; } } @@ -41,6 +47,7 @@ public class ErrorCatchingEditText extends EditText { try { return super.getExtendedPaddingBottom(); } catch (Exception e) { + log.error(e.getMessage(), e); return 0; } } diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/ErrorCatchingSpinner.java b/astrid/src/main/java/com/todoroo/astrid/ui/ErrorCatchingSpinner.java index e8abebc14..15bc1382f 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/ErrorCatchingSpinner.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/ErrorCatchingSpinner.java @@ -9,8 +9,13 @@ import android.content.Context; import android.util.AttributeSet; import android.widget.Spinner; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class ErrorCatchingSpinner extends Spinner { + private static final Logger log = LoggerFactory.getLogger(ErrorCatchingSpinner.class); + public ErrorCatchingSpinner(Context context, AttributeSet attrs) { super(context, attrs); } @@ -21,6 +26,7 @@ public class ErrorCatchingSpinner extends Spinner { super.onDetachedFromWindow(); } catch (IllegalArgumentException e) { // Bad times + log.error(e.getMessage(), e); } } diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/MultilineListPreference.java b/astrid/src/main/java/com/todoroo/astrid/ui/MultilineListPreference.java index c24d3cea9..bebe0cc0f 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/MultilineListPreference.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/MultilineListPreference.java @@ -10,7 +10,13 @@ import android.preference.ListPreference; import android.util.AttributeSet; import android.view.View; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class MultilineListPreference extends ListPreference { + + private static final Logger log = LoggerFactory.getLogger(MultilineListPreference.class); + public MultilineListPreference(Context context, AttributeSet attrs) { super(context, attrs); } @@ -21,6 +27,7 @@ public class MultilineListPreference extends ListPreference { super.onBindView(view); } catch (Exception e) { // happens on 4.0 emulators + log.error(e.getMessage(), e); } MultilineHelper.makeMultiline(view); } diff --git a/astrid/src/main/java/com/todoroo/astrid/ui/NumberPicker.java b/astrid/src/main/java/com/todoroo/astrid/ui/NumberPicker.java index 7cba6c9f9..f32eb3e2f 100644 --- a/astrid/src/main/java/com/todoroo/astrid/ui/NumberPicker.java +++ b/astrid/src/main/java/com/todoroo/astrid/ui/NumberPicker.java @@ -25,11 +25,15 @@ import android.widget.TextView; import com.todoroo.andlib.utility.AndroidUtilities; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; 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); @@ -385,6 +389,7 @@ public class NumberPicker extends LinearLayout implements OnClickListener, try { return Integer.parseInt(str); } catch (NumberFormatException e) { + log.error(e.getMessage(), e); return mStart; } } diff --git a/astrid/src/main/java/com/todoroo/astrid/utility/TitleParser.java b/astrid/src/main/java/com/todoroo/astrid/utility/TitleParser.java index 4eebd0079..ff5e187b5 100644 --- a/astrid/src/main/java/com/todoroo/astrid/utility/TitleParser.java +++ b/astrid/src/main/java/com/todoroo/astrid/utility/TitleParser.java @@ -14,6 +14,9 @@ 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; @@ -24,6 +27,8 @@ import java.util.regex.Pattern; public class TitleParser { + private static final Logger log = LoggerFactory.getLogger(TitleParser.class); + public static boolean parse(TagService tagService, Task task, ArrayList tags) { boolean markup; markup = repeatHelper(task); @@ -448,6 +453,7 @@ public class TitleParser { interval = Integer.parseInt(intervalStr); } catch (NumberFormatException e) { // Ah well + log.error(e.getMessage(), e); } } } diff --git a/astrid/src/main/java/com/todoroo/astrid/voice/RecognizerApi.java b/astrid/src/main/java/com/todoroo/astrid/voice/RecognizerApi.java index d5d3f7af0..5a7a6c26b 100644 --- a/astrid/src/main/java/com/todoroo/astrid/voice/RecognizerApi.java +++ b/astrid/src/main/java/com/todoroo/astrid/voice/RecognizerApi.java @@ -11,7 +11,9 @@ import android.os.Bundle; import android.speech.RecognitionListener; import android.speech.RecognizerIntent; import android.speech.SpeechRecognizer; -import android.util.Log; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -20,6 +22,8 @@ import java.util.ArrayList; @TargetApi(8) public class RecognizerApi implements RecognitionListener { + private static final Logger log = LoggerFactory.getLogger(RecognizerApi.class); + public static interface PlaybackExceptionHandler { public void playbackFailed(); } @@ -52,6 +56,7 @@ public class RecognizerApi implements RecognitionListener { mediaPlayer.prepare(); mediaPlayer.start(); } catch (Exception e) { + log.error(e.getMessage(), e); handler.playbackFailed(); } } @@ -113,7 +118,7 @@ public class RecognizerApi implements RecognitionListener { try { baos.write(buffer); } catch (IOException e) { - // + log.error(e.getMessage(), e); } } } @@ -140,10 +145,10 @@ public class RecognizerApi implements RecognitionListener { @Override public void onError(int error) { + log.error("Error code " + error, new RuntimeException()); if (mListener != null) { mListener.onSpeechError(error); } - Log.w("Speech Error", "Error code: " + error); } @Override diff --git a/astrid/src/main/java/com/todoroo/astrid/voice/VoiceInputAssistant.java b/astrid/src/main/java/com/todoroo/astrid/voice/VoiceInputAssistant.java index ff48bbfc6..791d443ab 100644 --- a/astrid/src/main/java/com/todoroo/astrid/voice/VoiceInputAssistant.java +++ b/astrid/src/main/java/com/todoroo/astrid/voice/VoiceInputAssistant.java @@ -207,6 +207,7 @@ public class VoiceInputAssistant { } activity.startActivity(marketIntent); } catch (ActivityNotFoundException ane) { + log.error(ane.getMessage(), ane); DialogUtilities.okDialog(activity, activity.getString(R.string.EPr_marketUnavailable_dlg), onFail); diff --git a/astrid/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java b/astrid/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java index aea9ffb0e..e9c825965 100644 --- a/astrid/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java +++ b/astrid/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java @@ -78,6 +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); } } else { RemoteViews updateViews = buildUpdate(this, extrasId); diff --git a/astrid/src/main/java/org/tasks/preferences/Preferences.java b/astrid/src/main/java/org/tasks/preferences/Preferences.java index f9a7295df..8bdc09b74 100644 --- a/astrid/src/main/java/org/tasks/preferences/Preferences.java +++ b/astrid/src/main/java/org/tasks/preferences/Preferences.java @@ -9,6 +9,8 @@ import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.utility.AstridDefaultPreferenceSpec; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.tasks.R; import org.tasks.injection.ForApplication; @@ -18,6 +20,8 @@ import static android.content.SharedPreferences.Editor; public class Preferences { + private static final Logger log = LoggerFactory.getLogger(Preferences.class); + private static final String P_CURRENT_VERSION = "cv"; //$NON-NLS-1$ private static final String P_CURRENT_VERSION_NAME = "cvname"; //$NON-NLS-1$ @@ -91,6 +95,7 @@ public class Preferences { try { return Integer.parseInt(value); } catch (Exception e) { + log.error(e.getMessage(), e); return defaultValue; } } @@ -115,6 +120,7 @@ public class Preferences { try { return prefs.getBoolean(key, defValue); } catch (ClassCastException e) { + log.error(e.getMessage(), e); return defValue; } }