From 45a05ed3322b7dfff5257734892e140084dd5e36 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Tue, 20 Feb 2024 21:17:23 +0100 Subject: [PATCH] Screenshot creation script (#6933) --- scripts/createScreenshots.sh | 126 +++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 scripts/createScreenshots.sh diff --git a/scripts/createScreenshots.sh b/scripts/createScreenshots.sh new file mode 100644 index 000000000..a33aa6e26 --- /dev/null +++ b/scripts/createScreenshots.sh @@ -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 "" > tmp + adb push tmp /data/data/de.danoeh.antennapod.debug/shared_prefs/MainActivityPrefs.xml + echo " + $theme + + + " > 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" +