aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tradefed/targetprep
diff options
context:
space:
mode:
authorEric Rowe <erowe@google.com>2015-05-04 11:28:39 -0700
committerEric Rowe <erowe@google.com>2015-05-04 12:47:08 -0700
commit26d987949f75a95ab29f848ee3063609925ddf48 (patch)
treebbd22fa1103bfe8f900f7be6bf4ae33dab3739b4 /src/com/android/tradefed/targetprep
parent34cb73cce9cb1dd9239fd2a8236996e99f35fc06 (diff)
downloadtradefederation-26d987949f75a95ab29f848ee3063609925ddf48.tar.gz
Special case airplane mode in device setup
Change-Id: Id9af09e4d33390c8a447d7b616af9cf043b3957a
Diffstat (limited to 'src/com/android/tradefed/targetprep')
-rw-r--r--src/com/android/tradefed/targetprep/DeviceSetup2.java40
1 files changed, 29 insertions, 11 deletions
diff --git a/src/com/android/tradefed/targetprep/DeviceSetup2.java b/src/com/android/tradefed/targetprep/DeviceSetup2.java
index 17e005a5b..e6c2cd679 100644
--- a/src/com/android/tradefed/targetprep/DeviceSetup2.java
+++ b/src/com/android/tradefed/targetprep/DeviceSetup2.java
@@ -44,7 +44,7 @@ import java.util.Map;
* </p>
*/
@OptionClass(alias = "device-setup-2")
-public class DeviceSetup2 implements ITargetPreparer, ITargetCleaner{
+public class DeviceSetup2 implements ITargetPreparer, ITargetCleaner {
/**
* Enum used to record ON/OFF state with a DEFAULT no-op state.
@@ -382,11 +382,6 @@ public class DeviceSetup2 implements ITargetPreparer, ITargetCleaner{
@SuppressWarnings("unused")
protected void processOptions(ITestDevice device) throws DeviceNotAvailableException,
TargetSetupError {
- setSettingForBinaryState(mAirplaneMode, mGlobalSettings, "airplane_mode_on", "1", "0");
- setCommandForBinaryState(mAirplaneMode, mRunCommandAfterSettings,
- "am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true",
- "am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false");
-
setSettingForBinaryState(mWifi, mGlobalSettings, "wifi_on", "1", "0");
setCommandForBinaryState(mWifi, mRunCommandAfterSettings,
"svc wifi enable", "svc wifi disable");
@@ -553,7 +548,30 @@ public class DeviceSetup2 implements ITargetPreparer, ITargetCleaner{
if (device.getApiLevel() < 22) {
throw new TargetSetupError(String.format("Changing setting not supported on %s, " +
- "must be API 22+", device.getSerialNumber()));
+ "must be API 22+", device.getSerialNumber()));
+ }
+
+ // Special case airplane mode since it needs to be set before other connectivity settings
+ // For example, it is possible to enable airplane mode and then turn wifi on
+ String command = "am broadcast -a android.intent.action.AIRPLANE_MODE --ez state %s";
+ switch (mAirplaneMode) {
+ case ON:
+ CLog.d("Changing global setting airplane_mode_on to 1");
+ device.executeShellCommand("settings put global airplane_mode_on 1");
+ if (!mForceSkipRunCommands) {
+ device.executeShellCommand(String.format(command, "true"));
+ }
+ break;
+ case OFF:
+ CLog.d("Changing global setting airplane_mode_on to 0");
+ device.executeShellCommand("settings put global airplane_mode_on 0");
+ if (!mForceSkipRunCommands) {
+ device.executeShellCommand(String.format(command, "false"));
+ }
+ break;
+ case DEFAULT:
+ // No-op
+ break;
}
for (String key : mSystemSettings.keySet()) {
@@ -591,6 +609,10 @@ public class DeviceSetup2 implements ITargetPreparer, ITargetCleaner{
return;
}
+ for (String command : commands) {
+ device.executeShellCommand(command);
+ }
+
if (mWifiSsid != null) {
if (!device.connectToWifiNetwork(mWifiSsid, mWifiPsk)) {
throw new TargetSetupError(String.format(
@@ -598,10 +620,6 @@ public class DeviceSetup2 implements ITargetPreparer, ITargetCleaner{
device.getSerialNumber()));
}
}
-
- for (String command : commands) {
- device.executeShellCommand(command);
- }
}
/**