upload android base code part8

This commit is contained in:
August 2018-08-08 20:10:12 +08:00
parent 841ae54672
commit 5425409085
57075 changed files with 9846578 additions and 0 deletions

View file

@ -0,0 +1,113 @@
#
# Copyright (C) 2016 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.
#
# Common make file for all car builds
PRODUCT_PACKAGES += \
Bluetooth \
OneTimeInitializer \
Provision \
SystemUI \
SystemUpdater
PRODUCT_PACKAGES += \
clatd \
clatd.conf \
pppd \
screenrecord
# This is for testing
PRODUCT_PACKAGES += \
EmbeddedKitchenSinkApp \
VmsPublisherClientSample \
VmsSubscriberClientSample \
android.car.cluster.loggingrenderer \
DirectRenderingClusterSample \
PRODUCT_COPY_FILES := \
frameworks/av/media/libeffects/data/audio_effects.conf:system/etc/audio_effects.conf \
packages/services/Car/car_product/preloaded-classes-car:system/etc/preloaded-classes \
PRODUCT_PROPERTY_OVERRIDES += \
ro.carrier=unknown
# Overlay for Google network and fused location providers
$(call inherit-product, device/sample/products/location_overlay.mk)
$(call inherit-product-if-exists, frameworks/base/data/fonts/fonts.mk)
$(call inherit-product-if-exists, external/google-fonts/dancing-script/fonts.mk)
$(call inherit-product-if-exists, external/google-fonts/carrois-gothic-sc/fonts.mk)
$(call inherit-product-if-exists, external/google-fonts/coming-soon/fonts.mk)
$(call inherit-product-if-exists, external/google-fonts/cutive-mono/fonts.mk)
$(call inherit-product-if-exists, external/noto-fonts/fonts.mk)
$(call inherit-product-if-exists, external/roboto-fonts/fonts.mk)
$(call inherit-product-if-exists, external/hyphenation-patterns/patterns.mk)
$(call inherit-product-if-exists, frameworks/base/data/keyboards/keyboards.mk)
$(call inherit-product-if-exists, frameworks/webview/chromium/chromium.mk)
$(call inherit-product, packages/services/Car/car_product/build/car_base.mk)
# Overrides
PRODUCT_BRAND := generic
PRODUCT_DEVICE := generic
PRODUCT_NAME := generic_car_no_telephony
PRODUCT_PROPERTY_OVERRIDES := \
ro.config.ringtone=Girtab.ogg \
ro.config.notification_sound=Tethys.ogg \
ro.config.alarm_alert=Oxygen.ogg \
$(PRODUCT_PROPERTY_OVERRIDES) \
PRODUCT_PROPERTY_OVERRIDES += \
keyguard.no_require_sim=true
# Automotive specific packages
PRODUCT_PACKAGES += \
vehicle_monitor_service \
CarService \
CarTrustAgentService \
CarDialerApp \
CarRadioApp \
OverviewApp \
CarLensPickerApp \
LocalMediaPlayer \
CarMediaApp \
CarMessengerApp \
CarHvacApp \
CarMapsPlaceholder \
CarLatinIME \
CarUsbHandler \
android.car \
libvehiclemonitor-native \
# Boot animation
PRODUCT_COPY_FILES += \
packages/services/Car/car_product/bootanimations/bootanimation-832.zip:system/media/bootanimation.zip
PRODUCT_PROPERTY_OVERRIDES += \
fmas.spkr_6ch=35,20,110 \
fmas.spkr_2ch=35,25 \
fmas.spkr_angles=10 \
fmas.spkr_sgain=0 \
media.aac_51_output_enabled=true
PRODUCT_LOCALES := en_US af_ZA am_ET ar_EG bg_BG bn_BD ca_ES cs_CZ da_DK de_DE el_GR en_AU en_GB en_IN es_ES es_US et_EE eu_ES fa_IR fi_FI fr_CA fr_FR gl_ES hi_IN hr_HR hu_HU hy_AM in_ID is_IS it_IT iw_IL ja_JP ka_GE km_KH ko_KR ky_KG lo_LA lt_LT lv_LV km_MH kn_IN mn_MN ml_IN mk_MK mr_IN ms_MY my_MM ne_NP nb_NO nl_NL pl_PL pt_BR pt_PT ro_RO ru_RU si_LK sk_SK sl_SI sr_RS sv_SE sw_TZ ta_IN te_IN th_TH tl_PH tr_TR uk_UA vi_VN zh_CN zh_HK zh_TW zu_ZA en_XA ar_XB
# should add to BOOT_JARS only once
ifeq (,$(INCLUDED_ANDROID_CAR_TO_PRODUCT_BOOT_JARS))
PRODUCT_BOOT_JARS += \
android.car
INCLUDED_ANDROID_CAR_TO_PRODUCT_BOOT_JARS := yes
endif

View file

@ -0,0 +1,103 @@
#
# Copyright (C) 2016 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.
#
# Base platform for car builds
# car packages should be added to car.mk instead of here
PRODUCT_PACKAGE_OVERLAYS += packages/services/Car/car_product/overlay
PRODUCT_PACKAGES += \
ContactsProvider \
DefaultContainerService \
Home \
BasicDreams \
CaptivePortalLogin \
CertInstaller \
DocumentsUI \
DownloadProviderUi \
FusedLocation \
InputDevices \
KeyChain \
Keyguard \
LatinIME \
Launcher2 \
ManagedProvisioning \
PicoTts \
PacProcessor \
libpac \
PrintSpooler \
ProxyHandler \
Settings \
SharedStorageBackup \
VpnDialogs \
MmsService \
ExternalStorageProvider \
atrace \
libandroidfw \
libaudiopreprocessing \
libaudioutils \
libfilterpack_imageproc \
libgabi++ \
libmdnssd \
libnfc_ndef \
libpowermanager \
libspeexresampler \
libstagefright_soft_aacdec \
libstagefright_soft_aacenc \
libstagefright_soft_amrdec \
libstagefright_soft_amrnbenc \
libstagefright_soft_amrwbenc \
libstagefright_soft_avcdec \
libstagefright_soft_avcenc \
libstagefright_soft_flacdec \
libstagefright_soft_flacenc \
libstagefright_soft_g711dec \
libstagefright_soft_gsmdec \
libstagefright_soft_hevcdec \
libstagefright_soft_mp3dec \
libstagefright_soft_mpeg2dec \
libstagefright_soft_mpeg4dec \
libstagefright_soft_mpeg4enc \
libstagefright_soft_opusdec \
libstagefright_soft_rawdec \
libstagefright_soft_vorbisdec \
libstagefright_soft_vpxdec \
libstagefright_soft_vpxenc \
libvariablespeed \
libwebrtc_audio_preprocessing \
mdnsd \
requestsync \
wifi-service \
A2dpSinkService \
# EVS resources
PRODUCT_PACKAGES += android.automotive.evs.manager@1.0
PRODUCT_PACKAGES += evs_app
# The following packages, or their vendor specific equivalents should be include in the device.mk
#PRODUCT_PACKAGES += evs_app_default_resources
#PRODUCT_PACKAGES += android.hardware.automotive.evs@1.0-service
#PRODUCT_PACKAGES += android.hardware.automotive.evs@1.0-sample
# Device running Android is a car
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.type.automotive.xml:system/etc/permissions/android.hardware.type.automotive.xml
# Default permission grant exceptions
PRODUCT_COPY_FILES += \
packages/services/Car/car_product/build/default-car-permissions.xml:system/etc/default-permissions/default-car-permissions.xml
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_minimal.mk)

View file

@ -0,0 +1,54 @@
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<!-- 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.
-->
<!--
This file contains permissions to be granted by default. Default
permissions are granted to special platform components and to apps
that are approved to get default grants. The special components
are apps that are expected tto work out-of-the-box as they provide
core use cases such as default dialer, default email, etc. These
grants are managed by the platform. The apps that are additionally
approved for default grants are ones that provide carrier specific
functionality, ones legally required at some location, ones providing
alternative disclosure and opt-out UI, ones providing highlight features
of a dedicated device, etc. This file contains only the latter exceptions.
Fixed permissions cannot be controlled by the user and need a special
approval. Typically these are to ensure either legally mandated functions
or the app is considered a part of the OS.
-->
<exceptions>
<!-- This is an example of an exception:
<exception
package="foo.bar.permission"
<permission name="android.permission.READ_CONTACTS" fixed="true"/>
<permission name="android.permission.READ_CALENDAR" fixed="false"/>
</exception>
-->
<exception
package="com.android.car.messenger">
<!-- Contacts -->
<permission name="android.permission.READ_CONTACTS" fixed="false"/>
<!-- SMS -->
<permission name="android.permission.SEND_SMS" fixed="false"/>
<permission name="android.permission.READ_SMS" fixed="false"/>
</exception>
</exceptions>

View file

@ -0,0 +1,33 @@
# Copyright (C) 2016 The Android Open Source Project
#
# IMPORTANT: Do not create world writable files or directories.
# This is a common source of Android security bugs.
#
on post-fs-data
mkdir /data/misc/bootstat 0700 root root
# Record the time at which the user has successfully entered the pin to decrypt
# the device, /data is decrypted, and the system is entering the main boot phase.
#
# post-fs-data: /data is writable
# property:init.svc.bootanim=running: The boot animation is running
on post-fs-data && property:init.svc.bootanim=running
exec - root root -- /system/bin/bootstat -r post_decrypt_time_elapsed
# Boot animation stopped, is considered the point at which
# the user may interact with the device, so it is a good proxy for the boot
# complete signal.
on property:init.svc.bootanim=stopped
# Record boot_complete and related stats (decryption, etc).
exec - root root -- /system/bin/bootstat --record_boot_complete
on property:dev.bootcomplete=1
exec - root root -- /system/bin/bootstat -r dev_bootcomplete
# Log all boot events.
exec - root root -- /system/bin/bootstat -l
on property:boot.car_service_created=1
exec - root root -- /system/bin/bootstat -r car_service_created
on property:init.svc.zygote=running
exec - root root -- /system/bin/bootstat -r zygote_running

View file

@ -0,0 +1,8 @@
service vms /system/bin/vehicle_monitor_service
class core
user root
group root
critical
on boot
start vms

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:interpolator/decelerate_quad">
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_longAnimTime"/>
</set>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:interpolator/decelerate_quad">
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="@android:integer/config_longAnimTime"/>
</set>

View file

@ -0,0 +1,24 @@
<!--
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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="128.0dp"
android:height="128.0dp"
android:viewportWidth="48.0"
android:viewportHeight="48.0">
<path
android:pathData="M24,0C10.8,0 0,10.8 0,24s10.8,24 24,24s24,-10.8 24,-24S37.200001,0 24,0zM24,7.2c3.96,0 7.2,3.24 7.2,7.2s-3.24,7.2 -7.2,7.2s-7.2,-3.24 -7.2,-7.2S20.040001,7.2 24,7.2zM24,41.279999c-6,0 -11.28,-3.12 -14.4,-7.68c0.12,-4.8 9.6,-7.44 14.4,-7.44s14.28,2.64 14.4,7.44C35.279999,38.16 30,41.279999 24,41.279999z"
android:fillColor="#FFFFFFFF"/>
</vector>

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="56dp"
android:height="56dp"
android:viewportWidth="56.0"
android:viewportHeight="56.0">
<path
android:pathData="M28,56C12.54,56 0,43.46 0,28C0,12.54 12.54,0 28,0C43.46,0 56,12.54 56,28C56,43.46 43.46,56 28,56ZM35.64,33L38,30.71L28,21L18,30.71L20.36,33L28,25.58L35.64,33Z"
android:strokeColor="#00000000"
android:fillColor="@android:color/black"
android:strokeWidth="1"/>
</vector>

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="56dp"
android:height="56dp"
android:viewportWidth="56.0"
android:viewportHeight="56.0">
<path
android:pathData="M28,0C43.46,0 56,12.54 56,28C56,43.46 43.46,56 28,56C12.54,56 0,43.46 0,28C0,12.54 12.54,0 28,0ZM20.36,23L18,25.29L28,35L38,25.29L35.64,23L28,30.42L20.36,23Z"
android:strokeColor="#00000000"
android:fillColor="@android:color/black"
android:strokeWidth="1"/>
</vector>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffeeeeee" />
<corners
android:bottomRightRadius="16dp"
android:bottomLeftRadius="16dp"/>
</shape>

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ 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
-->
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
style="@android:style/Widget.Material.Light.Button.Borderless.Small"
android:id="@+id/action0"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:fontFamily="sans-serif"
android:gravity="start|center_vertical"
android:layout_marginStart="0dp"
android:textColor="@color/notification_default_color"
android:textSize="@dimen/notification_text_size"
android:textStyle="normal"
android:singleLine="true"
android:ellipsize="end"
android:paddingStart="@dimen/notification_content_margin_start"
android:paddingEnd="@dimen/notification_content_margin_start"
android:background="@drawable/notification_material_action_background" />

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<ImageButton
xmlns:android="http://schemas.android.com/apk/res/android"
style="@android:style/Widget.Material.Button.Borderless.Small"
android:id="@+id/action0"
android:background="@drawable/notification_material_media_action_background"
android:layout_width="0dp"
android:layout_height="@dimen/media_notification_action_button_size"
android:layout_weight="1"
android:padding="0dp"
android:gravity="center"
android:scaleType="fitCenter" />

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ 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
-->
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/right_icon"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginEnd="@dimen/notification_content_margin_end"
android:layout_marginTop="76dp"
android:layout_marginBottom="76dp"
android:layout_gravity="center_vertical|end"
android:scaleType="centerCrop" />

View file

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<resources>
<!-- Size of notification text titles (see TextAppearance.StatusBar.EventContent.Title) -->
<dimen name="notification_title_text_size">40sp</dimen>
<!-- Size of notification text (see TextAppearance.StatusBar.EventContent) -->
<dimen name="notification_text_size">32sp</dimen>
<!-- The absolute size of the application icon in the notification header. -->
<dimen name="notification_header_icon_size">32dp</dimen>
<!-- The height of the header of a notification. -->
<dimen name="notification_header_height">76dp</dimen>
<!-- Top margin to accommodate for the header before the notification content. This value
is smaller than the notification_header_height to bring the text closer. Otherwise,
spacing in the font itself makes the space look too large. -->
<dimen name="notification_content_margin_top">68dp</dimen>
<!-- The height of the notification action list. -->
<dimen name="notification_action_list_height">96dp</dimen>
<!-- The size of the media actions in the media notification. -->
<dimen name="media_notification_action_button_size">56dp</dimen>
</resources>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 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.
*/
-->
<resources>
<!-- The background color for the container of notification actions. -->
<color name="notification_action_list">#ff11181d</color> <!-- Dark Blue Grey 800 -->
<!-- The primary text color if the text is on top of a dark background. -->
<color name="notification_primary_text_color_light">#fff5f5f5</color> <!-- Grey 100 -->
<!-- The primary text color if the text is on top of a light background. -->
<color name="notification_primary_text_color_dark">#ff212121</color> <!-- Grey 900 -->
<!-- The secondary text color if the text is on top of a dark background. -->
<color name="notification_secondary_text_color_light">#ffe0e0e0</color> <!-- Grey 300 -->
<!-- The background color of a notification card. -->
<color name="notification_material_background_color">#ff172026</color> <!-- Dark Blue Grey 700 -->
<!-- The secondary text color if the text is on top of a dark background. -->
<color name="notification_secondary_text_color_dark">#ff6B6B6B</color> <!-- Grey 650 -->
</resources>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<resources>
<!-- The margin on the start of the content view. This value should match card keyline1. -->
<dimen name="notification_content_margin_start">32dp</dimen>
<!-- The margin on the end of the content view with a picture. This value is the size of
the right icon (64dp) + notification_content_margin_end + 16dp. -->
<dimen name="notification_content_picture_margin">112dp</dimen>
</resources>

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 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.
*/
-->
<resources>
<!-- The background color for the container of notification actions. -->
<color name="notification_action_list">#ffeeeeee</color> <!-- Grey 200 -->
<!-- The primary text color if the text is on top of a light background. -->
<color name="notification_primary_text_color_light">#ff212121</color> <!-- Grey 900 -->
<!-- The primary text color if the text is on top of a dark background. -->
<color name="notification_primary_text_color_dark">#fff5f5f5</color> <!-- Grey 100 -->
<!-- The secondary text color if the text is on top of a dark background. -->
<color name="notification_secondary_text_color_light">#ff6B6B6B</color> <!-- Grey 650 -->
<!-- The secondary text color if the text is on top of a dark background. -->
<color name="notification_secondary_text_color_dark">#ffe0e0e0</color> <!-- Grey 300 -->
<!-- The background color of a notification card. -->
<color name="notification_material_background_color">#fffafafa</color> <!-- Grey 50 -->
<!-- The default color for text in a notification. This color is also the default color for
icons. -->
<color name="notification_default_color">@color/notification_primary_text_color_light</color>
</resources>

View file

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2015, 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.
*/
-->
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. Do not translate. -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Enable multi-user. -->
<bool name="config_enableMultiUserUI">true</bool>
<!-- Arbitrary max 8 users. -->
<integer name="config_multiuserMaximumUsers">8</integer>
<!-- Car Mode -->
<integer name="config_defaultUiModeType">3</integer>
<!-- Can't leave car mode -->
<bool name="config_lockUiMode">true</bool>
<!-- Control whether to launch Car dock home app when user presses home button or when
car dock intent is fired.
In mobile device, usually separate home app is expected in car mode, and this should be
enabled. But in environments like real car, default home app may be enough, and in that
case, this can be disabled (set to false). -->
<bool name="config_enableCarDockHomeLaunch">false</bool>
<!-- Control whether to lock day/night mode change from normal application. When it is
true, day / night mode change is only allowed to apps with MODIFY_DAY_NIGHT_MODE
permission. -->
<bool name="config_lockDayNightMode">true</bool>
<!-- Allow smart unlock immediately after boot because the user shouldn't have to enter a pin
code to unlock their car head unit. -->
<bool name="config_strongAuthRequiredOnBoot">false</bool>
<!-- Show Navigation Bar -->
<bool name="config_showNavigationBar">true</bool>
<integer name="config_jobSchedulerInactivityIdleThreshold">0</integer>
<integer name="config_jobSchedulerIdleWindowSlop">0</integer>
<bool name="config_supportsMultiWindow">false</bool>
<!-- Automotive Bluetooth pairing option -->
<bool name="enable_pbap_pce_profile">true</bool>
<!-- Component name of a custom ResolverActivity (Intent resolver) to be used instead of
the default framework version. -->
<string name="config_customResolverActivity" translatable="false">com.android.support.car.lenspicker/.LensResolverActivity</string>
<!-- Flag indicating that the entire notification header can be clicked to expand the
notification. If false, then the expand icon has to be clicked in order for the expand
to occur. -->
<bool name="config_notificationHeaderClickableForExpand">true</bool>
<!-- Night mode should be enabled. -->
<bool name="config_enableNightMode">true</bool>
<!-- The action buttons should always take the default color. -->
<bool name="config_tintNotificationActionButtons">false</bool>
<!-- Home screen(Launcher) app presence -->
<bool name="config_noHomeScreen">true</bool>
</resources>

View file

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2016, 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.
*/
-->
<resources>
<dimen name="status_bar_height">56dp</dimen>
<!-- Both of these are used in separate positions so make sure that they remain the same. -->
<dimen name="navigation_bar_height_car_mode">112dp</dimen>
<dimen name="navigation_bar_height_landscape">112dp</dimen>
<dimen name="status_bar_icon_size">40dp</dimen>
<!-- The height of the header of a notification. -->
<dimen name="notification_header_height">58dp</dimen>
<!-- The absolute size of the notification expand icon. -->
<dimen name="notification_header_expand_icon_size">55dp</dimen>
<!-- The top padding for the notification expand button. -->
<dimen name="notification_expand_button_padding_top">0dp</dimen>
<!-- The end margin after the application icon in the notification header -->
<dimen name="notification_header_icon_margin_end">10dp</dimen>
<!-- The absolute size of the application icon in the notification header. -->
<dimen name="notification_header_icon_size">24dp</dimen>
<!-- The margins before and after each of the items in the notification header.-->
<dimen name="notification_header_separating_margin">6dp</dimen>
<!-- The margins before the start of the app name in the header. -->
<dimen name="notification_header_app_name_margin_start">@dimen/notification_header_separating_margin</dimen>
<!-- The padding at the top of the notification header. -->
<dimen name="notification_header_padding_top">0dp</dimen>
<!-- The padding at the bottom of the notification header. -->
<dimen name="notification_header_padding_bottom">0dp</dimen>
<!-- The margin at the bottom of the notification header. -->
<dimen name="notification_header_margin_bottom">0dp</dimen>
<!-- The absolute height for the header in a media notification. -->
<dimen name="media_notification_header_height">@dimen/notification_header_height</dimen>
<!-- Top margin to accommodate for the header before the notification content. This value
is 8dp smaller than the notification_header_height to bring the text closer. Otherwise,
spacing in the font itself makes the space look too large. -->
<dimen name="notification_content_margin_top">55dp</dimen>
<!-- The bottom margin after the notification content.-->
<dimen name="notification_content_margin_bottom">24dp</dimen>
<!-- The margin on the start of the content view. This value should match card keyline1. -->
<dimen name="notification_content_margin_start">24dp</dimen>
<!-- The margin on the end of the content view. Keep in sync with
notification_content_plus_picture_margin! -->
<dimen name="notification_content_margin_end">@dimen/notification_content_margin_start</dimen>
<!-- The margin on the end of the content view with a picture. This value is the size of
the right icon (64dp) + notification_content_margin_end + 16dp. -->
<dimen name="notification_content_picture_margin">106dp</dimen>
<!-- The margin on the end of the content view with a picture, plus the standard
content end margin. -->
<dimen name="notification_content_plus_picture_margin_end">80dp</dimen>
<!-- Size of notification text titles (see TextAppearance.StatusBar.EventContent.Title). -->
<dimen name="notification_title_text_size">32sp</dimen>
<!-- Size of notification text (see TextAppearance.StatusBar.EventContent). -->
<dimen name="notification_text_size">26sp</dimen>
<!-- Size of smaller notification text (see TextAppearance.StatusBar.EventContent.Line2,
Info, Time). -->
<dimen name="notification_subtext_size">@dimen/notification_text_size</dimen>
<!-- The margin on top of the text of the notification. -->
<dimen name="notification_text_margin_top">0dp</dimen>
<!-- The height of the notification action list. -->
<dimen name="notification_action_list_height">76dp</dimen>
<!-- The size of the media actions in the media notification. -->
<dimen name="media_notification_action_button_size">36dp</dimen>
<!-- The bottom padding for the media actions container. -->
<dimen name="media_notification_actions_padding_bottom">0dp</dimen>
<!-- The height of the progress bar. -->
<dimen name="notification_progress_bar_height">25dp</dimen>
<!-- The top margin before the notification progress bar. -->
<dimen name="notification_progress_margin_top">16dp</dimen>
</resources>

View file

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<resources>
<!-- The style for a Toast. This toast has an increased text size. -->
<style name="TextAppearance.Toast">
<item name="fontFamily">sans-serif-condensed</item>
<item name="textSize">42sp</item>
</style>
<!-- Override the default activity transitions. We have to do a full copy and not just inherit
and override because we're replacing the default style across the system.
-->
<style name="Animation.Activity">
<item name="activityOpenEnterAnimation">@anim/fade_in</item>
<item name="activityOpenExitAnimation">@anim/fade_out</item>
<item name="activityCloseEnterAnimation">@anim/fade_in</item>
<item name="activityCloseExitAnimation">@anim/fade_out</item>
<item name="taskOpenEnterAnimation">@anim/fade_in</item>
<item name="taskOpenExitAnimation">@anim/fade_out</item>
<item name="launchTaskBehindTargetAnimation">@anim/launch_task_behind_target</item>
<item name="launchTaskBehindSourceAnimation">@anim/launch_task_behind_source</item>
<item name="taskCloseEnterAnimation">@anim/fade_in</item>
<item name="taskCloseExitAnimation">@anim/fade_out</item>
<item name="taskToFrontEnterAnimation">@anim/fade_in</item>
<item name="taskToFrontExitAnimation">@anim/fade_out</item>
<item name="taskToBackEnterAnimation">@anim/task_close_enter</item>
<item name="taskToBackExitAnimation">@anim/task_close_exit</item>
<item name="wallpaperOpenEnterAnimation">@anim/wallpaper_open_enter</item>
<item name="wallpaperOpenExitAnimation">@anim/wallpaper_open_exit</item>
<item name="wallpaperCloseEnterAnimation">@anim/wallpaper_close_enter</item>
<item name="wallpaperCloseExitAnimation">@anim/wallpaper_close_exit</item>
<item name="wallpaperIntraOpenEnterAnimation">@anim/wallpaper_intra_open_enter</item>
<item name="wallpaperIntraOpenExitAnimation">@anim/wallpaper_intra_open_exit</item>
<item name="wallpaperIntraCloseEnterAnimation">@anim/wallpaper_intra_close_enter</item>
<item name="wallpaperIntraCloseExitAnimation">@anim/wallpaper_intra_close_exit</item>
<item name="fragmentOpenEnterAnimation">@animator/fragment_open_enter</item>
<item name="fragmentOpenExitAnimation">@animator/fragment_open_exit</item>
<item name="fragmentCloseEnterAnimation">@animator/fragment_close_enter</item>
<item name="fragmentCloseExitAnimation">@animator/fragment_close_exit</item>
<item name="fragmentFadeEnterAnimation">@animator/fragment_fade_enter</item>
<item name="fragmentFadeExitAnimation">@animator/fragment_fade_exit</item>
</style>
<!-- The style for the container of media actions in a notification. -->
<style name="NotificationMediaActionContainer">
<item name="background">@color/notification_action_list</item>
<item name="layout_width">match_parent</item>
<item name="layout_height">@dimen/notification_action_list_height</item>
<item name="layout_marginTop">0dp</item>
<item name="paddingStart">0dp</item>
<item name="paddingBottom">@dimen/media_notification_actions_padding_bottom</item>
<item name="gravity">center</item>
</style>
</resources>

View file

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2016 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.
-->
<!-- WebView providers in order of preference -->
<!-- Signature checks are ignored if the package is preinstalled or if this is a userdebug or eng
build. If no signature is provided, the package can provide a WebView implementation only on userdebug/eng builds or if it's preinstalled -->
<webviewproviders>
<webviewprovider description="Chrome Stable" packageName="com.android.chrome" availableByDefault="true">
<!-- Ignore this package on user/release builds unless preinstalled. -->
</webviewprovider>
<webviewprovider description="Google WebView" packageName="com.google.android.webview" availableByDefault="true" isFallback="true">
<!-- Ignore this package on user/release builds unless preinstalled. -->
</webviewprovider>
<webviewprovider description="Chrome Beta" packageName="com.chrome.beta">
<signature>MIIDwzCCAqugAwIBAgIJAOoj9MXoVhH6MA0GCSqGSIb3DQEBBQUAMHgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEUMBIGA1UEAwwLY2hyb21lX2JldGEwHhcNMTYwMjI5MTUxNTIzWhcNNDMwNzE3MTUxNTIzWjB4MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNVBAsMB0FuZHJvaWQxFDASBgNVBAMMC2Nocm9tZV9iZXRhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo/wW27nRxVqGbFOyXr8jtv2pc2Ke8XMr6Sfs+3JK2licVaAljGFpLtWH4wUdb50w/QQSPALNLSSyuK/94rtp5Jjs4RSJI+whuewV/R6El+mFXBO3Ek5/op4UrOsR91IM4emvS67Ji2u8gp5EmttVgJtllFZCbtZLPmKuTaOkOB+EdWIxrYiHVEEaAcQpEHa9UgWUZ0bMfPj8j3F0w+Ak2ttmTjoFGLaZjuBAYwfdctN1b0sdLT9Lif45kMCb8QwPp0F9/ozs0rrTc+I6vnTS8kfFQfk7GIE4Hgm+cYQEHkIA6gLJxUVWvPZGdulAZw7wPt/neOkazHNZPcV4pYuNLQIDAQABo1AwTjAdBgNVHQ4EFgQU5t7dhcZfOSixRsiJ1E46JhzPlwowHwYDVR0jBBgwFoAU5t7dhcZfOSixRsiJ1E46JhzPlwowDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAZO2jB8P1d8ki3KZILvp27a2VM3DInlp8I8UgG3gh7nBQfTrnZr5M1PL8eFHqX7MEvAiGCMTcrPklEhjtcHK/c7BcdeCWq6oL56UK3JTl33RxJcjmjrz3e3VI6ehRSm1feNAkMD0Nr2RWr2LCYheAEmwTPtluLOJS+i7WhnXJzBtg5UpUFEbdFYenqUbDzya+cUVp0197k7hUTs8/Hxs0wf79o/TZXzTBq9eYQkiITonRN8+5QCBl1XmZKV0IHkzGFES1RP+fTiZpIjZT+W4tasHgs9QTTks4CCpyHBAy+uy7tApe1AxCzihgecCfUN1hWIltKwGZS6EE0bu0OXPzaQ==</signature>
</webviewprovider>
<webviewprovider description="Chrome Dev" packageName="com.chrome.dev">
<signature>MIIDwTCCAqmgAwIBAgIJAOSN+O0cdii5MA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEGA1UEAwwKY2hyb21lX2RldjAeFw0xNjAyMjkxNzUwMDdaFw00MzA3MTcxNzUwMDdaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEGA1UEAwwKY2hyb21lX2RldjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOYPj6Y9rVt8xizSHDYjDEkDfFZAgSiZ9T6tevkQXsFyfaq3Gk3h2qssi29G6cTPJ2VXFKlVB71wSXv5p9/LEcDQPWQiO3Q2cLmgUXxyhJWXI3g96tPAhZQX2q6SC37ZQdiBR/raMO70DAkvCyBGtNplsvutzSE3oZ7LYfzB8vTbe7zCh3fDYSS/7xb3ZVvFqydHS40uVq1qqg1S80Pge7tW3pDGsPMZN7yA4yfmsvA1rbHm9N8t3Rc9hqzh6OxNAAgRB535YcsWL7iF+mpdFILXk3jLYT0nMvMnB83rsdgnRREjlGQYHl2mh8+6CqujsW/eICDq/LR6BYDyqHhk0ECAwEAAaNQME4wHQYDVR0OBBYEFKzsl07JglgpbeYDYGqsgqRDo+01MB8GA1UdIwQYMBaAFKzsl07JglgpbeYDYGqsgqRDo+01MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBACka6SFF6xAcj8L8O6R36++E09DTiGZEjvKT8eIycgcQQ+p1WUmPb6M2EJpN6zvvSE62ussmXdzf8rIyc0JXA8jbViZt62Y39epNENFxPTLN9QzXlT+w8AW73Ka3cnbOuL5EgoDl8fM79WVlARY3X+wB/jGNrkiGIdRm2IZIeAodWgC2mtXMiferyYBKz2/F2bhnU6DwgCbegS8trFjEWviijWdJ+lBdobn7LRc3orZCtHl8UyvRDi7cye3sK9y3BM39k0g20F21wTNHAonnvL6zbuNgpd+UEsVxDpOeWrEdBFN7Md0CI2wnu8eA8ljJD45v0WWMEoxsIi131g5piNM=</signature>
</webviewprovider>
<webviewprovider description="Chrome Canary" packageName="com.chrome.canary">
<signature>MIIDxzCCAq+gAwIBAgIJAML7APITsgV7MA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEWMBQGA1UEAwwNY2hyb21lX2NhbmFyeTAeFw0xNjAyMjkxOTA5MDdaFw00MzA3MTcxOTA5MDdaMHoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEWMBQGA1UEAwwNY2hyb21lX2NhbmFyeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANXfeAoZlr0ya1HBzIfAz/nLLjpPJeAPvuX5dueaxmiQgv2hNG22acriFuiiJI6TU0t8AIVJD5Ifbc4OOuA0zeFhdzWWGnmTRH6x27WI7bzOKnAqOvv21ZBmE9i8Vo++K13xWdTs3qVn1bn9oUONxFu0wKDzXYZhoj1Jom0RZGjXm16xuPlEuOzMcjiNBDoYuxPAXkMcK/G1gP4P4nAV8Rd/GGIjKRS/SUtcShhoAMOQhs4WIEkUrvEVRwhBDIbpM87oFbCVdBH38r0XS6F6CdhPJsKFhoEfq4c01HZqNmDpCPA8AAcCuSWqmXoTIqs7OqkWgduE2bInbWU7WMaTl+kCAwEAAaNQME4wHQYDVR0OBBYEFB/AsC4iPAqaLoNytNSx29qByI7+MB8GA1UdIwQYMBaAFB/AsC4iPAqaLoNytNSx29qByI7+MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAMb2Td3ro/+MGVnCPAbwBSOZMVLUKGqt6zr8CShW9mtFHnmy29EaWSYYAj1M4+6Vpkq85NsgBEck7rnUjV8A3Q0NKdTys1KRKJqVvQRBN6SwqQenSf/abxQCa8Z+69rh+3BkIU1HLtu5lrMDZwon5H91L5mpORn6vItd20uW132lwSDeUEW2CHslTrodoFuTUcSUlRiq/URfUH3baO1QHXkxpQwrBPKL5deJfcZnxh5MAtAGSQL7gHvayEFlDppETXdDO7vgGTH2dEK2TjKWALbGiKkxSqjRyTNt4/FOj10TqNRdUamj+ydVJgzGQ8bki4Vc6NnKm/r4asusxapkVR4=</signature>
</webviewprovider>
<webviewprovider description="Chrome Debug" packageName="com.google.android.apps.chrome">
<!-- Ignore this package on user/release builds unless preinstalled. -->
</webviewprovider>
</webviewproviders>

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2016 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
-->
<resources>
<dimen name="small_text_size">24sp</dimen>
<dimen name="medium_text_size">28sp</dimen>
<dimen name="drawer_icon_size">54dp</dimen>
<dimen name="normal_icon_size">54dp</dimen>
<dimen name="drawer_icon_margin">44dp</dimen>
<dimen name="drawer_width">600dp</dimen>
<dimen name="drawer_item_top_bottom_margin">8dp</dimen>
<dimen name="drawer_spacer_height">70dp</dimen>
</resources>

View file

@ -0,0 +1,26 @@
<!--
~ Copyright (C) 2016 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
-->
<resources>
<style name="TextAppearanceSmall">
<item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
<item name="android:textSize">@dimen/small_text_size</item>
</style>
<style name="TextAppearanceMedium">
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
<item name="android:textSize">@dimen/medium_text_size</item>
</style>
</resources>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/**
* Copyright (c) 2016, 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.
*/
-->
<resources>
<!-- There is no frx in the emulator so default to being fully set up. -->
<bool name="def_device_provisioned">true</bool>
<bool name="def_user_setup_complete">true</bool>
<bool name="def_bluetooth_on">true</bool>
<bool name="def_wifi_on">false</bool>
</resources>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/**
* Copyright (c) 2016, 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.
*/
-->
<resources>
<bool name="def_device_provisioned">false</bool>
<!-- default setting for Settings.System.END_BUTTON_BEHAVIOR: 0 for car -->
<integer name="def_end_button_behavior">0</integer>
</resources>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="64dp"
android:height="64dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:pathData="M0 0h48v48H0z" />
<path
android:fillColor="#ffffff"
android:pathData="M18 32.34L9.66 24l-2.83 2.83L18 38l24-24-2.83-2.83z" />
</vector>

View file

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 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.
-->
<com.android.keyguard.KeyguardPINView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/keyguard_pin_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/num_pad_margin_left"
android:layout_marginRight="@dimen/num_pad_margin_right">
<GridLayout
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:columnCount="3">
<!-- Row 1 -->
<com.android.keyguard.NumPadKey
android:id="@+id/key1"
style="@style/NumPadKeyButton"
app:digit="@string/one" />
<com.android.keyguard.NumPadKey
android:id="@+id/key2"
style="@style/NumPadKeyButton"
app:digit="@string/two" />
<com.android.keyguard.NumPadKey
android:id="@+id/key3"
style="@style/NumPadKeyButton"
app:digit="@string/three" />
<!-- Row 2 -->
<com.android.keyguard.NumPadKey
android:id="@+id/key4"
style="@style/NumPadKeyButton"
app:digit="@string/four" />
<com.android.keyguard.NumPadKey
android:id="@+id/key5"
style="@style/NumPadKeyButton"
app:digit="@string/five" />
<com.android.keyguard.NumPadKey
android:id="@+id/key6"
style="@style/NumPadKeyButton"
app:digit="@string/six" />
<!-- Row 3 -->
<com.android.keyguard.NumPadKey
android:id="@+id/key7"
style="@style/NumPadKeyButton"
app:digit="@string/seven" />
<com.android.keyguard.NumPadKey
android:id="@+id/key8"
style="@style/NumPadKeyButton"
app:digit="@string/eight" />
<com.android.keyguard.NumPadKey
android:id="@+id/key9"
style="@style/NumPadKeyButton"
app:digit="@string/nine" />
<!-- Row 4 -->
<Space
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.android.keyguard.NumPadKey
android:id="@+id/key0"
style="@style/NumPadKeyButton"
app:digit="@string/zero" />
<ImageButton
android:id="@+id/delete_button"
style="@style/NumPadKeyButton"
android:gravity="center_vertical"
android:src="@drawable/ic_backspace_black_24dp"
android:clickable="true"
android:background="@drawable/ripple_drawable"
android:contentDescription="@string/keyboardview_keycode_delete"
android:layout_alignParentRight="true" />
</GridLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:gravity="center"
android:orientation="vertical">
<com.android.keyguard.PasswordTextView
android:id="@+id/pinEntry"
android:layout_width="@dimen/keyguard_security_width"
android:layout_height="@dimen/pin_entry_height"
android:gravity="center"
app:scaledTextSize="@integer/password_text_view_scale"
android:contentDescription="@string/keyguard_accessibility_pin_area" />
<View
android:id="@+id/divider"
android:layout_width="@dimen/keyguard_security_width"
android:layout_height="@dimen/divider_height"
android:background="@android:color/white" />
<com.android.keyguard.AlphaOptimizedImageButton
android:id="@+id/key_enter"
android:layout_width="@dimen/num_pad_key_width"
android:layout_height="@dimen/num_pad_key_height"
android:src="@drawable/ic_done_wht"
android:background="@drawable/ripple_drawable"
android:layout_marginTop="@dimen/key_enter_margin_top"
android:contentDescription="@string/keyboardview_keycode_enter" />
<include layout="@layout/keyguard_message_area"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</FrameLayout>
<!-- KeyguardPinView references these resources ids in code so removing them will cause the
keyguard to crash. Instead put them down here where they are out of the way and set their
visibility to gone. -->
<com.android.keyguard.AlphaOptimizedRelativeLayout
android:id="@+id/row0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<LinearLayout
android:id="@+id/row1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<LinearLayout
android:id="@+id/row2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<LinearLayout
android:id="@+id/row3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<LinearLayout
android:id="@+id/row4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
<include layout="@layout/keyguard_eca"
android:id="@+id/keyguard_selector_fade_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="bottom|center_horizontal"
android:gravity="center_horizontal"
android:visibility="gone" />
</com.android.keyguard.KeyguardPINView>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 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.
-->
<resources>
<dimen name="num_pad_margin_left">112dp</dimen>
<dimen name="num_pad_margin_right">144dp</dimen>
<dimen name="num_pad_key_width">160dp</dimen>
<dimen name="num_pad_key_height">128dp</dimen>
<dimen name="num_pad_key_margin">32dp</dimen>
<dimen name="num_pad_key_digit_size">48sp</dimen>
<dimen name="num_pad_key_text_size">24sp</dimen>
<dimen name="pin_entry_height">@dimen/num_pad_key_height</dimen>
<dimen name="divider_height">1dp</dimen>
<dimen name="key_enter_margin_top">128dp</dimen>
</resources>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 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.
-->
<resources>
<integer name="password_text_view_scale">72</integer>
</resources>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 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.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="zero">0</string>
<string name="one">1</string>
<string name="two">2</string>
<string name="three">3</string>
<string name="four">4</string>
<string name="five">5</string>
<string name="six">6</string>
<string name="seven">7</string>
<string name="eight">8</string>
<string name="nine">9</string>
</resources>

View file

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 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.
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The style for the volume icons in the volume dialog. This style makes the icon scale to
fit its container since auto wants the icon to be larger. The padding is added to make it
so the icon does not press along the edges of the dialog. -->
<style name="NumPadKeyButton">
<item name="android:layout_width">@dimen/num_pad_key_width</item>
<item name="android:layout_height">@dimen/num_pad_key_height</item>
<item name="android:layout_margin">@dimen/num_pad_key_margin</item>
<item name="textView">@id/pinEntry</item>
</style>
<style name="Widget.TextView.NumPadKey" parent="@android:style/Widget.TextView">
<!-- Only replaces the text size. -->
<item name="android:textSize">@dimen/num_pad_key_digit_size</item>
</style>
<style name="Widget.TextView.NumPadKey.Klondike" parent="Widget.TextView.NumPadKey">
<!-- Only replaces the text size. -->
<item name="android:textSize">@dimen/num_pad_key_text_size</item>
</style>
</resources>

View file

@ -0,0 +1,24 @@
<!--
Copyright (C) 2016 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.
-->
<vector android:height="56dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="56dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFFFF"
android:pathData="M7.289,7.507C7.166,7.242 7.282,7.126 7.546,7.249L12.688,10.138C13.325,10.442 13.77,11.087 13.77,11.841C13.77,12.884 12.923,13.73 11.88,13.73C11.126,13.73 10.481,13.286 10.178,12.648L7.289,7.507Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFFFFFFF"
android:pathData="M19.068,4.928C15.534,1.392 10.027,1.061 6.114,3.922L7.544,5.353C10.655,3.263 14.905,3.525 17.653,6.276C20.778,9.402 20.779,14.862 17.653,17.531L6.337,17.531C3.562,14.862 3.256,10.517 5.411,7.397L3.982,6.001C1.06,9.922 1.366,15.506 4.922,19.065C8.829,22.974 15.163,22.981 19.071,19.069C22.98,15.159 22.974,8.837 19.068,4.928L19.068,4.928Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View file

@ -0,0 +1,30 @@
<!--
Copyright (C) 2016 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="56dp"
android:height="56dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:fillAlpha=".1"
android:strokeAlpha=".1"
android:pathData="M0 0h48v48H0z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M24 2C14.06 2 6 10.06 6 20v14c0 3.31 2.69 6 6 6h6V24h-8v-4c0-7.73 6.27-14
14-14s14 6.27 14 14v4h-8v16h6c3.31 0 6-2.69 6-6V20c0-9.94-8.06-18-18-18z" />
</vector>

View file

@ -0,0 +1,28 @@
<!--
Copyright (C) 2016 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="56dp"
android:height="56dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M43.41 22.59l-18-18c-.78-.78-2.05-.78-2.82 0l-18 18c-.78 .78 -.78 2.05 0 2.83l18
17.99v.01c.78 .78 2.05 .78 2.83 0l18-18c.78-.79 .78 -2.05-.01-2.83zM28
29v-5h-8v6h-4v-8c0-1.11 .89 -2 2-2h10v-5l7 7-7 7z" />
<path
android:pathData="M0 0h48v48H0z" />
</vector>

View file

@ -0,0 +1,28 @@
<!--
Copyright (C) 2016 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="56dp"
android:height="56dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:pathData="M0 0h48v48H0z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M24 4C12.95 4 4 12.95 4 24s8.95 20 20 20 20-8.95 20-20S35.05 4 24 4zm0 36c-8.82
0-16-7.18-16-16S15.18 8 24 8s16 7.18 16 16-7.18 16-16 16z" />
</vector>

View file

@ -0,0 +1,30 @@
<!--
Copyright (C) 2016 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="56dp"
android:height="56dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:pathData="M0 0h48v48H0z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M13.25 21.59c2.88 5.66 7.51 10.29 13.18 13.17l4.4-4.41c.55-.55 1.34-.71
2.03-.49C35.1 30.6 37.51 31 40 31c1.11 0 2 .89 2 2v7c0 1.11-.89 2-2 2C21.22 42 6
26.78 6 8c0-1.11 .9 -2 2-2h7c1.11 0 2 .89 2 2 0 2.49 .4 4.9 1.14 7.14 .22 .69
.06 1.48-.49 2.03l-4.4 4.42z" />
</vector>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ 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
-->
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/car_teal_700" />
<size
android:width="30dp"
android:height="30dp" />
<stroke
android:width="1dp"
android:color="@color/car_teal_700" />
</shape>

View file

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ 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
-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Use android provided id, as seekbar is expecting that -->
<item android:id="@android:id/background">
<shape android:shape="line">
<corners
android:radius="3dp"/>
<stroke
android:width="3dp"
android:color="@color/car_grey_300" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape android:shape="line">
<stroke
android:width="6dp"
android:color="@color/car_teal_700" />
</shape>
</clip>
</item>
</layer-list>

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 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.
-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/notification_ripple_untinted_color">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/notification_material_background_color" />
<corners
android:radius="@dimen/notification_shadow_radius"/>
</shape>
</item>
</ripple>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/notification_ripple_untinted_color">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/notification_material_background_color" />
<corners
android:radius="@dimen/notification_shadow_radius"/>
</shape>
</item>
</ripple>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ff6c6c6c" />
<corners
android:bottomRightRadius="16dp"
android:bottomLeftRadius="16dp"/>
</shape>

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="?android:attr/colorBackgroundFloating" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
<corners android:bottomLeftRadius="20dp"
android:bottomRightRadius="20dp"/>
</shape>

View file

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2016, 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.
*/
-->
<com.android.systemui.statusbar.car.CarNavigationBarView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="@drawable/system_bar_background">
<!-- phone.NavigationBarView has rot0 and rot90 but we expect the car head unit to have a fixed
rotation so skip this level of the heirarchy.
-->
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:clipChildren="false"
android:clipToPadding="false"
android:id="@+id/nav_buttons"
android:layout_gravity="center"
android:paddingTop="@dimen/navigation_bar_padding_top"
android:paddingLeft="@dimen/navigation_bar_padding_side"
android:paddingRight="@dimen/navigation_bar_padding_side"
android:animateLayoutChanges="true">
<!-- Buttons get populated here from a car_arrays.xml. -->
</LinearLayout>
<!-- lights out layout to match exactly -->
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:id="@+id/lights_out"
android:layout_gravity="center"
android:paddingTop="@dimen/navigation_bar_padding_top"
android:paddingLeft="@dimen/navigation_bar_padding_side"
android:paddingRight="@dimen/navigation_bar_padding_side"
android:visibility="gone">
<!-- Must match nav_buttons. -->
</LinearLayout>
</com.android.systemui.statusbar.car.CarNavigationBarView>

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2016, 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.
*/
-->
<com.android.systemui.statusbar.car.CarNavigationButton
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="@dimen/car_navigation_button_holder_width"
android:orientation="horizontal"
android:background="?android:attr/selectableItemBackgroundBorderless">
<com.android.keyguard.AlphaOptimizedImageButton
android:id="@+id/car_nav_button_icon"
android:layout_height="wrap_content"
android:layout_width="@dimen/car_navigation_button_width"
android:layout_centerInParent="true"
android:animateLayoutChanges="true"
android:scaleType="fitCenter">
</com.android.keyguard.AlphaOptimizedImageButton>
<com.android.keyguard.AlphaOptimizedImageButton
android:id="@+id/car_nav_button_more_icon"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/car_nav_button_icon"
android:animateLayoutChanges="true"
android:scaleType="fitCenter">
</com.android.keyguard.AlphaOptimizedImageButton>
</com.android.systemui.statusbar.car.CarNavigationButton>

View file

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2006, 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.
*/
-->
<com.android.systemui.statusbar.phone.PhoneStatusBarView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
android:id="@+id/status_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/status_bar_height"
android:background="@drawable/system_bar_background"
android:orientation="vertical"
android:focusable="false"
android:descendantFocusability="afterDescendants"
>
<ImageView
android:id="@+id/notification_lights_out"
android:layout_width="@dimen/status_bar_icon_size"
android:layout_height="match_parent"
android:paddingStart="6dip"
android:paddingBottom="2dip"
android:src="@drawable/ic_sysbar_lights_out_dot_small"
android:scaleType="center"
android:visibility="gone"
/>
<LinearLayout android:id="@+id/status_bar_contents"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="6dp"
android:paddingEnd="8dp"
android:orientation="horizontal"
>
<!-- The alpha of this area is controlled from both PhoneStatusBarTransitions and
PhoneStatusBar (DISABLE_NOTIFICATION_ICONS). -->
<com.android.systemui.statusbar.AlphaOptimizedFrameLayout
android:id="@+id/notification_icon_area"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"
android:visibility="gone" />
<com.android.keyguard.AlphaOptimizedLinearLayout android:id="@+id/system_icon_area"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>
<include layout="@layout/system_icons" />
<!-- Sort of a crude hack but we can't do much here without refactoring
system ui code. -->
<Space
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<com.android.systemui.statusbar.policy.Clock
android:id="@+id/clock"
android:textAppearance="@style/TextAppearance.StatusBar.Clock"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:singleLine="true"
android:paddingStart="@dimen/status_bar_clock_starting_padding"
android:paddingEnd="@dimen/status_bar_clock_end_padding"
android:gravity="center_vertical|end"
/>
</com.android.keyguard.AlphaOptimizedLinearLayout>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>

View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/volume_row_height"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="vertical"
android:paddingBottom="@dimen/volume_row_padding_bottom" >
<!-- don't need this view in car, the visibility is overriden by system UI, so set the
layout_height to 0dp.
TODO: figure out a better way to switch UI based on FEATURE_AUTOMOTIVE -->
<TextView
android:id="@+id/volume_row_header"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:ellipsize="end"
android:visibility="gone"
android:maxLines="1"
android:textSize="40sp"
android:textColor="?android:attr/textColorSecondary"
android:paddingStart="@dimen/volume_row_header_padding_start" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/line_item_height">
<com.android.keyguard.AlphaOptimizedImageButton
android:id="@+id/volume_row_icon"
style="@style/VolumeButtons"
android:tint="@color/car_grey_900"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:layout_width="@dimen/volume_icon_size"
android:layout_height="@dimen/volume_icon_size"
android:layout_marginStart="@dimen/car_keyline_1"
android:soundEffectsEnabled="false" />
<SeekBar
android:id="@+id/volume_row_slider"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/car_keyline_3"
android:progressDrawable="@drawable/car_ic_seekbar_track"
android:thumb="@drawable/car_ic_seekbar_thumb"
android:focusable="true"
android:focusableInTouchMode="true"/>
</FrameLayout>
</LinearLayout>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<resources>
<!-- The height of the header for a container containing child notifications. -->
<dimen name="notification_children_container_header_height">96dp</dimen>
<!-- The top margin for the notification children container in its non-expanded form. This
value is smaller than notification_children_container_header_height to bring the first
child closer so there is less wasted space. -->
<dimen name="notification_children_container_margin_top">88dp</dimen>
</resources>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2016, 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.
*/
-->
<resources>
<color name="status_bar_background_color">#ff000000</color>
<color name="system_bar_background_opaque">#ff0c1013</color>
<!-- The color of the ripples on the untinted notifications -->
<color name="notification_ripple_untinted_color">@color/ripple_material_dark</color>
</resources>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<resources>
<!-- The width of the panel holding the notification cards. -->
<dimen name="notification_panel_width">744dp</dimen>
</resources>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2016, 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.
*/
-->
<resources>
<!-- gap on either side of status bar notification icons -->
<dimen name="status_bar_icon_padding">8dp</dimen>
</resources>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<resources>
<!-- The width of panel holding the notification card. -->
<dimen name="notification_panel_width">744dp</dimen>
</resources>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<resources>
<!-- The width of panel holding the notification card. -->
<dimen name="notification_panel_width">522dp</dimen>
</resources>

View file

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2016, 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.
*/
-->
<resources>
<!-- There needs to be correspondence per index between these arrays, which means that if there
isn't a longpress action associated with a shortcut item, put in an empty item to make
sure everything lines up.
-->
<array name="car_facet_icons">
<item>@drawable/car_ic_navigation</item>
<item>@drawable/car_ic_phone</item>
<item>@drawable/car_ic_overview</item>
<item>@drawable/car_ic_music</item>
<item>@drawable/car_ic_car</item>
</array>
<array name="car_facet_intent_uris">
<!-- Launch the lenspicker for all the facets. The lens picker will trampoline into the last run app or display a list of valid apps -->
<item>intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x14000000;package=com.android.support.car.lenspicker;end</item>
<item>intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x14000000;package=com.android.support.car.lenspicker;end</item>
<item>intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x14000000;package=com.android.support.car.lenspicker;S.system_command=toggle_notifications;end</item>
<item>intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x14000000;package=com.android.support.car.lenspicker;end</item>
<item>intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x14000000;package=com.android.support.car.lenspicker;end</item>
</array>
<array name="car_facet_longpress_intent_uris">
<item></item>
<item></item>
<item></item>
<item></item>
<!-- Long pressing the overflow triggers a bug report -->
<item>intent:#Intent;component=com.google.android.car.bugreport/.BugReportActivity;end</item>
</array>
<array name="car_facet_category_filters">
<item>android.intent.category.APP_MAPS</item>
<item>android.intent.category.APP_MESSAGING</item>
<item></item>
<item>android.intent.category.APP_MUSIC</item>
<item></item>
</array>
<array name="car_facet_package_filters">
<item>com.android.car.mapsplaceholder</item>
<item>com.android.car.dialer</item>
<item>com.android.car.overview</item>
<item></item>
<item>com.android.car.hvac;com.android.settings;com.android.car.settings;com.android.vending;com.google.android.car.bugreport;com.google.android.car.kitchensink;com.android.car.systemupdater;org.chromium.webview_shell;com.android.contacts;org.codeaurora.bluetooth.bttestapp;com.google.android.projection.sink</item>
</array>
</resources>

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 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.
*/
-->
<resources>
<!-- System ui can't depend on car libs so redefine. -->
<color name="car_grey_50">#fffafafa</color>
<color name="docked_divider_background">@color/car_grey_50</color>
<color name="system_bar_background_opaque">#ff172026</color>
<color name="status_bar_background_color">#33000000</color>
<drawable name="system_bar_background">@color/status_bar_background_color</drawable>
<!-- The scrim color for the background of the notifications shade. -->
<color name="scrim_behind_color">#172026</color>
<!-- The color of the dividing line between grouped notifications. -->
<color name="notification_divider_color">@*android:color/notification_action_list</color>
<!-- The color of the ripples on the untinted notifications -->
<color name="notification_ripple_untinted_color">@color/ripple_material_light</color>
<color name="car_teal_700">#ff00796b</color>
<color name="car_grey_300">#ffe0e0e0</color>
<color name="car_grey_900">#ff212121</color>
</resources>

View file

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2016, 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.
*/
-->
<!-- Resource overrides for car system ui. -->
<resources>
<string name="config_statusBarComponent" translatable="false">com.android.systemui.statusbar.car.CarStatusBar</string>
<string name="config_systemUIFactoryComponent" translatable="false">com.android.systemui.car.CarSystemUIFactory</string>
<bool name="config_enableFullscreenUserSwitcher">true</bool>
<!-- Notifications on the car should not show the gear icon. Swiping should only dismiss the
cards. -->
<bool name="config_showNotificationGear">false</bool>
<!-- No need to draw a background around a notification because there is no gear icon. -->
<bool name="config_drawNotificationBackground">false</bool>
<!-- The notification shade should only be shown on a facet click and not by dragging. -->
<bool name="config_enableNotificationShadeDrag">false</bool>
<!-- There should not be the ability to clear all notifications with a button. -->
<bool name="config_enableNotificationsClearAll">false</bool>
<!-- Hide the notification shelf so that the cards in the notification center scroll smoothly
off-screen. -->
<bool name="config_showNotificationShelf">false</bool>
<!-- The notifications should always fade when being dismissed. -->
<bool name="config_fadeNotificationsOnDismiss">true</bool>
<!-- The entire notification row should be translated because the cards are smaller than the
width of the screen. If the row is not translated, then they will be clipped. -->
<bool name="config_translateNotificationContentsOnSwipe">false</bool>
<!-- The notifications should fade as they are being swiped off screen. -->
<bool name="config_fadeDependingOnAmountSwiped">true</bool>
<!-- The expand icon should be displayed at the top right corner of the notifications. -->
<bool name="config_showNotificationExpandButtonAtEnd">true</bool>
<!-- A notification card that has been scrolled off screen should not be clipped in height. This
maintains the illusion that the cards are being scrolled underneath the status bar
shelf. -->
<bool name="config_clipNotificationScrollToTop">false</bool>
<!-- The auto notification have rounded corners. Ensure that any content is clipped to these
corners. -->
<bool name="config_clipNotificationsToOutline">true</bool>
<!-- Notifications should always be in their expanded state so that the actions are visible.
This will make it easier for a auto user to interact with them. -->
<bool name="config_alwaysExpandNonGroupedNotifications">true</bool>
<!-- Auto does not allow notifications to be toggled to and from their expanded states to
reduce driver distraction. -->
<bool name="config_enableNonGroupedNotificationExpand">false</bool>
<!-- There should always be a dividing line between notifications. -->
<bool name="config_showDividersWhenGroupNotificationExpanded">true</bool>
<!--- Hide the dividing lines when the notification group is expanding. -->
<bool name="config_hideDividersDuringTransition">true</bool>
<!-- Child notifications are displayed with no dividing space between them in auto, so disable
the shadow. -->
<bool name="config_enableShadowOnChildNotifications">false</bool>
<!-- Keep the notification background when the container has been expanded. The children will
expand inline within the container, so it can keep its original background. -->
<bool name="config_showGroupNotificationBgWhenExpanded">true</bool>
</resources>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2016, 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.
*/
-->
<resources>
<!-- These next two work together, if you enable this first one you need to provide an intent
uri that will be launched into the docked window. -->
<bool name="config_enablePersistentDockedActivity">false</bool>
<string name="config_persistentDockedActivityIntentUri" translatable="false"></string>
</resources>

View file

@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2016, 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.
*/
-->
<resources>
<!-- The alpha for the scrim behind the notification shade. This value is 1 so that the
scrim has no transparency. -->
<item name="scrim_behind_alpha" format="float" type="dimen">1.0</item>
<!-- The amount by which to scale up the status bar icons. -->
<item name="status_bar_icon_scale_factor" format="float" type="dimen">2.3</item>
<!-- The font size for the clock in the status bar. -->
<dimen name="status_bar_clock_size">42sp</dimen>
<!-- The starting padding for the clock in the status bar. -->
<dimen name="status_bar_clock_starting_padding">24dp</dimen>
<!-- The end padding for the clock in the status bar. -->
<dimen name="status_bar_clock_end_padding">@dimen/status_bar_clock_starting_padding</dimen>
<!-- size at which Notification icons will be drawn in the status bar -->
<dimen name="status_bar_icon_drawing_size">32dp</dimen>
<!-- Starting margin before the signal cluster -->
<dimen name="signal_cluster_margin_start">8dp</dimen>
<!-- Padding between signal cluster and battery icon -->
<dimen name="signal_cluster_battery_padding">@dimen/status_bar_clock_starting_padding</dimen>
<!-- Spacing after the wifi signals that is present if there are any icons following it. -->
<dimen name="status_bar_wifi_signal_spacer_width">@dimen/status_bar_clock_starting_padding</dimen>
<!-- Spacing before the airplane mode icon if there are any icons preceding it. -->
<dimen name="status_bar_airplane_spacer_width">@dimen/status_bar_clock_starting_padding</dimen>
<!-- Padding at the end of the view that displays the mobile signal icons. This value should
be double the signal_cluster_margin_start. -->
<dimen name="mobile_signal_group_end_padding">16dp</dimen>
<!-- Padding between the mobile data type and the strength indicator. -->
<dimen name="mobile_data_icon_start_padding">@dimen/mobile_signal_group_end_padding</dimen>
<!-- gap on either side of status bar notification icons -->
<dimen name="status_bar_icon_padding">8dp</dimen>
<!-- Standard image button size for volume dialog buttons -->
<dimen name="volume_button_size">84dp</dimen>
<!-- The maximum width allowed for the volume dialog. For auto, we allow this to span a good
deal of the screen. This value accounts for the side margins. -->
<dimen name="volume_dialog_panel_width">1920dp</dimen>
<dimen name="car_navigation_button_width">56dp</dimen>
<dimen name="car_navigation_button_holder_width">96dp</dimen>
<dimen name="navigation_bar_padding_top">0dp</dimen>
<dimen name="navigation_bar_padding_side">264dp</dimen>
<!-- Largest size an avatar might need to be drawn in the user picker, status bar, or
quick settings header -->
<dimen name="max_avatar_size">128dp</dimen>
<!-- The width of panel holding the notification card. -->
<dimen name="notification_panel_width">522dp</dimen>
<!-- The width of the quick settings panel. -1 for match_parent. -->
<dimen name="qs_panel_width">-1px</dimen>
<!-- Height of a small notification in the status bar-->
<dimen name="notification_min_height">192dp</dimen>
<!-- Height of a small notification in the status bar which was used before android N -->
<dimen name="notification_min_height_legacy">192dp</dimen>
<!-- Height of a large notification in the status bar -->
<dimen name="notification_max_height">400dp</dimen>
<!-- Height of a heads up notification in the status bar for legacy custom views -->
<dimen name="notification_max_heads_up_height_legacy">400dp</dimen>
<!-- Height of a heads up notification in the status bar -->
<dimen name="notification_max_heads_up_height">400dp</dimen>
<!-- Height of the status bar header bar -->
<dimen name="status_bar_header_height">54dp</dimen>
<!-- The height of the divider between the individual notifications. -->
<dimen name="notification_divider_height">16dp</dimen>
<!-- The height of the divider between the individual notifications when the notification
wants it to be increased. This value is the same as notification_divider_height so that
the spacing between all notifications will always be the same. -->
<dimen name="notification_divider_height_increased">@dimen/notification_divider_height</dimen>
<!-- The alpha of the dividing line between child notifications of a notification group. -->
<item name="notification_divider_alpha" format="float" type="dimen">1.0</item>
<!-- The width of each individual notification card. -->
<dimen name="notification_child_width">522dp</dimen>
<!-- The top margin of the notification panel. -->
<dimen name="notification_panel_margin_top">32dp</dimen>
<!-- The bottom margin of the panel that holds the list of notifications. -->
<dimen name="notification_panel_margin_bottom">@dimen/notification_divider_height</dimen>
<!-- The corner radius of the shadow behind the notification. -->
<dimen name="notification_shadow_radius">16dp</dimen>
<!-- The amount of space below the notification list. This value is 0 so the list scrolls
all the way to the bottom. -->
<dimen name="close_handle_underlap">0dp</dimen>
<!-- The height of the divider between the individual notifications in a notification group. -->
<dimen name="notification_children_container_divider_height">1dp</dimen>
<!-- The height of the header for a container containing child notifications. -->
<dimen name="notification_children_container_header_height">76dp</dimen>
<!-- The top margin for the notification children container in its non-expanded form. This
value is smaller than notification_children_container_header_height to bring the first
child closer so there is less wasted space. -->
<dimen name="notification_children_container_margin_top">68dp</dimen>
<!-- The height of the quick settings footer that holds the user switcher, settings icon,
etc. in the car setting.-->
<dimen name="qs_footer_height">74dp</dimen>
<dimen name="volume_dialog_side_margin">@dimen/side_margin</dimen>
<dimen name="volume_dialog_elevation">6dp</dimen>
<dimen name="volume_dialog_row_margin_end">@dimen/car_keyline_3</dimen>
<dimen name="volume_dialog_row_padding_end">0dp</dimen>
<dimen name="line_item_height">128dp</dimen>
<dimen name="volume_icon_size">96dp</dimen>
<dimen name="side_margin">148dp</dimen>
<dimen name="car_keyline_1">24dp</dimen>
<dimen name="car_keyline_2">96dp</dimen>
<dimen name="car_keyline_3">128dp</dimen>
</resources>

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2016, 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.
*/
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The style for the volume icons in the volume dialog. This style makes the icon scale to
fit its container since auto wants the icon to be larger. The padding is added to make it
so the icon does not press along the edges of the dialog. -->
<style name="VolumeButtons" parent="@android:style/Widget.Material.Button.Borderless">
<item name="android:background">@drawable/btn_borderless_rect</item>
<item name="android:scaleType">fitCenter</item>
<item name="android:padding">22dp</item>
</style>
</resources>

View file

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2014, The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted (subject to the limitations in the
disclaimer below) provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the Linux Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<resources>
<!-- Disable source profiles (typically used in phone) -->
<bool name="profile_supported_a2dp">false</bool>
<bool name="profile_supported_hs_hfp">false</bool>
<bool name="profile_supported_hid">false</bool>
<bool name="profile_supported_pbap">false</bool>
<bool name="profile_supported_map">false</bool>
<bool name="profile_supported_hdp">false</bool>
<bool name="profile_supported_opp">false</bool>
<bool name="enable_phone_policy">false</bool>
<!-- Enable sink profiles (typically used on a CarKitt) -->
<bool name="profile_supported_hfpclient">true</bool>
<bool name="hfp_client_connection_service_enabled">true</bool>
<bool name="profile_supported_avrcp_controller">true</bool>
<bool name="profile_supported_a2dp_sink">true</bool>
<bool name="profile_supported_pbapclient">true</bool>
<bool name="profile_supported_pan">true</bool>
<bool name="profile_supported_mapmce">true</bool>
</resources>

View file

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<!-- This layout mirrors grant_permissions.xml in PackageInstaller. The difference between the
two is text sizes and spacing. -->
<com.android.packageinstaller.permission.ui.ManualLayoutFrame
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false">
<LinearLayout
android:id="@+id/dialog_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="96dp"
android:orientation="vertical">
<FrameLayout
android:id="@+id/desc_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="24dp"
android:paddingStart="22dp"
android:paddingEnd="16dp"
android:background="?android:attr/colorBackgroundFloating">
<include
layout="@layout/permission_description" />
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="8dp"
android:paddingStart="22dp"
android:paddingEnd="16dp"
android:background="?android:attr/colorBackgroundFloating">
<CheckBox
android:id="@+id/do_not_ask_checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/auto_permission_checkbox_margin_top"
android:layout_marginBottom="@dimen/auto_permission_checkbox_margin_bottom"
android:layout_marginStart="@dimen/auto_permission_text_keyline"
android:text="@string/never_ask_again"
android:textColor="?android:attr/textColorSecondary"
android:textSize="@dimen/auto_permission_button_bar_text_size"
android:visibility="gone">
</CheckBox>
<com.android.packageinstaller.permission.ui.ButtonBarLayout
android:id="@+id/button_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:orientation="horizontal"
android:paddingStart="2dp"
android:paddingTop="16dp">
<TextView
android:id="@+id/current_page_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:paddingStart="@dimen/auto_permission_text_keyline"
android:paddingBottom="4dp"
android:paddingEnd="12dp"
android:singleLine="true"
android:textSize="@dimen/auto_permission_button_bar_text_size"
android:textColor="?android:attr/textColorSecondary"
android:visibility="invisible">
</TextView>
<Space
android:id="@*android:id/spacer"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="invisible" >
</Space>
<Button
android:id="@+id/permission_deny_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/buttonBarButtonStyle"
android:padding="@dimen/auto_permission_button_padding"
android:textSize="@dimen/auto_permission_button_bar_text_size"
android:text="@string/grant_dialog_button_deny" >
</Button>
<Button
android:id="@+id/permission_allow_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/buttonBarButtonStyle"
android:layout_marginStart="8dp"
android:padding="@dimen/auto_permission_button_padding"
android:textSize="@dimen/auto_permission_button_bar_text_size"
android:text="@string/grant_dialog_button_allow" >
</Button>
</com.android.packageinstaller.permission.ui.ButtonBarLayout>
</LinearLayout>
</LinearLayout>
</com.android.packageinstaller.permission.ui.ManualLayoutFrame>

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<!-- This file matches permission_description.xml in PakcageInstaller, except with adjusted font
sizes. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/perm_desc_root"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- No icon for Android Auto Embedded, so this visibility is GONE. The view remains so that
no code change needs to occur in the GrantPermissionsViewHandlerImpl. -->
<ImageView
android:id="@+id/permission_icon"
android:visibility="gone"
android:layout_width="0dp"
android:layout_height="0dp" >
</ImageView>
<TextView
android:id="@+id/permission_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:paddingStart="@dimen/auto_permission_text_keyline"
android:paddingEnd="8dp"
android:textSize="@dimen/auto_permission_text_size" >
</TextView>
</LinearLayout>

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<resources>
<!-- The text size for the main text explaining what permission to allow or deny. -->
<dimen name="auto_permission_text_size">36sp</dimen>
<!-- The text size for the text along the button bar. This includes the "Allow"/"Deny" buttons.
This text size is slightly smaller than auto_permission_text_size because they are in
all-caps. The smaller text size makes the text sizes look the same. -->
<dimen name="auto_permission_button_bar_text_size">28sp</dimen>
<!-- The padding around the Allow/Deny buttons. This is larger to make the buttons easier to
click. -->
<dimen name="auto_permission_button_padding">16dp</dimen>
<!-- The starting keyline for all text in the permission dialog. -->
<dimen name="auto_permission_text_keyline">16dp</dimen>
<!-- The top margin before the "Don't ask again" checkbox. -->
<dimen name="auto_permission_checkbox_margin_top">16dp</dimen>
<!-- The bottom margin after the "Don't ask again" checkbox. This value is negative to move
the buttons below the checkbox up. Normally the buttons would have padding to separate
it from the text above them, but the checkbox takes care of this now. -->
<dimen name="auto_permission_checkbox_margin_bottom">-24dp</dimen>
</resources>

View file

@ -0,0 +1,4 @@
<resources>
<!-- default activity whitelist which are allowed while driving -->
<string name="defauiltActivityWhitelist">com.android.systemui,com.android.car.dialer,com.android.car.hvac,com.android.car.media,com.android.car.radio,com.android.support.car.lenspicker,com.google.android.setupwizard</string>
</resources>

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 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.
-->
<!-- Telecomm resources that may need to be customized for different hardware or product
builds. -->
<resources>
<!-- Determines if the current device should allow emergency numbers to be logged in the
call log. Some carriers require that emergency calls *not* be logged, presumably to
avoid the risk of accidental redialing from the call log UI.
The default is false. -->
<bool name="allow_emergency_numbers_in_call_log">false</bool>
<!-- Determine whether we want to play local DTMF tones in a call, or just let the radio/BP
handle playing of the tones. -->
<bool name="allow_local_dtmf_tones">true</bool>
<!-- Package name for the default in-call UI and dialer [DO NOT TRANSLATE] -->
<string name="ui_default_package" translatable="false">com.android.car.dialer</string>
<!-- Class name for the default in-call UI Service [DO NOT TRANSLATE] -->
<string name="incall_default_class" translatable="false">com.android.car.dialer.telecom.InCallServiceImpl</string>
<!-- Class name for the default main dialer activity [DO NOT TRANSLATE] -->
<string name="dialer_default_class" translatable="false">com.android.car.dialer.TelecomActivity</string>
<!-- Flag indicating if the tty is enabled -->
<bool name="tty_enabled">false</bool>
</resources>

View file

@ -0,0 +1,191 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2017 Google Inc.
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.
-->
<!--
The wizard:uris recorded here have the inconvenience of being generated by hand, but they allow
for the full spread of launch flags (we need FLAG_ACTIVITY_NEW_TASK [0x10000000]), where the
<intent> tag processed by Intent.parseIntent() does not.
adb shell am to-intent-uri -a com.android.setupwizard.WELCOME -f 0x10000000 \-\-ez firstRun true
-->
<WizardScript xmlns:wizard="http://schemas.android.com/apk/res/com.google.android.setupwizard"
wizard:firstAction="device_owner_warning">
<!-- Security warning [RECOMMENDED] -->
<WizardAction id="device_owner_warning"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.DEVICE_OWNER_WARNING;end">
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="check_frp" />
<result wizard:action="factory_reset" />
</WizardAction>
<WizardAction id="factory_reset"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.FACTORY_RESET;end">
<!-- Factory reset should cause a reboot, but if it returns unexpectedly,
continue on to check_frp -->
<result wizard:action="check_frp" />
</WizardAction>
<!-- Wait to check factory reset protection status [RECOMMENDED] -->
<WizardAction id="check_frp"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.CHECK_FRP;end">
<result wizard:action="bluetooth_settings" />
</WizardAction>
<!-- Bluetooth selection [REQUIRED, CUSTOMIZABLE] -->
<WizardAction id="bluetooth_settings"
wizard:uri="intent:#Intent;action=com.android.car.setupwizard.BLUETOOTH_SETTINGS;end">
<result wizard:action="network_settings" />
</WizardAction>
<!-- Users must be given the opportunity to set up an internet connection, using the given
screens or a custom flow. -->
<!-- Network selection [REQUIRED, CUSTOMIZABLE] -->
<WizardAction id="network_settings"
wizard:uri="intent:#Intent;action=com.android.setupwizard.NETWORK_SETTINGS;end">
<result wizard:name="see_all_wifi"
wizard:resultCode="101"
wizard:action="wifi_settings" />
<result wizard:name="use_cellular"
wizard:resultCode="102"
wizard:action="activate_mobile_data" />
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="no_network_flow" />
<result wizard:action="captive_portal" />
</WizardAction>
<!-- Mobile data activation -->
<WizardAction id="activate_mobile_data"
wizard:uri="intent:#Intent;action=com.android.setupwizard.ACTIVATE_MOBILE_DATA;end">
<result wizard:action="captive_portal" />
</WizardAction>
<!-- Wi-Fi setup -->
<WizardAction id="wifi_settings"
wizard:uri="intent:#Intent;action=com.android.setupwizard.WIFI_SETTINGS;end">
<result wizard:action="captive_portal" />
</WizardAction>
<!-- Resolve captive portal access, and wait for check-in [REQUIRED] -->
<WizardAction id="captive_portal"
wizard:uri="intent:#Intent;action=com.android.setupwizard.CAPTIVE_PORTAL;end">
<result wizard:action="gms_checkin" />
</WizardAction>
<WizardAction id="gms_checkin"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.GMS_CHECKIN;end">
<result wizard:action="ota_update" />
</WizardAction>
<!-- Update system packages [REQUIRED] -->
<WizardAction id="ota_update"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.OTA_UPDATE;end">
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="early_update" />
<result wizard:action="system_update" />
</WizardAction>
<WizardAction id="system_update"
wizard:uri="intent:#Intent;action=android.settings.SYSTEM_UPDATE_SETTINGS;end">
<!-- System update should cause a reboot, but if it returns unexpectedly, continue on to
early update -->
<result wizard:action="early_update" />
</WizardAction>
<!-- Update other important packages [REQUIRED] -->
<WizardAction id="early_update"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.EARLY_UPDATE;end">
<result wizard:action="zero_touch" />
</WizardAction>
<!-- Zero touch provisioning (for enterprise) [RECOMMENDED] -->
<WizardAction id="zero_touch"
wizard:script="android.resource://com.google.android.setupwizard/xml/wizard_script_zero_touch_flow" >
<result wizard:name="dpm_user_complete"
wizard:resultCode="111" />
<result wizard:action="load_account_intent" />
</WizardAction>
<!-- Add an account [REQUIRED] -->
<WizardAction id="load_account_intent"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.LOAD_ADD_ACCOUNT_INTENT;B.showTapAndGo=false;end">
<result wizard:action="account_setup" />
</WizardAction>
<WizardAction id="account_setup"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.ACCOUNT_SETUP;end">
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="no_account_flow" />
<!-- Alternate flow if managed provisioning already set the user up (for enterprise) [RECOMMENDED] -->
<result wizard:name="dpm_user_complete"
wizard:resultCode="111" />
<result wizard:action="gms_account_checkin" />
</WizardAction>
<!-- Checkin with Gservices using account. If it fails, VPA will not be available. [REQUIRED] -->
<WizardAction id="gms_account_checkin"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.GMS_ACCOUNT_CHECKIN;end">
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="mfm_check" />
<result wizard:action="start_vpa" />
</WizardAction>
<!-- Initiate VPA (required for Play Auto-Installs) [RECOMMENDED] -->
<WizardAction id="start_vpa"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.START_VPA;end">
<result wizard:action="mfm_check" />
</WizardAction>
<!-- Branch to script for setting up with or without an account [REQUIRED] -->
<WizardAction id="mfm_check"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.ACCOUNT_CHECK;end">
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="no_account_flow" />
<result wizard:action="account_flow" />
</WizardAction>
<!-- Set up with an account [REQUIRED] -->
<WizardAction id="account_flow"
wizard:script="android.resource://com.google.android.setupwizard/xml/wizard_script_new_device_account_flow" />
<!-- Set up without an account [REQUIRED] -->
<WizardAction id="no_account_flow"
wizard:script="android.resource://com.google.android.setupwizard/xml/wizard_script_no_account_flow" />
<!-- Set up without a network connection [RECOMMENDED] -->
<WizardAction id="no_network_flow"
wizard:script="android.resource://com.google.android.setupwizard/xml/wizard_script_no_network_flow" />
</WizardScript>

View file

@ -0,0 +1,163 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2017 Google Inc.
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.
-->
<!--
The wizard:uris recorded here have the inconvenience of being generated by hand, but they allow
for the full spread of launch flags (we need FLAG_ACTIVITY_NEW_TASK [0x10000000]), where the
<intent> tag processed by Intent.parseIntent() does not.
adb shell am to-intent-uri -a com.android.setupwizard.WELCOME -f 0x10000000 \-\-ez firstRun true
-->
<WizardScript xmlns:wizard="http://schemas.android.com/apk/res/com.google.android.setupwizard"
wizard:firstAction="oem_pre_setup">
<!-- Preliminary setup for OEMs [CUSTOMIZABLE] -->
<WizardAction id="oem_pre_setup"
wizard:uri="intent:#Intent;action=com.android.setupwizard.OEM_PRE_SETUP;end">
<result wizard:action="secondary_user_warning" />
</WizardAction>
<!-- Secondary user warning [RECOMMENDED, CUSTOMIZABLE] -->
<WizardAction id="secondary_user_warning"
wizard:uri="intent:#Intent;action=com.android.setupwizard.USER_WARNING;end">
<result wizard:name="dpm_user_complete"
wizard:resultCode="111"
wizard:action="check_user_unlock_dpm_user_complete" />
<result wizard:action="check_user_unlock" />
</WizardAction>
<WizardAction id="check_user_unlock_dpm_user_complete"
wizard:uri="intent:#Intent;action=com.android.setupwizard.CHECK_USER_UNLOCK;end">
<result wizard:action="oem_post_setup" />
</WizardAction>
<WizardAction id="check_user_unlock"
wizard:uri="intent:#Intent;action=com.android.setupwizard.CHECK_USER_UNLOCK;end">
<result wizard:action="bluetooth_settings" />
</WizardAction>
<!-- Bluetooth selection [REQUIRED, CUSTOMIZABLE] -->
<WizardAction id="bluetooth_settings"
wizard:uri="intent:#Intent;action=com.android.car.setupwizard.BLUETOOTH_SETTINGS;end">
<result wizard:action="network_settings" />
</WizardAction>
<!-- Network selection [REQUIRED, CUSTOMIZABLE] -->
<WizardAction id="network_settings"
wizard:uri="intent:#Intent;action=com.android.setupwizard.NETWORK_SETTINGS;end">
<result wizard:name="see_all_wifi"
wizard:resultCode="101"
wizard:action="wifi_settings" />
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="no_account_flow" />
<result wizard:action="captive_portal" />
</WizardAction>
<!-- Wi-Fi setup [REQUIRED, CUSTOMIZABLE] -->
<WizardAction id="wifi_settings"
wizard:uri="intent:#Intent;action=com.android.setupwizard.WIFI_SETTINGS;end">
<result wizard:action="captive_portal" />
</WizardAction>
<!-- Resolve captive portal access, and wait for check-in [REQUIRED] -->
<WizardAction id="captive_portal"
wizard:uri="intent:#Intent;action=com.android.setupwizard.CAPTIVE_PORTAL;end">
<result wizard:action="gms_checkin" />
</WizardAction>
<WizardAction id="gms_checkin"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.GMS_CHECKIN;end">
<result wizard:action="load_account_intent" />
</WizardAction>
<!-- Add an account [REQUIRED] -->
<WizardAction id="load_account_intent"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.LOAD_ADD_ACCOUNT_INTENT;end">
<result wizard:action="account_setup" />
</WizardAction>
<WizardAction id="account_setup"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.ACCOUNT_SETUP;end">
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="no_account_flow" />
<!-- Alternate flow if managed provisioning already set the user up (for enterprise) [RECOMMENDED] -->
<result wizard:name="dpm_user_complete"
wizard:resultCode="111"
wizard:action="oem_post_setup" />
<result wizard:action="gms_account_checkin" />
</WizardAction>
<!-- Checkin with Gservices using account. If it fails, VPA will not be available. [REQUIRED] -->
<WizardAction id="gms_account_checkin"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.GMS_ACCOUNT_CHECKIN;end">
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="mfm_check" />
<result wizard:action="start_vpa" />
</WizardAction>
<!-- Initiate VPA (required for Play Auto-Installs) [RECOMMENDED] -->
<WizardAction id="start_vpa"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.START_VPA;end">
<result wizard:action="mfm_check" />
</WizardAction>
<!-- Branch to script for setting up with or without an account [REQUIRED] -->
<WizardAction id="mfm_check"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.ACCOUNT_CHECK;end">
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="no_account_flow" />
<result wizard:action="account_flow" />
</WizardAction>
<!-- Set up with an account [REQUIRED] -->
<WizardAction id="account_flow"
wizard:script="android.resource://com.google.android.setupwizard/xml/wizard_script_user_account_flow">
<result wizard:action="oem_post_setup" />
</WizardAction>
<!-- Set up without an account [REQUIRED] -->
<WizardAction id="no_account_flow"
wizard:script="android.resource://com.google.android.setupwizard/xml/wizard_script_user_no_account_flow">
<result wizard:action="oem_post_setup" />
</WizardAction>
<!-- OEM completion [CUSTOMIZABLE] -->
<WizardAction id="oem_post_setup"
wizard:uri="intent:#Intent;action=com.android.setupwizard.OEM_POST_SETUP;end">
<result wizard:action="exit" />
</WizardAction>
<!-- Leave Setup Wizard [REQUIRED] -->
<WizardAction id="exit"
wizard:uri="intent:#Intent;action=com.android.setupwizard.EXIT;end" />
</WizardScript>

View file

@ -0,0 +1 @@
# Classes which are preloaded by com.android.internal.os.ZygoteInit.

View file

@ -0,0 +1,4 @@
# HALs
attribute hal_vehicle;
attribute hal_vehicle_client;
attribute hal_vehicle_server;

View file

@ -0,0 +1,3 @@
# Ignore personality-8 denials.
dontaudit domain kernel:system module_request;

View file

@ -0,0 +1,10 @@
###################################
# System files
#
/system/bin/vehicle_monitor_service u:object_r:vms_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.automotive\.vehicle@2\.0-service u:object_r:hal_vehicle_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.automotive\.vehicle@2\.1-service u:object_r:hal_vehicle_default_exec:s0
###################################

View file

@ -0,0 +1,3 @@
# HwBinder IPC from client to server, and callbacks
binder_call(hal_vehicle_client, hal_vehicle_server)
binder_call(hal_vehicle_server, hal_vehicle_client)

View file

@ -0,0 +1,9 @@
# vehicle subsystem
type hal_vehicle_default, domain;
hal_server_domain(hal_vehicle_default, hal_vehicle)
# may be started by init
type hal_vehicle_default_exec, exec_type, file_type;
init_daemon_domain(hal_vehicle_default)
allow hal_vehicle_default car_service:service_manager { add };

View file

@ -0,0 +1,2 @@
# Allow legacy sdcard for creating directory symlinks
allow init tmpfs:lnk_file create_file_perms;

View file

@ -0,0 +1 @@
dontaudit netd self:capability sys_module;

View file

@ -0,0 +1 @@
hal_client_domain(priv_app, hal_vehicle)

View file

@ -0,0 +1,3 @@
type hw_cabl_prop, property_type;
type wlan_driver_prop, property_type;
type car_prop, property_type;

View file

@ -0,0 +1,4 @@
hw.cabl. u:object_r:hw_cabl_prop:s0
wlan.driver. u:object_r:wlan_driver_prop:s0
boot.car_service_created u:object_r:car_prop:s0

View file

@ -0,0 +1 @@
type car_service, service_manager_type;

View file

@ -0,0 +1 @@
com.android.car.vehiclenetwork.IVehicleNetwork u:object_r:car_service:s0

View file

@ -0,0 +1,3 @@
hal_client_domain(system_app, hal_vehicle)
set_prop(system_app, car_prop)

View file

@ -0,0 +1,4 @@
# Set wlan.driver.* properties.
set_prop(system_server, wlan_driver_prop)
dontaudit system_server self:capability sys_module;

View file

@ -0,0 +1,4 @@
type vehicle_monitor_service_exec, exec_type, file_type;
type vehicle_monitor_service, domain;
init_daemon_domain(vehicle_monitor_service)

View file

@ -0,0 +1,4 @@
type vehicle_network_service_exec, exec_type, file_type;
type vehicle_network_service, domain;
init_daemon_domain(vehicle_network_service)

View file

@ -0,0 +1,11 @@
# Vehicle monitor service
type vms, domain;
type vms_exec, exec_type, file_type;
allow vms system_app:binder { call };
allow vms car_service:service_manager { add };
allow vms priv_app:binder { call };
init_daemon_domain(vms)
binder_use(vms);