Merge "Report user selected resolution events to StatsLog"
diff --git a/src/com/android/settings/display/ScreenResolutionFragment.java b/src/com/android/settings/display/ScreenResolutionFragment.java
index b42dbe2..665f6b0 100644
--- a/src/com/android/settings/display/ScreenResolutionFragment.java
+++ b/src/com/android/settings/display/ScreenResolutionFragment.java
@@ -28,6 +28,7 @@
import android.hardware.display.DisplayManager;
import android.provider.Settings;
import android.text.TextUtils;
+import android.util.Log;
import android.view.Display;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
@@ -36,6 +37,7 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
+import com.android.settings.core.instrumentation.SettingsStatsLog;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.RadioButtonPickerFragment;
import com.android.settingslib.display.DisplayDensityUtils;
@@ -167,14 +169,26 @@
mDisplayObserver.startObserve();
/** For store settings globally. */
- /** TODO(b/238061217): Moving to an atom with the same string */
+ /** TODO(b/259797244): Remove this once the atom is fully populated. */
Settings.System.putString(
getContext().getContentResolver(),
SCREEN_RESOLUTION,
mode.getPhysicalWidth() + "x" + mode.getPhysicalHeight());
- /** Apply the resolution change. */
- mDefaultDisplay.setUserPreferredDisplayMode(mode);
+ try {
+ /** Apply the resolution change. */
+ mDefaultDisplay.setUserPreferredDisplayMode(mode);
+ } catch (Exception e) {
+ Log.e(TAG, "setUserPreferredDisplayMode() failed", e);
+ return;
+ }
+
+ /** Send the atom after resolution changed successfully. */
+ SettingsStatsLog.write(
+ SettingsStatsLog.USER_SELECTED_RESOLUTION,
+ mDefaultDisplay.getUniqueId().hashCode(),
+ mode.getPhysicalWidth(),
+ mode.getPhysicalHeight());
}
/** Get the key corresponding to the resolution. */