// 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 arritbute values to check for compatibiltiy with Chrome OS.
*
 */

const String MANIFEST_TAG = 'manifest';

const String USES_PERMISSION_TAG = 'uses-permission';

const String USES_FEATURE_TAG = 'uses-feature';

const String ANDROID_NAME = 'android:name';

const String ANDROID_REQUIRED = 'android:required';

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 ANDROID_PERMISSION_CAMERA = 'android.permission.CAMERA';

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.touchscreen',
  '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',
];

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;
  }
}
