Repository: kiwicom/mobile
Pull request #1063 (2018-09-03 15:35:45)

Correcting the transoportation whitelabel endpoint to get to the righ…
…t webview


Patch:
diff --git a/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js b/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js
index 7798e85f..489a2e6f 100644
--- a/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js
+++ b/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js
@@ -1,6 +1,6 @@
 /**
  * @flow
- * @relayHash 0c6f2bb4b8fb37234d053dd37a31ac28
+ * @relayHash f9073344a3ea13b03b31e063b26680d0
  */
 
 /* eslint-disable */
@@ -238,6 +238,14 @@ fragment TimelineTrip on Trip {
 
 fragment TimelineDeparture_routeStop on RouteStop {
   ...TimelineTitle
+  terminal
+  airport {
+    code
+    city {
+      name
+    }
+    id
+  }
 }
 
 fragment TimelineArrival on RouteStop {
@@ -246,9 +254,18 @@ fragment TimelineArrival on RouteStop {
 
 fragment TimelineDeparture_legInfo on Leg {
   flightNumber
+  operatingAirline {
+    name
+    iata
+  }
   airline {
     name
     logoUrl
+    code
+  }
+  vehicle {
+    model
+    manufacturer
   }
 }
 
@@ -463,23 +480,13 @@ v10 = {
   "args": null,
   "storageKey": null
 },
-v11 = [
-  v8,
-  {
-    "kind": "LinkedField",
-    "alias": null,
-    "name": "airport",
-    "storageKey": null,
-    "args": null,
-    "concreteType": "Location",
-    "plural": false,
-    "selections": [
-      v7,
-      v6,
-      v4
-    ]
-  }
-],
+v11 = {
+  "kind": "ScalarField",
+  "alias": null,
+  "name": "code",
+  "args": null,
+  "storageKey": null
+},
 v12 = {
   "kind": "LinkedField",
   "alias": null,
@@ -498,7 +505,31 @@ v12 = {
       "args": null,
       "concreteType": "RouteStop",
       "plural": false,
-      "selections": v11
+      "selections": [
+        v8,
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "airport",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "Location",
+          "plural": false,
+          "selections": [
+            v7,
+            v6,
+            v4,
+            v11
+          ]
+        },
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "terminal",
+          "args": null,
+          "storageKey": null
+        }
+      ]
     },
     {
       "kind": "LinkedField",
@@ -508,7 +539,23 @@ v12 = {
       "args": null,
       "concreteType": "RouteStop",
       "plural": false,
-      "selections": v11
+      "selections": [
+        v8,
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "airport",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "Location",
+          "plural": false,
+          "selections": [
+            v7,
+            v6,
+            v4
+          ]
+        }
+      ]
     },
     {
       "kind": "ScalarField",
@@ -517,6 +564,25 @@ v12 = {
       "args": null,
       "storageKey": null
     },
+    {
+      "kind": "LinkedField",
+      "alias": null,
+      "name": "operatingAirline",
+      "storageKey": null,
+      "args": null,
+      "concreteType": "OperatingAirline",
+      "plural": false,
+      "selections": [
+        v3,
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "iata",
+          "args": null,
+          "storageKey": null
+        }
+      ]
+    },
     {
       "kind": "LinkedField",
       "alias": null,
@@ -533,6 +599,32 @@ v12 = {
           "name": "logoUrl",
           "args": null,
           "storageKey": null
+        },
+        v11
+      ]
+    },
+    {
+      "kind": "LinkedField",
+      "alias": null,
+      "name": "vehicle",
+      "storageKey": null,
+      "args": null,
+      "concreteType": "Vehicle",
+      "plural": false,
+      "selections": [
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "model",
+          "args": null,
+          "storageKey": null
+        },
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "manufacturer",
+          "args": null,
+          "storageKey": null
         }
       ]
     },
@@ -591,7 +683,7 @@ return {
   "operationKind": "query",
   "name": "MainMenuContainerQuery",
   "id": null,
-  "text": "query MainMenuContainerQuery(\n  $bookingId: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $bookingId, authToken: $authToken) {\n    __typename\n    ...MainMenu\n    id\n  }\n}\n\nfragment MainMenu on BookingInterface {\n  databaseId\n  authToken\n  isPastBooking\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n  ...FlightServices\n}\n\nfragment Header on BookingInterface {\n  isPastBooking\n  ...StatusBar\n  ...TripInfo\n  ...TripOverview\n}\n\nfragment PassengerMenuGroup on BookingInterface {\n  ...PassengerMenuDetail\n}\n\nfragment MissingInformation on BookingInterface {\n  passengers {\n    travelDocument {\n      idNumber\n    }\n  }\n}\n\nfragment FlightServices on BookingInterface {\n  __typename\n  isPastBooking\n  ...FlightServicesOneWay\n  ...FlightServicesReturn\n  ...FlightServicesMulticity\n}\n\nfragment FlightServicesOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesReturn on BookingInterface {\n  ... on BookingReturn {\n    inbound {\n      ...FlightServicesMenuItem\n    }\n    outbound {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMenuItem on Trip {\n  legs {\n    type\n    id\n  }\n}\n\nfragment PassengerMenuDetail on BookingInterface {\n  ...Visa\n  passengers {\n    databaseId\n    ...Passenger\n  }\n}\n\nfragment Visa on BookingInterface {\n  passengers {\n    visaInformation {\n      requiredIn {\n        name\n        id\n      }\n      warningIn {\n        name\n        id\n      }\n    }\n  }\n}\n\nfragment Passenger on Passenger {\n  fullName\n  title\n  birthday\n}\n\nfragment StatusBar on BookingInterface {\n  ...StatusBarIcon\n  databaseId\n}\n\nfragment TripInfo on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...TripInfoOneWay\n  }\n  ... on BookingReturn {\n    ...TripInfoReturn\n  }\n  ... on BookingMulticity {\n    ...TripInfoMulticity\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  ...Duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  airline {\n    name\n    logoUrl\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment Duration on Trip {\n  duration\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripInfoOneWay on BookingOneWay {\n  trip {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripInfoReturn on BookingReturn {\n  outbound {\n    ...TripCities\n    ...TripTimes\n  }\n  inbound {\n    ...TripTimes\n  }\n}\n\nfragment TripInfoMulticity on BookingMulticity {\n  trips {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripCities on Trip {\n  departure {\n    ...Location\n  }\n  arrival {\n    ...Location\n  }\n}\n\nfragment TripTimes on Trip {\n  ...Duration\n  departure {\n    ...DateTime\n  }\n  arrival {\n    ...DateTime\n  }\n}\n\nfragment DateTime on RouteStop {\n  localTime\n}\n\nfragment Location on RouteStop {\n  airport {\n    city {\n      name\n    }\n    ...CountryFlag\n    id\n  }\n}\n\nfragment CountryFlag on Location {\n  countryFlagURL\n}\n\nfragment StatusBarIcon on BookingInterface {\n  status\n  isPastBooking\n}\n",
+  "text": "query MainMenuContainerQuery(\n  $bookingId: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $bookingId, authToken: $authToken) {\n    __typename\n    ...MainMenu\n    id\n  }\n}\n\nfragment MainMenu on BookingInterface {\n  databaseId\n  authToken\n  isPastBooking\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n  ...FlightServices\n}\n\nfragment Header on BookingInterface {\n  isPastBooking\n  ...StatusBar\n  ...TripInfo\n  ...TripOverview\n}\n\nfragment PassengerMenuGroup on BookingInterface {\n  ...PassengerMenuDetail\n}\n\nfragment MissingInformation on BookingInterface {\n  passengers {\n    travelDocument {\n      idNumber\n    }\n  }\n}\n\nfragment FlightServices on BookingInterface {\n  __typename\n  isPastBooking\n  ...FlightServicesOneWay\n  ...FlightServicesReturn\n  ...FlightServicesMulticity\n}\n\nfragment FlightServicesOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesReturn on BookingInterface {\n  ... on BookingReturn {\n    inbound {\n      ...FlightServicesMenuItem\n    }\n    outbound {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMenuItem on Trip {\n  legs {\n    type\n    id\n  }\n}\n\nfragment PassengerMenuDetail on BookingInterface {\n  ...Visa\n  passengers {\n    databaseId\n    ...Passenger\n  }\n}\n\nfragment Visa on BookingInterface {\n  passengers {\n    visaInformation {\n      requiredIn {\n        name\n        id\n      }\n      warningIn {\n        name\n        id\n      }\n    }\n  }\n}\n\nfragment Passenger on Passenger {\n  fullName\n  title\n  birthday\n}\n\nfragment StatusBar on BookingInterface {\n  ...StatusBarIcon\n  databaseId\n}\n\nfragment TripInfo on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...TripInfoOneWay\n  }\n  ... on BookingReturn {\n    ...TripInfoReturn\n  }\n  ... on BookingMulticity {\n    ...TripInfoMulticity\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  ...Duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n  terminal\n  airport {\n    code\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  operatingAirline {\n    name\n    iata\n  }\n  airline {\n    name\n    logoUrl\n    code\n  }\n  vehicle {\n    model\n    manufacturer\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment Duration on Trip {\n  duration\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripInfoOneWay on BookingOneWay {\n  trip {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripInfoReturn on BookingReturn {\n  outbound {\n    ...TripCities\n    ...TripTimes\n  }\n  inbound {\n    ...TripTimes\n  }\n}\n\nfragment TripInfoMulticity on BookingMulticity {\n  trips {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripCities on Trip {\n  departure {\n    ...Location\n  }\n  arrival {\n    ...Location\n  }\n}\n\nfragment TripTimes on Trip {\n  ...Duration\n  departure {\n    ...DateTime\n  }\n  arrival {\n    ...DateTime\n  }\n}\n\nfragment DateTime on RouteStop {\n  localTime\n}\n\nfragment Location on RouteStop {\n  airport {\n    city {\n      name\n    }\n    ...CountryFlag\n    id\n  }\n}\n\nfragment CountryFlag on Location {\n  countryFlagURL\n}\n\nfragment StatusBarIcon on BookingInterface {\n  status\n  isPastBooking\n}\n",
   "metadata": {},
   "fragment": {
     "kind": "Fragment",
diff --git a/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js b/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js
index 68fa8104..2b22ea9e 100644
--- a/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js
+++ b/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js
@@ -1,6 +1,6 @@
 /**
  * @flow
- * @relayHash 17f1fb74c3b8f6f359e998190b148f9f
+ * @relayHash bc228b37ed4386d52efe2e38724787cb
  */
 
 /* eslint-disable */
@@ -238,6 +238,14 @@ fragment TimelineTrip on Trip {
 
 fragment TimelineDeparture_routeStop on RouteStop {
   ...TimelineTitle
+  terminal
+  airport {
+    code
+    city {
+      name
+    }
+    id
+  }
 }
 
 fragment TimelineArrival on RouteStop {
@@ -246,9 +254,18 @@ fragment TimelineArrival on RouteStop {
 
 fragment TimelineDeparture_legInfo on Leg {
   flightNumber
+  operatingAirline {
+    name
+    iata
+  }
   airline {
     name
     logoUrl
+    code
+  }
+  vehicle {
+    model
+    manufacturer
   }
 }
 
@@ -463,23 +480,13 @@ v10 = {
   "args": null,
   "storageKey": null
 },
-v11 = [
-  v8,
-  {
-    "kind": "LinkedField",
-    "alias": null,
-    "name": "airport",
-    "storageKey": null,
-    "args": null,
-    "concreteType": "Location",
-    "plural": false,
-    "selections": [
-      v7,
-      v6,
-      v4
-    ]
-  }
-],
+v11 = {
+  "kind": "ScalarField",
+  "alias": null,
+  "name": "code",
+  "args": null,
+  "storageKey": null
+},
 v12 = {
   "kind": "LinkedField",
   "alias": null,
@@ -498,7 +505,31 @@ v12 = {
       "args": null,
       "concreteType": "RouteStop",
       "plural": false,
-      "selections": v11
+      "selections": [
+        v8,
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "airport",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "Location",
+          "plural": false,
+          "selections": [
+            v7,
+            v6,
+            v4,
+            v11
+          ]
+        },
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "terminal",
+          "args": null,
+          "storageKey": null
+        }
+      ]
     },
     {
       "kind": "LinkedField",
@@ -508,7 +539,23 @@ v12 = {
       "args": null,
       "concreteType": "RouteStop",
       "plural": false,
-      "selections": v11
+      "selections": [
+        v8,
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "airport",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "Location",
+          "plural": false,
+          "selections": [
+            v7,
+            v6,
+            v4
+          ]
+        }
+      ]
     },
     {
       "kind": "ScalarField",
@@ -517,6 +564,25 @@ v12 = {
       "args": null,
       "storageKey": null
     },
+    {
+      "kind": "LinkedField",
+      "alias": null,
+      "name": "operatingAirline",
+      "storageKey": null,
+      "args": null,
+      "concreteType": "OperatingAirline",
+      "plural": false,
+      "selections": [
+        v3,
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "iata",
+          "args": null,
+          "storageKey": null
+        }
+      ]
+    },
     {
       "kind": "LinkedField",
       "alias": null,
@@ -533,6 +599,32 @@ v12 = {
           "name": "logoUrl",
           "args": null,
           "storageKey": null
+        },
+        v11
+      ]
+    },
+    {
+      "kind": "LinkedField",
+      "alias": null,
+      "name": "vehicle",
+      "storageKey": null,
+      "args": null,
+      "concreteType": "Vehicle",
+      "plural": false,
+      "selections": [
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "model",
+          "args": null,
+          "storageKey": null
+        },
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "manufacturer",
+          "args": null,
+          "storageKey": null
         }
       ]
     },
@@ -591,7 +683,7 @@ return {
   "operationKind": "query",
   "name": "MainMenuRefetchQuery",
   "id": null,
-  "text": "query MainMenuRefetchQuery(\n  $id: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $id, authToken: $authToken) {\n    __typename\n    ...MainMenu\n    id\n  }\n}\n\nfragment MainMenu on BookingInterface {\n  databaseId\n  authToken\n  isPastBooking\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n  ...FlightServices\n}\n\nfragment Header on BookingInterface {\n  isPastBooking\n  ...StatusBar\n  ...TripInfo\n  ...TripOverview\n}\n\nfragment PassengerMenuGroup on BookingInterface {\n  ...PassengerMenuDetail\n}\n\nfragment MissingInformation on BookingInterface {\n  passengers {\n    travelDocument {\n      idNumber\n    }\n  }\n}\n\nfragment FlightServices on BookingInterface {\n  __typename\n  isPastBooking\n  ...FlightServicesOneWay\n  ...FlightServicesReturn\n  ...FlightServicesMulticity\n}\n\nfragment FlightServicesOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesReturn on BookingInterface {\n  ... on BookingReturn {\n    inbound {\n      ...FlightServicesMenuItem\n    }\n    outbound {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMenuItem on Trip {\n  legs {\n    type\n    id\n  }\n}\n\nfragment PassengerMenuDetail on BookingInterface {\n  ...Visa\n  passengers {\n    databaseId\n    ...Passenger\n  }\n}\n\nfragment Visa on BookingInterface {\n  passengers {\n    visaInformation {\n      requiredIn {\n        name\n        id\n      }\n      warningIn {\n        name\n        id\n      }\n    }\n  }\n}\n\nfragment Passenger on Passenger {\n  fullName\n  title\n  birthday\n}\n\nfragment StatusBar on BookingInterface {\n  ...StatusBarIcon\n  databaseId\n}\n\nfragment TripInfo on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...TripInfoOneWay\n  }\n  ... on BookingReturn {\n    ...TripInfoReturn\n  }\n  ... on BookingMulticity {\n    ...TripInfoMulticity\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  ...Duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  airline {\n    name\n    logoUrl\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment Duration on Trip {\n  duration\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripInfoOneWay on BookingOneWay {\n  trip {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripInfoReturn on BookingReturn {\n  outbound {\n    ...TripCities\n    ...TripTimes\n  }\n  inbound {\n    ...TripTimes\n  }\n}\n\nfragment TripInfoMulticity on BookingMulticity {\n  trips {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripCities on Trip {\n  departure {\n    ...Location\n  }\n  arrival {\n    ...Location\n  }\n}\n\nfragment TripTimes on Trip {\n  ...Duration\n  departure {\n    ...DateTime\n  }\n  arrival {\n    ...DateTime\n  }\n}\n\nfragment DateTime on RouteStop {\n  localTime\n}\n\nfragment Location on RouteStop {\n  airport {\n    city {\n      name\n    }\n    ...CountryFlag\n    id\n  }\n}\n\nfragment CountryFlag on Location {\n  countryFlagURL\n}\n\nfragment StatusBarIcon on BookingInterface {\n  status\n  isPastBooking\n}\n",
+  "text": "query MainMenuRefetchQuery(\n  $id: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $id, authToken: $authToken) {\n    __typename\n    ...MainMenu\n    id\n  }\n}\n\nfragment MainMenu on BookingInterface {\n  databaseId\n  authToken\n  isPastBooking\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n  ...FlightServices\n}\n\nfragment Header on BookingInterface {\n  isPastBooking\n  ...StatusBar\n  ...TripInfo\n  ...TripOverview\n}\n\nfragment PassengerMenuGroup on BookingInterface {\n  ...PassengerMenuDetail\n}\n\nfragment MissingInformation on BookingInterface {\n  passengers {\n    travelDocument {\n      idNumber\n    }\n  }\n}\n\nfragment FlightServices on BookingInterface {\n  __typename\n  isPastBooking\n  ...FlightServicesOneWay\n  ...FlightServicesReturn\n  ...FlightServicesMulticity\n}\n\nfragment FlightServicesOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesReturn on BookingInterface {\n  ... on BookingReturn {\n    inbound {\n      ...FlightServicesMenuItem\n    }\n    outbound {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMenuItem on Trip {\n  legs {\n    type\n    id\n  }\n}\n\nfragment PassengerMenuDetail on BookingInterface {\n  ...Visa\n  passengers {\n    databaseId\n    ...Passenger\n  }\n}\n\nfragment Visa on BookingInterface {\n  passengers {\n    visaInformation {\n      requiredIn {\n        name\n        id\n      }\n      warningIn {\n        name\n        id\n      }\n    }\n  }\n}\n\nfragment Passenger on Passenger {\n  fullName\n  title\n  birthday\n}\n\nfragment StatusBar on BookingInterface {\n  ...StatusBarIcon\n  databaseId\n}\n\nfragment TripInfo on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...TripInfoOneWay\n  }\n  ... on BookingReturn {\n    ...TripInfoReturn\n  }\n  ... on BookingMulticity {\n    ...TripInfoMulticity\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  ...Duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n  terminal\n  airport {\n    code\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  operatingAirline {\n    name\n    iata\n  }\n  airline {\n    name\n    logoUrl\n    code\n  }\n  vehicle {\n    model\n    manufacturer\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment Duration on Trip {\n  duration\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripInfoOneWay on BookingOneWay {\n  trip {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripInfoReturn on BookingReturn {\n  outbound {\n    ...TripCities\n    ...TripTimes\n  }\n  inbound {\n    ...TripTimes\n  }\n}\n\nfragment TripInfoMulticity on BookingMulticity {\n  trips {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripCities on Trip {\n  departure {\n    ...Location\n  }\n  arrival {\n    ...Location\n  }\n}\n\nfragment TripTimes on Trip {\n  ...Duration\n  departure {\n    ...DateTime\n  }\n  arrival {\n    ...DateTime\n  }\n}\n\nfragment DateTime on RouteStop {\n  localTime\n}\n\nfragment Location on RouteStop {\n  airport {\n    city {\n      name\n    }\n    ...CountryFlag\n    id\n  }\n}\n\nfragment CountryFlag on Location {\n  countryFlagURL\n}\n\nfragment StatusBarIcon on BookingInterface {\n  status\n  isPastBooking\n}\n",
   "metadata": {},
   "fragment": {
     "kind": "Fragment",
diff --git a/app/MMB/src/helpers/getFormattedAddress.js b/app/MMB/src/helpers/fetchGeocodeData.js
similarity index 77%
rename from app/MMB/src/helpers/getFormattedAddress.js
rename to app/MMB/src/helpers/fetchGeocodeData.js
index ba0e78b8..5ccfc31c 100644
--- a/app/MMB/src/helpers/getFormattedAddress.js
+++ b/app/MMB/src/helpers/fetchGeocodeData.js
@@ -1,21 +1,30 @@
 // @flow
 
+import memoize from 'memoize-one';
+
 type Coordinate = {|
   +latitude: number,
   +longitude: number,
 |};
 
-export default async function getAddress(
-  coordinate: ?Coordinate,
-  googleMapsAPIKey: string,
-) {
-  if (coordinate != null) {
+const fetchGeocodeData = memoize(
+  async (coordinate: Coordinate, googleMapsAPIKey: string) => {
     const { latitude, longitude } = coordinate;
     const res = await fetch(
       `https://maps.googleapis.com/maps/api/geocode/json?latlng=${latitude},${longitude}&key=${googleMapsAPIKey}`,
     );
     const json = await res.json();
-    const address = await json.results[0].address_components;
+    return json.results[0];
+  },
+);
+
+export async function getAddress(
+  coordinate: ?Coordinate,
+  googleMapsAPIKey: string,
+) {
+  if (coordinate != null) {
+    const data = await fetchGeocodeData(coordinate, googleMapsAPIKey);
+    const address = data.address_components;
 
     const city = (address.find(x => x.types.includes('locality')) || {})
       .long_name;
diff --git a/app/MMB/src/navigation/AddressPickerScreen.js b/app/MMB/src/navigation/AddressPickerScreen.js
index f12ccbaa..bfc24bd1 100644
--- a/app/MMB/src/navigation/AddressPickerScreen.js
+++ b/app/MMB/src/navigation/AddressPickerScreen.js
@@ -13,7 +13,7 @@ import {
 import { defaultTokens } from '@kiwicom/mobile-orbit';
 import memoize from 'memoize-one';
 
-import getFormattedAddress from '../helpers/getFormattedAddress';
+import { getAddress } from '../helpers/fetchGeocodeData';
 import { withGoogleMapsContext } from '../context/GoogleMapsContext';
 import AddressLocationInput from '../scenes/tripServices/transportation/AddressLocationInput';
 
@@ -86,7 +86,7 @@ export class AddressPickerScreen extends React.Component<Props, State> {
       : null;
 
   updateFormattedAddress = memoize(async (coordinate: ?Coordinate) => {
-    const formattedAddress = await getFormattedAddress(
+    const formattedAddress = await getAddress(
       coordinate,
       this.props.googleMapsAPIKey,
     );
diff --git a/app/MMB/src/scenes/tripOverview/TimelineDeparture.js b/app/MMB/src/scenes/tripOverview/TimelineDeparture.js
index 0462be30..b4249d6f 100644
--- a/app/MMB/src/scenes/tripOverview/TimelineDeparture.js
+++ b/app/MMB/src/scenes/tripOverview/TimelineDeparture.js
@@ -4,10 +4,11 @@ import * as React from 'react';
 import { View } from 'react-native';
 import { graphql, createFragmentContainer } from '@kiwicom/mobile-relay';
 import { Translation } from '@kiwicom/mobile-localization';
-import { NetworkImage, StyleSheet, Text } from '@kiwicom/mobile-shared';
+import { NetworkImage, StyleSheet, TextIcon } from '@kiwicom/mobile-shared';
 import idx from 'idx';
 import { defaultTokens } from '@kiwicom/mobile-orbit';
 
+import TimelineRow from './TimelineRow';
 import TimelineTitle from './TimelineTitle';
 import type { TimelineDeparture_routeStop } from './__generated__/TimelineDeparture_routeStop.graphql';
 import type { TimelineDeparture_legInfo } from './__generated__/TimelineDeparture_legInfo.graphql';
@@ -19,9 +20,21 @@ type Props = {|
 
 function TimelineDeparture(props: Props) {
   const legInfo = props.legInfo;
+
   const flightNumber = idx(legInfo, _ => _.flightNumber);
   const airlineLogoUrl = idx(legInfo, _ => _.airline.logoUrl);
   const airlineName = idx(legInfo, _ => _.airline.name);
+  const airlineIata = idx(legInfo, _ => _.airline.code);
+
+  const operatingAirline = idx(legInfo, _ => _.operatingAirline.name) || '';
+  const operatingAirlineIata = idx(legInfo, _ => _.operatingAirline.iata);
+
+  const flightModel = idx(legInfo, _ => _.vehicle.model) || '';
+  const manufacturer = idx(legInfo, _ => _.vehicle.manufacturer) || '';
+
+  const terminal = idx(props.routeStop, _ => _.terminal) || '';
+  const iata = idx(props.routeStop, _ => _.airport.code) || '';
+  const city = idx(props.routeStop, _ => _.airport.city.name) || '';
 
   return (
     <React.Fragment>
@@ -31,24 +44,63 @@ function TimelineDeparture(props: Props) {
 
       <View style={styleSheet.row}>
         <View style={styleSheet.detailedInfo}>
-          <View style={styleSheet.row}>
-            <Text style={styleSheet.key}>
-              <Translation id="mmb.flight_overview.timeline.carrier" />
-            </Text>
-            <Text style={styleSheet.value}>
-              <Translation passThrough={` ${airlineName || ''}`} />
-            </Text>
-          </View>
-
-          <View style={styleSheet.row}>
-            {/* TODO: this looks weird when we need to work with flights and busses - how to fix? */}
-            <Text style={styleSheet.key}>
-              <Translation id="mmb.flight_overview.timeline.flight_no" />
-            </Text>
-            <Text style={styleSheet.value}>
-              <Translation passThrough={` ${flightNumber || ''}`} />
-            </Text>
-          </View>
+          <TimelineRow
+            icon={
+              <TextIcon
+                code="a"
+                style={[styleSheet.icon, styleSheet.carrierIcon]}
+              />
+            }
+            title={<Translation id="mmb.flight_overview.timeline.carrier" />}
+            value={<Translation passThrough={` ${airlineName || ''}`} />}
+          />
+
+          {airlineIata !== operatingAirlineIata && (
+            <TimelineRow
+              icon={
+                <TextIcon
+                  code="a"
+                  style={[styleSheet.icon, styleSheet.carrierIcon]}
+                />
+              }
+              title={
+                <Translation id="mmb.flight_overview.timeline.operating_airline" />
+              }
+              value={<Translation passThrough={`  ${operatingAirline}`} />}
+            />
+          )}
+
+          <TimelineRow
+            icon={<TextIcon code="R" style={styleSheet.icon} />}
+            title={<Translation id="mmb.flight_overview.timeline.flight_no" />}
+            value={
+              <Translation
+                passThrough={` ${airlineIata || ''} ${flightNumber || ''}`}
+              />
+            }
+          />
+
+          <TimelineRow
+            icon={<TextIcon code="R" style={styleSheet.icon} />}
+            value={
+              <Translation passThrough={`${manufacturer} ${flightModel}`} />
+            }
+          />
+          {terminal !== '' && (
+            <TimelineRow
+              icon={<TextIcon code="*" style={styleSheet.icon} />}
+              value={
+                <Translation
+                  id="mmb.flight_overview.timeline.terminal"
+                  values={{
+                    terminal,
+                    city,
+                    iata,
+                  }}
+                />
+              }
+            />
+          )}
         </View>
 
         <NetworkImage
@@ -65,13 +117,29 @@ export default createFragmentContainer(
   graphql`
     fragment TimelineDeparture_routeStop on RouteStop {
       ...TimelineTitle
+      terminal
+      airport {
+        code
+        city {
+          name
+        }
+      }
     }
 
     fragment TimelineDeparture_legInfo on Leg {
       flightNumber
+      operatingAirline {
+        name
+        iata
+      }
       airline {
         name
         logoUrl
+        code
+      }
+      vehicle {
+        model
+        manufacturer
       }
     }
   `,
@@ -89,11 +157,12 @@ const styleSheet = StyleSheet.create({
     width: 24,
     height: 24,
   },
-  key: {
+  icon: {
     fontSize: 12,
+    color: defaultTokens.colorIconSecondary,
+    marginEnd: 5,
   },
-  value: {
-    fontSize: 12,
-    color: defaultTokens.colorTextSecondary,
+  carrierIcon: {
+    transform: [{ rotate: '45deg' }],
   },
 });
diff --git a/app/MMB/src/scenes/tripOverview/TimelineRow.js b/app/MMB/src/scenes/tripOverview/TimelineRow.js
new file mode 100644
index 00000000..39b2520d
--- /dev/null
+++ b/app/MMB/src/scenes/tripOverview/TimelineRow.js
@@ -0,0 +1,38 @@
+// @flow strict
+
+import * as React from 'react';
+import { View } from 'react-native';
+import type { TranslationType } from '@kiwicom/mobile-localization';
+import { StyleSheet, Text, TextIcon } from '@kiwicom/mobile-shared';
+import { defaultTokens } from '@kiwicom/mobile-orbit';
+
+type Props = {|
+  +icon: React.Element<typeof TextIcon>,
+  +value: TranslationType,
+  +title?: TranslationType,
+|};
+
+export default function TimelineRow(props: Props) {
+  return (
+    <View style={styles.row}>
+      {props.icon}
+      {props.title != null && <Text style={styles.key}>{props.title}</Text>}
+      <Text style={styles.value}>{props.value}</Text>
+    </View>
+  );
+}
+
+const styles = StyleSheet.create({
+  row: {
+    flexDirection: 'row',
+    alignItems: 'center',
+    marginTop: 5,
+  },
+  key: {
+    fontSize: 12,
+  },
+  value: {
+    fontSize: 12,
+    color: defaultTokens.colorTextSecondary,
+  },
+});
diff --git a/app/MMB/src/scenes/tripOverview/TimelineTitle.js b/app/MMB/src/scenes/tripOverview/TimelineTitle.js
index 3d7dc468..d3aa387d 100644
--- a/app/MMB/src/scenes/tripOverview/TimelineTitle.js
+++ b/app/MMB/src/scenes/tripOverview/TimelineTitle.js
@@ -62,7 +62,7 @@ class TimelineTitle extends React.Component<PropsWithContext> {
 
     const warningStyle = warning != null ? styleSheet.warningStyle : null;
     return (
-      <View style={styleSheet.row}>
+      <View style={[styleSheet.row, styleSheet.underline]}>
         <View style={styleSheet.dateTime}>
           {localTime != null && (
             <Translation
@@ -152,4 +152,8 @@ const styleSheet = StyleSheet.create({
     flexDirection: 'row',
     alignItems: 'center',
   },
+  underline: {
+    borderBottomWidth: StyleSheet.hairlineWidth,
+    borderColor: defaultTokens.paletteInkLighter,
+  },
 });
diff --git a/app/MMB/src/scenes/tripOverview/__generated__/TimelineDeparture_legInfo.graphql.js b/app/MMB/src/scenes/tripOverview/__generated__/TimelineDeparture_legInfo.graphql.js
index 6762f957..e45892d2 100644
--- a/app/MMB/src/scenes/tripOverview/__generated__/TimelineDeparture_legInfo.graphql.js
+++ b/app/MMB/src/scenes/tripOverview/__generated__/TimelineDeparture_legInfo.graphql.js
@@ -12,16 +12,33 @@ import type { FragmentReference } from "relay-runtime";
 declare export opaque type TimelineDeparture_legInfo$ref: FragmentReference;
 export type TimelineDeparture_legInfo = {|
   +flightNumber: ?number,
+  +operatingAirline: ?{|
+    +name: ?string,
+    +iata: ?string,
+  |},
   +airline: ?{|
     +name: ?string,
     +logoUrl: ?string,
+    +code: ?string,
+  |},
+  +vehicle: ?{|
+    +model: ?string,
+    +manufacturer: ?string,
   |},
   +$refType: TimelineDeparture_legInfo$ref,
 |};
 */
 
 
-const node/*: ConcreteFragment*/ = {
+const node/*: ConcreteFragment*/ = (function(){
+var v0 = {
+  "kind": "ScalarField",
+  "alias": null,
+  "name": "name",
+  "args": null,
+  "storageKey": null
+};
+return {
   "kind": "Fragment",
   "name": "TimelineDeparture_legInfo",
   "type": "Leg",
@@ -35,6 +52,25 @@ const node/*: ConcreteFragment*/ = {
       "args": null,
       "storageKey": null
     },
+    {
+      "kind": "LinkedField",
+      "alias": null,
+      "name": "operatingAirline",
+      "storageKey": null,
+      "args": null,
+      "concreteType": "OperatingAirline",
+      "plural": false,
+      "selections": [
+        v0,
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "iata",
+          "args": null,
+          "storageKey": null
+        }
+      ]
+    },
     {
       "kind": "LinkedField",
       "alias": null,
@@ -44,17 +80,43 @@ const node/*: ConcreteFragment*/ = {
       "concreteType": "Airline",
       "plural": false,
       "selections": [
+        v0,
         {
           "kind": "ScalarField",
           "alias": null,
-          "name": "name",
+          "name": "logoUrl",
           "args": null,
           "storageKey": null
         },
         {
           "kind": "ScalarField",
           "alias": null,
-          "name": "logoUrl",
+          "name": "code",
+          "args": null,
+          "storageKey": null
+        }
+      ]
+    },
+    {
+      "kind": "LinkedField",
+      "alias": null,
+      "name": "vehicle",
+      "storageKey": null,
+      "args": null,
+      "concreteType": "Vehicle",
+      "plural": false,
+      "selections": [
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "model",
+          "args": null,
+          "storageKey": null
+        },
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "manufacturer",
           "args": null,
           "storageKey": null
         }
@@ -62,6 +124,7 @@ const node/*: ConcreteFragment*/ = {
     }
   ]
 };
+})();
 // prettier-ignore
-(node/*: any*/).hash = '99a0a802897e26021892c6b44b61c966';
+(node/*: any*/).hash = '66867739322485b5cfd36cc52fc497af';
 module.exports = node;
diff --git a/app/MMB/src/scenes/tripOverview/__generated__/TripOverviewTabletQuery.graphql.js b/app/MMB/src/scenes/tripOverview/__generated__/TripOverviewTabletQuery.graphql.js
index 4339387c..bf4c7f5a 100644
--- a/app/MMB/src/scenes/tripOverview/__generated__/TripOverviewTabletQuery.graphql.js
+++ b/app/MMB/src/scenes/tripOverview/__generated__/TripOverviewTabletQuery.graphql.js
@@ -1,6 +1,6 @@
 /**
  * @flow
- * @relayHash c7aa07cab2aca717d1012c6245517fa7
+ * @relayHash 8a09c7d126abc0e0198b3e7c39488c86
  */
 
 /* eslint-disable */
@@ -120,6 +120,14 @@ fragment TimelineTrip on Trip {
 
 fragment TimelineDeparture_routeStop on RouteStop {
   ...TimelineTitle
+  terminal
+  airport {
+    code
+    city {
+      name
+    }
+    id
+  }
 }
 
 fragment TimelineArrival on RouteStop {
@@ -128,9 +136,18 @@ fragment TimelineArrival on RouteStop {
 
 fragment TimelineDeparture_legInfo on Leg {
   flightNumber
+  operatingAirline {
+    name
+    iata
+  }
   airline {
     name
     logoUrl
+    code
+  }
+  vehicle {
+    model
+    manufacturer
   }
 }
 
@@ -254,23 +271,13 @@ v7 = [
   },
   v6
 ],
-v8 = [
-  v6,
-  {
-    "kind": "LinkedField",
-    "alias": null,
-    "name": "airport",
-    "storageKey": null,
-    "args": null,
-    "concreteType": "Location",
-    "plural": false,
-    "selections": [
-      v5,
-      v4,
-      v2
-    ]
-  }
-],
+v8 = {
+  "kind": "ScalarField",
+  "alias": null,
+  "name": "code",
+  "args": null,
+  "storageKey": null
+},
 v9 = [
   {
     "kind": "LinkedField",
@@ -317,7 +324,31 @@ v9 = [
         "args": null,
         "concreteType": "RouteStop",
         "plural": false,
-        "selections": v8
+        "selections": [
+          v6,
+          {
+            "kind": "LinkedField",
+            "alias": null,
+            "name": "airport",
+            "storageKey": null,
+            "args": null,
+            "concreteType": "Location",
+            "plural": false,
+            "selections": [
+              v5,
+              v4,
+              v2,
+              v8
+            ]
+          },
+          {
+            "kind": "ScalarField",
+            "alias": null,
+            "name": "terminal",
+            "args": null,
+            "storageKey": null
+          }
+        ]
       },
       {
         "kind": "LinkedField",
@@ -327,7 +358,23 @@ v9 = [
         "args": null,
         "concreteType": "RouteStop",
         "plural": false,
-        "selections": v8
+        "selections": [
+          v6,
+          {
+            "kind": "LinkedField",
+            "alias": null,
+            "name": "airport",
+            "storageKey": null,
+            "args": null,
+            "concreteType": "Location",
+            "plural": false,
+            "selections": [
+              v5,
+              v4,
+              v2
+            ]
+          }
+        ]
       },
       {
         "kind": "ScalarField",
@@ -336,6 +383,25 @@ v9 = [
         "args": null,
         "storageKey": null
       },
+      {
+        "kind": "LinkedField",
+        "alias": null,
+        "name": "operatingAirline",
+        "storageKey": null,
+        "args": null,
+        "concreteType": "OperatingAirline",
+        "plural": false,
+        "selections": [
+          v3,
+          {
+            "kind": "ScalarField",
+            "alias": null,
+            "name": "iata",
+            "args": null,
+            "storageKey": null
+          }
+        ]
+      },
       {
         "kind": "LinkedField",
         "alias": null,
@@ -352,6 +418,32 @@ v9 = [
             "name": "logoUrl",
             "args": null,
             "storageKey": null
+          },
+          v8
+        ]
+      },
+      {
+        "kind": "LinkedField",
+        "alias": null,
+        "name": "vehicle",
+        "storageKey": null,
+        "args": null,
+        "concreteType": "Vehicle",
+        "plural": false,
+        "selections": [
+          {
+            "kind": "ScalarField",
+            "alias": null,
+            "name": "model",
+            "args": null,
+            "storageKey": null
+          },
+          {
+            "kind": "ScalarField",
+            "alias": null,
+            "name": "manufacturer",
+            "args": null,
+            "storageKey": null
           }
         ]
       }
@@ -363,7 +455,7 @@ return {
   "operationKind": "query",
   "name": "TripOverviewTabletQuery",
   "id": null,
-  "text": "query TripOverviewTabletQuery(\n  $id: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $id, authToken: $authToken) {\n    __typename\n    ...TripOverview\n    id\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  ...Duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  airline {\n    name\n    logoUrl\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment Duration on Trip {\n  duration\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n",
+  "text": "query TripOverviewTabletQuery(\n  $id: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $id, authToken: $authToken) {\n    __typename\n    ...TripOverview\n    id\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  ...Duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n  terminal\n  airport {\n    code\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  operatingAirline {\n    name\n    iata\n  }\n  airline {\n    name\n    logoUrl\n    code\n  }\n  vehicle {\n    model\n    manufacturer\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment Duration on Trip {\n  duration\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n",
   "metadata": {},
   "fragment": {
     "kind": "Fragment",
diff --git a/app/MMB/src/scenes/tripServices/transportation/TransportationMap.js b/app/MMB/src/scenes/tripServices/transportation/TransportationMap.js
index e515484b..6b36d243 100644
--- a/app/MMB/src/scenes/tripServices/transportation/TransportationMap.js
+++ b/app/MMB/src/scenes/tripServices/transportation/TransportationMap.js
@@ -18,7 +18,7 @@ import {
 import { defaultTokens } from '@kiwicom/mobile-orbit';
 import querystring from 'querystring';
 
-import getFormattedAddress from '../../../helpers/getFormattedAddress';
+import { getAddress } from '../../../helpers/fetchGeocodeData';
 import { withGoogleMapsContext } from '../../../context/GoogleMapsContext';
 import MarkerLocationButton from './MarkerLocationButton';
 import CurrentPositionButton from './CurrentPositionButton';
@@ -174,7 +174,7 @@ export class TransportationMap extends React.Component<Props, State> {
       });
 
       // querystring.stringify uses encodeURIComponent which turns HH:mm into HH%3Amm which rideways does not understand
-      return `${whitelabelURL}?${query}&time=${time}`;
+      return `${whitelabelURL}search?${query}&time=${time}`;
     }
     return whitelabelURL;
   };
@@ -205,7 +205,7 @@ export class TransportationMap extends React.Component<Props, State> {
 
   renderMarkerB = async (e: NativeEvent) => {
     const { latitude, longitude } = e.nativeEvent.coordinate;
-    const formattedAddress = await getFormattedAddress(
+    const formattedAddress = await getAddress(
       { latitude, longitude },
       this.props.googleMapsAPIKey,
     );
diff --git a/packages/localization/src/vocabularies/ManageMyBooking.js b/packages/localization/src/vocabularies/ManageMyBooking.js
index 80f6f8c4..92086b39 100644
--- a/packages/localization/src/vocabularies/ManageMyBooking.js
+++ b/packages/localization/src/vocabularies/ManageMyBooking.js
@@ -65,11 +65,14 @@ export default {
   // MMB Flight overview
   'mmb.flight_overview.title': 'Flight Overview',
   'mmb.flight_overview.timeline.carrier': 'Carrier:',
+  'mmb.flight_overview.timeline.operating_airline': 'Operating airline:',
   'mmb.flight_overview.timeline.flight_no': 'Flight number:',
   'mmb.flight_overview.timeline.warning.different_airport_return':
     "Warning: you will depart from a different place. You'll arrive at __1_arrival__ and leave from __2_departure__.",
   'mmb.flight_overview.timeline.warning.different_airport_return_first':
     'Warning: your departure point differs from your return one. You will depart from __1_departure__ and return to __2_arrival__.',
+  'mmb.flight_overview.timeline.terminal':
+    '__1_city__ __2_iata__ - Terminal - __3_terminal__',
 
   // MMB Flight services
   'mmb.flight_services.additional_baggage': 'Baggage',


Test patch:
diff --git a/app/MMB/src/scenes/tripOverview/__generated__/TimelineDeparture_routeStop.graphql.js b/app/MMB/src/scenes/tripOverview/__generated__/TimelineDeparture_routeStop.graphql.js
index 9d4aa51a..e854370d 100644
--- a/app/MMB/src/scenes/tripOverview/__generated__/TimelineDeparture_routeStop.graphql.js
+++ b/app/MMB/src/scenes/tripOverview/__generated__/TimelineDeparture_routeStop.graphql.js
@@ -12,6 +12,13 @@ type TimelineTitle$ref = any;
 import type { FragmentReference } from "relay-runtime";
 declare export opaque type TimelineDeparture_routeStop$ref: FragmentReference;
 export type TimelineDeparture_routeStop = {|
+  +terminal: ?string,
+  +airport: ?{|
+    +code: ?string,
+    +city: ?{|
+      +name: ?string
+    |},
+  |},
   +$fragmentRefs: TimelineTitle$ref,
   +$refType: TimelineDeparture_routeStop$ref,
 |};
@@ -29,9 +36,52 @@ const node/*: ConcreteFragment*/ = {
       "kind": "FragmentSpread",
       "name": "TimelineTitle",
       "args": null
+    },
+    {
+      "kind": "ScalarField",
+      "alias": null,
+      "name": "terminal",
+      "args": null,
+      "storageKey": null
+    },
+    {
+      "kind": "LinkedField",
+      "alias": null,
+      "name": "airport",
+      "storageKey": null,
+      "args": null,
+      "concreteType": "Location",
+      "plural": false,
+      "selections": [
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "code",
+          "args": null,
+          "storageKey": null
+        },
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "city",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "LocationArea",
+          "plural": false,
+          "selections": [
+            {
+              "kind": "ScalarField",
+              "alias": null,
+              "name": "name",
+              "args": null,
+              "storageKey": null
+            }
+          ]
+        }
+      ]
     }
   ]
 };
 // prettier-ignore
-(node/*: any*/).hash = 'c0bad4d05dbe1572194c7592c67abbe1';
+(node/*: any*/).hash = 'a6b9d139531030379ee3c46293494a47';
 module.exports = node;
diff --git a/app/MMB/src/scenes/tripServices/transportation/__tests__/TransportationMap.test.js b/app/MMB/src/scenes/tripServices/transportation/__tests__/TransportationMap.test.js
index d35047e8..32189562 100644
--- a/app/MMB/src/scenes/tripServices/transportation/__tests__/TransportationMap.test.js
+++ b/app/MMB/src/scenes/tripServices/transportation/__tests__/TransportationMap.test.js
@@ -43,7 +43,7 @@ describe('TransportationMap', () => {
     };
 
     expect(transportationMap.buildWhitelabelURL()).toBe(
-      'https://some.url.without.params/?utm_source=kiwi&utm_medium=startpart&utm_campaign=mobileappconfpage&pickup=51%2C16&dropoff=51.5%2C15.5&language=en&currency=EUR&date=2018-08-30&time=14:40',
+      'https://some.url.without.params/search?utm_source=kiwi&utm_medium=startpart&utm_campaign=mobileappconfpage&pickup=51%2C16&dropoff=51.5%2C15.5&language=en&currency=EUR&date=2018-08-30&time=14:40',
     );
   });
   test('buildWhitelabelURL: it returns the whitelabelURL with correct params when both markers have been placed (without date)', () => {
@@ -72,7 +72,7 @@ describe('TransportationMap', () => {
     };
 
     expect(transportationMap.buildWhitelabelURL()).toBe(
-      'https://some.url.without.params/?utm_source=kiwi&utm_medium=startpart&utm_campaign=mobileappconfpage&pickup=51%2C16&dropoff=51.5%2C15.5&language=en&currency=EUR&date=&time=',
+      'https://some.url.without.params/search?utm_source=kiwi&utm_medium=startpart&utm_campaign=mobileappconfpage&pickup=51%2C16&dropoff=51.5%2C15.5&language=en&currency=EUR&date=&time=',
     );
   });