blob: 141ceaf20e7440b8b007e28c3bcdbfbc1d7f410d [file] [log] [blame]
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/*
* The attribute values to check for compatibility with Chrome OS.
*
*/
const String ACTIVITY_TAG = 'activity';
const String ANDROID_NAME = 'android:name';
const String ANDROID_PERMISSION_CAMERA = 'android.permission.CAMERA';
const String ANDROID_REQUIRED = 'android:required';
const String APPLICATION_TAG = 'application';
/// The Android resizeableActivity attribute.
// The parser does not maintain camelcase for attributes. Uses
// 'resizeableactivity' instead of 'resizeableActivity'
const String ATTRIBUTE_RESIZEABLE_ACTIVITY = 'android:resizeableactivity';
/// The Android screenOrientation attribute.
// The parser does not maintain camelcase for attributes. Uses
// 'screenorientation' instead of 'screenOrientation'.
const String ATTRIBUTE_SCREEN_ORIENTATION = 'android:screenorientation';
const String HARDWARE_FEATURE_CAMERA = 'android.hardware.camera';
const String HARDWARE_FEATURE_CAMERA_AUTOFOCUS =
'android.hardware.camera.autofocus';
const String HARDWARE_FEATURE_TELEPHONY = 'android.hardware.telephony';
const String HARDWARE_FEATURE_TOUCHSCREEN = 'android.hardware.touchscreen';
const String MANIFEST_TAG = 'manifest';
const UNSUPPORTED_HARDWARE_FEATURES = <String>[
HARDWARE_FEATURE_CAMERA,
HARDWARE_FEATURE_CAMERA_AUTOFOCUS,
'android.hardware.camera.capability.manual_post_processing',
'android.hardware.camera.capability.manual_sensor',
'android.hardware.camera.capability.raw',
'android.hardware.camera.flash',
'android.hardware.camera.level.full',
'android.hardware.consumerir',
'android.hardware.location.gps',
'android.hardware.nfc',
'android.hardware.nfc.hce',
'android.hardware.sensor.barometer',
HARDWARE_FEATURE_TELEPHONY,
'android.hardware.telephony.cdma',
'android.hardware.telephony.gsm',
'android.hardware.type.automotive',
'android.hardware.type.television',
'android.hardware.usb.accessory',
'android.hardware.usb.host',
// Partially-supported, only on some Chrome OS devices.
'android.hardware.sensor.accelerometer',
'android.hardware.sensor.compass',
'android.hardware.sensor.gyroscope',
'android.hardware.sensor.light',
'android.hardware.sensor.proximity',
'android.hardware.sensor.stepcounter',
'android.hardware.sensor.stepdetector',
// Software features that are not supported
'android.software.app_widgets',
'android.software.device_admin',
'android.software.home_screen',
'android.software.input_methods',
'android.software.leanback',
'android.software.live_wallpaper',
'android.software.live_tv',
'android.software.managed_users',
'android.software.midi',
'android.software.sip',
'android.software.sip.voip',
];
const UNSUPPORTED_ORIENTATIONS = <String>[
'landscape',
'portrait',
'reverseLandscape',
'reversePortrait',
'sensorLandscape',
'sensorPortrait',
'userLandscape',
'userPortrait'
];
const String USES_FEATURE_TAG = 'uses-feature';
const String USES_PERMISSION_TAG = 'uses-permission';
String? getImpliedUnsupportedHardware(String? permission) {
switch (permission) {
case ANDROID_PERMISSION_CAMERA:
return HARDWARE_FEATURE_CAMERA;
case 'android.permission.CALL_PHONE':
return HARDWARE_FEATURE_TELEPHONY;
case 'android.permission.CALL_PRIVILEGED':
return HARDWARE_FEATURE_TELEPHONY;
case 'android.permission.MODIFY_PHONE_STATE':
return HARDWARE_FEATURE_TELEPHONY;
case 'android.permission.PROCESS_OUTGOING_CALLS':
return HARDWARE_FEATURE_TELEPHONY;
case 'android.permission.READ_SMS':
return HARDWARE_FEATURE_TELEPHONY;
case 'android.permission.RECEIVE_SMS':
return HARDWARE_FEATURE_TELEPHONY;
case 'android.permission.RECEIVE_MMS':
return HARDWARE_FEATURE_TELEPHONY;
case 'android.permission.RECEIVE_WAP_PUSH':
return HARDWARE_FEATURE_TELEPHONY;
case 'android.permission.SEND_SMS':
return HARDWARE_FEATURE_TELEPHONY;
case 'android.permission.WRITE_APN_SETTINGS':
return HARDWARE_FEATURE_TELEPHONY;
case 'android.permission.WRITE_SMS':
return HARDWARE_FEATURE_TELEPHONY;
default:
return null;
}
}