Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4014)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java

Issue 1058433007: New UMA settings fragment using Android prefs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove pref init Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java
index e3de19bafbc1a31750bf2c62603582c5c2c929b4..b5e8134cbf9174e0a290fd51a3a63b3acc12c6fe 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java
@@ -8,15 +8,18 @@ import android.app.Activity;
import android.content.ComponentCallbacks;
import android.content.Context;
import android.content.res.Configuration;
+import android.text.TextUtils;
import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus;
import org.chromium.chrome.browser.Tab;
+import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.preferences.privacy.CrashReportingPermissionManager;
import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferencesManager;
import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver;
+import org.chromium.components.variations.VariationsAssociatedData;
import org.chromium.content_public.browser.WebContents;
import org.chromium.net.NetworkChangeNotifier;
@@ -102,6 +105,7 @@ public class UmaSessionStats implements NetworkChangeNotifier.ConnectionTypeObse
nativeUmaResumeSession(sNativeUmaSessionStats);
NetworkChangeNotifier.addConnectionTypeObserver(this);
+ updatePreferences();
updateMetricsServiceState();
}
@@ -159,6 +163,32 @@ public class UmaSessionStats implements NetworkChangeNotifier.ConnectionTypeObse
nativeUpdateMetricsServiceState(mayRecordStats, mayUploadStats);
}
+ /**
+ * Updating Android preferences according to equivalent native preferences so that the values
+ * can be retrieved while native preferences are not accessible.
+ */
+ private void updatePreferences() {
+ // Update cellular experiment preference.
+ PrivacyPreferencesManager prefManager = PrivacyPreferencesManager.getInstance(mContext);
+ boolean cellularExperiment = TextUtils.equals("true",
+ VariationsAssociatedData.getVariationParamValue(
+ "UMA_EnableCellularLogUpload", "Enabled"));
+ prefManager.setCellularExperiment(cellularExperiment);
+
+ // Update metrics reporting preference.
+ if (cellularExperiment) {
+ PrefServiceBridge prefBridge = PrefServiceBridge.getInstance();
+ // If the native preference metrics reporting has not been set, then initialize it
+ // based on the older android preference.
+ if (!prefBridge.hasSetMetricsReporting()) {
+ prefBridge.setMetricsReportingEnabled(prefManager.isUploadCrashDumpEnabled());
+ }
+
+ // Set new Android preference for usage and crash reporting.
+ prefManager.setUsageAndCrashReporting(prefBridge.isMetricsReportingEnabled());
+ }
+ }
+
@Override
public void onConnectionTypeChanged(int connectionType) {
updateMetricsServiceState();

Powered by Google App Engine
This is Rietveld 408576698