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.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 {

@ -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);
}
}

@ -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);
}
}

@ -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);
}
}
});

@ -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;
}
}

@ -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;
}

@ -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;

@ -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);
}
}

@ -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() {

@ -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);
}

@ -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);
}
}

@ -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();
}
}

@ -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;
}
}

@ -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<Filter> {
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<Filter> {
}
}
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage(), e);
}
}
@ -465,6 +469,7 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
}, null);
} catch (CanceledException e) {
// 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.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();
}

@ -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();
}

@ -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);
}

@ -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() {

@ -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);

@ -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;
}
}

@ -327,6 +327,7 @@ public class Database extends AbstractDatabase {
database.execSQL(sql);
} catch (SQLiteException e) {
// 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.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<TagMetadata> {
private static final Logger log = LoggerFactory.getLogger(TagMetadataDao.class);
private final TagDataDao tagDataDao;
@Inject
@ -132,7 +136,7 @@ public class TagMetadataDao extends DatabaseDao<TagMetadata> {
}
} catch (JSONException e) {
//
log.error(e.getMessage(), e);
}
tagData.setMembers(""); //$NON-NLS-1$
tagDataDao.saveExisting(tagData);

@ -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<Task> {
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<Task> {
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<Task> {
try {
saveExisting(item);
} catch (SQLiteConstraintException e) {
log.error(e.getMessage(), e);
String uuid = item.getUUID();
TodorooCursor<Task> tasksWithUUID = query(Query.select(
SQL_CONSTRAINT_MERGE_PROPERTIES).where(

@ -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) {

@ -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<TaskAttachment> 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);

@ -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);
}
}

@ -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);
}
}
}

@ -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();

@ -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);
}
}
}

@ -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();

@ -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) {

@ -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;
}
}

@ -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);
}
}

@ -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();
}

@ -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;
}
}

@ -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;

@ -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);
}
}
}

@ -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

@ -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);
}
}
}

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

@ -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);

@ -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);
}
}
}

@ -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;
}

@ -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);
}
}

@ -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();
}
}

@ -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;
}
});

@ -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 "";
}

@ -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);
}
}
}

@ -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;
}
}

@ -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);
}
}

@ -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);
}

@ -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;
}
}

@ -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<String> 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);
}
}
}

@ -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

@ -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);

@ -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);

@ -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;
}
}

Loading…
Cancel
Save