# Copyright (C) 2011 Linaro Limited
#
# 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.

PRODUCT_COPY_FILES := \
	device/linaro/snowball/init.partitions.rc:root/init.partitions.rc \
        device/linaro/snowball/vold.fstab:system/etc/vold.fstab

PRODUCT_COPY_FILES += \
        device/linaro/snowball/init.st-ericssonsnowballplatform.rc:root/init.st-ericssonsnowballplatform.rc \
        device/linaro/snowball/init.st-ericssonsnowballplatform.usb.rc:root/init.st-ericssonsnowballplatform.usb.rc \
        device/linaro/snowball/ueventd.st-ericssonsnowballplatform.rc:root/ueventd.st-ericssonsnowballplatform.rc

PRODUCT_COPY_FILES += \
        frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
        device/linaro/common/android.hardware.bluetooth.xml:system/etc/permissions/android.hardware.bluetooth.xml

# Input device calibration files
PRODUCT_COPY_FILES += \
       device/linaro/snowball/ftk.idc:system/usr/idc/ftk.idc

PRODUCT_PACKAGES := \
        make_ext4fs \
        com.android.future.usb.accessory \
        sensors.snowball \
	GPSUI

PRODUCT_PROPERTY_OVERRIDES += \
        debug.sf.no_hw_vsync=1 \
        hwui.render_dirty_regions=false

PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
	persist.sys.usb.config=mass_storage

PRODUCT_CHARACTERISTICS := tablet,nosdcard

DEVICE_PACKAGE_OVERLAYS := \
	device/linaro/snowball/overlay


PRODUCT_TAGS += dalvik.gc.type-precise

PRODUCT_PACKAGES += \
        librs_jni \
        com.android.future.usb.accessory

# Filesystem management tools
PRODUCT_PACKAGES += \
        make_ext4fs

# Set screen DPI to 120 to boot into tablet GUI
PRODUCT_PROPERTY_OVERRIDES += \
	ro.sf.lcd_density = 120

$(call inherit-product, frameworks/native/build/tablet-dalvik-heap.mk)
