From 167ba2af93e25500e8d9499b3433f7b2c67fad58 Mon Sep 17 00:00:00 2001 From: Guang Zhu Date: Fri, 19 Oct 2012 17:55:05 -0700 Subject: [PATCH] Prevent sync state changes when user is a monkey Bug: 7385019 Change-Id: Icf305683e57b83b3260f2587ae0a3d1a6dc3c21d --- src/com/android/settings/DataUsageSummary.java | 6 +++++- src/com/android/settings/accounts/SyncSettings.java | 7 ++++++- .../settings/accounts/SyncStateCheckBoxPreference.java | 8 +++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java index 90c3460980a..8dc3d53e692 100644 --- a/src/com/android/settings/DataUsageSummary.java +++ b/src/com/android/settings/DataUsageSummary.java @@ -553,7 +553,11 @@ public class DataUsageSummary extends Fragment { return true; } case R.id.data_usage_menu_auto_sync: { - ConfirmAutoSyncChangeFragment.show(this, !item.isChecked()); + if (ActivityManager.isUserAMonkey()) { + Log.d("SyncState", "ignoring monkey's attempt to flip global sync state"); + } else { + ConfirmAutoSyncChangeFragment.show(this, !item.isChecked()); + } return true; } } diff --git a/src/com/android/settings/accounts/SyncSettings.java b/src/com/android/settings/accounts/SyncSettings.java index 20c296a1e7d..3248113d184 100644 --- a/src/com/android/settings/accounts/SyncSettings.java +++ b/src/com/android/settings/accounts/SyncSettings.java @@ -20,6 +20,7 @@ import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.OnAccountsUpdateListener; import android.app.Activity; +import android.app.ActivityManager; import android.content.ContentResolver; import android.content.Intent; import android.graphics.drawable.Drawable; @@ -56,7 +57,11 @@ public class SyncSettings extends AccountPreferenceBase mAutoSyncPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { - ContentResolver.setMasterSyncAutomatically((Boolean) newValue); + if (ActivityManager.isUserAMonkey()) { + Log.d("SyncSettings", "ignoring monkey's attempt to flip sync state"); + } else { + ContentResolver.setMasterSyncAutomatically((Boolean) newValue); + } return true; } }); diff --git a/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java b/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java index 13081dd92bf..db746eedac9 100644 --- a/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java +++ b/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java @@ -17,9 +17,11 @@ package com.android.settings.accounts; import android.accounts.Account; +import android.app.ActivityManager; import android.content.Context; import android.preference.CheckBoxPreference; import android.util.AttributeSet; +import android.util.Log; import android.view.View; import android.widget.TextView; @@ -131,7 +133,11 @@ public class SyncStateCheckBoxPreference extends CheckBoxPreference { // When we're in one-time sync mode, we don't want a click to change the // checkbox state if (!mOneTimeSyncMode) { - super.onClick(); + if (ActivityManager.isUserAMonkey()) { + Log.d("SyncState", "ignoring monkey's attempt to flip sync state"); + } else { + super.onClick(); + } } }