From 06a0fb90281131400795ec79cf0c26b105477beb Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Sun, 7 Apr 2013 16:46:21 +0530 Subject: [PATCH] Add a boolean pref to disable EventLogging based tracking --- .../java/org/wikimedia/commons/CommonsApplication.java | 5 +++++ commons/src/main/java/org/wikimedia/commons/EventLog.java | 7 +++++++ commons/src/main/java/org/wikimedia/commons/Prefs.java | 7 +++++++ 3 files changed, 19 insertions(+) create mode 100644 commons/src/main/java/org/wikimedia/commons/Prefs.java diff --git a/commons/src/main/java/org/wikimedia/commons/CommonsApplication.java b/commons/src/main/java/org/wikimedia/commons/CommonsApplication.java index 2ad503f48..b5f0bdd83 100644 --- a/commons/src/main/java/org/wikimedia/commons/CommonsApplication.java +++ b/commons/src/main/java/org/wikimedia/commons/CommonsApplication.java @@ -7,6 +7,7 @@ import java.net.URI; import android.accounts.*; import android.app.Application; +import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Bitmap; @@ -98,6 +99,10 @@ public class CommonsApplication extends Application { // LET US WIN THE AWARD FOR DUMBEST CHECKED EXCEPTION EVER! throw new RuntimeException(e); } + + // Enable / disable tracking based on user preference. Defaults to true + SharedPreferences settings = getSharedPreferences(Prefs.GLOBAL_PREFS, MODE_PRIVATE); + EventLog.enabled = settings.getBoolean(Prefs.TRACKING_ENABLED, EventLog.enabled); } public MWApi getApi() { diff --git a/commons/src/main/java/org/wikimedia/commons/EventLog.java b/commons/src/main/java/org/wikimedia/commons/EventLog.java index ed6b7a667..fdb89f051 100644 --- a/commons/src/main/java/org/wikimedia/commons/EventLog.java +++ b/commons/src/main/java/org/wikimedia/commons/EventLog.java @@ -9,6 +9,10 @@ import java.io.IOException; import java.net.*; public class EventLog { + + // Set to false in CommonsApplication if the user has disabled tracking + public static boolean enabled = false; + private static class LogTask extends AsyncTask { @Override @@ -87,6 +91,9 @@ public class EventLog { } public void log() { + if(!enabled) { + return; // User has disabled tracking + } LogTask logTask = new LogTask(); Utils.executeAsyncTask(logTask, this); } diff --git a/commons/src/main/java/org/wikimedia/commons/Prefs.java b/commons/src/main/java/org/wikimedia/commons/Prefs.java new file mode 100644 index 000000000..9dbf173e3 --- /dev/null +++ b/commons/src/main/java/org/wikimedia/commons/Prefs.java @@ -0,0 +1,7 @@ +package org.wikimedia.commons; + +public class Prefs { + public static String GLOBAL_PREFS = "org.wikimedia.commons.preferences"; + + public static String TRACKING_ENABLED = "eventLogging"; +}