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