Add a boolean pref to disable EventLogging based tracking

This commit is contained in:
YuviPanda 2013-04-07 16:46:21 +05:30
parent 72b351b21a
commit 06a0fb9028
3 changed files with 19 additions and 0 deletions

View file

@ -7,6 +7,7 @@ import java.net.URI;
import android.accounts.*; import android.accounts.*;
import android.app.Application; import android.app.Application;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Bitmap; import android.graphics.Bitmap;
@ -98,6 +99,10 @@ public class CommonsApplication extends Application {
// LET US WIN THE AWARD FOR DUMBEST CHECKED EXCEPTION EVER! // LET US WIN THE AWARD FOR DUMBEST CHECKED EXCEPTION EVER!
throw new RuntimeException(e); 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() { public MWApi getApi() {

View file

@ -9,6 +9,10 @@ import java.io.IOException;
import java.net.*; import java.net.*;
public class EventLog { 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<LogBuilder, Void, Boolean> { private static class LogTask extends AsyncTask<LogBuilder, Void, Boolean> {
@Override @Override
@ -87,6 +91,9 @@ public class EventLog {
} }
public void log() { public void log() {
if(!enabled) {
return; // User has disabled tracking
}
LogTask logTask = new LogTask(); LogTask logTask = new LogTask();
Utils.executeAsyncTask(logTask, this); Utils.executeAsyncTask(logTask, this);
} }

View file

@ -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";
}