{"id":22610495,"url":"https://github.com/specure/ont-android-kotlin","last_synced_at":"2025-07-05T15:07:46.144Z","repository":{"id":104492812,"uuid":"436159986","full_name":"specure/ont-android-kotlin","owner":"specure","description":"This project contains the source code of the Android apps for AKEP Nettest, Nettfart Mobile, Open Nettest, built on top of RTR Netztest","archived":false,"fork":false,"pushed_at":"2022-01-26T08:36:21.000Z","size":5580,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-03T09:45:24.362Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/specure.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-08T07:46:35.000Z","updated_at":"2021-12-08T14:25:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"723433d7-7927-4f96-8bce-814057b3632e","html_url":"https://github.com/specure/ont-android-kotlin","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specure%2Font-android-kotlin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specure%2Font-android-kotlin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specure%2Font-android-kotlin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specure%2Font-android-kotlin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/specure","download_url":"https://codeload.github.com/specure/ont-android-kotlin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246112667,"owners_count":20725301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-08T16:07:04.879Z","updated_at":"2025-03-28T23:13:25.466Z","avatar_url":"https://github.com/specure.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"## ABOUT\n\nOpen-RMBT is an open source, multi-threaded bandwidth test used in [RTR-Netztest](https://www.netztest.at/de/) (RTR-Nettest in English).\u003c/p\u003e\nThis repository contains the source code of the new version of the RTR-Netztest application for Android.\u003c/br\u003e The source code of the new implementation is developed by [Specure GmbH](https://martes-specure.com/), based on the [previous app](https://github.com/rtr-nettest/open-rmbt) developed by the Austrian Regulatory Authority for Broadcasting and Telecommunications ([RTR GmbH](https://www.rtr.at/)) and alladin-IT GmbH.\u003c/p\u003e\nThe source code is published under [Apache version 2.0 license](https://github.com/rtr-nettest/open-rmbt-android/blob/master/LICENSE).\n\n### HOW TO BUILD\n1. Select module you want to build according to customer (other ones from this set you can unload,\n   keep only one loaded)\n\t- __`app`__: RTR Austria\n\t- __`ont`__: Open Nettest Global\n\t- __`akep`__: AKEP Albania\n\t- __`akos`__: AKOS Slovenia\n\t- __`nkom`__: NKOM Norway\n2. Change app id to preferred one in dependencies.gradle (optional)\n3. Update signing config (optional)\n\t1. Replace signing/debug.keystore with your own one\n\t2. Update signing/debug.properties with credentials to your signing/debug.keystore key\n\t3. Replace signing/release.keystore with your own one\n\t4. Update signing/release.properties with credentials to your signing/release.keystore key\n4. Additional setup\n\t1. For `app` customer selectedEnable Google Maps SDK in Google Cloud console and put your API\n\t   key into `googleMapsApiKey` in flavor-config.gradle file\n\t2. For other than `app` customer to enable MapBox map register and generate key on mapbox.com\n\t   and set your key as environmental variable `ORG_GRADLE_PROJECT_MAPBOX_SDK_KEY` and replace \n\t   your public key under `mapbox_public_key` in `res/values/keys.xml` for particular selected module\n\t3. For other than `app` customer to enable Here map search register and generate key on here.com\n\t   and set your key as environmental variable `ORG_GRADLE_PROJECT_HERE_API_KEY`\n\t4. For other than `app` customer generate `google-services.json` according to app id you set in step 2. \n\t   and paste it to root of module you selected to build\n5. Add/change endpoints information and `example.com` in file `app/src/rtr/config.json`\n\n### VARIABLES DESCRIPTION\n##### CONTROL SERVER VARIABLES\n- __`CONTROL_SERVER_HOST`__:exclamation:Controßl server host, example: `\"sdev.example.com\"`\n- __`CONTROL_SERVER_CHECK_PRIVATE_IPV4_HOST`__:exclamation:Url to the host for IPv4 test, example `\"sdevv4.example.com\"`\n- __`CONTROL_SERVER_CHECK_PRIVATE_IPV6_HOST`__:exclamation:Url to the host for IPv6 test, example `\"sdevv6.example.com\"`\n- __`CONTROL_SERVER_CHECK_PUBLIC_IPV4_URL`__:exclamation:Link to check public IPv4 address, example `\"sdevv4.example.com/RMBTControlServer/ip\"`\n- __`CONTROL_SERVER_CHECK_PUBLIC_IPV6_URL`__:exclamation:Link to check public IPv6 address, example `\"sdevv6.example.com/RMBTControlServer/ip\"`\n- __`CAPTIVE_PORTAL_WALLED_GARDEN_URL`__:exclamation:Url for checking captive portal presence, example: `\"http://webtest.example.com/generate_204\"`\n- __`CONTROL_SERVER_PORT`__ Control server port, default: `443`\n- __`CONTROL_SERVER_USE_SSL`__ Indicates SSL should be used for server connection or not, default: `true`\n- __`QOS_SSL`__ Indicates SSL should be used QoS tests, default: `true`\n\n##### TEST SETTINGS\n- __`NDT_ENABLED`__ Indicates NDT Tests is enabled, default: `false` _(NDT fuctionality not implemented)_\n- __`SKIP_QOS_TESTS`__ Indicates QoS Tests can be skipped after basic measurement, default: `false`\n- __`SKIP_QOS_TESTS_FOR_PERIOD`__ Indicates QoS Tests can be skipped until specified time in minutes runs out after previously executed QoS tests, default: `false`\n- __`SKIP_QOS_TESTS_PERIOD_MIN`__ Indicates how much time in minutes QoS Tests should be skipped after previously executed QoS tests, default: `120`\n- __`LOOP_MODE_ENABLED`__ Indicates Loop Mode is enabled, default `false`\n- __`LOOP_MODE_WAITING_TIME_MIN`__ Default delay between measurements in Loop Mode in minutes, default: `30`\n- __`LOOP_MODE_DISTANCE_METERS`__ Default distance between measurements in Loop Mode in meters, default: `250`\n- __`LOOP_MODE_NUMBER_OF_TESTS`__ Default number of tests per single Loop Mode test, default: `30`\n- __`LOOP_MODE_MAX_NUMBER_OF_TESTS`__ Maximum number of Loop Mode measurements that can be entered by User, default: `100`\n- __`LOOP_MODE_MIN_NUMBER_OF_TESTS`__ Minimum number of Loop Mode measurements that can be entered by User, default: `1`\n- __`LOOP_MODE_MAX_WAITING_TIME_MIN`__ Maximum delay in minutes between measurements in Loop Mode can be entered by User, default `1440`\n- __`LOOP_MODE_MIN_WAITING_TIME_MIN`__ Minimum delay in minutes between measurements in Loop Mode can be entered by User, default `15`\n- __`LOOP_MODE_MAX_DISTANCE_METERS`__ Maximum distance in meters between measurements in Loop Mode can be entered by User, default `10000`\n- __`LOOP_MODE_MIN_DISTANCE_METERS`__ Minimum distance in meters between measurements in Loop Mode can be entered by User, default `50`\n- __`CAPABILITIES_RMBT_HTTP`__ client supports RMBT HTTP, default: `true`\n- __`CAPABILITIES_QOS_SUPPORTS_INFO`__ The third state (=INFO) is supported or not, default: `false`\n- __`CAPABILITIES_CLASSIFICATION_COUNT`__ Number of intervals(classes) to classify measured values, default: `4`\n- __`SIGNAL_MEASUREMENT_DURATION_MIN`__ Maximum time in minutes to run signal measurement, default: `2880`\n\n##### GENERAL SETTINGS\n- __`CAN_MANAGE_LOCATION_SETTINGS`__ Settings menu that allows to open application settings (If location permissions are not provided to app) or System Location settings (if location settings disabled for device)\n\n##### EXPERT SETTINGS\n- __`EXPERT_MODE_ENABLED`__ Indicates Expert Mode is enabled, default: `false`\n- __`EXPERT_MODE_IPV4_ONLY`__ Indicates that only ip4v protocol should be used, default: `false`\n- __`USER_SERVER_SELECTION_ENABLED`__ Indicates that user can select server, default: `false`\n\n##### DEVELOPER SETTINGS\n- __`DEVELOPER_MODE_IS_ENABLED`__ Indicates Developer Mode is enabled, default: `false`\n- __`DEVELOPER_MODE_IS_AVAILABLE`__ Indicates that Developer mode can be activated, default: `true`\n- __`IS_MAP_SERVER_OVERRIDE_ENABLED`__ Map server overriding is enabled, default: `false`\n- __`IS_CONTROL_SERVER_OVERRIDE_ENABLED`__ Control server overriding is enabled, default: `false`\n- __`DEVELOPER_ACTIVATE_CODE`__:exclamation:Code to activate Developer Mode (10 taps on version number in Settings), default: `qwerty`\n- __`DEVELOPER_DEACTIVATE_CODE`__:exclamation:Code to deactivate Developer Mode (10 taps on version number), default: `1111`\n- __`ALL_DEACTIVATE_CODE`__:exclamation:Code to deactivate everything(?) (10 taps on version number), default: `0000`\n- __`DEV_SIMULATE_5G_NETWORK`__:Allows to simulate 5G network in the developer mode\n- __`DEV_SIMULATE_5G_NETWORK_IS_AVAILABLE`__:This flag makes simulate 5G network visible in the developer mode or not\n\n##### OTHER VALUES\n- __`SOURCE_CODE_URL`__:exclamation:Link to Source Code, value: `https://github.com/rtr-nettest`\n- __`WEBSITE_URL`__:exclamation:Link to the website, default: `https://www.example.com`\n- __`EMAIL_ADDRESS`__:exclamation:Email address for support, default: `RMBT Support \u003csupport@example.com\u003e`\n- __`DATA_PRIVACY_AND_TERMS_URL`__:exclamation:Link to Privacy Policy \u0026 Terms And Condition, default: `https://example.com/%s/tk/netztestterms`, where `1{%s}` is language code (currently `en` or `de`)\n- __`TERMS_FOR_ACCEPTANCE_URL`__:exclamation:Terms and Condition for User acceptance, default: `https://example.com/%s/tc_android.html`, where `1{%s}` is language code (currently `en` or `de`)\n\n##### MAP SETTINGS\n- __`MAP_SERVER_HOST`__ Map server host url, default: `sdev.example.com`\n- __`MAP_SERVER_PORT`__ Map server port, default: `443`\n- __`MAP_SERVER_USE_SSL`__ Indicates SSL should be used for map server connection or not, default: `true`\n- __`MAP_SERVER_ROUTE`__ Map server route, default: `RMBTMapServer` \n- __`MAP_TILES_ENDPOINT`__ Map server endpoint to obtain tiles, default: `tiles/%s/%d/%d/%d.png` where `1{%s}` map _type_ (`heatmap` or `points` or `shapes`), `2{%s}` is _zoom_ value, `3{%s}` is _x_ value, `4{%s}` is _y_ value\n- __`MAP_MARKERS_ENDPOINT`__ Map server endpoint to obtain markers, default: `tiles/markers`\n- __`MAP_MARKER_SHOW_DETAILS_ROUTE`__ Map server route to get marker details, default: `en/Opentest?%s#noMMenu`\n- __`MAP_FILTERS_ENDPOINT`__ Map filters endpoint to get map types \u0026 filters, default: `tiles/info`\n\n##### CONTROL SERVER ROUTES\n- __`CONTROL_SERVER_ROUTE`__ Route to the control server, default:  `RMBTControlServer`\n- __`CONTROL_SERVER_SETTINGS_ENDPOINT`__  Endpoint to get settings from the control server, default: `settings`\n- __`CONTROL_SERVER_TEST_REQUEST_ENDPOINT`__ Endpoint to get basic measurement set up to start measurement, default: `testRequest` (currently not in use. Control client uses same endpoint from old implementation)\n- __`CONTROL_SERVER_SEND_RESULT_ENDPOINT`__ Endpoint to send test results to the control server, default: `result`\n- __`CONTROL_SERVER_SEND_QOS_RESULT_ENDPOINT`__ Endpoint to send QoS test results to the control server, default: `resultQoS`\n- __`CONTROL_SERVER_HISTORY_ENDPOINT`__ Endpoint to get test history, default: `history`\n- __`CONTROL_SERVER_GET_BASIC_RESULT_PATH`__ Endpoint to get test results from the control server, default: `testresult`\n- __`CONTROL_SERVER_GET_OPENDATA_RESULT_PATH`__ Endpoint to get open test results from control\n  server, default: `opentests`\n- __`CONTROL_SERVER_TEST_RESULT_DETAILS_ENDPOINT`__ Endpoint to get detailed test results,\n  default: `testresultdetail`\n- __`CONTROL_SERVER_GET_QOS_TEST_RESULT_ENDPOINT`__ Endpoint to get QoS test results,\n  default: `qosTestResult?api=2`\n- __`CONTROL_SERVER_SIGNAL_REQUEST_ROUTE`__ Endpoint to get settings for the continious signal\n  measurement, default: `signalRequest`\n- __`CONTROL_SERVER_SIGNAL_RESULT_ROUTE`__ Endpoint to send chunk of results of continiouse signal\n  measurement, default: `signalResult`\n- __`CONTROL_SERVER_GET_SYNC_CODE_ROUTE`__ Endpoint to get sync code for current device,\n  default: `sync`\n- __`CONTROL_SERVER_SYNC_DEVICES_ROUTE`__ Endpoint to send other device sync code and make devices\n  history synchonised, default `sync` (has different params in api)\n- __`CONTROL_SERVER_GET_NEWS_ENDPOINT`__ Endpoint to get news, default: `news`\n- __`CONTROL_SERVER_NEW_HOST`__ Host for the updated version of server\n- __`CONTROL_SERVER_NEW_ROUTE`__ Route for the updated version of server\n- __`REQUEST_HEADER_VALUE`__ Request header to differentiate between customers eg. `nt` for `ont`\n  customer. Default is empty.\n- __`RMBT_CLIENT_REQUESTS_PATH_PREFIX`__ Middle part of the request route eg. for\n  route `\"sdevv6.example.com/RMBTControlServer/ip\"` and value `v2` it will\n  generate `\"sdevv6.example.com/RMBTControlServer/v2/ip\"`. Default is empty.\n- __`ENABLED_JITTER_AND_PACKET_LOSS`__ Defines if jitter and packet loss test should be executed\n  during basic test - it needs to be supported by ControlServer. Default is `false`.\n- __`CMS_URL`__ Defines URL to CMS system to load web pages regarding terms and conditions, privacy\n  policy, ... Used for other than RTR customer. eg. `\"https://cms-api.example.com\"`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecure%2Font-android-kotlin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspecure%2Font-android-kotlin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecure%2Font-android-kotlin/lists"}