Screenshot creation script (#6933)

This commit is contained in:
ByteHamster 2024-02-20 21:17:23 +01:00 committed by GitHub
parent 3b2e7420cd
commit 45a05ed332
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 126 additions and 0 deletions

View File

@ -0,0 +1,126 @@
#!/bin/bash
################### Create emulator ###################
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
echo no | $ANDROID_HOME/tools/bin/avdmanager create avd --force --name "AntennaPodScreenshots" --abi google_apis/x86_64 --package 'system-images;android-30;google_apis;x86_64'
echo "
disk.dataPartition.size=6G
hw.battery=yes
hw.cpu.ncore=4
hw.lcd.density=420
hw.lcd.width=1080
hw.lcd.height=1920
hw.ramSize=1536
showDeviceFrame=no
" >> $HOME/.android/avd/AntennaPodScreenshots.avd/config.ini
nohup $ANDROID_HOME/emulator/emulator -avd AntennaPodScreenshots -no-snapshot &
while [ "$(adb shell getprop sys.boot_completed)" != "1" ]
do
echo "Waiting for emulator"
sleep 3
done
sleep 10
################### Create screenshots ###################
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
adb root
adb uninstall de.danoeh.antennapod.debug
./gradlew :app:installPlayDebug
adb shell am start -n "de.danoeh.antennapod.debug/de.danoeh.antennapod.activity.MainActivity"
sleep 1
adb shell am force-stop de.danoeh.antennapod.debug
version=$(adb shell dumpsys package de.danoeh.antennapod.debug | grep versionName | cut -d'=' -f2)
versionMajor=0$(echo $version | cut -d'.' -f1)
versionMinor=0$(echo $version | cut -d'.' -f2)
wget "https://github.com/AntennaPod/Branding/raw/master/Screenshots/ScreenshotsDatabaseExport.db" -O ScreenshotsDatabaseExport.db
function resetDatabase() {
theme=$1
adb shell am force-stop de.danoeh.antennapod.debug
adb shell rm /data/data/de.danoeh.antennapod.debug/databases/Antennapod.db-journal
adb push ScreenshotsDatabaseExport.db /data/data/de.danoeh.antennapod.debug/databases/Antennapod.db
adb shell chmod 777 /data/data/de.danoeh.antennapod.debug/databases
adb shell chmod 777 /data/data/de.danoeh.antennapod.debug/databases/Antennapod.db
echo "<?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><boolean name='prefMainActivityIsFirstLaunch' value='false' /></map>" > tmp
adb push tmp /data/data/de.danoeh.antennapod.debug/shared_prefs/MainActivityPrefs.xml
echo "<?xml version='1.0' encoding='utf-8' standalone='yes' ?><map>
<string name='prefTheme'>$theme</string>
<long name='de.danoeh.antennapod.preferences.currentlyPlayingMedia' value='1' />
<long name='FeedMedia.PrefMediaId' value='2432' />
</map>" > tmp
adb push tmp /data/data/de.danoeh.antennapod.debug/shared_prefs/de.danoeh.antennapod.debug_preferences.xml
rm tmp
sleep 1
}
function screenshot() {
filename=$1
sleep 6
adb exec-out screencap -p > $filename
}
function switchLanguage() {
language=$1
adb shell "setprop persist.sys.locale $language; setprop ctl.restart zygote"
sleep 10
adb shell settings put global sysui_demo_allowed 1
adb shell am broadcast -a com.android.systemui.demo -e command enter
adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm $versionMajor$versionMinor
adb shell am broadcast -a com.android.systemui.demo -e command notifications -e visible false
adb shell am broadcast -a com.android.systemui.demo -e command network -e wifi show --es fully true -e level 4
adb shell am broadcast -a com.android.systemui.demo -e command network -e mobile show -e datatype lte -e level 4
adb shell am broadcast -a com.android.systemui.demo -e command battery -e level 100 -e plugged false
sleep 2
}
function createScreenshots() {
language=$1
mkdir -p "screenshots/$language"
switchLanguage $language
resetDatabase 0
adb shell am start -n "de.danoeh.antennapod.debug/de.danoeh.antennapod.activity.MainActivity" --es "fragment_tag" "SubscriptionFragment"
screenshot "screenshots/$language/00.png"
resetDatabase 0
adb shell am start -n "de.danoeh.antennapod.debug/de.danoeh.antennapod.activity.MainActivity" --es "fragment_tag" "QueueFragment"
sleep 1
adb shell am start -n "de.danoeh.antennapod.debug/de.danoeh.antennapod.activity.MainActivity" --ez "open_player" "true"
screenshot "screenshots/$language/01.png"
resetDatabase 0
adb shell am start -n "de.danoeh.antennapod.debug/de.danoeh.antennapod.activity.MainActivity" --es "fragment_tag" "QueueFragment"
sleep 1
adb shell am start -n "de.danoeh.antennapod.debug/de.danoeh.antennapod.activity.MainActivity" --ez "open_drawer" "true"
screenshot "screenshots/$language/02.png"
resetDatabase 0
adb shell am start -n "de.danoeh.antennapod.debug/de.danoeh.antennapod.activity.MainActivity" --es "fragment_tag" "EpisodesFragment"
screenshot "screenshots/$language/03a.png"
resetDatabase 1
adb shell am start -n "de.danoeh.antennapod.debug/de.danoeh.antennapod.activity.MainActivity" --es "fragment_tag" "EpisodesFragment"
screenshot "screenshots/$language/03b.png"
resetDatabase 0
adb shell am start -n "de.danoeh.antennapod.debug/de.danoeh.antennapod.activity.MainActivity" --es "fragment_tag" "QueueFragment"
screenshot "screenshots/$language/04.png"
}
createScreenshots "en-US"
createScreenshots "de-DE"
createScreenshots "es-ES"
createScreenshots "fr-FR"
createScreenshots "he-IL"
createScreenshots "it-IT"
createScreenshots "nl-NL"
switchLanguage "en-US"
adb shell settings put global sysui_demo_allowed 0
################### Delete emulator ###################
adb devices | grep emulator | cut -f1 | while read line; do adb -s $line emu kill && sleep 10; done
$ANDROID_HOME/tools/bin/avdmanager delete avd -n "AntennaPodScreenshots"