180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov/*
280943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * Copyright (C) 2013 The Android Open Source Project
380943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov *
480943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * Licensed under the Apache License, Version 2.0 (the "License");
580943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * you may not use this file except in compliance with the License.
680943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * You may obtain a copy of the License at
780943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov *
880943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov *      http://www.apache.org/licenses/LICENSE-2.0
980943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov *
1080943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * Unless required by applicable law or agreed to in writing, software
1180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * distributed under the License is distributed on an "AS IS" BASIS,
1280943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1380943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * See the License for the specific language governing permissions and
1480943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * limitations under the License.
1580943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov */
1680943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov
1780943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovpackage android.app;
1880943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov
1980943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovimport android.accessibilityservice.IAccessibilityServiceClient;
2080943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovimport android.graphics.Bitmap;
2180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovimport android.view.InputEvent;
221376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslavimport android.view.WindowContentFrameStats;
231376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslavimport android.view.WindowAnimationFrameStats;
2480943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovimport android.os.ParcelFileDescriptor;
2580943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov
2680943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov/**
2780943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * This interface contains privileged operations a shell program can perform
2880943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * on behalf of an instrumentation that it runs. These operations require
2980943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * special permissions which the shell user has but the instrumentation does
3080943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * not. Running privileged operations by the shell user on behalf of an
311376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslav * instrumentation is needed for running UiTestCases.
3280943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov *
3380943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * {@hide}
3480943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov */
3580943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganovinterface IUiAutomationConnection {
361dd872260b3ccfbe492d1be0bdbb3f98235b3ba3Phil Weaver    void connect(IAccessibilityServiceClient client, int flags);
3780943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov    void disconnect();
3880943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov    boolean injectInputEvent(in InputEvent event, boolean sync);
3980943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov    boolean setRotation(int rotation);
4080943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov    Bitmap takeScreenshot(int width, int height);
411376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslav    boolean clearWindowContentFrameStats(int windowId);
421376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslav    WindowContentFrameStats getWindowContentFrameStats(int windowId);
431376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslav    void clearWindowAnimationFrameStats();
441376d600d8e0eefdbc0aa11d398cf7517fc77129Svetoslav    WindowAnimationFrameStats getWindowAnimationFrameStats();
45121e0c073992658ca0ba055f40bf3b130caa819aSvetoslav    void executeShellCommand(String command, in ParcelFileDescriptor fd);
4652153f4c0540a991b5b7214f4f14b5a891479a3cSvet Ganov    void grantRuntimePermission(String packageName, String permission, int userId);
4752153f4c0540a991b5b7214f4f14b5a891479a3cSvet Ganov    void revokeRuntimePermission(String packageName, String permission, int userId);
487bb48725debf53a1142e959907dae12b729ae531Svet Ganov
497bb48725debf53a1142e959907dae12b729ae531Svet Ganov    // Called from the system process.
507bb48725debf53a1142e959907dae12b729ae531Svet Ganov    oneway void shutdown();
5180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov}
52