replicant-vendor_cmsdk/tests/src/org/cyanogenmod/tests/hardware/CMHardwareTest.java

368 lines
15 KiB
Java

/**
* Copyright (c) 2015-2016, The CyanogenMod 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 org.cyanogenmod.tests.hardware;
import android.os.Bundle;
import android.widget.Toast;
import java.util.Arrays;
import java.util.List;
import cyanogenmod.hardware.CMHardwareManager;
import cyanogenmod.hardware.DisplayMode;
import org.cyanogenmod.tests.TestActivity;
/**
* Created by adnan on 8/31/15.
*/
public class CMHardwareTest extends TestActivity {
private CMHardwareManager mHardwareManager;
private static final List<Integer> FEATURES = Arrays.asList(
CMHardwareManager.FEATURE_ADAPTIVE_BACKLIGHT,
CMHardwareManager.FEATURE_COLOR_ENHANCEMENT,
CMHardwareManager.FEATURE_DISPLAY_COLOR_CALIBRATION,
CMHardwareManager.FEATURE_DISPLAY_GAMMA_CALIBRATION,
CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY,
CMHardwareManager.FEATURE_KEY_DISABLE,
CMHardwareManager.FEATURE_LONG_TERM_ORBITS,
CMHardwareManager.FEATURE_SERIAL_NUMBER,
CMHardwareManager.FEATURE_SUNLIGHT_ENHANCEMENT,
CMHardwareManager.FEATURE_TOUCH_HOVERING,
CMHardwareManager.FEATURE_AUTO_CONTRAST,
CMHardwareManager.FEATURE_DISPLAY_MODES,
CMHardwareManager.FEATURE_PERSISTENT_STORAGE
);
private static final List<Integer> BOOLEAN_FEATURES = Arrays.asList(
CMHardwareManager.FEATURE_ADAPTIVE_BACKLIGHT,
CMHardwareManager.FEATURE_COLOR_ENHANCEMENT,
CMHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY,
CMHardwareManager.FEATURE_KEY_DISABLE,
CMHardwareManager.FEATURE_SUNLIGHT_ENHANCEMENT,
CMHardwareManager.FEATURE_TOUCH_HOVERING,
CMHardwareManager.FEATURE_AUTO_CONTRAST
);
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
mHardwareManager = CMHardwareManager.getInstance(this);
}
@Override
protected String tag() {
return null;
}
@Override
protected Test[] tests() {
return mTests;
}
private boolean vibratorSupported() {
if (mHardwareManager.isSupported(CMHardwareManager.FEATURE_VIBRATOR)) {
return true;
} else {
Toast.makeText(CMHardwareTest.this, "Vibrator not supported",
Toast.LENGTH_SHORT).show();
return false;
}
}
private boolean displayColorCalibrationSupported() {
if (mHardwareManager.isSupported(CMHardwareManager.FEATURE_DISPLAY_COLOR_CALIBRATION)) {
return true;
} else {
Toast.makeText(CMHardwareTest.this, "Display Color Calibration not supported",
Toast.LENGTH_SHORT).show();
return false;
}
}
private boolean ltoSupported() {
if (mHardwareManager.isSupported(CMHardwareManager.FEATURE_LONG_TERM_ORBITS)) {
return true;
} else {
Toast.makeText(CMHardwareTest.this, "Long Term Orbits not supported",
Toast.LENGTH_SHORT).show();
return false;
}
}
private boolean serialSupported() {
if (mHardwareManager.isSupported(CMHardwareManager.FEATURE_SERIAL_NUMBER)) {
return true;
} else {
Toast.makeText(CMHardwareTest.this, "Serial number not supported",
Toast.LENGTH_SHORT).show();
return false;
}
}
private boolean uniqueDeviceIdSupported() {
if (mHardwareManager.isSupported(CMHardwareManager.FEATURE_UNIQUE_DEVICE_ID)) {
return true;
} else {
Toast.makeText(CMHardwareTest.this, "Unique device ID not supported",
Toast.LENGTH_SHORT).show();
return false;
}
}
private boolean displayModesSupported() {
if (mHardwareManager.isSupported(CMHardwareManager.FEATURE_DISPLAY_MODES)) {
return true;
} else {
Toast.makeText(CMHardwareTest.this, "Display modes not supported",
Toast.LENGTH_SHORT).show();
return false;
}
}
private boolean persistentStorageSupported() {
if (mHardwareManager.isSupported(CMHardwareManager.FEATURE_PERSISTENT_STORAGE)) {
return true;
} else {
Toast.makeText(CMHardwareTest.this, "Persistent storage not supported",
Toast.LENGTH_SHORT).show();
return false;
}
}
private Test[] mTests = new Test[] {
new Test("Test get supported features") {
public void run() {
Toast.makeText(CMHardwareTest.this, "Supported features " +
mHardwareManager.getSupportedFeatures(),
Toast.LENGTH_SHORT).show();
}
},
new Test("Test features supported") {
@Override
protected void run() {
StringBuilder builder = new StringBuilder();
for (int feature : FEATURES) {
builder.append("Feature " + feature + "\n")
.append("is supported " + mHardwareManager.isSupported(feature)
+ "\n");
}
Toast.makeText(CMHardwareTest.this, "Supported features " +
builder.toString(),
Toast.LENGTH_SHORT).show();
}
},
new Test("Test boolean features enabled") {
@Override
protected void run() {
StringBuilder builder = new StringBuilder();
for (int feature : BOOLEAN_FEATURES) {
builder.append("Feature " + feature + "\n")
.append("is enabled " + mHardwareManager.isSupported(feature)
+ "\n");
}
Toast.makeText(CMHardwareTest.this, "Features " +
builder.toString(),
Toast.LENGTH_SHORT).show();
}
},
new Test("Test get vibrator intensity") {
@Override
protected void run() {
if (vibratorSupported()) {
Toast.makeText(CMHardwareTest.this, "Vibrator intensity " +
mHardwareManager.getVibratorIntensity(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test get vibrator default intensity") {
@Override
protected void run() {
if (vibratorSupported()) {
Toast.makeText(CMHardwareTest.this, "Vibrator default intensity " +
mHardwareManager.getVibratorDefaultIntensity(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test get vibrator max intensity") {
@Override
protected void run() {
if (vibratorSupported()) {
Toast.makeText(CMHardwareTest.this, "Vibrator max intensity " +
mHardwareManager.getVibratorMaxIntensity(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test get vibrator min intensity") {
@Override
protected void run() {
if (vibratorSupported()) {
Toast.makeText(CMHardwareTest.this, "Vibrator min intensity " +
mHardwareManager.getVibratorMinIntensity(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test get vibrator min intensity") {
@Override
protected void run() {
if (vibratorSupported()) {
Toast.makeText(CMHardwareTest.this, "Vibrator min intensity " +
mHardwareManager.getVibratorWarningIntensity(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Display Color Calibration") {
@Override
protected void run() {
if (displayColorCalibrationSupported()) {
Toast.makeText(CMHardwareTest.this, "Display Color Calibration " +
mHardwareManager.getDisplayColorCalibration(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Default Display Color Calibration") {
@Override
protected void run() {
if (displayColorCalibrationSupported()) {
Toast.makeText(CMHardwareTest.this, "Default Display Color Calibration " +
mHardwareManager.getDisplayColorCalibrationDefault(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Display Color Calibration Max") {
@Override
protected void run() {
if (displayColorCalibrationSupported()) {
Toast.makeText(CMHardwareTest.this, "Display Color Calibration Max " +
mHardwareManager.getDisplayColorCalibrationMax(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Display Color Calibration Min") {
@Override
protected void run() {
if (displayColorCalibrationSupported()) {
Toast.makeText(CMHardwareTest.this, "Display Color Calibration Min " +
mHardwareManager.getDisplayColorCalibrationMin(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Set Display Color Calibration") {
@Override
protected void run() {
if (displayColorCalibrationSupported()) {
mHardwareManager.setDisplayColorCalibration(new int[] {0,0,0});
}
}
},
new Test("Test Get Long Term Orbits Source") {
@Override
protected void run() {
if (ltoSupported()) {
Toast.makeText(CMHardwareTest.this, "Long Term Orbit Source " +
mHardwareManager.getLtoSource(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Get Long Term Orbits Destination") {
@Override
protected void run() {
if (ltoSupported()) {
Toast.makeText(CMHardwareTest.this, "Long Term Orbit Destination " +
mHardwareManager.getLtoDestination(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Get Long Term Orbits Interval") {
@Override
protected void run() {
if (ltoSupported()) {
Toast.makeText(CMHardwareTest.this, "Long Term Orbit Download Interval " +
mHardwareManager.getLtoDownloadInterval(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Get Serial Number") {
@Override
protected void run() {
if (serialSupported()) {
Toast.makeText(CMHardwareTest.this, "Serial number " +
mHardwareManager.getSerialNumber(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Get Unique Device ID") {
@Override
protected void run() {
if (uniqueDeviceIdSupported()) {
Toast.makeText(CMHardwareTest.this, "Unique Device ID " +
mHardwareManager.getUniqueDeviceId(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Get Display Modes") {
@Override
protected void run() {
if (displayModesSupported()) {
StringBuilder builder = new StringBuilder();
for (DisplayMode displayMode : mHardwareManager.getDisplayModes()) {
builder.append("Display mode " + displayMode.name + "\n");
}
Toast.makeText(CMHardwareTest.this, "Display modes: \n"
+ builder.toString(), Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Get Current Display Mode") {
@Override
protected void run() {
if (displayModesSupported()) {
Toast.makeText(CMHardwareTest.this, "Default Display Mode " +
mHardwareManager.getCurrentDisplayMode(),
Toast.LENGTH_SHORT).show();
}
}
},
new Test("Test Get Default Display Mode") {
@Override
protected void run() {
if (displayModesSupported()) {
Toast.makeText(CMHardwareTest.this, "Default Display Mode " +
mHardwareManager.getCurrentDisplayMode(),
Toast.LENGTH_SHORT).show();
}
}
},
};
}