Initial import of ADIF API reverse-engineering toolkit

This commit is contained in:
2025-12-16 08:37:56 +01:00
commit 60388529c1
11486 changed files with 1086536 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/bottom_tabs_navigation"
app:startDestination="@+id/home_tab_navigation">
<include app:graph="@navigation/home_tab_navigation"/>
<include app:graph="@navigation/departures_tab_navigation"/>
<include app:graph="@navigation/stations_tab_navigation"/>
<include app:graph="@navigation/more_adif_tab_navigation"/>
</navigation>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/departures_tab_navigation"
app:startDestination="@+id/departuresFragment">
<fragment
android:label="DeparturesFragment"
android:name="com.adif.elcanomovil.uiDepartures.main.DeparturesFragment"
android:id="@+id/departuresFragment"/>
</navigation>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/home_tab_navigation"
app:startDestination="@+id/homeFragment">
<fragment
android:label="HomeFragment"
android:name="com.adif.elcanomovil.uiHome.HomeFragment"
android:id="@+id/homeFragment">
<argument
android:name="focusFavourites"
android:defaultValue="false"
app:argType="boolean"/>
<deepLink
android:id="@+id/favouritesLink"
app:uri="adifmovil://app/favourites?focusFavourites={focusFavourites}"/>
</fragment>
</navigation>

View File

@@ -0,0 +1,316 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_navigation"
app:startDestination="@+id/splashFragment">
<include app:graph="@navigation/home_tab_navigation"/>
<include app:graph="@navigation/departures_tab_navigation"/>
<include app:graph="@navigation/stations_tab_navigation"/>
<include app:graph="@navigation/more_adif_tab_navigation"/>
<fragment
android:label="SplashFragment"
android:name="com.adif.elcanomovil.splash.SplashFragment"
android:id="@+id/splashFragment">
<action
android:id="@+id/to_bottomNav"
app:destination="@+id/bottomNavFragment"
app:popUpTo="@+id/splashFragment"
app:popUpToInclusive="true"/>
</fragment>
<dialog
android:label="AdifDialogFragment"
android:name="com.adif.elcanomovil.uiDialog.AdifDialogFragment"
android:id="@+id/adifDialogFragment">
<argument
android:name="blockOnback"
app:argType="boolean"
app:nullable="false"/>
<argument
android:name="isCancelable"
app:argType="boolean"
app:nullable="false"/>
<argument
android:name="title"
app:argType="string"
app:nullable="false"/>
<argument
android:name="message"
app:argType="string"
app:nullable="false"/>
<argument
android:name="actions"
app:argType="com.adif.elcanomovil.commonNavGraph.arguments.AlertActions"
app:nullable="false"/>
<argument
android:name="type"
app:argType="com.adif.elcanomovil.commonNavGraph.arguments.AlertType"
app:nullable="false"/>
</dialog>
<fragment
android:label="BottomNavFragment"
android:name="com.adif.elcanomovil.main.BottomNavFragment"
android:id="@+id/bottomNavFragment">
<argument
android:name="initialTab"
android:defaultValue="@null"
app:argType="com.adif.elcanomovil.commonNavGraph.arguments.BottomNavInitialTab"
app:nullable="true"/>
<action
android:id="@+id/to_bottomNav"
app:destination="@+id/bottomNavFragment"
app:popUpTo="@+id/main_navigation"
app:popUpToInclusive="true"
app:popUpToSaveState="true"
app:restoreState="true"/>
<action
android:id="@+id/to_selectStationFragment"
app:destination="@+id/selectStationFragment"
app:enterAnim="@anim/slide_in_up"
app:exitAnim="@anim/no_animation"
app:popEnterAnim="@anim/no_animation"
app:popExitAnim="@anim/slide_out_up"
app:popUpToSaveState="true"
app:restoreState="true"/>
<action
android:id="@+id/to_newSubscriptionHomeFragment"
app:destination="@+id/newSubscriptionFragment"
app:enterAnim="@anim/slide_in_up"
app:exitAnim="@anim/no_animation"
app:popEnterAnim="@anim/no_animation"
app:popExitAnim="@anim/slide_out_up"/>
<action
android:id="@+id/to_newIssueFragment"
app:destination="@+id/newIssueFragment"
app:enterAnim="@anim/slide_in_up"
app:exitAnim="@anim/no_animation"
app:popEnterAnim="@anim/no_animation"
app:popExitAnim="@anim/slide_out_up"/>
<action
android:id="@+id/to_selectTrainFragment"
app:destination="@+id/selectTrainFragment"
app:enterAnim="@anim/slide_in_up"
app:exitAnim="@anim/no_animation"
app:popEnterAnim="@anim/no_animation"
app:popExitAnim="@anim/slide_out_up"/>
<deepLink
android:id="@+id/homeDeepLink"
app:uri="adifmovil://app/home"/>
<deepLink
android:id="@+id/departuresDeepLink"
app:uri="adifmovil://app/departures"/>
<deepLink
android:id="@+id/stationsDeepLink"
app:uri="adifmovil://app/station"/>
<deepLink
android:id="@+id/moreAdifDeepLink"
app:uri="adifmovil://app/moreAdif"/>
</fragment>
<dialog
android:label="AdifDialogFragment"
android:name="com.adif.elcanomovil.uiDialog.StationsDialogFragment"
android:id="@+id/stationsDialogFragment">
<argument
android:name="logo"
app:argType="string"
app:nullable="true"/>
<argument
android:name="name"
app:argType="string"
app:nullable="true"/>
<argument
android:name="phone"
app:argType="string"
app:nullable="true"/>
<argument
android:name="description"
app:argType="string"
app:nullable="true"/>
<argument
android:name="accessible"
app:argType="boolean"/>
<argument
android:name="payment_way"
app:argType="string[]"
app:nullable="true"/>
<argument
android:name="offer"
app:argType="string"
app:nullable="true"/>
<argument
android:name="correspondences"
app:argType="string[]"
app:nullable="true"/>
<argument
android:name="web"
app:argType="string"
app:nullable="true"/>
<argument
android:name="location"
app:argType="string"
app:nullable="true"/>
<argument
android:name="accessible_label"
app:argType="string"
app:nullable="true"/>
<argument
android:name="opening_hours"
app:argType="string"
app:nullable="true"/>
<argument
android:name="play_store"
app:argType="string"
app:nullable="true"/>
</dialog>
<dialog
android:label="SelectableListBottomSheet"
android:name="com.adif.elcanomovil.uiDepartures.main.SelectableListBottomSheet"
android:id="@+id/selectableListBottomSheet">
<argument
android:name="key"
app:argType="string"
app:nullable="false"/>
<argument
android:name="values"
app:argType="string[]"
app:nullable="false"/>
</dialog>
<dialog
android:label="ObservationsListBottomSheet"
android:name="com.adif.elcanomovil.uiDepartures.main.ObservationsListBottomSheet"
android:id="@+id/observationsListBottomSheet">
<argument
android:name="key"
app:argType="string"
app:nullable="false"/>
<argument
android:name="values"
app:argType="com.adif.elcanomovil.commonNavGraph.arguments.StationObservationArg"/>
</dialog>
<dialog
android:label="FilterListBottomSheet"
android:name="com.adif.elcanomovil.commonViews.FilterListBottomSheet"
android:id="@+id/filterListBottomSheet">
<argument
android:name="key"
app:argType="string"
app:nullable="false"/>
<argument
android:name="values"
app:argType="com.adif.elcanomovil.commonNavGraph.arguments.Filters"/>
</dialog>
<dialog
android:label="TrainObservationBottomSheet"
android:name="com.adif.elcanomovil.uiTrain.main.TrainObservationBottomSheet"
android:id="@+id/trainObservationsBottomSheet">
<argument
android:name="observation"
app:argType="string"/>
</dialog>
<fragment
android:label="SelectStationFragment"
android:name="com.adif.elcanomovil.uiSelectStation.main.SelectStationFragment"
android:id="@+id/selectStationFragment">
<argument
android:name="key"
app:argType="string"
app:nullable="false"/>
</fragment>
<fragment
android:label="SelectTrainFragment"
android:name="com.adif.elcanomovil.uiSelectTrain.main.SelectTrainFragment"
android:id="@+id/selectTrainFragment">
<argument
android:name="result_name"
app:argType="string"
app:nullable="false"/>
<argument
android:name="commercial_number"
app:argType="string"
app:nullable="true"/>
<deepLink
android:id="@+id/deepLink"
app:uri="adifmovil://app/selectTrain?commercialNumber={commercial_number}&amp;result_name={result_name}"/>
</fragment>
<fragment
android:label="NewSubscriptionCreationFragment"
android:name="com.adif.elcanomovil.uiSubscriptions.create.SubscriptionCreationFragment"
android:id="@+id/newSubscriptionFragment">
<argument
android:name="arg_type_screen"
app:argType="integer"
app:nullable="false"/>
<argument
android:name="arg_type_subscription"
app:argType="integer"
app:nullable="false"/>
<argument
android:name="arg_data_subscription"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_trainCode_subscription"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_trainDate_subscription"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_stationCode_subscription"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_stationToCode_subscription"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_isCercanias_subscription"
app:argType="boolean"
app:nullable="false"/>
<argument
android:name="arg_operator_train"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_commercial_product_train"
app:argType="string"
app:nullable="true"/>
<action
android:id="@+id/action_global_alertDialog"
app:destination="@+id/adifDialogFragment"/>
</fragment>
<fragment
android:label="NewIssueFragment"
android:name="com.adif.elcanomovil.uiAvisa.components.create.NewIssueFragment"
android:id="@+id/newIssueFragment">
<action
android:id="@+id/action_global_alertDialog"
app:destination="@+id/adifDialogFragment"/>
</fragment>
<action
android:id="@+id/to_alertDialog"
app:destination="@+id/adifDialogFragment"/>
<action
android:id="@+id/to_selectableBottomSheet"
app:destination="@+id/selectableListBottomSheet"/>
<action
android:id="@+id/to_stationObservationsBottomSheet"
app:destination="@+id/observationsListBottomSheet"/>
<action
android:id="@+id/to_trainObservationBottomSheet"
app:destination="@+id/trainObservationsBottomSheet"/>
<action
android:id="@+id/to_filterListBottomSheet"
app:destination="@+id/filterListBottomSheet"/>
<action
android:id="@+id/to_stations_alertDialog"
app:destination="@+id/stationsDialogFragment"/>
<action
android:id="@+id/to_selectStationFragment"
app:destination="@+id/selectStationFragment"
app:enterAnim="@anim/slide_in_up"
app:exitAnim="@anim/no_animation"
app:popEnterAnim="@anim/no_animation"
app:popExitAnim="@anim/slide_out_up"
app:popUpToSaveState="true"
app:restoreState="true"/>
</navigation>

View File

@@ -0,0 +1,233 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/more_adif_tab_navigation"
app:startDestination="@+id/moreAdifFragment">
<fragment
android:label="MoreAdifFragment"
android:name="com.adif.elcanomovil.uiMoreAdif.main.MoreAdifFragment"
android:id="@+id/moreAdifFragment">
<action
android:id="@+id/to_helpFragment"
app:destination="@+id/helpFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"/>
<action
android:id="@+id/to_accessibilityFragment"
app:destination="@+id/accessibilityFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"/>
<action
android:id="@+id/to_contactFragment"
app:destination="@+id/contactFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"/>
<action
android:id="@+id/to_aboutFragment"
app:destination="@+id/aboutFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"/>
<action
android:id="@+id/to_avisaHomeFragment"
app:destination="@+id/avisaFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"/>
<action
android:id="@+id/to_subscriptionHomeFragment"
app:destination="@+id/subscriptionFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"/>
<action
android:id="@+id/to_trainSituationFragment"
app:destination="@+id/trainSituationFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right">
<argument
android:name="commercialNumber"
android:defaultValue="@null"
app:argType="string"
app:nullable="true"/>
<argument
android:name="originStationCode"
android:defaultValue="@null"
app:argType="string"
app:nullable="true"/>
<argument
android:name="destinationStationCode"
android:defaultValue="@null"
app:argType="string"
app:nullable="true"/>
<argument
android:name="launchingDate"
android:defaultValue="0L"
app:argType="long"/>
<argument
android:name="observation"
android:defaultValue="@null"
app:argType="string"
app:nullable="true"/>
</action>
</fragment>
<fragment
android:label="AccessibilityFragment"
android:name="com.adif.elcanomovil.uiMoreAdif.help.HelpFragment"
android:id="@+id/helpFragment"/>
<fragment
android:label="AccessibilityFragment"
android:name="com.adif.elcanomovil.uiMoreAdif.accessibility.AccessibilityFragment"
android:id="@+id/accessibilityFragment"/>
<fragment
android:label="ContactFragment"
android:name="com.adif.elcanomovil.uiMoreAdif.contact.ContactFragment"
android:id="@+id/contactFragment"/>
<fragment
android:label="AboutFragment"
android:name="com.adif.elcanomovil.uiMoreAdif.about.AboutFragment"
android:id="@+id/aboutFragment"/>
<fragment
android:label="AvisaHomeFragment"
android:name="com.adif.elcanomovil.uiAvisa.components.home.AvisaHomeFragment"
android:id="@+id/avisaFragment">
<action
android:id="@+id/to_issueDetailsFragment"
app:destination="@+id/issueDetailFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"/>
<deepLink
android:id="@+id/deepLink"
app:uri="adifmovil://app/avisa"/>
</fragment>
<fragment
android:label="IssueDetailsFragment"
android:name="com.adif.elcanomovil.uiAvisa.components.details.IssueDetailsFragment"
android:id="@+id/issueDetailFragment">
<argument
android:name="arg_idIncidence"
app:argType="integer"/>
<deepLink
android:id="@+id/deepLink"
app:uri="adifmovil://app/avisaIncidenceDetails?arg_idIncidence={arg_idIncidence}"/>
</fragment>
<fragment
android:label="SubscriptionHomeFragment"
android:name="com.adif.elcanomovil.uiSubscriptions.home.SubscriptionHomeFragment"
android:id="@+id/subscriptionFragment">
<action
android:id="@+id/to_editSubscriptionFragment"
app:destination="@+id/editSubscriptionFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"/>
</fragment>
<fragment
android:label="NewSubscriptionCreationFragment"
android:name="com.adif.elcanomovil.uiSubscriptions.create.SubscriptionCreationFragment"
android:id="@+id/editSubscriptionFragment">
<argument
android:name="arg_type_screen"
app:argType="integer"
app:nullable="false"/>
<argument
android:name="arg_type_subscription"
app:argType="integer"
app:nullable="false"/>
<argument
android:name="arg_data_subscription"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_trainCode_subscription"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_trainDate_subscription"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_stationCode_subscription"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_stationToCode_subscription"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_isCercanias_subscription"
app:argType="boolean"
app:nullable="false"/>
<argument
android:name="arg_operator_train"
app:argType="string"
app:nullable="true"/>
<argument
android:name="arg_commercial_product_train"
app:argType="string"
app:nullable="true"/>
<deepLink
android:id="@+id/deepLink"
app:uri="adifmovil://app/subscriptionDetails?arg_type_screen={arg_type_screen}&amp;arg_type_subscription={arg_type_subscription}&amp;arg_data_subscription={arg_data_subscription}&amp;arg_trainCode_subscription={arg_trainCode_subscription}&amp;arg_trainDate_subscription={arg_trainDate_subscription}&amp;arg_stationCode_subscription={arg_stationCode_subscription}&amp;arg_stationToCode_subscription={arg_stationToCode_subscription}&amp;arg_isCercanias_subscription={arg_isCercanias_subscription}"/>
</fragment>
<fragment
android:label="TrainSituationFragment"
android:name="com.adif.elcanomovil.uiTrain.main.TrainSituationFragment"
android:id="@+id/trainSituationFragment">
<argument
android:name="commercialNumber"
android:defaultValue="@null"
app:argType="string"
app:nullable="true"/>
<argument
android:name="originStationCode"
android:defaultValue="@null"
app:argType="string"
app:nullable="true"/>
<argument
android:name="destinationStationCode"
android:defaultValue="@null"
app:argType="string"
app:nullable="true"/>
<argument
android:name="launchingDate"
android:defaultValue="0L"
app:argType="long"/>
<argument
android:name="operator"
android:defaultValue=""
app:argType="string"
app:nullable="true"/>
<argument
android:name="commercialProduct"
android:defaultValue=""
app:argType="string"
app:nullable="true"/>
<argument
android:name="observation"
android:defaultValue="@null"
app:argType="string"
app:nullable="true"/>
<deepLink
android:id="@+id/deepLink"
app:uri="adifmovil://app/trainDetails?fragmentFrom={fragmentFrom}&amp;commercialNumber={commercialNumber}&amp;originStationCode={originStationCode}&amp;destinationStationCode={destinationStationCode}&amp;launchingDate={launchingDate}&amp;operator={operator}&amp;commercialProduct={commercialProduct}"/>
<argument
android:name="fragmentFrom"
android:defaultValue="@null"
app:argType="string"
app:nullable="true"/>
</fragment>
</navigation>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/stations_tab_navigation"
app:startDestination="@+id/stationsFragment">
<fragment
android:label="StationsFragment"
android:name="com.adif.elcanomovil.uiStations.main.StationsFragment"
android:id="@+id/stationsFragment"/>
</navigation>

View File

@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/subscription_feature_navigation"
app:startDestination="@+id/configureWidgetFragment">
<fragment
android:label="ConfigureWidgetFragment"
android:name="com.adif.elcanomovil.widget.configuration.ConfigureWidgetFragment"
android:id="@+id/configureWidgetFragment">
<action
android:id="@+id/action_global_alertDialog"
app:destination="@+id/adifDialogFragment"/>
<action
android:id="@+id/action_departuresFragment_to_selectStationFragment"
app:destination="@+id/selectStationFragment"
app:enterAnim="@anim/slide_in_up"
app:exitAnim="@anim/no_animation"
app:popEnterAnim="@anim/no_animation"
app:popExitAnim="@anim/slide_out_up"/>
</fragment>
<fragment
android:label="SelectStationFragment"
android:name="com.adif.elcanomovil.uiSelectStation.main.SelectStationFragment"
android:id="@+id/selectStationFragment">
<argument
android:name="key"
app:argType="string"
app:nullable="false"/>
</fragment>
<dialog
android:label="AdifDialogFragment"
android:name="com.adif.elcanomovil.uiDialog.AdifDialogFragment"
android:id="@+id/adifDialogFragment">
<argument
android:name="blockOnback"
app:argType="boolean"
app:nullable="false"/>
<argument
android:name="isCancelable"
app:argType="boolean"
app:nullable="false"/>
<argument
android:name="title"
app:argType="string"
app:nullable="false"/>
<argument
android:name="message"
app:argType="string"
app:nullable="false"/>
<argument
android:name="actions"
app:argType="com.adif.elcanomovil.commonNavGraph.arguments.AlertActions"
app:nullable="false"/>
<argument
android:name="type"
app:argType="com.adif.elcanomovil.commonNavGraph.arguments.AlertType"
app:nullable="false"/>
</dialog>
</navigation>