diff --git a/commons/AndroidManifest.xml b/commons/AndroidManifest.xml
index 612881600..82b930f24 100644
--- a/commons/AndroidManifest.xml
+++ b/commons/AndroidManifest.xml
@@ -73,6 +73,10 @@
+
+
+
diff --git a/commons/res/values/strings.xml b/commons/res/values/strings.xml
index 805e36e59..ba2d06fd4 100644
--- a/commons/res/values/strings.xml
+++ b/commons/res/values/strings.xml
@@ -72,4 +72,7 @@
No categories matching %1$s found
Add categories to make your images more discoverable on Wikimedia Commons.\n\nStart typing to add categories.\nTap this message (or hit back) to skip this step.
Categories
+ Usage reports
+ Send usage reports to Wikimedia to help us improve the app
+ Settings
diff --git a/commons/src/main/java/org/wikimedia/commons/CommonsApplication.java b/commons/src/main/java/org/wikimedia/commons/CommonsApplication.java
index b5f0bdd83..faa563601 100644
--- a/commons/src/main/java/org/wikimedia/commons/CommonsApplication.java
+++ b/commons/src/main/java/org/wikimedia/commons/CommonsApplication.java
@@ -100,9 +100,8 @@ public class CommonsApplication extends Application {
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);
+ // Initialize EventLogging
+ EventLog.setApp(this);
}
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 576b54993..dee4663c1 100644
--- a/commons/src/main/java/org/wikimedia/commons/EventLog.java
+++ b/commons/src/main/java/org/wikimedia/commons/EventLog.java
@@ -1,6 +1,9 @@
package org.wikimedia.commons;
+import android.content.Context;
+import android.content.SharedPreferences;
import android.os.*;
+import android.preference.PreferenceManager;
import android.util.*;
import in.yuvi.http.fluent.Http;
import org.apache.http.HttpResponse;
@@ -10,8 +13,7 @@ import java.net.*;
public class EventLog {
- // Set to false in CommonsApplication if the user has disabled tracking
- public static boolean enabled = true;
+ private static CommonsApplication app;
private static class LogTask extends AsyncTask {
@@ -52,6 +54,10 @@ public class EventLog {
}
}
+ public static void setApp(CommonsApplication app) {
+ EventLog.app = app;
+ }
+
public static class LogBuilder {
private JSONObject data;
private long rev;
@@ -91,7 +97,8 @@ public class EventLog {
}
public void log() {
- if(!enabled) {
+ SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(app);
+ if(!settings.getBoolean(Prefs.TRACKING_ENABLED, true)) {
return; // User has disabled tracking
}
LogTask logTask = new LogTask();
diff --git a/commons/src/main/java/org/wikimedia/commons/SettingsActivity.java b/commons/src/main/java/org/wikimedia/commons/SettingsActivity.java
new file mode 100644
index 000000000..074811e43
--- /dev/null
+++ b/commons/src/main/java/org/wikimedia/commons/SettingsActivity.java
@@ -0,0 +1,13 @@
+package org.wikimedia.commons;
+
+
+import android.os.Bundle;
+import com.actionbarsherlock.app.SherlockPreferenceActivity;
+
+public class SettingsActivity extends SherlockPreferenceActivity {
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.preferences);
+ }
+}
diff --git a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java
index bbba04c20..217dfa4a6 100644
--- a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java
+++ b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsListFragment.java
@@ -217,6 +217,10 @@ public class ContributionsListFragment extends SherlockFragment {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, lastGeneratedCaptureURI);
startActivityForResult(takePictureIntent, SELECT_FROM_CAMERA);
return true;
+ case R.id.menu_settings:
+ Intent settingsIntent = new Intent(getActivity(), SettingsActivity.class);
+ startActivity(settingsIntent);
+ return true;
default:
return super.onOptionsItemSelected(item);
}