Merge "Fix density for tangorpro_ui_portrait_car_ext" into main
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
index 58b4d06..b6e8475 100644
--- a/AndroidProducts.mk
+++ b/AndroidProducts.mk
@@ -22,6 +22,7 @@
     $(LOCAL_DIR)/raven_car/aosp_raven_car.mk \
     $(LOCAL_DIR)/redfin_car/aosp_redfin_car.mk \
     $(LOCAL_DIR)/sunfish_car/aosp_sunfish_car.mk \
+    $(LOCAL_DIR)/husky_car/aosp_husky_car.mk \
     $(LOCAL_DIR)/tangorpro_car/aosp_tangorpro_car.mk
 
 
@@ -33,4 +34,5 @@
     aosp_raven_car-trunk_staging-userdebug \
     aosp_redfin_car-trunk_staging-userdebug \
     aosp_sunfish_car-trunk_staging-userdebug \
+    aosp_husky_car-trunk_staging-userdebug \
     aosp_tangorpro_car-trunk_staging-userdebug
diff --git a/husky_car/BoardConfig.mk b/husky_car/BoardConfig.mk
new file mode 100644
index 0000000..62c8094
--- /dev/null
+++ b/husky_car/BoardConfig.mk
@@ -0,0 +1,19 @@
+#
+# Copyright (C) 2023 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.
+#
+
+# * TARGET_SCREEN_DENSITY is scaled down by 1.9x
+
+TARGET_SCREEN_DENSITY := 252
diff --git a/husky_car/aosp_husky_car.mk b/husky_car/aosp_husky_car.mk
new file mode 100644
index 0000000..1d67bf1
--- /dev/null
+++ b/husky_car/aosp_husky_car.mk
@@ -0,0 +1,28 @@
+#
+# Copyright 2023 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.
+#
+
+DEVICE_IS_64BIT_ONLY := true
+PIXEL_2023_GEN := true
+
+$(call inherit-product, device/google_car/common/pre_google_car.mk)
+$(call inherit-product, device/google_car/husky_car/device-husky-car.mk)
+$(call inherit-product, device/google_car/common/post_google_car.mk)
+
+PRODUCT_NAME := aosp_husky_car
+PRODUCT_DEVICE := husky
+PRODUCT_MODEL := AOSP on husky
+PRODUCT_BRAND := Android
+PRODUCT_MANUFACTURER := Google
diff --git a/husky_car/device-husky-car.mk b/husky_car/device-husky-car.mk
new file mode 100644
index 0000000..cafff23
--- /dev/null
+++ b/husky_car/device-husky-car.mk
@@ -0,0 +1,43 @@
+#
+# Copyright 2023 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.
+#
+
+PHONE_CAR_BOARD_PRODUCT := husky_car
+
+$(call inherit-product, packages/services/Car/car_product/build/car.mk)
+
+$(call inherit-product, device/google/shusky/husky_generic.mk)
+
+#include device/google/gs101/uwb/uwb.mk
+
+PRODUCT_PRODUCT_PROPERTIES+= \
+    ro.adb.secure=0
+
+
+PRODUCT_PRODUCT_PROPERTIES += \
+    ro.sys.multi_client_ime=com.example.android.multiclientinputmethod/.MultiClientInputMethod \
+    persist.debug.multi_client_ime=com.example.android.multiclientinputmethod/.MultiClientInputMethod \
+    boot.animation.displays=4630947239236256904,4630946674560563842 \
+
+PRODUCT_PACKAGES += \
+    MultiClientInputMethod \
+    MultiDisplaySecondaryHomeTestLauncher \
+    MultiDisplayTest \
+
+PRODUCT_PACKAGE_OVERLAYS += \
+    device/google_car/husky_car/overlay
+
+PRODUCT_PACKAGES += \
+    librs_jni
diff --git a/husky_car/overlay/frameworks/base/core/res/res/values/config.xml b/husky_car/overlay/frameworks/base/core/res/res/values/config.xml
new file mode 100644
index 0000000..68630c0
--- /dev/null
+++ b/husky_car/overlay/frameworks/base/core/res/res/values/config.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2022, 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">
+    <!-- This is the default launcher package with an activity to use on secondary displays that
+         support system decorations.
+         This launcher package must have an activity that supports multiple instances and has
+         corresponding launch mode set in AndroidManifest.
+         {@see android.view.Display#FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS} -->
+    <string name="config_secondaryHomePackage" translatable="false">com.android.car.multidisplay</string>
+
+    <!-- Whether the system enables per-display focus. If the system has the input method for each
+         display, this value should be true. -->
+    <bool name="config_perDisplayFocusEnabled">true</bool>
+    <!-- True if the device supports system decorations on secondary displays. -->
+    <bool name="config_supportsSystemDecorsOnSecondaryDisplays">true</bool>
+
+    <!-- Whether to only install system packages on a user if they're allow-listed for that user
+         type. These are flags and can be freely combined.
+         0  - disable allow-list (install all system packages; no logging)
+         1  - enforce (only install system packages if they are allow-listed)
+         2  - log (log non-allow-listed packages)
+         4  - any package not mentioned in the allow-list file is implicitly allow-listed on all users
+         8  - same as 4, but just for the SYSTEM user
+         16 - ignore OTAs (don't install system packages during OTAs)
+         Common scenarios:
+          - to enable feature (fully enforced) for a complete allow-list: 1
+          - to enable feature for an incomplete allow-list (so use implicit allow-list mode): 5
+          - to enable feature but implicitly allow-list for SYSTEM user to ease local development: 9
+          - to disable feature completely if it had never been enabled: 16
+          - to henceforth disable feature and try to undo its previous effects: 0
+        Note: This list must be kept current with PACKAGE_WHITELIST_MODE_PROP in
+        frameworks/base/services/core/java/com/android/server/pm/UserSystemPackageInstaller.java
+        Package allow-list disabled for testing profile user as default allow-list does not
+        support PROFILE user. -->
+    <integer name="config_userTypePackageWhitelistMode">2</integer>
+
+</resources>