Collect a couple error messages

GA stack traces aren't helping me here
synthesis
Alex Baker 6 years ago
parent 08a6557467
commit fe477faa42

@ -11,6 +11,8 @@ import android.database.Cursor;
import com.todoroo.astrid.data.Task;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking;
import org.tasks.data.Alarm;
import org.tasks.data.AlarmDao;
import org.tasks.data.Filter;
@ -78,6 +80,7 @@ public abstract class Database extends RoomDatabase {
public static final String NAME = "database";
private SupportSQLiteDatabase database;
private Tracker tracker;
private Runnable onDatabaseUpdated;
// --- implementation
@ -86,7 +89,8 @@ public abstract class Database extends RoomDatabase {
return NAME;
}
public Database setOnDatabaseUpdated(Runnable onDatabaseUpdated) {
public Database init(Tracker tracker, Runnable onDatabaseUpdated) {
this.tracker = tracker;
this.onDatabaseUpdated = onDatabaseUpdated;
return this;
}
@ -108,19 +112,10 @@ public abstract class Database extends RoomDatabase {
try {
database = getOpenHelper().getWritableDatabase();
} catch (NullPointerException e) {
} catch (Exception e) {
tracker.reportEvent(Tracking.Events.DB_OPEN_FAILED, e.getMessage());
Timber.e(e, e.getMessage());
throw new IllegalStateException(e);
} catch (final RuntimeException original) {
Timber.e(original, original.getMessage());
try {
// provide read-only database
openForReading();
} catch (Exception readException) {
Timber.e(readException, readException.getMessage());
// throw original write exception
throw original;
}
}
}

@ -15,6 +15,8 @@ import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.utility.TitleParser;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking;
import org.tasks.data.GoogleTask;
import org.tasks.data.GoogleTaskDao;
import org.tasks.data.Tag;
@ -38,13 +40,15 @@ public class TaskCreator {
private final Preferences preferences;
private final TagDao tagDao;
private final GoogleTaskDao googleTaskDao;
private final Tracker tracker;
private final TagDataDao tagDataDao;
private final TaskDao taskDao;
private final TagService tagService;
@Inject
public TaskCreator(GCalHelper gcalHelper, Preferences preferences, TagDataDao tagDataDao,
TaskDao taskDao, TagService tagService, TagDao tagDao, GoogleTaskDao googleTaskDao) {
TaskDao taskDao, TagService tagService, TagDao tagDao,
GoogleTaskDao googleTaskDao, Tracker tracker) {
this.gcalHelper = gcalHelper;
this.preferences = preferences;
this.tagDataDao = tagDataDao;
@ -52,6 +56,7 @@ public class TaskCreator {
this.tagService = tagService;
this.tagDao = tagDao;
this.googleTaskDao = googleTaskDao;
this.tracker = tracker;
}
public Task basicQuickAddTask(String title) {
@ -109,17 +114,18 @@ public class TaskCreator {
tags.add((String) value);
} else if (key.equals(GoogleTask.KEY)) {
task.putTransitory(key, value);
} else if (value instanceof String) {
value = PermaSql.replacePlaceholders((String) value);
} else {
if (value instanceof String) {
value = PermaSql.replacePlaceholders((String) value);
}
if (key.equals("dueDate")) {
task.setDueDate(Long.valueOf((String) value));
} else if (key.equals("importance")) {
task.setImportance(Integer.valueOf((String) value));
} else {
throw new RuntimeException("Unhandled key: " + key);
tracker.reportEvent(Tracking.Events.TASK_CREATION_FAILED, "Unhandled key: " + key);
}
} else {
throw new RuntimeException("Unhandled key: " + key);
}
}
}

@ -27,6 +27,8 @@ public class Tracking {
MULTISELECT_CLONE(R.string.tracking_category_event, R.string.tracking_event_multiselect_clone),
CLEAR_COMPLETED(R.string.tracking_category_event, R.string.tracking_action_clear_completed),
UPGRADE(R.string.tracking_category_event, R.string.tracking_event_upgrade),
DB_OPEN_FAILED(R.string.tracking_category_error, R.string.tracking_event_db_open),
TASK_CREATION_FAILED(R.string.tracking_category_error, R.string.tracking_event_task_creation),
NIGHT_MODE_MISMATCH(R.string.tracking_category_event, R.string.tracking_event_night_mode_mismatch),
SET_PREFERENCE(R.string.tracking_category_preferences, 0),
PLAY_SERVICES_WARNING(R.string.tracking_category_event, R.string.tracking_event_play_services_error),

@ -58,13 +58,13 @@ public class ApplicationModule {
@Provides
@ApplicationScope
public Database getAppDatabase() {
public Database getAppDatabase(Tracker tracker) {
return Room
.databaseBuilder(context, Database.class, Database.NAME)
.allowMainThreadQueries() // TODO: remove me
.addMigrations(Migrations.MIGRATIONS)
.build()
.setOnDatabaseUpdated(() -> Astrid2TaskProvider.notifyDatabaseModification(context));
.init(tracker, () -> Astrid2TaskProvider.notifyDatabaseModification(context));
}
@Provides

@ -229,6 +229,7 @@
<string name="tracking_category_recurrence">Recurrence</string>
<string name="tracking_category_google_tasks">Gtask</string>
<string name="tracking_category_event">Event</string>
<string name="tracking_category_error">Error</string>
<string name="tracking_category_tasker">Tasker</string>
<string name="tracking_action_add">Add</string>
<string name="tracking_action_start">Start</string>
@ -248,6 +249,8 @@
<string name="tracking_event_night_mode_mismatch">Night Mismatch</string>
<string name="tracking_event_play_services_error">Play Services Error</string>
<string name="tracking_event_upgrade">Upgrade</string>
<string name="tracking_event_db_open">DB open</string>
<string name="tracking_event_task_creation">Task creation</string>
<string name="tracking_event_multiselect_delete">Multiselect delete</string>
<string name="tracking_event_multiselect_clone">Multiselect clone</string>
<string name="p_badges_enabled">badges_enabled</string>

Loading…
Cancel
Save