Files
harheimertc/android-app/window_dump_emulator_app.xml
Torsten Schulz (local) b8bdbf0a8d feat: add homepage components and API for settings and spielplan options
- Introduced new Vue components for homepage teasers: HomeLinksTeaser, HomeSpielplanTeamWidget, HomeTrainingTeaser, and HomeVereinsmeisterschaftenTeaser.
- Created XML layout for tablet app window dump.
- Implemented API endpoints for fetching and updating homepage settings.
- Added API for retrieving spielplan options, including team extraction logic.
2026-05-29 15:37:45 +02:00

1 line
20 KiB
XML

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><hierarchy rotation="0"><node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][2560,1600]"><node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][2560,1600]"><node index="0" text="" resource-id="android:id/content" class="android.widget.FrameLayout" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][2560,1600]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/launcher" class="android.widget.FrameLayout" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][2560,1600]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/drag_layer" class="android.widget.FrameLayout" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][2560,1600]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/scrim_view" class="android.view.View" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,0][2560,1600]" /><node index="1" text="" resource-id="com.google.android.apps.nexuslauncher:id/workspace" class="android.widget.ScrollView" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="true" long-clickable="false" password="false" selected="false" bounds="[0,0][2560,1600]"><node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[181,48][2379,1365]"><node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[240,89][2320,1306]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/search_container_workspace" class="android.widget.FrameLayout" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[240,89][1216,306]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/bc_smartspace_view" class="android.widget.FrameLayout" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[294,93][1162,301]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/smartspace_card_pager" class="androidx.viewpager.widget.ViewPager" package="com.google.android.apps.nexuslauncher" content-desc="At a glance" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[294,93][1162,301]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/base_template_card_with_date" class="android.view.ViewGroup" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[294,93][1162,301]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/text_group" class="android.widget.RelativeLayout" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[294,137][1162,258]"><node index="0" text="Fri, May 29" resource-id="com.google.android.apps.nexuslauncher:id/date" class="android.widget.TextView" package="com.google.android.apps.nexuslauncher" content-desc="Fri, May 29" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[294,137][488,184]" /><node index="1" text="" resource-id="com.google.android.apps.nexuslauncher:id/smartspace_subtitle_group" class="android.view.ViewGroup" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[294,194][1162,258]"><node index="0" text="54°F" resource-id="com.google.android.apps.nexuslauncher:id/subtitle_text" class="android.widget.TextView" package="com.google.android.apps.nexuslauncher" content-desc="Partly cloudy, 54°F" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[294,194][413,258]" /></node></node></node></node></node></node><node index="1" text="" resource-id="" class="com.android.launcher3.widget.LauncherAppWidgetHostView" package="com.google.android.apps.nexuslauncher" content-desc="Analog" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[240,338][848,804]"><node index="0" text="" resource-id="com.google.android.deskclock:id/widget_frame" class="android.widget.FrameLayout" package="com.google.android.deskclock" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[240,338][848,804]"><node index="0" text="" resource-id="com.google.android.deskclock:id/base_clock" class="android.view.View" package="com.google.android.deskclock" content-desc="13:33" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[240,338][848,804]" /><node index="1" text="" resource-id="com.google.android.deskclock:id/date_clock" class="android.view.View" package="com.google.android.deskclock" content-desc="13:33" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[240,338][848,804]" /><node index="2" text="Friday, May 29, 1:33 PM" resource-id="com.google.android.deskclock:id/a11y_clock" class="android.widget.TextView" package="com.google.android.deskclock" content-desc="Friday, May 29, 1:33 PM" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[240,338][534,376]" /><node index="3" text="" resource-id="android:id/background" class="android.widget.FrameLayout" package="com.google.android.deskclock" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[327,354][761,788]" /></node></node><node index="2" text="Play Store" resource-id="" class="android.widget.TextView" package="com.google.android.apps.nexuslauncher" content-desc="Play Store" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[240,1085][480,1302]" /><node index="3" text="" resource-id="" class="android.widget.FrameLayout" package="com.google.android.apps.nexuslauncher" content-desc="Folder: Google, 4 or more items" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[608,1085][848,1302]"><node index="0" text="Google" resource-id="com.google.android.apps.nexuslauncher:id/folder_icon_name" class="android.widget.TextView" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[608,1248][848,1302]" /></node><node index="4" text="" resource-id="" class="com.android.launcher3.widget.LauncherAppWidgetHostView" package="com.google.android.apps.nexuslauncher" content-desc="Calendar schedule" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1712,836][2320,1302]"><node index="0" text="" resource-id="com.google.android.calendar:id/base_layout" class="android.widget.RelativeLayout" package="com.google.android.calendar" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1712,836][2320,1302]"><node index="0" text="" resource-id="com.google.android.calendar:id/empty_layout" class="android.widget.LinearLayout" package="com.google.android.calendar" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1712,836][2320,1302]"><node index="0" text="Calendar" resource-id="com.google.android.calendar:id/calendar_label_header" class="android.widget.TextView" package="com.google.android.calendar" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1712,836][2320,948]" /><node index="1" text="" resource-id="com.google.android.calendar:id/columns" class="android.widget.LinearLayout" package="com.google.android.calendar" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1712,948][2320,1302]"><node index="0" text="" resource-id="com.google.android.calendar:id/info_bubble" class="android.widget.FrameLayout" package="com.google.android.calendar" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1712,948][2320,1302]"><node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.google.android.calendar" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1736,948][2296,1278]" /><node index="1" text="" resource-id="" class="android.widget.LinearLayout" package="com.google.android.calendar" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1736,1031][2296,1194]"><node index="0" text="Sign in to view your schedule" resource-id="com.google.android.calendar:id/info" class="android.widget.TextView" package="com.google.android.calendar" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1793,1031][2239,1098]" /><node index="1" text="Sign in" resource-id="com.google.android.calendar:id/signin_button" class="android.widget.Button" package="com.google.android.calendar" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1928,1098][2104,1178]" /></node></node></node></node></node></node></node></node></node><node index="2" text="" resource-id="" class="android.view.View" package="com.google.android.apps.nexuslauncher" content-desc="Home" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,48][2560,1600]" /><node index="3" text="" resource-id="com.google.android.apps.nexuslauncher:id/overview_actions_view" class="android.widget.FrameLayout" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,1207][2560,1600]" /><node index="4" text="" resource-id="com.google.android.apps.nexuslauncher:id/page_indicator" class="android.view.View" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,1350][2560,1398]" /><node index="5" text="" resource-id="com.google.android.apps.nexuslauncher:id/hotseat" class="android.view.ViewGroup" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[0,1398][2560,1600]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/search_container_hotseat" class="android.widget.FrameLayout" package="com.google.android.apps.nexuslauncher" content-desc="Google search" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[299,1401][940,1527]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/g_icon" class="android.widget.ImageView" package="com.google.android.apps.nexuslauncher" content-desc="Google app" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[307,1416][403,1512]" /><node index="1" text="" resource-id="com.google.android.apps.nexuslauncher:id/end_part" class="android.widget.LinearLayout" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[740,1401][932,1527]"><node index="0" text="" resource-id="com.google.android.apps.nexuslauncher:id/mic_icon" class="android.widget.ImageView" package="com.google.android.apps.nexuslauncher" content-desc="Voice search" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[740,1401][836,1527]" /><node index="1" text="" resource-id="com.google.android.apps.nexuslauncher:id/lens_icon" class="android.widget.ImageButton" package="com.google.android.apps.nexuslauncher" content-desc="Google Lens" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[836,1401][932,1527]" /></node></node><node index="1" text="" resource-id="" class="android.view.ViewGroup" package="com.google.android.apps.nexuslauncher" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" bounds="[1029,1398][2260,1538]"><node index="0" text="Gmail" resource-id="" class="android.widget.TextView" package="com.google.android.apps.nexuslauncher" content-desc="Gmail" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[1029,1398][1161,1538]" /><node index="1" text="Chrome" resource-id="" class="android.widget.TextView" package="com.google.android.apps.nexuslauncher" content-desc="Chrome" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[1249,1398][1381,1538]" /><node index="2" text="YouTube" resource-id="" class="android.widget.TextView" package="com.google.android.apps.nexuslauncher" content-desc="YouTube" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[1469,1398][1601,1538]" /><node index="3" text="Photos" resource-id="" class="android.widget.TextView" package="com.google.android.apps.nexuslauncher" content-desc="Photos" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[1689,1398][1821,1538]" /><node index="4" text="Harheimer TC" resource-id="" class="android.widget.TextView" package="com.google.android.apps.nexuslauncher" content-desc="Predicted app: Harheimer TC" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[1909,1398][2041,1538]" /><node index="5" text="Play Store" resource-id="" class="android.widget.TextView" package="com.google.android.apps.nexuslauncher" content-desc="Predicted app: Play Store" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" bounds="[2129,1398][2260,1538]" /></node></node></node></node></node></node></node></hierarchy>