blob: 26a85a3ae3235a6e9d7eddee362f96436a8cfdcb [file] [log] [blame]
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.platform.helpers;
import android.support.test.uiautomator.Direction;
public interface IGoogleCameraHelper extends IAppHelper {
public static final int HDR_MODE_AUTO = -1;
public static final int HDR_MODE_OFF = 0;
public static final int HDR_MODE_ON = 1;
public static final int VIDEO_SD_480 = -2;
public static final int VIDEO_HD_720 = -1;
public static final int VIDEO_HD_1080 = 0;
public static final int VIDEO_4K_MODE_ON = 1;
public static final int VIDEO_30FPS = 0;
public static final int VIDEO_60FPS = 1;
public static final int HFR_MODE_OFF = 0;
public static final int HFR_MODE_120_FPS = 1;
public static final int HFR_MODE_240_FPS = 2;
public static final int FLASH_AUTO = -1;
public static final int FLASH_OFF = 0;
public static final int FLASH_ON = 1;
public static final int NUM_FLASH_MODES = 3;
/**
* Setup expectations: GoogleCamera is open and idle in camera/video mode.
*
* This method will change to portrait mode and block until the transition is complete.
*/
public default void goToPortraitMode() {
throw new UnsupportedOperationException("Not yet implemented.");
}
/**
* Setup expectations: GoogleCamera is open and idle in portrait/video mode.
*
* This method will change to camera mode and block until the transition is complete.
*/
public void goToCameraMode();
/**
* Setup expectations: GoogleCamera is open and idle in camera/portrait mode.
*
* This method will change to video mode and block until the transition is complete.
*/
public void goToVideoMode();
/**
* Setup expectations: GoogleCamera is open and idle in either camera/portrait/video mode.
*
* This method will change to back camera and block until the transition is complete.
*/
public void goToBackCamera();
/**
* Setup expectations: GoogleCamera is open and idle in either camera/portrait/video mode.
*
* This method will change to front camera and block until the transition is complete.
*/
public void goToFrontCamera();
/**
* Setup expectations: GoogleCamera is open and idle in either camera/portrait/video mode.
*
* <p>This method will change to nightsight mode and block until the transition is complete.
*/
public default void goToNightSightMode() {
throw new UnsupportedOperationException("Not yet implemented.");
}
;
/**
* Setup expectations: GoogleCamera is open and idle in either camera/portrait/video mode.
*
* <p>This method will change to slow motion mode and block until the transition is complete.
*/
public default void goToSlowMotionMode() {
throw new UnsupportedOperationException("Not yet implemented.");
}
;
/**
* Setup expectation: in Camera/Portrait mode with the capture button present.
*
* This method will capture a photo and block until the transaction is complete.
*/
public void capturePhoto();
/**
* Setup expectation: in Camera mode with the capture button present.
*
* <p>This method will capture a long shot and block until the transaction is complete.
*
* @param durationMs duration of video in milliseconds
*/
public default void captureLongShot(long durationMs) {
throw new UnsupportedOperationException("Not yet implemented.");
}
;
/**
* Setup expectation: in Video mode with the capture button present.
*
* This method will capture a video of length timeInMs and block until the transaction is
* complete.
* @param time duration of video in milliseconds
*/
public void captureVideo(long time);
/**
* Clicks the shutter button without synchronizing with UI animations a number of times. Can
* click without waiting for button to become clickable/enabled.
*
* @param shouldWaitClickable whether to wait until button becomes clickable
* @param times number of times to mash button
*/
public default void mashShutterButton(boolean shouldWaitClickable, int times) {
throw new UnsupportedOperationException("Not yet implemented.");
}
;
/**
* Setup expectation:
* 1. in Video mode with the capture button present.
* 2. videoTime > snapshotStartTime
*
* This method will capture a video of length videoTime, and take a picture at snapshotStartTime.
* It will block until the the video is captured and the device is again idle in video mode.
* @param time duration of video in milliseconds
*/
public void snapshotVideo(long videoTime, long snapshotStartTime);
/**
* Setup expectation: GoogleCamera is open and idle in camera mode.
*
* This method will set HDR to one of the following:
* - on (mode == HDR_MODE_ON)
* - auto (mode == HDR_MODE_AUTO)
* - off (mode == HDR_MODE_OFF)
* @param mode the integer value of the mode denoted above.
*/
public void setHdrMode(int mode);
/**
* Setup expectation: GoogleCamera is open and idle in video mode.
*
* This method will set 4K mode to one of the following:
* - on (mode == VIDEO_4K_MODE_ON)
* - off (mode != VIDEO_4K_MODE_ON)
* @param mode the integer value of the mode denoted above.
*/
public void set4KMode(int mode);
/**
* Setup expectation: GoogleCamera is open and idle in video mode.
*
* This method will set HFR mode to one of the following:
* - off (mode == HFR_MODE_OFF)
* - 120 fps (mode == HFR_MODE_120_FPS)
* - 240 fps (mode == HFR_MODE_240_FPS)
* @param mode the integer value of the mode denoted above.
*/
public void setHFRMode(int mode);
/**
*
* Setup expectations: GoogleCamera is open and idle in either camera/portrait/video mode.
*
* This method will set EIS to on(true), or off(false).
* @param mode the boolean value of the mode denoted above.
*/
public void setEIS(boolean mode);
/**
* Setup expectation: GoogleCamera is open and idle in either camera/portrait/video mode.
*
* This method will set front video capture resolution to one of the following:
* - SD 480p (mode == VIDEO_SD_480)
* - HD 720p (mode == VIDEO_HD_720)
* - HD 1080p (mode == VIDEO_HD_1080)
* - UHD 4K (mode == VIDEO_4K_MODE_ON)
* @param mode the integer value of the mode denoted above.
*/
public void selectFrontVideoResolution(int mode);
/**
* Setup expectation: GoogleCamera is open and idle in either camera/portrait/video mode.
*
* This method will set back video capture resolution to one of the following:
* - SD 480p (mode == VIDEO_SD_480)
* - HD 720p (mode == VIDEO_HD_720)
* - HD 1080p (mode == VIDEO_HD_1080)
* - UHD 4K (mode == VIDEO_4K_MODE_ON)
* @param mode the integer value of the mode denoted above.
*/
public void selectBackVideoResolution(int mode);
/**
*
* Setup expectations: GoogleCamera is open, idle, in video mode,
* using back camera, and not in 4k mode
*
* This method will set video capture framerate to one of the following:
* - 30 fps (mode == VIDEO_30FPS)
* - 60 fps (mode == VIDEO_60FPS)
* @param mode the integer value of the mode denoted above.
*/
public void setFrameRate(int mode);
/**
* Setup expectation: GoogleCamera is open and idle in either camera/portrait/video mode.
*
* This method will set flash to one of the following:
* - on (mode == FLASH_ON)
* - auto (mode == FLASH_AUTO)
* - off (mode == FLASH_OFF)
* @param mode the integer value of the mode denoted above.
*/
public void setFlashMode(int mode);
/**
* Setup expectation: in Camera mode with the capture button present.
*
* This method will block until the capture button is enabled for pressing.
*/
public void waitForCameraShutterEnabled();
/**
* Setup expectation: in Video mode with the capture button present.
*
* This method will block until the capture button is enabled for pressing.
*/
public void waitForVideoShutterEnabled();
/**
* Temporary function.
*/
public String openWithShutterTimeString();
/**
* Setup expectations: in Camera mode or in Video mode
*/
public void goToAlbum();
/**
* Setup expectations:
* 1. in album view
* 2. scroll direction is either LEFT or RIGHT
*
* @param direction scroll direction, either LEFT or RIGHT
*/
public void scrollAlbum(Direction direction);
/**
* Setup expectations: Finished capture long shot in camera.
*
* <p>Clicks thumbnail of the longshot and view the top shot.
*/
public default void viewTopShot(long timeout) {
throw new UnsupportedOperationException("Not yet implemented.");
}
}