diff options
author | Eric Rowe <erowe@google.com> | 2015-05-04 11:28:39 -0700 |
---|---|---|
committer | Eric Rowe <erowe@google.com> | 2015-05-04 12:47:08 -0700 |
commit | 26d987949f75a95ab29f848ee3063609925ddf48 (patch) | |
tree | bbd22fa1103bfe8f900f7be6bf4ae33dab3739b4 /src/com/android/tradefed/targetprep | |
parent | 34cb73cce9cb1dd9239fd2a8236996e99f35fc06 (diff) | |
download | tradefederation-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.java | 40 |
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); - } } /** |