Primer paso de la investigacion. Se aportan el .apk, las carpetas con el apk extraido y el apk descompilado. El archivo API_DOCUMENTATION.md es un archivo donde se anotaran los descubrimientos del funcionamiento de la API, y los .py son scripts para probar la funcionalidad de la API con los métodos que vayamos encontrando. Finalmente, los archivos .js son scripts de Frida para extraer informacion de la APP durante la ejecucion.
This commit is contained in:
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
316
apk_decompiled/resources/res/navigation/main_navigation.xml
Normal file
316
apk_decompiled/resources/res/navigation/main_navigation.xml
Normal 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}&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>
|
||||
@@ -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}&arg_type_subscription={arg_type_subscription}&arg_data_subscription={arg_data_subscription}&arg_trainCode_subscription={arg_trainCode_subscription}&arg_trainDate_subscription={arg_trainDate_subscription}&arg_stationCode_subscription={arg_stationCode_subscription}&arg_stationToCode_subscription={arg_stationToCode_subscription}&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}&commercialNumber={commercialNumber}&originStationCode={originStationCode}&destinationStationCode={destinationStationCode}&launchingDate={launchingDate}&operator={operator}&commercialProduct={commercialProduct}"/>
|
||||
<argument
|
||||
android:name="fragmentFrom"
|
||||
android:defaultValue="@null"
|
||||
app:argType="string"
|
||||
app:nullable="true"/>
|
||||
</fragment>
|
||||
</navigation>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user