From 77d49b939bfece5392ec4e40740be645ee6a3a08 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Mon, 16 Jul 2018 17:10:02 +0200 Subject: [PATCH] 10.0 This is the GPLv3-licensed release! The content of this commit is identical to the non-public commit ce1f738dec8c75824f6f1279681fffccedf42d90. --- .gitignore | 3 + .gitmodules | 4 + build.gradle | 21 + enabler | 1 + gradle.properties | 1 + oeffi/.gitignore | 6 + oeffi/AndroidManifest.xml | 384 ++++ oeffi/CHANGES | 6 + oeffi/COPYING | 621 +++++++ oeffi/assets/messages.txt | 8 + oeffi/assets/networks.txt | 96 + oeffi/assets/plans-index.txt | 309 ++++ oeffi/build.gradle | 75 + .../ic_oeffi_directions_color_48dp-mdpi.svg | 29 + .../ic_oeffi_plans_color_48dp-mdpi.svg | 45 + .../ic_oeffi_stations_color_48dp-mdpi.svg | 27 + oeffi/proguard.cfg | 80 + oeffi/project.properties | 13 + oeffi/res/anim/enter_from_left.xml | 14 + oeffi/res/anim/enter_from_right.xml | 14 + oeffi/res/anim/exit_to_left.xml | 14 + oeffi/res/anim/exit_to_right.xml | 14 + oeffi/res/anim/pop_in.xml | 14 + oeffi/res/anim/pop_out.xml | 14 + oeffi/res/anim/rotate.xml | 13 + oeffi/res/anim/zoom_controls.xml | 12 + oeffi/res/animator/heartbeat.xml | 47 + oeffi/res/color/list_entry.xml | 14 + .../ic_accessible_grey600_18dp.xml | 12 + .../ic_arrow_back_white_24dp.xml | 9 + .../ic_beenhere_grey600_24dp.xml | 9 + .../drawable-anydpi/ic_block_black_24dp.xml | 9 + .../ic_cash_multiple_grey600_24dp.xml | 7 + .../drawable-anydpi/ic_clear_black_24dp.xml | 9 + .../drawable-anydpi/ic_clear_grey600_24dp.xml | 9 + .../ic_contacts_grey600_24dp.xml | 9 + .../ic_directions_bike_grey600_18dp.xml | 9 + .../ic_directions_bike_grey600_24dp.xml | 9 + .../ic_directions_walk_grey600_24dp.xml | 9 + .../ic_expand_less_black_24dp.xml | 9 + .../ic_expand_less_white_24dp.xml | 9 + .../ic_expand_more_black_24dp.xml | 9 + .../ic_expand_more_white_24dp.xml | 9 + .../ic_favorite_border_grey600_24dp.xml | 9 + .../ic_filter_list_white_24dp.xml | 9 + .../ic_filter_list_yellow_24dp.xml | 9 + .../drawable-anydpi/ic_flag_grey600_24dp.xml | 9 + .../ic_gps_fixed_grey600_24dp.xml | 9 + .../drawable-anydpi/ic_info_grey600_24dp.xml | 9 + .../ic_info_outline_grey600_24dp.xml | 9 + .../ic_info_outline_white_24dp.xml | 9 + .../ic_local_taxi_grey600_24dp.xml | 9 + .../ic_location_disabled_white_24dp.xml | 9 + .../ic_location_searching_grey600_24dp.xml | 9 + .../ic_location_searching_white_24dp.xml | 9 + .../res/drawable-anydpi/ic_map_black_24dp.xml | 9 + .../drawable-anydpi/ic_menu_white_24dp.xml | 9 + .../ic_more_vert_grey600_24dp.xml | 9 + .../ic_more_vert_white_24dp.xml | 9 + .../ic_oeffi_directions_grey600_36dp.xml | 23 + .../ic_oeffi_plans_grey300_72dp.xml | 45 + .../ic_oeffi_plans_grey600_36dp.xml | 45 + .../ic_oeffi_stations_grey600_36dp.xml | 20 + .../ic_offline_pin_grey600_24dp.xml | 9 + .../drawable-anydpi/ic_place_grey600_24dp.xml | 9 + .../ic_portable_wifi_off_grey600_24dp.xml | 9 + .../drawable-anydpi/ic_refresh_white_24dp.xml | 9 + .../ic_search_grey600_24dp.xml | 9 + .../drawable-anydpi/ic_search_white_24dp.xml | 9 + .../ic_settings_grey600_24dp.xml | 9 + ...ic_settings_input_antenna_grey600_18dp.xml | 9 + .../drawable-anydpi/ic_share_white_24dp.xml | 9 + .../drawable-anydpi/ic_shuffle_white_24dp.xml | 9 + .../ic_star_border_black_24dp.xml | 9 + .../ic_star_border_white_24dp.xml | 9 + .../drawable-anydpi/ic_star_grey600_24dp.xml | 9 + .../drawable-anydpi/ic_star_white_24dp.xml | 9 + .../drawable-anydpi/ic_today_white_24dp.xml | 9 + .../drawable-anydpi/ic_warning_amber_24dp.xml | 9 + .../res/drawable-anydpi/network_bvg_logo.xml | 19 + oeffi/res/drawable-anydpi/network_db_logo.xml | 29 + .../res/drawable-anydpi/network_kvv_logo.xml | 24 + .../res/drawable-anydpi/network_oebb_logo.xml | 25 + oeffi/res/drawable-anydpi/network_sh_logo.xml | 16 + .../drawable-anydpi/network_vagfr_logo.xml | 16 + .../res/drawable-anydpi/network_vbb_logo.xml | 16 + .../res/drawable-anydpi/network_vgn_logo.xml | 61 + .../res/drawable-anydpi/network_vrr_logo.xml | 33 + .../product_bus_color_22dp.xml | 78 + .../product_bus_color_32dp.xml | 78 + .../product_bus_darkgrey_32dp.xml | 78 + .../product_cablecar_color_22dp.xml | 34 + .../product_cablecar_color_32dp.xml | 34 + .../product_cablecar_darkgrey_32dp.xml | 34 + .../product_call_color_22dp.xml | 22 + .../product_call_color_32dp.xml | 22 + .../product_call_darkgrey_32dp.xml | 22 + .../product_ferry_color_22dp.xml | 33 + .../product_ferry_color_32dp.xml | 33 + .../product_ferry_darkgrey_32dp.xml | 33 + .../product_highspeed_color_22dp.xml | 38 + .../product_highspeed_color_32dp.xml | 38 + .../product_highspeed_darkgrey_32dp.xml | 38 + .../product_suburban_color_22dp.xml | 25 + .../product_suburban_color_32dp.xml | 25 + .../product_suburban_darkgrey_32dp.xml | 25 + .../product_subway_color_22dp.xml | 31 + .../product_subway_color_32dp.xml | 31 + .../product_subway_darkgrey_32dp.xml | 31 + .../product_train_color_22dp.xml | 28 + .../product_train_color_32dp.xml | 28 + .../product_train_darkgrey_32dp.xml | 28 + .../product_tram_color_22dp.xml | 66 + .../product_tram_color_32dp.xml | 66 + .../product_tram_darkgrey_32dp.xml | 66 + .../res/drawable-hdpi/appwidget_dark_bg.9.png | Bin 0 -> 731 bytes .../appwidget_dark_bg_focused.9.png | Bin 0 -> 856 bytes .../appwidget_dark_bg_pressed.9.png | Bin 0 -> 798 bytes .../drawable-hdpi/btn_zoom_down_disabled.png | Bin 0 -> 274 bytes .../drawable-hdpi/btn_zoom_down_normal.png | Bin 0 -> 286 bytes .../drawable-hdpi/btn_zoom_down_pressed.png | Bin 0 -> 286 bytes .../drawable-hdpi/btn_zoom_up_disabled.png | Bin 0 -> 326 bytes .../res/drawable-hdpi/btn_zoom_up_normal.png | Bin 0 -> 338 bytes .../res/drawable-hdpi/btn_zoom_up_pressed.png | Bin 0 -> 338 bytes oeffi/res/drawable-hdpi/da_marker_red.png | Bin 0 -> 2658 bytes .../ic_maps_indicator_endpoint_list.png | Bin 0 -> 2812 bytes .../ic_maps_indicator_startpoint_list.png | Bin 0 -> 2695 bytes .../drawable-hdpi/ic_station_grey600_24dp.png | Bin 0 -> 588 bytes .../drawable-hdpi/image_frame_default.9.png | Bin 0 -> 2647 bytes .../res/drawable-hdpi/image_frame_small.9.png | Bin 0 -> 1567 bytes oeffi/res/drawable-hdpi/location_off.png | Bin 0 -> 1349 bytes oeffi/res/drawable-hdpi/location_on.png | Bin 0 -> 1588 bytes .../popup_dir_pointer_button_normal.9.png | Bin 0 -> 2376 bytes .../popup_dir_pointer_button_selected.9.png | Bin 0 -> 3443 bytes oeffi/res/drawable-hdpi/station_glow.png | Bin 0 -> 2907 bytes oeffi/res/drawable-mdpi/capacity_1.png | Bin 0 -> 184 bytes oeffi/res/drawable-mdpi/capacity_2.png | Bin 0 -> 184 bytes oeffi/res/drawable-mdpi/capacity_3.png | Bin 0 -> 177 bytes .../drawable-xhdpi/appwidget_dark_bg.9.png | Bin 0 -> 1005 bytes .../appwidget_dark_bg_focused.9.png | Bin 0 -> 1135 bytes .../appwidget_dark_bg_pressed.9.png | Bin 0 -> 1098 bytes .../ic_maps_product_default.png | Bin 0 -> 5208 bytes .../ic_station_grey600_24dp.png | Bin 0 -> 762 bytes ...earest_favorite_station_widget_preview.png | Bin 0 -> 9728 bytes .../drawable-xhdpi/network_bayern_icon.png | Bin 0 -> 1749 bytes oeffi/res/drawable-xhdpi/network_dsb_icon.png | Bin 0 -> 2173 bytes oeffi/res/drawable-xhdpi/network_nri_icon.png | Bin 0 -> 1803 bytes oeffi/res/drawable-xhdpi/network_ns_icon.png | Bin 0 -> 1902 bytes oeffi/res/drawable-xhdpi/network_pl_icon.png | Bin 0 -> 1416 bytes oeffi/res/drawable-xhdpi/network_rt_icon.png | Bin 0 -> 6887 bytes oeffi/res/drawable-xhdpi/network_sbb_icon.png | Bin 0 -> 1462 bytes oeffi/res/drawable-xhdpi/network_se_icon.png | Bin 0 -> 1206 bytes .../res/drawable-xhdpi/network_sncb_icon.png | Bin 0 -> 1427 bytes oeffi/res/drawable-xhdpi/network_tfi_icon.png | Bin 0 -> 1509 bytes .../drawable/appwidget_dark_bg_clickable.xml | 8 + oeffi/res/drawable/btn_zoom_down.xml | 8 + oeffi/res/drawable/btn_zoom_up.xml | 8 + oeffi/res/drawable/disclaimer_background.xml | 14 + .../drawable/disclaimer_background_dark.xml | 14 + oeffi/res/drawable/form_background.xml | 9 + oeffi/res/drawable/ic_expand_black_24dp.xml | 7 + oeffi/res/drawable/ic_expand_white_24dp.xml | 7 + oeffi/res/drawable/ic_filter_list_24dp.xml | 7 + oeffi/res/drawable/ic_location_white_24dp.xml | 7 + oeffi/res/drawable/ic_menu_product_bus.xml | 7 + .../res/drawable/ic_menu_product_cablecar.xml | 7 + oeffi/res/drawable/ic_menu_product_call.xml | 7 + oeffi/res/drawable/ic_menu_product_ferry.xml | 7 + .../drawable/ic_menu_product_highspeed.xml | 7 + .../res/drawable/ic_menu_product_suburban.xml | 7 + oeffi/res/drawable/ic_menu_product_subway.xml | 7 + oeffi/res/drawable/ic_menu_product_train.xml | 7 + oeffi/res/drawable/ic_menu_product_tram.xml | 7 + oeffi/res/drawable/ic_oeffi_directions.xml | 7 + oeffi/res/drawable/ic_oeffi_plans.xml | 7 + oeffi/res/drawable/ic_oeffi_stations.xml | 7 + oeffi/res/drawable/ic_star_24dp.xml | 8 + .../res/drawable/popup_dir_pointer_button.xml | 7 + oeffi/res/drawable/space_24dp.xml | 10 + oeffi/res/drawable/space_48dp.xml | 10 + oeffi/res/drawable/view_shadow_bottom.xml | 12 + oeffi/res/drawable/view_shadow_right.xml | 12 + oeffi/res/drawable/view_shadow_top.xml | 12 + oeffi/res/layout/action_bar.xml | 101 ++ oeffi/res/layout/changelog_dialog.xml | 20 + .../create_launcher_shortcut_dialog.xml | 16 + oeffi/res/layout/directions_content.xml | 91 + oeffi/res/layout/directions_form_include.xml | 204 +++ .../directions_location_dropdown_entry.xml | 9 + oeffi/res/layout/directions_map_pin.xml | 49 + .../layout/directions_query_history_entry.xml | 74 + .../directions_trip_details_content.xml | 137 ++ .../directions_trip_details_fares_row.xml | 20 + ...rections_trip_details_individual_entry.xml | 26 + .../directions_trip_details_public_entry.xml | 98 + ...ns_trip_details_public_entry_collapsed.xml | 25 + ...ections_trip_details_public_entry_stop.xml | 48 + .../directions_trip_overview_content.xml | 47 + .../directions_trip_overview_custom_title.xml | 84 + oeffi/res/layout/favorites_content.xml | 32 + oeffi/res/layout/favorites_list_entry.xml | 46 + oeffi/res/layout/hint_dialog.xml | 15 + oeffi/res/layout/map_trip_line.xml | 5 + oeffi/res/layout/navigation_drawer.xml | 42 + oeffi/res/layout/navigation_drawer_entry.xml | 45 + oeffi/res/layout/network_picker_content.xml | 68 + oeffi/res/layout/network_picker_entry.xml | 81 + oeffi/res/layout/network_picker_separator.xml | 13 + oeffi/res/layout/plans_content.xml | 93 + oeffi/res/layout/plans_picker_content.xml | 97 + oeffi/res/layout/plans_picker_entry.xml | 113 ++ oeffi/res/layout/station_widget_content.xml | 76 + oeffi/res/layout/station_widget_entry.xml | 79 + .../layout/station_widget_entry_loading.xml | 9 + oeffi/res/layout/stations_content.xml | 401 +++++ .../layout/stations_filter_popup_content.xml | 130 ++ .../layout/stations_location_provider_row.xml | 10 + .../stations_station_details_content.xml | 77 + .../layout/stations_station_details_entry.xml | 96 + .../stations_station_details_header.xml | 41 + .../stations_station_details_header_line.xml | 26 + oeffi/res/layout/stations_station_entry.xml | 128 ++ .../stations_station_entry_departure.xml | 45 + .../layout/stations_station_entry_message.xml | 8 + oeffi/res/layout/zoom_controls.xml | 16 + .../res/menu/directions_location_context.xml | 17 + oeffi/res/menu/directions_options.xml | 8 + .../menu/directions_query_history_context.xml | 20 + ...ections_query_history_location_context.xml | 19 + .../directions_trip_details_action_share.xml | 11 + oeffi/res/menu/donate_menu.xml | 17 + oeffi/res/menu/global_options.xml | 35 + oeffi/res/menu/network_picker_context.xml | 8 + oeffi/res/menu/plans_picker_context.xml | 14 + oeffi/res/menu/station_map_context.xml | 25 + oeffi/res/menu/stations_options.xml | 8 + oeffi/res/menu/stations_station_context.xml | 34 + oeffi/res/values-de/directions.xml | 45 + oeffi/res/values-de/fare_types.xml | 15 + oeffi/res/values-de/networks.xml | 125 ++ oeffi/res/values-de/select_map.xml | 10 + oeffi/res/values-de/strings.xml | 366 ++++ .../res/values-de/strings_aquire_location.xml | 9 + .../res/values-de/strings_error_reporter.xml | 11 + oeffi/res/values-h400dp/dimens.xml | 6 + oeffi/res/values-large/dimens.xml | 30 + oeffi/res/values-small/dimens.xml | 11 + oeffi/res/values-v21/styles.xml | 6 + oeffi/res/values-xlarge/dimens.xml | 30 + oeffi/res/values/colors.xml | 18 + oeffi/res/values/dimens.xml | 50 + oeffi/res/values/directions.xml | 76 + oeffi/res/values/fare_types.xml | 15 + oeffi/res/values/networks.xml | 126 ++ oeffi/res/values/select_map.xml | 10 + oeffi/res/values/strings.xml | 367 ++++ oeffi/res/values/strings_aquire_location.xml | 9 + oeffi/res/values/strings_error_reporter.xml | 11 + oeffi/res/values/strings_untranslated.xml | 11 + oeffi/res/values/styles.xml | 72 + oeffi/res/xml/about.xml | 71 + oeffi/res/xml/file_provider.xml | 8 + .../xml/nearest_favorite_station_widget.xml | 8 + oeffi/res/xml/plan_searchable.xml | 5 + oeffi/res/xml/plans_searchable.xml | 5 + oeffi/res/xml/preferences.xml | 53 + oeffi/res/xml/stations_searchable.xml | 6 + .../de/schildbach/oeffi/AboutActivity.java | 93 + .../src/de/schildbach/oeffi/Application.java | 212 +++ oeffi/src/de/schildbach/oeffi/AreaAware.java | 24 + oeffi/src/de/schildbach/oeffi/Constants.java | 76 + .../de/schildbach/oeffi/FromViaToAware.java | 28 + .../de/schildbach/oeffi/LocationAware.java | 29 + .../src/de/schildbach/oeffi/MyActionBar.java | 236 +++ .../de/schildbach/oeffi/OeffiActivity.java | 142 ++ .../schildbach/oeffi/OeffiMainActivity.java | 707 ++++++++ .../schildbach/oeffi/PreferencesActivity.java | 63 + .../de/schildbach/oeffi/StationsAware.java | 32 + oeffi/src/de/schildbach/oeffi/TripAware.java | 31 + .../oeffi/directions/DirectionsActivity.java | 1232 +++++++++++++ .../DirectionsShortcutActivity.java | 411 +++++ .../oeffi/directions/LocationTextView.java | 84 + .../oeffi/directions/LocationView.java | 499 ++++++ .../oeffi/directions/PearlView.java | 181 ++ .../directions/QueryHistoryProvider.java | 551 ++++++ .../oeffi/directions/QueryTripsRunnable.java | 317 ++++ .../schildbach/oeffi/directions/TimeSpec.java | 84 + .../oeffi/directions/TripDetailsActivity.java | 1092 +++++++++++ .../oeffi/directions/TripsGallery.java | 337 ++++ .../oeffi/directions/TripsGalleryAdapter.java | 645 +++++++ .../directions/TripsOverviewActivity.java | 410 +++++ .../directions/list/QueryHistoryAdapter.java | 200 +++ .../list/QueryHistoryClickListener.java | 26 + .../QueryHistoryContextMenuItemListener.java | 27 + .../list/QueryHistoryViewHolder.java | 161 ++ .../oeffi/network/GetAreaRunnable.java | 97 + .../oeffi/network/NetworkPickerActivity.java | 505 ++++++ .../oeffi/network/NetworkProviderFactory.java | 202 +++ .../oeffi/network/NetworkResources.java | 77 + .../network/list/NetworkClickListener.java | 22 + .../list/NetworkContextMenuItemListener.java | 22 + .../oeffi/network/list/NetworkListEntry.java | 69 + .../oeffi/network/list/NetworkViewHolder.java | 135 ++ .../oeffi/network/list/NetworksAdapter.java | 103 ++ .../network/list/SeparatorViewHolder.java | 36 + .../schildbach/oeffi/plans/BubbleLayout.java | 124 ++ .../schildbach/oeffi/plans/PlanActivity.java | 419 +++++ .../oeffi/plans/PlanContentProvider.java | 457 +++++ .../oeffi/plans/PlansPickerActivity.java | 354 ++++ .../oeffi/plans/ScrollImageView.java | 477 +++++ .../oeffi/plans/TiledImageDrawable.java | 95 + .../src/de/schildbach/oeffi/plans/Zoomer.java | 72 + .../oeffi/plans/list/PlanClickListener.java | 22 + .../list/PlanContextMenuItemListener.java | 22 + .../oeffi/plans/list/PlanViewHolder.java | 210 +++ .../oeffi/plans/list/PlansAdapter.java | 233 +++ .../oeffi/stations/CompassNeedleView.java | 139 ++ .../oeffi/stations/DecodeForeignActivity.java | 144 ++ .../stations/FavoriteStationsActivity.java | 129 ++ .../stations/FavoriteStationsProvider.java | 302 ++++ .../oeffi/stations/FavoriteUtils.java | 88 + .../schildbach/oeffi/stations/LineView.java | 216 +++ ...arestFavoriteStationWidgetListService.java | 156 ++ .../NearestFavoriteStationWidgetProvider.java | 30 + .../NearestFavoriteStationWidgetService.java | 389 ++++ .../stations/NetworkContentProvider.java | 219 +++ .../stations/QueryDeparturesRunnable.java | 231 +++ .../de/schildbach/oeffi/stations/Station.java | 95 + .../oeffi/stations/StationContextMenu.java | 221 +++ .../stations/StationDetailsActivity.java | 808 +++++++++ .../oeffi/stations/StationsActivity.java | 1596 +++++++++++++++++ .../oeffi/stations/StationsFilterPopup.java | 85 + .../list/FavoriteStationViewHolder.java | 108 ++ .../list/FavoriteStationsAdapter.java | 120 ++ .../stations/list/StationClickListener.java | 25 + .../list/StationContextMenuItemListener.java | 31 + .../stations/list/StationViewHolder.java | 495 +++++ .../oeffi/stations/list/StationsAdapter.java | 131 ++ .../oeffi/util/ChangelogDialogBuilder.java | 85 + .../de/schildbach/oeffi/util/CheatSheet.java | 150 ++ .../util/ConnectivityBroadcastReceiver.java | 71 + .../schildbach/oeffi/util/DialogBuilder.java | 41 + .../oeffi/util/DividerItemDecoration.java | 96 + .../de/schildbach/oeffi/util/Downloader.java | 232 +++ .../schildbach/oeffi/util/ErrorReporter.java | 399 +++++ .../src/de/schildbach/oeffi/util/Formats.java | 104 ++ .../schildbach/oeffi/util/GeocoderThread.java | 112 ++ .../schildbach/oeffi/util/LocationHelper.java | 143 ++ .../oeffi/util/LocationUriParser.java | 200 +++ .../schildbach/oeffi/util/MultiDrawable.java | 55 + .../oeffi/util/NavigationMenuAdapter.java | 508 ++++++ .../src/de/schildbach/oeffi/util/Objects.java | 46 + .../de/schildbach/oeffi/util/PopupHelper.java | 39 + oeffi/src/de/schildbach/oeffi/util/Toast.java | 71 + .../oeffi/util/ToggleImageButton.java | 109 ++ .../oeffi/util/UiThreadExecutor.java | 32 + .../oeffi/util/UpGestureDetector.java | 43 + .../schildbach/oeffi/util/ZoomControls.java | 97 + .../bzip2/BZip2CompressorInputStream.java | 1006 +++++++++++ .../oeffi/util/bzip2/BZip2Constants.java | 38 + .../de/schildbach/oeffi/util/bzip2/CRC.java | 95 + .../util/bzip2/CompressorInputStream.java | 82 + .../de/schildbach/oeffi/util/bzip2/Rand.java | 62 + .../oeffi/util/LocationUriParserTest.java | 265 +++ public-transport-enabler | 1 + settings.gradle | 2 + 366 files changed, 30271 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 build.gradle create mode 120000 enabler create mode 100644 gradle.properties create mode 100644 oeffi/.gitignore create mode 100644 oeffi/AndroidManifest.xml create mode 100644 oeffi/CHANGES create mode 100644 oeffi/COPYING create mode 100644 oeffi/assets/messages.txt create mode 100644 oeffi/assets/networks.txt create mode 100644 oeffi/assets/plans-index.txt create mode 100644 oeffi/build.gradle create mode 100644 oeffi/graphics/ic_oeffi_directions_color_48dp-mdpi.svg create mode 100644 oeffi/graphics/ic_oeffi_plans_color_48dp-mdpi.svg create mode 100644 oeffi/graphics/ic_oeffi_stations_color_48dp-mdpi.svg create mode 100644 oeffi/proguard.cfg create mode 100644 oeffi/project.properties create mode 100644 oeffi/res/anim/enter_from_left.xml create mode 100644 oeffi/res/anim/enter_from_right.xml create mode 100644 oeffi/res/anim/exit_to_left.xml create mode 100644 oeffi/res/anim/exit_to_right.xml create mode 100644 oeffi/res/anim/pop_in.xml create mode 100644 oeffi/res/anim/pop_out.xml create mode 100644 oeffi/res/anim/rotate.xml create mode 100644 oeffi/res/anim/zoom_controls.xml create mode 100644 oeffi/res/animator/heartbeat.xml create mode 100644 oeffi/res/color/list_entry.xml create mode 100644 oeffi/res/drawable-anydpi/ic_accessible_grey600_18dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_arrow_back_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_beenhere_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_block_black_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_cash_multiple_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_clear_black_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_clear_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_contacts_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_directions_bike_grey600_18dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_directions_bike_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_directions_walk_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_expand_less_black_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_expand_less_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_expand_more_black_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_expand_more_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_favorite_border_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_filter_list_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_filter_list_yellow_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_flag_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_gps_fixed_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_info_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_info_outline_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_info_outline_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_local_taxi_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_location_disabled_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_location_searching_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_location_searching_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_map_black_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_menu_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_more_vert_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_more_vert_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_oeffi_directions_grey600_36dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_oeffi_plans_grey300_72dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_oeffi_plans_grey600_36dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_oeffi_stations_grey600_36dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_offline_pin_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_place_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_portable_wifi_off_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_refresh_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_search_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_search_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_settings_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_settings_input_antenna_grey600_18dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_share_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_shuffle_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_star_border_black_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_star_border_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_star_grey600_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_star_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_today_white_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/ic_warning_amber_24dp.xml create mode 100644 oeffi/res/drawable-anydpi/network_bvg_logo.xml create mode 100644 oeffi/res/drawable-anydpi/network_db_logo.xml create mode 100644 oeffi/res/drawable-anydpi/network_kvv_logo.xml create mode 100644 oeffi/res/drawable-anydpi/network_oebb_logo.xml create mode 100644 oeffi/res/drawable-anydpi/network_sh_logo.xml create mode 100644 oeffi/res/drawable-anydpi/network_vagfr_logo.xml create mode 100644 oeffi/res/drawable-anydpi/network_vbb_logo.xml create mode 100644 oeffi/res/drawable-anydpi/network_vgn_logo.xml create mode 100644 oeffi/res/drawable-anydpi/network_vrr_logo.xml create mode 100644 oeffi/res/drawable-anydpi/product_bus_color_22dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_bus_color_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_bus_darkgrey_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_cablecar_color_22dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_cablecar_color_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_cablecar_darkgrey_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_call_color_22dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_call_color_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_call_darkgrey_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_ferry_color_22dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_ferry_color_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_ferry_darkgrey_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_highspeed_color_22dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_highspeed_color_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_highspeed_darkgrey_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_suburban_color_22dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_suburban_color_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_suburban_darkgrey_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_subway_color_22dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_subway_color_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_subway_darkgrey_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_train_color_22dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_train_color_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_train_darkgrey_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_tram_color_22dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_tram_color_32dp.xml create mode 100644 oeffi/res/drawable-anydpi/product_tram_darkgrey_32dp.xml create mode 100644 oeffi/res/drawable-hdpi/appwidget_dark_bg.9.png create mode 100644 oeffi/res/drawable-hdpi/appwidget_dark_bg_focused.9.png create mode 100644 oeffi/res/drawable-hdpi/appwidget_dark_bg_pressed.9.png create mode 100644 oeffi/res/drawable-hdpi/btn_zoom_down_disabled.png create mode 100644 oeffi/res/drawable-hdpi/btn_zoom_down_normal.png create mode 100644 oeffi/res/drawable-hdpi/btn_zoom_down_pressed.png create mode 100644 oeffi/res/drawable-hdpi/btn_zoom_up_disabled.png create mode 100644 oeffi/res/drawable-hdpi/btn_zoom_up_normal.png create mode 100644 oeffi/res/drawable-hdpi/btn_zoom_up_pressed.png create mode 100644 oeffi/res/drawable-hdpi/da_marker_red.png create mode 100644 oeffi/res/drawable-hdpi/ic_maps_indicator_endpoint_list.png create mode 100644 oeffi/res/drawable-hdpi/ic_maps_indicator_startpoint_list.png create mode 100644 oeffi/res/drawable-hdpi/ic_station_grey600_24dp.png create mode 100644 oeffi/res/drawable-hdpi/image_frame_default.9.png create mode 100644 oeffi/res/drawable-hdpi/image_frame_small.9.png create mode 100644 oeffi/res/drawable-hdpi/location_off.png create mode 100644 oeffi/res/drawable-hdpi/location_on.png create mode 100644 oeffi/res/drawable-hdpi/popup_dir_pointer_button_normal.9.png create mode 100644 oeffi/res/drawable-hdpi/popup_dir_pointer_button_selected.9.png create mode 100644 oeffi/res/drawable-hdpi/station_glow.png create mode 100644 oeffi/res/drawable-mdpi/capacity_1.png create mode 100644 oeffi/res/drawable-mdpi/capacity_2.png create mode 100644 oeffi/res/drawable-mdpi/capacity_3.png create mode 100644 oeffi/res/drawable-xhdpi/appwidget_dark_bg.9.png create mode 100644 oeffi/res/drawable-xhdpi/appwidget_dark_bg_focused.9.png create mode 100644 oeffi/res/drawable-xhdpi/appwidget_dark_bg_pressed.9.png create mode 100644 oeffi/res/drawable-xhdpi/ic_maps_product_default.png create mode 100644 oeffi/res/drawable-xhdpi/ic_station_grey600_24dp.png create mode 100644 oeffi/res/drawable-xhdpi/nearest_favorite_station_widget_preview.png create mode 100644 oeffi/res/drawable-xhdpi/network_bayern_icon.png create mode 100644 oeffi/res/drawable-xhdpi/network_dsb_icon.png create mode 100644 oeffi/res/drawable-xhdpi/network_nri_icon.png create mode 100644 oeffi/res/drawable-xhdpi/network_ns_icon.png create mode 100644 oeffi/res/drawable-xhdpi/network_pl_icon.png create mode 100644 oeffi/res/drawable-xhdpi/network_rt_icon.png create mode 100644 oeffi/res/drawable-xhdpi/network_sbb_icon.png create mode 100644 oeffi/res/drawable-xhdpi/network_se_icon.png create mode 100644 oeffi/res/drawable-xhdpi/network_sncb_icon.png create mode 100644 oeffi/res/drawable-xhdpi/network_tfi_icon.png create mode 100644 oeffi/res/drawable/appwidget_dark_bg_clickable.xml create mode 100644 oeffi/res/drawable/btn_zoom_down.xml create mode 100644 oeffi/res/drawable/btn_zoom_up.xml create mode 100644 oeffi/res/drawable/disclaimer_background.xml create mode 100644 oeffi/res/drawable/disclaimer_background_dark.xml create mode 100644 oeffi/res/drawable/form_background.xml create mode 100644 oeffi/res/drawable/ic_expand_black_24dp.xml create mode 100644 oeffi/res/drawable/ic_expand_white_24dp.xml create mode 100644 oeffi/res/drawable/ic_filter_list_24dp.xml create mode 100644 oeffi/res/drawable/ic_location_white_24dp.xml create mode 100644 oeffi/res/drawable/ic_menu_product_bus.xml create mode 100644 oeffi/res/drawable/ic_menu_product_cablecar.xml create mode 100644 oeffi/res/drawable/ic_menu_product_call.xml create mode 100644 oeffi/res/drawable/ic_menu_product_ferry.xml create mode 100644 oeffi/res/drawable/ic_menu_product_highspeed.xml create mode 100644 oeffi/res/drawable/ic_menu_product_suburban.xml create mode 100644 oeffi/res/drawable/ic_menu_product_subway.xml create mode 100644 oeffi/res/drawable/ic_menu_product_train.xml create mode 100644 oeffi/res/drawable/ic_menu_product_tram.xml create mode 100644 oeffi/res/drawable/ic_oeffi_directions.xml create mode 100644 oeffi/res/drawable/ic_oeffi_plans.xml create mode 100644 oeffi/res/drawable/ic_oeffi_stations.xml create mode 100644 oeffi/res/drawable/ic_star_24dp.xml create mode 100644 oeffi/res/drawable/popup_dir_pointer_button.xml create mode 100644 oeffi/res/drawable/space_24dp.xml create mode 100644 oeffi/res/drawable/space_48dp.xml create mode 100644 oeffi/res/drawable/view_shadow_bottom.xml create mode 100644 oeffi/res/drawable/view_shadow_right.xml create mode 100644 oeffi/res/drawable/view_shadow_top.xml create mode 100644 oeffi/res/layout/action_bar.xml create mode 100644 oeffi/res/layout/changelog_dialog.xml create mode 100644 oeffi/res/layout/create_launcher_shortcut_dialog.xml create mode 100644 oeffi/res/layout/directions_content.xml create mode 100644 oeffi/res/layout/directions_form_include.xml create mode 100644 oeffi/res/layout/directions_location_dropdown_entry.xml create mode 100644 oeffi/res/layout/directions_map_pin.xml create mode 100644 oeffi/res/layout/directions_query_history_entry.xml create mode 100644 oeffi/res/layout/directions_trip_details_content.xml create mode 100644 oeffi/res/layout/directions_trip_details_fares_row.xml create mode 100644 oeffi/res/layout/directions_trip_details_individual_entry.xml create mode 100644 oeffi/res/layout/directions_trip_details_public_entry.xml create mode 100644 oeffi/res/layout/directions_trip_details_public_entry_collapsed.xml create mode 100644 oeffi/res/layout/directions_trip_details_public_entry_stop.xml create mode 100644 oeffi/res/layout/directions_trip_overview_content.xml create mode 100644 oeffi/res/layout/directions_trip_overview_custom_title.xml create mode 100644 oeffi/res/layout/favorites_content.xml create mode 100644 oeffi/res/layout/favorites_list_entry.xml create mode 100644 oeffi/res/layout/hint_dialog.xml create mode 100644 oeffi/res/layout/map_trip_line.xml create mode 100644 oeffi/res/layout/navigation_drawer.xml create mode 100644 oeffi/res/layout/navigation_drawer_entry.xml create mode 100644 oeffi/res/layout/network_picker_content.xml create mode 100644 oeffi/res/layout/network_picker_entry.xml create mode 100644 oeffi/res/layout/network_picker_separator.xml create mode 100644 oeffi/res/layout/plans_content.xml create mode 100644 oeffi/res/layout/plans_picker_content.xml create mode 100644 oeffi/res/layout/plans_picker_entry.xml create mode 100644 oeffi/res/layout/station_widget_content.xml create mode 100644 oeffi/res/layout/station_widget_entry.xml create mode 100644 oeffi/res/layout/station_widget_entry_loading.xml create mode 100644 oeffi/res/layout/stations_content.xml create mode 100644 oeffi/res/layout/stations_filter_popup_content.xml create mode 100644 oeffi/res/layout/stations_location_provider_row.xml create mode 100644 oeffi/res/layout/stations_station_details_content.xml create mode 100644 oeffi/res/layout/stations_station_details_entry.xml create mode 100644 oeffi/res/layout/stations_station_details_header.xml create mode 100644 oeffi/res/layout/stations_station_details_header_line.xml create mode 100644 oeffi/res/layout/stations_station_entry.xml create mode 100644 oeffi/res/layout/stations_station_entry_departure.xml create mode 100644 oeffi/res/layout/stations_station_entry_message.xml create mode 100644 oeffi/res/layout/zoom_controls.xml create mode 100644 oeffi/res/menu/directions_location_context.xml create mode 100644 oeffi/res/menu/directions_options.xml create mode 100644 oeffi/res/menu/directions_query_history_context.xml create mode 100644 oeffi/res/menu/directions_query_history_location_context.xml create mode 100644 oeffi/res/menu/directions_trip_details_action_share.xml create mode 100644 oeffi/res/menu/donate_menu.xml create mode 100644 oeffi/res/menu/global_options.xml create mode 100644 oeffi/res/menu/network_picker_context.xml create mode 100644 oeffi/res/menu/plans_picker_context.xml create mode 100644 oeffi/res/menu/station_map_context.xml create mode 100644 oeffi/res/menu/stations_options.xml create mode 100644 oeffi/res/menu/stations_station_context.xml create mode 100644 oeffi/res/values-de/directions.xml create mode 100644 oeffi/res/values-de/fare_types.xml create mode 100644 oeffi/res/values-de/networks.xml create mode 100644 oeffi/res/values-de/select_map.xml create mode 100644 oeffi/res/values-de/strings.xml create mode 100644 oeffi/res/values-de/strings_aquire_location.xml create mode 100644 oeffi/res/values-de/strings_error_reporter.xml create mode 100644 oeffi/res/values-h400dp/dimens.xml create mode 100644 oeffi/res/values-large/dimens.xml create mode 100644 oeffi/res/values-small/dimens.xml create mode 100644 oeffi/res/values-v21/styles.xml create mode 100644 oeffi/res/values-xlarge/dimens.xml create mode 100644 oeffi/res/values/colors.xml create mode 100644 oeffi/res/values/dimens.xml create mode 100644 oeffi/res/values/directions.xml create mode 100644 oeffi/res/values/fare_types.xml create mode 100644 oeffi/res/values/networks.xml create mode 100644 oeffi/res/values/select_map.xml create mode 100644 oeffi/res/values/strings.xml create mode 100644 oeffi/res/values/strings_aquire_location.xml create mode 100644 oeffi/res/values/strings_error_reporter.xml create mode 100644 oeffi/res/values/strings_untranslated.xml create mode 100644 oeffi/res/values/styles.xml create mode 100644 oeffi/res/xml/about.xml create mode 100644 oeffi/res/xml/file_provider.xml create mode 100644 oeffi/res/xml/nearest_favorite_station_widget.xml create mode 100644 oeffi/res/xml/plan_searchable.xml create mode 100644 oeffi/res/xml/plans_searchable.xml create mode 100644 oeffi/res/xml/preferences.xml create mode 100644 oeffi/res/xml/stations_searchable.xml create mode 100644 oeffi/src/de/schildbach/oeffi/AboutActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/Application.java create mode 100644 oeffi/src/de/schildbach/oeffi/AreaAware.java create mode 100644 oeffi/src/de/schildbach/oeffi/Constants.java create mode 100644 oeffi/src/de/schildbach/oeffi/FromViaToAware.java create mode 100644 oeffi/src/de/schildbach/oeffi/LocationAware.java create mode 100644 oeffi/src/de/schildbach/oeffi/MyActionBar.java create mode 100644 oeffi/src/de/schildbach/oeffi/OeffiActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/OeffiMainActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/PreferencesActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/StationsAware.java create mode 100644 oeffi/src/de/schildbach/oeffi/TripAware.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/DirectionsActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/DirectionsShortcutActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/LocationTextView.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/LocationView.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/PearlView.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/QueryHistoryProvider.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/QueryTripsRunnable.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/TimeSpec.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/TripDetailsActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/TripsGallery.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/TripsGalleryAdapter.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/TripsOverviewActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/list/QueryHistoryAdapter.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/list/QueryHistoryClickListener.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/list/QueryHistoryContextMenuItemListener.java create mode 100644 oeffi/src/de/schildbach/oeffi/directions/list/QueryHistoryViewHolder.java create mode 100644 oeffi/src/de/schildbach/oeffi/network/GetAreaRunnable.java create mode 100644 oeffi/src/de/schildbach/oeffi/network/NetworkPickerActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/network/NetworkProviderFactory.java create mode 100644 oeffi/src/de/schildbach/oeffi/network/NetworkResources.java create mode 100644 oeffi/src/de/schildbach/oeffi/network/list/NetworkClickListener.java create mode 100644 oeffi/src/de/schildbach/oeffi/network/list/NetworkContextMenuItemListener.java create mode 100644 oeffi/src/de/schildbach/oeffi/network/list/NetworkListEntry.java create mode 100644 oeffi/src/de/schildbach/oeffi/network/list/NetworkViewHolder.java create mode 100644 oeffi/src/de/schildbach/oeffi/network/list/NetworksAdapter.java create mode 100644 oeffi/src/de/schildbach/oeffi/network/list/SeparatorViewHolder.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/BubbleLayout.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/PlanActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/PlanContentProvider.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/PlansPickerActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/ScrollImageView.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/TiledImageDrawable.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/Zoomer.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/list/PlanClickListener.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/list/PlanContextMenuItemListener.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/list/PlanViewHolder.java create mode 100644 oeffi/src/de/schildbach/oeffi/plans/list/PlansAdapter.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/CompassNeedleView.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/DecodeForeignActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/FavoriteStationsActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/FavoriteStationsProvider.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/FavoriteUtils.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/LineView.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/NearestFavoriteStationWidgetListService.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/NearestFavoriteStationWidgetProvider.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/NearestFavoriteStationWidgetService.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/NetworkContentProvider.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/QueryDeparturesRunnable.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/Station.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/StationContextMenu.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/StationDetailsActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/StationsActivity.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/StationsFilterPopup.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/list/FavoriteStationViewHolder.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/list/FavoriteStationsAdapter.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/list/StationClickListener.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/list/StationContextMenuItemListener.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/list/StationViewHolder.java create mode 100644 oeffi/src/de/schildbach/oeffi/stations/list/StationsAdapter.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/ChangelogDialogBuilder.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/CheatSheet.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/ConnectivityBroadcastReceiver.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/DialogBuilder.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/DividerItemDecoration.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/Downloader.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/ErrorReporter.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/Formats.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/GeocoderThread.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/LocationHelper.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/LocationUriParser.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/MultiDrawable.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/NavigationMenuAdapter.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/Objects.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/PopupHelper.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/Toast.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/ToggleImageButton.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/UiThreadExecutor.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/UpGestureDetector.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/ZoomControls.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/bzip2/BZip2CompressorInputStream.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/bzip2/BZip2Constants.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/bzip2/CRC.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/bzip2/CompressorInputStream.java create mode 100644 oeffi/src/de/schildbach/oeffi/util/bzip2/Rand.java create mode 100644 oeffi/test/de/schildbach/oeffi/util/LocationUriParserTest.java create mode 160000 public-transport-enabler create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..436222b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.gradle +local.properties +build/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..261bc2a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "public-transport-enabler"] + path = public-transport-enabler + url = https://gitlab.com/oeffi/public-transport-enabler.git + branch = oeffi diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..64c7c0b --- /dev/null +++ b/build.gradle @@ -0,0 +1,21 @@ +buildscript { + repositories { + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:2.3.3' + classpath('fr.avianey.androidsvgdrawable:gradle-plugin:3.0.0') { + exclude group: 'xerces' + } + } +} + +allprojects { + repositories { + jcenter() + maven { + url 'https://maven.google.com' + } + } +} diff --git a/enabler b/enabler new file mode 120000 index 0000000..480d144 --- /dev/null +++ b/enabler @@ -0,0 +1 @@ +public-transport-enabler/enabler \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..b3c7a03 --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +org.gradle.jvmargs=-Xmx2048M diff --git a/oeffi/.gitignore b/oeffi/.gitignore new file mode 100644 index 0000000..ef382fd --- /dev/null +++ b/oeffi/.gitignore @@ -0,0 +1,6 @@ +/.classpath +/.project +/.settings/ +/bin/ +/gen/ +/res/mipmap-*/ diff --git a/oeffi/AndroidManifest.xml b/oeffi/AndroidManifest.xml new file mode 100644 index 0000000..1fa507e --- /dev/null +++ b/oeffi/AndroidManifest.xml @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/CHANGES b/oeffi/CHANGES new file mode 100644 index 0000000..61f3eb2 --- /dev/null +++ b/oeffi/CHANGES @@ -0,0 +1,6 @@ +v10.0 + +* Öffi is now GPLv3 licensed! + The source code is available at https://gitlab.com/oeffi/oeffi +* The app now requires Android 4.1 (Jelly Bean) or higher. + This will make UI development easier in future. diff --git a/oeffi/COPYING b/oeffi/COPYING new file mode 100644 index 0000000..810fce6 --- /dev/null +++ b/oeffi/COPYING @@ -0,0 +1,621 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/oeffi/assets/messages.txt b/oeffi/assets/messages.txt new file mode 100644 index 0000000..2699bce --- /dev/null +++ b/oeffi/assets/messages.txt @@ -0,0 +1,8 @@ +# hints +hint-navigation-drawer | prefs-show-info:true limit-info:2d | once | info +hint-network-picker | prefs-show-info:true limit-info:2d | once | info +hint-landscape-orientation | prefs-show-info:true limit-info:2d | once | info +hint-qr-and-nfc | prefs-show-info:true limit-info:2d | once | info +hint-launcher-shortcuts | prefs-show-info:true limit-info:2d | once | info +hint-location-problems | prefs-show-info:true limit-info:2d | once | info +hint-drag-stations | prefs-show-info:true limit-info:2d min-version:546 task:stations | once | info diff --git a/oeffi/assets/networks.txt b/oeffi/assets/networks.txt new file mode 100644 index 0000000..8fe35d4 --- /dev/null +++ b/oeffi/assets/networks.txt @@ -0,0 +1,96 @@ +# networks.txt,1 + +# EU +RT|eu|DE;AT;CH;BE;LU;NL;DK;SE;NO;FI;GB;SI;HU;RO;BG;PL;SK;IT;ES;PT + +# DE +DB|de-DE|DE +BVG|de-DE|Brandenburg;Berlin +VBB|de-DE|Brandenburg +BAYERN|de-DE|Bayern;Würzburg;Regensburg +AVV|de-DE|Augsburg +MVV|de-DE|Bayern;München +VGN|de-DE|Nürnberg;Fürth;Erlangen +VVM|de-DE|Schwaben;Mittelschwaben;Krumbach;Günzburg;Memmingen +NVV|de-DE|Hessen;Frankfurt am Main;Kassel +VMV|de-DE|Mecklenburg-Vorpommern;Schwerin +HVV|de-DE|Hamburg|disabled +SH|de-DE|Schleswig-Holstein;Kiel;Lübeck;Hamburg +GVH|de-DE|Niedersachsen;Hannover;Hamburg +BSVAG|de-DE|Braunschweig;Wolfsburg +VBN|de-DE|Niedersachsen;Bremen;Bremerhaven;Oldenburg (Oldenburg);Osnabrück;Göttingen;Rostock +VVO|de-DE|Sachsen;Dresden +VMS|de-DE|Mittelsachsen;Chemnitz +NASA|de-DE|Sachsen;Leipzig;Sachsen-Anhalt;Magdeburg;Halle +VMT|de-DE|Thüringen;Mittelthüringen;Erfurt;Jena;Gera;Weimar;Gotha +VRR|de-DE|Nordrhein-Westfalen;Essen;Dortmund;Düsseldorf;Münster;Paderborn;Höxter;Bielefeld +VRS|de-DE|Köln;Bonn +MVG|de-DE|Märkischer Kreis;Lüdenscheid +VRN|de-DE|Baden-Württemberg;Rheinland-Pfalz;Mannheim;Mainz;Trier +VVS|de-DE|Baden-Württemberg;Stuttgart +DING|de-DE|Baden-Württemberg;Ulm;Neu-Ulm +KVV|de-DE|Baden-Württemberg;Karlsruhe +VAGFR|de-DE|Elsass;Bas-Rhin;Straßburg;Freiburg im Breisgau +NVBW|de-DE|Baden-Württemberg;Konstanz;Basel;Basel-Stadt;Reutlingen;Rottweil;Tübingen;Sigmaringen +VVV|de-DE|Vogtland;Plauen +VGS|de-DE|Saarland;Saarbrücken|disabled + +# AT +OEBB|de-AT|AT +WIEN|de-AT|Wien +LINZ|de-AT|Oberösterreich;Linz +STV|de-AT|Steiermark;Graz;Marburg;Maribor;Klagenfurt +VOR|de-AT|Niederösterreich;Burgenland;Wien|disabled +OOEVV|de-AT|Oberösterreich|disabled +VVT|de-AT|Tirol|disabled +SVV|de-AT|Salzburg|disabled +VMOBIL|de-AT|Vorarlberg;Bregenz|disabled + +# CH +SBB|de-CH|CH +VBL|de-CH|Luzern +ZVV|de-CH|Zürich + +# IT +IT|it-IT|IT|alpha + +# FR +PARIS|fr-FR|FR|alpha + +# BE +SNCB|be-BE|BE|alpha + +# LU +LU|lb-LU|LU;Luxemburg + +# NL +NS|nl-NL|NL;Amsterdam|alpha + +# DK +DSB|da-DK|DK;København + +# SE +SE|sv-SE|SE;Stockholm + +# NO +NRI|no-NO|NO;Oslo;Bergen + +# GB +TLEM|en-UK|GB;Greater London;Derbyshire;Leicestershire;Rutland;Northamptonshire;Nottinghamshire;Lincolnshire;Berkshire;Buckinghamshire;East Sussex;Hampshire;Isle of Wight;Kent;Oxfordshire;Surrey;West Sussex;Essex;Hertfordshire;Bedfordshire;Cambridgeshire;Norfolk;Suffolk;Somerset;Gloucestershire;Wiltshire;Dorset;Devon;Cornwall;West Devon;Stowford;Eastleigh;Swindon;Gloucester;Plymouth;Torbay;Bournemouth;Poole;Birmingham +MERSEY|en-UK|GB;Liverpool|beta + +# IE +TFI|ga-IE|IE;Dublin;GB;Belfast + +# PL +PL|pl-PL|PL;Warschau + +# AE +DUB|ae-AE|AE;Dubai|beta + +# US +RTACHICAGO|us-US|US;Illinois;Chicago|beta + +# AU +SYDNEY|en-AU|AU;New South Wales;Sydney +MET|en-AU|AU;Victoria;Melbourne|disabled diff --git a/oeffi/assets/plans-index.txt b/oeffi/assets/plans-index.txt new file mode 100644 index 0000000..cd3c252 --- /dev/null +++ b/oeffi/assets/plans-index.txt @@ -0,0 +1,309 @@ +# plans-index.txt,1 +# id|location|valid_from|name|disclaimer|external_uri + +# de + +#!group:berlin|52.521165,13.413318|Berlin +berlin_bsu_ab|52.520134,13.388018|2016-01-15|Berlin Schnellbahn Liniennetz (AB)|Berliner Verkehrsbetriebe||BVG +berlin_bsu_abc|52.520134,13.388018|2016-01-15|Berlin Schnellbahn Liniennetz (ABC)|Berliner Verkehrsbetriebe||BVG +berlin_bsu_abc_arabic|52.520134,13.388018|2015-12-13|Berlin Schnellbahn Liniennetz arabisch (معلومات عن وسائل النقل العام في مدينة برلين)|Berliner Verkehrsbetriebe und „Moabit hilft!“||BVG +berlin_tram|52.521152,13.412832|2016-02-21|Berlin Tram-Netz|Berliner Verkehrsbetriebe||BVG +berlin_nacht|52.520134,13.388018|2014|Berlin Nachtverkehr|Berliner Verkehrsbetriebe||BVG +# berlin_anbindung_ber|52.363127,13.50498|2011-10|Berlin Brandenburg Flughafen Anbindung|Robert Aehnelt, Creative Commons|http://upload.wikimedia.org/wikipedia/commons/d/d3/Anbindung_BER.png +#!group: +brandenburg_regionalverkehr|52.525578,13.369523|2015-12-13|Brandenburg Regionalverkehr|Verkehrsverbund Berlin-Brandenburg ||VBB +potsdam_tag|52.390931,13.067171|2015-12-13|Potsdam Tagesliniennetz|Verkehrsverbund Berlin-Brandenburg ||VBB +potsdam_nacht|52.390931,13.067171|2015-12-13|Potsdam Nachtliniennetz|Verkehrsverbund Berlin-Brandenburg ||VBB +cottbus_tag_abc|51.760897,14.330106|2015-12-13|Cottbus Tageslinien ABC|Verkehrsverbund Berlin-Brandenburg ||VBB +cottbus_abend|51.760897,14.330106|2015-12-13|Cottbus Abendlinien|Verkehrsverbund Berlin-Brandenburg ||VBB +frankfurt_oder_abc|52.336876,14.545712|2015-12-13|Frankfurt (Oder) ABC|Verkehrsverbund Berlin-Brandenburg ||VBB +greifswald|54.092863,13.370336|2015-12|Greifswald Liniennetz|Stadtwerke Greifswald +dresden|51.050961,13.733239|2016-03-20|Dresden Liniennetz|Dresdner Verkehrsbetriebe AG +dresden_nacht|51.050961,13.733239|2015-01-05|Dresden Nachtverkehr|dvb.de +# dresden_sbahn|51.050961,13.733239|2008-01|Dresden S-Bahn|Maximilian Dörrbecker, Wikimedia Commons|http://upload.wikimedia.org/wikipedia/commons/9/99/Dresden_-_S-Bahn_-_Liniennetz.png +leipzig_halle_schnellbahn|51.423347,12.220980|2015-12-13|Leipzig/Halle Schnellbahn|Mitteldeutscher Verkehrsverbund GmbH +leipzig_tag|51.345476,12.379382|2015-11-28|Leipzig Linien Tag|Leipziger Verkehrsbetriebe GmbH +leipzig_nacht|51.345476,12.379382|2015-11-28|Leipzig Linien Nacht|Leipziger Verkehrsbetriebe GmbH +halle_tag|51.477347,11.985263|2016-05-02|Halle Linien Tag|SWH/HAVAG +halle_nacht|51.477347,11.985263|2016-05-02|Halle Linien Nacht|SWH/HAVAG +muenchen_schnellbahn|48.140377,11.560643|2016-12-11|München Schnellbahn|MVV +muenchen_tram_metrobus|48.140377,11.560643|2016-12-11|München Tram/MetroBus|MVV/MVG +muenchen_nacht|48.140377,11.560643|2016-12-11|München Nachtnetz|MVG +ingolstadt_tag|48.74462,11.437987|2014-12-14|Ingolstadt Liniennetz|Ingolstädter Verkehrsgesellschaft mbH +ingolstadt_nacht|48.74462,11.437987|2014-12-14|Ingolstadt Nachtliniennetz|Ingolstädter Verkehrsgesellschaft mbH +augsburg|48.364936,10.893713|2015-12|Augsburg Innenraum|AVV GmbH +augsburg_nachtbus|48.364936,10.893713|2015-12|Augsburg Nachtbus|AVV GmbH +ulm_stadt|48.398610,9.983322|2014-12|Ulm / Neu-Ulm Stadtnetz|Donau-Iller-Nahverkehrsverbund GmbH +ulm_regional|48.398610,9.983322|2014-11-06|Ulm Regionalnetz|Donau-Iller-Nahverkehrsverbund GmbH +nuernberg_gesamtraum|49.445719,11.082618|2016-12-11|Nürnberg Schienennetz Gesamtraum|Verkehrsverbund Großraum Nürnberg||VGN +nuernberg_schiene|49.445719,11.082618|2016-12-11|Nürnberg, Fürth Schienennetz|Verkehrsverbund Großraum Nürnberg||VGN +nuernberg_nightliner|49.445719,11.082618|2016-12-11|Nürnberg, Fürth Nightliner|Verkehrsverbund Großraum Nürnberg||VGN +fuerth_verkehrsnetz|49.469832,10.990178|2016-12-11|Fürth Verkehrsnetz|Verkehrsverbund Großraum Nürnberg||VGN +erlangen_verkehrsnetz|49.595851,11.001701|2016-12-11|Erlangen Verkehrsnetz|Verkehrsverbund Großraum Nürnberg||VGN +bayreuth_tag|49.949701,11.579951|2016-10-12|Bayreuth Tag|Verkehrsverbund Großraum Nürnberg||VGN +bayreuth_nacht|49.949701,11.579951|2016-10-12|Bayreuth Spät|Verkehrsverbund Großraum Nürnberg||VGN +bamberg|49.900716,10.899453|2013-09-12|Bamberg Liniennetz|Stadtwerke Bamberg +coburg_liniennetz|50.262975,10.957691|2015-06-18|Coburg Liniennetz|SÜC +regensburg|49.011489,12.09971|2014-12-14|Regensburg Liniennetzplan|Regensburger Verkehrsverbund GmbH & Co. KG +hamburg_usar|53.552946,10.006782|2015-12-13|Hamburg Schnellbahn/Regional|HVV +hamburg_metrobus_gross|53.552946,10.006782|2015-12-13|Hamburg MetroBus Großbereich|HVV +kiel_liniennetz|54.313282,10.132341|2015-02|Kiel Liniennetz|KVG +kiel_nacht|54.313282,10.132341|2014-09-01|Kiel Nachtliniennetz|KVG +rostock_vvw_liniennetz|54.078139,12.131724|2016-01-04|Rostock Liniennetz|Verkehrsverbund Warnow +rostock_vvw_region|54.078139,12.131724|2016-01-04|Rostock Region|Verkehrsverbund Warnow +rostock_region|54.078139,12.131724|2016-09-05|Rostock und Umgebung|Lucas Weiss, CC-BY-NC-SA 4.0 +wismar|53.903943,11.391928||Wismar Stadtverkehr|NAHBUS Nordwestmecklenburg GmbH +nordwestmecklenburg|53.903943,11.391928|2016-03-14|Nordwestmecklenburg Busnetz|NAHBUS Nordwestmecklenburg GmbH +osnabrueck|52.272832,8.061726|2015-09-03|Osnabrück Liniennetz|Stadtwerke Osnabrück +osnabrueck_nacht|52.272832,8.061726|2015-09-03|Osnabrück NachtBus-Netz|Stadtwerke Osnabrück +stuttgart_verbund|48.784068,9.181713|2016-06|Stuttgart Verbund-Liniennetz|Verkehrs- und Tarifverbund Stuttgart GmbH +stuttgart_nacht|48.77861,9.179803|2016-05|Stuttgart Nachtverkehr|Verkehrs- und Tarifverbund Stuttgart GmbH +ringzug|48.113621,8.660603|2013-08|Ringzug|Zweckverband Ringzug +hannover_stadtbahn|52.376715,9.741168|2014-12|Hannover Stadtbahnnetz|GVH +hannover_bus|52.376715,9.741168|2014-12|Hannover Busnetz|GVH +hannover_regional|52.376715,9.741168|2014-12|Hannover Regional- und S-Bahn-Linien|GVH +celle_stadt|52.620411,10.059814|2015-04|Celle Liniennetz Stadt|CeBus +celle_region|52.620411,10.059814|2015-04|Celle Liniennetz Region|CeBus +goettingen|51.536290,9.926981|2014-11|Göttingen Liniennetz|Göttinger Verkehrsbetriebe GmbH +goettingen_nacht|51.536290,9.926981||Göttingen Nachtliesel|Göttinger Verkehrsbetriebe GmbH +bielefeld|52.029241,8.532835|2015-12|Bielefeld Gesamtnetz|moBiel +bielefeld_nacht|52.029241,8.532835|2015-10|Bielefeld Nachtbus|moBiel +essen_schiene|51.451355,7.014793|2015-06-14|Essen SchienenNetz|EVAG +essen_tag|51.451355,7.014793|2015-06-14|Essen TagNetz|EVAG +essen_nacht|51.451355,7.014793|2013-06-09|Essen NachtNetz|EVAG +krefeld_stadt|51.323714,6.565800|2013-06|Krefeld Liniennetz Stadt|SWK/VRR +krefeld_stadt_nacht|51.323714,6.565800|2013-06|Krefeld Nachtnetz|SWK/VRR +frankfurt_liniennetz|50.106318,8.662139|2015-12-13|Frankfurt am Main Liniennetz|traffiQ +frankfurt_flughafen_bus|50.037936,8.559958|2015-12-13|Frankfurt Flughafen Buslinien|traffiQ +rmv_schnellbahn|50.106318,8.662139|2015-12-13|Rhein-Main Schnellbahn|Rhein-Main-Verkehrsverbund GmbH|https://www.rmv.de/linkableblob/de/31950-51502/original/RMV-Schnellbahnplan.jpg +rmv_regional|50.106318,8.662139|2015-12-13|Rhein-Main Regional|Rhein-Main-Verkehrsverbund GmbH|https://www.rmv.de/linkableblob/de/31368-27837/original/Regionaler_Schienennetzplan.gif +rmv_nachtbus|50.106318,8.662139|2015-11|Rhein-Main Nachtbus|www.nachtbus-frankfurt.de +mainz|50.001395,8.258818|2014-11-03|Mainz|Mainzer Verkehrsgesellschaft mbH +koeln_schnellverkehr|50.943579,6.95796|2016-12-11|Köln Schnellverkehr|Verkehrsverbund Rhein-Sieg GmbH +koeln_bus|50.943579,6.95796|2016-12-11|Köln Busnetz|Verkehrsverbund Rhein-Sieg GmbH +bonn_schnellverkehr|50.732784,7.096447|2016-12-11|Bonn Schnellverkehr|Verkehrsverbund Rhein-Sieg GmbH +bonn_bus|50.732784,7.096447|2016-12-11|Bonn Busnetz|Verkehrsverbund Rhein-Sieg GmbH +leverkusen_bus|51.036197,6.994385|2015-12-13|Leverkusen Busnetz|Verkehrsverbund Rhein-Sieg GmbH +nrw_regio|51.429807,6.775253|2015-12|NRW Busse & Bahnen|VRS +aachen_schnellverkehr|50.768399,6.090705|2016-06|Aachen Schnellverkehr|Aachener Verkehrsverbund GmbH +aachen_region|50.768399,6.090705|2015-12|Aachen Region, Bus und Bahn|Aachener Verkehrsverbund GmbH +darmstadt|49.872582,8.630916|2016-12-11|Darmstadt Stadt|Darmstadt-Dieburger Nahverkehrsorganisation +darmstadt_nacht|49.872582,8.630916|2016-12-11|Darmstadt NightLiner|Darmstadt-Dieburger Nahverkehrsorganisation +schwerin|53.634476,11.407313|2015-03|Schwerin Liniennetz|Nahverkehr Schwerin GmbH +magdeburg_tag|52.130783,11.627347|2016-09-12|Magdeburg Liniennetz|Magdeburger Regionalverkehrsverbund +magdeburg_nacht|52.130783,11.627347|2016-01-07|Magdeburg Nacht-Liniennetz|Magdeburger Regionalverkehrsverbund +magdeburg_verbund|52.130783,11.627347|2016-08|Magdeburg Verbund-Liniennetz|Magdeburger Regionalverkehrsverbund +hagen|51.362675,7.461087|2010-06-13|Hagen Liniennetz|Hagener Straßenbahn AG +braunschweig_gesamt|52.252187,10.539705|2014-11-28|Braunschweig Gesamtnetz|Braunschweiger Verkehrs-AG +braunschweig_innenstadt|52.263931,10.526361|2014-11-28|Braunschweig Innenstadt|Braunschweiger Verkehrs-AG +salzgitter|52.15116,10.332488|2015-12|Salzgitter Liniennetz|KVG Braunschweig +wolfenbuettel|52.15898,10.532012|2015-12|Wolfenbüttel Liniennetz|KVG Braunschweig +helmstedt|52.222331,11.010690|2015-12|Helmstedt Liniennetz|KVG Braunschweig +harz|51.888518,10.554843|2015-12|Harz Liniennetz|KVG Braunschweig +wolfsburg|52.429484,10.788249|2015-04-13|Wolfsburg Liniennetz|WVG +karlsruhe_liniennetz|48.993988,8.400328|2016-12-11|Karlsruhe Liniennetz|Karlsruher Verkehrsverbund||KVV +karlsruhe_regio|48.993988,8.400328|2016-12-11|Karlsruhe Regionalverkehr|Karlsruher Verkehrsverbund||KVV +karlsruhe_bus|49.009498,8.404073|2016-12-11|Karlsruhe Busnetz|Karlsruher Verkehrsverbund||KVV +karlsruhe_nightliner|49.009498,8.404073|2015-11-13|Karlsruhe Nightliner|Karlsruher Verkehrsverbund||KVV +freiburg_liniennetz|47.996556,7.840286|2015-12-11|Freiburg Liniennetz|Freiburger Verkehrs AG||VAGFR +freiburg_nacht|47.996556,7.840286|2015-12-11|Freiburg Nachtbus|Freiburger Verkehrs AG||VAGFR +freiburg_regio|47.996556,7.840286|2015-12|Freiburg Regio|RVF +freiburg_tarifzonen|47.996556,7.840286|2014-06|Freiburg Tarifzonen|RVF +freudenstadt_werktag|48.460501,8.428012|2014-03|Freudenstadt Liniennetz Werktags|vgf +freudenstadt_freizeit|48.460501,8.428012|2014-03|Freudenstadt Liniennetz Freizeit|vgf +mannheim_ludwigshafen|49.481844,8.459115|2016-06|Mannheim/Ludwigshafen Liniennetz|RNV GmbH +ludwigshafen_nacht|49.4769784,8.4300132|2015-03|Ludwigshafen Nachtbus|RNV GmbH +heidelberg|49.403434,8.676352|2016-06|Heidelberg Liniennetz|RNV GmbH +heidelberg_nacht|49.403434,8.676352||Heidelberg Nachtlinien|RNV GmbH +rhein_neckar_regio|49.481844,8.459115|2016-06|Rhein-Neckar Regionalverkehr|RNV GmbH + +# at + +linz|48.290893,14.291965|2016-09|Linz Verkehrslinienplan|Linz AG +linz_nacht|48.290893,14.291965||Linz Nachtverkehr|Linz AG|http://www.linzag.at/cms/media/linzagwebsite/images_3/mobilittverkehr/Plan_Nachtlinien.jpg +innsbruck_liniennetz|47.26332,11.400951|2014-12|Innsbruck Liniennetz|Innsbrucker Verkehrsbetriebe GmbH +innsbruck_tram|47.26332,11.400951|2012-12-15|Innsbruck Straßenbahn|Steve Stipsits|http://www.public-transport.at/netzplan_innsbruck_gross_aktuell.gif +graz|47.073371,15.416154|2015-09-12|Graz Liniennetz|Verbund Linie +graz_sbahn|47.073371,15.416154|2014-12-14|Graz S-Bahn|ÖBB/STB||OEBB +graz_nightline|47.073371,15.416154|2015-09-12|Graz Nightline|Verbund Linie +wien_susb|48.209477,16.371074|2015-12-13|Wien Netzplan|Ben Lode +wien_tram|48.209477,16.371074|2015-12-13|Wien Straßenbahn|Ben Lode +wien_nacht|48.209477,16.371074|2015-12-13|Wien Nachtnetz|Ben Lode +wien_city|48.209477,16.371074|2015-05-19|Wien City|Wiener Linien +wien_gesamt|48.209477,16.371074|2016-01|Wien Gesamtnetz|Wiener Linien +wien_grossraum|48.209477,16.371074|2015-12-13|Wien Großraum Nahverkehr|ÖBB||OEBB +salzburg|47.813229,13.045907|2015-10-28|Salzburg Liniennetz|Salzburg AG + +# ch + +basel|47.553021,7.591031|2014-12|Basel Liniennetz|tnw Tarifverbund Nordwestschweiz +zvv|47.378136,8.540232|2015-12|ZVV Netzplan|Zürcher Verkehrsverbund/PostAuto Region Zürich +zvv_nacht|47.378136,8.540232|2015-12|ZVV Nachtnetz|Zürcher Verkehrsverbund/PostAuto Region Zürich +zuerich_stadt|47.378136,8.540232|2015-12|Zürich Stadt|ZVV/VBZ +zuerich_nacht|47.378136,8.540232|2015-12|Zürich Nachtnetz|Zürcher Verkehrsverbund/PostAuto Region Zürich +winterthur_stadt|47.500334,8.72342|2015-12|Winterthur Stadt|Zürcher Verkehrsverbund/PostAuto Region Zürich +winterthur_nacht|47.500334,8.72342|2015-12|Winterthur Nachtnetz|Zürcher Verkehrsverbund/PostAuto Region Zürich +bern|46.948748,7.439239|2014-12|Bern Liniennetz|BERNMOBIL +luzern|47.050023,8.310404|2014-12-14|Luzern Liniennetz|Passepartout Tarifverbund + +# be + +brussels|50.847293,4.361933|2015-09|Brussels|STIB-MIVB +brussels_metro|50.847293,4.361933|2015-04|Brussels Metro|STIB-MIVB +brussels_night|50.847293,4.361933|2015-07|Brussels Night Lines|STIB-MIVB +antwerp_tram|51.217197,4.421543|2015-04|Antwerp Tram|De Lijn +antwerp_city|51.217197,4.421543||Antwerp City Center|De Lijn + +# nl + +amsterdam_centre|52.378861,4.900392||Amsterdam City Centre|GVB + +# dk + +copenhagen_city|55.672717,12.562532||Copenhagen City|DOT +copenhagen_region|55.672717,12.562532||Copenhagen Greater Area|DOT +copenhagen_night|55.672717,12.562532|2015-02|Copenhagen Night Bus|DOT + +# se + +gothenburg_tram|57.708792,11.973538|2012-12-09|Göteborg Tram and Trunk Bus|västtrafik +gothenburg_commuter|57.708792,11.973538|2012-12-09|Göteborg Express Buses and Commuter Trains|västtrafik +gothenburg_ferry|57.708792,11.973538|2012-12-09|Göteborg Tram and Ferry|västtrafik +gothenburg_region|57.708792,11.973538|2012-12-09|Göteborg Region|västtågen +jonkoping_bus|57.784691,14.163508||Jonkoping Bus||http://transportmaps.free.fr/maps/Sweden/Jonkoping/map_Bus_Lines.jpg +jonkoping_map|57.784691,14.163508||Jonkoping Map||http://transportmaps.free.fr/maps/Sweden/Jonkoping/map_Bus_Map.jpg +linkoping_bus|58.416129,15.626714|2009-06-14|Linkoping Bus||http://transportmaps.free.fr/maps/Sweden/Linkoping/map_Bus.jpg +stockholm_train|59.329875,18.057218||Stockholm Train|Storstockholms Lokaltrafik|http://transportmaps.free.fr/maps/Sweden/Stockholm/map_All_Trains.jpg + +# no + +oslo_subway|59.910337,10.751746|2015-04-07|Oslo Subway|Truls Lange Civitas +oslo_tram|59.910337,10.751746|2015-10-19|Oslo Tram|Truls Lange Civitas +oslo_bus|59.910337,10.751746|2015-08-16|Oslo Bus|Truls Lange Civitas +oslo_bus_night|59.910337,10.751746|2015-08-16|Oslo Night Bus|Truls Lange Civitas +trondheim_bus|63.436476,10.398717||Trondheim Bus||http://transportmaps.free.fr/maps/Norway/Trondbeim/map_Bus.jpg +bergen_sentrum|60.390547,5.332593|2012-06-25|Bergen Sentrum|skyss + +# fi + +helsinki_centrum|60.171361,24.941214|2013-01-01|Helsinki Centrum|HSL HRT +helsinki_metro|60.171361,24.941214||Helsinki Metro|HSL HRT + +# tr + +istanbul_rail|41.011939,28.984308|2015-09|Istanbul Rail Transit|Maximilian Dörrbecker, CC BY-SA 2.5|https://upload.wikimedia.org/wikipedia/commons/8/87/Istanbul_Rapid_Transit_Map_with_Metrob%C3%BCs_%28schematic%29.png + +# uk + +london_tube|51.513507,-0.110264|2014-05|London Tube|TfL +london_overground|51.513507,-0.110264|2013-12|London Overground|TfL +london_rail|51.513507,-0.110264|2014-09|London Rail & Tube Services|TfL +london_night|51.513507,-0.110264|2014|London Night Bus|TfL +london_tramlink|51.37937,-0.101759|2014|London Tramlink|TfL|http://www.tfl.gov.uk/cdn/static/cms/documents/tramlink-network-map.jpg +manchester_metro|53.479754,-2.24272|2014|Manchester Metrolink|Transport for Greater Manchester +bath_bus|51.377628,-2.357004||Bath Bus Network|FWT|http://transportmaps.free.fr/maps/United_Kingdom/Bath/map_Bus_Network.jpg +bath_bus_city_center|51.377628,-2.357004||Bath Bus City Zone 1|FWT|http://transportmaps.free.fr/maps/United_Kingdom/Bath/map_City_Center_Bus.jpg +leeds_bus|53.795649,-1.548003||Leeds Bus Network|FWT|http://transportmaps.free.fr/maps/United_Kingdom/Leeds/map_Bus.jpg +newcastle_metro|54.972793,-1.604741||Newcastle Metro|Nexus +nottingham_bus_city_center|52.947042,-1.146276||Nottingham City Centre Bus/Tram|FWT|http://transportmaps.free.fr/maps/United_Kingdom/Nottingham/map_Bus_NCTX_Inner_City_Map.jpg +nottingham_bus_greater_area|52.947042,-1.146276||Nottingham Greater Area Bus||http://transportmaps.free.fr/maps/United_Kingdom/Nottingham/map_Greater_Nottingham_Buses.jpg +york|53.957911,-1.093061||York Bus||http://transportmaps.free.fr/maps/United_Kingdom/York/map_Bus.jpg +westmidlands_rail|52.477785,-1.898184||West Midlands Rail Network| + +# it + +milano_metro|45.484599,9.185281|2015-05|Milano Metro|Regione Lombardia +rome_metro|41.901276,12.499574||Rome Metro and Tram|atac +napoli_city|40.852780,14.271692||Napoli City|Unico Campania +napoli_region|40.852780,14.271692||Napoli Region|Unico Campania + +# fr + +paris_metro_ratp|48.855414,2.34488|2014-01|Paris Metro|RATP +paris_metro|48.855414,2.34488|2012-12|Paris Metro|Nathan Kaufmann, Creative Commons + +# po + +gdansk_tram|54.355338,18.644478|2008|Gdansk Tram|ZKM|http://transportmaps.free.fr/maps/Poland/Gdansk/map_Tram.jpg +krakow_tram|50.065365,19.947124|2010-03-01|Krakow Tram|KST|http://transportmaps.free.fr/maps/Poland/Krakow/map_Tram.jpg +poznan_tram|52.40144,16.91215||Poznan Tram|MPK|http://transportmaps.free.fr/maps/Poland/Poznan/map_Trams.jpg +poznan_night|52.40144,16.91215||Poznan Night Buses|MPK|http://transportmaps.free.fr/maps/Poland/Poznan/map_Night_Buses.jpg +warsaw_rail|52.230515,21.010702|2011-12-01|Warsaw Rail Transport|ztm|http://www.ztm.waw.pl/mapa/duze/tramwaje.gif +warsaw_metro_tram|52.230515,21.010702||Warsaw Metro and Tram|zajcev|http://transportmaps.free.fr/maps/Poland/Warsaw/map_Subway_and_Tramway.jpg + +# cz + +prague_bus_metro|50.083239,14.435021|2016-10-03|Prague Bus and Metro|Pražská Integrovaná Doprava +prague_tram_metro|50.083239,14.435021|2016-08-03|Prague Tram and Metro|Pražská Integrovaná Doprava +prague_train|50.083239,14.435021|2016-08-28|Prague Train Lines|Pražská Integrovaná Doprava +prague_night|50.083239,14.435021|2016-08-28|Prague Night Service|Pražská Integrovaná Doprava + +# sk + +bratislava_city|48.158729,17.106804|2013-09|Bratislava City Lines|Dopravný podnik Bratislava +bratislava_tram|48.158729,17.106804|2013-09-16|Bratislava Tram|Dopravný podnik Bratislava +bratislava_trolley|48.158729,17.106804|2013-09-02|Bratislava Trolley Buses|Dopravný podnik Bratislava +bratislava_night|48.158729,17.106804|2013-09-02|Bratislava Night Routes|Dopravný podnik Bratislava + +# gr + +athen_metro|37.992426,23.720444|2014-04|Athens Metro|Attiko Metro + +# us + +sanfrancisco_metro|37.774534,-122.419124|2007-07|San Francisco Metro|SFMTA|http://transit.511.org/static/providers/maps/SF_712200722845.gif +sanfrancisco_system|37.774534,-122.419124|2010-10|San Francisco System|SFMTA|http://transit.511.org/static/providers/maps/SF_1222201020400.gif +sanfrancisco_downtown|37.774534,-122.419124|2010-10|San Francisco Downtown|SFMTA|http://transit.511.org/static/providers/maps/SF_1222201020237.gif +sanfrancisco_marketstreet|37.774534,-122.419124|2010-10|San Francisco Market Street|SFMTA|http://transit.511.org/static/providers/maps/SF_10262010101811.gif +sanfrancisco_owl|37.774534,-122.419124|2010-10|San Francisco Owl Service|SFMTA|http://transit.511.org/static/providers/maps/SF_10262010102001.gif +sanfrancisco_bart|37.616291,-122.386079|2014|San Francisco Bay Area Rapid Transit|BART|http://www.bart.gov/sites/all/themes/bart_desktop/img/system-map.gif +losangeles_system|34.05427,-118.246715|2016-06|Los Angeles System|metro.net +losangeles_downtown|34.05427,-118.246715|2016-06|Los Angeles Downtown|metro.net +losangeles_metro|34.05427,-118.246715|2016-05|Los Angeles Metro|metro.net|https://media.metro.net/riding_metro/maps/images/rail_map.gif +losangeles_metro_metrolink|34.05427,-118.246715|2016-11|Los Angeles Metro & Rail|metro.net|https://media.metro.net/riding_metro/maps/images/metro_regionalrail_map.gif +newyork_subway|40.738452,-73.991919|2010-12|New York Subway|MTA +philadelphia_regional|39.957386,-75.180488|2012-06|Philadelphia Regional Train & Rail Transit|SEPTA +chicago_downtown|41.878674,-87.640333|2016-02|Chicago Downtown|RTA Chicago +chicago_trains|41.878674,-87.640333|2015-03|Chicago Train Connections|RTA Chicago + +# ar + +buenosaires_metro|-34.60837,-58.372171||Buenos Aires Metro|Metrovías|http://www.metrovias.com.ar/v2/html/..%5CImages%5CMapas%5Csubte-mapa-esquematico-2010.jpg +buenosaires_urquiza|-34.60837,-58.372171||Buenos Aires Urquiza|Metrovías|http://www.metrovias.com.ar/v2/Images/Mapas/mapa-urquiza.gif +buenosaires_premetro|-34.60837,-58.372171||Buenos Aires Premetro|Metrovías|http://www.metrovias.com.ar/v2/Images/Mapas/mapa-premetro.gif + +# au + +melbourne_metropolitan_train|-37.813425,144.962869|2016-01|Melbourne Metropolitan Train|Public Transport Victoria +melbourne_metropolitan_tram|-37.813425,144.962869|2015-01|Melbourne Metropolitan Tram|State of Victoria +melbourne_metropolitan_nightrider|-37.813425,144.962869|2015-01|Melbourne NightRider|Public Transport Victoria +sydney_trains|-33.882474,151.206688|2015|Sydney Trains|Transport for NSW +sydney_lightrail|-33.873103,151.199918|2015|Sydney Light Rail|Transport for NSW +sydney_night|-33.873813,151.206805|2015|Sydney NightRide Buses|Transport for NSW +sydney_ferry|-33.861256,151.210954|2015|Sydney Ferries|Transport for NSW +sydney_intercity|-33.882474,151.206688|2014|Sydney Intercity Trains|Transport for NSW +brisbane_light_rail|-27.473986,153.028035||Brisbane Light Rail|TRANSLink|https://translink.com.au/sites/default/files/assets/resources/plan-your-journey/maps/140721-gold-coast-light-rail.jpg +brisbane_ferry|-27.473986,153.028035|2015-07-01|Brisbane Ferry Network|TRANSLink|https://translink.com.au/sites/default/files/assets/resources/plan-your-journey/maps/150701-ferry-network-map.jpg +brisbane_night|-27.473986,153.028035|2014-12-05|Brisbane NightLight and CityGlider Network|TRANSLink +brisbane_train|-27.473986,153.028035|2016-10-04|Brisbane Train Network|QueenslandRail/TRANSLink|https://translink.com.au/sites/default/files/assets/resources/plan-your-journey/maps/160104-train-network-map.jpg + +# sg + +singapore|1.299078,103.84577|2015|Singapore|Land Transport Authority + +# cn + +beijing_subway|39.924854,116.396577|2009|Beijing Subway|Wikimedia Commons|http://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Beijing-Subway-Plan.svg/2000px-Beijing-Subway-Plan.svg.png + +# tw + +taipei_metro|25.06331,121.55169||Taipei Metro|Taipei Rapid Transit Corporation|http://web.metro.taipei/img/E/metrotaipeimap.jpg + +# in + +delhi_metro|28.635481,77.225032|2010|Delhi Metro|Wikimedia Commons|http://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/Delhi_metro_rail_network.svg/2000px-Delhi_metro_rail_network.svg.png + +# jp + +tokyo_subway|35.681143,139.76615|2015-08|Tokyo Subway|Bureau of Transportation +osaka_subway|34.693921,135.502181|2014-09-30|Osaka Subway|Osaka Municipal Transportation Bureau diff --git a/oeffi/build.gradle b/oeffi/build.gradle new file mode 100644 index 0000000..bebc354 --- /dev/null +++ b/oeffi/build.gradle @@ -0,0 +1,75 @@ +apply plugin: 'com.android.application' +apply plugin: 'androidsvgdrawable' + +configurations { + all*.exclude group: 'org.json', module: 'json' + all*.exclude group: 'net.sf.kxml', module: 'kxml2' + all*.exclude group: 'android.arch.lifecycle', module: 'runtime' + all*.exclude group: 'com.github.tony19', module: 'apktool-lib' +} + +dependencies { + compile project(':enabler') + compile 'de.schildbach.wallet:integration-android:2.0' + compile 'com.android.support:support-annotations:27.1.1' + compile 'com.android.support:support-compat:27.1.1' + compile 'com.android.support:support-core-ui:27.1.1' + compile 'com.android.support:support-core-utils:27.1.1' + compile 'com.android.support:recyclerview-v7:27.1.1' + compile 'com.squareup.okhttp3:okhttp:3.10.0' + compile 'com.squareup.okhttp3:logging-interceptor:3.10.0' + compile 'com.google.guava:guava:25.1-android' + compile 'org.slf4j:slf4j-api:1.7.25' + compile 'com.github.tony19:logback-android:1.1.1-8' + compile 'com.google.code.findbugs:jsr305:3.0.0' + testCompile 'junit:junit:4.12' +} + +android { + compileSdkVersion 'android-27' + buildToolsVersion '27.0.3' + + lintOptions { + abortOnError false + disable 'MissingTranslation' + } + + defaultConfig { + generatedDensities = ['hdpi', 'xhdpi'] + } + + buildTypes { + all { + minifyEnabled true + proguardFile 'proguard.cfg' + } + debug { + debuggable true + } + } + + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + res.srcDirs = ['res'] + assets.srcDirs = ['assets'] + } + test { + java.srcDirs = ['test'] + } + } + + packagingOptions { + exclude 'META-INF/*.version' + exclude 'okhttp3/internal/publicsuffix/publicsuffixes.gz' + } +} + +task svgToPng(type: fr.avianey.androidsvgdrawable.gradle.SvgDrawableTask) { + from = files('graphics') + to = file('res') + targetedDensities = ['hdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi'] + outputFormat = 'PNG' + outputType = 'mipmap' +} diff --git a/oeffi/graphics/ic_oeffi_directions_color_48dp-mdpi.svg b/oeffi/graphics/ic_oeffi_directions_color_48dp-mdpi.svg new file mode 100644 index 0000000..e92a421 --- /dev/null +++ b/oeffi/graphics/ic_oeffi_directions_color_48dp-mdpi.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oeffi/graphics/ic_oeffi_plans_color_48dp-mdpi.svg b/oeffi/graphics/ic_oeffi_plans_color_48dp-mdpi.svg new file mode 100644 index 0000000..d1817b5 --- /dev/null +++ b/oeffi/graphics/ic_oeffi_plans_color_48dp-mdpi.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oeffi/graphics/ic_oeffi_stations_color_48dp-mdpi.svg b/oeffi/graphics/ic_oeffi_stations_color_48dp-mdpi.svg new file mode 100644 index 0000000..87f345b --- /dev/null +++ b/oeffi/graphics/ic_oeffi_stations_color_48dp-mdpi.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oeffi/proguard.cfg b/oeffi/proguard.cfg new file mode 100644 index 0000000..57bfc7a --- /dev/null +++ b/oeffi/proguard.cfg @@ -0,0 +1,80 @@ +-dontskipnonpubliclibraryclasses +-dontoptimize +-dontpreverify +-dontobfuscate +-verbose + +-keepattributes *Annotation* + +-keepclasseswithmembernames class * { + native ; +} + +-keepclassmembers,includedescriptorclasses public class * extends android.view.View { + void set*(***); + *** get*(); +} + +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} + +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keepclassmembers class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator CREATOR; +} + +-keepclassmembers class **.R$* { + public static ; +} + +# serializable +-keepclassmembers class * implements java.io.Serializable { + static final long serialVersionUID; + private static final java.io.ObjectStreamField[] serialPersistentFields; + !static !transient ; + private void writeObject(java.io.ObjectOutputStream); + private void readObject(java.io.ObjectInputStream); + java.lang.Object writeReplace(); + java.lang.Object readResolve(); +} + +# android-support +-dontwarn android.support.** +-dontnote android.support.** + +# OkHttp +-dontwarn okio.DeflaterSink +-dontwarn okio.Okio +-dontwarn okhttp3.internal.platform.ConscryptPlatform +-dontnote okhttp3.internal.platform.ConscryptPlatform +-dontnote okhttp3.internal.platform.Platform +-dontnote okhttp3.internal.platform.AndroidPlatform + +# Guava +-dontwarn sun.misc.Unsafe +-dontwarn java.lang.ClassValue +-dontwarn com.google.errorprone.annotations.** +-dontwarn afu.org.checkerframework.checker.**,org.checkerframework.checker.** +-dontnote com.google.common.reflect.** +-dontnote com.google.appengine.** +-dontnote com.google.apphosting.** +-dontnote com.google.common.cache.Striped64,com.google.common.cache.Striped64$Cell +-dontnote com.google.common.hash.Striped64,com.google.common.hash.Striped64$Cell +-dontnote com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper +-dontnote dalvik.system.CloseGuard + +# slf4j +-dontwarn org.slf4j.MDC +-dontwarn org.slf4j.MarkerFactory + +# logback-android +-dontwarn javax.mail.** +-dontwarn brut.androlib.res.decoder.AXmlResourceParser + +# Öffi +-dontnote de.schildbach.oeffi.util.PopupHelper diff --git a/oeffi/project.properties b/oeffi/project.properties new file mode 100644 index 0000000..7c0f563 --- /dev/null +++ b/oeffi/project.properties @@ -0,0 +1,13 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "ant.properties", and override values to adapt the script to your +# project structure. + +# Indicates whether an apk should be generated for each density. +split.density=false +# Project target. +target=android-27 diff --git a/oeffi/res/anim/enter_from_left.xml b/oeffi/res/anim/enter_from_left.xml new file mode 100644 index 0000000..6cef6d9 --- /dev/null +++ b/oeffi/res/anim/enter_from_left.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/anim/enter_from_right.xml b/oeffi/res/anim/enter_from_right.xml new file mode 100644 index 0000000..7a00adc --- /dev/null +++ b/oeffi/res/anim/enter_from_right.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/anim/exit_to_left.xml b/oeffi/res/anim/exit_to_left.xml new file mode 100644 index 0000000..5cdb2f7 --- /dev/null +++ b/oeffi/res/anim/exit_to_left.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/anim/exit_to_right.xml b/oeffi/res/anim/exit_to_right.xml new file mode 100644 index 0000000..84464ae --- /dev/null +++ b/oeffi/res/anim/exit_to_right.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/anim/pop_in.xml b/oeffi/res/anim/pop_in.xml new file mode 100644 index 0000000..9c40724 --- /dev/null +++ b/oeffi/res/anim/pop_in.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/oeffi/res/anim/pop_out.xml b/oeffi/res/anim/pop_out.xml new file mode 100644 index 0000000..c9d037a --- /dev/null +++ b/oeffi/res/anim/pop_out.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/oeffi/res/anim/rotate.xml b/oeffi/res/anim/rotate.xml new file mode 100644 index 0000000..7daae8c --- /dev/null +++ b/oeffi/res/anim/rotate.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/oeffi/res/anim/zoom_controls.xml b/oeffi/res/anim/zoom_controls.xml new file mode 100644 index 0000000..4c17fe7 --- /dev/null +++ b/oeffi/res/anim/zoom_controls.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/oeffi/res/animator/heartbeat.xml b/oeffi/res/animator/heartbeat.xml new file mode 100644 index 0000000..e49eaf0 --- /dev/null +++ b/oeffi/res/animator/heartbeat.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + diff --git a/oeffi/res/color/list_entry.xml b/oeffi/res/color/list_entry.xml new file mode 100644 index 0000000..b2f6bc4 --- /dev/null +++ b/oeffi/res/color/list_entry.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/ic_accessible_grey600_18dp.xml b/oeffi/res/drawable-anydpi/ic_accessible_grey600_18dp.xml new file mode 100644 index 0000000..ac9f0d2 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_accessible_grey600_18dp.xml @@ -0,0 +1,12 @@ + + + + diff --git a/oeffi/res/drawable-anydpi/ic_arrow_back_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_arrow_back_white_24dp.xml new file mode 100644 index 0000000..38fbc26 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_arrow_back_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_beenhere_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_beenhere_grey600_24dp.xml new file mode 100644 index 0000000..13dd5aa --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_beenhere_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_block_black_24dp.xml b/oeffi/res/drawable-anydpi/ic_block_black_24dp.xml new file mode 100644 index 0000000..4510bf5 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_block_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_cash_multiple_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_cash_multiple_grey600_24dp.xml new file mode 100644 index 0000000..3465ebe --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_cash_multiple_grey600_24dp.xml @@ -0,0 +1,7 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_clear_black_24dp.xml b/oeffi/res/drawable-anydpi/ic_clear_black_24dp.xml new file mode 100644 index 0000000..ede4b71 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_clear_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_clear_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_clear_grey600_24dp.xml new file mode 100644 index 0000000..01752dd --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_clear_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_contacts_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_contacts_grey600_24dp.xml new file mode 100644 index 0000000..b2c9348 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_contacts_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_directions_bike_grey600_18dp.xml b/oeffi/res/drawable-anydpi/ic_directions_bike_grey600_18dp.xml new file mode 100644 index 0000000..d1d6bc1 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_directions_bike_grey600_18dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_directions_bike_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_directions_bike_grey600_24dp.xml new file mode 100644 index 0000000..bee35d4 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_directions_bike_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_directions_walk_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_directions_walk_grey600_24dp.xml new file mode 100644 index 0000000..028d086 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_directions_walk_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_expand_less_black_24dp.xml b/oeffi/res/drawable-anydpi/ic_expand_less_black_24dp.xml new file mode 100644 index 0000000..3afdf96 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_expand_less_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_expand_less_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_expand_less_white_24dp.xml new file mode 100644 index 0000000..d58421a --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_expand_less_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_expand_more_black_24dp.xml b/oeffi/res/drawable-anydpi/ic_expand_more_black_24dp.xml new file mode 100644 index 0000000..8d57dbc --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_expand_more_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_expand_more_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_expand_more_white_24dp.xml new file mode 100644 index 0000000..fd3ce4a --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_expand_more_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_favorite_border_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_favorite_border_grey600_24dp.xml new file mode 100644 index 0000000..0efbf80 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_favorite_border_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_filter_list_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_filter_list_white_24dp.xml new file mode 100644 index 0000000..7d435fa --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_filter_list_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_filter_list_yellow_24dp.xml b/oeffi/res/drawable-anydpi/ic_filter_list_yellow_24dp.xml new file mode 100644 index 0000000..1674c3c --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_filter_list_yellow_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_flag_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_flag_grey600_24dp.xml new file mode 100644 index 0000000..192d1da --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_flag_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_gps_fixed_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_gps_fixed_grey600_24dp.xml new file mode 100644 index 0000000..6a0e3d6 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_gps_fixed_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_info_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_info_grey600_24dp.xml new file mode 100644 index 0000000..aa33ba0 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_info_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_info_outline_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_info_outline_grey600_24dp.xml new file mode 100644 index 0000000..f987f36 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_info_outline_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_info_outline_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_info_outline_white_24dp.xml new file mode 100644 index 0000000..9567ecd --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_info_outline_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_local_taxi_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_local_taxi_grey600_24dp.xml new file mode 100644 index 0000000..7b56b7e --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_local_taxi_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_location_disabled_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_location_disabled_white_24dp.xml new file mode 100644 index 0000000..16f058f --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_location_disabled_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_location_searching_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_location_searching_grey600_24dp.xml new file mode 100644 index 0000000..7da6b0c --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_location_searching_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_location_searching_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_location_searching_white_24dp.xml new file mode 100644 index 0000000..9faeb1a --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_location_searching_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_map_black_24dp.xml b/oeffi/res/drawable-anydpi/ic_map_black_24dp.xml new file mode 100644 index 0000000..b9bacc8 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_map_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_menu_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_menu_white_24dp.xml new file mode 100644 index 0000000..cf37e2a --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_menu_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_more_vert_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_more_vert_grey600_24dp.xml new file mode 100644 index 0000000..7fd6212 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_more_vert_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_more_vert_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_more_vert_white_24dp.xml new file mode 100644 index 0000000..3dfd99e --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_more_vert_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_oeffi_directions_grey600_36dp.xml b/oeffi/res/drawable-anydpi/ic_oeffi_directions_grey600_36dp.xml new file mode 100644 index 0000000..49ecb59 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_oeffi_directions_grey600_36dp.xml @@ -0,0 +1,23 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/ic_oeffi_plans_grey300_72dp.xml b/oeffi/res/drawable-anydpi/ic_oeffi_plans_grey300_72dp.xml new file mode 100644 index 0000000..737d073 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_oeffi_plans_grey300_72dp.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/ic_oeffi_plans_grey600_36dp.xml b/oeffi/res/drawable-anydpi/ic_oeffi_plans_grey600_36dp.xml new file mode 100644 index 0000000..5d409f1 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_oeffi_plans_grey600_36dp.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/ic_oeffi_stations_grey600_36dp.xml b/oeffi/res/drawable-anydpi/ic_oeffi_stations_grey600_36dp.xml new file mode 100644 index 0000000..dcb253c --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_oeffi_stations_grey600_36dp.xml @@ -0,0 +1,20 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/ic_offline_pin_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_offline_pin_grey600_24dp.xml new file mode 100644 index 0000000..bdcb493 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_offline_pin_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_place_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_place_grey600_24dp.xml new file mode 100644 index 0000000..64fef3d --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_place_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_portable_wifi_off_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_portable_wifi_off_grey600_24dp.xml new file mode 100644 index 0000000..486b8a0 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_portable_wifi_off_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_refresh_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_refresh_white_24dp.xml new file mode 100644 index 0000000..a8175c3 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_refresh_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_search_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_search_grey600_24dp.xml new file mode 100644 index 0000000..a1dc489 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_search_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_search_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_search_white_24dp.xml new file mode 100644 index 0000000..47432c1 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_search_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_settings_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_settings_grey600_24dp.xml new file mode 100644 index 0000000..e180778 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_settings_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_settings_input_antenna_grey600_18dp.xml b/oeffi/res/drawable-anydpi/ic_settings_input_antenna_grey600_18dp.xml new file mode 100644 index 0000000..a01ddfb --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_settings_input_antenna_grey600_18dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_share_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_share_white_24dp.xml new file mode 100644 index 0000000..9040666 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_share_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_shuffle_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_shuffle_white_24dp.xml new file mode 100644 index 0000000..512042a --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_shuffle_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_star_border_black_24dp.xml b/oeffi/res/drawable-anydpi/ic_star_border_black_24dp.xml new file mode 100644 index 0000000..b36536b --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_star_border_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_star_border_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_star_border_white_24dp.xml new file mode 100644 index 0000000..be9cd28 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_star_border_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_star_grey600_24dp.xml b/oeffi/res/drawable-anydpi/ic_star_grey600_24dp.xml new file mode 100644 index 0000000..56551b9 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_star_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_star_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_star_white_24dp.xml new file mode 100644 index 0000000..fa1c999 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_star_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_today_white_24dp.xml b/oeffi/res/drawable-anydpi/ic_today_white_24dp.xml new file mode 100644 index 0000000..e758274 --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_today_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/ic_warning_amber_24dp.xml b/oeffi/res/drawable-anydpi/ic_warning_amber_24dp.xml new file mode 100644 index 0000000..c3b7fdf --- /dev/null +++ b/oeffi/res/drawable-anydpi/ic_warning_amber_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/oeffi/res/drawable-anydpi/network_bvg_logo.xml b/oeffi/res/drawable-anydpi/network_bvg_logo.xml new file mode 100644 index 0000000..3141ccf --- /dev/null +++ b/oeffi/res/drawable-anydpi/network_bvg_logo.xml @@ -0,0 +1,19 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/network_db_logo.xml b/oeffi/res/drawable-anydpi/network_db_logo.xml new file mode 100644 index 0000000..c5c2a44 --- /dev/null +++ b/oeffi/res/drawable-anydpi/network_db_logo.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/network_kvv_logo.xml b/oeffi/res/drawable-anydpi/network_kvv_logo.xml new file mode 100644 index 0000000..66c963e --- /dev/null +++ b/oeffi/res/drawable-anydpi/network_kvv_logo.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/network_oebb_logo.xml b/oeffi/res/drawable-anydpi/network_oebb_logo.xml new file mode 100644 index 0000000..ff10696 --- /dev/null +++ b/oeffi/res/drawable-anydpi/network_oebb_logo.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/network_sh_logo.xml b/oeffi/res/drawable-anydpi/network_sh_logo.xml new file mode 100644 index 0000000..0b69f60 --- /dev/null +++ b/oeffi/res/drawable-anydpi/network_sh_logo.xml @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/network_vagfr_logo.xml b/oeffi/res/drawable-anydpi/network_vagfr_logo.xml new file mode 100644 index 0000000..a4f0a7c --- /dev/null +++ b/oeffi/res/drawable-anydpi/network_vagfr_logo.xml @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/network_vbb_logo.xml b/oeffi/res/drawable-anydpi/network_vbb_logo.xml new file mode 100644 index 0000000..c9ec1e8 --- /dev/null +++ b/oeffi/res/drawable-anydpi/network_vbb_logo.xml @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/network_vgn_logo.xml b/oeffi/res/drawable-anydpi/network_vgn_logo.xml new file mode 100644 index 0000000..9b4e161 --- /dev/null +++ b/oeffi/res/drawable-anydpi/network_vgn_logo.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/network_vrr_logo.xml b/oeffi/res/drawable-anydpi/network_vrr_logo.xml new file mode 100644 index 0000000..a67ec18 --- /dev/null +++ b/oeffi/res/drawable-anydpi/network_vrr_logo.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_bus_color_22dp.xml b/oeffi/res/drawable-anydpi/product_bus_color_22dp.xml new file mode 100644 index 0000000..ce0fd4a --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_bus_color_22dp.xml @@ -0,0 +1,78 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_bus_color_32dp.xml b/oeffi/res/drawable-anydpi/product_bus_color_32dp.xml new file mode 100644 index 0000000..ec1255f --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_bus_color_32dp.xml @@ -0,0 +1,78 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_bus_darkgrey_32dp.xml b/oeffi/res/drawable-anydpi/product_bus_darkgrey_32dp.xml new file mode 100644 index 0000000..77e3b50 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_bus_darkgrey_32dp.xml @@ -0,0 +1,78 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_cablecar_color_22dp.xml b/oeffi/res/drawable-anydpi/product_cablecar_color_22dp.xml new file mode 100644 index 0000000..f41210e --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_cablecar_color_22dp.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_cablecar_color_32dp.xml b/oeffi/res/drawable-anydpi/product_cablecar_color_32dp.xml new file mode 100644 index 0000000..786b9ff --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_cablecar_color_32dp.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_cablecar_darkgrey_32dp.xml b/oeffi/res/drawable-anydpi/product_cablecar_darkgrey_32dp.xml new file mode 100644 index 0000000..56b48a4 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_cablecar_darkgrey_32dp.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_call_color_22dp.xml b/oeffi/res/drawable-anydpi/product_call_color_22dp.xml new file mode 100644 index 0000000..b6ae745 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_call_color_22dp.xml @@ -0,0 +1,22 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_call_color_32dp.xml b/oeffi/res/drawable-anydpi/product_call_color_32dp.xml new file mode 100644 index 0000000..d6e425e --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_call_color_32dp.xml @@ -0,0 +1,22 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_call_darkgrey_32dp.xml b/oeffi/res/drawable-anydpi/product_call_darkgrey_32dp.xml new file mode 100644 index 0000000..446399a --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_call_darkgrey_32dp.xml @@ -0,0 +1,22 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_ferry_color_22dp.xml b/oeffi/res/drawable-anydpi/product_ferry_color_22dp.xml new file mode 100644 index 0000000..fb85ac7 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_ferry_color_22dp.xml @@ -0,0 +1,33 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_ferry_color_32dp.xml b/oeffi/res/drawable-anydpi/product_ferry_color_32dp.xml new file mode 100644 index 0000000..7d9c8ad --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_ferry_color_32dp.xml @@ -0,0 +1,33 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_ferry_darkgrey_32dp.xml b/oeffi/res/drawable-anydpi/product_ferry_darkgrey_32dp.xml new file mode 100644 index 0000000..a1b7ec8 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_ferry_darkgrey_32dp.xml @@ -0,0 +1,33 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_highspeed_color_22dp.xml b/oeffi/res/drawable-anydpi/product_highspeed_color_22dp.xml new file mode 100644 index 0000000..a447eaf --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_highspeed_color_22dp.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_highspeed_color_32dp.xml b/oeffi/res/drawable-anydpi/product_highspeed_color_32dp.xml new file mode 100644 index 0000000..224244d --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_highspeed_color_32dp.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_highspeed_darkgrey_32dp.xml b/oeffi/res/drawable-anydpi/product_highspeed_darkgrey_32dp.xml new file mode 100644 index 0000000..e28c88c --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_highspeed_darkgrey_32dp.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_suburban_color_22dp.xml b/oeffi/res/drawable-anydpi/product_suburban_color_22dp.xml new file mode 100644 index 0000000..da2eda7 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_suburban_color_22dp.xml @@ -0,0 +1,25 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_suburban_color_32dp.xml b/oeffi/res/drawable-anydpi/product_suburban_color_32dp.xml new file mode 100644 index 0000000..c9e8e3b --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_suburban_color_32dp.xml @@ -0,0 +1,25 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_suburban_darkgrey_32dp.xml b/oeffi/res/drawable-anydpi/product_suburban_darkgrey_32dp.xml new file mode 100644 index 0000000..4a4e1db --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_suburban_darkgrey_32dp.xml @@ -0,0 +1,25 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_subway_color_22dp.xml b/oeffi/res/drawable-anydpi/product_subway_color_22dp.xml new file mode 100644 index 0000000..4281764 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_subway_color_22dp.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_subway_color_32dp.xml b/oeffi/res/drawable-anydpi/product_subway_color_32dp.xml new file mode 100644 index 0000000..11933ce --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_subway_color_32dp.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_subway_darkgrey_32dp.xml b/oeffi/res/drawable-anydpi/product_subway_darkgrey_32dp.xml new file mode 100644 index 0000000..11e6610 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_subway_darkgrey_32dp.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_train_color_22dp.xml b/oeffi/res/drawable-anydpi/product_train_color_22dp.xml new file mode 100644 index 0000000..d4bb93f --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_train_color_22dp.xml @@ -0,0 +1,28 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_train_color_32dp.xml b/oeffi/res/drawable-anydpi/product_train_color_32dp.xml new file mode 100644 index 0000000..19d43d1 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_train_color_32dp.xml @@ -0,0 +1,28 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_train_darkgrey_32dp.xml b/oeffi/res/drawable-anydpi/product_train_darkgrey_32dp.xml new file mode 100644 index 0000000..2fe0b62 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_train_darkgrey_32dp.xml @@ -0,0 +1,28 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_tram_color_22dp.xml b/oeffi/res/drawable-anydpi/product_tram_color_22dp.xml new file mode 100644 index 0000000..ba1cd1a --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_tram_color_22dp.xml @@ -0,0 +1,66 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_tram_color_32dp.xml b/oeffi/res/drawable-anydpi/product_tram_color_32dp.xml new file mode 100644 index 0000000..6199760 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_tram_color_32dp.xml @@ -0,0 +1,66 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-anydpi/product_tram_darkgrey_32dp.xml b/oeffi/res/drawable-anydpi/product_tram_darkgrey_32dp.xml new file mode 100644 index 0000000..4df10f4 --- /dev/null +++ b/oeffi/res/drawable-anydpi/product_tram_darkgrey_32dp.xml @@ -0,0 +1,66 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable-hdpi/appwidget_dark_bg.9.png b/oeffi/res/drawable-hdpi/appwidget_dark_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..02ee4401f913876f31a0c0aa8d0061ae18fe6618 GIT binary patch literal 731 zcmeAS@N?(olHy`uVBq!ia0vp^UO?>2!3HE5uYNiSq*#ibJVQ8upoSx*1IXtr@Q5sC zVBqcqVMg?;kx;+0Egx$4x^?(eagypsW|G zlTA=nlY{01(+Lc&R&PFUvbGknb;;yx=>6}pUYuLQ&b(Oi zH&m%ffJv;Ib=v8t%cgw#^6S^HWM+ofUw=7;?w<4cO0nO$GYeMT$T2%%S#EfYn<0Zi zVQGok+ltR2UXGeic^H@&R=hg=|7+mx(-phq7?L&IcFn!{&Q@-j+>`i&0e(DBk5GYN zG>*}mt2|Fby{(Arz7T)Kz-L)PY-H4Gn;_q$xvn|^v-?(I;HhdZuS$v8zYT9|BR`(FO= z48x2LjRuwnyJz0*II%tG)L8?b*HeO+0>0PVF=T|VzN*wxAd+meYO7qEz^#wwH}8Kf zo8Q5)p*!^K8U_y~qZv0h#I4`1xs=CY=|u)fBkr*7F7jIoeZ9?elF{r5}E*% C{W@6y literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-hdpi/appwidget_dark_bg_focused.9.png b/oeffi/res/drawable-hdpi/appwidget_dark_bg_focused.9.png new file mode 100644 index 0000000000000000000000000000000000000000..ccc01774571d9270a0a50c6f96332e1a3c5caf5c GIT binary patch literal 856 zcmeAS@N?(olHy`uVBq!ia0vp^UO?>2!3HE5uYNiSq*#ibJVQ8upoSx*1IXtr@Q5sC zVBqcqVMg-fi8lc zp3aWb^&N$mdNSJD+Qu_1>EN2EBowqxJxEKW_0PrJZ{KS6)!I65+&z6U$1E=W^3RiF zB3>u`S(Cf7BK1rUZ%X>Mdov|B-TV3K`hK;g1^z9z#&++DH|*>DaHz-qX2plc>C?Y6 z3O7XWx0%l~*(OS&^s;1RuJON9avT9_i6IJI(@rY$>nPYmkvNMGT2TXIzubJ)UNM;|G(9lqTBN#6g2|MzOCjqy+4 zwS0P2njpD4TF0&>R3qg7N1s#v-!toeJ+zlE67G3-$CfvhVHMMasyQ#~Rh=wdHI{Qc z6TQ@Qtw!@rM;Qo-b~g-MR5f9u|!!mw;^ z(yR%o+l$H%y*PLGU)t-yoz|7xlXvAXuVlH9_Rl8tuyzpdH1_ztb-ywfbf4M9XKPu< z8so=M`Rmtn8|wqR?tIRWcA2`)a>;Dp`sS-^zkmC9_`ThZZROFk4{IN-Xb<64h`sQ9 zkJdEtCx=`$Aa;u)+eT>0$GtU;KOEV&k z=b!Jty)BkO_BH>sbt(%a_}X0qMV79bRvNo}%B7t>Thx@)l&+cduF47*aW$WP*66gu osaLLEXLtlV&Ck^*rhPKMn2!3HE5uYNiSq*#ibJVQ8upoSx*1IXtr@Q5sC zVBqcqVMgvX}tOOy;spL@)Cd4l~y_h1TEbt z^j2rhU-maoOq&$`iHp6={lo0!q~jt`y;jFbsDAC|wDf29ii1+7+c00e+!A}wT7E{- z&1dhXTU!Uq=%pPK+oXK`*i6Yy{|Y`|+}z!JLRN5RN-B7MC_N#LRq8TzNKDg`53Yq@=i<-o~m?7@Muq}-jqf6nN=Dl9k0FG@g?82chd3V z4P31+%WUGd^)SxhTI1ZR-xc5|cuLdB(p6(Q$5WAobCjk8w-k{nIOWEq#!I>4)*$m# zf26lq{n>sakQ&CgMiSPRm$j+w2oWwYJOG zU45!JBd;v=_K_)HMcYt(Jea*Z6W(nbgXx3Btd=FJ(Qeyfph{ z_xJY4kIvdYn8o0uHu+}j>+O1`zs2*s@7Cy^O_85C+1xxeVcFuR4^3B{|9t!Y`~6iv z9%ve@Nj9mjuHL*X^O@$-&8w=+mYT4aomunj2j3jY1f`$`xgQy6?_Hkwp8FYly)^g! zciRQ8<>xn~+0FM4_Szj9`gYYTKd+UMwd!eQZ=BZVNiknJV|1b0BRwtl_O{de-n%c@ zV7H+}mGNqc)!J37R)ubzcQ#FPX^D>V+Rl#7j?&oWtD;t|(&|2{^toIi^{bj{T3g2v g?e4rAo=Id9|(K-^5qalbm@bQK>Z>mL4Lsu+`1tiX<(qkq3XdZ zZq39wJ@b?)P`=R9#WBR=_}fdn`5F`iTrRS@y4?Hl|G!p5WWa-2GiIE5dp@OGRjBBp z8f)NZZSx8c_z|5Yy)DgXag_eb8w#^#Uyp495wdp|dxY%V{0d`cy= v;_@3cD^EuMw0Rw@dxd?G@SK=EKX&_Rr(3wrG0ZRqTF&6<>gTe~DWM4fp)F`Y literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-hdpi/btn_zoom_down_normal.png b/oeffi/res/drawable-hdpi/btn_zoom_down_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..d57d8b9f3e7fa5696736d9e675787d08ac927e87 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^_CRdI!3-pyiB56`QceLrA+A8$7!3CA-TVLl|M2ke z*x1<2%*>LKlAN5J^73+sEQI{?=MRLjeED*?c+QREeLz#hN`m}?8DxqsZU!0y1k!n; zv733UC$mT}Y}}a{0aQ`y>EamTas2J2-FyuSJgpC##6#XKc>jM@SxG{}tQj-r)c>Dl zJjLUs=d3W7H|d!lz@UHH*1MNpp1pRiIHJ=~;-LqLZcfp%IYvxS5srBX7M~l1%CRLBa^X^UH&yhdU zE&l&k^NgS_S-a^$MeXYu0*?NlxqM}IuJx~4>**gC0hzK6vd@j;zlhEYw|`Q7{{M=< r_A~82#_!ty^slJ?zw3W{rGHs>1ugGs)sWo}bR>hPtDnm{r-UW|Fi(bQ literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-hdpi/btn_zoom_up_normal.png b/oeffi/res/drawable-hdpi/btn_zoom_up_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..9b72d6b1595933ea687a7cb73d48009648d4c8fb GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^_CRdI!3-pyiB56`Qr-bRA+A8$m=IXLeEFY0fBygf zA08ea8ylOMnORa&l9Q8DUS6J@oLpE~SXx@TckkXxUtfNpagrrLe!&b3EIgvpG7{FY zc}0^qZwBgxfQtujdAtWIn(OJ}7~*mK?bVxHEeawH4~tGOEn55R@BETJr!&6HOAT0y z|5@wX30h`c-+E2>)Q%l;=~KQuIH@qz?D}OdJ{Fs)k4>(d^iFC@U)6V*t*h~Q)jHqe z4~Igkl`kxI|8M$w&Su_w?E*E;{hCWV{++Lxx9ifTrugZ#nf||QN|)+B-B$b3|JRJZ zZu?JbpZ^be$N!xFukU;FfBRotw7$CSe}bXJ>O0Xmey)78&qol`;+0EHcr AHvj+t literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-hdpi/btn_zoom_up_pressed.png b/oeffi/res/drawable-hdpi/btn_zoom_up_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..82987eaf05e1eceebda1bc3fb698c50199e3f57d GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^_CRdI!3-pyiB56`Qr-bRA+A8$m=JKP?)Tkr*>}^` z@bK{1*x1a>%#xCloSdBU^77>58tGLN=^bACs`8Y7tFxG!Y3iGAnlS> z*RK0-&O~o-U3d9>?Eay~)+0Aky%#==9Q}wa@;}FX?kSpVE^TUxpI)2k|I4OysqWKlwJ-gD&FJg4 z|Frh`|B!e5&-wrQzBm83|HVc7yZf`4|FeBeIXpvWwaFErLm50>{an^LB{Ts5FLI8; literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-hdpi/da_marker_red.png b/oeffi/res/drawable-hdpi/da_marker_red.png new file mode 100644 index 0000000000000000000000000000000000000000..256feab16888805e00dec2ad7116e498eaaead24 GIT binary patch literal 2658 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 BBhUZ< literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-hdpi/ic_station_grey600_24dp.png b/oeffi/res/drawable-hdpi/ic_station_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3b672bd78381f0e8eab87f4ca1e7541ae06a67de GIT binary patch literal 588 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 literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-hdpi/location_on.png b/oeffi/res/drawable-hdpi/location_on.png new file mode 100644 index 0000000000000000000000000000000000000000..47532f91f0998d435bef719c403927779d4da934 GIT binary patch literal 1588 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 VnYNS++}i*E002ovPDHLkV1jVal34%% literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-hdpi/station_glow.png b/oeffi/res/drawable-hdpi/station_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..939b04c27fb1de993b15b449e3dab630b61c01db GIT binary patch literal 2907 zcmV-h3#9akP)Px#24YJ`L;(K){{a7>y{D4^01E?2L_t(|+U;D=s~y!HKj+MudvEfRfXWNOg*Dhk zK~lpDCY3G(i?&Ur{R;%aF1qO=A`-gDA`1zj=)#Q)1$Qo8RZ|LC6bU5yg5@m=1&OgG zYMvTMUS96pIX}9YxqR>Ue!l0N`|?blr2~hVJMX?bb3XI={{Eg(>i=7E)A!?|XVy-c z?%I4ra!;`v^f;b8bUOUc0Ym^XN~x+lO+iv@AIZN*FnqTU-#1|Tdjv&yU>Gtg0*VnB zqyUTh5y+knztnDoKd!tUcRWA@7&;6a58 zkhCCX9Hfw7kS9R7{`1L0r`?VL=*-%w9u&Se85V7YL4oKY4pKjQpxntrr~Q2csAG*~ zgMyR-C}qhc21OuRUKp+)2R5&{7mvLi?b<0(CH5$# z+U~fu!MRtScrDx$fX=L)qCnK$q-!8zRMblKP)-Mh40{}7P)m;&6*+wu;M9aY7O*KN zYMSj8@Pi@)DF6%R3IXc(lSM$%TL7nK1F@)PX5JPuD5ryR0QJW$Ii8Sn{ctA_oo=@k zAOW13F$d`*!+_F24;gSjltn>M(2jxR*k~Czt^=&?#LaCBK%E&M2msYgrCeJ=|4*E$pLm+Ok zN(OQPkax{>5qe+&c+otxFx_X9VWgNHSY19ElseZg#2}`32HhBv&la%C0;S!Ho#Zs8 zd?CajM}Ts`ayg`sh2x1*s!>X{%Xh9fFCBd=EW#iQ7)04H0IVqywce6h^0Xx@#=U6Y z{huSOsk+H(kYma*Xd2tC@7mwH1bGH^CcS42Wyz2+s?O*ooA9u?HB-zNLK6un))JgT z&X|dC-1O&$empsG_^eAZh{Raj(W4Wr1>H1A_(v7^T?4#n2_UYVk-LC0l2TSOboVp$ ztD0)mi|}+qzJ~#mkrb~@_(L_YegnqLVK+wX{HPm4@EtT#mQ?b~pmlxo^2>Ej2UUq5 zK^H{KvV!uiK(t>0%Y%F%-+k8stA&(&N=yUMXOx-M?Rt+F8Pr)Wo|ed=Zv{oo8HE@$ z$}nog{wC=@6foODe{9Z)eec2xMq*GUFvbXfvk6w^;x)rkAw1j&#DaNdwfZp;EEQ#* z%f7>wS%*!(d1e-RaxFyGu>x?1LG5p*Bd>$l>f}|&N@!?$c<>L>J zY0e-cB-$(B+*KLfR14M)i2!mKm0-OLu`;MMqzG#$L+G(oNTBESm3@zCr7lJbtQYc8 zN12@IetE1v)Ntfe31lDU`$yWeO?= z1hrZb=oz2Um0IxDbpc4~R=rPK28I?U&+F%=fN>_H7?BdMNM_LyeGmncoqAvj+_Mt; z0bq~7X1z4Spj1LlVwZGd(v3@@3{~2OutzaHQ(`Pk=7A${pqgpSFv}nbD3!I*K`nJgs3Cm~1Q{z+8^Zn`$lxlgh$T3!)1uB`H=K@VN(UD0tR7k?5mJ zyyW}EB`*VhxFmNSGvA5Ao(G}|B*hw%V&x%(%3MPyuBkv$Ehgp{tKerujNgz12x_ua zU?OOrN~1dR&;m=y^Xf+KS~1aMlzLz@a~g&w*wWGnyTMdx7~NoCaTRp}Tjm@plIGx* zQ(jp`*9?GpaRIQV=XSTZr@?9zIx3>TEMD!*wWy$)dc^|JK%BzJ0OTz$Au~AB5EvZX zIUx78HwX8}Mc=(GjVd<$yt zF2N+!?3tVA3_vT#SEEr%sjgdH>P1G!J|jkGVyWU@LyCCgZr{+NUIrW|u*fIwHwd-= zsFVsexWH4cF~OSLF;%)1VGG@JuQo7GxdN3{&dio|ZSW>3)QVTa{<$82M>an99H6j( z!bQ4;gCliXaCt{@loG@Yu~2HD@_=1I0B(*D2XB5B5J0JaM3i+Tb_zmHrWJgw01{;> zfKZDs?ck6asXXflLHde=7M}d|#V}L$>GV*}M04h(nhB%^f(g?(bU$W#Xu|Xm|NmBK zoN_{Yo(HU)BgKzyU2#(3&QP+2bKS4++V6n!tyF#y3NP+iq4LSA4X6cAWjb74A{1$vrE3#9 z$}iu!?tb>m3qi^#&TKCoeJduMuAHuEfKHesSkVajhld_1)87DAl`v~Mp8oRuVr{@( z&AtXro2UgP*TEsx$~6d5wa_CJ6IlYU@VX4tWk09jkE~y6o_*$=ms)+r?ZD6e=^S4fzXs$+8bSEx?7Eq z^F|ed-K)qhjW(82rNRY z4Wp0+P?=%^%2Cbep>9=SyOnv~)teXocK%m-b@^zHJvrx4N_D7$`Wt+22W3yUnsCdn zr`VQvcf51y4`zMWe%?W!>nPpI%S}+(8NOIx`ObCs^q1$`AOG%Ocl9QiZGAn?8=t;v zn`)GL0}SnD)Iuvv4xnT`Zs^DUsjok3QQ&#s0qVCmFTZSW*L$QceXa6q<|Q!;LP;nr zwHt2bn@=3i=j=#;`t7|7FPLs&Nbb!qQo~b7fHY08KYnA)(=_Q12B3cX_`_rR%D%_U z7keJ!QgV ROMuE4JYD@<);T3K0RWK5D^~yj literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-mdpi/capacity_2.png b/oeffi/res/drawable-mdpi/capacity_2.png new file mode 100644 index 0000000000000000000000000000000000000000..95ab002ebdf06265b765c07b57af571c296dfcd8 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^{2PGm86N*-t*jC9 Rcnws>;OXk;vd$@?2>|%3E`R_4 literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-mdpi/capacity_3.png b/oeffi/res/drawable-mdpi/capacity_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c4809db8b4622ca6e6dddd8eb280ea29370ad3b8 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^{2)^mS#w z&Bi7y%qbDdp$`-i_jGX#;kcfhz`*RtD3H0AnU#_CAqNjbGc#-I^7%|4M=^N1`njxg HN@xNAwB#Yf literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-xhdpi/appwidget_dark_bg.9.png b/oeffi/res/drawable-xhdpi/appwidget_dark_bg.9.png new file mode 100644 index 0000000000000000000000000000000000000000..7ccb762be038cd3f6ab6f6f2332a38ef5617aac7 GIT binary patch literal 1005 zcmeAS@N?(olHy`uVBq!ia0vp^NkE*&!3HD^Ok5;@6icy_X9x!n)NrJ90QsB+9+AZi z4BVX{%xHe{^jZc6=6+8X$B>FSZ|^wfDTfLi`?&tzYd>qFS(1i3Pvl5wPVhZr95)&sd42l3WZKIdm9=v|5b_ewA*bj7Ra1ip(=ze7XqXWgs||JE@>GUTgs z_FG$n_f{KX^yYV-@YH-7y7uc&10Ic~3#Pn&UnH34_aWZ($h)wXLK&dOjI{eJUd_&& z6(-BD;?I@r&)R}Bl@2j{Q8IFAVOYUnV87hIo zxIOvdJGr%{!V?WPZ@Zf(+weFoiyMdxJglB z!i<}{82&S6Pn__}ogwIGo5TdI08OFRPTr6FAC!G(-#D`G`@GL~JUjh-1buw}sMXp9 ziCFKN)_3muarJE_>m7x}8RUOkhI<^ER(|i#v+q?gH-B?h+~iq5=?0rYON29tINBo|1 zKiwi&AP{#-HG$*cBn9bXseZxeC zhT84N?_{UWQDxGRocCMPV2{buzwGf(oA=(kZ5i>Yiv5R40sC*h)NcZ*yZ*}>v}pY1 z->2JtIsViehJ6++doxPsun85kmvc`!ta<9;oAXBV|8nq1AA0ue*|l@G&Esb5`EhBv z*({rQU$g8G(V(jg%eaMY1XUu8Ua;Of_po+*wA|Z$n}2_Oe*gXdlIQx&4Hq-E+%!4+ z;#9T#-r3u>#c%%jtaSA&@38C1v5Jp86(8K&{6w?(KlAT*|K#V_7JYtjeSS2<-J)r; zKUT!}t4&_JYL%Mi(sa)}hKgfnjxne)Xid6Wu;vC_)X^ZP_o_e2c!8{+em6@{wFPm)L-G9gSYH4g}XsSy8zq_`#PKZ9f zpW$Au#dzSZ?ejOGpWHb_oOovG6d$9jrF;MQ zoZ2GwPyXc9sSn?sn^SCPJT2%`(#8S?zBM)b8W(rQ)-G7X==ocE*5%U%g0G5YfF%Zl Mr>mdKI;Vst0MXpvX8-^I literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-xhdpi/appwidget_dark_bg_pressed.9.png b/oeffi/res/drawable-xhdpi/appwidget_dark_bg_pressed.9.png new file mode 100644 index 0000000000000000000000000000000000000000..97a3ba093f5a3b6fff6abf15be17d9dee2278c3b GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0vp^NkE*&!3HD^Ok5;@6icy_X9x!n)NrJ90QsB+9+AZi z4BVX{%xHe{^jZc6<~N=$jv*Cu-rn`?mI)O(_VM|h=&P~&9vms0;jj3@N!U^Kfm*cU zf+yK4?jP!vcPNl#VO|%rLu9e%1dju)J5JiQrCid#{I%$OWsJ|(%RMu$TGXc5*uPk} zZkcq~ukUMDy*rva;Rx#i;qAq(Dk*!59$(WB4Swz~R1oQMPk96Lf}4-N#k#CzIPdW< z;mF->FT~B)?_bKG!SLbX_3x{!PVe^hyDxC#_0#~NwCC>*KaKKg(rNM(W2m^YGFE;{ z`M$qDJ_RrySfoGynaX@y!*^e^GP)ZT^o|9d<`;BO$XL~q>G#|6q^@ZVAA=}ENmlrz zllKzZ7PYuG{%7G7a0%z}N}6$T4%7%%XI%mwP(pnE*NTB$`?@K7hmLzk8UB_|6( z#W@`Uel8s9v=kOP_s}I+Jg^653yZ=t_96v0x;W&9lHC9GKO~wSPkz`l_eXpAw8RBs zM^sqSI~Qn0oZ^aTzhKmySz_VMvV!Zf5&JQLRLkExb)F|kGTbUN|M0(oZ5m^hMYG(w zdX{4XyQ1z~FZ&sC+d1OC{Lzld$6hKs8b{oByscVN`orV)Q`>|&r4P1Vzh77S{M6Rf zU*G);54t-2QVN%+3gn<>)}-LW9)wyaf)#zyFv8Z=BM(&>-!|~4r zS1!NYk~Qnu(>cYHgKnw*WNPqMGGe{Ja6;wtk6$M~zrS{UiO57o2gVHwHz(Fi3W}N< z#CK-R{IhA=3|t4U9hWPMO)ri8{`gmnOVuQ<1!5C5JsBr3Ce+CI2~7OjSt{$ysB!Xe zVg0$#t>&Bez23zreSPJojUo)8mrYi#d+ix}ed(M87#HJA?ES5At_y1h;1=472!Q69@yt-5C4>e18o zTzRLZ(U~(5UV(xOS54cN%iECnIoq_a?9DUj!(tPr>}QZ!aX;$*_C0#Q!hpfk)z4*} HQ$iB}D;(Nl literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-xhdpi/ic_maps_product_default.png b/oeffi/res/drawable-xhdpi/ic_maps_product_default.png new file mode 100644 index 0000000000000000000000000000000000000000..b8bfb39aedf4cccdde892fe7223de316891337d1 GIT binary patch literal 5208 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 literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-xhdpi/nearest_favorite_station_widget_preview.png b/oeffi/res/drawable-xhdpi/nearest_favorite_station_widget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..79e4491f915e0501c2c2aa86687376b24140245b GIT binary patch literal 9728 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 literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-xhdpi/network_ns_icon.png b/oeffi/res/drawable-xhdpi/network_ns_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0e9eeeff7a595ac347708b0b43cda3d30b34c549 GIT binary patch literal 1902 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 literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-xhdpi/network_sbb_icon.png b/oeffi/res/drawable-xhdpi/network_sbb_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6350dd98258968641b91d78a88d40590b6dd1667 GIT binary patch literal 1462 zcmV;n1xfmeP)B#u(!*0ANTI-?k>swC*8-rr?dY# zb7s!WoC_X2c<|uCg9i^DJb3Wn!3k>pWfs2dk!ONdG3NH2`*qr;U25vHnU!s1Nri39 z4t*)*aoMHF?X!f`A4VUZ=WAUkfYxXkX?jMsEO3D79A`JntqTE`vXVleo^5QDrc^Cr zxViEL^~*mB2s(ideu+EyeOBaH0iD7TF|~{ej!7$kj%GU#Q!isdeY8-3Y5RLsaxfQkeWg%7g+7Sp&4uKW$MzGZ7P$n~AH@ zJ4v#4bCj3)m~UhmfEsLK1V9Gp!#LW3E0ogZRu~<@Fb*(*BJBlQBqmdtnPKlA%&Ejf zYf?){%V-FFX=V`6<)PbXGAg#~qmfqvcBXLeg4> z^A-TJWryPu(sugfyrpDf&_o??V~VNAm=vt>q+cRY=mNQi0hI72ja2A*9Da;F&H}}Gq(IN5zQ<7k1!yB*alv*UPz3EqV^&g!lpuzU1r$NcY0F>wG=-P^ zMhyBthP*xB&}jvob_UQPF)d)|hCHQzlUhnbN%yZ3D~xIZfjro}Vxxc#K^LKP-G3I;^Q9PiQxkZMYQCp0xz;vx_z`qf*oc7fde_DxP}oxyc4umA$ZO} zM1A19HUC=9tMv{(cf&vM`s&dW{>Pu>=aQ<|zLc`%qNMfU=< zGVc0}JEzR&54r?UrvTj`BW;RXAA6a>DS06JZtqaJjNU;xfSUA||Dr}#Cq4To^BJgHOU zUjB|6b&V?O(yle5bBq{gYb2eocmP#C9qIQp_9xW~KWeVA2nJ=-$wy1ve-JT6jp# zfWvT$DjH!D zVeb1Q2}0I*Is zlW29sfHpG7^CWDS0bRszrHA%2>o_6f_6c0Y@YK)uSjYnxT|7sN^jRm+z}ZwlJ)>eZ z2DAof$N+VSRSRen{d~m{p2z^U$sThA6qe(9Tv-2VTOPKPU~&uEm#|wzbkp>(|$I?qx< zVXbzul3wbZm7bIHv0^U?_Wj9!ochQyY1T+NC_)y}E{`GZq|`AMYy06ANSN?acuKnB zmcNDI7;<-@gDjyd_R9vLLHvoc4fn~4c%C26g;qOGp-;&*W)QcKtAwV} zEDMZEeZB+=IX{3wuuUL~LXC9-S*6@s;{>Eg4Zo%U#?-tEO>lq8)tkgN0Yyk9a42sV z3U6q><@S_{DgiMb1BKLraF^J&z|>ozvr9MM@HPWtmjLMbjDgCZERmyjvru+V(ZCUX zK@AgdvEnO&+9aT_IuW=`H;TO&&|0?hpmXcfDCP(>(eDTyms*Q4@R&1l1d~DhekId& zc`0!AZa85suHDvz%+;JqiZU%A@DP1`>{zc333i(S8UZl}suaxMg zDdqApX`aF@Vn4mon#WlXb`qz*sCTl|H-F6>Y0W1d!U!D7IKa>ZXk;lxZMRqp69lCnuZRxP*}xG-vn=E7nmmi0`JUV$5FoH4Xpry7@g`}|9T7~^zjE*^AUY=m}(%P z@F@?M{@fvtQc;O9TKwmgn>Er+g(b#huE=!JwjQdGfWWoDAcH8?DAl>^OA<@|21^bR UJfJv&xBvhE07*qoM6N<$f<{R@b^rhX literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-xhdpi/network_sncb_icon.png b/oeffi/res/drawable-xhdpi/network_sncb_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..67edda3db943acc68ad2b81e191c08eea461225f GIT binary patch literal 1427 zcmV;E1#J3>P)dpn+a&e{3BXYV=hE4*Jgf4uMeyFB0X z{GQ))`Tf9$4<9~!`0(MwN1CCxw%`ire(lgtdY^Qy4s&XTKpKUw;Q>ZU0CW(?DFA9I zkuYdCJrr_E9GE3LZQ?&n3DBvF$mb6V2vbIngh8JrKsLp4%Ig~FBCF4f^K>$W9n1q@ zB$u7gz#tndd4W;efWD@i^aWu3O`q;!3RvR9EXjloC<15+tC+)O8D&6qJWT*}5@v9} zjqj0$v}!;Bp3tq@L=AHZurs;%0!OWfU=s0Rjc(M6fo`__EulQEW-kjFZ#^#t(4o3Y zFX%_HQ!0WU;&$V?7xO%iM0%I%c1eLkAkjamt63NGp`1EGG>{K8lTR(B(i!Ph!Y*=c z&VPavx$AKdz#BFR zD6-i@;{Qy@G%C8`2R8QxYo0(iK?&Q9Mt6Hg{8t!eDtU-^)0spJD+dB+6o zM57S`@|Oe{#U9tCAFTB$XJithGN#3Wj8hn|TXdpnk{O7}298k(KpPdZ2|(+3)CEm! zppf%)u$6t%mN?0Y$)fZzYJ2N8a#;}+Mi6p!QT;{(FLPQ+Yc~LQ$ zv#wL9mm*TrfIye);$N2{g;bZ2G;*+a7!J8apj{_P9M@)8O;ZFt!PivN#jmt5!Pt77 z!#7-@g>`-FMaJd8zP?b4_{Akn6iIzb1Y!uCq`(ydS0yi%Z8R3kT++bq)cim!=D0*) zgHr@n0@rEGIDs8~ccRn@%mxaXNH#kuWH9-h%m{%Y`lAfoh!wJ!CA<2De%g`rTx{S4 zm)UgDBLm-s;?gSMRhE#GMgqkgkW?I*F@@pGXJeX#UoDkJ`M?0ghxC={kIM9TiKU|f zfxugi3%--yBG<9_rcc#8u~y0rrH`VBpu1Cq)uy~IDs$z9UyXT!~~sEXmZHm^p&#)t1uaj zeVpNa&;Vm>jC9GYO6@2C4ahY8j8@JOWGU0><~Vz0rS*9sZN@h6H}{z}blMLfH-33^ zL|w+|4fmQ2?-M;Fhg~6%G}I`e#;ECVX)_x$qqPMwzg1>@$dOqMKRR0BX#x@kX$PtkHVJy#1|t9S0Qciaz1?c h@ZrOU4<9}Z@gETEdf*i5`~?62002ovPDHLkV1ivnpxpof literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable-xhdpi/network_tfi_icon.png b/oeffi/res/drawable-xhdpi/network_tfi_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fac162c16479619b7689b01258242253e43d2d82 GIT binary patch literal 1509 zcmVjO^8d{m?rkk77ZSUJ3ds$Owoy+r_&3Jz>*m=(TJm>qn|DNA@ z4kRf_NlH?Zt}Rldt2vxvH@J<8PPb066M$SMv!57koaGc%(o;0h zZWLO~L1H*KKnpoE0uU!(PUufWsbM_POD1lW`@KFZ)r#lvC!@1)^0>J$H^%SB)~ zP;|w-q4We3QkV>+UpAbQkbjMSp?_UvYLULv158M#uqgr8J2gsn_dD^MzTrcbuIYXT zwg;MhkGEWHgMl@HW)Ify>D`S!pcB{;c#$*ok$C7DNGQI-z*0Hx1sgF4f0!Q9IE};u zF4f93iFJbsX*D++Stx^YBD^ohLuEjrgeMurKtPFdM_@n5m5?>iUI9JJ53&ukl+6Jb z%$GmAt(?|UHWLrH`bt^UU9}LD84%9MZb)PbkgYE=$;5`jO-43dPWRJt78_d2RYjHR zL&h0${&Lstpc=A`31f_yW z5msF?+*fM#99b-48dc1qC9q$$QpS2F%1+Y^yvkfMx(JSw*kUjkG)WeyL)=}D!ix!I z@*oSi`-<^xM#DfIfVi%wyhyH)>Mr1$rt9qO$fnD$)LMl8C`Xw?jaYah^i8O&@M zt(AS%U;mXd8cQ?2TCk6 zkZRS56$<%=ZOpO8K!#@8&%{xhX{EtZO_V36ZL95qI9;T(Gvt`S?;XBp20Dt}`3z?$ zQI4~ZPo+xR%%nuMS5E)yW9!Ulpc`Iv>vUe{Z7=V%+$lH|4JbIoj5=|>cosz@khnG( zjzVoAYCs`_Cc_LMPG}ksDDDYWc#z=N+c=uKFij{kasJ2Pu9#xlyau9F-yV=-T>g#X z!-@UofeDPhpERmNe+b?3*2&S z2&Ju}xAGk|%#-aphCvLVjU$xslmQQjiLYZ)UVUJXIG{rS#Ue|Da~73;2%CU?Uf3B3DOnpP`r&0a}TZ2HZ$K$1G_;ppuP1lw4o|1qQ&!nL#a+ zB~5xUlXP+X!gps7H+6*2hr|g~^E^y8V5*rkH0F#0@uDF^`H_Zt`!CInOYD8MsTuuNj6 zOvaZ91t{Hq<1uzi1J=l$2@L~IbX*;D{i z41C2(ewM@LiUZpWWYfSivO=?2&PmqG?_67?=_DyhNlH?Z{y+3LZ)AasprVb000000 LNkvXXu0mjfqMx%b literal 0 HcmV?d00001 diff --git a/oeffi/res/drawable/appwidget_dark_bg_clickable.xml b/oeffi/res/drawable/appwidget_dark_bg_clickable.xml new file mode 100644 index 0000000..2a366de --- /dev/null +++ b/oeffi/res/drawable/appwidget_dark_bg_clickable.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/btn_zoom_down.xml b/oeffi/res/drawable/btn_zoom_down.xml new file mode 100644 index 0000000..3b554d4 --- /dev/null +++ b/oeffi/res/drawable/btn_zoom_down.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/btn_zoom_up.xml b/oeffi/res/drawable/btn_zoom_up.xml new file mode 100644 index 0000000..4814d6e --- /dev/null +++ b/oeffi/res/drawable/btn_zoom_up.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/disclaimer_background.xml b/oeffi/res/drawable/disclaimer_background.xml new file mode 100644 index 0000000..c525b0a --- /dev/null +++ b/oeffi/res/drawable/disclaimer_background.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/disclaimer_background_dark.xml b/oeffi/res/drawable/disclaimer_background_dark.xml new file mode 100644 index 0000000..e2e2779 --- /dev/null +++ b/oeffi/res/drawable/disclaimer_background_dark.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/form_background.xml b/oeffi/res/drawable/form_background.xml new file mode 100644 index 0000000..591c316 --- /dev/null +++ b/oeffi/res/drawable/form_background.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_expand_black_24dp.xml b/oeffi/res/drawable/ic_expand_black_24dp.xml new file mode 100644 index 0000000..95f4874 --- /dev/null +++ b/oeffi/res/drawable/ic_expand_black_24dp.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_expand_white_24dp.xml b/oeffi/res/drawable/ic_expand_white_24dp.xml new file mode 100644 index 0000000..7b4f770 --- /dev/null +++ b/oeffi/res/drawable/ic_expand_white_24dp.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_filter_list_24dp.xml b/oeffi/res/drawable/ic_filter_list_24dp.xml new file mode 100644 index 0000000..6ed6a8b --- /dev/null +++ b/oeffi/res/drawable/ic_filter_list_24dp.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_location_white_24dp.xml b/oeffi/res/drawable/ic_location_white_24dp.xml new file mode 100644 index 0000000..3969096 --- /dev/null +++ b/oeffi/res/drawable/ic_location_white_24dp.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_menu_product_bus.xml b/oeffi/res/drawable/ic_menu_product_bus.xml new file mode 100644 index 0000000..e003ca2 --- /dev/null +++ b/oeffi/res/drawable/ic_menu_product_bus.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_menu_product_cablecar.xml b/oeffi/res/drawable/ic_menu_product_cablecar.xml new file mode 100644 index 0000000..4dd9031 --- /dev/null +++ b/oeffi/res/drawable/ic_menu_product_cablecar.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_menu_product_call.xml b/oeffi/res/drawable/ic_menu_product_call.xml new file mode 100644 index 0000000..de16a21 --- /dev/null +++ b/oeffi/res/drawable/ic_menu_product_call.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_menu_product_ferry.xml b/oeffi/res/drawable/ic_menu_product_ferry.xml new file mode 100644 index 0000000..b4bd668 --- /dev/null +++ b/oeffi/res/drawable/ic_menu_product_ferry.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_menu_product_highspeed.xml b/oeffi/res/drawable/ic_menu_product_highspeed.xml new file mode 100644 index 0000000..7c08749 --- /dev/null +++ b/oeffi/res/drawable/ic_menu_product_highspeed.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_menu_product_suburban.xml b/oeffi/res/drawable/ic_menu_product_suburban.xml new file mode 100644 index 0000000..fb2c61d --- /dev/null +++ b/oeffi/res/drawable/ic_menu_product_suburban.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_menu_product_subway.xml b/oeffi/res/drawable/ic_menu_product_subway.xml new file mode 100644 index 0000000..d1b0b76 --- /dev/null +++ b/oeffi/res/drawable/ic_menu_product_subway.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_menu_product_train.xml b/oeffi/res/drawable/ic_menu_product_train.xml new file mode 100644 index 0000000..9d044a5 --- /dev/null +++ b/oeffi/res/drawable/ic_menu_product_train.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_menu_product_tram.xml b/oeffi/res/drawable/ic_menu_product_tram.xml new file mode 100644 index 0000000..1184922 --- /dev/null +++ b/oeffi/res/drawable/ic_menu_product_tram.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_oeffi_directions.xml b/oeffi/res/drawable/ic_oeffi_directions.xml new file mode 100644 index 0000000..b764f2c --- /dev/null +++ b/oeffi/res/drawable/ic_oeffi_directions.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_oeffi_plans.xml b/oeffi/res/drawable/ic_oeffi_plans.xml new file mode 100644 index 0000000..1e1259a --- /dev/null +++ b/oeffi/res/drawable/ic_oeffi_plans.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_oeffi_stations.xml b/oeffi/res/drawable/ic_oeffi_stations.xml new file mode 100644 index 0000000..675c88c --- /dev/null +++ b/oeffi/res/drawable/ic_oeffi_stations.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/ic_star_24dp.xml b/oeffi/res/drawable/ic_star_24dp.xml new file mode 100644 index 0000000..2debf02 --- /dev/null +++ b/oeffi/res/drawable/ic_star_24dp.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/popup_dir_pointer_button.xml b/oeffi/res/drawable/popup_dir_pointer_button.xml new file mode 100644 index 0000000..9747e24 --- /dev/null +++ b/oeffi/res/drawable/popup_dir_pointer_button.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/space_24dp.xml b/oeffi/res/drawable/space_24dp.xml new file mode 100644 index 0000000..9f25503 --- /dev/null +++ b/oeffi/res/drawable/space_24dp.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/space_48dp.xml b/oeffi/res/drawable/space_48dp.xml new file mode 100644 index 0000000..3d725ba --- /dev/null +++ b/oeffi/res/drawable/space_48dp.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/view_shadow_bottom.xml b/oeffi/res/drawable/view_shadow_bottom.xml new file mode 100644 index 0000000..264b7bc --- /dev/null +++ b/oeffi/res/drawable/view_shadow_bottom.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/view_shadow_right.xml b/oeffi/res/drawable/view_shadow_right.xml new file mode 100644 index 0000000..6669cc8 --- /dev/null +++ b/oeffi/res/drawable/view_shadow_right.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/drawable/view_shadow_top.xml b/oeffi/res/drawable/view_shadow_top.xml new file mode 100644 index 0000000..ebadc55 --- /dev/null +++ b/oeffi/res/drawable/view_shadow_top.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/layout/action_bar.xml b/oeffi/res/layout/action_bar.xml new file mode 100644 index 0000000..bf484f4 --- /dev/null +++ b/oeffi/res/layout/action_bar.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/layout/changelog_dialog.xml b/oeffi/res/layout/changelog_dialog.xml new file mode 100644 index 0000000..a163d64 --- /dev/null +++ b/oeffi/res/layout/changelog_dialog.xml @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/oeffi/res/layout/create_launcher_shortcut_dialog.xml b/oeffi/res/layout/create_launcher_shortcut_dialog.xml new file mode 100644 index 0000000..29a6819 --- /dev/null +++ b/oeffi/res/layout/create_launcher_shortcut_dialog.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/oeffi/res/layout/directions_content.xml b/oeffi/res/layout/directions_content.xml new file mode 100644 index 0000000..137b81c --- /dev/null +++ b/oeffi/res/layout/directions_content.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +