package com.mumux.androidtesting.actions.impl;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
import com.mumux.androidtesting.actions.Action;
import com.mumux.androidtesting.actions.argument.ActionArgument;
import com.mumux.androidtesting.actions.argument.ArgumentType;
import java.io.IOException;
public class KillAppAction extends Action {
private String application;
public KillAppAction() {
super("KILL", false, "Kill an application", Category.SYSTEM, null);
}
// region Action
@Override
public ActionArgument[] getArguments() {
ActionArgument applicationArgument = new ActionArgument("application", ArgumentType.STRING);
applicationArgument.setValue(application);
return new ActionArgument[]{applicationArgument};
}
@Override
public void setValues(Object[] values) {
application = values[0].toString();
}
// endregion
@Override
public String run(UiAutomatorTestCase uiAutomatorTestCase, Runtime runtime) {
try {
System.err.println("Killing " + application);
runtime.exec("am force-stop " + application);
// To be clarify - when action has been satisfied
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
return e.getMessage();
}
return null;
}
}