#!/bin/bash

if [[ `id -u` != 0 ]]; then
    echo "Script will work only with root rights"
    exit 1
fi

# apps default fix orientation
WAYDROID_ORIENTATION_CONFIG='
[APPORIENTATION]
WaydroidDefaultOrientation=3
# Сканер ГИБДД (Принудительный портретный режим под поворот камеры)
waydroid.ru.ppr.mpauto=3
# Дефолтная камера (Принудительный портретный режим под поворот камеры)
waydroid.com.android.camera2=3
'

sed -i '/\[APPORIENTATION\]/d' /etc/xdg/plasmamobilerc
sed -i '/WaydroidDefaultOrientation=*/d' /etc/xdg/plasmamobilerc
echo "$WAYDROID_ORIENTATION_CONFIG" >> /etc/xdg/plasmamobilerc

#default orientation
sed -i "s/rotation\": 8/rotation\": 2/" /usr/share/kscreen/generic-config

#microphone tune #aec_args=\"analog_gain_control=0 digital_gain_control=1\"
echo "load-module module-echo-cancel  aec_method=webrtc source_master=alsa_input.pci-0000_00_1f.3.analog-stereo source_name=echocancelsource sink_name=echocancelsink" >> /etc/pulse/default.pa
echo "set-default-source echocancelsource" >> /etc/pulse/default.pa
echo "set-default-sink echocancelsink" >> /etc/pulse/default.pa

SCRIPT_DIR=/usr/bin
SCRIPT_PATH=$SCRIPT_DIR/mig-t8s-accel-sampling-freq-fix.sh

UNIT_NAME=mig-t8s-accel-sampling-fix.service
UNIT_PATH=/etc/systemd/system/$UNIT_NAME

# udev rule
echo "ENV{IIO_SENSOR_PROXY_TYPE}==\"*accel*\", ENV{ACCEL_MOUNT_MATRIX}=\"1,0,0;0,1,0;0,0,1\"" > /etc/udev/rules.d/99-astra-mobile-orientation.rules
echo >> /etc/udev/rules.d/99-astra-mobile-orientation.rules

#x11
echo "ATTRS{name}==\"Goodix Capacitive TouchScreen\", ENV{LIBINPUT_CALIBRATION_MATRIX}=\"-1 0 1 0 -1 1 0 0 1\"" > /etc/udev/rules.d/99-astra-mobile-touch.rules
echo >> /etc/udev/rules.d/99-astra-mobile-touch.rules
udevadm trigger

echo 'Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "Goodix Capacitive TouchScreen"
        Option  "Calibration"   "0 1200  0 1920"
        Option "TransformationMatrix"  "0 1 0 -1 0 1 0 0 1"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
	Option "Rotate"    "left"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
EndSection

' > /etc/X11/xorg.conf.d/99-calibration.conf

if [ ! -d ${SCRIPT_DIR} ]; then
    echo "Creating $SCRIPT_DIR directory..."
    mkdir -p $SCRIPT_DIR
fi

# creating script

cat > $SCRIPT_PATH << EOF
SET_FREQ_FILE="/sys/bus/iio/devices/iio:device0/in_accel_sampling_frequency"
AV_FREQ_FILE="/sys/bus/iio/devices/iio:device0/in_accel_sampling_frequency_available"

minFreq=\$(cat \$AV_FREQ_FILE | cut -d ' ' -f1)

echo \$minFreq > \$SET_FREQ_FILE
EOF

# service

echo '[Unit]
Description=Fix accel sampling frequency for MIG T8s

[Service]
Type=simple
ExecStart=/bin/bash '$SCRIPT_PATH'

[Install]
WantedBy=multi-user.target
' > $UNIT_PATH

# start service
chmod 664 $UNIT_PATH
systemctl enable $UNIT_NAME

# fix touch on fly-dm
rm -f /usr/share/X11/xorg.conf.d/41-evdev.conf
