├── androidstudio ├── oeffi-studio │ ├── .gitignore │ ├── res │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_oeffi_ng_plans_color_48dp.xml │ │ │ ├── ic_oeffi_ng_stations_color_48dp.xml │ │ │ └── ic_oeffi_ng_directions_color_48dp.xml │ │ └── drawable │ │ │ └── ic_launcher_background.xml │ ├── proguard-rules.pro │ └── graphics │ │ ├── ic_oeffi_stations_color_48dp-mdpi.svg │ │ └── ic_oeffi_directions_color_48dp-mdpi.svg ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── .gitignore ├── build.gradle ├── settings.gradle ├── assetlinks.json └── gradle.properties ├── oeffi-ng.jks ├── gradle.properties ├── .dockerignore ├── oeffi ├── .gitignore ├── res │ ├── raw │ │ ├── nav_alarm.mp3 │ │ ├── nav_remind_up.mp3 │ │ ├── nav_refresh_beep.mp3 │ │ ├── nav_remind_down.mp3 │ │ ├── nav_lowvolume_alarm.mp3 │ │ ├── nav_refresh_error.mp3 │ │ ├── nav_remind_downup.mp3 │ │ ├── nav_lowvolume_remind_up.mp3 │ │ ├── nav_lowvolume_remind_down.mp3 │ │ └── nav_lowvolume_remind_downup.mp3 │ ├── drawable-hdpi │ │ ├── location_on.png │ │ ├── da_marker_red.png │ │ ├── location_off.png │ │ ├── btn_zoom_up_normal.png │ │ ├── btn_zoom_up_pressed.png │ │ ├── btn_zoom_down_normal.png │ │ ├── btn_zoom_down_pressed.png │ │ ├── btn_zoom_up_disabled.png │ │ ├── btn_zoom_down_disabled.png │ │ ├── ic_station_grey600_24dp.png │ │ ├── ic_maps_indicator_endpoint_list.png │ │ ├── ic_maps_indicator_startpoint_list.png │ │ ├── popup_dir_pointer_button_normal.9.png │ │ └── popup_dir_pointer_button_selected.9.png │ ├── drawable-mdpi │ │ ├── capacity_1.png │ │ ├── capacity_2.png │ │ └── capacity_3.png │ ├── drawable-nodpi │ │ └── qr_update.png │ ├── drawable-xhdpi │ │ ├── network_ns_icon.png │ │ ├── network_rt_icon.png │ │ ├── network_se_icon.png │ │ ├── network_dsb_icon.png │ │ ├── network_sbb_icon.png │ │ ├── network_bayern_icon.png │ │ ├── ic_maps_product_default.png │ │ ├── ic_station_grey600_24dp.png │ │ └── nearest_favorite_station_widget_preview.png │ ├── values │ │ ├── select_map.xml │ │ ├── flags.xml │ │ ├── fare_types.xml │ │ ├── strings_aquire_location.xml │ │ ├── strings_error_reporter.xml │ │ └── strings_untranslated.xml │ ├── values-de │ │ ├── select_map.xml │ │ ├── fare_types.xml │ │ ├── strings_aquire_location.xml │ │ └── strings_error_reporter.xml │ ├── values-night │ │ └── dimens.xml │ ├── xml │ │ ├── device_admin_policies.xml │ │ ├── locale_config.xml │ │ ├── stations_searchable.xml │ │ ├── file_provider.xml │ │ ├── plan_searchable.xml │ │ ├── plans_searchable.xml │ │ ├── preference_extras.xml │ │ ├── nearest_favorite_station_widget.xml │ │ ├── accessibility_service_config.xml │ │ ├── preference_shortcuts.xml │ │ ├── network_security_config.xml │ │ └── preference_headers.xml │ ├── values-notnight-v29 │ │ ├── dimens.xml │ │ ├── styes.xml │ │ └── colors.xml │ ├── values-h400dp │ │ └── dimens.xml │ ├── values-w486dp-land │ │ └── dimens.xml │ ├── drawable │ │ ├── list_divider.xml │ │ ├── space_24dp.xml │ │ ├── space_48dp.xml │ │ ├── ic_oeffi_plans.xml │ │ ├── ic_oeffi_stations.xml │ │ ├── ic_cancelled_24dp.xml │ │ ├── ic_oeffi_directions.xml │ │ ├── popup_dir_pointer_button.xml │ │ ├── ic_menu_product_bus.xml │ │ ├── ic_sound_white_24dp.xml │ │ ├── ic_expand_black_24dp.xml │ │ ├── ic_expand_white_24dp.xml │ │ ├── ic_menu_product_call.xml │ │ ├── ic_menu_product_tram.xml │ │ ├── ic_filter_list_24dp.xml │ │ ├── ic_menu_product_ferry.xml │ │ ├── ic_menu_product_subway.xml │ │ ├── ic_menu_product_train.xml │ │ ├── ic_menu_product_cablecar.xml │ │ ├── ic_menu_product_suburban.xml │ │ ├── ic_location_white_24dp.xml │ │ ├── ic_menu_product_highspeed.xml │ │ ├── ic_hourglass_black_24dp.xml │ │ ├── disclaimer_background_dark.xml │ │ ├── btn_zoom_up.xml │ │ ├── ic_star_24dp.xml │ │ ├── btn_zoom_down.xml │ │ ├── ic_showlog_grey600_24dp.xml │ │ ├── ic_add_white_24dp.xml │ │ ├── list_entry_background.xml │ │ ├── ic_open_ext_black_24dp.xml │ │ ├── location_selector_item_first_background.xml │ │ ├── location_selector_item_last_background.xml │ │ ├── location_selector_item_unselected_background.xml │ │ ├── location_selector_item_intermediate_background.xml │ │ ├── ic_warning_black_24px.xml │ │ ├── ic_stopwatch_black_24.xml │ │ ├── ic_microphone_black_24dp.xml │ │ ├── ic_search_more_grey_24dp.xml │ │ ├── ic_search_more_white_24dp.xml │ │ ├── ic_sound_on_white_24dp.xml │ │ ├── ic_sitting_black_24.xml │ │ ├── ic_sound_off_white_24dp.xml │ │ ├── ic_cancelled_hide_24dp.xml │ │ └── ic_cancelled_show_24dp.xml │ ├── layout │ │ ├── map_trip_line.xml │ │ ├── stations_location_provider_row.xml │ │ ├── station_widget_entry_loading.xml │ │ ├── stations_station_entry_message.xml │ │ ├── zoom_controls.xml │ │ ├── hint_dialog.xml │ │ ├── network_picker_separator.xml │ │ ├── directions_location_list_entry.xml │ │ ├── changelog_dialog.xml │ │ ├── directions_trip_details_public_entry_collapsed.xml │ │ ├── logviewer_content.xml │ │ ├── directions_trip_details_fares_row.xml │ │ ├── navigation_event_log_entry.xml │ │ ├── stations_station_details_header_line.xml │ │ ├── location_selector_item.xml │ │ ├── map_frame.xml │ │ ├── favorites_content.xml │ │ └── create_launcher_shortcut_dialog.xml │ ├── menu │ │ ├── stations_options.xml │ │ ├── network_picker_context.xml │ │ ├── directions_options.xml │ │ ├── station_map_context.xml │ │ ├── plans_picker_context.xml │ │ ├── global_extras.xml │ │ ├── directions_query_history_location_context.xml │ │ ├── directions_query_history_context.xml │ │ └── directions_location_context.xml │ ├── anim │ │ ├── zoom_controls.xml │ │ ├── rotate.xml │ │ ├── exit_to_left.xml │ │ ├── exit_to_right.xml │ │ ├── enter_from_left.xml │ │ ├── enter_from_right.xml │ │ ├── pop_in.xml │ │ └── pop_out.xml │ ├── drawable-anydpi │ │ ├── ic_flag_grey600_24dp.xml │ │ ├── ic_later_white_24dp.xml │ │ ├── ic_earlier_white_24dp.xml │ │ ├── ic_expand_less_black_24dp.xml │ │ ├── ic_expand_less_white_24dp.xml │ │ ├── ic_expand_more_black_24dp.xml │ │ ├── ic_expand_more_white_24dp.xml │ │ ├── ic_warning_amber_24dp.xml │ │ ├── ic_menu_white_24dp.xml │ │ ├── ic_filter_list_white_24dp.xml │ │ ├── ic_filter_list_yellow_24dp.xml │ │ ├── ic_arrow_back_white_24dp.xml │ │ ├── ic_star_white_24dp.xml │ │ ├── ic_star_grey600_24dp.xml │ │ ├── ic_clear_black_24dp.xml │ │ ├── ic_clear_grey600_24dp.xml │ │ ├── ic_clear_white_24dp.xml │ │ ├── ic_info_grey600_24dp.xml │ │ ├── ic_navigation_white_24dp.xml │ │ ├── ic_offline_pin_grey600_24dp.xml │ │ ├── ic_today_white_24dp.xml │ │ ├── ic_place_grey600_24dp.xml │ │ ├── ic_info_outline_grey600_24dp.xml │ │ ├── ic_cash_multiple_grey600_24dp.xml │ │ ├── ic_more_vert_grey600_24dp.xml │ │ ├── ic_more_vert_white_24dp.xml │ │ ├── ic_shuffle_white_24dp.xml │ │ ├── ic_beenhere_grey600_24dp.xml │ │ ├── ic_star_border_black_24dp.xml │ │ ├── ic_star_border_white_24dp.xml │ │ ├── ic_refresh_white_24dp.xml │ │ ├── ic_map_black_24dp.xml │ │ ├── ic_map_white_24dp.xml │ │ ├── ic_block_black_24dp.xml │ │ ├── ic_search_white_24dp.xml │ │ ├── ic_sleep_black_24dp.xml │ │ ├── ic_search_grey600_24dp.xml │ │ ├── ic_location_searching_white_24dp.xml │ │ ├── ic_directions_walk_grey600_24dp.xml │ │ ├── ic_location_searching_grey600_24dp.xml │ │ ├── ic_contacts_grey600_24dp.xml │ │ ├── ic_bell_grey600_24dp.xml │ │ ├── ic_bell_on_black_24dp.xml │ │ ├── ic_gps_fixed_grey600_24dp.xml │ │ ├── ic_settings_input_antenna_grey600_18dp.xml │ │ ├── ic_favorite_border_grey600_24dp.xml │ │ ├── ic_bell_off_black_24dp.xml │ │ ├── ic_ladybug_grey600_24dp.xml │ │ ├── ic_local_taxi_grey600_24dp.xml │ │ ├── ic_share_grey600_24dp.xml │ │ ├── ic_share_white_24dp.xml │ │ ├── ic_oeffi_stations_grey600_36dp.xml │ │ ├── ic_location_disabled_white_24dp.xml │ │ ├── ic_altroute_grey600_24dp.xml │ │ ├── ic_accessible_grey600_18dp.xml │ │ ├── ic_directions_bike_grey600_18dp.xml │ │ ├── ic_directions_bike_grey600_24dp.xml │ │ ├── ic_oeffi_directions_grey600_36dp.xml │ │ ├── ic_clock_black_24dp.xml │ │ ├── ic_portable_wifi_off_grey600_24dp.xml │ │ ├── product_call_color_22dp.xml │ │ ├── product_call_color_32dp.xml │ │ ├── product_call_darkgrey_32dp.xml │ │ ├── product_suburban_color_22dp.xml │ │ ├── product_suburban_color_32dp.xml │ │ ├── product_suburban_darkgrey_32dp.xml │ │ ├── ic_settings_grey600_24dp.xml │ │ ├── product_subway_color_22dp.xml │ │ ├── product_subway_color_32dp.xml │ │ ├── product_subway_darkgrey_32dp.xml │ │ ├── network_kvv_logo.xml │ │ ├── product_train_color_22dp.xml │ │ ├── product_train_color_32dp.xml │ │ ├── product_train_darkgrey_32dp.xml │ │ ├── product_cablecar_color_22dp.xml │ │ ├── product_cablecar_color_32dp.xml │ │ ├── product_cablecar_darkgrey_32dp.xml │ │ ├── product_ferry_color_22dp.xml │ │ └── product_ferry_color_32dp.xml │ ├── values-small │ │ └── dimens.xml │ ├── animator │ │ └── heartbeat.xml │ ├── values-large │ │ └── dimens.xml │ └── values-xlarge │ │ └── dimens.xml ├── src │ └── de │ │ └── schildbach │ │ └── oeffi │ │ ├── util │ │ ├── ViewUtils.java │ │ ├── UiThreadExecutor.java │ │ ├── ResourceUri.java │ │ ├── bzip2 │ │ │ └── BZip2Constants.java │ │ ├── UpGestureDetector.java │ │ ├── DialogBuilder.java │ │ ├── StrictSwipeRefreshLayout.java │ │ └── ClockUtils.java │ │ ├── preference │ │ ├── EditTextPreferenceWithSummary.java │ │ ├── DirectionsFragment.java │ │ └── NavigationFragment.java │ │ ├── AreaAware.java │ │ ├── plans │ │ └── list │ │ │ ├── PlanClickListener.java │ │ │ └── PlanContextMenuItemListener.java │ │ ├── network │ │ └── list │ │ │ ├── NetworkClickListener.java │ │ │ ├── NetworkContextMenuItemListener.java │ │ │ └── SeparatorViewHolder.java │ │ ├── FromViaToAware.java │ │ ├── LocationAware.java │ │ ├── stations │ │ ├── list │ │ │ ├── StationClickListener.java │ │ │ ├── JourneyClickListener.java │ │ │ └── StationContextMenuItemListener.java │ │ └── NearestFavoriteStationWidgetProvider.java │ │ ├── TripAware.java │ │ ├── directions │ │ └── list │ │ │ ├── QueryHistoryClickListener.java │ │ │ └── QueryHistoryContextMenuItemListener.java │ │ └── StationsAware.java ├── assets │ └── messages.txt └── graphics │ ├── ic_oeffi_stations_color_48dp-mdpi.svg │ └── ic_oeffi_directions_color_48dp-mdpi.svg ├── .gitignore ├── .gitmodules ├── settings.gradle └── .gitlab-ci.yml /androidstudio/oeffi-studio/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /res/mipmap-*/*.png 3 | -------------------------------------------------------------------------------- /oeffi-ng.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi-ng.jks -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2048M 2 | android.enableD8.desugaring=true 3 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | **/.* 2 | **/build.Containerfile 3 | **/local.properties 4 | **/build 5 | **/*.iml 6 | -------------------------------------------------------------------------------- /oeffi/.gitignore: -------------------------------------------------------------------------------- 1 | /.classpath 2 | /.project 3 | /.settings/ 4 | /bin/ 5 | /gen/ 6 | /res/mipmap-*/*.png 7 | -------------------------------------------------------------------------------- /oeffi/res/raw/nav_alarm.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/raw/nav_alarm.mp3 -------------------------------------------------------------------------------- /oeffi/res/raw/nav_remind_up.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/raw/nav_remind_up.mp3 -------------------------------------------------------------------------------- /oeffi/res/raw/nav_refresh_beep.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/raw/nav_refresh_beep.mp3 -------------------------------------------------------------------------------- /oeffi/res/raw/nav_remind_down.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/raw/nav_remind_down.mp3 -------------------------------------------------------------------------------- /oeffi/res/raw/nav_lowvolume_alarm.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/raw/nav_lowvolume_alarm.mp3 -------------------------------------------------------------------------------- /oeffi/res/raw/nav_refresh_error.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/raw/nav_refresh_error.mp3 -------------------------------------------------------------------------------- /oeffi/res/raw/nav_remind_downup.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/raw/nav_remind_downup.mp3 -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/location_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/location_on.png -------------------------------------------------------------------------------- /oeffi/res/drawable-mdpi/capacity_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-mdpi/capacity_1.png -------------------------------------------------------------------------------- /oeffi/res/drawable-mdpi/capacity_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-mdpi/capacity_2.png -------------------------------------------------------------------------------- /oeffi/res/drawable-mdpi/capacity_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-mdpi/capacity_3.png -------------------------------------------------------------------------------- /oeffi/res/drawable-nodpi/qr_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-nodpi/qr_update.png -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/da_marker_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/da_marker_red.png -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/location_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/location_off.png -------------------------------------------------------------------------------- /oeffi/res/raw/nav_lowvolume_remind_up.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/raw/nav_lowvolume_remind_up.mp3 -------------------------------------------------------------------------------- /oeffi/res/drawable-xhdpi/network_ns_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-xhdpi/network_ns_icon.png -------------------------------------------------------------------------------- /oeffi/res/drawable-xhdpi/network_rt_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-xhdpi/network_rt_icon.png -------------------------------------------------------------------------------- /oeffi/res/drawable-xhdpi/network_se_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-xhdpi/network_se_icon.png -------------------------------------------------------------------------------- /oeffi/res/raw/nav_lowvolume_remind_down.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/raw/nav_lowvolume_remind_down.mp3 -------------------------------------------------------------------------------- /androidstudio/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/androidstudio/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/btn_zoom_up_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/btn_zoom_up_normal.png -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/btn_zoom_up_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/btn_zoom_up_pressed.png -------------------------------------------------------------------------------- /oeffi/res/drawable-xhdpi/network_dsb_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-xhdpi/network_dsb_icon.png -------------------------------------------------------------------------------- /oeffi/res/drawable-xhdpi/network_sbb_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-xhdpi/network_sbb_icon.png -------------------------------------------------------------------------------- /oeffi/res/raw/nav_lowvolume_remind_downup.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/raw/nav_lowvolume_remind_downup.mp3 -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/btn_zoom_down_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/btn_zoom_down_normal.png -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/btn_zoom_down_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/btn_zoom_down_pressed.png -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/btn_zoom_up_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/btn_zoom_up_disabled.png -------------------------------------------------------------------------------- /oeffi/res/drawable-xhdpi/network_bayern_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-xhdpi/network_bayern_icon.png -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/btn_zoom_down_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/btn_zoom_down_disabled.png -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/ic_station_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/ic_station_grey600_24dp.png -------------------------------------------------------------------------------- /oeffi/res/drawable-xhdpi/ic_maps_product_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-xhdpi/ic_maps_product_default.png -------------------------------------------------------------------------------- /oeffi/res/drawable-xhdpi/ic_station_grey600_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-xhdpi/ic_station_grey600_24dp.png -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/ic_maps_indicator_endpoint_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/ic_maps_indicator_endpoint_list.png -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/ic_maps_indicator_startpoint_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/ic_maps_indicator_startpoint_list.png -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/popup_dir_pointer_button_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/popup_dir_pointer_button_normal.9.png -------------------------------------------------------------------------------- /oeffi/res/values/select_map.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | External map 5 | 6 | 7 | -------------------------------------------------------------------------------- /oeffi/res/drawable-hdpi/popup_dir_pointer_button_selected.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-hdpi/popup_dir_pointer_button_selected.9.png -------------------------------------------------------------------------------- /oeffi/res/values-de/select_map.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | externe Karte 5 | 6 | 7 | -------------------------------------------------------------------------------- /oeffi/res/values-night/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1dp 5 | 6 | 7 | -------------------------------------------------------------------------------- /androidstudio/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | .cxx 10 | local.properties 11 | -------------------------------------------------------------------------------- /oeffi/res/drawable-xhdpi/nearest_favorite_station_widget_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pixtxa/oeffi-ng/nextgen/oeffi/res/drawable-xhdpi/nearest_favorite_station_widget_preview.png -------------------------------------------------------------------------------- /oeffi/res/xml/device_admin_policies.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /oeffi/res/values-notnight-v29/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 2dp 5 | 6 | 7 | -------------------------------------------------------------------------------- /oeffi/res/values/flags.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | true 5 | 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Gradle 2 | /gradle/ 3 | /.gradle/ 4 | /gradlew 5 | /gradlew.bat 6 | build/ 7 | 8 | # IntelliJ IDEA 9 | /.idea/ 10 | *.iml 11 | 12 | # Android SDK 13 | local.properties 14 | passwords.properties 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/xml/locale_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /oeffi/res/values-h400dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | true 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/xml/stations_searchable.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | -------------------------------------------------------------------------------- /oeffi/res/values-w486dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @dimen/layout_list_width 5 | 6 | true 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/xml/file_provider.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /oeffi/res/drawable/list_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "public-transport-enabler"] 2 | path = public-transport-enabler 3 | url = https://github.com/santawho/public-transport-enabler.git 4 | branch = nextgen 5 | [submodule "oeffi-ng.wiki"] 6 | path = androidstudio/oeffi-ng.wiki 7 | url = https://github.com/santawho/oeffi-ng.wiki.git 8 | -------------------------------------------------------------------------------- /androidstudio/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue May 28 11:23:46 CEST 2024 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /oeffi/res/xml/plan_searchable.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /oeffi/res/xml/plans_searchable.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /oeffi/res/layout/map_trip_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /oeffi/res/menu/stations_options.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /oeffi/res/drawable/space_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable/space_48dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/menu/network_picker_context.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /oeffi/res/menu/directions_options.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /oeffi/res/menu/station_map_context.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_oeffi_plans.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_oeffi_stations.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_cancelled_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_oeffi_directions.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/popup_dir_pointer_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_menu_product_bus.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_sound_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_expand_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_expand_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_menu_product_call.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_menu_product_tram.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_filter_list_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_menu_product_ferry.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_menu_product_subway.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_menu_product_train.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_menu_product_cablecar.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_menu_product_suburban.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_location_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_menu_product_highspeed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /oeffi/res/xml/preference_extras.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /oeffi/res/anim/zoom_controls.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /oeffi/res/layout/stations_location_provider_row.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_hourglass_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /androidstudio/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | dependencies { 5 | classpath(libs.json) 6 | classpath(libs.androidsvgdrawable.gradle.plugin) { 7 | exclude group: 'xerces' 8 | } 9 | } 10 | } 11 | 12 | plugins { 13 | alias(libs.plugins.android.application) apply false 14 | } 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable/disclaimer_background_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/drawable/btn_zoom_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_star_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /androidstudio/oeffi-studio/res/mipmap-anydpi-v26/ic_oeffi_ng_plans_color_48dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /oeffi/res/values/fare_types.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Adult 6 | Child 7 | Youth 8 | Student 9 | Military 10 | Senior 11 | Disabled 12 | Bike 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_flag_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable/btn_zoom_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /androidstudio/oeffi-studio/res/mipmap-anydpi-v26/ic_oeffi_ng_stations_color_48dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_later_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/util/ViewUtils.java: -------------------------------------------------------------------------------- 1 | package de.schildbach.oeffi.util; 2 | 3 | import android.view.View; 4 | 5 | public class ViewUtils { 6 | public static void setVisibility(final View view, final boolean visible) { 7 | view.setVisibility(visible ? View.VISIBLE : View.GONE); 8 | } 9 | 10 | public static boolean isVisible(final View view) { 11 | return view.getVisibility() == View.VISIBLE; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /androidstudio/oeffi-studio/res/mipmap-anydpi-v26/ic_oeffi_ng_directions_color_48dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_earlier_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_expand_less_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_expand_less_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_expand_more_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_expand_more_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_warning_amber_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/values-de/fare_types.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Erwachsener 6 | Kind 7 | Jugendlicher 8 | Student 9 | Militär 10 | Senior 11 | Schwerbehindert 12 | Fahrrad 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/anim/rotate.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_menu_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/layout/station_widget_entry_loading.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_filter_list_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_filter_list_yellow_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_showlog_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/values-small/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 44dp 5 | 44dp 6 | 2dp 7 | 4dp 8 | 3dp 9 | 10 | 4 11 | 12 | 13 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_arrow_back_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/values/strings_aquire_location.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Acquiring \'%s\' location… 5 | Location acquiring not allowed 6 | All location providers are disabled 7 | Can\'t acquire location 8 | 9 | 10 | -------------------------------------------------------------------------------- /oeffi/res/xml/nearest_favorite_station_widget.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /oeffi/res/values-de/strings_aquire_location.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ermittle \'%s\'-Standort… 5 | Standortermittlung nicht erlaubt 6 | Alle Standortdienste sind abgeschaltet 7 | Kann Standort nicht ermitteln 8 | 9 | 10 | -------------------------------------------------------------------------------- /oeffi/res/anim/exit_to_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/anim/exit_to_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_star_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/layout/stations_station_entry_message.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /oeffi/res/anim/enter_from_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/anim/enter_from_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_star_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /androidstudio/oeffi-studio/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_clear_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_clear_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_clear_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_info_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_add_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/anim/pop_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/anim/pop_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_navigation_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_offline_pin_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable/list_entry_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_today_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_open_ext_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_place_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_info_outline_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable/location_selector_item_first_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable/location_selector_item_last_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable/location_selector_item_unselected_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_cash_multiple_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_more_vert_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_more_vert_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_shuffle_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/assets/messages.txt: -------------------------------------------------------------------------------- 1 | # hints 2 | hint-navigation-drawer | prefs-show-info:true limit-info:2d | once | info 3 | hint-network-picker | prefs-show-info:true limit-info:2d | once | info 4 | hint-landscape-orientation | prefs-show-info:true limit-info:2d | once | info 5 | hint-qr-and-nfc | prefs-show-info:true limit-info:2d | once | info 6 | hint-launcher-shortcuts | prefs-show-info:true limit-info:2d | once | info 7 | hint-location-problems | prefs-show-info:true limit-info:2d | once | info 8 | hint-drag-stations | prefs-show-info:true limit-info:2d min-version:546 task:stations | once | info 9 | -------------------------------------------------------------------------------- /oeffi/res/drawable/location_selector_item_intermediate_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_warning_black_24px.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /oeffi/res/xml/accessibility_service_config.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_beenhere_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_star_border_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_star_border_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/layout/zoom_controls.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_refresh_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_map_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_map_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/menu/plans_picker_context.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_stopwatch_black_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /oeffi/res/xml/preference_shortcuts.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 12 | 13 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_block_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_search_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_sleep_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/menu/global_extras.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_search_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_location_searching_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_directions_walk_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_location_searching_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /androidstudio/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | google { 4 | content { 5 | includeGroupByRegex("com\\.android.*") 6 | includeGroupByRegex("com\\.google.*") 7 | includeGroupByRegex("androidx.*") 8 | } 9 | } 10 | mavenCentral() 11 | gradlePluginPortal() 12 | } 13 | } 14 | dependencyResolutionManagement { 15 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 16 | repositories { 17 | google() 18 | mavenCentral() 19 | } 20 | } 21 | 22 | rootProject.name = "androidstudio" 23 | include ':oeffi-studio' 24 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_contacts_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/layout/hint_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /oeffi/res/layout/network_picker_separator.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_bell_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_bell_on_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_gps_fixed_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | import org.gradle.util.GradleVersion 2 | import org.gradle.api.GradleScriptException 3 | 4 | // required Gradle version 5 | def minGradleVersion = GradleVersion.version("4.4") // including 6 | def maxGradleVersion = GradleVersion.version("7.0") // excluding 7 | 8 | if (GradleVersion.current() < minGradleVersion || GradleVersion.current() >= maxGradleVersion) 9 | throw new GradleScriptException("build requires Gradle between ${minGradleVersion.version} (including) and ${maxGradleVersion.version} (excluding)", null) 10 | 11 | gradle.startParameter.excludedTaskNames << "lint" 12 | gradle.startParameter.excludedTaskNames << ":oeffi:lintVitalRelease" 13 | 14 | include 'oeffi' 15 | include 'public-transport-enabler' 16 | -------------------------------------------------------------------------------- /oeffi/res/layout/directions_location_list_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_microphone_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_search_more_grey_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_search_more_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_settings_input_antenna_grey600_18dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_favorite_border_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/preference/EditTextPreferenceWithSummary.java: -------------------------------------------------------------------------------- 1 | package de.schildbach.oeffi.preference; 2 | 3 | import android.content.Context; 4 | import android.preference.EditTextPreference; 5 | import android.util.AttributeSet; 6 | 7 | /* 8 | * NOT USED ANY MORE, REPLACED BY PreferenceFragment.setupDynamicSummary() 9 | */ 10 | public class EditTextPreferenceWithSummary extends EditTextPreference { 11 | public EditTextPreferenceWithSummary(final Context context, final AttributeSet attrs) { 12 | super(context, attrs); 13 | } 14 | 15 | @Override 16 | public CharSequence getSummary() { 17 | String text = super.getText(); 18 | return String.format(super.getSummary().toString(), text == null ? "" : text); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_bell_off_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_sound_on_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_sitting_black_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_ladybug_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_local_taxi_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /androidstudio/assetlinks.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "relation": [ 4 | "delegate_permission/common.handle_all_urls" 5 | ], 6 | "target": { 7 | "namespace": "android_app", 8 | "package_name": "de.santawho.oeffi_ng", 9 | "sha256_cert_fingerprints": [ 10 | "6D:2C:7C:F1:9C:1F:0E:BD:E7:95:3A:F9:33:66:6E:03:B3:11:DF:8B:F6:EB:46:BD:E0:68:30:FC:6A:3B:8F:5E" 11 | ] 12 | } 13 | }, 14 | { 15 | "relation": [ 16 | "delegate_permission/common.handle_all_urls" 17 | ], 18 | "target": { 19 | "namespace": "android_app", 20 | "package_name": "de.santawho.oeffi_ng.debug", 21 | "sha256_cert_fingerprints": [ 22 | "6D:2C:7C:F1:9C:1F:0E:BD:E7:95:3A:F9:33:66:6E:03:B3:11:DF:8B:F6:EB:46:BD:E0:68:30:FC:6A:3B:8F:5E" 23 | ] 24 | } 25 | } 26 | ] 27 | -------------------------------------------------------------------------------- /oeffi/res/layout/changelog_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_share_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_share_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_oeffi_stations_grey600_36dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 15 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /androidstudio/oeffi-studio/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /oeffi/res/values-notnight-v29/styes.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_location_disabled_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/menu/directions_query_history_location_context.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 11 | 12 | 13 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /oeffi/res/values/strings_error_reporter.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Send error report using… 5 | Crash report 6 | Bug report 7 | Can you answer the following questions? Incomplete reports will not receive a reply due to the sheer number of reports received.\n\n 8 | • Which application component does your issue apply to? (first line of window title)\n\n\n 9 | • Which transport network have you got selected? (second line of window title)\n\n\n 10 | • Please describe your problem here:\n\n\n 11 | PUT ADDITIONAL COMMENTS TO THE TOP. DOWN HERE NOBODY WILL NOTICE. 12 | 13 | 14 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_altroute_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/values-de/strings_error_reporter.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fehlerbericht senden mit… 5 | Absturzbericht 6 | Fehlerbericht 7 | Bitte beantworte die folgenden Fragen. Unvollständige Berichte können leider nicht mehr beantwortet werden, aufgrund der schieren Menge an Berichten.\n\n 8 | • Welchen Programmteil betrifft dein Problem? (siehe erste Zeile des Fenstertitels)\n\n\n 9 | • Welches Verkehrsnetz hast du eingestellt? (siehe zweite Zeile des Fenstertitels)\n\n\n 10 | • Bitte beschreibe hier dein Problem:\n\n\n 11 | ERGAENZE WEITERE ANGABEN GANZ OBEN. HIER UNTEN WIRD ES NIEMAND LESEN. 12 | 13 | 14 | -------------------------------------------------------------------------------- /oeffi/res/layout/directions_trip_details_public_entry_collapsed.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/AreaAware.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi; 19 | 20 | import de.schildbach.pte.dto.Point; 21 | 22 | public interface AreaAware { 23 | Point[] getArea(); 24 | } 25 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/plans/list/PlanClickListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.plans.list; 19 | 20 | public interface PlanClickListener { 21 | void onPlanClick(PlansAdapter.Plan plan); 22 | } 23 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_accessible_grey600_18dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 14 | 15 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_directions_bike_grey600_18dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_directions_bike_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/network/list/NetworkClickListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.network.list; 19 | 20 | public interface NetworkClickListener { 21 | void onNetworkClick(NetworkListEntry.Network network); 22 | } 23 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_oeffi_directions_grey600_36dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 15 | 19 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/FromViaToAware.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi; 19 | 20 | import de.schildbach.pte.dto.Point; 21 | 22 | public interface FromViaToAware { 23 | Point getFrom(); 24 | 25 | Point getVia(); 26 | 27 | Point getTo(); 28 | } 29 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/plans/list/PlanContextMenuItemListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.plans.list; 19 | 20 | public interface PlanContextMenuItemListener { 21 | boolean onPlanContextMenuItemClick(PlansAdapter.Plan plan, int menuItemId); 22 | } 23 | -------------------------------------------------------------------------------- /oeffi/res/layout/logviewer_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 13 | 16 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/network/list/NetworkContextMenuItemListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.network.list; 19 | 20 | public interface NetworkContextMenuItemListener { 21 | boolean onNetworkContextMenuItemClick(NetworkListEntry.Network network, int menuItemId); 22 | } 23 | -------------------------------------------------------------------------------- /oeffi/res/menu/directions_query_history_context.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 11 | 14 | 17 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /oeffi/res/menu/directions_location_context.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 13 | 17 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_sound_off_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/LocationAware.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi; 19 | 20 | import de.schildbach.pte.dto.Location; 21 | import de.schildbach.pte.dto.Point; 22 | 23 | public interface LocationAware { 24 | Point getDeviceLocation(); 25 | 26 | Location getReferenceLocation(); 27 | 28 | Float getDeviceBearing(); 29 | } 30 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/stations/list/StationClickListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.stations.list; 19 | 20 | import de.schildbach.pte.NetworkId; 21 | import de.schildbach.pte.dto.Location; 22 | 23 | public interface StationClickListener { 24 | void onStationClick(int adapterPosition, NetworkId network, Location station); 25 | } 26 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_clock_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_portable_wifi_off_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/TripAware.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi; 19 | 20 | import de.schildbach.pte.dto.Trip; 21 | import de.schildbach.pte.dto.Trip.Leg; 22 | 23 | public interface TripAware { 24 | Trip getTrip(); 25 | 26 | void selectLeg(int legIndex); 27 | 28 | boolean hasSelection(); 29 | 30 | boolean isSelectedLeg(Leg leg); 31 | } 32 | -------------------------------------------------------------------------------- /oeffi/res/layout/directions_trip_details_fares_row.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 14 | 15 | 21 | 22 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/directions/list/QueryHistoryClickListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.directions.list; 19 | 20 | import de.schildbach.pte.dto.Location; 21 | 22 | public interface QueryHistoryClickListener { 23 | void onEntryClick(int adapterPosition, Location from, Location to, Location via); 24 | 25 | void onSavedTripClick(int adapterPosition, byte[] serializedTrip); 26 | } 27 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | variables: 2 | GIT_SUBMODULE_STRATEGY: recursive 3 | ANDROID_HOME: $PWD/android-sdk 4 | 5 | reference: 6 | image: debian:bookworm-slim 7 | before_script: 8 | - apt-get update 9 | - apt-get -y install ca-certificates buildah 10 | # switch to iptables legacy, as GitLab CI doesn't support nftables 11 | - apt-get -y install --no-install-recommends iptables 12 | - update-alternatives --set iptables /usr/sbin/iptables-legacy 13 | script: 14 | - buildah build --file build.Containerfile --output build . 15 | after_script: 16 | - sha256sum build/* 17 | artifacts: 18 | name: oeffi-$CI_JOB_NAME-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA 19 | paths: 20 | - build/** 21 | 22 | bookworm-jdk17: 23 | image: debian:bookworm-slim 24 | script: 25 | - apt-get update 26 | - apt-get -y install openjdk-17-jdk-headless gradle sdkmanager 27 | - yes | sdkmanager --licenses >/dev/null || true 28 | - gradle build --stacktrace 29 | - gradle --version 30 | artifacts: 31 | name: oeffi-$CI_JOB_NAME-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA 32 | paths: 33 | - oeffi/build/outputs/apk/**/*.apk 34 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_cancelled_hide_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 11 | 12 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /oeffi/res/values-notnight-v29/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | #000000 6 | #ffffff 7 | #777777 8 | #bbbbbb 9 | #dd9055 10 | 11 | 12 | 13 | 14 | #f7f7f7 15 | #227722 16 | #cccccc 17 | #cccccc 18 | #cc9900 19 | #00a0e0 20 | #757575 21 | #ffaaaa 22 | 23 | 24 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/StationsAware.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi; 19 | 20 | import de.schildbach.oeffi.stations.Station; 21 | 22 | import java.util.List; 23 | 24 | public interface StationsAware { 25 | List getStations(); 26 | 27 | Integer getFavoriteState(String stationId); 28 | 29 | void selectStation(Station station); 30 | 31 | boolean isSelectedStation(String stationId); 32 | } 33 | -------------------------------------------------------------------------------- /oeffi/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | android.vrsinfo.de 15 | wojhati.rta.ae 16 | appefa10.verbundlinie.at 17 | railteam.hafas.eu 18 | mobil.vbl.ch 19 | mobil.rozklad-pkp.pl 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /oeffi/res/layout/navigation_event_log_entry.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | 24 | 25 | -------------------------------------------------------------------------------- /oeffi/res/layout/stations_station_details_header_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_call_color_22dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 13 | 18 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_call_color_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 13 | 18 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_call_darkgrey_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 13 | 18 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/util/UiThreadExecutor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.util; 19 | 20 | import android.os.Handler; 21 | import android.os.Looper; 22 | 23 | import java.util.concurrent.Executor; 24 | 25 | public class UiThreadExecutor implements Executor { 26 | private final Handler handler = new Handler(Looper.getMainLooper()); 27 | 28 | @Override 29 | public void execute(Runnable command) { 30 | handler.post(command); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_suburban_color_22dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 18 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_suburban_color_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 18 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_suburban_darkgrey_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 18 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /oeffi/res/xml/preference_headers.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 |
8 |
11 |
14 |
17 |
21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/stations/list/JourneyClickListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.stations.list; 19 | 20 | import android.view.View; 21 | 22 | import de.schildbach.pte.NetworkId; 23 | import de.schildbach.pte.dto.JourneyRef; 24 | import de.schildbach.pte.dto.Line; 25 | import de.schildbach.pte.dto.Location; 26 | 27 | public interface JourneyClickListener { 28 | void onJourneyClick(View clickedView, final JourneyRef journeyRef, final Location entryLocation); 29 | } 30 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/ic_settings_grey600_24dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/directions/list/QueryHistoryContextMenuItemListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.directions.list; 19 | 20 | import de.schildbach.pte.dto.Location; 21 | 22 | import javax.annotation.Nullable; 23 | 24 | public interface QueryHistoryContextMenuItemListener { 25 | boolean onQueryHistoryContextMenuItemClick(int adapterPosition, Location from, Location to, 26 | @Nullable byte[] serializedSavedTrip, int menuItemId, @Nullable Location menuItemLocation); 27 | } 28 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/preference/DirectionsFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.preference; 19 | 20 | import android.os.Bundle; 21 | import de.schildbach.oeffi.R; 22 | 23 | import javax.annotation.Nullable; 24 | 25 | public class DirectionsFragment extends PreferenceFragment { 26 | @Override 27 | public void onCreate(@Nullable Bundle savedInstanceState) { 28 | super.onCreate(savedInstanceState); 29 | addPreferencesFromResource(R.xml.preference_directions); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/preference/NavigationFragment.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.preference; 19 | 20 | import android.os.Bundle; 21 | 22 | import javax.annotation.Nullable; 23 | 24 | import de.schildbach.oeffi.R; 25 | 26 | public class NavigationFragment extends PreferenceFragment { 27 | @Override 28 | public void onCreate(@Nullable Bundle savedInstanceState) { 29 | super.onCreate(savedInstanceState); 30 | addPreferencesFromResource(R.xml.preference_navigation); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/stations/list/StationContextMenuItemListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.stations.list; 19 | 20 | import de.schildbach.pte.NetworkId; 21 | import de.schildbach.pte.dto.Departure; 22 | import de.schildbach.pte.dto.Location; 23 | 24 | import javax.annotation.Nullable; 25 | import java.util.List; 26 | 27 | public interface StationContextMenuItemListener { 28 | boolean onStationContextMenuItemClick(int adapterPosition, NetworkId network, Location station, 29 | @Nullable List departures, int menuItemId); 30 | } 31 | -------------------------------------------------------------------------------- /oeffi/res/drawable/ic_cancelled_show_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 11 | 12 | 15 | 16 | 19 | 20 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/util/ResourceUri.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.util; 19 | 20 | import android.content.ContentResolver; 21 | import android.content.Context; 22 | import android.net.Uri; 23 | 24 | public class ResourceUri { 25 | public static Uri fromResource(final Context context, final int resourceId) { 26 | return new Uri.Builder() 27 | .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) 28 | .authority(context.getPackageName()) 29 | .path(Integer.toString(resourceId)) 30 | .build(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /androidstudio/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. For more details, visit 12 | # https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | android.enableJetifier=true 19 | # Enables namespacing of each library's R class so that its R class includes only the 20 | # resources declared in the library itself and none from the library's dependencies, 21 | # thereby reducing the size of the R class for that library 22 | android.nonTransitiveRClass=true -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_subway_color_22dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 17 | 21 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_subway_color_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 17 | 21 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_subway_darkgrey_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 17 | 21 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/network/list/SeparatorViewHolder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.network.list; 19 | 20 | import android.view.View; 21 | import android.widget.TextView; 22 | import androidx.recyclerview.widget.RecyclerView; 23 | 24 | public class SeparatorViewHolder extends RecyclerView.ViewHolder { 25 | private final TextView textView; 26 | 27 | public SeparatorViewHolder(final View itemView) { 28 | super(itemView); 29 | 30 | textView = itemView.findViewById(android.R.id.text1); 31 | } 32 | 33 | public void bind(final NetworkListEntry.Separator entry) { 34 | textView.setText(entry.label); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /oeffi/res/layout/location_selector_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 19 | 20 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/util/bzip2/BZip2Constants.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one 3 | * or more contributor license agreements. See the NOTICE file 4 | * distributed with this work for additional information 5 | * regarding copyright ownership. The ASF licenses this file 6 | * to you under the Apache License, Version 2.0 (the 7 | * "License"); you may not use this file except in compliance 8 | * with the License. You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, 13 | * software distributed under the License is distributed on an 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 | * KIND, either express or implied. See the License for the 16 | * specific language governing permissions and limitations 17 | * under the License. 18 | */ 19 | 20 | package de.schildbach.oeffi.util.bzip2; 21 | 22 | /** 23 | * Constants for both the compress and decompress BZip2 classes. 24 | */ 25 | interface BZip2Constants { 26 | 27 | int BASEBLOCKSIZE = 100000; 28 | int MAX_ALPHA_SIZE = 258; 29 | int MAX_CODE_LEN = 23; 30 | int RUNA = 0; 31 | int RUNB = 1; 32 | int N_GROUPS = 6; 33 | int G_SIZE = 50; 34 | int N_ITERS = 4; 35 | int MAX_SELECTORS = (2 + (900000 / G_SIZE)); 36 | int NUM_OVERSHOOT_BYTES = 20; 37 | 38 | } 39 | -------------------------------------------------------------------------------- /oeffi/res/values/strings_untranslated.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Öffi 5 | bitcoin:bc1q8ruc8hanp7hrzfs48dvtuzz4ukmpe7cgsvvzrt 6 | https://gitlab.com/oeffi/oeffi 7 | https://matrix.to/#/#öffi:schildbach.de 8 | 9 | 10 | 11 | 12 | 13 | en~https://oeffi.schildbach.de/privacy_policy.txt~~de~https://oeffi.schildbach.de/privacy_policy_de.txt 14 | en~https://oeffi.schildbach.de/faq.html~~de~https://oeffi.schildbach.de/faq.html 15 | 16 | oeffi.app@gmail.com 17 | 18 | https://oeffi.schildbach.de/ 19 | https://oeffi.schildbach.de/plans 20 | https://oeffi.schildbach.de/messages 21 | oeffi.schildbach.de 22 | app/ 23 | 24 | -------------------------------------------------------------------------------- /oeffi/res/layout/map_frame.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 25 | 26 | 34 | 35 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/network_kvv_logo.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 13 | 14 | 19 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/util/UpGestureDetector.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.util; 19 | 20 | import android.view.MotionEvent; 21 | 22 | public class UpGestureDetector { 23 | public interface OnUpGestureListener { 24 | boolean onUp(MotionEvent event); 25 | } 26 | 27 | private final OnUpGestureListener listener; 28 | 29 | public UpGestureDetector(final OnUpGestureListener listener) { 30 | this.listener = listener; 31 | } 32 | 33 | public boolean onTouchEvent(final MotionEvent event) { 34 | switch (event.getActionMasked()) { 35 | case MotionEvent.ACTION_UP: 36 | case MotionEvent.ACTION_CANCEL: 37 | return listener.onUp(event); 38 | 39 | default: 40 | return false; 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /oeffi/res/layout/favorites_content.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 14 | 15 | 19 | 20 | 25 | 26 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/stations/NearestFavoriteStationWidgetProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.stations; 19 | 20 | import android.appwidget.AppWidgetProvider; 21 | import android.content.Context; 22 | import android.content.Intent; 23 | import org.slf4j.Logger; 24 | import org.slf4j.LoggerFactory; 25 | 26 | public class NearestFavoriteStationWidgetProvider extends AppWidgetProvider { 27 | 28 | private static final Logger log = LoggerFactory.getLogger(NearestFavoriteStationWidgetProvider.class); 29 | 30 | @Override 31 | public void onReceive(final Context context, final Intent intent) { 32 | final String action = intent.getAction(); 33 | log.info("got broadcast: {}", action); 34 | NearestFavoriteStationWidgetService.schedulePeriodic(context); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/util/DialogBuilder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.util; 19 | 20 | import android.app.AlertDialog; 21 | import android.content.Context; 22 | import de.schildbach.oeffi.R; 23 | 24 | public class DialogBuilder extends AlertDialog.Builder { 25 | public static DialogBuilder get(final Context context) { 26 | return new DialogBuilder(context, 0); 27 | } 28 | 29 | public static DialogBuilder warn(final Context context, final int titleResId) { 30 | final DialogBuilder builder = get(context); 31 | builder.setIcon(R.drawable.ic_warning_amber_24dp); 32 | builder.setTitle(titleResId); 33 | return builder; 34 | } 35 | 36 | private DialogBuilder(final Context context, final int theme) { 37 | super(context, theme); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /oeffi/res/animator/heartbeat.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 11 | 15 | 20 | 25 | 26 | 27 | 32 | 37 | 42 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /oeffi/res/layout/create_launcher_shortcut_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 15 | 21 | 22 | 27 | 28 | 29 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /oeffi/graphics/ic_oeffi_stations_color_48dp-mdpi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | 18 | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_train_color_22dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_train_color_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_train_darkgrey_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/util/StrictSwipeRefreshLayout.java: -------------------------------------------------------------------------------- 1 | package de.schildbach.oeffi.util; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.view.MotionEvent; 6 | import android.view.ViewConfiguration; 7 | 8 | import androidx.annotation.NonNull; 9 | import androidx.annotation.Nullable; 10 | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; 11 | 12 | import de.schildbach.oeffi.Application; 13 | 14 | public class StrictSwipeRefreshLayout extends SwipeRefreshLayout { 15 | private final int touchSlop; 16 | private float initialX; 17 | private boolean hasMovedHorizontally; 18 | 19 | public StrictSwipeRefreshLayout(@NonNull final Context context) { 20 | this(context, null); 21 | } 22 | 23 | public StrictSwipeRefreshLayout(@NonNull final Context context, @Nullable final AttributeSet attrs) { 24 | super(context, attrs); 25 | touchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop(); 26 | } 27 | 28 | @Override 29 | public boolean onInterceptTouchEvent(final MotionEvent ev) { 30 | switch (ev.getAction()) { 31 | case MotionEvent.ACTION_DOWN: 32 | initialX = ev.getX(); 33 | hasMovedHorizontally = false; 34 | break; 35 | case MotionEvent.ACTION_MOVE: 36 | if (Math.abs(ev.getX() - initialX) > touchSlop) 37 | hasMovedHorizontally = true; 38 | break; 39 | } 40 | 41 | if (hasMovedHorizontally) 42 | return false; 43 | 44 | return super.onInterceptTouchEvent(ev); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /androidstudio/oeffi-studio/graphics/ic_oeffi_stations_color_48dp-mdpi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | 18 | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /oeffi/res/values-large/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11sp 5 | 13sp 6 | 15sp 7 | 18sp 8 | 22sp 9 | 15dp 10 | 55dp 11 | 55dp 12 | 6dp 13 | 12dp 14 | 2dp 15 | 5dp 16 | 6dp 17 | 8dp 18 | 3dp 19 | 6dp 20 | 11dp 21 | 16dp 22 | 2dp 23 | 52dp 24 | 36dp 25 | 96dp 26 | 27 | 75% 28 | 29 | 400dp 30 | 500dp 31 | 32 | 6 33 | 34 | 35 | -------------------------------------------------------------------------------- /oeffi/res/values-xlarge/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12sp 5 | 14sp 6 | 16sp 7 | 20sp 8 | 24sp 9 | 16dp 10 | 60dp 11 | 50dp 12 | 8dp 13 | 16dp 14 | 16dp 15 | 3dp 16 | 6dp 17 | 8dp 18 | 12dp 19 | 4dp 20 | 9dp 21 | 14dp 22 | 20dp 23 | 4dp 24 | 60dp 25 | 42dp 26 | 128dp 27 | 28 | 70% 29 | 30 | 8sp 31 | 430dp 32 | 530dp 33 | 34 | 35 | -------------------------------------------------------------------------------- /oeffi/graphics/ic_oeffi_directions_color_48dp-mdpi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | 18 | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /androidstudio/oeffi-studio/graphics/ic_oeffi_directions_color_48dp-mdpi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | 18 | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_cablecar_color_22dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 17 | 18 | 22 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_cablecar_color_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 17 | 18 | 22 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /oeffi/src/de/schildbach/oeffi/util/ClockUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright the original author or authors. 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | */ 17 | 18 | package de.schildbach.oeffi.util; 19 | 20 | import android.os.SystemClock; 21 | 22 | public class ClockUtils { 23 | public static long elapsedTimeToClock(final long elapsed) { 24 | final long nowClock = System.currentTimeMillis(); 25 | final long nowElapsed = SystemClock.elapsedRealtime(); 26 | return elapsed - nowElapsed + nowClock; 27 | } 28 | 29 | public static long clockToElapsedTime(final long clock) { 30 | final long nowClock = System.currentTimeMillis(); 31 | final long nowElapsed = SystemClock.elapsedRealtime(); 32 | return clock - nowClock + nowElapsed; 33 | } 34 | 35 | public static long elapsedTimePlus(final long plusMillis) { 36 | final long nowElapsed = SystemClock.elapsedRealtime(); 37 | return nowElapsed + plusMillis; 38 | } 39 | 40 | public static long clockPlus(final long plusMillis) { 41 | final long nowClock = System.currentTimeMillis(); 42 | return nowClock + plusMillis; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_cablecar_darkgrey_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 17 | 18 | 22 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_ferry_color_22dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 13 | 16 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /oeffi/res/drawable-anydpi/product_ferry_color_32dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 12 | 13 | 16 | 32 | 33 | 34 | 35 | --------------------------------------------------------------------------------