OSDN Git Service

Add ActivityManager#isRunningInTestHarness() public API.
authorBrett Chabot <brettchabot@android.com>
Sun, 9 Jan 2011 21:41:02 +0000 (13:41 -0800)
committerBrett Chabot <brettchabot@android.com>
Mon, 10 Jan 2011 00:31:11 +0000 (16:31 -0800)
Replaces use of ro.monkey system property. This new API is controlled by
ro.test_harness.

Bug 3329873

Change-Id: Idb5bbbd9ca691976ef842eec681be34c29915976

api/current.xml
core/java/android/accounts/AccountManagerService.java
core/java/android/app/ActivityManager.java
policy/src/com/android/internal/policy/impl/LockScreen.java

index 4f0898e..4ca0b39 100644 (file)
 <exception name="SecurityException" type="java.lang.SecurityException">
 </exception>
 </method>
+<method name="isRunningInTestHarness"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="isUserAMonkey"
  return="boolean"
  abstract="false"
index 72da2ce..6e04587 100644 (file)
@@ -21,6 +21,7 @@ import com.android.internal.telephony.ITelephony;
 import com.android.internal.telephony.TelephonyIntents;
 
 import android.Manifest;
+import android.app.ActivityManager;
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
@@ -162,8 +163,6 @@ public class AccountManagerService
     private static AtomicReference<AccountManagerService> sThis =
             new AtomicReference<AccountManagerService>();
 
-    private static final boolean isDebuggableMonkeyBuild =
-            SystemProperties.getBoolean("ro.monkey", false);
     private static final Account[] EMPTY_ACCOUNT_ARRAY = new Account[]{};
 
     static {
@@ -1992,12 +1991,12 @@ public class AccountManagerService
                 account.name, account.type};
         final boolean permissionGranted =
                 DatabaseUtils.longForQuery(db, COUNT_OF_MATCHING_GRANTS, args) != 0;
-        if (!permissionGranted && isDebuggableMonkeyBuild) {
+        if (!permissionGranted && ActivityManager.isRunningInTestHarness()) {
             // TODO: Skip this check when running automated tests. Replace this
             // with a more general solution.
             Log.d(TAG, "no credentials permission for usage of " + account + ", "
                     + authTokenType + " by uid " + Binder.getCallingUid()
-                    + " but ignoring since this is a monkey build");
+                    + " but ignoring since device is in test harness.");
             return true;
         }
         return permissionGranted;
index 096a6eb..44db50f 100644 (file)
@@ -1149,4 +1149,11 @@ public class ActivityManager {
         }
         return false;
     }
+
+    /**
+     * Returns "true" if device is running in a test harness.
+     */
+    public static boolean isRunningInTestHarness() {
+        return SystemProperties.getBoolean("ro.test_harness", false);
+    }
 }
index 4daf84f..79fbe0e 100644 (file)
@@ -23,6 +23,7 @@ import com.android.internal.widget.SlidingTab;
 import com.android.internal.widget.WaveView;
 import com.android.internal.widget.WaveView.OnTriggerListener;
 
+import android.app.ActivityManager;
 import android.content.Context;
 import android.content.res.Configuration;
 import android.content.res.Resources;
@@ -250,9 +251,9 @@ class LockScreen extends LinearLayout implements KeyguardScreen,
     private boolean shouldEnableMenuKey() {
         final Resources res = getResources();
         final boolean configDisabled = res.getBoolean(R.bool.config_disableMenuKeyInLockScreen);
-        final boolean isMonkey = SystemProperties.getBoolean("ro.monkey", false);
+        final boolean isTestHarness = ActivityManager.isRunningInTestHarness();
         final boolean fileOverride = (new File(ENABLE_MENU_KEY_FILE)).exists();
-        return !configDisabled || isMonkey || fileOverride;
+        return !configDisabled || isTestHarness || fileOverride;
     }
 
     /**