Log all exceptions

pull/189/head
Alex Baker 10 years ago
parent 389ef3b2a7
commit 6e00422d81

@ -11,7 +11,6 @@ import android.database.Cursor;
import android.database.sqlite.SQLiteConstraintException; import android.database.sqlite.SQLiteConstraintException;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import com.todoroo.andlib.data.Property.PropertyVisitor; import com.todoroo.andlib.data.Property.PropertyVisitor;
import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.ContextManager;
@ -288,8 +287,7 @@ abstract public class AbstractDatabase {
*/ */
@Override @Override
public synchronized void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { public synchronized void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w("database-" + getName(), String.format("Upgrading database from version %d to %d.", log.info("Upgrading database from version {} to {}.", oldVersion, newVersion);
oldVersion, newVersion));
database = db; database = db;
try { try {

@ -14,6 +14,9 @@ import com.todoroo.andlib.data.Property.LongProperty;
import com.todoroo.andlib.data.Property.PropertyVisitor; import com.todoroo.andlib.data.Property.PropertyVisitor;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Array; import java.lang.reflect.Array;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
@ -34,12 +37,10 @@ import java.util.Map.Entry;
*/ */
public abstract class AbstractModel implements Parcelable, Cloneable { 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(); private static final ContentValuesSavingVisitor saver = new ContentValuesSavingVisitor();
// --- constants
/** id property common to all models */ /** id property common to all models */
protected static final String ID_PROPERTY_NAME = "_id"; //$NON-NLS-1$ 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)); saver.save(property, values, cursor.get(property));
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// underlying cursor may have changed, suppress // underlying cursor may have changed, suppress
log.error(e.getMessage(), e);
} }
} }
} }
@ -214,6 +216,7 @@ public abstract class AbstractModel implements Parcelable, Cloneable {
} }
return (TYPE) value; return (TYPE) value;
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(e.getMessage(), e);
return (TYPE) getDefaultValues().get(property.name); return (TYPE) getDefaultValues().get(property.name);
} }
} }

@ -309,6 +309,7 @@ public class AndroidUtilities {
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
// failed parse to number // failed parse to number
putter.put(object, key, 's', value); putter.put(object, key, 's', value);
log.error(e.getMessage(), e);
} }
} catch (IndexOutOfBoundsException e) { } catch (IndexOutOfBoundsException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -494,6 +495,7 @@ public class AndroidUtilities {
activity.unregisterReceiver(receiver); activity.unregisterReceiver(receiver);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// Receiver wasn't registered for some reason // Receiver wasn't registered for some reason
log.error(e.getMessage(), e);
} }
} }

@ -13,10 +13,14 @@ import android.app.ProgressDialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.view.View; import android.view.View;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.api.R; import org.tasks.api.R;
public class DialogUtilities { public class DialogUtilities {
private static final Logger log = LoggerFactory.getLogger(DialogUtilities.class);
/** /**
* Displays a dialog box with a EditText and an ok / cancel * Displays a dialog box with a EditText and an ok / cancel
*/ */
@ -143,8 +147,8 @@ public class DialogUtilities {
try { try {
runnable.run(); runnable.run();
} catch (Exception e) { } catch (Exception e) {
DialogUtilities.okDialog(activity, log.error(e.getMessage(), e);
activity.getString(R.string.DLG_error, e.toString()), null); DialogUtilities.okDialog(activity, activity.getString(R.string.DLG_error, e.toString()), null);
} finally { } finally {
DialogUtilities.dismissDialog(activity, progressdiag); DialogUtilities.dismissDialog(activity, progressdiag);
} }
@ -181,6 +185,7 @@ public class DialogUtilities {
dialog.dismiss(); dialog.dismiss();
} catch (Exception e) { } catch (Exception e) {
// could have killed activity // could have killed activity
log.error(e.getMessage(), e);
} }
} }
}); });
@ -195,6 +200,7 @@ public class DialogUtilities {
runnable.run(); runnable.run();
} catch (Exception e) { } catch (Exception e) {
// probably window was closed // probably window was closed
log.error(e.getMessage(), e);
} }
} }
}); });

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

@ -19,6 +19,8 @@ import com.todoroo.andlib.utility.DateUtilities;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
@ -34,6 +36,8 @@ import static org.tasks.date.DateTimeUtils.currentTimeMillis;
*/ */
abstract public class RemoteModel extends AbstractModel { abstract public class RemoteModel extends AbstractModel {
private static final Logger log = LoggerFactory.getLogger(RemoteModel.class);
/** remote id property common to all remote models */ /** remote id property common to all remote models */
public static final String UUID_PROPERTY_NAME = "remoteId"; //$NON-NLS-1$ public static final String UUID_PROPERTY_NAME = "remoteId"; //$NON-NLS-1$
@ -57,6 +61,7 @@ abstract public class RemoteModel extends AbstractModel {
long value = Long.parseLong(uuid); long value = Long.parseLong(uuid);
return value > 0; return value > 0;
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(e.getMessage(), e);
return isUuidEmpty(uuid); return isUuidEmpty(uuid);
} }
} }
@ -137,14 +142,14 @@ abstract public class RemoteModel extends AbstractModel {
fos.close(); fos.close();
jsonObject.put("path", file.getAbsolutePath()); jsonObject.put("path", file.getAbsolutePath());
} catch (IOException e) { } catch (IOException e) {
// log.error(e.getMessage(), e);
} }
return jsonObject; return jsonObject;
} else { } else {
return null; return null;
} }
} catch (JSONException e) { } catch (JSONException e) {
// log.error(e.getMessage(), e);
} }
return null; return null;
} }
@ -161,6 +166,7 @@ abstract public class RemoteModel extends AbstractModel {
} }
return pictureJson.optString(size); return pictureJson.optString(size);
} catch (JSONException e) { } catch (JSONException e) {
log.error(e.getMessage(), e);
return value; return value;
} }
} }
@ -179,6 +185,7 @@ abstract public class RemoteModel extends AbstractModel {
} }
return null; return null;
} catch (JSONException e) { } catch (JSONException e) {
log.error(e.getMessage(), e);
return null; return null;
} }

@ -21,6 +21,8 @@ import android.widget.ArrayAdapter;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import java.io.File; import java.io.File;
@ -29,6 +31,8 @@ import java.util.ArrayList;
public class ActFmCameraModule { 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_CAMERA = 1;
protected static final int REQUEST_CODE_PICTURE = 2; 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)); return File.createTempFile("comment_pic_" + DateUtilities.now(), ".jpg", new File(path));
} }
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e);
return null; return null;
} }
return null; return null;

@ -34,6 +34,8 @@ import com.todoroo.astrid.tags.TagService;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingActionBarActivity; import org.tasks.injection.InjectingActionBarActivity;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
@ -45,6 +47,8 @@ import static android.support.v4.view.MenuItemCompat.setShowAsAction;
public class TagSettingsActivity extends InjectingActionBarActivity { 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$ public static final String TOKEN_NEW_FILTER = "newFilter"; //$NON-NLS-1$
private static final int MENU_SAVE_ID = R.string.TEA_menu_save; private static final int MENU_SAVE_ID = R.string.TEA_menu_save;
@ -210,7 +214,7 @@ public class TagSettingsActivity extends InjectingActionBarActivity {
tagData.setPicture(tagPicture); tagData.setPicture(tagPicture);
} }
catch (Exception e) { catch (Exception e) {
e.printStackTrace(); log.error(e.getMessage(), e);
} }
} }

@ -38,6 +38,8 @@ import com.todoroo.astrid.ui.QuickAddBar;
import com.todoroo.astrid.voice.RecognizerApi.RecognizerApiListener; import com.todoroo.astrid.voice.RecognizerApi.RecognizerApiListener;
import com.todoroo.astrid.voice.VoiceRecognizer; import com.todoroo.astrid.voice.VoiceRecognizer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingActionBarActivity; import org.tasks.injection.InjectingActionBarActivity;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -60,6 +62,8 @@ public class AstridActivity extends InjectingActionBarActivity
TaskListFragment.OnTaskListItemClickedListener, TaskListFragment.OnTaskListItemClickedListener,
RecognizerApiListener { RecognizerApiListener {
private static final Logger log = LoggerFactory.getLogger(AstridActivity.class);
public static final int LAYOUT_SINGLE = 0; public static final int LAYOUT_SINGLE = 0;
public static final int LAYOUT_DOUBLE = 1; public static final int LAYOUT_DOUBLE = 1;
@ -197,7 +201,7 @@ public class AstridActivity extends InjectingActionBarActivity
}); });
} catch (Exception e) { } catch (Exception e) {
// Don't worry about it // Don't worry about it
e.printStackTrace(); log.error(e.getMessage(), e);
} }
} }
@ -263,12 +267,10 @@ public class AstridActivity extends InjectingActionBarActivity
if(fragment == null) { if(fragment == null) {
try { try {
fragment = cls.newInstance(); fragment = cls.newInstance();
} catch (InstantiationException e) { } catch (InstantiationException | IllegalAccessException e) {
return null; log.error(e.getMessage(), e);
} catch (IllegalAccessException e) {
return null; return null;
} }
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
if (container == 0) { if (container == 0) {
ft.add(fragment, tag); ft.add(fragment, tag);
@ -381,6 +383,7 @@ public class AstridActivity extends InjectingActionBarActivity
gcalHelper, taskService, AstridActivity.this, task, oldDueDate, newDueDate, lastTime); gcalHelper, taskService, AstridActivity.this, task, oldDueDate, newDueDate, lastTime);
} catch (BadTokenException e) { // Activity not running when tried to show dialog--rebroadcast } catch (BadTokenException e) { // Activity not running when tried to show dialog--rebroadcast
log.error(e.getMessage(), e);
new Thread() { new Thread() {
@Override @Override
public void run() { public void run() {

@ -235,6 +235,7 @@ public class EditPreferences extends TodorooPreferenceActivity {
preference.setIntent(intent); preference.setIntent(intent);
} }
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
log.error(e.getMessage(), e);
preference.setIntent(intent); 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.setTitle(getString(R.string.EPr_task_row_style_title, titles[valueInt]));
preference.setSummary(descriptions[valueInt]); preference.setSummary(descriptions[valueInt]);
} catch (Exception e) { } catch (Exception e) {
// log.error(e.getMessage(), e);
} }
preference.setOnPreferenceChangeListener(new SetResultOnPreferenceChangeListener(RESULT_CODE_PERFORMANCE_PREF_CHANGED) { preference.setOnPreferenceChangeListener(new SetResultOnPreferenceChangeListener(RESULT_CODE_PERFORMANCE_PREF_CHANGED) {
@ -296,7 +297,7 @@ public class EditPreferences extends TodorooPreferenceActivity {
fullTitle.setEnabled(newValueInt != 2); fullTitle.setEnabled(newValueInt != 2);
notes.setEnabled(newValueInt == 0); notes.setEnabled(newValueInt == 0);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error(e.getMessage(), e);
} }
return super.onPreferenceChange(p, newValue); return super.onPreferenceChange(p, newValue);
} }
@ -399,6 +400,7 @@ public class EditPreferences extends TodorooPreferenceActivity {
} }
} catch (VerifyError e) { } catch (VerifyError e) {
// unavailable // unavailable
log.error(e.getMessage(), e);
} }
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
} }

@ -41,6 +41,8 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.filters.FilterCounter; import org.tasks.filters.FilterCounter;
import org.tasks.injection.InjectingListFragment; import org.tasks.injection.InjectingListFragment;
@ -57,6 +59,8 @@ import javax.inject.Inject;
*/ */
public class FilterListFragment extends InjectingListFragment { 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 TAG_FILTERLIST_FRAGMENT = "filterlist_fragment"; //$NON-NLS-1$
public static final String TOKEN_LAST_SELECTED = "lastSelected"; //$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); getActivity().unregisterReceiver(refreshReceiver);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// Might not have fully initialized // Might not have fully initialized
log.error(e.getMessage(), e);
} }
} }

@ -606,6 +606,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
} }
} catch (Exception e) { } catch (Exception e) {
// oops, can't serialize // oops, can't serialize
log.error(e.getMessage(), e);
} }
model = TaskService.createWithValues(taskService, metadataService, tagService, values, null); model = TaskService.createWithValues(taskService, metadataService, tagService, values, null);
getActivity().getIntent().putExtra(TOKEN_ID, model.getId()); getActivity().getIntent().putExtra(TOKEN_ID, model.getId());
@ -872,6 +873,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
try { try {
AndroidUtilities.copyFile(src, dst); AndroidUtilities.copyFile(src, dst);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e);
Toast.makeText(getActivity(), R.string.file_err_copy, Toast.LENGTH_LONG).show(); Toast.makeText(getActivity(), R.string.file_err_copy, Toast.LENGTH_LONG).show();
return; return;
} }
@ -905,6 +907,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
createNewFileAttachment(path, nameRef.get(), TaskAttachment.FILE_TYPE_IMAGE + "png"); createNewFileAttachment(path, nameRef.get(), TaskAttachment.FILE_TYPE_IMAGE + "png");
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e);
Toast.makeText(getActivity(), R.string.file_err_copy, Toast.LENGTH_LONG).show(); Toast.makeText(getActivity(), R.string.file_err_copy, Toast.LENGTH_LONG).show();
} }
} }

@ -190,6 +190,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
component = Class.forName(((FilterWithCustomIntent) filter).customTaskList.getClassName()); component = Class.forName(((FilterWithCustomIntent) filter).customTaskList.getClassName());
} catch (Exception e) { } catch (Exception e) {
// Invalid // Invalid
log.error(e.getMessage(), e);
} }
} }
if (component == null) { if (component == null) {
@ -504,6 +505,7 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
refresh(); refresh();
} catch (IllegalStateException e) { } catch (IllegalStateException e) {
// view may have been destroyed // 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. // by a strange bug, but there seems to not be any negative side effect.
// For now, we'll suppress the error // For now, we'll suppress the error
// See http://astrid.com/home#tags-7tsoi/task-1119pk // See http://astrid.com/home#tags-7tsoi/task-1119pk
log.error(e.getMessage(), e);
return null; return null;
} }
} }

@ -43,6 +43,8 @@ import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.api.FilterWithCustomIntent; import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.api.FilterWithUpdate; import com.todoroo.astrid.api.FilterWithUpdate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.filters.FilterCounter; import org.tasks.filters.FilterCounter;
import org.tasks.injection.Injector; import org.tasks.injection.Injector;
@ -53,6 +55,8 @@ import java.util.regex.Pattern;
public class FilterAdapter extends ArrayAdapter<Filter> { public class FilterAdapter extends ArrayAdapter<Filter> {
private static final Logger log = LoggerFactory.getLogger(FilterAdapter.class);
// --- style constants // --- style constants
public int filterStyle = R.style.TextAppearance_FLA_Filter; public int filterStyle = R.style.TextAppearance_FLA_Filter;
@ -288,7 +292,7 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error(e.getMessage(), e);
} }
} }
@ -465,6 +469,7 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
}, null); }, null);
} catch (CanceledException e) { } catch (CanceledException e) {
// do nothing // do nothing
log.error(e.getMessage(), e);
} }
} }
}); });

@ -65,6 +65,8 @@ import com.todoroo.astrid.tags.TaskToTagMetadata;
import com.todoroo.astrid.ui.CheckableImageView; import com.todoroo.astrid.ui.CheckableImageView;
import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.utility.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
@ -84,6 +86,8 @@ import static org.tasks.date.DateTimeUtils.newDate;
*/ */
public class TaskAdapter extends CursorAdapter implements Filterable { public class TaskAdapter extends CursorAdapter implements Filterable {
private static final Logger log = LoggerFactory.getLogger(TaskAdapter.class);
public interface OnCompletedTaskListener { public interface OnCompletedTaskListener {
public void onCompletedTask(Task item, boolean newState); public void onCompletedTask(Task item, boolean newState);
} }
@ -565,6 +569,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
action.intent.send(); action.intent.send();
} catch (CanceledException e) { } catch (CanceledException e) {
// Oh well // Oh well
log.error(e.getMessage(), e);
} }
} }
} }
@ -632,6 +637,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
try { try {
html = Html.fromHtml(string, imageGetter, null); html = Html.fromHtml(string, imageGetter, null);
} catch (RuntimeException e) { } catch (RuntimeException e) {
log.error(e.getMessage(), e);
html = Spannable.Factory.getInstance().newSpannable(string); html = Spannable.Factory.getInstance().newSpannable(string);
} }
htmlCache.put(string, html); htmlCache.put(string, html);
@ -713,6 +719,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
} }
} catch (Exception e) { } catch (Exception e) {
// suppress silently // suppress silently
log.error(e.getMessage(), e);
} finally { } finally {
fetchCursor.close(); fetchCursor.close();
} }

@ -135,6 +135,7 @@ public class AlarmService {
} }
} catch (Exception e) { } catch (Exception e) {
// suppress // suppress
log.error(e.getMessage(), e);
} finally { } finally {
cursor.close(); cursor.close();
} }
@ -154,7 +155,7 @@ public class AlarmService {
scheduleAlarm(alarm); scheduleAlarm(alarm);
} }
} catch (Exception e) { } catch (Exception e) {
log.info(e.getMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$ log.error(e.getMessage(), e);
} finally { } finally {
cursor.close(); cursor.close();
} }

@ -267,6 +267,7 @@ public class TasksXmlExporter {
xml.attribute(null, property.name, valueString); xml.attribute(null, property.name, valueString);
} catch (UnsupportedOperationException e) { } catch (UnsupportedOperationException e) {
// didn't read this value, do nothing // didn't read this value, do nothing
log.error(e.getMessage(), e);
} catch (IllegalArgumentException | IOException | IllegalStateException e) { } catch (IllegalArgumentException | IOException | IllegalStateException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
@ -281,6 +282,7 @@ public class TasksXmlExporter {
xml.attribute(null, property.name, valueString); xml.attribute(null, property.name, valueString);
} catch (UnsupportedOperationException e) { } catch (UnsupportedOperationException e) {
// didn't read this value, do nothing // didn't read this value, do nothing
log.error(e.getMessage(), e);
} catch (IllegalArgumentException | IOException | IllegalStateException e) { } catch (IllegalArgumentException | IOException | IllegalStateException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
@ -297,6 +299,7 @@ public class TasksXmlExporter {
xml.attribute(null, property.name, value); xml.attribute(null, property.name, value);
} catch (UnsupportedOperationException e) { } catch (UnsupportedOperationException e) {
// didn't read this value, do nothing // didn't read this value, do nothing
log.error(e.getMessage(), e);
} catch (IllegalArgumentException | IOException | IllegalStateException e) { } catch (IllegalArgumentException | IOException | IllegalStateException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }

@ -113,6 +113,7 @@ public class TasksXmlImporter {
} }
} catch (BadTokenException e) { } catch (BadTokenException e) {
// Running from a unit test or some such thing // Running from a unit test or some such thing
log.error(e.getMessage(), e);
} }
new Thread(new Runnable() { new Thread(new Runnable() {

@ -30,6 +30,8 @@ import com.todoroo.astrid.reminders.SnoozeDialog;
import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingActivity; import org.tasks.injection.InjectingActivity;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -41,6 +43,8 @@ import javax.inject.Inject;
public class MissedCallActivity extends InjectingActivity { 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_NUMBER = "number"; //$NON-NLS-1$
public static final String EXTRA_NAME = "name"; //$NON-NLS-1$ public static final String EXTRA_NAME = "name"; //$NON-NLS-1$
public static final String EXTRA_TIME = "time"; //$NON-NLS-1$ public static final String EXTRA_TIME = "time"; //$NON-NLS-1$
@ -139,7 +143,7 @@ public class MissedCallActivity extends InjectingActivity {
try { try {
b = BitmapFactory.decodeStream(input); b = BitmapFactory.decodeStream(input);
} catch (OutOfMemoryError e) { } catch (OutOfMemoryError e) {
// log.error(e.getMessage(), e);
} }
if (b != null) { if (b != null) {
pictureView.setImageBitmap(b); pictureView.setImageBitmap(b);

@ -77,6 +77,7 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
Calls.DATE + " DESC" Calls.DATE + " DESC"
); );
} catch (Exception e) { // Sometimes database is locked, retry once } catch (Exception e) { // Sometimes database is locked, retry once
log.error(e.getMessage(), e);
AndroidUtilities.sleepDeep(300L); AndroidUtilities.sleepDeep(300L);
try { try {
calls = context.getContentResolver().query( calls = context.getContentResolver().query(
@ -87,6 +88,7 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
Calls.DATE + " DESC" Calls.DATE + " DESC"
); );
} catch (Exception e2) { } catch (Exception e2) {
log.error(e2.getMessage(), e2);
calls = null; calls = null;
} }
} }

@ -327,6 +327,7 @@ public class Database extends AbstractDatabase {
database.execSQL(sql); database.execSQL(sql);
} catch (SQLiteException e) { } catch (SQLiteException e) {
// ignored, column already exists // ignored, column already exists
log.error(e.getMessage(), e);
} }
} }

@ -20,6 +20,8 @@ import com.todoroo.astrid.tags.TagMemberMetadata;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
@ -37,6 +39,8 @@ import javax.inject.Singleton;
@Singleton @Singleton
public class TagMetadataDao extends DatabaseDao<TagMetadata> { public class TagMetadataDao extends DatabaseDao<TagMetadata> {
private static final Logger log = LoggerFactory.getLogger(TagMetadataDao.class);
private final TagDataDao tagDataDao; private final TagDataDao tagDataDao;
@Inject @Inject
@ -132,7 +136,7 @@ public class TagMetadataDao extends DatabaseDao<TagMetadata> {
} }
} catch (JSONException e) { } catch (JSONException e) {
// log.error(e.getMessage(), e);
} }
tagData.setMembers(""); //$NON-NLS-1$ tagData.setMembers(""); //$NON-NLS-1$
tagDataDao.saveExisting(tagData); tagDataDao.saveExisting(tagData);

@ -21,6 +21,8 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskApiDao; import com.todoroo.astrid.data.TaskApiDao;
import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.reminders.ReminderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.Broadcaster; import org.tasks.Broadcaster;
import org.tasks.R; import org.tasks.R;
import org.tasks.notifications.NotificationManager; import org.tasks.notifications.NotificationManager;
@ -38,6 +40,8 @@ import javax.inject.Singleton;
@Singleton @Singleton
public class TaskDao extends RemoteModelDao<Task> { public class TaskDao extends RemoteModelDao<Task> {
private static final Logger log = LoggerFactory.getLogger(TaskDao.class);
private final MetadataDao metadataDao; private final MetadataDao metadataDao;
private final Broadcaster broadcaster; private final Broadcaster broadcaster;
private final ReminderService reminderService; private final ReminderService reminderService;
@ -168,6 +172,7 @@ public class TaskDao extends RemoteModelDao<Task> {
try { try {
saveSuccessful = createNew(task); saveSuccessful = createNew(task);
} catch (SQLiteConstraintException e) { } catch (SQLiteConstraintException e) {
log.error(e.getMessage(), e);
saveSuccessful = handleSQLiteConstraintException(task); // Tried to create task with remote id that already exists saveSuccessful = handleSQLiteConstraintException(task); // Tried to create task with remote id that already exists
} }
} else { } else {
@ -279,6 +284,7 @@ public class TaskDao extends RemoteModelDao<Task> {
try { try {
saveExisting(item); saveExisting(item);
} catch (SQLiteConstraintException e) { } catch (SQLiteConstraintException e) {
log.error(e.getMessage(), e);
String uuid = item.getUUID(); String uuid = item.getUUID();
TodorooCursor<Task> tasksWithUUID = query(Query.select( TodorooCursor<Task> tasksWithUUID = query(Query.select(
SQL_CONSTRAINT_MERGE_PROPERTIES).where( SQL_CONSTRAINT_MERGE_PROPERTIES).where(

@ -86,6 +86,7 @@ public class FileExplore extends Activity {
try { try {
path.mkdirs(); path.mkdirs();
} catch (SecurityException e) { } catch (SecurityException e) {
log.error(e.getMessage(), e);
DialogUtilities.okDialog(this, getString(R.string.file_browser_err_permissions), new DialogInterface.OnClickListener() { DialogUtilities.okDialog(this, getString(R.string.file_browser_err_permissions), new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {

@ -39,6 +39,8 @@ import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.voice.RecognizerApi; import com.todoroo.astrid.voice.RecognizerApi;
import com.todoroo.astrid.voice.RecognizerApi.PlaybackExceptionHandler; import com.todoroo.astrid.voice.RecognizerApi.PlaybackExceptionHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
@ -49,6 +51,8 @@ import static org.tasks.preferences.ResourceResolver.getResource;
public class FilesControlSet extends PopupControlSet { public class FilesControlSet extends PopupControlSet {
private static final Logger log = LoggerFactory.getLogger(FilesControlSet.class);
private final ArrayList<TaskAttachment> files = new ArrayList<>(); private final ArrayList<TaskAttachment> files = new ArrayList<>();
private final LinearLayout fileDisplayList; private final LinearLayout fileDisplayList;
private final LayoutInflater inflater; private final LayoutInflater inflater;
@ -245,6 +249,7 @@ public class FilesControlSet extends PopupControlSet {
intent.setDataAndType(Uri.fromFile(new File(file)), type); intent.setDataAndType(Uri.fromFile(new File(file)), type);
activity.startActivity(intent); activity.startActivity(intent);
} catch (ActivityNotFoundException e) { } catch (ActivityNotFoundException e) {
log.error(e.getMessage(), e);
handleActivityNotFound(type); handleActivityNotFound(type);
} }
} }
@ -274,6 +279,7 @@ public class FilesControlSet extends PopupControlSet {
} }
activity.startActivity(marketIntent); activity.startActivity(marketIntent);
} catch (ActivityNotFoundException anf) { } catch (ActivityNotFoundException anf) {
log.error(anf.getMessage(), anf);
DialogUtilities.okDialog(activity, DialogUtilities.okDialog(activity,
activity.getString(R.string.market_unavailable), activity.getString(R.string.market_unavailable),
null); null);

@ -13,6 +13,8 @@ import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.utility.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -25,6 +27,8 @@ import javax.inject.Inject;
public class CalendarAlarmReceiver extends InjectingBroadcastReceiver { 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 int REQUEST_CODE_CAL_REMINDER = 100;
public static final String BROADCAST_CALENDAR_REMINDER = Constants.PACKAGE + ".CALENDAR_EVENT"; public static final String BROADCAST_CALENDAR_REMINDER = Constants.PACKAGE + ".CALENDAR_EVENT";
@ -66,8 +70,9 @@ public class CalendarAlarmReceiver extends InjectingBroadcastReceiver {
if (eventId > 0) { if (eventId > 0) {
showCalReminder(context, eventId, fromPostpone); showCalReminder(context, eventId, fromPostpone);
} }
} catch (IllegalArgumentException e) { // Some cursor read failed, or badly formed uri } catch (IllegalArgumentException e) {
e.printStackTrace(); // Some cursor read failed, or badly formed uri
log.error(e.getMessage(), e);
} }
} }

@ -120,7 +120,7 @@ public class GCalControlSet extends PopupControlSet {
hasEvent = true; hasEvent = true;
} catch (Exception e) { } catch (Exception e) {
log.error("unable-to-parse-calendar: {}", model.getCalendarURI(), e); log.error("unable-to-parse-calendar: " + model.getCalendarURI(), e);
} }
} else { } else {
hasEvent = false; hasEvent = false;
@ -188,7 +188,7 @@ public class GCalControlSet extends PopupControlSet {
ContentResolver cr = activity.getContentResolver(); ContentResolver cr = activity.getContentResolver();
cr.update(calendarUri, updateValues, null, null); cr.update(calendarUri, updateValues, null, null);
} catch (Exception e) { } catch (Exception e) {
log.error("unable-to-update-calendar: {}", task.getCalendarURI(), e); log.error("unable-to-update-calendar: " + task.getCalendarURI(), e);
} }
} }
} }

@ -14,7 +14,6 @@ import android.database.CursorIndexOutOfBoundsException;
import android.net.Uri; import android.net.Uri;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.format.Time; import android.text.format.Time;
import android.util.Log;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
@ -129,8 +128,7 @@ public class GCalHelper {
} catch (Exception e) { } catch (Exception e) {
// won't work on emulator // won't work on emulator
Log.v("astrid-gcal", log.error(e.getMessage(), e);
"error-creating-calendar-event", e);
} }
return null; return null;
@ -161,6 +159,7 @@ public class GCalHelper {
calendar.moveToFirst(); calendar.moveToFirst();
return calendar.getString(0); return calendar.getString(0);
} catch (CursorIndexOutOfBoundsException e) { } catch (CursorIndexOutOfBoundsException e) {
log.error(e.getMessage(), e);
return null; return null;
} finally { } finally {
calendar.close(); calendar.close();

@ -55,7 +55,7 @@ public class GCalTaskCompleteListener extends InjectingBroadcastReceiver {
task.getTitle())); task.getTitle()));
cr.update(Uri.parse(calendarUri), values, null, null); cr.update(Uri.parse(calendarUri), values, null, null);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$ log.error(e.getMessage(), e);
} }
} }
} }

@ -19,6 +19,8 @@ import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.gtasks.api.GtasksInvoker; import com.todoroo.astrid.gtasks.api.GtasksInvoker;
import com.todoroo.astrid.gtasks.auth.GtasksTokenValidator; import com.todoroo.astrid.gtasks.auth.GtasksTokenValidator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingActivity; import org.tasks.injection.InjectingActivity;
@ -28,6 +30,8 @@ import javax.inject.Inject;
public class GtasksListAdder extends InjectingActivity { public class GtasksListAdder extends InjectingActivity {
private static final Logger log = LoggerFactory.getLogger(GtasksListAdder.class);
@Inject GtasksPreferenceService gtasksPreferenceService; @Inject GtasksPreferenceService gtasksPreferenceService;
@Inject GtasksListService gtasksListService; @Inject GtasksListService gtasksListService;
@Inject GtasksTokenValidator gtasksTokenValidator; @Inject GtasksTokenValidator gtasksTokenValidator;
@ -71,6 +75,7 @@ public class GtasksListAdder extends InjectingActivity {
} }
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e);
DialogUtilities.okDialog(activity, activity.getString(R.string.gtasks_FEx_create_list_error), null); DialogUtilities.okDialog(activity, activity.getString(R.string.gtasks_FEx_create_list_error), null);
} finally { } finally {
pd.dismiss(); pd.dismiss();

@ -43,6 +43,7 @@ public class GtasksScheduler {
syncFrequencySeconds = preferences.getIntegerFromString( syncFrequencySeconds = preferences.getIntegerFromString(
gtasksPreferenceService.getSyncIntervalKey(), -1); gtasksPreferenceService.getSyncIntervalKey(), -1);
} catch(ClassCastException e) { } catch(ClassCastException e) {
log.error(e.getMessage(), e);
preferences.setStringFromInteger(gtasksPreferenceService.getSyncIntervalKey(), 0); preferences.setStringFromInteger(gtasksPreferenceService.getSyncIntervalKey(), 0);
} }
if(syncFrequencySeconds <= 0) { if(syncFrequencySeconds <= 0) {

@ -7,6 +7,9 @@ package com.todoroo.astrid.gtasks.api;
import com.google.api.client.util.DateTime; import com.google.api.client.util.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Date; import java.util.Date;
import java.util.TimeZone; import java.util.TimeZone;
@ -14,6 +17,8 @@ import static org.tasks.date.DateTimeUtils.newDate;
public class GtasksApiUtilities { public class GtasksApiUtilities {
private static final Logger log = LoggerFactory.getLogger(GtasksApiUtilities.class);
public static DateTime unixTimeToGtasksCompletionTime(long time) { public static DateTime unixTimeToGtasksCompletionTime(long time) {
if (time < 0) { if (time < 0) {
return null; return null;
@ -57,6 +62,7 @@ public class GtasksApiUtilities {
Date returnDate = newDate(date.getTime() + date.getTimezoneOffset() * 60000); Date returnDate = newDate(date.getTime() + date.getTimezoneOffset() * 60000);
return returnDate.getTime(); return returnDate.getTime();
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
log.error(e.getMessage(), e);
return 0; return 0;
} }
} }

@ -58,20 +58,18 @@ public class GtasksInvoker {
if (e instanceof HttpResponseException) { if (e instanceof HttpResponseException) {
HttpResponseException h = (HttpResponseException)e; HttpResponseException h = (HttpResponseException)e;
int statusCode = h.getResponse().getStatusCode(); int statusCode = h.getResponse().getStatusCode();
log.error(statusCode + ": " + h.getResponse().getStatusMessage(), e);
if (statusCode == 401 || statusCode == 403) { if (statusCode == 401 || statusCode == 403) {
System.err.println("Encountered " + statusCode + " error");
token = gtasksTokenValidator.validateAuthToken(ContextManager.getContext(), token); token = gtasksTokenValidator.validateAuthToken(ContextManager.getContext(), token);
if (token != null) { if (token != null) {
accessProtectedResource.setAccessToken(token); 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) { } else if (statusCode == 400 || statusCode == 500) {
System.err.println("Encountered " + statusCode + " error");
System.err.println(h.getResponse().getStatusMessage());
h.printStackTrace();
throw h; throw h;
} }
// 503 errors are generally either 1) quota limit reached or 2) problems on Google's end
} else {
log.error(e.getMessage(), e);
} }
} }

@ -7,6 +7,9 @@ package com.todoroo.astrid.gtasks.api;
import com.google.api.services.tasks.model.Task; import com.google.api.services.tasks.model.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
/** /**
@ -15,6 +18,9 @@ import java.io.IOException;
* *
*/ */
public abstract class PushRequest { public abstract class PushRequest {
private static final Logger log = LoggerFactory.getLogger(PushRequest.class);
protected String listId; protected String listId;
protected Task toPush; protected Task toPush;
protected GtasksInvoker service; protected GtasksInvoker service;
@ -29,6 +35,7 @@ public abstract class PushRequest {
try { try {
return executePush(); return executePush();
} catch (IOException e) { } catch (IOException e) {
log.error(e.getMessage(), e);
recover(); recover();
return executePush(); return executePush();
} }

@ -19,6 +19,8 @@ import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.gtasks.api.GoogleTasksException; import com.todoroo.astrid.gtasks.api.GoogleTasksException;
import com.todoroo.astrid.gtasks.api.GtasksInvoker; import com.todoroo.astrid.gtasks.api.GtasksInvoker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import java.io.IOException; import java.io.IOException;
@ -29,6 +31,8 @@ import javax.inject.Singleton;
@Singleton @Singleton
public class GtasksTokenValidator { 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 String TOKEN_INTENT_RECEIVED = "intent!"; //$NON-NLS-1$
private static final int REVALIDATION_TRIES = 4; private static final int REVALIDATION_TRIES = 4;
@ -82,6 +86,7 @@ public class GtasksTokenValidator {
testService.ping(); testService.ping();
return true; return true;
} catch (IOException i) { } catch (IOException i) {
log.error(i.getMessage(), i);
return false; return false;
} }
} }

@ -7,7 +7,6 @@ package com.todoroo.astrid.gtasks.sync;
import android.content.ContentValues; import android.content.ContentValues;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import com.todoroo.andlib.data.DatabaseDao.ModelUpdateListener; import com.todoroo.andlib.data.DatabaseDao.ModelUpdateListener;
import com.todoroo.andlib.data.Property; 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.MetadataService;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore;
@ -39,6 +41,8 @@ import javax.inject.Singleton;
@Singleton @Singleton
public class GtasksSyncService { public class GtasksSyncService {
private static final Logger log = LoggerFactory.getLogger(GtasksSyncService.class);
private static final String DEFAULT_LIST = "@default"; //$NON-NLS-1$ private static final String DEFAULT_LIST = "@default"; //$NON-NLS-1$
private final MetadataService metadataService; private final MetadataService metadataService;
@ -155,13 +159,14 @@ public class GtasksSyncService {
try { try {
op = queue.take(); op = queue.take();
} catch (InterruptedException e) { } catch (InterruptedException e) {
log.error(e.getMessage(), e);
continue; continue;
} }
try { try {
GtasksInvoker invoker = new GtasksInvoker(gtasksTokenValidator, gtasksPreferenceService.getToken()); GtasksInvoker invoker = new GtasksInvoker(gtasksTokenValidator, gtasksPreferenceService.getToken());
op.op(invoker); op.op(invoker);
} catch (IOException e) { } 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(); sema.acquire();
} catch (InterruptedException e) { } catch (InterruptedException e) {
// Ignored // Ignored
log.error(e.getMessage(), e);
} }
} }
@ -230,7 +236,7 @@ public class GtasksSyncService {
invoker.deleteGtask(gtasksMetadata.getValue(GtasksMetadata.LIST_ID), gtasksMetadata.getValue(GtasksMetadata.ID)); invoker.deleteGtask(gtasksMetadata.getValue(GtasksMetadata.LIST_ID), gtasksMetadata.getValue(GtasksMetadata.ID));
metadataDao.delete(gtasksMetadata.getId()); metadataDao.delete(gtasksMetadata.getId());
} catch (IOException e) { } catch (IOException e) {
// log.error(e.getMessage(), e);
} }
} }
return; return;

@ -37,6 +37,8 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.sync.SyncResultCallback; import com.todoroo.astrid.sync.SyncResultCallback;
import com.todoroo.astrid.sync.SyncV2Provider; import com.todoroo.astrid.sync.SyncV2Provider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -56,6 +58,8 @@ import static org.tasks.date.DateTimeUtils.newDate;
@Singleton @Singleton
public class GtasksSyncV2Provider extends SyncV2Provider { public class GtasksSyncV2Provider extends SyncV2Provider {
private static final Logger log = LoggerFactory.getLogger(GtasksSyncV2Provider.class);
private final TaskService taskService; private final TaskService taskService;
private final MetadataService metadataService; private final MetadataService metadataService;
private final StoreObjectDao storeObjectDao; private final StoreObjectDao storeObjectDao;
@ -218,6 +222,7 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
gtasksPreferenceService.setToken(authToken); gtasksPreferenceService.setToken(authToken);
} }
} catch (GoogleTasksException e) { } catch (GoogleTasksException e) {
log.error(e.getMessage(), e);
authToken = null; authToken = null;
} }
return authToken; return authToken;
@ -285,6 +290,8 @@ public class GtasksSyncV2Provider extends SyncV2Provider {
} catch (IOException e) { } catch (IOException e) {
if (errorHandler != null) { if (errorHandler != null) {
errorHandler.handleException("gtasks-sync-io", e); //$NON-NLS-1$ errorHandler.handleException("gtasks-sync-io", e); //$NON-NLS-1$
} else {
log.error(e.getMessage(), e);
} }
} }
} }

@ -8,10 +8,16 @@ package com.todoroo.astrid.helper;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* @author joshuagross * @author joshuagross
*/ */
public class MetadataHelper { public class MetadataHelper {
private static final Logger log = LoggerFactory.getLogger(MetadataHelper.class);
private static final String CATEGORY_KEY = "category"; //$NON-NLS-1$ private static final String CATEGORY_KEY = "category"; //$NON-NLS-1$
public static String resolveActivityCategoryName (ResolveInfo resolveInfo, PackageManager pm) { public static String resolveActivityCategoryName (ResolveInfo resolveInfo, PackageManager pm) {
@ -27,7 +33,7 @@ public class MetadataHelper {
resolveInfo.activityInfo.applicationInfo).getString( resolveInfo.activityInfo.applicationInfo).getString(
resource); resource);
} catch (Exception e) { } catch (Exception e) {
// log.error(e.getMessage(), e);
} }
} else { } else {
// category stored as String in Manifest // category stored as String in Manifest

@ -112,7 +112,7 @@ public class SyncActionHelper {
SyncAction syncAction = extras.getParcelable(AstridApiConstants.EXTRAS_RESPONSE); SyncAction syncAction = extras.getParcelable(AstridApiConstants.EXTRAS_RESPONSE);
syncActions.add(syncAction); syncActions.add(syncAction);
} catch (Exception e) { } 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);
} }
} }
} }

@ -138,6 +138,7 @@ public class Astrid2TaskProvider extends InjectingContentProvider {
try { try {
m = MessageDigest.getInstance("MD5"); m = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) { } catch (NoSuchAlgorithmException e) {
log.error(e.getMessage(), e);
return -1; return -1;
} }

@ -23,6 +23,8 @@ import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
@ -45,6 +47,8 @@ import static org.tasks.date.DateTimeUtils.newDate;
@Singleton @Singleton
public final class ReminderService { public final class ReminderService {
private static final Logger log = LoggerFactory.getLogger(ReminderService.class);
// --- constants // --- constants
public static final Property<?>[] NOTIFICATION_PROPERTIES = new Property<?>[] { public static final Property<?>[] NOTIFICATION_PROPERTIES = new Property<?>[] {
@ -127,6 +131,7 @@ public final class ReminderService {
} }
} catch (Exception e) { } catch (Exception e) {
// suppress // suppress
log.error(e.getMessage(), e);
} finally { } finally {
cursor.close(); cursor.close();
now = -1; // Signal done with now variable now = -1; // Signal done with now variable
@ -438,6 +443,7 @@ public final class ReminderService {
try { try {
requestCode = Integer.parseInt(rc); requestCode = Integer.parseInt(rc);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e);
requestCode = type; requestCode = type;
} }
AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);

@ -15,6 +15,8 @@ import com.todoroo.astrid.utility.Flags;
import com.todoroo.astrid.voice.VoiceOutputAssistant; import com.todoroo.astrid.voice.VoiceOutputAssistant;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.notifications.NotificationManager; import org.tasks.notifications.NotificationManager;
@ -35,6 +37,8 @@ import static org.tasks.date.DateTimeUtils.currentTimeMillis;
*/ */
public class ShowNotificationReceiver extends InjectingBroadcastReceiver { public class ShowNotificationReceiver extends InjectingBroadcastReceiver {
private static final Logger log = LoggerFactory.getLogger(ShowNotificationReceiver.class);
private static ExecutorService singleThreadVoicePool = Executors.newSingleThreadExecutor(); private static ExecutorService singleThreadVoicePool = Executors.newSingleThreadExecutor();
private static long lastNotificationSound = 0L; private static long lastNotificationSound = 0L;
@ -253,6 +257,7 @@ public class ShowNotificationReceiver extends InjectingBroadcastReceiver {
} }
} catch (VerifyError e) { } catch (VerifyError e) {
// unavailable // unavailable
log.error(e.getMessage(), e);
} }
} }
} }

@ -16,6 +16,8 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
@ -33,6 +35,8 @@ import javax.inject.Inject;
*/ */
public class RepeatDetailExposer extends InjectingBroadcastReceiver { public class RepeatDetailExposer extends InjectingBroadcastReceiver {
private static final Logger log = LoggerFactory.getLogger(RepeatDetailExposer.class);
@Inject TaskService taskService; @Inject TaskService taskService;
@Override @Override
@ -72,7 +76,7 @@ public class RepeatDetailExposer extends InjectingBroadcastReceiver {
try { try {
rrule = new RRule(recurrence); rrule = new RRule(recurrence);
} catch (ParseException e) { } catch (ParseException e) {
System.err.println(e.toString()); log.error(e.getMessage(), e);
return null; return null;
} }

@ -16,7 +16,6 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteException;
import android.media.AudioManager; import android.media.AudioManager;
import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import com.todoroo.andlib.data.AbstractDatabase; import com.todoroo.andlib.data.AbstractDatabase;
@ -241,6 +240,7 @@ public class StartupService {
tasks.close(); tasks.close();
} }
} catch (SQLiteException e) { } catch (SQLiteException e) {
log.error(e.getMessage(), e);
database.tryAddColumn(Task.TABLE, Task.UUID, "'0'"); //$NON-NLS-1$ database.tryAddColumn(Task.TABLE, Task.UUID, "'0'"); //$NON-NLS-1$
database.tryAddColumn(Task.TABLE, Task.USER_ID, "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) { } catch (Exception e) {
Log.w("astrid-database-restore", e); //$NON-NLS-1$ log.error(e.getMessage(), e);
} }
} }

@ -5,10 +5,15 @@ import android.content.ActivityNotFoundException;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList; import java.util.ArrayList;
public class UpdateScreenFlow extends Activity { 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$ public static final String TOKEN_SCREENS = "token_screens"; //$NON-NLS-1$
private static final int REQUEST_CODE_SCREEN_FLOW = 5; private static final int REQUEST_CODE_SCREEN_FLOW = 5;
@ -49,7 +54,7 @@ public class UpdateScreenFlow extends Activity {
Intent intent = new Intent(this, activityClass); Intent intent = new Intent(this, activityClass);
startActivityForResult(intent, REQUEST_CODE_SCREEN_FLOW); startActivityForResult(intent, REQUEST_CODE_SCREEN_FLOW);
} catch (ClassNotFoundException | ActivityNotFoundException e) { } catch (ClassNotFoundException | ActivityNotFoundException e) {
e.printStackTrace(); log.error(e.getMessage(), e);
finish(); finish();
} }
} }

@ -170,7 +170,9 @@ public class SubtasksHelper {
Long localId = -1L; Long localId = -1L;
try { try {
localId = Long.parseLong(uuid); localId = Long.parseLong(uuid);
} catch (NumberFormatException e) {/**/} } catch (NumberFormatException e) {
log.error(e.getMessage(), e);
}
return localId; return localId;
} }
}); });

@ -34,6 +34,8 @@ import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.ui.DateAndTimeDialog.DateAndTimeDialogListener; import com.todoroo.astrid.ui.DateAndTimeDialog.DateAndTimeDialogListener;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.preferences.ActivityPreferences; import org.tasks.preferences.ActivityPreferences;
@ -50,6 +52,8 @@ import static org.tasks.date.DateTimeUtils.newDate;
*/ */
public class DateChangedAlerts { public class DateChangedAlerts {
private static final Logger log = LoggerFactory.getLogger(DateChangedAlerts.class);
/** Preference key for how many of these helper dialogs we've shown */ /** 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$ 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) { } catch (ParseException e) {
// Eh // Eh
log.error(e.getMessage(), e);
} }
return ""; return "";
} }

@ -40,10 +40,14 @@ import com.commonsware.cwac.tlv.TouchListView.GrabberClickListener;
import com.commonsware.cwac.tlv.TouchListView.SwipeListener; import com.commonsware.cwac.tlv.TouchListView.SwipeListener;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
public class DraggableListView extends ListView { 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 SWIPE_THRESHOLD = 40;
private static final int MOVEMENT_THRESHOLD = 30; private static final int MOVEMENT_THRESHOLD = 30;
@ -338,6 +342,7 @@ public class DraggableListView extends ListView {
} catch (InterruptedException e) { } catch (InterruptedException e) {
// bye! // bye!
log.error(e.getMessage(), e);
} }
} }
} }

@ -9,8 +9,13 @@ import android.content.Context;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.widget.EditText; import android.widget.EditText;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ErrorCatchingEditText extends EditText { public class ErrorCatchingEditText extends EditText {
private static final Logger log = LoggerFactory.getLogger(ErrorCatchingEditText.class);
public ErrorCatchingEditText(Context context, AttributeSet attrs, public ErrorCatchingEditText(Context context, AttributeSet attrs,
int defStyle) { int defStyle) {
super(context, attrs, defStyle); super(context, attrs, defStyle);
@ -32,6 +37,7 @@ public class ErrorCatchingEditText extends EditText {
try { try {
return super.getExtendedPaddingTop(); return super.getExtendedPaddingTop();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e);
return 0; return 0;
} }
} }
@ -41,6 +47,7 @@ public class ErrorCatchingEditText extends EditText {
try { try {
return super.getExtendedPaddingBottom(); return super.getExtendedPaddingBottom();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e);
return 0; return 0;
} }
} }

@ -9,8 +9,13 @@ import android.content.Context;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.widget.Spinner; import android.widget.Spinner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ErrorCatchingSpinner extends Spinner { public class ErrorCatchingSpinner extends Spinner {
private static final Logger log = LoggerFactory.getLogger(ErrorCatchingSpinner.class);
public ErrorCatchingSpinner(Context context, AttributeSet attrs) { public ErrorCatchingSpinner(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
} }
@ -21,6 +26,7 @@ public class ErrorCatchingSpinner extends Spinner {
super.onDetachedFromWindow(); super.onDetachedFromWindow();
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// Bad times // Bad times
log.error(e.getMessage(), e);
} }
} }

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

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

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

@ -11,7 +11,9 @@ import android.os.Bundle;
import android.speech.RecognitionListener; import android.speech.RecognitionListener;
import android.speech.RecognizerIntent; import android.speech.RecognizerIntent;
import android.speech.SpeechRecognizer; import android.speech.SpeechRecognizer;
import android.util.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
@ -20,6 +22,8 @@ import java.util.ArrayList;
@TargetApi(8) @TargetApi(8)
public class RecognizerApi implements RecognitionListener { public class RecognizerApi implements RecognitionListener {
private static final Logger log = LoggerFactory.getLogger(RecognizerApi.class);
public static interface PlaybackExceptionHandler { public static interface PlaybackExceptionHandler {
public void playbackFailed(); public void playbackFailed();
} }
@ -52,6 +56,7 @@ public class RecognizerApi implements RecognitionListener {
mediaPlayer.prepare(); mediaPlayer.prepare();
mediaPlayer.start(); mediaPlayer.start();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e);
handler.playbackFailed(); handler.playbackFailed();
} }
} }
@ -113,7 +118,7 @@ public class RecognizerApi implements RecognitionListener {
try { try {
baos.write(buffer); baos.write(buffer);
} catch (IOException e) { } catch (IOException e) {
// log.error(e.getMessage(), e);
} }
} }
} }
@ -140,10 +145,10 @@ public class RecognizerApi implements RecognitionListener {
@Override @Override
public void onError(int error) { public void onError(int error) {
log.error("Error code " + error, new RuntimeException());
if (mListener != null) { if (mListener != null) {
mListener.onSpeechError(error); mListener.onSpeechError(error);
} }
Log.w("Speech Error", "Error code: " + error);
} }
@Override @Override

@ -207,6 +207,7 @@ public class VoiceInputAssistant {
} }
activity.startActivity(marketIntent); activity.startActivity(marketIntent);
} catch (ActivityNotFoundException ane) { } catch (ActivityNotFoundException ane) {
log.error(ane.getMessage(), ane);
DialogUtilities.okDialog(activity, DialogUtilities.okDialog(activity,
activity.getString(R.string.EPr_marketUnavailable_dlg), activity.getString(R.string.EPr_marketUnavailable_dlg),
onFail); onFail);

@ -78,6 +78,7 @@ public class WidgetUpdateService extends InjectingService {
} }
} catch (RuntimeException e) { } catch (RuntimeException e) {
// "System server dead" was sometimes thrown here by the OS. Abort if that happens // "System server dead" was sometimes thrown here by the OS. Abort if that happens
log.error(e.getMessage(), e);
} }
} else { } else {
RemoteViews updateViews = buildUpdate(this, extrasId); RemoteViews updateViews = buildUpdate(this, extrasId);

@ -9,6 +9,8 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.utility.AstridDefaultPreferenceSpec; import com.todoroo.astrid.utility.AstridDefaultPreferenceSpec;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
@ -18,6 +20,8 @@ import static android.content.SharedPreferences.Editor;
public class Preferences { public class Preferences {
private static final Logger log = LoggerFactory.getLogger(Preferences.class);
private static final String P_CURRENT_VERSION = "cv"; //$NON-NLS-1$ private static final String P_CURRENT_VERSION = "cv"; //$NON-NLS-1$
private static final String P_CURRENT_VERSION_NAME = "cvname"; //$NON-NLS-1$ private static final String P_CURRENT_VERSION_NAME = "cvname"; //$NON-NLS-1$
@ -91,6 +95,7 @@ public class Preferences {
try { try {
return Integer.parseInt(value); return Integer.parseInt(value);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e);
return defaultValue; return defaultValue;
} }
} }
@ -115,6 +120,7 @@ public class Preferences {
try { try {
return prefs.getBoolean(key, defValue); return prefs.getBoolean(key, defValue);
} catch (ClassCastException e) { } catch (ClassCastException e) {
log.error(e.getMessage(), e);
return defValue; return defValue;
} }
} }

Loading…
Cancel
Save