Rename tracker to firebase

pull/996/head
Alex Baker 6 years ago
parent 29f0d5b5b8
commit 3a13d56060

@ -191,7 +191,7 @@ dependencies {
implementation("com.github.QuadFlask:colorpicker:0.0.15")
googleplayImplementation("com.crashlytics.sdk.android:crashlytics:${Versions.crashlytics}")
googleplayImplementation("com.google.firebase:firebase-analytics:${Versions.firebase}")
googleplayImplementation("com.google.firebase:firebase-analytics:${Versions.analytics}")
googleplayImplementation("com.google.android.gms:play-services-location:17.0.0")
googleplayImplementation("com.google.android.gms:play-services-maps:17.0.0")
googleplayImplementation("com.google.android.libraries.places:places:2.2.0")

@ -0,0 +1,8 @@
package org.tasks.analytics
import timber.log.Timber
import javax.inject.Inject
class Firebase @Inject constructor() {
fun reportException(t: Throwable) = Timber.e(t)
}

@ -1,14 +0,0 @@
package org.tasks.analytics;
import javax.inject.Inject;
import timber.log.Timber;
public class Tracker {
@Inject
public Tracker() {}
public void reportException(Throwable t) {
Timber.e(t);
}
}

@ -3,13 +3,13 @@ package org.tasks.billing;
import android.app.Activity;
import android.content.Context;
import androidx.annotation.Nullable;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
public class BillingClientImpl implements BillingClient {
public static final String TYPE_SUBS = "";
public BillingClientImpl(Context context, Inventory inventory, Tracker tracker) {}
public BillingClientImpl(Context context, Inventory inventory, Firebase firebase) {}
@Override
public void queryPurchases() {}

@ -0,0 +1,46 @@
package org.tasks.analytics
import android.content.Context
import android.os.Bundle
import com.android.billingclient.api.BillingClient.BillingResponse
import com.crashlytics.android.Crashlytics
import com.google.firebase.analytics.FirebaseAnalytics
import io.fabric.sdk.android.Fabric
import org.tasks.billing.BillingClientImpl
import org.tasks.injection.ApplicationScope
import org.tasks.injection.ForApplication
import org.tasks.preferences.Preferences
import timber.log.Timber
import javax.inject.Inject
@ApplicationScope
class Firebase @Inject constructor(@ForApplication context: Context?, preferences: Preferences) {
private var enabled: Boolean = preferences.isTrackingEnabled
private var analytics: FirebaseAnalytics? = null
fun reportException(t: Throwable?) {
Timber.e(t)
if (enabled) {
Crashlytics.logException(t)
}
}
fun reportIabResult(@BillingResponse response: Int, sku: String?) {
if (!enabled) {
return
}
val bundle = Bundle()
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, sku)
bundle.putString(FirebaseAnalytics.Param.SUCCESS, BillingClientImpl.BillingResponseToString(response))
analytics!!.logEvent(FirebaseAnalytics.Event.ECOMMERCE_PURCHASE, bundle)
}
init {
if (enabled) {
analytics = FirebaseAnalytics.getInstance(context!!)
analytics?.setAnalyticsCollectionEnabled(true)
Fabric.with(context, Crashlytics())
}
}
}

@ -1,55 +0,0 @@
package org.tasks.analytics;
import static org.tasks.billing.BillingClientImpl.BillingResponseToString;
import android.content.Context;
import android.os.Bundle;
import com.android.billingclient.api.BillingClient.BillingResponse;
import com.crashlytics.android.Crashlytics;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.google.firebase.analytics.FirebaseAnalytics.Event;
import com.google.firebase.analytics.FirebaseAnalytics.Param;
import io.fabric.sdk.android.Fabric;
import javax.inject.Inject;
import org.tasks.injection.ApplicationScope;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.Preferences;
import timber.log.Timber;
@ApplicationScope
public class Tracker {
private static boolean enabled;
private final FirebaseAnalytics analytics;
@Inject
public Tracker(@ForApplication Context context, Preferences preferences) {
enabled = preferences.isTrackingEnabled();
if (enabled) {
analytics = FirebaseAnalytics.getInstance(context);
analytics.setAnalyticsCollectionEnabled(true);
Fabric.with(context, new Crashlytics());
} else {
analytics = null;
}
}
public void reportException(Throwable t) {
Timber.e(t);
if (enabled) {
Crashlytics.logException(t);
}
}
public void reportIabResult(@BillingResponse int response, String sku) {
if (!enabled) {
return;
}
Bundle bundle = new Bundle();
bundle.putString(Param.ITEM_ID, sku);
bundle.putString(Param.SUCCESS, BillingResponseToString(response));
analytics.logEvent(Event.ECOMMERCE_PURCHASE, bundle);
}
}

@ -21,7 +21,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import java.util.List;
import org.tasks.BuildConfig;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.injection.ForApplication;
import timber.log.Timber;
@ -31,14 +31,14 @@ public class BillingClientImpl implements BillingClient, PurchasesUpdatedListene
public static final String TYPE_SUBS = SkuType.SUBS;
private final Inventory inventory;
private final Tracker tracker;
private final Firebase firebase;
private com.android.billingclient.api.BillingClient billingClient;
private boolean connected;
private OnPurchasesUpdated onPurchasesUpdated;
public BillingClientImpl(@ForApplication Context context, Inventory inventory, Tracker tracker) {
public BillingClientImpl(@ForApplication Context context, Inventory inventory, Firebase firebase) {
this.inventory = inventory;
this.tracker = tracker;
this.firebase = firebase;
billingClient =
com.android.billingclient.api.BillingClient.newBuilder(context).setListener(this).build();
}
@ -143,7 +143,7 @@ public class BillingClientImpl implements BillingClient, PurchasesUpdatedListene
.join(
Iterables.transform(purchases, com.android.billingclient.api.Purchase::getSku));
Timber.i("onPurchasesUpdated(%s, %s)", BillingResponseToString(resultCode), skus);
tracker.reportIabResult(resultCode, skus);
firebase.reportIabResult(resultCode, skus);
}
private void add(List<com.android.billingclient.api.Purchase> purchases) {

@ -52,7 +52,7 @@ import io.reactivex.schedulers.Schedulers;
import java.util.List;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.data.UserActivity;
import org.tasks.data.UserActivityDao;
import org.tasks.databinding.FragmentTaskEditBinding;
@ -85,7 +85,7 @@ public final class TaskEditFragment extends InjectingFragment
@Inject TaskEditControlSetFragmentManager taskEditControlSetFragmentManager;
@Inject CommentsController commentsController;
@Inject Preferences preferences;
@Inject Tracker tracker;
@Inject Firebase firebase;
@Inject TimerPlugin timerPlugin;
@Inject Linkify linkify;
@ -382,7 +382,7 @@ public final class TaskEditFragment extends InjectingFragment
}
}
} catch (Exception e) {
tracker.reportException(e);
firebase.reportException(e);
}
return false;
}

@ -35,7 +35,7 @@ import java.util.Arrays;
import java.util.List;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ForActivity;
import org.tasks.injection.FragmentComponent;
@ -63,7 +63,7 @@ public class RepeatControlSet extends TaskEditControlFragment {
@Inject DialogBuilder dialogBuilder;
@Inject @ForActivity Context context;
@Inject Theme theme;
@Inject Tracker tracker;
@Inject Firebase firebase;
@Inject RepeatRuleToString repeatRuleToString;
@BindView(R.id.display_row_edit)

@ -50,7 +50,7 @@ import okhttp3.RequestBody;
import org.tasks.BuildConfig;
import org.tasks.LocalBroadcastManager;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.billing.Inventory;
import org.tasks.data.CaldavAccount;
import org.tasks.data.CaldavCalendar;
@ -71,7 +71,7 @@ public class CaldavSynchronizer {
private final LocalBroadcastManager localBroadcastManager;
private final TaskDeleter taskDeleter;
private final Inventory inventory;
private final Tracker tracker;
private final Firebase firebase;
private final CaldavClient client;
private final iCalendar iCal;
private final Context context;
@ -84,7 +84,7 @@ public class CaldavSynchronizer {
LocalBroadcastManager localBroadcastManager,
TaskDeleter taskDeleter,
Inventory inventory,
Tracker tracker,
Firebase firebase,
CaldavClient client,
iCalendar iCal) {
this.context = context;
@ -93,7 +93,7 @@ public class CaldavSynchronizer {
this.localBroadcastManager = localBroadcastManager;
this.taskDeleter = taskDeleter;
this.inventory = inventory;
this.tracker = tracker;
this.firebase = firebase;
this.client = client;
this.iCal = iCal;
}
@ -121,7 +121,7 @@ public class CaldavSynchronizer {
} catch (IOException | DavException e) {
setError(account, e.getMessage());
if (!(e instanceof HttpException) || ((HttpException) e).getCode() < 500) {
tracker.reportException(e);
firebase.reportException(e);
}
}
}

@ -35,7 +35,7 @@ import javax.inject.Inject;
import javax.net.ssl.SSLException;
import org.tasks.LocalBroadcastManager;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.billing.Inventory;
import org.tasks.data.GoogleTask;
import org.tasks.data.GoogleTaskAccount;
@ -69,7 +69,7 @@ public class GoogleTaskSynchronizer {
private final GtasksListService gtasksListService;
private final Preferences preferences;
private final TaskDao taskDao;
private final Tracker tracker;
private final Firebase firebase;
private final GoogleTaskDao googleTaskDao;
private final TaskCreator taskCreator;
private final DefaultFilterProvider defaultFilterProvider;
@ -87,7 +87,7 @@ public class GoogleTaskSynchronizer {
GtasksListService gtasksListService,
Preferences preferences,
TaskDao taskDao,
Tracker tracker,
Firebase firebase,
GoogleTaskDao googleTaskDao,
TaskCreator taskCreator,
DefaultFilterProvider defaultFilterProvider,
@ -102,7 +102,7 @@ public class GoogleTaskSynchronizer {
this.gtasksListService = gtasksListService;
this.preferences = preferences;
this.taskDao = taskDao;
this.tracker = tracker;
this.firebase = firebase;
this.googleTaskDao = googleTaskDao;
this.taskCreator = taskCreator;
this.defaultFilterProvider = defaultFilterProvider;
@ -150,11 +150,11 @@ public class GoogleTaskSynchronizer {
if (e.getStatusCode() == 401) {
Timber.e(e);
} else {
tracker.reportException(e);
firebase.reportException(e);
}
} catch (Exception e) {
account.setError(e.getMessage());
tracker.reportException(e);
firebase.reportException(e);
} finally {
googleTaskListDao.update(account);
localBroadcastManager.broadcastRefreshList();
@ -199,7 +199,7 @@ public class GoogleTaskSynchronizer {
for (GoogleTaskList list :
googleTaskListDao.getByRemoteId(transform(gtaskLists, TaskList::getId))) {
if (isNullOrEmpty(list.getRemoteId())) {
tracker.reportException(new RuntimeException("Empty remote id"));
firebase.reportException(new RuntimeException("Empty remote id"));
continue;
}
fetchAndApplyRemoteChanges(gtasksInvoker, list);
@ -392,7 +392,7 @@ public class GoogleTaskSynchronizer {
taskList =
gtasksInvoker.getAllGtasksFromListId(listId, lastSyncDate + 1000L, nextPageToken);
} catch (HttpNotFoundException e) {
tracker.reportException(e);
firebase.reportException(e);
return;
}
if (taskList == null) {

@ -5,7 +5,7 @@ import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.TaskDao;
import dagger.Module;
import dagger.Provides;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.billing.BillingClient;
import org.tasks.billing.BillingClientImpl;
import org.tasks.billing.Inventory;
@ -134,8 +134,8 @@ class ApplicationModule {
}
@Provides
BillingClient getBillingClient(Inventory inventory, Tracker tracker) {
return new BillingClientImpl(context, inventory, tracker);
BillingClient getBillingClient(Inventory inventory, Firebase firebase) {
return new BillingClientImpl(context, inventory, firebase);
}
@Provides

@ -10,12 +10,12 @@ import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.notifications.NotificationManager;
public abstract class InjectingService extends Service {
@Inject Tracker tracker;
@Inject Firebase firebase;
private CompositeDisposable disposables;
@ -41,7 +41,7 @@ public abstract class InjectingService extends Service {
.subscribe(
() -> done(startId),
t -> {
tracker.reportException(t);
firebase.reportException(t);
done(startId);
}));

@ -5,12 +5,12 @@ import androidx.annotation.NonNull;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import javax.inject.Inject;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import timber.log.Timber;
public abstract class InjectingWorker extends Worker {
@Inject Tracker tracker;
@Inject Firebase firebase;
public InjectingWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
@ -26,7 +26,7 @@ public abstract class InjectingWorker extends Worker {
try {
return run();
} catch (Exception e) {
tracker.reportException(e);
firebase.reportException(e);
return Result.failure();
}
}

@ -21,7 +21,7 @@ import java.util.List;
import javax.inject.Inject;
import javax.net.ssl.SSLException;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.drive.DriveInvoker;
import org.tasks.injection.ForApplication;
import org.tasks.injection.InjectingWorker;
@ -40,7 +40,7 @@ public class DriveUploader extends InjectingWorker {
@Inject @ForApplication Context context;
@Inject DriveInvoker drive;
@Inject Preferences preferences;
@Inject Tracker tracker;
@Inject Firebase firebase;
public DriveUploader(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
@ -87,7 +87,7 @@ public class DriveUploader extends InjectingWorker {
Timber.e(e);
return Result.retry();
} catch (IOException e) {
tracker.reportException(e);
firebase.reportException(e);
return Result.failure();
}
}

@ -3,7 +3,7 @@ package org.tasks.jobs
import android.content.Context
import androidx.work.WorkerParameters
import org.tasks.LocalBroadcastManager
import org.tasks.analytics.Tracker
import org.tasks.analytics.Firebase
import org.tasks.data.LocationDao
import org.tasks.injection.InjectingWorker
import org.tasks.injection.JobComponent
@ -21,7 +21,7 @@ class ReverseGeocodeWork(context: Context, workerParams: WorkerParameters) : Inj
@Inject lateinit var localBroadcastManager: LocalBroadcastManager
@Inject lateinit var geocoder: Geocoder
@Inject lateinit var locationDao: LocationDao
@Inject lateinit var tracker: Tracker
@Inject lateinit var firebase: Firebase
public override fun run(): Result {
val id = inputData.getLong(PLACE_ID, 0)
@ -43,7 +43,7 @@ class ReverseGeocodeWork(context: Context, workerParams: WorkerParameters) : Inj
Timber.d("found $result")
Result.success()
} catch (e: IOException) {
tracker.reportException(e)
firebase.reportException(e)
Result.failure()
}
}

@ -10,7 +10,7 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import org.tasks.LocalBroadcastManager;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.caldav.CaldavSynchronizer;
import org.tasks.data.CaldavAccount;
import org.tasks.data.CaldavDao;
@ -32,7 +32,7 @@ public class SyncWork extends InjectingWorker {
@Inject GoogleTaskSynchronizer googleTaskSynchronizer;
@Inject LocalBroadcastManager localBroadcastManager;
@Inject Preferences preferences;
@Inject Tracker tracker;
@Inject Firebase firebase;
@Inject CaldavDao caldavDao;
@Inject GoogleTaskListDao googleTaskListDao;
@Inject SyncAdapters syncAdapters;
@ -57,7 +57,7 @@ public class SyncWork extends InjectingWorker {
try {
sync();
} catch (Exception e) {
tracker.reportException(e);
firebase.reportException(e);
} finally {
preferences.setSyncOngoing(false);
localBroadcastManager.broadcastRefresh();

@ -14,7 +14,7 @@ import com.todoroo.astrid.data.Task;
import java.text.ParseException;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.locale.Locale;
import org.threeten.bp.format.FormatStyle;
import timber.log.Timber;
@ -22,15 +22,15 @@ import timber.log.Timber;
public class RepeatConfirmationReceiver extends BroadcastReceiver {
private final Activity activity;
private final Tracker tracker;
private final Firebase firebase;
private final TaskDao taskDao;
private final Locale locale;
@Inject
public RepeatConfirmationReceiver(
Activity activity, Tracker tracker, TaskDao taskDao, Locale locale) {
Activity activity, Firebase firebase, TaskDao taskDao, Locale locale) {
this.activity = activity;
this.tracker = tracker;
this.firebase = firebase;
this.taskDao = taskDao;
this.locale = locale;
}
@ -55,7 +55,7 @@ public class RepeatConfirmationReceiver extends BroadcastReceiver {
try {
showSnackbar(taskListFragment, task, oldDueDate, newDueDate);
} catch (Exception e) {
tracker.reportException(e);
firebase.reportException(e);
}
}
}

@ -26,7 +26,7 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.gcal.GCalHelper;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Firebase;
import org.tasks.calendars.AndroidCalendar;
import org.tasks.calendars.CalendarEventProvider;
import org.tasks.calendars.CalendarPicker;
@ -64,7 +64,7 @@ public class CalendarControlSet extends TaskEditControlFragment {
@Inject @ForActivity Context context;
@Inject PermissionChecker permissionChecker;
@Inject FragmentPermissionRequestor permissionRequestor;
@Inject Tracker tracker;
@Inject Firebase firebase;
@Inject DialogBuilder dialogBuilder;
@Inject ThemeBase themeBase;
@Inject CalendarEventProvider calendarEventProvider;
@ -91,7 +91,7 @@ public class CalendarControlSet extends TaskEditControlFragment {
}
} catch (Exception e) {
Timber.e(e);
tracker.reportException(e);
firebase.reportException(e);
calendarId = null;
}
}

@ -8,7 +8,7 @@ object Versions {
const val leakcanary = "2.2"
const val room = "2.2.5"
const val crashlytics = "2.10.1"
const val firebase = "17.4.0"
const val analytics = "17.4.0"
const val okhttp = "3.12.10" // 3.13 minSdk is 21
const val flipper = "0.40.0"
}
Loading…
Cancel
Save