mirror of https://github.com/tasks/tasks
Add google analytics
parent
6386b7ff3c
commit
f69d0ae901
@ -0,0 +1,38 @@
|
|||||||
|
package org.tasks.analytics;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import com.google.android.gms.analytics.GoogleAnalytics;
|
||||||
|
import com.google.android.gms.analytics.HitBuilders;
|
||||||
|
|
||||||
|
import org.tasks.BuildConfig;
|
||||||
|
import org.tasks.R;
|
||||||
|
import org.tasks.injection.ForApplication;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class Tracker {
|
||||||
|
|
||||||
|
private final GoogleAnalytics analytics;
|
||||||
|
private final com.google.android.gms.analytics.Tracker tracker;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public Tracker(@ForApplication Context context) {
|
||||||
|
analytics = GoogleAnalytics.getInstance(context);
|
||||||
|
tracker = analytics.newTracker(R.xml.analytics);
|
||||||
|
if (BuildConfig.DEBUG) {
|
||||||
|
analytics.setDryRun(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showScreen(String screenName) {
|
||||||
|
tracker.setScreenName(screenName);
|
||||||
|
tracker.send(new HitBuilders.ScreenViewBuilder().build());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTrackingEnabled(boolean enabled) {
|
||||||
|
analytics.setAppOptOut(!enabled);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="ga_trackingId">UA-43015607-3</string>
|
||||||
|
<bool name="ga_reportUncaughtExceptions">true</bool>
|
||||||
|
<integer name="ga_sessionTimeout">300</integer>
|
||||||
|
</resources>
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
package org.tasks.activities;
|
||||||
|
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import org.tasks.R;
|
||||||
|
import org.tasks.analytics.Tracker;
|
||||||
|
import org.tasks.dialogs.DialogBuilder;
|
||||||
|
import org.tasks.injection.InjectingAppCompatActivity;
|
||||||
|
import org.tasks.preferences.Preferences;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
public class PrivacyActivity extends InjectingAppCompatActivity {
|
||||||
|
|
||||||
|
@Inject DialogBuilder dialogBuilder;
|
||||||
|
@Inject Tracker tracker;
|
||||||
|
@Inject Preferences preferences;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
dialogBuilder.newDialog()
|
||||||
|
.setCancelable(false)
|
||||||
|
.setTitle(R.string.send_anonymous_statistics)
|
||||||
|
.setMessage(String.format("%s\n\n%s",
|
||||||
|
getString(R.string.send_anonymous_statistics_summary),
|
||||||
|
getString(R.string.change_setting_anytime)))
|
||||||
|
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.opt_out, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
preferences.setTrackingEnabled(false);
|
||||||
|
tracker.setTrackingEnabled(false);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue