From bb16133ffc712e940eb730e6b64bf444e280d86b Mon Sep 17 00:00:00 2001 From: sa-fx Date: Thu, 29 Jan 2026 18:22:53 +0000 Subject: [PATCH 01/65] Revised versions of build tools (for AS 2024.2.1 compatibility) [MAY NEED TO BE ROLLED BACK IF DISALLOWED!] --- build.gradle | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index e208c000..77be694c 100644 --- a/build.gradle +++ b/build.gradle @@ -6,8 +6,12 @@ buildscript { } dependencies { // NOTE: Only classpath deps (plugins) go here - classpath 'com.android.tools.build:gradle:8.8.0' - classpath 'com.google.gms:google-services:4.4.2' + // Compatibility change for AS 2024.2.1 Patch 1 +// classpath 'com.android.tools.build:gradle:8.8.0' + classpath 'com.android.tools.build:gradle:8.7.3' + // Newer version available +// classpath 'com.google.gms:google-services:4.4.2' + classpath 'com.google.gms:google-services:4.4.4' def nav_version = "2.5.3" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" From 740a7032c2f126b7742ec5aaabe5da0d33a99e5c Mon Sep 17 00:00:00 2001 From: sa-fx Date: Thu, 29 Jan 2026 21:17:49 +0000 Subject: [PATCH 02/65] Set Gradle version to 8.7.1 (from Learn); updated .gitignore --- .gitignore | 1 + build.gradle | 6 ++---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index d4c3a57e..9f36f93c 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ .cxx local.properties /.idea/ +**/.vscode/ diff --git a/build.gradle b/build.gradle index 77be694c..915a81dd 100644 --- a/build.gradle +++ b/build.gradle @@ -8,10 +8,8 @@ buildscript { // NOTE: Only classpath deps (plugins) go here // Compatibility change for AS 2024.2.1 Patch 1 // classpath 'com.android.tools.build:gradle:8.8.0' - classpath 'com.android.tools.build:gradle:8.7.3' - // Newer version available -// classpath 'com.google.gms:google-services:4.4.2' - classpath 'com.google.gms:google-services:4.4.4' + classpath 'com.android.tools.build:gradle:8.7.1' + classpath 'com.google.gms:google-services:4.4.2' def nav_version = "2.5.3" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" From 7707ec9d5f7fb166f473e2a30dcd73ce183ab6a2 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Fri, 30 Jan 2026 16:46:36 +0000 Subject: [PATCH 03/65] [infra] Lint Baseline (#3) --- app/build.gradle | 5 + app/lint-baseline.xml | 2959 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2964 insertions(+) create mode 100644 app/lint-baseline.xml diff --git a/app/build.gradle b/app/build.gradle index 3e29b13f..bee40e7a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,6 +55,11 @@ android { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } + + // Add lint support + lint { + baseline = file("lint-baseline.xml") + } } dependencies { diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml new file mode 100644 index 00000000..27c1fbd9 --- /dev/null +++ b/app/lint-baseline.xml @@ -0,0 +1,2959 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 505f947fe1909e3a53a1d32ca0a9a2c9a649aa6a Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Fri, 30 Jan 2026 17:13:55 +0000 Subject: [PATCH 04/65] [infra] GitHub Action (#2) --- .github/workflows/android.yml | 28 +++++++++++ README.md | 5 ++ .../res/layout/item_trajectorycard_view.xml | 42 ++++++++-------- .../main/res/layout/item_upload_card_view.xml | 48 +++++++++---------- 4 files changed, 78 insertions(+), 45 deletions(-) create mode 100644 .github/workflows/android.yml diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 00000000..1dd8dcf7 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,28 @@ +name: Android Gradle Assemble + +on: + push: + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK 21.0.3 + uses: actions/setup-java@v4 + with: + java-version: '21.0.3' + distribution: 'jetbrains' + cache: gradle + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + - name: Add (empty) local.properties + run: touch ./local.properties + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Gradle - Lint + run: ./gradlew lint --parallel + - name: Gradle - Assemble + run: ./gradlew assemble --parallel diff --git a/README.md b/README.md index c4a9f02d..53d81c73 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +# Embedded Mobile and Wireless Systems (EWireless) 5 2025/25 +## Coursework 1 - Group 13 + +[![Build Status](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android.yml) + **PositionMe** is an indoor positioning data collection application initially developed for the University of Edinburgh's Embedded Wireless course. The application now includes enhanced features, including **trajectory playback**, improved UI design, and comprehensive location tracking. ## Features diff --git a/app/src/main/res/layout/item_trajectorycard_view.xml b/app/src/main/res/layout/item_trajectorycard_view.xml index ebbb9818..5a0e1273 100644 --- a/app/src/main/res/layout/item_trajectorycard_view.xml +++ b/app/src/main/res/layout/item_trajectorycard_view.xml @@ -10,12 +10,12 @@ + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintEnd_toStartOf="@+id/downloadTrajectoryButton" + app:layout_constraintStart_toEndOf="@id/trajectoryIdItem" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/item_upload_card_view.xml b/app/src/main/res/layout/item_upload_card_view.xml index 465ea27f..3fe03ddc 100644 --- a/app/src/main/res/layout/item_upload_card_view.xml +++ b/app/src/main/res/layout/item_upload_card_view.xml @@ -10,12 +10,12 @@ + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> From c38a1dab9026a3558a5b23d4dc246c16fb70b7d1 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Sat, 31 Jan 2026 23:53:30 +0000 Subject: [PATCH 05/65] [Bug] Hardcoded API Key (#15) --- app/src/main/res/values/googlemaps_api.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/googlemaps_api.xml b/app/src/main/res/values/googlemaps_api.xml index 80672c61..12c34f16 100644 --- a/app/src/main/res/values/googlemaps_api.xml +++ b/app/src/main/res/values/googlemaps_api.xml @@ -1,6 +1,6 @@ - AIzaSyAGqo26Wz1SUnGYP3TDDxLSDNK-EvHHtNc + ${BuildConfig.MAPS_API_KEY} \ No newline at end of file From dbce2eea0bfb882bebd984a5434c027bcad431dd Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Mon, 2 Feb 2026 13:59:14 +0000 Subject: [PATCH 06/65] [Infra] PR Template (#18) --- .github/pull_request_template.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..a13a0757 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,15 @@ +# Summary + +One or two line summary of what this PR's changes do, and why you're making them. + +If this closes an issue, include the phrase: Closes (hashtag-issue_number) + +## Details + +- List of key changes made +- Can be functional changes, or non-functional (eg, style, linting, refactoring) + +## Action Items + +- [ ] If there are any other outstanding items to be completed before merging, put them here + - Remember to request at least one code review! (You don't need to list this as an item here, as GitHub will already track code reviews for you) From 1905b28c9209615d76bbb02aeeab94ae3542d77b Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Mon, 2 Feb 2026 15:40:24 +0000 Subject: [PATCH 07/65] Updated PR Template (#19) --- .github/pull_request_template.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index a13a0757..5f787f53 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -13,3 +13,7 @@ If this closes an issue, include the phrase: Closes (hashtag-issue_number) - [ ] If there are any other outstanding items to be completed before merging, put them here - Remember to request at least one code review! (You don't need to list this as an item here, as GitHub will already track code reviews for you) + +> # **NOTICE! Do not merge a pull request if it is not your assigned pull request!** +> +> Do not merge just because you are a code reviewer and you are okay with it. _Only_ merge if you are (one of) the author(s)! From 22d26ab1de1a7a78276af113cb2864aa876e89a9 Mon Sep 17 00:00:00 2001 From: Vlad118 <96501158+Vlad118@users.noreply.github.com> Date: Mon, 2 Feb 2026 18:20:22 +0000 Subject: [PATCH 08/65] [Feat] Sensor Data - WiFi (#17) --- app/build.gradle | 4 +- .../com/openpositioning/PositionMe/Traj.java | 19417 ++++++++++++---- .../data/remote/ServerCommunications.java | 4 +- .../PositionMe/sensors/GNSSDataProcessor.java | 15 + .../PositionMe/sensors/MovementSensor.java | 8 +- .../PositionMe/sensors/SensorFusion.java | 170 +- .../PositionMe/sensors/SensorInfo.java | 14 +- .../PositionMe/sensors/Wifi.java | 3 + .../PositionMe/sensors/WifiDataProcessor.java | 3 + app/src/main/proto/traj.proto | 277 +- 10 files changed, 14702 insertions(+), 5213 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index bee40e7a..033aa481 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -78,9 +78,9 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' implementation 'com.google.android.material:material:1.12.0' - implementation 'com.google.protobuf:protobuf-java:3.0.0' + implementation 'com.google.protobuf:protobuf-java:3.20.1' implementation 'com.squareup.okhttp3:okhttp:4.10.0' - implementation "com.google.protobuf:protobuf-java-util:3.0.0" + implementation "com.google.protobuf:protobuf-java-util:3.20.1" implementation "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" implementation 'com.google.android.gms:play-services-maps:19.0.0' diff --git a/app/src/main/java/com/openpositioning/PositionMe/Traj.java b/app/src/main/java/com/openpositioning/PositionMe/Traj.java index 7925fa55..133e0d84 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/Traj.java +++ b/app/src/main/java/com/openpositioning/PositionMe/Traj.java @@ -1,5 +1,5 @@ package com.openpositioning.PositionMe;// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: Cloud/app/src/main/proto/traj.proto +// source: app/src/main/proto/traj.proto public final class Traj { private Traj() {} @@ -17,205 +17,333 @@ public interface TrajectoryOrBuilder extends com.google.protobuf.MessageOrBuilder { /** - * optional string android_version = 1; + * string android_version = 1; + * @return The androidVersion. */ - String getAndroidVersion(); + java.lang.String getAndroidVersion(); /** - * optional string android_version = 1; + * string android_version = 1; + * @return The bytes for androidVersion. */ com.google.protobuf.ByteString getAndroidVersionBytes(); /** - * repeated .Motion_Sample imu_data = 2; + *
+     * version 2.0
+     * 
+ * + * float trajectory_version = 2; + * @return The trajectoryVersion. + */ + float getTrajectoryVersion(); + + /** + *
+     * trajectory id/name for identification
+     * 
+ * + * string trajectory_id = 3; + * @return The trajectoryId. + */ + java.lang.String getTrajectoryId(); + /** + *
+     * trajectory id/name for identification
+     * 
+ * + * string trajectory_id = 3; + * @return The bytes for trajectoryId. + */ + com.google.protobuf.ByteString + getTrajectoryIdBytes(); + + /** + * repeated .IMUReading imu_data = 4; */ - java.util.List + java.util.List getImuDataList(); /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - Motion_Sample getImuData(int index); + Traj.IMUReading getImuData(int index); /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ int getImuDataCount(); /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - java.util.List + java.util.List getImuDataOrBuilderList(); /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - Motion_SampleOrBuilder getImuDataOrBuilder( + Traj.IMUReadingOrBuilder getImuDataOrBuilder( int index); /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - java.util.List + java.util.List getPdrDataList(); /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - Pdr_Sample getPdrData(int index); + Traj.RelativePosition getPdrData(int index); /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ int getPdrDataCount(); /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - java.util.List + java.util.List getPdrDataOrBuilderList(); /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - Pdr_SampleOrBuilder getPdrDataOrBuilder( + Traj.RelativePositionOrBuilder getPdrDataOrBuilder( int index); /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - java.util.List - getPositionDataList(); + java.util.List + getMagnetometerDataList(); /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - Position_Sample getPositionData(int index); + Traj.MagnetometerReading getMagnetometerData(int index); /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - int getPositionDataCount(); + int getMagnetometerDataCount(); /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - java.util.List - getPositionDataOrBuilderList(); + java.util.List + getMagnetometerDataOrBuilderList(); /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - Position_SampleOrBuilder getPositionDataOrBuilder( + Traj.MagnetometerReadingOrBuilder getMagnetometerDataOrBuilder( int index); /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - java.util.List + java.util.List getPressureDataList(); /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - Pressure_Sample getPressureData(int index); + Traj.BarometerReading getPressureData(int index); /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ int getPressureDataCount(); /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - java.util.List + java.util.List getPressureDataOrBuilderList(); /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - Pressure_SampleOrBuilder getPressureDataOrBuilder( + Traj.BarometerReadingOrBuilder getPressureDataOrBuilder( int index); /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - java.util.List + java.util.List getLightDataList(); /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - Light_Sample getLightData(int index); + Traj.LightReading getLightData(int index); /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ int getLightDataCount(); /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - java.util.List + java.util.List getLightDataOrBuilderList(); /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; + */ + Traj.LightReadingOrBuilder getLightDataOrBuilder( + int index); + + /** + * repeated .ProximityReading proximity_data = 9; + */ + java.util.List + getProximityDataList(); + /** + * repeated .ProximityReading proximity_data = 9; */ - Light_SampleOrBuilder getLightDataOrBuilder( + Traj.ProximityReading getProximityData(int index); + /** + * repeated .ProximityReading proximity_data = 9; + */ + int getProximityDataCount(); + /** + * repeated .ProximityReading proximity_data = 9; + */ + java.util.List + getProximityDataOrBuilderList(); + /** + * repeated .ProximityReading proximity_data = 9; + */ + Traj.ProximityReadingOrBuilder getProximityDataOrBuilder( int index); /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .GNSSReading gnss_data = 10; */ - java.util.List + java.util.List getGnssDataList(); /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .GNSSReading gnss_data = 10; */ - GNSS_Sample getGnssData(int index); + Traj.GNSSReading getGnssData(int index); /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .GNSSReading gnss_data = 10; */ int getGnssDataCount(); /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .GNSSReading gnss_data = 10; */ - java.util.List + java.util.List getGnssDataOrBuilderList(); /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .GNSSReading gnss_data = 10; */ - GNSS_SampleOrBuilder getGnssDataOrBuilder( + Traj.GNSSReadingOrBuilder getGnssDataOrBuilder( int index); /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - java.util.List - getWifiDataList(); + java.util.List + getWifiFingerprintsList(); /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - WiFi_Sample getWifiData(int index); + Traj.Fingerprint getWifiFingerprints(int index); /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - int getWifiDataCount(); + int getWifiFingerprintsCount(); /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - java.util.List - getWifiDataOrBuilderList(); + java.util.List + getWifiFingerprintsOrBuilderList(); /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - WiFi_SampleOrBuilder getWifiDataOrBuilder( + Traj.FingerprintOrBuilder getWifiFingerprintsOrBuilder( int index); /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - java.util.List + java.util.List getApsDataList(); /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - AP_Data getApsData(int index); + Traj.WiFiAPData getApsData(int index); /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ int getApsDataCount(); /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - java.util.List + java.util.List getApsDataOrBuilderList(); /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; + */ + Traj.WiFiAPDataOrBuilder getApsDataOrBuilder( + int index); + + /** + * repeated .WiFiRTTReading wifi_rtt_data = 13; + */ + java.util.List + getWifiRttDataList(); + /** + * repeated .WiFiRTTReading wifi_rtt_data = 13; + */ + Traj.WiFiRTTReading getWifiRttData(int index); + /** + * repeated .WiFiRTTReading wifi_rtt_data = 13; + */ + int getWifiRttDataCount(); + /** + * repeated .WiFiRTTReading wifi_rtt_data = 13; + */ + java.util.List + getWifiRttDataOrBuilderList(); + /** + * repeated .WiFiRTTReading wifi_rtt_data = 13; + */ + Traj.WiFiRTTReadingOrBuilder getWifiRttDataOrBuilder( + int index); + + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + java.util.List + getBleFingerprintsList(); + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + Traj.Fingerprint getBleFingerprints(int index); + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + int getBleFingerprintsCount(); + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + java.util.List + getBleFingerprintsOrBuilderList(); + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + Traj.FingerprintOrBuilder getBleFingerprintsOrBuilder( + int index); + + /** + * repeated .BleData ble_data = 15; + */ + java.util.List + getBleDataList(); + /** + * repeated .BleData ble_data = 15; + */ + Traj.BleData getBleData(int index); + /** + * repeated .BleData ble_data = 15; + */ + int getBleDataCount(); + /** + * repeated .BleData ble_data = 15; */ - AP_DataOrBuilder getApsDataOrBuilder( + java.util.List + getBleDataOrBuilderList(); + /** + * repeated .BleData ble_data = 15; + */ + Traj.BleDataOrBuilder getBleDataOrBuilder( int index); /** @@ -229,134 +357,233 @@ AP_DataOrBuilder getApsDataOrBuilder( * relative_timestamp = 3000 (3s) * * - * optional int64 start_timestamp = 10; + * int64 start_timestamp = 16; + * @return The startTimestamp. */ long getStartTimestamp(); /** - * optional string data_identifier = 11; + * .GNSSPosition initial_position = 17; + * @return Whether the initialPosition field is set. */ - String getDataIdentifier(); + boolean hasInitialPosition(); /** - * optional string data_identifier = 11; + * .GNSSPosition initial_position = 17; + * @return The initialPosition. */ - com.google.protobuf.ByteString - getDataIdentifierBytes(); + Traj.GNSSPosition getInitialPosition(); + /** + * .GNSSPosition initial_position = 17; + */ + Traj.GNSSPositionOrBuilder getInitialPositionOrBuilder(); + + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + java.util.List + getCorrectedPositionsList(); + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + Traj.GNSSPosition getCorrectedPositions(int index); + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + int getCorrectedPositionsCount(); + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + java.util.List + getCorrectedPositionsOrBuilderList(); + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + Traj.GNSSPositionOrBuilder getCorrectedPositionsOrBuilder( + int index); /** - * optional .Sensor_Info accelerometer_info = 12; + * .SensorInfo accelerometer_info = 19; + * @return Whether the accelerometerInfo field is set. */ boolean hasAccelerometerInfo(); /** - * optional .Sensor_Info accelerometer_info = 12; + * .SensorInfo accelerometer_info = 19; + * @return The accelerometerInfo. */ - Sensor_Info getAccelerometerInfo(); + Traj.SensorInfo getAccelerometerInfo(); /** - * optional .Sensor_Info accelerometer_info = 12; + * .SensorInfo accelerometer_info = 19; */ - Sensor_InfoOrBuilder getAccelerometerInfoOrBuilder(); + Traj.SensorInfoOrBuilder getAccelerometerInfoOrBuilder(); /** - * optional .Sensor_Info gyroscope_info = 13; + * .SensorInfo gyroscope_info = 20; + * @return Whether the gyroscopeInfo field is set. */ boolean hasGyroscopeInfo(); /** - * optional .Sensor_Info gyroscope_info = 13; + * .SensorInfo gyroscope_info = 20; + * @return The gyroscopeInfo. */ - Sensor_Info getGyroscopeInfo(); + Traj.SensorInfo getGyroscopeInfo(); /** - * optional .Sensor_Info gyroscope_info = 13; + * .SensorInfo gyroscope_info = 20; */ - Sensor_InfoOrBuilder getGyroscopeInfoOrBuilder(); + Traj.SensorInfoOrBuilder getGyroscopeInfoOrBuilder(); /** - * optional .Sensor_Info rotation_vector_info = 14; + * .SensorInfo rotation_vector_info = 21; + * @return Whether the rotationVectorInfo field is set. */ boolean hasRotationVectorInfo(); /** - * optional .Sensor_Info rotation_vector_info = 14; + * .SensorInfo rotation_vector_info = 21; + * @return The rotationVectorInfo. */ - Sensor_Info getRotationVectorInfo(); + Traj.SensorInfo getRotationVectorInfo(); /** - * optional .Sensor_Info rotation_vector_info = 14; + * .SensorInfo rotation_vector_info = 21; */ - Sensor_InfoOrBuilder getRotationVectorInfoOrBuilder(); + Traj.SensorInfoOrBuilder getRotationVectorInfoOrBuilder(); /** - * optional .Sensor_Info magnetometer_info = 15; + * .SensorInfo magnetometer_info = 22; + * @return Whether the magnetometerInfo field is set. */ boolean hasMagnetometerInfo(); /** - * optional .Sensor_Info magnetometer_info = 15; + * .SensorInfo magnetometer_info = 22; + * @return The magnetometerInfo. */ - Sensor_Info getMagnetometerInfo(); + Traj.SensorInfo getMagnetometerInfo(); /** - * optional .Sensor_Info magnetometer_info = 15; + * .SensorInfo magnetometer_info = 22; */ - Sensor_InfoOrBuilder getMagnetometerInfoOrBuilder(); + Traj.SensorInfoOrBuilder getMagnetometerInfoOrBuilder(); /** - * optional .Sensor_Info barometer_info = 16; + * .SensorInfo barometer_info = 23; + * @return Whether the barometerInfo field is set. */ boolean hasBarometerInfo(); /** - * optional .Sensor_Info barometer_info = 16; + * .SensorInfo barometer_info = 23; + * @return The barometerInfo. */ - Sensor_Info getBarometerInfo(); + Traj.SensorInfo getBarometerInfo(); /** - * optional .Sensor_Info barometer_info = 16; + * .SensorInfo barometer_info = 23; */ - Sensor_InfoOrBuilder getBarometerInfoOrBuilder(); + Traj.SensorInfoOrBuilder getBarometerInfoOrBuilder(); /** - * optional .Sensor_Info light_sensor_info = 17; + * .SensorInfo light_sensor_info = 24; + * @return Whether the lightSensorInfo field is set. */ boolean hasLightSensorInfo(); /** - * optional .Sensor_Info light_sensor_info = 17; + * .SensorInfo light_sensor_info = 24; + * @return The lightSensorInfo. + */ + Traj.SensorInfo getLightSensorInfo(); + /** + * .SensorInfo light_sensor_info = 24; + */ + Traj.SensorInfoOrBuilder getLightSensorInfoOrBuilder(); + + /** + * .SensorInfo proximity_info = 25; + * @return Whether the proximityInfo field is set. + */ + boolean hasProximityInfo(); + /** + * .SensorInfo proximity_info = 25; + * @return The proximityInfo. + */ + Traj.SensorInfo getProximityInfo(); + /** + * .SensorInfo proximity_info = 25; + */ + Traj.SensorInfoOrBuilder getProximityInfoOrBuilder(); + + /** + * repeated .GNSSPosition test_points = 26; + */ + java.util.List + getTestPointsList(); + /** + * repeated .GNSSPosition test_points = 26; + */ + Traj.GNSSPosition getTestPoints(int index); + /** + * repeated .GNSSPosition test_points = 26; + */ + int getTestPointsCount(); + /** + * repeated .GNSSPosition test_points = 26; */ - Sensor_Info getLightSensorInfo(); + java.util.List + getTestPointsOrBuilderList(); /** - * optional .Sensor_Info light_sensor_info = 17; + * repeated .GNSSPosition test_points = 26; */ - Sensor_InfoOrBuilder getLightSensorInfoOrBuilder(); + Traj.GNSSPositionOrBuilder getTestPointsOrBuilder( + int index); } /** * Protobuf type {@code Trajectory} */ - public static final class Trajectory extends + public static final class Trajectory extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:Trajectory) TrajectoryOrBuilder { + private static final long serialVersionUID = 0L; // Use Trajectory.newBuilder() to construct. private Trajectory(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Trajectory() { androidVersion_ = ""; + trajectoryId_ = ""; imuData_ = java.util.Collections.emptyList(); pdrData_ = java.util.Collections.emptyList(); - positionData_ = java.util.Collections.emptyList(); + magnetometerData_ = java.util.Collections.emptyList(); pressureData_ = java.util.Collections.emptyList(); lightData_ = java.util.Collections.emptyList(); + proximityData_ = java.util.Collections.emptyList(); gnssData_ = java.util.Collections.emptyList(); - wifiData_ = java.util.Collections.emptyList(); + wifiFingerprints_ = java.util.Collections.emptyList(); apsData_ = java.util.Collections.emptyList(); - startTimestamp_ = 0L; - dataIdentifier_ = ""; + wifiRttData_ = java.util.Collections.emptyList(); + bleFingerprints_ = java.util.Collections.emptyList(); + bleData_ = java.util.Collections.emptyList(); + correctedPositions_ = java.util.Collections.emptyList(); + testPoints_ = java.util.Collections.emptyList(); } - @Override + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Trajectory(); + } + + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } private Trajectory( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -365,107 +592,164 @@ private Trajectory( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; - } - break; - } case 10: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); androidVersion_ = s; break; } - case 18: { - if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { - imuData_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; + case 21: { + + trajectoryVersion_ = input.readFloat(); + break; + } + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + + trajectoryId_ = s; + break; + } + case 34: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + imuData_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; } imuData_.add( - input.readMessage(Motion_Sample.parser(), extensionRegistry)); + input.readMessage(Traj.IMUReading.parser(), extensionRegistry)); break; } - case 26: { - if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) { - pdrData_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000004; + case 42: { + if (!((mutable_bitField0_ & 0x00000002) != 0)) { + pdrData_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000002; } pdrData_.add( - input.readMessage(Pdr_Sample.parser(), extensionRegistry)); + input.readMessage(Traj.RelativePosition.parser(), extensionRegistry)); break; } - case 34: { - if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - positionData_ = new java.util.ArrayList(); + case 50: { + if (!((mutable_bitField0_ & 0x00000004) != 0)) { + magnetometerData_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000004; + } + magnetometerData_.add( + input.readMessage(Traj.MagnetometerReading.parser(), extensionRegistry)); + break; + } + case 58: { + if (!((mutable_bitField0_ & 0x00000008) != 0)) { + pressureData_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000008; } - positionData_.add( - input.readMessage(Position_Sample.parser(), extensionRegistry)); + pressureData_.add( + input.readMessage(Traj.BarometerReading.parser(), extensionRegistry)); break; } - case 42: { - if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) { - pressureData_ = new java.util.ArrayList(); + case 66: { + if (!((mutable_bitField0_ & 0x00000010) != 0)) { + lightData_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000010; } - pressureData_.add( - input.readMessage(Pressure_Sample.parser(), extensionRegistry)); + lightData_.add( + input.readMessage(Traj.LightReading.parser(), extensionRegistry)); break; } - case 50: { - if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) { - lightData_ = new java.util.ArrayList(); + case 74: { + if (!((mutable_bitField0_ & 0x00000020) != 0)) { + proximityData_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000020; } - lightData_.add( - input.readMessage(Light_Sample.parser(), extensionRegistry)); + proximityData_.add( + input.readMessage(Traj.ProximityReading.parser(), extensionRegistry)); break; } - case 58: { - if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) { - gnssData_ = new java.util.ArrayList(); + case 82: { + if (!((mutable_bitField0_ & 0x00000040) != 0)) { + gnssData_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000040; } gnssData_.add( - input.readMessage(GNSS_Sample.parser(), extensionRegistry)); + input.readMessage(Traj.GNSSReading.parser(), extensionRegistry)); break; } - case 66: { - if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) { - wifiData_ = new java.util.ArrayList(); + case 90: { + if (!((mutable_bitField0_ & 0x00000080) != 0)) { + wifiFingerprints_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000080; } - wifiData_.add( - input.readMessage(WiFi_Sample.parser(), extensionRegistry)); + wifiFingerprints_.add( + input.readMessage(Traj.Fingerprint.parser(), extensionRegistry)); break; } - case 74: { - if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) { - apsData_ = new java.util.ArrayList(); + case 98: { + if (!((mutable_bitField0_ & 0x00000100) != 0)) { + apsData_ = new java.util.ArrayList(); mutable_bitField0_ |= 0x00000100; } apsData_.add( - input.readMessage(AP_Data.parser(), extensionRegistry)); + input.readMessage(Traj.WiFiAPData.parser(), extensionRegistry)); + break; + } + case 106: { + if (!((mutable_bitField0_ & 0x00000200) != 0)) { + wifiRttData_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000200; + } + wifiRttData_.add( + input.readMessage(Traj.WiFiRTTReading.parser(), extensionRegistry)); + break; + } + case 114: { + if (!((mutable_bitField0_ & 0x00000400) != 0)) { + bleFingerprints_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000400; + } + bleFingerprints_.add( + input.readMessage(Traj.Fingerprint.parser(), extensionRegistry)); + break; + } + case 122: { + if (!((mutable_bitField0_ & 0x00000800) != 0)) { + bleData_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000800; + } + bleData_.add( + input.readMessage(Traj.BleData.parser(), extensionRegistry)); break; } - case 80: { + case 128: { startTimestamp_ = input.readInt64(); break; } - case 90: { - String s = input.readStringRequireUtf8(); + case 138: { + Traj.GNSSPosition.Builder subBuilder = null; + if (initialPosition_ != null) { + subBuilder = initialPosition_.toBuilder(); + } + initialPosition_ = input.readMessage(Traj.GNSSPosition.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(initialPosition_); + initialPosition_ = subBuilder.buildPartial(); + } - dataIdentifier_ = s; break; } - case 98: { - Sensor_Info.Builder subBuilder = null; + case 146: { + if (!((mutable_bitField0_ & 0x00001000) != 0)) { + correctedPositions_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00001000; + } + correctedPositions_.add( + input.readMessage(Traj.GNSSPosition.parser(), extensionRegistry)); + break; + } + case 154: { + Traj.SensorInfo.Builder subBuilder = null; if (accelerometerInfo_ != null) { subBuilder = accelerometerInfo_.toBuilder(); } - accelerometerInfo_ = input.readMessage(Sensor_Info.parser(), extensionRegistry); + accelerometerInfo_ = input.readMessage(Traj.SensorInfo.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(accelerometerInfo_); accelerometerInfo_ = subBuilder.buildPartial(); @@ -473,12 +757,12 @@ private Trajectory( break; } - case 106: { - Sensor_Info.Builder subBuilder = null; + case 162: { + Traj.SensorInfo.Builder subBuilder = null; if (gyroscopeInfo_ != null) { subBuilder = gyroscopeInfo_.toBuilder(); } - gyroscopeInfo_ = input.readMessage(Sensor_Info.parser(), extensionRegistry); + gyroscopeInfo_ = input.readMessage(Traj.SensorInfo.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(gyroscopeInfo_); gyroscopeInfo_ = subBuilder.buildPartial(); @@ -486,12 +770,12 @@ private Trajectory( break; } - case 114: { - Sensor_Info.Builder subBuilder = null; + case 170: { + Traj.SensorInfo.Builder subBuilder = null; if (rotationVectorInfo_ != null) { subBuilder = rotationVectorInfo_.toBuilder(); } - rotationVectorInfo_ = input.readMessage(Sensor_Info.parser(), extensionRegistry); + rotationVectorInfo_ = input.readMessage(Traj.SensorInfo.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(rotationVectorInfo_); rotationVectorInfo_ = subBuilder.buildPartial(); @@ -499,12 +783,12 @@ private Trajectory( break; } - case 122: { - Sensor_Info.Builder subBuilder = null; + case 178: { + Traj.SensorInfo.Builder subBuilder = null; if (magnetometerInfo_ != null) { subBuilder = magnetometerInfo_.toBuilder(); } - magnetometerInfo_ = input.readMessage(Sensor_Info.parser(), extensionRegistry); + magnetometerInfo_ = input.readMessage(Traj.SensorInfo.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(magnetometerInfo_); magnetometerInfo_ = subBuilder.buildPartial(); @@ -512,12 +796,12 @@ private Trajectory( break; } - case 130: { - Sensor_Info.Builder subBuilder = null; + case 186: { + Traj.SensorInfo.Builder subBuilder = null; if (barometerInfo_ != null) { subBuilder = barometerInfo_.toBuilder(); } - barometerInfo_ = input.readMessage(Sensor_Info.parser(), extensionRegistry); + barometerInfo_ = input.readMessage(Traj.SensorInfo.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(barometerInfo_); barometerInfo_ = subBuilder.buildPartial(); @@ -525,12 +809,12 @@ private Trajectory( break; } - case 138: { - Sensor_Info.Builder subBuilder = null; + case 194: { + Traj.SensorInfo.Builder subBuilder = null; if (lightSensorInfo_ != null) { subBuilder = lightSensorInfo_.toBuilder(); } - lightSensorInfo_ = input.readMessage(Sensor_Info.parser(), extensionRegistry); + lightSensorInfo_ = input.readMessage(Traj.SensorInfo.parser(), extensionRegistry); if (subBuilder != null) { subBuilder.mergeFrom(lightSensorInfo_); lightSensorInfo_ = subBuilder.buildPartial(); @@ -538,38 +822,88 @@ private Trajectory( break; } + case 202: { + Traj.SensorInfo.Builder subBuilder = null; + if (proximityInfo_ != null) { + subBuilder = proximityInfo_.toBuilder(); + } + proximityInfo_ = input.readMessage(Traj.SensorInfo.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(proximityInfo_); + proximityInfo_ = subBuilder.buildPartial(); + } + + break; + } + case 210: { + if (!((mutable_bitField0_ & 0x00002000) != 0)) { + testPoints_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00002000; + } + testPoints_.add( + input.readMessage(Traj.GNSSPosition.parser(), extensionRegistry)); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { - if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { + if (((mutable_bitField0_ & 0x00000001) != 0)) { imuData_ = java.util.Collections.unmodifiableList(imuData_); } - if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) { + if (((mutable_bitField0_ & 0x00000002) != 0)) { pdrData_ = java.util.Collections.unmodifiableList(pdrData_); } - if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - positionData_ = java.util.Collections.unmodifiableList(positionData_); + if (((mutable_bitField0_ & 0x00000004) != 0)) { + magnetometerData_ = java.util.Collections.unmodifiableList(magnetometerData_); } - if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) { + if (((mutable_bitField0_ & 0x00000008) != 0)) { pressureData_ = java.util.Collections.unmodifiableList(pressureData_); } - if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) { + if (((mutable_bitField0_ & 0x00000010) != 0)) { lightData_ = java.util.Collections.unmodifiableList(lightData_); } - if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) { + if (((mutable_bitField0_ & 0x00000020) != 0)) { + proximityData_ = java.util.Collections.unmodifiableList(proximityData_); + } + if (((mutable_bitField0_ & 0x00000040) != 0)) { gnssData_ = java.util.Collections.unmodifiableList(gnssData_); } - if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) { - wifiData_ = java.util.Collections.unmodifiableList(wifiData_); + if (((mutable_bitField0_ & 0x00000080) != 0)) { + wifiFingerprints_ = java.util.Collections.unmodifiableList(wifiFingerprints_); } - if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) { + if (((mutable_bitField0_ & 0x00000100) != 0)) { apsData_ = java.util.Collections.unmodifiableList(apsData_); } + if (((mutable_bitField0_ & 0x00000200) != 0)) { + wifiRttData_ = java.util.Collections.unmodifiableList(wifiRttData_); + } + if (((mutable_bitField0_ & 0x00000400) != 0)) { + bleFingerprints_ = java.util.Collections.unmodifiableList(bleFingerprints_); + } + if (((mutable_bitField0_ & 0x00000800) != 0)) { + bleData_ = java.util.Collections.unmodifiableList(bleData_); + } + if (((mutable_bitField0_ & 0x00001000) != 0)) { + correctedPositions_ = java.util.Collections.unmodifiableList(correctedPositions_); + } + if (((mutable_bitField0_ & 0x00002000) != 0)) { + testPoints_ = java.util.Collections.unmodifiableList(testPoints_); + } + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } @@ -578,41 +912,45 @@ private Trajectory( return Traj.internal_static_Trajectory_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return Traj.internal_static_Trajectory_fieldAccessorTable .ensureFieldAccessorsInitialized( - Trajectory.class, Builder.class); + Traj.Trajectory.class, Traj.Trajectory.Builder.class); } - private int bitField0_; public static final int ANDROID_VERSION_FIELD_NUMBER = 1; - private volatile Object androidVersion_; + private volatile java.lang.Object androidVersion_; /** - * optional string android_version = 1; + * string android_version = 1; + * @return The androidVersion. */ - public String getAndroidVersion() { - Object ref = androidVersion_; - if (ref instanceof String) { - return (String) ref; + @java.lang.Override + public java.lang.String getAndroidVersion() { + java.lang.Object ref = androidVersion_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); androidVersion_ = s; return s; } } /** - * optional string android_version = 1; + * string android_version = 1; + * @return The bytes for androidVersion. */ + @java.lang.Override public com.google.protobuf.ByteString getAndroidVersionBytes() { - Object ref = androidVersion_; - if (ref instanceof String) { + java.lang.Object ref = androidVersion_; + if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); androidVersion_ = b; return b; } else { @@ -620,466 +958,858 @@ public String getAndroidVersion() { } } - public static final int IMU_DATA_FIELD_NUMBER = 2; - private java.util.List imuData_; + public static final int TRAJECTORY_VERSION_FIELD_NUMBER = 2; + private float trajectoryVersion_; + /** + *
+     * version 2.0
+     * 
+ * + * float trajectory_version = 2; + * @return The trajectoryVersion. + */ + @java.lang.Override + public float getTrajectoryVersion() { + return trajectoryVersion_; + } + + public static final int TRAJECTORY_ID_FIELD_NUMBER = 3; + private volatile java.lang.Object trajectoryId_; + /** + *
+     * trajectory id/name for identification
+     * 
+ * + * string trajectory_id = 3; + * @return The trajectoryId. + */ + @java.lang.Override + public java.lang.String getTrajectoryId() { + java.lang.Object ref = trajectoryId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trajectoryId_ = s; + return s; + } + } + /** + *
+     * trajectory id/name for identification
+     * 
+ * + * string trajectory_id = 3; + * @return The bytes for trajectoryId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTrajectoryIdBytes() { + java.lang.Object ref = trajectoryId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trajectoryId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int IMU_DATA_FIELD_NUMBER = 4; + private java.util.List imuData_; /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public java.util.List getImuDataList() { + @java.lang.Override + public java.util.List getImuDataList() { return imuData_; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public java.util.List + @java.lang.Override + public java.util.List getImuDataOrBuilderList() { return imuData_; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ + @java.lang.Override public int getImuDataCount() { return imuData_.size(); } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public Motion_Sample getImuData(int index) { + @java.lang.Override + public Traj.IMUReading getImuData(int index) { return imuData_.get(index); } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public Motion_SampleOrBuilder getImuDataOrBuilder( + @java.lang.Override + public Traj.IMUReadingOrBuilder getImuDataOrBuilder( int index) { return imuData_.get(index); } - public static final int PDR_DATA_FIELD_NUMBER = 3; - private java.util.List pdrData_; + public static final int PDR_DATA_FIELD_NUMBER = 5; + private java.util.List pdrData_; /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public java.util.List getPdrDataList() { + @java.lang.Override + public java.util.List getPdrDataList() { return pdrData_; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public java.util.List + @java.lang.Override + public java.util.List getPdrDataOrBuilderList() { return pdrData_; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ + @java.lang.Override public int getPdrDataCount() { return pdrData_.size(); } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public Pdr_Sample getPdrData(int index) { + @java.lang.Override + public Traj.RelativePosition getPdrData(int index) { return pdrData_.get(index); } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public Pdr_SampleOrBuilder getPdrDataOrBuilder( + @java.lang.Override + public Traj.RelativePositionOrBuilder getPdrDataOrBuilder( int index) { return pdrData_.get(index); } - public static final int POSITION_DATA_FIELD_NUMBER = 4; - private java.util.List positionData_; + public static final int MAGNETOMETER_DATA_FIELD_NUMBER = 6; + private java.util.List magnetometerData_; /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public java.util.List getPositionDataList() { - return positionData_; + @java.lang.Override + public java.util.List getMagnetometerDataList() { + return magnetometerData_; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public java.util.List - getPositionDataOrBuilderList() { - return positionData_; + @java.lang.Override + public java.util.List + getMagnetometerDataOrBuilderList() { + return magnetometerData_; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public int getPositionDataCount() { - return positionData_.size(); + @java.lang.Override + public int getMagnetometerDataCount() { + return magnetometerData_.size(); } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Position_Sample getPositionData(int index) { - return positionData_.get(index); + @java.lang.Override + public Traj.MagnetometerReading getMagnetometerData(int index) { + return magnetometerData_.get(index); } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Position_SampleOrBuilder getPositionDataOrBuilder( + @java.lang.Override + public Traj.MagnetometerReadingOrBuilder getMagnetometerDataOrBuilder( int index) { - return positionData_.get(index); + return magnetometerData_.get(index); } - public static final int PRESSURE_DATA_FIELD_NUMBER = 5; - private java.util.List pressureData_; + public static final int PRESSURE_DATA_FIELD_NUMBER = 7; + private java.util.List pressureData_; /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public java.util.List getPressureDataList() { + @java.lang.Override + public java.util.List getPressureDataList() { return pressureData_; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public java.util.List + @java.lang.Override + public java.util.List getPressureDataOrBuilderList() { return pressureData_; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ + @java.lang.Override public int getPressureDataCount() { return pressureData_.size(); } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public Pressure_Sample getPressureData(int index) { + @java.lang.Override + public Traj.BarometerReading getPressureData(int index) { return pressureData_.get(index); } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public Pressure_SampleOrBuilder getPressureDataOrBuilder( + @java.lang.Override + public Traj.BarometerReadingOrBuilder getPressureDataOrBuilder( int index) { return pressureData_.get(index); } - public static final int LIGHT_DATA_FIELD_NUMBER = 6; - private java.util.List lightData_; + public static final int LIGHT_DATA_FIELD_NUMBER = 8; + private java.util.List lightData_; /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public java.util.List getLightDataList() { + @java.lang.Override + public java.util.List getLightDataList() { return lightData_; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public java.util.List + @java.lang.Override + public java.util.List getLightDataOrBuilderList() { return lightData_; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ + @java.lang.Override public int getLightDataCount() { return lightData_.size(); } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public Light_Sample getLightData(int index) { + @java.lang.Override + public Traj.LightReading getLightData(int index) { return lightData_.get(index); } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public Light_SampleOrBuilder getLightDataOrBuilder( + @java.lang.Override + public Traj.LightReadingOrBuilder getLightDataOrBuilder( int index) { return lightData_.get(index); } - public static final int GNSS_DATA_FIELD_NUMBER = 7; - private java.util.List gnssData_; + public static final int PROXIMITY_DATA_FIELD_NUMBER = 9; + private java.util.List proximityData_; + /** + * repeated .ProximityReading proximity_data = 9; + */ + @java.lang.Override + public java.util.List getProximityDataList() { + return proximityData_; + } + /** + * repeated .ProximityReading proximity_data = 9; + */ + @java.lang.Override + public java.util.List + getProximityDataOrBuilderList() { + return proximityData_; + } + /** + * repeated .ProximityReading proximity_data = 9; + */ + @java.lang.Override + public int getProximityDataCount() { + return proximityData_.size(); + } + /** + * repeated .ProximityReading proximity_data = 9; + */ + @java.lang.Override + public Traj.ProximityReading getProximityData(int index) { + return proximityData_.get(index); + } + /** + * repeated .ProximityReading proximity_data = 9; + */ + @java.lang.Override + public Traj.ProximityReadingOrBuilder getProximityDataOrBuilder( + int index) { + return proximityData_.get(index); + } + + public static final int GNSS_DATA_FIELD_NUMBER = 10; + private java.util.List gnssData_; /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .GNSSReading gnss_data = 10; */ - public java.util.List getGnssDataList() { + @java.lang.Override + public java.util.List getGnssDataList() { return gnssData_; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .GNSSReading gnss_data = 10; */ - public java.util.List + @java.lang.Override + public java.util.List getGnssDataOrBuilderList() { return gnssData_; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .GNSSReading gnss_data = 10; */ + @java.lang.Override public int getGnssDataCount() { return gnssData_.size(); } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .GNSSReading gnss_data = 10; */ - public GNSS_Sample getGnssData(int index) { + @java.lang.Override + public Traj.GNSSReading getGnssData(int index) { return gnssData_.get(index); } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .GNSSReading gnss_data = 10; */ - public GNSS_SampleOrBuilder getGnssDataOrBuilder( + @java.lang.Override + public Traj.GNSSReadingOrBuilder getGnssDataOrBuilder( int index) { return gnssData_.get(index); } - public static final int WIFI_DATA_FIELD_NUMBER = 8; - private java.util.List wifiData_; + public static final int WIFI_FINGERPRINTS_FIELD_NUMBER = 11; + private java.util.List wifiFingerprints_; /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public java.util.List getWifiDataList() { - return wifiData_; + @java.lang.Override + public java.util.List getWifiFingerprintsList() { + return wifiFingerprints_; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public java.util.List - getWifiDataOrBuilderList() { - return wifiData_; + @java.lang.Override + public java.util.List + getWifiFingerprintsOrBuilderList() { + return wifiFingerprints_; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public int getWifiDataCount() { - return wifiData_.size(); + @java.lang.Override + public int getWifiFingerprintsCount() { + return wifiFingerprints_.size(); } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public WiFi_Sample getWifiData(int index) { - return wifiData_.get(index); + @java.lang.Override + public Traj.Fingerprint getWifiFingerprints(int index) { + return wifiFingerprints_.get(index); } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public WiFi_SampleOrBuilder getWifiDataOrBuilder( + @java.lang.Override + public Traj.FingerprintOrBuilder getWifiFingerprintsOrBuilder( int index) { - return wifiData_.get(index); + return wifiFingerprints_.get(index); } - public static final int APS_DATA_FIELD_NUMBER = 9; - private java.util.List apsData_; + public static final int APS_DATA_FIELD_NUMBER = 12; + private java.util.List apsData_; /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public java.util.List getApsDataList() { + @java.lang.Override + public java.util.List getApsDataList() { return apsData_; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public java.util.List + @java.lang.Override + public java.util.List getApsDataOrBuilderList() { return apsData_; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ + @java.lang.Override public int getApsDataCount() { return apsData_.size(); } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public AP_Data getApsData(int index) { + @java.lang.Override + public Traj.WiFiAPData getApsData(int index) { return apsData_.get(index); } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public AP_DataOrBuilder getApsDataOrBuilder( + @java.lang.Override + public Traj.WiFiAPDataOrBuilder getApsDataOrBuilder( int index) { return apsData_.get(index); } - public static final int START_TIMESTAMP_FIELD_NUMBER = 10; - private long startTimestamp_; + public static final int WIFI_RTT_DATA_FIELD_NUMBER = 13; + private java.util.List wifiRttData_; /** - *
-     * UNIX timestamp (in milliseconds) recorded from the start of this
-     * trajectory data collection event. All future
-     * timestamps in sub classes are to be RELATIVE timestamps
-     * (in milliseconds) to this start time.
-     * E.g.
-     * start_timestamp = 1674819807315 (UTC 27 Jan 2023 in the morning)
-     * relative_timestamp = 3000 (3s)
-     * 
- * - * optional int64 start_timestamp = 10; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public long getStartTimestamp() { - return startTimestamp_; + @java.lang.Override + public java.util.List getWifiRttDataList() { + return wifiRttData_; } - - public static final int DATA_IDENTIFIER_FIELD_NUMBER = 11; - private volatile Object dataIdentifier_; /** - * optional string data_identifier = 11; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public String getDataIdentifier() { - Object ref = dataIdentifier_; - if (ref instanceof String) { - return (String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); - dataIdentifier_ = s; - return s; - } + @java.lang.Override + public java.util.List + getWifiRttDataOrBuilderList() { + return wifiRttData_; } /** - * optional string data_identifier = 11; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public com.google.protobuf.ByteString - getDataIdentifierBytes() { - Object ref = dataIdentifier_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); - dataIdentifier_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + @java.lang.Override + public int getWifiRttDataCount() { + return wifiRttData_.size(); + } + /** + * repeated .WiFiRTTReading wifi_rtt_data = 13; + */ + @java.lang.Override + public Traj.WiFiRTTReading getWifiRttData(int index) { + return wifiRttData_.get(index); + } + /** + * repeated .WiFiRTTReading wifi_rtt_data = 13; + */ + @java.lang.Override + public Traj.WiFiRTTReadingOrBuilder getWifiRttDataOrBuilder( + int index) { + return wifiRttData_.get(index); + } + + public static final int BLE_FINGERPRINTS_FIELD_NUMBER = 14; + private java.util.List bleFingerprints_; + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + @java.lang.Override + public java.util.List getBleFingerprintsList() { + return bleFingerprints_; + } + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + @java.lang.Override + public java.util.List + getBleFingerprintsOrBuilderList() { + return bleFingerprints_; + } + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + @java.lang.Override + public int getBleFingerprintsCount() { + return bleFingerprints_.size(); + } + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + @java.lang.Override + public Traj.Fingerprint getBleFingerprints(int index) { + return bleFingerprints_.get(index); + } + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + @java.lang.Override + public Traj.FingerprintOrBuilder getBleFingerprintsOrBuilder( + int index) { + return bleFingerprints_.get(index); + } + + public static final int BLE_DATA_FIELD_NUMBER = 15; + private java.util.List bleData_; + /** + * repeated .BleData ble_data = 15; + */ + @java.lang.Override + public java.util.List getBleDataList() { + return bleData_; + } + /** + * repeated .BleData ble_data = 15; + */ + @java.lang.Override + public java.util.List + getBleDataOrBuilderList() { + return bleData_; + } + /** + * repeated .BleData ble_data = 15; + */ + @java.lang.Override + public int getBleDataCount() { + return bleData_.size(); + } + /** + * repeated .BleData ble_data = 15; + */ + @java.lang.Override + public Traj.BleData getBleData(int index) { + return bleData_.get(index); + } + /** + * repeated .BleData ble_data = 15; + */ + @java.lang.Override + public Traj.BleDataOrBuilder getBleDataOrBuilder( + int index) { + return bleData_.get(index); + } + + public static final int START_TIMESTAMP_FIELD_NUMBER = 16; + private long startTimestamp_; + /** + *
+     * UNIX timestamp (in milliseconds) recorded from the start of this
+     * trajectory data collection event. All future
+     * timestamps in sub classes are to be RELATIVE timestamps
+     * (in milliseconds) to this start time.
+     * E.g.
+     * start_timestamp = 1674819807315 (UTC 27 Jan 2023 in the morning)
+     * relative_timestamp = 3000 (3s)
+     * 
+ * + * int64 start_timestamp = 16; + * @return The startTimestamp. + */ + @java.lang.Override + public long getStartTimestamp() { + return startTimestamp_; + } + + public static final int INITIAL_POSITION_FIELD_NUMBER = 17; + private Traj.GNSSPosition initialPosition_; + /** + * .GNSSPosition initial_position = 17; + * @return Whether the initialPosition field is set. + */ + @java.lang.Override + public boolean hasInitialPosition() { + return initialPosition_ != null; + } + /** + * .GNSSPosition initial_position = 17; + * @return The initialPosition. + */ + @java.lang.Override + public Traj.GNSSPosition getInitialPosition() { + return initialPosition_ == null ? Traj.GNSSPosition.getDefaultInstance() : initialPosition_; + } + /** + * .GNSSPosition initial_position = 17; + */ + @java.lang.Override + public Traj.GNSSPositionOrBuilder getInitialPositionOrBuilder() { + return getInitialPosition(); + } + + public static final int CORRECTED_POSITIONS_FIELD_NUMBER = 18; + private java.util.List correctedPositions_; + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + @java.lang.Override + public java.util.List getCorrectedPositionsList() { + return correctedPositions_; + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + @java.lang.Override + public java.util.List + getCorrectedPositionsOrBuilderList() { + return correctedPositions_; + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + @java.lang.Override + public int getCorrectedPositionsCount() { + return correctedPositions_.size(); + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + @java.lang.Override + public Traj.GNSSPosition getCorrectedPositions(int index) { + return correctedPositions_.get(index); + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + @java.lang.Override + public Traj.GNSSPositionOrBuilder getCorrectedPositionsOrBuilder( + int index) { + return correctedPositions_.get(index); } - public static final int ACCELEROMETER_INFO_FIELD_NUMBER = 12; - private Sensor_Info accelerometerInfo_; + public static final int ACCELEROMETER_INFO_FIELD_NUMBER = 19; + private Traj.SensorInfo accelerometerInfo_; /** - * optional .Sensor_Info accelerometer_info = 12; + * .SensorInfo accelerometer_info = 19; + * @return Whether the accelerometerInfo field is set. */ + @java.lang.Override public boolean hasAccelerometerInfo() { return accelerometerInfo_ != null; } /** - * optional .Sensor_Info accelerometer_info = 12; + * .SensorInfo accelerometer_info = 19; + * @return The accelerometerInfo. */ - public Sensor_Info getAccelerometerInfo() { - return accelerometerInfo_ == null ? Sensor_Info.getDefaultInstance() : accelerometerInfo_; + @java.lang.Override + public Traj.SensorInfo getAccelerometerInfo() { + return accelerometerInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : accelerometerInfo_; } /** - * optional .Sensor_Info accelerometer_info = 12; + * .SensorInfo accelerometer_info = 19; */ - public Sensor_InfoOrBuilder getAccelerometerInfoOrBuilder() { + @java.lang.Override + public Traj.SensorInfoOrBuilder getAccelerometerInfoOrBuilder() { return getAccelerometerInfo(); } - public static final int GYROSCOPE_INFO_FIELD_NUMBER = 13; - private Sensor_Info gyroscopeInfo_; + public static final int GYROSCOPE_INFO_FIELD_NUMBER = 20; + private Traj.SensorInfo gyroscopeInfo_; /** - * optional .Sensor_Info gyroscope_info = 13; + * .SensorInfo gyroscope_info = 20; + * @return Whether the gyroscopeInfo field is set. */ + @java.lang.Override public boolean hasGyroscopeInfo() { return gyroscopeInfo_ != null; } /** - * optional .Sensor_Info gyroscope_info = 13; + * .SensorInfo gyroscope_info = 20; + * @return The gyroscopeInfo. */ - public Sensor_Info getGyroscopeInfo() { - return gyroscopeInfo_ == null ? Sensor_Info.getDefaultInstance() : gyroscopeInfo_; + @java.lang.Override + public Traj.SensorInfo getGyroscopeInfo() { + return gyroscopeInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : gyroscopeInfo_; } /** - * optional .Sensor_Info gyroscope_info = 13; + * .SensorInfo gyroscope_info = 20; */ - public Sensor_InfoOrBuilder getGyroscopeInfoOrBuilder() { + @java.lang.Override + public Traj.SensorInfoOrBuilder getGyroscopeInfoOrBuilder() { return getGyroscopeInfo(); } - public static final int ROTATION_VECTOR_INFO_FIELD_NUMBER = 14; - private Sensor_Info rotationVectorInfo_; + public static final int ROTATION_VECTOR_INFO_FIELD_NUMBER = 21; + private Traj.SensorInfo rotationVectorInfo_; /** - * optional .Sensor_Info rotation_vector_info = 14; + * .SensorInfo rotation_vector_info = 21; + * @return Whether the rotationVectorInfo field is set. */ + @java.lang.Override public boolean hasRotationVectorInfo() { return rotationVectorInfo_ != null; } /** - * optional .Sensor_Info rotation_vector_info = 14; + * .SensorInfo rotation_vector_info = 21; + * @return The rotationVectorInfo. */ - public Sensor_Info getRotationVectorInfo() { - return rotationVectorInfo_ == null ? Sensor_Info.getDefaultInstance() : rotationVectorInfo_; + @java.lang.Override + public Traj.SensorInfo getRotationVectorInfo() { + return rotationVectorInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : rotationVectorInfo_; } /** - * optional .Sensor_Info rotation_vector_info = 14; + * .SensorInfo rotation_vector_info = 21; */ - public Sensor_InfoOrBuilder getRotationVectorInfoOrBuilder() { + @java.lang.Override + public Traj.SensorInfoOrBuilder getRotationVectorInfoOrBuilder() { return getRotationVectorInfo(); } - public static final int MAGNETOMETER_INFO_FIELD_NUMBER = 15; - private Sensor_Info magnetometerInfo_; + public static final int MAGNETOMETER_INFO_FIELD_NUMBER = 22; + private Traj.SensorInfo magnetometerInfo_; /** - * optional .Sensor_Info magnetometer_info = 15; + * .SensorInfo magnetometer_info = 22; + * @return Whether the magnetometerInfo field is set. */ + @java.lang.Override public boolean hasMagnetometerInfo() { return magnetometerInfo_ != null; } /** - * optional .Sensor_Info magnetometer_info = 15; + * .SensorInfo magnetometer_info = 22; + * @return The magnetometerInfo. */ - public Sensor_Info getMagnetometerInfo() { - return magnetometerInfo_ == null ? Sensor_Info.getDefaultInstance() : magnetometerInfo_; + @java.lang.Override + public Traj.SensorInfo getMagnetometerInfo() { + return magnetometerInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : magnetometerInfo_; } /** - * optional .Sensor_Info magnetometer_info = 15; + * .SensorInfo magnetometer_info = 22; */ - public Sensor_InfoOrBuilder getMagnetometerInfoOrBuilder() { + @java.lang.Override + public Traj.SensorInfoOrBuilder getMagnetometerInfoOrBuilder() { return getMagnetometerInfo(); } - public static final int BAROMETER_INFO_FIELD_NUMBER = 16; - private Sensor_Info barometerInfo_; + public static final int BAROMETER_INFO_FIELD_NUMBER = 23; + private Traj.SensorInfo barometerInfo_; /** - * optional .Sensor_Info barometer_info = 16; + * .SensorInfo barometer_info = 23; + * @return Whether the barometerInfo field is set. */ + @java.lang.Override public boolean hasBarometerInfo() { return barometerInfo_ != null; } /** - * optional .Sensor_Info barometer_info = 16; + * .SensorInfo barometer_info = 23; + * @return The barometerInfo. */ - public Sensor_Info getBarometerInfo() { - return barometerInfo_ == null ? Sensor_Info.getDefaultInstance() : barometerInfo_; + @java.lang.Override + public Traj.SensorInfo getBarometerInfo() { + return barometerInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : barometerInfo_; } /** - * optional .Sensor_Info barometer_info = 16; + * .SensorInfo barometer_info = 23; */ - public Sensor_InfoOrBuilder getBarometerInfoOrBuilder() { + @java.lang.Override + public Traj.SensorInfoOrBuilder getBarometerInfoOrBuilder() { return getBarometerInfo(); } - public static final int LIGHT_SENSOR_INFO_FIELD_NUMBER = 17; - private Sensor_Info lightSensorInfo_; + public static final int LIGHT_SENSOR_INFO_FIELD_NUMBER = 24; + private Traj.SensorInfo lightSensorInfo_; /** - * optional .Sensor_Info light_sensor_info = 17; + * .SensorInfo light_sensor_info = 24; + * @return Whether the lightSensorInfo field is set. */ + @java.lang.Override public boolean hasLightSensorInfo() { return lightSensorInfo_ != null; } /** - * optional .Sensor_Info light_sensor_info = 17; + * .SensorInfo light_sensor_info = 24; + * @return The lightSensorInfo. */ - public Sensor_Info getLightSensorInfo() { - return lightSensorInfo_ == null ? Sensor_Info.getDefaultInstance() : lightSensorInfo_; + @java.lang.Override + public Traj.SensorInfo getLightSensorInfo() { + return lightSensorInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : lightSensorInfo_; } /** - * optional .Sensor_Info light_sensor_info = 17; + * .SensorInfo light_sensor_info = 24; */ - public Sensor_InfoOrBuilder getLightSensorInfoOrBuilder() { + @java.lang.Override + public Traj.SensorInfoOrBuilder getLightSensorInfoOrBuilder() { return getLightSensorInfo(); } + public static final int PROXIMITY_INFO_FIELD_NUMBER = 25; + private Traj.SensorInfo proximityInfo_; + /** + * .SensorInfo proximity_info = 25; + * @return Whether the proximityInfo field is set. + */ + @java.lang.Override + public boolean hasProximityInfo() { + return proximityInfo_ != null; + } + /** + * .SensorInfo proximity_info = 25; + * @return The proximityInfo. + */ + @java.lang.Override + public Traj.SensorInfo getProximityInfo() { + return proximityInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : proximityInfo_; + } + /** + * .SensorInfo proximity_info = 25; + */ + @java.lang.Override + public Traj.SensorInfoOrBuilder getProximityInfoOrBuilder() { + return getProximityInfo(); + } + + public static final int TEST_POINTS_FIELD_NUMBER = 26; + private java.util.List testPoints_; + /** + * repeated .GNSSPosition test_points = 26; + */ + @java.lang.Override + public java.util.List getTestPointsList() { + return testPoints_; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + @java.lang.Override + public java.util.List + getTestPointsOrBuilderList() { + return testPoints_; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + @java.lang.Override + public int getTestPointsCount() { + return testPoints_.size(); + } + /** + * repeated .GNSSPosition test_points = 26; + */ + @java.lang.Override + public Traj.GNSSPosition getTestPoints(int index) { + return testPoints_.get(index); + } + /** + * repeated .GNSSPosition test_points = 26; + */ + @java.lang.Override + public Traj.GNSSPositionOrBuilder getTestPointsOrBuilder( + int index) { + return testPoints_.get(index); + } + private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -1089,212 +1819,308 @@ public final boolean isInitialized() { return true; } + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getAndroidVersionBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(androidVersion_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, androidVersion_); } + if (java.lang.Float.floatToRawIntBits(trajectoryVersion_) != 0) { + output.writeFloat(2, trajectoryVersion_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(trajectoryId_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, trajectoryId_); + } for (int i = 0; i < imuData_.size(); i++) { - output.writeMessage(2, imuData_.get(i)); + output.writeMessage(4, imuData_.get(i)); } for (int i = 0; i < pdrData_.size(); i++) { - output.writeMessage(3, pdrData_.get(i)); + output.writeMessage(5, pdrData_.get(i)); } - for (int i = 0; i < positionData_.size(); i++) { - output.writeMessage(4, positionData_.get(i)); + for (int i = 0; i < magnetometerData_.size(); i++) { + output.writeMessage(6, magnetometerData_.get(i)); } for (int i = 0; i < pressureData_.size(); i++) { - output.writeMessage(5, pressureData_.get(i)); + output.writeMessage(7, pressureData_.get(i)); } for (int i = 0; i < lightData_.size(); i++) { - output.writeMessage(6, lightData_.get(i)); + output.writeMessage(8, lightData_.get(i)); + } + for (int i = 0; i < proximityData_.size(); i++) { + output.writeMessage(9, proximityData_.get(i)); } for (int i = 0; i < gnssData_.size(); i++) { - output.writeMessage(7, gnssData_.get(i)); + output.writeMessage(10, gnssData_.get(i)); } - for (int i = 0; i < wifiData_.size(); i++) { - output.writeMessage(8, wifiData_.get(i)); + for (int i = 0; i < wifiFingerprints_.size(); i++) { + output.writeMessage(11, wifiFingerprints_.get(i)); } for (int i = 0; i < apsData_.size(); i++) { - output.writeMessage(9, apsData_.get(i)); + output.writeMessage(12, apsData_.get(i)); + } + for (int i = 0; i < wifiRttData_.size(); i++) { + output.writeMessage(13, wifiRttData_.get(i)); + } + for (int i = 0; i < bleFingerprints_.size(); i++) { + output.writeMessage(14, bleFingerprints_.get(i)); + } + for (int i = 0; i < bleData_.size(); i++) { + output.writeMessage(15, bleData_.get(i)); } if (startTimestamp_ != 0L) { - output.writeInt64(10, startTimestamp_); + output.writeInt64(16, startTimestamp_); } - if (!getDataIdentifierBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 11, dataIdentifier_); + if (initialPosition_ != null) { + output.writeMessage(17, getInitialPosition()); + } + for (int i = 0; i < correctedPositions_.size(); i++) { + output.writeMessage(18, correctedPositions_.get(i)); } if (accelerometerInfo_ != null) { - output.writeMessage(12, getAccelerometerInfo()); + output.writeMessage(19, getAccelerometerInfo()); } if (gyroscopeInfo_ != null) { - output.writeMessage(13, getGyroscopeInfo()); + output.writeMessage(20, getGyroscopeInfo()); } if (rotationVectorInfo_ != null) { - output.writeMessage(14, getRotationVectorInfo()); + output.writeMessage(21, getRotationVectorInfo()); } if (magnetometerInfo_ != null) { - output.writeMessage(15, getMagnetometerInfo()); + output.writeMessage(22, getMagnetometerInfo()); } if (barometerInfo_ != null) { - output.writeMessage(16, getBarometerInfo()); + output.writeMessage(23, getBarometerInfo()); } if (lightSensorInfo_ != null) { - output.writeMessage(17, getLightSensorInfo()); + output.writeMessage(24, getLightSensorInfo()); + } + if (proximityInfo_ != null) { + output.writeMessage(25, getProximityInfo()); } + for (int i = 0; i < testPoints_.size(); i++) { + output.writeMessage(26, testPoints_.get(i)); + } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; - if (!getAndroidVersionBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(androidVersion_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, androidVersion_); } + if (java.lang.Float.floatToRawIntBits(trajectoryVersion_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(2, trajectoryVersion_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(trajectoryId_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, trajectoryId_); + } for (int i = 0; i < imuData_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, imuData_.get(i)); + .computeMessageSize(4, imuData_.get(i)); } for (int i = 0; i < pdrData_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, pdrData_.get(i)); + .computeMessageSize(5, pdrData_.get(i)); } - for (int i = 0; i < positionData_.size(); i++) { + for (int i = 0; i < magnetometerData_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, positionData_.get(i)); + .computeMessageSize(6, magnetometerData_.get(i)); } for (int i = 0; i < pressureData_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, pressureData_.get(i)); + .computeMessageSize(7, pressureData_.get(i)); } for (int i = 0; i < lightData_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, lightData_.get(i)); + .computeMessageSize(8, lightData_.get(i)); + } + for (int i = 0; i < proximityData_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, proximityData_.get(i)); } for (int i = 0; i < gnssData_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(7, gnssData_.get(i)); + .computeMessageSize(10, gnssData_.get(i)); } - for (int i = 0; i < wifiData_.size(); i++) { + for (int i = 0; i < wifiFingerprints_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(8, wifiData_.get(i)); + .computeMessageSize(11, wifiFingerprints_.get(i)); } for (int i = 0; i < apsData_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(9, apsData_.get(i)); + .computeMessageSize(12, apsData_.get(i)); + } + for (int i = 0; i < wifiRttData_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(13, wifiRttData_.get(i)); + } + for (int i = 0; i < bleFingerprints_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(14, bleFingerprints_.get(i)); + } + for (int i = 0; i < bleData_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(15, bleData_.get(i)); } if (startTimestamp_ != 0L) { size += com.google.protobuf.CodedOutputStream - .computeInt64Size(10, startTimestamp_); + .computeInt64Size(16, startTimestamp_); } - if (!getDataIdentifierBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, dataIdentifier_); + if (initialPosition_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(17, getInitialPosition()); + } + for (int i = 0; i < correctedPositions_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(18, correctedPositions_.get(i)); } if (accelerometerInfo_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(12, getAccelerometerInfo()); + .computeMessageSize(19, getAccelerometerInfo()); } if (gyroscopeInfo_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(13, getGyroscopeInfo()); + .computeMessageSize(20, getGyroscopeInfo()); } if (rotationVectorInfo_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(14, getRotationVectorInfo()); + .computeMessageSize(21, getRotationVectorInfo()); } if (magnetometerInfo_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(15, getMagnetometerInfo()); + .computeMessageSize(22, getMagnetometerInfo()); } if (barometerInfo_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(16, getBarometerInfo()); + .computeMessageSize(23, getBarometerInfo()); } if (lightSensorInfo_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(17, getLightSensorInfo()); + .computeMessageSize(24, getLightSensorInfo()); + } + if (proximityInfo_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(25, getProximityInfo()); + } + for (int i = 0; i < testPoints_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(26, testPoints_.get(i)); } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof Trajectory)) { + if (!(obj instanceof Traj.Trajectory)) { return super.equals(obj); } - Trajectory other = (Trajectory) obj; - - boolean result = true; - result = result && getAndroidVersion() - .equals(other.getAndroidVersion()); - result = result && getImuDataList() - .equals(other.getImuDataList()); - result = result && getPdrDataList() - .equals(other.getPdrDataList()); - result = result && getPositionDataList() - .equals(other.getPositionDataList()); - result = result && getPressureDataList() - .equals(other.getPressureDataList()); - result = result && getLightDataList() - .equals(other.getLightDataList()); - result = result && getGnssDataList() - .equals(other.getGnssDataList()); - result = result && getWifiDataList() - .equals(other.getWifiDataList()); - result = result && getApsDataList() - .equals(other.getApsDataList()); - result = result && (getStartTimestamp() - == other.getStartTimestamp()); - result = result && getDataIdentifier() - .equals(other.getDataIdentifier()); - result = result && (hasAccelerometerInfo() == other.hasAccelerometerInfo()); + Traj.Trajectory other = (Traj.Trajectory) obj; + + if (!getAndroidVersion() + .equals(other.getAndroidVersion())) return false; + if (java.lang.Float.floatToIntBits(getTrajectoryVersion()) + != java.lang.Float.floatToIntBits( + other.getTrajectoryVersion())) return false; + if (!getTrajectoryId() + .equals(other.getTrajectoryId())) return false; + if (!getImuDataList() + .equals(other.getImuDataList())) return false; + if (!getPdrDataList() + .equals(other.getPdrDataList())) return false; + if (!getMagnetometerDataList() + .equals(other.getMagnetometerDataList())) return false; + if (!getPressureDataList() + .equals(other.getPressureDataList())) return false; + if (!getLightDataList() + .equals(other.getLightDataList())) return false; + if (!getProximityDataList() + .equals(other.getProximityDataList())) return false; + if (!getGnssDataList() + .equals(other.getGnssDataList())) return false; + if (!getWifiFingerprintsList() + .equals(other.getWifiFingerprintsList())) return false; + if (!getApsDataList() + .equals(other.getApsDataList())) return false; + if (!getWifiRttDataList() + .equals(other.getWifiRttDataList())) return false; + if (!getBleFingerprintsList() + .equals(other.getBleFingerprintsList())) return false; + if (!getBleDataList() + .equals(other.getBleDataList())) return false; + if (getStartTimestamp() + != other.getStartTimestamp()) return false; + if (hasInitialPosition() != other.hasInitialPosition()) return false; + if (hasInitialPosition()) { + if (!getInitialPosition() + .equals(other.getInitialPosition())) return false; + } + if (!getCorrectedPositionsList() + .equals(other.getCorrectedPositionsList())) return false; + if (hasAccelerometerInfo() != other.hasAccelerometerInfo()) return false; if (hasAccelerometerInfo()) { - result = result && getAccelerometerInfo() - .equals(other.getAccelerometerInfo()); + if (!getAccelerometerInfo() + .equals(other.getAccelerometerInfo())) return false; } - result = result && (hasGyroscopeInfo() == other.hasGyroscopeInfo()); + if (hasGyroscopeInfo() != other.hasGyroscopeInfo()) return false; if (hasGyroscopeInfo()) { - result = result && getGyroscopeInfo() - .equals(other.getGyroscopeInfo()); + if (!getGyroscopeInfo() + .equals(other.getGyroscopeInfo())) return false; } - result = result && (hasRotationVectorInfo() == other.hasRotationVectorInfo()); + if (hasRotationVectorInfo() != other.hasRotationVectorInfo()) return false; if (hasRotationVectorInfo()) { - result = result && getRotationVectorInfo() - .equals(other.getRotationVectorInfo()); + if (!getRotationVectorInfo() + .equals(other.getRotationVectorInfo())) return false; } - result = result && (hasMagnetometerInfo() == other.hasMagnetometerInfo()); + if (hasMagnetometerInfo() != other.hasMagnetometerInfo()) return false; if (hasMagnetometerInfo()) { - result = result && getMagnetometerInfo() - .equals(other.getMagnetometerInfo()); + if (!getMagnetometerInfo() + .equals(other.getMagnetometerInfo())) return false; } - result = result && (hasBarometerInfo() == other.hasBarometerInfo()); + if (hasBarometerInfo() != other.hasBarometerInfo()) return false; if (hasBarometerInfo()) { - result = result && getBarometerInfo() - .equals(other.getBarometerInfo()); + if (!getBarometerInfo() + .equals(other.getBarometerInfo())) return false; } - result = result && (hasLightSensorInfo() == other.hasLightSensorInfo()); + if (hasLightSensorInfo() != other.hasLightSensorInfo()) return false; if (hasLightSensorInfo()) { - result = result && getLightSensorInfo() - .equals(other.getLightSensorInfo()); + if (!getLightSensorInfo() + .equals(other.getLightSensorInfo())) return false; + } + if (hasProximityInfo() != other.hasProximityInfo()) return false; + if (hasProximityInfo()) { + if (!getProximityInfo() + .equals(other.getProximityInfo())) return false; } - return result; + if (!getTestPointsList() + .equals(other.getTestPointsList())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); + hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + ANDROID_VERSION_FIELD_NUMBER; hash = (53 * hash) + getAndroidVersion().hashCode(); + hash = (37 * hash) + TRAJECTORY_VERSION_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getTrajectoryVersion()); + hash = (37 * hash) + TRAJECTORY_ID_FIELD_NUMBER; + hash = (53 * hash) + getTrajectoryId().hashCode(); if (getImuDataCount() > 0) { hash = (37 * hash) + IMU_DATA_FIELD_NUMBER; hash = (53 * hash) + getImuDataList().hashCode(); @@ -1303,9 +2129,9 @@ public int hashCode() { hash = (37 * hash) + PDR_DATA_FIELD_NUMBER; hash = (53 * hash) + getPdrDataList().hashCode(); } - if (getPositionDataCount() > 0) { - hash = (37 * hash) + POSITION_DATA_FIELD_NUMBER; - hash = (53 * hash) + getPositionDataList().hashCode(); + if (getMagnetometerDataCount() > 0) { + hash = (37 * hash) + MAGNETOMETER_DATA_FIELD_NUMBER; + hash = (53 * hash) + getMagnetometerDataList().hashCode(); } if (getPressureDataCount() > 0) { hash = (37 * hash) + PRESSURE_DATA_FIELD_NUMBER; @@ -1315,23 +2141,45 @@ public int hashCode() { hash = (37 * hash) + LIGHT_DATA_FIELD_NUMBER; hash = (53 * hash) + getLightDataList().hashCode(); } + if (getProximityDataCount() > 0) { + hash = (37 * hash) + PROXIMITY_DATA_FIELD_NUMBER; + hash = (53 * hash) + getProximityDataList().hashCode(); + } if (getGnssDataCount() > 0) { hash = (37 * hash) + GNSS_DATA_FIELD_NUMBER; hash = (53 * hash) + getGnssDataList().hashCode(); } - if (getWifiDataCount() > 0) { - hash = (37 * hash) + WIFI_DATA_FIELD_NUMBER; - hash = (53 * hash) + getWifiDataList().hashCode(); + if (getWifiFingerprintsCount() > 0) { + hash = (37 * hash) + WIFI_FINGERPRINTS_FIELD_NUMBER; + hash = (53 * hash) + getWifiFingerprintsList().hashCode(); } if (getApsDataCount() > 0) { hash = (37 * hash) + APS_DATA_FIELD_NUMBER; hash = (53 * hash) + getApsDataList().hashCode(); } + if (getWifiRttDataCount() > 0) { + hash = (37 * hash) + WIFI_RTT_DATA_FIELD_NUMBER; + hash = (53 * hash) + getWifiRttDataList().hashCode(); + } + if (getBleFingerprintsCount() > 0) { + hash = (37 * hash) + BLE_FINGERPRINTS_FIELD_NUMBER; + hash = (53 * hash) + getBleFingerprintsList().hashCode(); + } + if (getBleDataCount() > 0) { + hash = (37 * hash) + BLE_DATA_FIELD_NUMBER; + hash = (53 * hash) + getBleDataList().hashCode(); + } hash = (37 * hash) + START_TIMESTAMP_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getStartTimestamp()); - hash = (37 * hash) + DATA_IDENTIFIER_FIELD_NUMBER; - hash = (53 * hash) + getDataIdentifier().hashCode(); + if (hasInitialPosition()) { + hash = (37 * hash) + INITIAL_POSITION_FIELD_NUMBER; + hash = (53 * hash) + getInitialPosition().hashCode(); + } + if (getCorrectedPositionsCount() > 0) { + hash = (37 * hash) + CORRECTED_POSITIONS_FIELD_NUMBER; + hash = (53 * hash) + getCorrectedPositionsList().hashCode(); + } if (hasAccelerometerInfo()) { hash = (37 * hash) + ACCELEROMETER_INFO_FIELD_NUMBER; hash = (53 * hash) + getAccelerometerInfo().hashCode(); @@ -1356,63 +2204,82 @@ public int hashCode() { hash = (37 * hash) + LIGHT_SENSOR_INFO_FIELD_NUMBER; hash = (53 * hash) + getLightSensorInfo().hashCode(); } + if (hasProximityInfo()) { + hash = (37 * hash) + PROXIMITY_INFO_FIELD_NUMBER; + hash = (53 * hash) + getProximityInfo().hashCode(); + } + if (getTestPointsCount() > 0) { + hash = (37 * hash) + TEST_POINTS_FIELD_NUMBER; + hash = (53 * hash) + getTestPointsList().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static Trajectory parseFrom( + public static Traj.Trajectory parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.Trajectory parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.Trajectory parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Trajectory parseFrom( + public static Traj.Trajectory parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Trajectory parseFrom(byte[] data) + public static Traj.Trajectory parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Trajectory parseFrom( + public static Traj.Trajectory parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Trajectory parseFrom(java.io.InputStream input) + public static Traj.Trajectory parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Trajectory parseFrom( + public static Traj.Trajectory parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static Trajectory parseDelimitedFrom(java.io.InputStream input) + public static Traj.Trajectory parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static Trajectory parseDelimitedFrom( + public static Traj.Trajectory parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static Trajectory parseFrom( + public static Traj.Trajectory parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Trajectory parseFrom( + public static Traj.Trajectory parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -1420,19 +2287,21 @@ public static Trajectory parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(Trajectory prototype) { + public static Builder newBuilder(Traj.Trajectory prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); @@ -1444,17 +2313,18 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:Trajectory) - TrajectoryOrBuilder { + Traj.TrajectoryOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return Traj.internal_static_Trajectory_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return Traj.internal_static_Trajectory_fieldAccessorTable .ensureFieldAccessorsInitialized( - Trajectory.class, Builder.class); + Traj.Trajectory.class, Traj.Trajectory.Builder.class); } // Construct using Traj.Trajectory.newBuilder() @@ -1472,59 +2342,76 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { getImuDataFieldBuilder(); getPdrDataFieldBuilder(); - getPositionDataFieldBuilder(); + getMagnetometerDataFieldBuilder(); getPressureDataFieldBuilder(); getLightDataFieldBuilder(); + getProximityDataFieldBuilder(); getGnssDataFieldBuilder(); - getWifiDataFieldBuilder(); + getWifiFingerprintsFieldBuilder(); getApsDataFieldBuilder(); + getWifiRttDataFieldBuilder(); + getBleFingerprintsFieldBuilder(); + getBleDataFieldBuilder(); + getCorrectedPositionsFieldBuilder(); + getTestPointsFieldBuilder(); } } + @java.lang.Override public Builder clear() { super.clear(); androidVersion_ = ""; + trajectoryVersion_ = 0F; + + trajectoryId_ = ""; + if (imuDataBuilder_ == null) { imuData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); } else { imuDataBuilder_.clear(); } if (pdrDataBuilder_ == null) { pdrData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); } else { pdrDataBuilder_.clear(); } - if (positionDataBuilder_ == null) { - positionData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); + if (magnetometerDataBuilder_ == null) { + magnetometerData_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); } else { - positionDataBuilder_.clear(); + magnetometerDataBuilder_.clear(); } if (pressureDataBuilder_ == null) { pressureData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000008); } else { pressureDataBuilder_.clear(); } if (lightDataBuilder_ == null) { lightData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000010); } else { lightDataBuilder_.clear(); } + if (proximityDataBuilder_ == null) { + proximityData_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); + } else { + proximityDataBuilder_.clear(); + } if (gnssDataBuilder_ == null) { gnssData_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000040); } else { gnssDataBuilder_.clear(); } - if (wifiDataBuilder_ == null) { - wifiData_ = java.util.Collections.emptyList(); + if (wifiFingerprintsBuilder_ == null) { + wifiFingerprints_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000080); } else { - wifiDataBuilder_.clear(); + wifiFingerprintsBuilder_.clear(); } if (apsDataBuilder_ == null) { apsData_ = java.util.Collections.emptyList(); @@ -1532,10 +2419,38 @@ public Builder clear() { } else { apsDataBuilder_.clear(); } + if (wifiRttDataBuilder_ == null) { + wifiRttData_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000200); + } else { + wifiRttDataBuilder_.clear(); + } + if (bleFingerprintsBuilder_ == null) { + bleFingerprints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000400); + } else { + bleFingerprintsBuilder_.clear(); + } + if (bleDataBuilder_ == null) { + bleData_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000800); + } else { + bleDataBuilder_.clear(); + } startTimestamp_ = 0L; - dataIdentifier_ = ""; - + if (initialPositionBuilder_ == null) { + initialPosition_ = null; + } else { + initialPosition_ = null; + initialPositionBuilder_ = null; + } + if (correctedPositionsBuilder_ == null) { + correctedPositions_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00001000); + } else { + correctedPositionsBuilder_.clear(); + } if (accelerometerInfoBuilder_ == null) { accelerometerInfo_ = null; } else { @@ -1572,78 +2487,104 @@ public Builder clear() { lightSensorInfo_ = null; lightSensorInfoBuilder_ = null; } + if (proximityInfoBuilder_ == null) { + proximityInfo_ = null; + } else { + proximityInfo_ = null; + proximityInfoBuilder_ = null; + } + if (testPointsBuilder_ == null) { + testPoints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00002000); + } else { + testPointsBuilder_.clear(); + } return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return Traj.internal_static_Trajectory_descriptor; } - public Trajectory getDefaultInstanceForType() { - return Trajectory.getDefaultInstance(); + @java.lang.Override + public Traj.Trajectory getDefaultInstanceForType() { + return Traj.Trajectory.getDefaultInstance(); } - public Trajectory build() { - Trajectory result = buildPartial(); + @java.lang.Override + public Traj.Trajectory build() { + Traj.Trajectory result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public Trajectory buildPartial() { - Trajectory result = new Trajectory(this); + @java.lang.Override + public Traj.Trajectory buildPartial() { + Traj.Trajectory result = new Traj.Trajectory(this); int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; result.androidVersion_ = androidVersion_; + result.trajectoryVersion_ = trajectoryVersion_; + result.trajectoryId_ = trajectoryId_; if (imuDataBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002)) { + if (((bitField0_ & 0x00000001) != 0)) { imuData_ = java.util.Collections.unmodifiableList(imuData_); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); } result.imuData_ = imuData_; } else { result.imuData_ = imuDataBuilder_.build(); } if (pdrDataBuilder_ == null) { - if (((bitField0_ & 0x00000004) == 0x00000004)) { + if (((bitField0_ & 0x00000002) != 0)) { pdrData_ = java.util.Collections.unmodifiableList(pdrData_); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); } result.pdrData_ = pdrData_; } else { result.pdrData_ = pdrDataBuilder_.build(); } - if (positionDataBuilder_ == null) { - if (((bitField0_ & 0x00000008) == 0x00000008)) { - positionData_ = java.util.Collections.unmodifiableList(positionData_); - bitField0_ = (bitField0_ & ~0x00000008); + if (magnetometerDataBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + magnetometerData_ = java.util.Collections.unmodifiableList(magnetometerData_); + bitField0_ = (bitField0_ & ~0x00000004); } - result.positionData_ = positionData_; + result.magnetometerData_ = magnetometerData_; } else { - result.positionData_ = positionDataBuilder_.build(); + result.magnetometerData_ = magnetometerDataBuilder_.build(); } if (pressureDataBuilder_ == null) { - if (((bitField0_ & 0x00000010) == 0x00000010)) { + if (((bitField0_ & 0x00000008) != 0)) { pressureData_ = java.util.Collections.unmodifiableList(pressureData_); - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000008); } result.pressureData_ = pressureData_; } else { result.pressureData_ = pressureDataBuilder_.build(); } if (lightDataBuilder_ == null) { - if (((bitField0_ & 0x00000020) == 0x00000020)) { + if (((bitField0_ & 0x00000010) != 0)) { lightData_ = java.util.Collections.unmodifiableList(lightData_); - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000010); } result.lightData_ = lightData_; } else { result.lightData_ = lightDataBuilder_.build(); } + if (proximityDataBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0)) { + proximityData_ = java.util.Collections.unmodifiableList(proximityData_); + bitField0_ = (bitField0_ & ~0x00000020); + } + result.proximityData_ = proximityData_; + } else { + result.proximityData_ = proximityDataBuilder_.build(); + } if (gnssDataBuilder_ == null) { - if (((bitField0_ & 0x00000040) == 0x00000040)) { + if (((bitField0_ & 0x00000040) != 0)) { gnssData_ = java.util.Collections.unmodifiableList(gnssData_); bitField0_ = (bitField0_ & ~0x00000040); } @@ -1651,17 +2592,17 @@ public Trajectory buildPartial() { } else { result.gnssData_ = gnssDataBuilder_.build(); } - if (wifiDataBuilder_ == null) { - if (((bitField0_ & 0x00000080) == 0x00000080)) { - wifiData_ = java.util.Collections.unmodifiableList(wifiData_); + if (wifiFingerprintsBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0)) { + wifiFingerprints_ = java.util.Collections.unmodifiableList(wifiFingerprints_); bitField0_ = (bitField0_ & ~0x00000080); } - result.wifiData_ = wifiData_; + result.wifiFingerprints_ = wifiFingerprints_; } else { - result.wifiData_ = wifiDataBuilder_.build(); + result.wifiFingerprints_ = wifiFingerprintsBuilder_.build(); } if (apsDataBuilder_ == null) { - if (((bitField0_ & 0x00000100) == 0x00000100)) { + if (((bitField0_ & 0x00000100) != 0)) { apsData_ = java.util.Collections.unmodifiableList(apsData_); bitField0_ = (bitField0_ & ~0x00000100); } @@ -1669,8 +2610,48 @@ public Trajectory buildPartial() { } else { result.apsData_ = apsDataBuilder_.build(); } + if (wifiRttDataBuilder_ == null) { + if (((bitField0_ & 0x00000200) != 0)) { + wifiRttData_ = java.util.Collections.unmodifiableList(wifiRttData_); + bitField0_ = (bitField0_ & ~0x00000200); + } + result.wifiRttData_ = wifiRttData_; + } else { + result.wifiRttData_ = wifiRttDataBuilder_.build(); + } + if (bleFingerprintsBuilder_ == null) { + if (((bitField0_ & 0x00000400) != 0)) { + bleFingerprints_ = java.util.Collections.unmodifiableList(bleFingerprints_); + bitField0_ = (bitField0_ & ~0x00000400); + } + result.bleFingerprints_ = bleFingerprints_; + } else { + result.bleFingerprints_ = bleFingerprintsBuilder_.build(); + } + if (bleDataBuilder_ == null) { + if (((bitField0_ & 0x00000800) != 0)) { + bleData_ = java.util.Collections.unmodifiableList(bleData_); + bitField0_ = (bitField0_ & ~0x00000800); + } + result.bleData_ = bleData_; + } else { + result.bleData_ = bleDataBuilder_.build(); + } result.startTimestamp_ = startTimestamp_; - result.dataIdentifier_ = dataIdentifier_; + if (initialPositionBuilder_ == null) { + result.initialPosition_ = initialPosition_; + } else { + result.initialPosition_ = initialPositionBuilder_.build(); + } + if (correctedPositionsBuilder_ == null) { + if (((bitField0_ & 0x00001000) != 0)) { + correctedPositions_ = java.util.Collections.unmodifiableList(correctedPositions_); + bitField0_ = (bitField0_ & ~0x00001000); + } + result.correctedPositions_ = correctedPositions_; + } else { + result.correctedPositions_ = correctedPositionsBuilder_.build(); + } if (accelerometerInfoBuilder_ == null) { result.accelerometerInfo_ = accelerometerInfo_; } else { @@ -1701,57 +2682,84 @@ public Trajectory buildPartial() { } else { result.lightSensorInfo_ = lightSensorInfoBuilder_.build(); } - result.bitField0_ = to_bitField0_; + if (proximityInfoBuilder_ == null) { + result.proximityInfo_ = proximityInfo_; + } else { + result.proximityInfo_ = proximityInfoBuilder_.build(); + } + if (testPointsBuilder_ == null) { + if (((bitField0_ & 0x00002000) != 0)) { + testPoints_ = java.util.Collections.unmodifiableList(testPoints_); + bitField0_ = (bitField0_ & ~0x00002000); + } + result.testPoints_ = testPoints_; + } else { + result.testPoints_ = testPointsBuilder_.build(); + } onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof Trajectory) { - return mergeFrom((Trajectory)other); + if (other instanceof Traj.Trajectory) { + return mergeFrom((Traj.Trajectory)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(Trajectory other) { - if (other == Trajectory.getDefaultInstance()) return this; + public Builder mergeFrom(Traj.Trajectory other) { + if (other == Traj.Trajectory.getDefaultInstance()) return this; if (!other.getAndroidVersion().isEmpty()) { androidVersion_ = other.androidVersion_; onChanged(); } + if (other.getTrajectoryVersion() != 0F) { + setTrajectoryVersion(other.getTrajectoryVersion()); + } + if (!other.getTrajectoryId().isEmpty()) { + trajectoryId_ = other.trajectoryId_; + onChanged(); + } if (imuDataBuilder_ == null) { if (!other.imuData_.isEmpty()) { if (imuData_.isEmpty()) { imuData_ = other.imuData_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); } else { ensureImuDataIsMutable(); imuData_.addAll(other.imuData_); @@ -1764,7 +2772,7 @@ public Builder mergeFrom(Trajectory other) { imuDataBuilder_.dispose(); imuDataBuilder_ = null; imuData_ = other.imuData_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); imuDataBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getImuDataFieldBuilder() : null; @@ -1777,7 +2785,7 @@ public Builder mergeFrom(Trajectory other) { if (!other.pdrData_.isEmpty()) { if (pdrData_.isEmpty()) { pdrData_ = other.pdrData_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); } else { ensurePdrDataIsMutable(); pdrData_.addAll(other.pdrData_); @@ -1790,7 +2798,7 @@ public Builder mergeFrom(Trajectory other) { pdrDataBuilder_.dispose(); pdrDataBuilder_ = null; pdrData_ = other.pdrData_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); pdrDataBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getPdrDataFieldBuilder() : null; @@ -1799,29 +2807,29 @@ public Builder mergeFrom(Trajectory other) { } } } - if (positionDataBuilder_ == null) { - if (!other.positionData_.isEmpty()) { - if (positionData_.isEmpty()) { - positionData_ = other.positionData_; - bitField0_ = (bitField0_ & ~0x00000008); + if (magnetometerDataBuilder_ == null) { + if (!other.magnetometerData_.isEmpty()) { + if (magnetometerData_.isEmpty()) { + magnetometerData_ = other.magnetometerData_; + bitField0_ = (bitField0_ & ~0x00000004); } else { - ensurePositionDataIsMutable(); - positionData_.addAll(other.positionData_); + ensureMagnetometerDataIsMutable(); + magnetometerData_.addAll(other.magnetometerData_); } onChanged(); } } else { - if (!other.positionData_.isEmpty()) { - if (positionDataBuilder_.isEmpty()) { - positionDataBuilder_.dispose(); - positionDataBuilder_ = null; - positionData_ = other.positionData_; - bitField0_ = (bitField0_ & ~0x00000008); - positionDataBuilder_ = + if (!other.magnetometerData_.isEmpty()) { + if (magnetometerDataBuilder_.isEmpty()) { + magnetometerDataBuilder_.dispose(); + magnetometerDataBuilder_ = null; + magnetometerData_ = other.magnetometerData_; + bitField0_ = (bitField0_ & ~0x00000004); + magnetometerDataBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getPositionDataFieldBuilder() : null; + getMagnetometerDataFieldBuilder() : null; } else { - positionDataBuilder_.addAllMessages(other.positionData_); + magnetometerDataBuilder_.addAllMessages(other.magnetometerData_); } } } @@ -1829,7 +2837,7 @@ public Builder mergeFrom(Trajectory other) { if (!other.pressureData_.isEmpty()) { if (pressureData_.isEmpty()) { pressureData_ = other.pressureData_; - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensurePressureDataIsMutable(); pressureData_.addAll(other.pressureData_); @@ -1842,7 +2850,7 @@ public Builder mergeFrom(Trajectory other) { pressureDataBuilder_.dispose(); pressureDataBuilder_ = null; pressureData_ = other.pressureData_; - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000008); pressureDataBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getPressureDataFieldBuilder() : null; @@ -1855,7 +2863,7 @@ public Builder mergeFrom(Trajectory other) { if (!other.lightData_.isEmpty()) { if (lightData_.isEmpty()) { lightData_ = other.lightData_; - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000010); } else { ensureLightDataIsMutable(); lightData_.addAll(other.lightData_); @@ -1868,7 +2876,7 @@ public Builder mergeFrom(Trajectory other) { lightDataBuilder_.dispose(); lightDataBuilder_ = null; lightData_ = other.lightData_; - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000010); lightDataBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLightDataFieldBuilder() : null; @@ -1877,14 +2885,40 @@ public Builder mergeFrom(Trajectory other) { } } } - if (gnssDataBuilder_ == null) { - if (!other.gnssData_.isEmpty()) { - if (gnssData_.isEmpty()) { - gnssData_ = other.gnssData_; - bitField0_ = (bitField0_ & ~0x00000040); + if (proximityDataBuilder_ == null) { + if (!other.proximityData_.isEmpty()) { + if (proximityData_.isEmpty()) { + proximityData_ = other.proximityData_; + bitField0_ = (bitField0_ & ~0x00000020); } else { - ensureGnssDataIsMutable(); - gnssData_.addAll(other.gnssData_); + ensureProximityDataIsMutable(); + proximityData_.addAll(other.proximityData_); + } + onChanged(); + } + } else { + if (!other.proximityData_.isEmpty()) { + if (proximityDataBuilder_.isEmpty()) { + proximityDataBuilder_.dispose(); + proximityDataBuilder_ = null; + proximityData_ = other.proximityData_; + bitField0_ = (bitField0_ & ~0x00000020); + proximityDataBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getProximityDataFieldBuilder() : null; + } else { + proximityDataBuilder_.addAllMessages(other.proximityData_); + } + } + } + if (gnssDataBuilder_ == null) { + if (!other.gnssData_.isEmpty()) { + if (gnssData_.isEmpty()) { + gnssData_ = other.gnssData_; + bitField0_ = (bitField0_ & ~0x00000040); + } else { + ensureGnssDataIsMutable(); + gnssData_.addAll(other.gnssData_); } onChanged(); } @@ -1903,29 +2937,29 @@ public Builder mergeFrom(Trajectory other) { } } } - if (wifiDataBuilder_ == null) { - if (!other.wifiData_.isEmpty()) { - if (wifiData_.isEmpty()) { - wifiData_ = other.wifiData_; + if (wifiFingerprintsBuilder_ == null) { + if (!other.wifiFingerprints_.isEmpty()) { + if (wifiFingerprints_.isEmpty()) { + wifiFingerprints_ = other.wifiFingerprints_; bitField0_ = (bitField0_ & ~0x00000080); } else { - ensureWifiDataIsMutable(); - wifiData_.addAll(other.wifiData_); + ensureWifiFingerprintsIsMutable(); + wifiFingerprints_.addAll(other.wifiFingerprints_); } onChanged(); } } else { - if (!other.wifiData_.isEmpty()) { - if (wifiDataBuilder_.isEmpty()) { - wifiDataBuilder_.dispose(); - wifiDataBuilder_ = null; - wifiData_ = other.wifiData_; + if (!other.wifiFingerprints_.isEmpty()) { + if (wifiFingerprintsBuilder_.isEmpty()) { + wifiFingerprintsBuilder_.dispose(); + wifiFingerprintsBuilder_ = null; + wifiFingerprints_ = other.wifiFingerprints_; bitField0_ = (bitField0_ & ~0x00000080); - wifiDataBuilder_ = + wifiFingerprintsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getWifiDataFieldBuilder() : null; + getWifiFingerprintsFieldBuilder() : null; } else { - wifiDataBuilder_.addAllMessages(other.wifiData_); + wifiFingerprintsBuilder_.addAllMessages(other.wifiFingerprints_); } } } @@ -1955,12 +2989,115 @@ public Builder mergeFrom(Trajectory other) { } } } + if (wifiRttDataBuilder_ == null) { + if (!other.wifiRttData_.isEmpty()) { + if (wifiRttData_.isEmpty()) { + wifiRttData_ = other.wifiRttData_; + bitField0_ = (bitField0_ & ~0x00000200); + } else { + ensureWifiRttDataIsMutable(); + wifiRttData_.addAll(other.wifiRttData_); + } + onChanged(); + } + } else { + if (!other.wifiRttData_.isEmpty()) { + if (wifiRttDataBuilder_.isEmpty()) { + wifiRttDataBuilder_.dispose(); + wifiRttDataBuilder_ = null; + wifiRttData_ = other.wifiRttData_; + bitField0_ = (bitField0_ & ~0x00000200); + wifiRttDataBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getWifiRttDataFieldBuilder() : null; + } else { + wifiRttDataBuilder_.addAllMessages(other.wifiRttData_); + } + } + } + if (bleFingerprintsBuilder_ == null) { + if (!other.bleFingerprints_.isEmpty()) { + if (bleFingerprints_.isEmpty()) { + bleFingerprints_ = other.bleFingerprints_; + bitField0_ = (bitField0_ & ~0x00000400); + } else { + ensureBleFingerprintsIsMutable(); + bleFingerprints_.addAll(other.bleFingerprints_); + } + onChanged(); + } + } else { + if (!other.bleFingerprints_.isEmpty()) { + if (bleFingerprintsBuilder_.isEmpty()) { + bleFingerprintsBuilder_.dispose(); + bleFingerprintsBuilder_ = null; + bleFingerprints_ = other.bleFingerprints_; + bitField0_ = (bitField0_ & ~0x00000400); + bleFingerprintsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getBleFingerprintsFieldBuilder() : null; + } else { + bleFingerprintsBuilder_.addAllMessages(other.bleFingerprints_); + } + } + } + if (bleDataBuilder_ == null) { + if (!other.bleData_.isEmpty()) { + if (bleData_.isEmpty()) { + bleData_ = other.bleData_; + bitField0_ = (bitField0_ & ~0x00000800); + } else { + ensureBleDataIsMutable(); + bleData_.addAll(other.bleData_); + } + onChanged(); + } + } else { + if (!other.bleData_.isEmpty()) { + if (bleDataBuilder_.isEmpty()) { + bleDataBuilder_.dispose(); + bleDataBuilder_ = null; + bleData_ = other.bleData_; + bitField0_ = (bitField0_ & ~0x00000800); + bleDataBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getBleDataFieldBuilder() : null; + } else { + bleDataBuilder_.addAllMessages(other.bleData_); + } + } + } if (other.getStartTimestamp() != 0L) { setStartTimestamp(other.getStartTimestamp()); } - if (!other.getDataIdentifier().isEmpty()) { - dataIdentifier_ = other.dataIdentifier_; - onChanged(); + if (other.hasInitialPosition()) { + mergeInitialPosition(other.getInitialPosition()); + } + if (correctedPositionsBuilder_ == null) { + if (!other.correctedPositions_.isEmpty()) { + if (correctedPositions_.isEmpty()) { + correctedPositions_ = other.correctedPositions_; + bitField0_ = (bitField0_ & ~0x00001000); + } else { + ensureCorrectedPositionsIsMutable(); + correctedPositions_.addAll(other.correctedPositions_); + } + onChanged(); + } + } else { + if (!other.correctedPositions_.isEmpty()) { + if (correctedPositionsBuilder_.isEmpty()) { + correctedPositionsBuilder_.dispose(); + correctedPositionsBuilder_ = null; + correctedPositions_ = other.correctedPositions_; + bitField0_ = (bitField0_ & ~0x00001000); + correctedPositionsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getCorrectedPositionsFieldBuilder() : null; + } else { + correctedPositionsBuilder_.addAllMessages(other.correctedPositions_); + } + } } if (other.hasAccelerometerInfo()) { mergeAccelerometerInfo(other.getAccelerometerInfo()); @@ -1980,23 +3117,55 @@ public Builder mergeFrom(Trajectory other) { if (other.hasLightSensorInfo()) { mergeLightSensorInfo(other.getLightSensorInfo()); } + if (other.hasProximityInfo()) { + mergeProximityInfo(other.getProximityInfo()); + } + if (testPointsBuilder_ == null) { + if (!other.testPoints_.isEmpty()) { + if (testPoints_.isEmpty()) { + testPoints_ = other.testPoints_; + bitField0_ = (bitField0_ & ~0x00002000); + } else { + ensureTestPointsIsMutable(); + testPoints_.addAll(other.testPoints_); + } + onChanged(); + } + } else { + if (!other.testPoints_.isEmpty()) { + if (testPointsBuilder_.isEmpty()) { + testPointsBuilder_.dispose(); + testPointsBuilder_ = null; + testPoints_ = other.testPoints_; + bitField0_ = (bitField0_ & ~0x00002000); + testPointsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getTestPointsFieldBuilder() : null; + } else { + testPointsBuilder_.addAllMessages(other.testPoints_); + } + } + } + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } + @java.lang.Override public final boolean isInitialized() { return true; } + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - Trajectory parsedMessage = null; + Traj.Trajectory parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (Trajectory) e.getUnfinishedMessage(); + parsedMessage = (Traj.Trajectory) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -2007,32 +3176,34 @@ public Builder mergeFrom( } private int bitField0_; - private Object androidVersion_ = ""; + private java.lang.Object androidVersion_ = ""; /** - * optional string android_version = 1; + * string android_version = 1; + * @return The androidVersion. */ - public String getAndroidVersion() { - Object ref = androidVersion_; - if (!(ref instanceof String)) { + public java.lang.String getAndroidVersion() { + java.lang.Object ref = androidVersion_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); androidVersion_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** - * optional string android_version = 1; + * string android_version = 1; + * @return The bytes for androidVersion. */ public com.google.protobuf.ByteString getAndroidVersionBytes() { - Object ref = androidVersion_; + java.lang.Object ref = androidVersion_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); androidVersion_ = b; return b; } else { @@ -2040,10 +3211,12 @@ public String getAndroidVersion() { } } /** - * optional string android_version = 1; + * string android_version = 1; + * @param value The androidVersion to set. + * @return This builder for chaining. */ public Builder setAndroidVersion( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } @@ -2053,7 +3226,8 @@ public Builder setAndroidVersion( return this; } /** - * optional string android_version = 1; + * string android_version = 1; + * @return This builder for chaining. */ public Builder clearAndroidVersion() { @@ -2062,7 +3236,9 @@ public Builder clearAndroidVersion() { return this; } /** - * optional string android_version = 1; + * string android_version = 1; + * @param value The bytes for androidVersion to set. + * @return This builder for chaining. */ public Builder setAndroidVersionBytes( com.google.protobuf.ByteString value) { @@ -2076,22 +3252,161 @@ public Builder setAndroidVersionBytes( return this; } - private java.util.List imuData_ = + private float trajectoryVersion_ ; + /** + *
+       * version 2.0
+       * 
+ * + * float trajectory_version = 2; + * @return The trajectoryVersion. + */ + @java.lang.Override + public float getTrajectoryVersion() { + return trajectoryVersion_; + } + /** + *
+       * version 2.0
+       * 
+ * + * float trajectory_version = 2; + * @param value The trajectoryVersion to set. + * @return This builder for chaining. + */ + public Builder setTrajectoryVersion(float value) { + + trajectoryVersion_ = value; + onChanged(); + return this; + } + /** + *
+       * version 2.0
+       * 
+ * + * float trajectory_version = 2; + * @return This builder for chaining. + */ + public Builder clearTrajectoryVersion() { + + trajectoryVersion_ = 0F; + onChanged(); + return this; + } + + private java.lang.Object trajectoryId_ = ""; + /** + *
+       * trajectory id/name for identification
+       * 
+ * + * string trajectory_id = 3; + * @return The trajectoryId. + */ + public java.lang.String getTrajectoryId() { + java.lang.Object ref = trajectoryId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trajectoryId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * trajectory id/name for identification
+       * 
+ * + * string trajectory_id = 3; + * @return The bytes for trajectoryId. + */ + public com.google.protobuf.ByteString + getTrajectoryIdBytes() { + java.lang.Object ref = trajectoryId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trajectoryId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * trajectory id/name for identification
+       * 
+ * + * string trajectory_id = 3; + * @param value The trajectoryId to set. + * @return This builder for chaining. + */ + public Builder setTrajectoryId( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + trajectoryId_ = value; + onChanged(); + return this; + } + /** + *
+       * trajectory id/name for identification
+       * 
+ * + * string trajectory_id = 3; + * @return This builder for chaining. + */ + public Builder clearTrajectoryId() { + + trajectoryId_ = getDefaultInstance().getTrajectoryId(); + onChanged(); + return this; + } + /** + *
+       * trajectory id/name for identification
+       * 
+ * + * string trajectory_id = 3; + * @param value The bytes for trajectoryId to set. + * @return This builder for chaining. + */ + public Builder setTrajectoryIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + trajectoryId_ = value; + onChanged(); + return this; + } + + private java.util.List imuData_ = java.util.Collections.emptyList(); private void ensureImuDataIsMutable() { - if (!((bitField0_ & 0x00000002) == 0x00000002)) { - imuData_ = new java.util.ArrayList(imuData_); - bitField0_ |= 0x00000002; + if (!((bitField0_ & 0x00000001) != 0)) { + imuData_ = new java.util.ArrayList(imuData_); + bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< - Motion_Sample, Motion_Sample.Builder, Motion_SampleOrBuilder> imuDataBuilder_; + Traj.IMUReading, Traj.IMUReading.Builder, Traj.IMUReadingOrBuilder> imuDataBuilder_; /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public java.util.List getImuDataList() { + public java.util.List getImuDataList() { if (imuDataBuilder_ == null) { return java.util.Collections.unmodifiableList(imuData_); } else { @@ -2099,7 +3414,7 @@ public java.util.List getImuDataList() { } } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ public int getImuDataCount() { if (imuDataBuilder_ == null) { @@ -2109,9 +3424,9 @@ public int getImuDataCount() { } } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public Motion_Sample getImuData(int index) { + public Traj.IMUReading getImuData(int index) { if (imuDataBuilder_ == null) { return imuData_.get(index); } else { @@ -2119,10 +3434,10 @@ public Motion_Sample getImuData(int index) { } } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ public Builder setImuData( - int index, Motion_Sample value) { + int index, Traj.IMUReading value) { if (imuDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2136,10 +3451,10 @@ public Builder setImuData( return this; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ public Builder setImuData( - int index, Motion_Sample.Builder builderForValue) { + int index, Traj.IMUReading.Builder builderForValue) { if (imuDataBuilder_ == null) { ensureImuDataIsMutable(); imuData_.set(index, builderForValue.build()); @@ -2150,9 +3465,9 @@ public Builder setImuData( return this; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public Builder addImuData(Motion_Sample value) { + public Builder addImuData(Traj.IMUReading value) { if (imuDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2166,10 +3481,10 @@ public Builder addImuData(Motion_Sample value) { return this; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ public Builder addImuData( - int index, Motion_Sample value) { + int index, Traj.IMUReading value) { if (imuDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2183,10 +3498,10 @@ public Builder addImuData( return this; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ public Builder addImuData( - Motion_Sample.Builder builderForValue) { + Traj.IMUReading.Builder builderForValue) { if (imuDataBuilder_ == null) { ensureImuDataIsMutable(); imuData_.add(builderForValue.build()); @@ -2197,10 +3512,10 @@ public Builder addImuData( return this; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ public Builder addImuData( - int index, Motion_Sample.Builder builderForValue) { + int index, Traj.IMUReading.Builder builderForValue) { if (imuDataBuilder_ == null) { ensureImuDataIsMutable(); imuData_.add(index, builderForValue.build()); @@ -2211,10 +3526,10 @@ public Builder addImuData( return this; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ public Builder addAllImuData( - Iterable values) { + java.lang.Iterable values) { if (imuDataBuilder_ == null) { ensureImuDataIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( @@ -2226,12 +3541,12 @@ public Builder addAllImuData( return this; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ public Builder clearImuData() { if (imuDataBuilder_ == null) { imuData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { imuDataBuilder_.clear(); @@ -2239,7 +3554,7 @@ public Builder clearImuData() { return this; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ public Builder removeImuData(int index) { if (imuDataBuilder_ == null) { @@ -2252,16 +3567,16 @@ public Builder removeImuData(int index) { return this; } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public Motion_Sample.Builder getImuDataBuilder( + public Traj.IMUReading.Builder getImuDataBuilder( int index) { return getImuDataFieldBuilder().getBuilder(index); } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public Motion_SampleOrBuilder getImuDataOrBuilder( + public Traj.IMUReadingOrBuilder getImuDataOrBuilder( int index) { if (imuDataBuilder_ == null) { return imuData_.get(index); } else { @@ -2269,9 +3584,9 @@ public Motion_SampleOrBuilder getImuDataOrBuilder( } } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public java.util.List + public java.util.List getImuDataOrBuilderList() { if (imuDataBuilder_ != null) { return imuDataBuilder_.getMessageOrBuilderList(); @@ -2280,35 +3595,35 @@ public Motion_SampleOrBuilder getImuDataOrBuilder( } } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public Motion_Sample.Builder addImuDataBuilder() { + public Traj.IMUReading.Builder addImuDataBuilder() { return getImuDataFieldBuilder().addBuilder( - Motion_Sample.getDefaultInstance()); + Traj.IMUReading.getDefaultInstance()); } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public Motion_Sample.Builder addImuDataBuilder( + public Traj.IMUReading.Builder addImuDataBuilder( int index) { return getImuDataFieldBuilder().addBuilder( - index, Motion_Sample.getDefaultInstance()); + index, Traj.IMUReading.getDefaultInstance()); } /** - * repeated .Motion_Sample imu_data = 2; + * repeated .IMUReading imu_data = 4; */ - public java.util.List + public java.util.List getImuDataBuilderList() { return getImuDataFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - Motion_Sample, Motion_Sample.Builder, Motion_SampleOrBuilder> + Traj.IMUReading, Traj.IMUReading.Builder, Traj.IMUReadingOrBuilder> getImuDataFieldBuilder() { if (imuDataBuilder_ == null) { imuDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - Motion_Sample, Motion_Sample.Builder, Motion_SampleOrBuilder>( + Traj.IMUReading, Traj.IMUReading.Builder, Traj.IMUReadingOrBuilder>( imuData_, - ((bitField0_ & 0x00000002) == 0x00000002), + ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); imuData_ = null; @@ -2316,22 +3631,22 @@ public Motion_Sample.Builder addImuDataBuilder( return imuDataBuilder_; } - private java.util.List pdrData_ = + private java.util.List pdrData_ = java.util.Collections.emptyList(); private void ensurePdrDataIsMutable() { - if (!((bitField0_ & 0x00000004) == 0x00000004)) { - pdrData_ = new java.util.ArrayList(pdrData_); - bitField0_ |= 0x00000004; + if (!((bitField0_ & 0x00000002) != 0)) { + pdrData_ = new java.util.ArrayList(pdrData_); + bitField0_ |= 0x00000002; } } private com.google.protobuf.RepeatedFieldBuilderV3< - Pdr_Sample, Pdr_Sample.Builder, Pdr_SampleOrBuilder> pdrDataBuilder_; + Traj.RelativePosition, Traj.RelativePosition.Builder, Traj.RelativePositionOrBuilder> pdrDataBuilder_; /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public java.util.List getPdrDataList() { + public java.util.List getPdrDataList() { if (pdrDataBuilder_ == null) { return java.util.Collections.unmodifiableList(pdrData_); } else { @@ -2339,7 +3654,7 @@ public java.util.List getPdrDataList() { } } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ public int getPdrDataCount() { if (pdrDataBuilder_ == null) { @@ -2349,9 +3664,9 @@ public int getPdrDataCount() { } } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public Pdr_Sample getPdrData(int index) { + public Traj.RelativePosition getPdrData(int index) { if (pdrDataBuilder_ == null) { return pdrData_.get(index); } else { @@ -2359,10 +3674,10 @@ public Pdr_Sample getPdrData(int index) { } } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ public Builder setPdrData( - int index, Pdr_Sample value) { + int index, Traj.RelativePosition value) { if (pdrDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2376,10 +3691,10 @@ public Builder setPdrData( return this; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ public Builder setPdrData( - int index, Pdr_Sample.Builder builderForValue) { + int index, Traj.RelativePosition.Builder builderForValue) { if (pdrDataBuilder_ == null) { ensurePdrDataIsMutable(); pdrData_.set(index, builderForValue.build()); @@ -2390,9 +3705,9 @@ public Builder setPdrData( return this; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public Builder addPdrData(Pdr_Sample value) { + public Builder addPdrData(Traj.RelativePosition value) { if (pdrDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2406,10 +3721,10 @@ public Builder addPdrData(Pdr_Sample value) { return this; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ public Builder addPdrData( - int index, Pdr_Sample value) { + int index, Traj.RelativePosition value) { if (pdrDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2423,10 +3738,10 @@ public Builder addPdrData( return this; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ public Builder addPdrData( - Pdr_Sample.Builder builderForValue) { + Traj.RelativePosition.Builder builderForValue) { if (pdrDataBuilder_ == null) { ensurePdrDataIsMutable(); pdrData_.add(builderForValue.build()); @@ -2437,10 +3752,10 @@ public Builder addPdrData( return this; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ public Builder addPdrData( - int index, Pdr_Sample.Builder builderForValue) { + int index, Traj.RelativePosition.Builder builderForValue) { if (pdrDataBuilder_ == null) { ensurePdrDataIsMutable(); pdrData_.add(index, builderForValue.build()); @@ -2451,10 +3766,10 @@ public Builder addPdrData( return this; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ public Builder addAllPdrData( - Iterable values) { + java.lang.Iterable values) { if (pdrDataBuilder_ == null) { ensurePdrDataIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( @@ -2466,12 +3781,12 @@ public Builder addAllPdrData( return this; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ public Builder clearPdrData() { if (pdrDataBuilder_ == null) { pdrData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); } else { pdrDataBuilder_.clear(); @@ -2479,7 +3794,7 @@ public Builder clearPdrData() { return this; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ public Builder removePdrData(int index) { if (pdrDataBuilder_ == null) { @@ -2492,16 +3807,16 @@ public Builder removePdrData(int index) { return this; } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public Pdr_Sample.Builder getPdrDataBuilder( + public Traj.RelativePosition.Builder getPdrDataBuilder( int index) { return getPdrDataFieldBuilder().getBuilder(index); } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public Pdr_SampleOrBuilder getPdrDataOrBuilder( + public Traj.RelativePositionOrBuilder getPdrDataOrBuilder( int index) { if (pdrDataBuilder_ == null) { return pdrData_.get(index); } else { @@ -2509,9 +3824,9 @@ public Pdr_SampleOrBuilder getPdrDataOrBuilder( } } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public java.util.List + public java.util.List getPdrDataOrBuilderList() { if (pdrDataBuilder_ != null) { return pdrDataBuilder_.getMessageOrBuilderList(); @@ -2520,35 +3835,35 @@ public Pdr_SampleOrBuilder getPdrDataOrBuilder( } } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public Pdr_Sample.Builder addPdrDataBuilder() { + public Traj.RelativePosition.Builder addPdrDataBuilder() { return getPdrDataFieldBuilder().addBuilder( - Pdr_Sample.getDefaultInstance()); + Traj.RelativePosition.getDefaultInstance()); } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public Pdr_Sample.Builder addPdrDataBuilder( + public Traj.RelativePosition.Builder addPdrDataBuilder( int index) { return getPdrDataFieldBuilder().addBuilder( - index, Pdr_Sample.getDefaultInstance()); + index, Traj.RelativePosition.getDefaultInstance()); } /** - * repeated .Pdr_Sample pdr_data = 3; + * repeated .RelativePosition pdr_data = 5; */ - public java.util.List + public java.util.List getPdrDataBuilderList() { return getPdrDataFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - Pdr_Sample, Pdr_Sample.Builder, Pdr_SampleOrBuilder> + Traj.RelativePosition, Traj.RelativePosition.Builder, Traj.RelativePositionOrBuilder> getPdrDataFieldBuilder() { if (pdrDataBuilder_ == null) { pdrDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - Pdr_Sample, Pdr_Sample.Builder, Pdr_SampleOrBuilder>( + Traj.RelativePosition, Traj.RelativePosition.Builder, Traj.RelativePositionOrBuilder>( pdrData_, - ((bitField0_ & 0x00000004) == 0x00000004), + ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); pdrData_ = null; @@ -2556,262 +3871,262 @@ public Pdr_Sample.Builder addPdrDataBuilder( return pdrDataBuilder_; } - private java.util.List positionData_ = + private java.util.List magnetometerData_ = java.util.Collections.emptyList(); - private void ensurePositionDataIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - positionData_ = new java.util.ArrayList(positionData_); - bitField0_ |= 0x00000008; + private void ensureMagnetometerDataIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + magnetometerData_ = new java.util.ArrayList(magnetometerData_); + bitField0_ |= 0x00000004; } } private com.google.protobuf.RepeatedFieldBuilderV3< - Position_Sample, Position_Sample.Builder, Position_SampleOrBuilder> positionDataBuilder_; + Traj.MagnetometerReading, Traj.MagnetometerReading.Builder, Traj.MagnetometerReadingOrBuilder> magnetometerDataBuilder_; /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public java.util.List getPositionDataList() { - if (positionDataBuilder_ == null) { - return java.util.Collections.unmodifiableList(positionData_); + public java.util.List getMagnetometerDataList() { + if (magnetometerDataBuilder_ == null) { + return java.util.Collections.unmodifiableList(magnetometerData_); } else { - return positionDataBuilder_.getMessageList(); + return magnetometerDataBuilder_.getMessageList(); } } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public int getPositionDataCount() { - if (positionDataBuilder_ == null) { - return positionData_.size(); + public int getMagnetometerDataCount() { + if (magnetometerDataBuilder_ == null) { + return magnetometerData_.size(); } else { - return positionDataBuilder_.getCount(); + return magnetometerDataBuilder_.getCount(); } } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Position_Sample getPositionData(int index) { - if (positionDataBuilder_ == null) { - return positionData_.get(index); + public Traj.MagnetometerReading getMagnetometerData(int index) { + if (magnetometerDataBuilder_ == null) { + return magnetometerData_.get(index); } else { - return positionDataBuilder_.getMessage(index); + return magnetometerDataBuilder_.getMessage(index); } } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Builder setPositionData( - int index, Position_Sample value) { - if (positionDataBuilder_ == null) { + public Builder setMagnetometerData( + int index, Traj.MagnetometerReading value) { + if (magnetometerDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensurePositionDataIsMutable(); - positionData_.set(index, value); + ensureMagnetometerDataIsMutable(); + magnetometerData_.set(index, value); onChanged(); } else { - positionDataBuilder_.setMessage(index, value); + magnetometerDataBuilder_.setMessage(index, value); } return this; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Builder setPositionData( - int index, Position_Sample.Builder builderForValue) { - if (positionDataBuilder_ == null) { - ensurePositionDataIsMutable(); - positionData_.set(index, builderForValue.build()); + public Builder setMagnetometerData( + int index, Traj.MagnetometerReading.Builder builderForValue) { + if (magnetometerDataBuilder_ == null) { + ensureMagnetometerDataIsMutable(); + magnetometerData_.set(index, builderForValue.build()); onChanged(); } else { - positionDataBuilder_.setMessage(index, builderForValue.build()); + magnetometerDataBuilder_.setMessage(index, builderForValue.build()); } return this; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Builder addPositionData(Position_Sample value) { - if (positionDataBuilder_ == null) { + public Builder addMagnetometerData(Traj.MagnetometerReading value) { + if (magnetometerDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensurePositionDataIsMutable(); - positionData_.add(value); + ensureMagnetometerDataIsMutable(); + magnetometerData_.add(value); onChanged(); } else { - positionDataBuilder_.addMessage(value); + magnetometerDataBuilder_.addMessage(value); } return this; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Builder addPositionData( - int index, Position_Sample value) { - if (positionDataBuilder_ == null) { + public Builder addMagnetometerData( + int index, Traj.MagnetometerReading value) { + if (magnetometerDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensurePositionDataIsMutable(); - positionData_.add(index, value); + ensureMagnetometerDataIsMutable(); + magnetometerData_.add(index, value); onChanged(); } else { - positionDataBuilder_.addMessage(index, value); + magnetometerDataBuilder_.addMessage(index, value); } return this; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Builder addPositionData( - Position_Sample.Builder builderForValue) { - if (positionDataBuilder_ == null) { - ensurePositionDataIsMutable(); - positionData_.add(builderForValue.build()); + public Builder addMagnetometerData( + Traj.MagnetometerReading.Builder builderForValue) { + if (magnetometerDataBuilder_ == null) { + ensureMagnetometerDataIsMutable(); + magnetometerData_.add(builderForValue.build()); onChanged(); } else { - positionDataBuilder_.addMessage(builderForValue.build()); + magnetometerDataBuilder_.addMessage(builderForValue.build()); } return this; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Builder addPositionData( - int index, Position_Sample.Builder builderForValue) { - if (positionDataBuilder_ == null) { - ensurePositionDataIsMutable(); - positionData_.add(index, builderForValue.build()); + public Builder addMagnetometerData( + int index, Traj.MagnetometerReading.Builder builderForValue) { + if (magnetometerDataBuilder_ == null) { + ensureMagnetometerDataIsMutable(); + magnetometerData_.add(index, builderForValue.build()); onChanged(); } else { - positionDataBuilder_.addMessage(index, builderForValue.build()); + magnetometerDataBuilder_.addMessage(index, builderForValue.build()); } return this; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Builder addAllPositionData( - Iterable values) { - if (positionDataBuilder_ == null) { - ensurePositionDataIsMutable(); + public Builder addAllMagnetometerData( + java.lang.Iterable values) { + if (magnetometerDataBuilder_ == null) { + ensureMagnetometerDataIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, positionData_); + values, magnetometerData_); onChanged(); } else { - positionDataBuilder_.addAllMessages(values); + magnetometerDataBuilder_.addAllMessages(values); } return this; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Builder clearPositionData() { - if (positionDataBuilder_ == null) { - positionData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); + public Builder clearMagnetometerData() { + if (magnetometerDataBuilder_ == null) { + magnetometerData_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { - positionDataBuilder_.clear(); + magnetometerDataBuilder_.clear(); } return this; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Builder removePositionData(int index) { - if (positionDataBuilder_ == null) { - ensurePositionDataIsMutable(); - positionData_.remove(index); + public Builder removeMagnetometerData(int index) { + if (magnetometerDataBuilder_ == null) { + ensureMagnetometerDataIsMutable(); + magnetometerData_.remove(index); onChanged(); } else { - positionDataBuilder_.remove(index); + magnetometerDataBuilder_.remove(index); } return this; } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Position_Sample.Builder getPositionDataBuilder( + public Traj.MagnetometerReading.Builder getMagnetometerDataBuilder( int index) { - return getPositionDataFieldBuilder().getBuilder(index); + return getMagnetometerDataFieldBuilder().getBuilder(index); } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Position_SampleOrBuilder getPositionDataOrBuilder( + public Traj.MagnetometerReadingOrBuilder getMagnetometerDataOrBuilder( int index) { - if (positionDataBuilder_ == null) { - return positionData_.get(index); } else { - return positionDataBuilder_.getMessageOrBuilder(index); + if (magnetometerDataBuilder_ == null) { + return magnetometerData_.get(index); } else { + return magnetometerDataBuilder_.getMessageOrBuilder(index); } } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public java.util.List - getPositionDataOrBuilderList() { - if (positionDataBuilder_ != null) { - return positionDataBuilder_.getMessageOrBuilderList(); + public java.util.List + getMagnetometerDataOrBuilderList() { + if (magnetometerDataBuilder_ != null) { + return magnetometerDataBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(positionData_); + return java.util.Collections.unmodifiableList(magnetometerData_); } } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Position_Sample.Builder addPositionDataBuilder() { - return getPositionDataFieldBuilder().addBuilder( - Position_Sample.getDefaultInstance()); + public Traj.MagnetometerReading.Builder addMagnetometerDataBuilder() { + return getMagnetometerDataFieldBuilder().addBuilder( + Traj.MagnetometerReading.getDefaultInstance()); } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public Position_Sample.Builder addPositionDataBuilder( + public Traj.MagnetometerReading.Builder addMagnetometerDataBuilder( int index) { - return getPositionDataFieldBuilder().addBuilder( - index, Position_Sample.getDefaultInstance()); + return getMagnetometerDataFieldBuilder().addBuilder( + index, Traj.MagnetometerReading.getDefaultInstance()); } /** - * repeated .Position_Sample position_data = 4; + * repeated .MagnetometerReading magnetometer_data = 6; */ - public java.util.List - getPositionDataBuilderList() { - return getPositionDataFieldBuilder().getBuilderList(); + public java.util.List + getMagnetometerDataBuilderList() { + return getMagnetometerDataFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - Position_Sample, Position_Sample.Builder, Position_SampleOrBuilder> - getPositionDataFieldBuilder() { - if (positionDataBuilder_ == null) { - positionDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - Position_Sample, Position_Sample.Builder, Position_SampleOrBuilder>( - positionData_, - ((bitField0_ & 0x00000008) == 0x00000008), + Traj.MagnetometerReading, Traj.MagnetometerReading.Builder, Traj.MagnetometerReadingOrBuilder> + getMagnetometerDataFieldBuilder() { + if (magnetometerDataBuilder_ == null) { + magnetometerDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Traj.MagnetometerReading, Traj.MagnetometerReading.Builder, Traj.MagnetometerReadingOrBuilder>( + magnetometerData_, + ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); - positionData_ = null; + magnetometerData_ = null; } - return positionDataBuilder_; + return magnetometerDataBuilder_; } - private java.util.List pressureData_ = + private java.util.List pressureData_ = java.util.Collections.emptyList(); private void ensurePressureDataIsMutable() { - if (!((bitField0_ & 0x00000010) == 0x00000010)) { - pressureData_ = new java.util.ArrayList(pressureData_); - bitField0_ |= 0x00000010; + if (!((bitField0_ & 0x00000008) != 0)) { + pressureData_ = new java.util.ArrayList(pressureData_); + bitField0_ |= 0x00000008; } } private com.google.protobuf.RepeatedFieldBuilderV3< - Pressure_Sample, Pressure_Sample.Builder, Pressure_SampleOrBuilder> pressureDataBuilder_; + Traj.BarometerReading, Traj.BarometerReading.Builder, Traj.BarometerReadingOrBuilder> pressureDataBuilder_; /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public java.util.List getPressureDataList() { + public java.util.List getPressureDataList() { if (pressureDataBuilder_ == null) { return java.util.Collections.unmodifiableList(pressureData_); } else { @@ -2819,7 +4134,7 @@ public java.util.List getPressureDataList() { } } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ public int getPressureDataCount() { if (pressureDataBuilder_ == null) { @@ -2829,9 +4144,9 @@ public int getPressureDataCount() { } } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public Pressure_Sample getPressureData(int index) { + public Traj.BarometerReading getPressureData(int index) { if (pressureDataBuilder_ == null) { return pressureData_.get(index); } else { @@ -2839,10 +4154,10 @@ public Pressure_Sample getPressureData(int index) { } } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ public Builder setPressureData( - int index, Pressure_Sample value) { + int index, Traj.BarometerReading value) { if (pressureDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2856,10 +4171,10 @@ public Builder setPressureData( return this; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ public Builder setPressureData( - int index, Pressure_Sample.Builder builderForValue) { + int index, Traj.BarometerReading.Builder builderForValue) { if (pressureDataBuilder_ == null) { ensurePressureDataIsMutable(); pressureData_.set(index, builderForValue.build()); @@ -2870,9 +4185,9 @@ public Builder setPressureData( return this; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public Builder addPressureData(Pressure_Sample value) { + public Builder addPressureData(Traj.BarometerReading value) { if (pressureDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2886,10 +4201,10 @@ public Builder addPressureData(Pressure_Sample value) { return this; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ public Builder addPressureData( - int index, Pressure_Sample value) { + int index, Traj.BarometerReading value) { if (pressureDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2903,10 +4218,10 @@ public Builder addPressureData( return this; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ public Builder addPressureData( - Pressure_Sample.Builder builderForValue) { + Traj.BarometerReading.Builder builderForValue) { if (pressureDataBuilder_ == null) { ensurePressureDataIsMutable(); pressureData_.add(builderForValue.build()); @@ -2917,10 +4232,10 @@ public Builder addPressureData( return this; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ public Builder addPressureData( - int index, Pressure_Sample.Builder builderForValue) { + int index, Traj.BarometerReading.Builder builderForValue) { if (pressureDataBuilder_ == null) { ensurePressureDataIsMutable(); pressureData_.add(index, builderForValue.build()); @@ -2931,10 +4246,10 @@ public Builder addPressureData( return this; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ public Builder addAllPressureData( - Iterable values) { + java.lang.Iterable values) { if (pressureDataBuilder_ == null) { ensurePressureDataIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( @@ -2946,12 +4261,12 @@ public Builder addAllPressureData( return this; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ public Builder clearPressureData() { if (pressureDataBuilder_ == null) { pressureData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000010); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { pressureDataBuilder_.clear(); @@ -2959,7 +4274,7 @@ public Builder clearPressureData() { return this; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ public Builder removePressureData(int index) { if (pressureDataBuilder_ == null) { @@ -2972,16 +4287,16 @@ public Builder removePressureData(int index) { return this; } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public Pressure_Sample.Builder getPressureDataBuilder( + public Traj.BarometerReading.Builder getPressureDataBuilder( int index) { return getPressureDataFieldBuilder().getBuilder(index); } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public Pressure_SampleOrBuilder getPressureDataOrBuilder( + public Traj.BarometerReadingOrBuilder getPressureDataOrBuilder( int index) { if (pressureDataBuilder_ == null) { return pressureData_.get(index); } else { @@ -2989,9 +4304,9 @@ public Pressure_SampleOrBuilder getPressureDataOrBuilder( } } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public java.util.List + public java.util.List getPressureDataOrBuilderList() { if (pressureDataBuilder_ != null) { return pressureDataBuilder_.getMessageOrBuilderList(); @@ -3000,35 +4315,35 @@ public Pressure_SampleOrBuilder getPressureDataOrBuilder( } } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public Pressure_Sample.Builder addPressureDataBuilder() { + public Traj.BarometerReading.Builder addPressureDataBuilder() { return getPressureDataFieldBuilder().addBuilder( - Pressure_Sample.getDefaultInstance()); + Traj.BarometerReading.getDefaultInstance()); } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public Pressure_Sample.Builder addPressureDataBuilder( + public Traj.BarometerReading.Builder addPressureDataBuilder( int index) { return getPressureDataFieldBuilder().addBuilder( - index, Pressure_Sample.getDefaultInstance()); + index, Traj.BarometerReading.getDefaultInstance()); } /** - * repeated .Pressure_Sample pressure_data = 5; + * repeated .BarometerReading pressure_data = 7; */ - public java.util.List + public java.util.List getPressureDataBuilderList() { return getPressureDataFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - Pressure_Sample, Pressure_Sample.Builder, Pressure_SampleOrBuilder> + Traj.BarometerReading, Traj.BarometerReading.Builder, Traj.BarometerReadingOrBuilder> getPressureDataFieldBuilder() { if (pressureDataBuilder_ == null) { pressureDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - Pressure_Sample, Pressure_Sample.Builder, Pressure_SampleOrBuilder>( + Traj.BarometerReading, Traj.BarometerReading.Builder, Traj.BarometerReadingOrBuilder>( pressureData_, - ((bitField0_ & 0x00000010) == 0x00000010), + ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); pressureData_ = null; @@ -3036,22 +4351,22 @@ public Pressure_Sample.Builder addPressureDataBuilder( return pressureDataBuilder_; } - private java.util.List lightData_ = + private java.util.List lightData_ = java.util.Collections.emptyList(); private void ensureLightDataIsMutable() { - if (!((bitField0_ & 0x00000020) == 0x00000020)) { - lightData_ = new java.util.ArrayList(lightData_); - bitField0_ |= 0x00000020; + if (!((bitField0_ & 0x00000010) != 0)) { + lightData_ = new java.util.ArrayList(lightData_); + bitField0_ |= 0x00000010; } } private com.google.protobuf.RepeatedFieldBuilderV3< - Light_Sample, Light_Sample.Builder, Light_SampleOrBuilder> lightDataBuilder_; + Traj.LightReading, Traj.LightReading.Builder, Traj.LightReadingOrBuilder> lightDataBuilder_; /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public java.util.List getLightDataList() { + public java.util.List getLightDataList() { if (lightDataBuilder_ == null) { return java.util.Collections.unmodifiableList(lightData_); } else { @@ -3059,7 +4374,7 @@ public java.util.List getLightDataList() { } } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ public int getLightDataCount() { if (lightDataBuilder_ == null) { @@ -3069,9 +4384,9 @@ public int getLightDataCount() { } } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public Light_Sample getLightData(int index) { + public Traj.LightReading getLightData(int index) { if (lightDataBuilder_ == null) { return lightData_.get(index); } else { @@ -3079,10 +4394,10 @@ public Light_Sample getLightData(int index) { } } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ public Builder setLightData( - int index, Light_Sample value) { + int index, Traj.LightReading value) { if (lightDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -3096,10 +4411,10 @@ public Builder setLightData( return this; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ public Builder setLightData( - int index, Light_Sample.Builder builderForValue) { + int index, Traj.LightReading.Builder builderForValue) { if (lightDataBuilder_ == null) { ensureLightDataIsMutable(); lightData_.set(index, builderForValue.build()); @@ -3110,9 +4425,9 @@ public Builder setLightData( return this; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public Builder addLightData(Light_Sample value) { + public Builder addLightData(Traj.LightReading value) { if (lightDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -3126,10 +4441,10 @@ public Builder addLightData(Light_Sample value) { return this; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ public Builder addLightData( - int index, Light_Sample value) { + int index, Traj.LightReading value) { if (lightDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -3143,10 +4458,10 @@ public Builder addLightData( return this; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ public Builder addLightData( - Light_Sample.Builder builderForValue) { + Traj.LightReading.Builder builderForValue) { if (lightDataBuilder_ == null) { ensureLightDataIsMutable(); lightData_.add(builderForValue.build()); @@ -3157,10 +4472,10 @@ public Builder addLightData( return this; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ public Builder addLightData( - int index, Light_Sample.Builder builderForValue) { + int index, Traj.LightReading.Builder builderForValue) { if (lightDataBuilder_ == null) { ensureLightDataIsMutable(); lightData_.add(index, builderForValue.build()); @@ -3171,10 +4486,10 @@ public Builder addLightData( return this; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ public Builder addAllLightData( - Iterable values) { + java.lang.Iterable values) { if (lightDataBuilder_ == null) { ensureLightDataIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( @@ -3186,12 +4501,12 @@ public Builder addAllLightData( return this; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ public Builder clearLightData() { if (lightDataBuilder_ == null) { lightData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000020); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { lightDataBuilder_.clear(); @@ -3199,7 +4514,7 @@ public Builder clearLightData() { return this; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ public Builder removeLightData(int index) { if (lightDataBuilder_ == null) { @@ -3212,16 +4527,16 @@ public Builder removeLightData(int index) { return this; } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public Light_Sample.Builder getLightDataBuilder( + public Traj.LightReading.Builder getLightDataBuilder( int index) { return getLightDataFieldBuilder().getBuilder(index); } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public Light_SampleOrBuilder getLightDataOrBuilder( + public Traj.LightReadingOrBuilder getLightDataOrBuilder( int index) { if (lightDataBuilder_ == null) { return lightData_.get(index); } else { @@ -3229,9 +4544,9 @@ public Light_SampleOrBuilder getLightDataOrBuilder( } } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public java.util.List + public java.util.List getLightDataOrBuilderList() { if (lightDataBuilder_ != null) { return lightDataBuilder_.getMessageOrBuilderList(); @@ -3240,35 +4555,35 @@ public Light_SampleOrBuilder getLightDataOrBuilder( } } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public Light_Sample.Builder addLightDataBuilder() { + public Traj.LightReading.Builder addLightDataBuilder() { return getLightDataFieldBuilder().addBuilder( - Light_Sample.getDefaultInstance()); + Traj.LightReading.getDefaultInstance()); } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public Light_Sample.Builder addLightDataBuilder( + public Traj.LightReading.Builder addLightDataBuilder( int index) { return getLightDataFieldBuilder().addBuilder( - index, Light_Sample.getDefaultInstance()); + index, Traj.LightReading.getDefaultInstance()); } /** - * repeated .Light_Sample light_data = 6; + * repeated .LightReading light_data = 8; */ - public java.util.List + public java.util.List getLightDataBuilderList() { return getLightDataFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - Light_Sample, Light_Sample.Builder, Light_SampleOrBuilder> + Traj.LightReading, Traj.LightReading.Builder, Traj.LightReadingOrBuilder> getLightDataFieldBuilder() { if (lightDataBuilder_ == null) { lightDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - Light_Sample, Light_Sample.Builder, Light_SampleOrBuilder>( + Traj.LightReading, Traj.LightReading.Builder, Traj.LightReadingOrBuilder>( lightData_, - ((bitField0_ & 0x00000020) == 0x00000020), + ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); lightData_ = null; @@ -3276,502 +4591,742 @@ public Light_Sample.Builder addLightDataBuilder( return lightDataBuilder_; } - private java.util.List gnssData_ = + private java.util.List proximityData_ = java.util.Collections.emptyList(); - private void ensureGnssDataIsMutable() { - if (!((bitField0_ & 0x00000040) == 0x00000040)) { - gnssData_ = new java.util.ArrayList(gnssData_); - bitField0_ |= 0x00000040; + private void ensureProximityDataIsMutable() { + if (!((bitField0_ & 0x00000020) != 0)) { + proximityData_ = new java.util.ArrayList(proximityData_); + bitField0_ |= 0x00000020; } } private com.google.protobuf.RepeatedFieldBuilderV3< - GNSS_Sample, GNSS_Sample.Builder, GNSS_SampleOrBuilder> gnssDataBuilder_; + Traj.ProximityReading, Traj.ProximityReading.Builder, Traj.ProximityReadingOrBuilder> proximityDataBuilder_; /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public java.util.List getGnssDataList() { - if (gnssDataBuilder_ == null) { - return java.util.Collections.unmodifiableList(gnssData_); + public java.util.List getProximityDataList() { + if (proximityDataBuilder_ == null) { + return java.util.Collections.unmodifiableList(proximityData_); } else { - return gnssDataBuilder_.getMessageList(); + return proximityDataBuilder_.getMessageList(); } } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public int getGnssDataCount() { - if (gnssDataBuilder_ == null) { - return gnssData_.size(); + public int getProximityDataCount() { + if (proximityDataBuilder_ == null) { + return proximityData_.size(); } else { - return gnssDataBuilder_.getCount(); + return proximityDataBuilder_.getCount(); } } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public GNSS_Sample getGnssData(int index) { - if (gnssDataBuilder_ == null) { - return gnssData_.get(index); + public Traj.ProximityReading getProximityData(int index) { + if (proximityDataBuilder_ == null) { + return proximityData_.get(index); } else { - return gnssDataBuilder_.getMessage(index); + return proximityDataBuilder_.getMessage(index); } } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public Builder setGnssData( - int index, GNSS_Sample value) { - if (gnssDataBuilder_ == null) { + public Builder setProximityData( + int index, Traj.ProximityReading value) { + if (proximityDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureGnssDataIsMutable(); - gnssData_.set(index, value); + ensureProximityDataIsMutable(); + proximityData_.set(index, value); onChanged(); } else { - gnssDataBuilder_.setMessage(index, value); + proximityDataBuilder_.setMessage(index, value); } return this; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public Builder setGnssData( - int index, GNSS_Sample.Builder builderForValue) { - if (gnssDataBuilder_ == null) { - ensureGnssDataIsMutable(); - gnssData_.set(index, builderForValue.build()); + public Builder setProximityData( + int index, Traj.ProximityReading.Builder builderForValue) { + if (proximityDataBuilder_ == null) { + ensureProximityDataIsMutable(); + proximityData_.set(index, builderForValue.build()); onChanged(); } else { - gnssDataBuilder_.setMessage(index, builderForValue.build()); + proximityDataBuilder_.setMessage(index, builderForValue.build()); } return this; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public Builder addGnssData(GNSS_Sample value) { - if (gnssDataBuilder_ == null) { + public Builder addProximityData(Traj.ProximityReading value) { + if (proximityDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureGnssDataIsMutable(); - gnssData_.add(value); + ensureProximityDataIsMutable(); + proximityData_.add(value); onChanged(); } else { - gnssDataBuilder_.addMessage(value); + proximityDataBuilder_.addMessage(value); } return this; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public Builder addGnssData( - int index, GNSS_Sample value) { - if (gnssDataBuilder_ == null) { + public Builder addProximityData( + int index, Traj.ProximityReading value) { + if (proximityDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureGnssDataIsMutable(); - gnssData_.add(index, value); + ensureProximityDataIsMutable(); + proximityData_.add(index, value); onChanged(); } else { - gnssDataBuilder_.addMessage(index, value); + proximityDataBuilder_.addMessage(index, value); } return this; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public Builder addGnssData( - GNSS_Sample.Builder builderForValue) { - if (gnssDataBuilder_ == null) { - ensureGnssDataIsMutable(); - gnssData_.add(builderForValue.build()); + public Builder addProximityData( + Traj.ProximityReading.Builder builderForValue) { + if (proximityDataBuilder_ == null) { + ensureProximityDataIsMutable(); + proximityData_.add(builderForValue.build()); onChanged(); } else { - gnssDataBuilder_.addMessage(builderForValue.build()); + proximityDataBuilder_.addMessage(builderForValue.build()); } return this; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public Builder addGnssData( - int index, GNSS_Sample.Builder builderForValue) { - if (gnssDataBuilder_ == null) { - ensureGnssDataIsMutable(); - gnssData_.add(index, builderForValue.build()); + public Builder addProximityData( + int index, Traj.ProximityReading.Builder builderForValue) { + if (proximityDataBuilder_ == null) { + ensureProximityDataIsMutable(); + proximityData_.add(index, builderForValue.build()); onChanged(); } else { - gnssDataBuilder_.addMessage(index, builderForValue.build()); + proximityDataBuilder_.addMessage(index, builderForValue.build()); } return this; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public Builder addAllGnssData( - Iterable values) { - if (gnssDataBuilder_ == null) { - ensureGnssDataIsMutable(); + public Builder addAllProximityData( + java.lang.Iterable values) { + if (proximityDataBuilder_ == null) { + ensureProximityDataIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, gnssData_); + values, proximityData_); onChanged(); } else { - gnssDataBuilder_.addAllMessages(values); + proximityDataBuilder_.addAllMessages(values); } return this; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public Builder clearGnssData() { - if (gnssDataBuilder_ == null) { - gnssData_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000040); + public Builder clearProximityData() { + if (proximityDataBuilder_ == null) { + proximityData_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); onChanged(); } else { - gnssDataBuilder_.clear(); + proximityDataBuilder_.clear(); } return this; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public Builder removeGnssData(int index) { - if (gnssDataBuilder_ == null) { - ensureGnssDataIsMutable(); - gnssData_.remove(index); + public Builder removeProximityData(int index) { + if (proximityDataBuilder_ == null) { + ensureProximityDataIsMutable(); + proximityData_.remove(index); onChanged(); } else { - gnssDataBuilder_.remove(index); + proximityDataBuilder_.remove(index); } return this; } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public GNSS_Sample.Builder getGnssDataBuilder( + public Traj.ProximityReading.Builder getProximityDataBuilder( int index) { - return getGnssDataFieldBuilder().getBuilder(index); + return getProximityDataFieldBuilder().getBuilder(index); } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public GNSS_SampleOrBuilder getGnssDataOrBuilder( + public Traj.ProximityReadingOrBuilder getProximityDataOrBuilder( int index) { - if (gnssDataBuilder_ == null) { - return gnssData_.get(index); } else { - return gnssDataBuilder_.getMessageOrBuilder(index); + if (proximityDataBuilder_ == null) { + return proximityData_.get(index); } else { + return proximityDataBuilder_.getMessageOrBuilder(index); } } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public java.util.List - getGnssDataOrBuilderList() { - if (gnssDataBuilder_ != null) { - return gnssDataBuilder_.getMessageOrBuilderList(); + public java.util.List + getProximityDataOrBuilderList() { + if (proximityDataBuilder_ != null) { + return proximityDataBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(gnssData_); + return java.util.Collections.unmodifiableList(proximityData_); } } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public GNSS_Sample.Builder addGnssDataBuilder() { - return getGnssDataFieldBuilder().addBuilder( - GNSS_Sample.getDefaultInstance()); + public Traj.ProximityReading.Builder addProximityDataBuilder() { + return getProximityDataFieldBuilder().addBuilder( + Traj.ProximityReading.getDefaultInstance()); } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public GNSS_Sample.Builder addGnssDataBuilder( + public Traj.ProximityReading.Builder addProximityDataBuilder( int index) { - return getGnssDataFieldBuilder().addBuilder( - index, GNSS_Sample.getDefaultInstance()); + return getProximityDataFieldBuilder().addBuilder( + index, Traj.ProximityReading.getDefaultInstance()); } /** - * repeated .GNSS_Sample gnss_data = 7; + * repeated .ProximityReading proximity_data = 9; */ - public java.util.List - getGnssDataBuilderList() { - return getGnssDataFieldBuilder().getBuilderList(); + public java.util.List + getProximityDataBuilderList() { + return getProximityDataFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - GNSS_Sample, GNSS_Sample.Builder, GNSS_SampleOrBuilder> - getGnssDataFieldBuilder() { - if (gnssDataBuilder_ == null) { - gnssDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - GNSS_Sample, GNSS_Sample.Builder, GNSS_SampleOrBuilder>( - gnssData_, - ((bitField0_ & 0x00000040) == 0x00000040), + Traj.ProximityReading, Traj.ProximityReading.Builder, Traj.ProximityReadingOrBuilder> + getProximityDataFieldBuilder() { + if (proximityDataBuilder_ == null) { + proximityDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Traj.ProximityReading, Traj.ProximityReading.Builder, Traj.ProximityReadingOrBuilder>( + proximityData_, + ((bitField0_ & 0x00000020) != 0), getParentForChildren(), isClean()); - gnssData_ = null; + proximityData_ = null; } - return gnssDataBuilder_; + return proximityDataBuilder_; } - private java.util.List wifiData_ = + private java.util.List gnssData_ = java.util.Collections.emptyList(); - private void ensureWifiDataIsMutable() { - if (!((bitField0_ & 0x00000080) == 0x00000080)) { - wifiData_ = new java.util.ArrayList(wifiData_); - bitField0_ |= 0x00000080; + private void ensureGnssDataIsMutable() { + if (!((bitField0_ & 0x00000040) != 0)) { + gnssData_ = new java.util.ArrayList(gnssData_); + bitField0_ |= 0x00000040; } } private com.google.protobuf.RepeatedFieldBuilderV3< - WiFi_Sample, WiFi_Sample.Builder, WiFi_SampleOrBuilder> wifiDataBuilder_; + Traj.GNSSReading, Traj.GNSSReading.Builder, Traj.GNSSReadingOrBuilder> gnssDataBuilder_; /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .GNSSReading gnss_data = 10; */ - public java.util.List getWifiDataList() { - if (wifiDataBuilder_ == null) { - return java.util.Collections.unmodifiableList(wifiData_); + public java.util.List getGnssDataList() { + if (gnssDataBuilder_ == null) { + return java.util.Collections.unmodifiableList(gnssData_); } else { - return wifiDataBuilder_.getMessageList(); + return gnssDataBuilder_.getMessageList(); } } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .GNSSReading gnss_data = 10; */ - public int getWifiDataCount() { - if (wifiDataBuilder_ == null) { - return wifiData_.size(); + public int getGnssDataCount() { + if (gnssDataBuilder_ == null) { + return gnssData_.size(); + } else { + return gnssDataBuilder_.getCount(); + } + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Traj.GNSSReading getGnssData(int index) { + if (gnssDataBuilder_ == null) { + return gnssData_.get(index); + } else { + return gnssDataBuilder_.getMessage(index); + } + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Builder setGnssData( + int index, Traj.GNSSReading value) { + if (gnssDataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGnssDataIsMutable(); + gnssData_.set(index, value); + onChanged(); + } else { + gnssDataBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Builder setGnssData( + int index, Traj.GNSSReading.Builder builderForValue) { + if (gnssDataBuilder_ == null) { + ensureGnssDataIsMutable(); + gnssData_.set(index, builderForValue.build()); + onChanged(); + } else { + gnssDataBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Builder addGnssData(Traj.GNSSReading value) { + if (gnssDataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGnssDataIsMutable(); + gnssData_.add(value); + onChanged(); + } else { + gnssDataBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Builder addGnssData( + int index, Traj.GNSSReading value) { + if (gnssDataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureGnssDataIsMutable(); + gnssData_.add(index, value); + onChanged(); + } else { + gnssDataBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Builder addGnssData( + Traj.GNSSReading.Builder builderForValue) { + if (gnssDataBuilder_ == null) { + ensureGnssDataIsMutable(); + gnssData_.add(builderForValue.build()); + onChanged(); + } else { + gnssDataBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Builder addGnssData( + int index, Traj.GNSSReading.Builder builderForValue) { + if (gnssDataBuilder_ == null) { + ensureGnssDataIsMutable(); + gnssData_.add(index, builderForValue.build()); + onChanged(); + } else { + gnssDataBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Builder addAllGnssData( + java.lang.Iterable values) { + if (gnssDataBuilder_ == null) { + ensureGnssDataIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, gnssData_); + onChanged(); + } else { + gnssDataBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Builder clearGnssData() { + if (gnssDataBuilder_ == null) { + gnssData_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + } else { + gnssDataBuilder_.clear(); + } + return this; + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Builder removeGnssData(int index) { + if (gnssDataBuilder_ == null) { + ensureGnssDataIsMutable(); + gnssData_.remove(index); + onChanged(); + } else { + gnssDataBuilder_.remove(index); + } + return this; + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Traj.GNSSReading.Builder getGnssDataBuilder( + int index) { + return getGnssDataFieldBuilder().getBuilder(index); + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Traj.GNSSReadingOrBuilder getGnssDataOrBuilder( + int index) { + if (gnssDataBuilder_ == null) { + return gnssData_.get(index); } else { + return gnssDataBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public java.util.List + getGnssDataOrBuilderList() { + if (gnssDataBuilder_ != null) { + return gnssDataBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(gnssData_); + } + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Traj.GNSSReading.Builder addGnssDataBuilder() { + return getGnssDataFieldBuilder().addBuilder( + Traj.GNSSReading.getDefaultInstance()); + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public Traj.GNSSReading.Builder addGnssDataBuilder( + int index) { + return getGnssDataFieldBuilder().addBuilder( + index, Traj.GNSSReading.getDefaultInstance()); + } + /** + * repeated .GNSSReading gnss_data = 10; + */ + public java.util.List + getGnssDataBuilderList() { + return getGnssDataFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.GNSSReading, Traj.GNSSReading.Builder, Traj.GNSSReadingOrBuilder> + getGnssDataFieldBuilder() { + if (gnssDataBuilder_ == null) { + gnssDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Traj.GNSSReading, Traj.GNSSReading.Builder, Traj.GNSSReadingOrBuilder>( + gnssData_, + ((bitField0_ & 0x00000040) != 0), + getParentForChildren(), + isClean()); + gnssData_ = null; + } + return gnssDataBuilder_; + } + + private java.util.List wifiFingerprints_ = + java.util.Collections.emptyList(); + private void ensureWifiFingerprintsIsMutable() { + if (!((bitField0_ & 0x00000080) != 0)) { + wifiFingerprints_ = new java.util.ArrayList(wifiFingerprints_); + bitField0_ |= 0x00000080; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.Fingerprint, Traj.Fingerprint.Builder, Traj.FingerprintOrBuilder> wifiFingerprintsBuilder_; + + /** + * repeated .Fingerprint wifi_fingerprints = 11; + */ + public java.util.List getWifiFingerprintsList() { + if (wifiFingerprintsBuilder_ == null) { + return java.util.Collections.unmodifiableList(wifiFingerprints_); + } else { + return wifiFingerprintsBuilder_.getMessageList(); + } + } + /** + * repeated .Fingerprint wifi_fingerprints = 11; + */ + public int getWifiFingerprintsCount() { + if (wifiFingerprintsBuilder_ == null) { + return wifiFingerprints_.size(); } else { - return wifiDataBuilder_.getCount(); + return wifiFingerprintsBuilder_.getCount(); } } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public WiFi_Sample getWifiData(int index) { - if (wifiDataBuilder_ == null) { - return wifiData_.get(index); + public Traj.Fingerprint getWifiFingerprints(int index) { + if (wifiFingerprintsBuilder_ == null) { + return wifiFingerprints_.get(index); } else { - return wifiDataBuilder_.getMessage(index); + return wifiFingerprintsBuilder_.getMessage(index); } } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public Builder setWifiData( - int index, WiFi_Sample value) { - if (wifiDataBuilder_ == null) { + public Builder setWifiFingerprints( + int index, Traj.Fingerprint value) { + if (wifiFingerprintsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureWifiDataIsMutable(); - wifiData_.set(index, value); + ensureWifiFingerprintsIsMutable(); + wifiFingerprints_.set(index, value); onChanged(); } else { - wifiDataBuilder_.setMessage(index, value); + wifiFingerprintsBuilder_.setMessage(index, value); } return this; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public Builder setWifiData( - int index, WiFi_Sample.Builder builderForValue) { - if (wifiDataBuilder_ == null) { - ensureWifiDataIsMutable(); - wifiData_.set(index, builderForValue.build()); + public Builder setWifiFingerprints( + int index, Traj.Fingerprint.Builder builderForValue) { + if (wifiFingerprintsBuilder_ == null) { + ensureWifiFingerprintsIsMutable(); + wifiFingerprints_.set(index, builderForValue.build()); onChanged(); } else { - wifiDataBuilder_.setMessage(index, builderForValue.build()); + wifiFingerprintsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public Builder addWifiData(WiFi_Sample value) { - if (wifiDataBuilder_ == null) { + public Builder addWifiFingerprints(Traj.Fingerprint value) { + if (wifiFingerprintsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureWifiDataIsMutable(); - wifiData_.add(value); + ensureWifiFingerprintsIsMutable(); + wifiFingerprints_.add(value); onChanged(); } else { - wifiDataBuilder_.addMessage(value); + wifiFingerprintsBuilder_.addMessage(value); } return this; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public Builder addWifiData( - int index, WiFi_Sample value) { - if (wifiDataBuilder_ == null) { + public Builder addWifiFingerprints( + int index, Traj.Fingerprint value) { + if (wifiFingerprintsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureWifiDataIsMutable(); - wifiData_.add(index, value); + ensureWifiFingerprintsIsMutable(); + wifiFingerprints_.add(index, value); onChanged(); } else { - wifiDataBuilder_.addMessage(index, value); + wifiFingerprintsBuilder_.addMessage(index, value); } return this; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public Builder addWifiData( - WiFi_Sample.Builder builderForValue) { - if (wifiDataBuilder_ == null) { - ensureWifiDataIsMutable(); - wifiData_.add(builderForValue.build()); + public Builder addWifiFingerprints( + Traj.Fingerprint.Builder builderForValue) { + if (wifiFingerprintsBuilder_ == null) { + ensureWifiFingerprintsIsMutable(); + wifiFingerprints_.add(builderForValue.build()); onChanged(); } else { - wifiDataBuilder_.addMessage(builderForValue.build()); + wifiFingerprintsBuilder_.addMessage(builderForValue.build()); } return this; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public Builder addWifiData( - int index, WiFi_Sample.Builder builderForValue) { - if (wifiDataBuilder_ == null) { - ensureWifiDataIsMutable(); - wifiData_.add(index, builderForValue.build()); + public Builder addWifiFingerprints( + int index, Traj.Fingerprint.Builder builderForValue) { + if (wifiFingerprintsBuilder_ == null) { + ensureWifiFingerprintsIsMutable(); + wifiFingerprints_.add(index, builderForValue.build()); onChanged(); } else { - wifiDataBuilder_.addMessage(index, builderForValue.build()); + wifiFingerprintsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public Builder addAllWifiData( - Iterable values) { - if (wifiDataBuilder_ == null) { - ensureWifiDataIsMutable(); + public Builder addAllWifiFingerprints( + java.lang.Iterable values) { + if (wifiFingerprintsBuilder_ == null) { + ensureWifiFingerprintsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, wifiData_); + values, wifiFingerprints_); onChanged(); } else { - wifiDataBuilder_.addAllMessages(values); + wifiFingerprintsBuilder_.addAllMessages(values); } return this; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public Builder clearWifiData() { - if (wifiDataBuilder_ == null) { - wifiData_ = java.util.Collections.emptyList(); + public Builder clearWifiFingerprints() { + if (wifiFingerprintsBuilder_ == null) { + wifiFingerprints_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000080); onChanged(); } else { - wifiDataBuilder_.clear(); + wifiFingerprintsBuilder_.clear(); } return this; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public Builder removeWifiData(int index) { - if (wifiDataBuilder_ == null) { - ensureWifiDataIsMutable(); - wifiData_.remove(index); + public Builder removeWifiFingerprints(int index) { + if (wifiFingerprintsBuilder_ == null) { + ensureWifiFingerprintsIsMutable(); + wifiFingerprints_.remove(index); onChanged(); } else { - wifiDataBuilder_.remove(index); + wifiFingerprintsBuilder_.remove(index); } return this; } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public WiFi_Sample.Builder getWifiDataBuilder( + public Traj.Fingerprint.Builder getWifiFingerprintsBuilder( int index) { - return getWifiDataFieldBuilder().getBuilder(index); + return getWifiFingerprintsFieldBuilder().getBuilder(index); } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public WiFi_SampleOrBuilder getWifiDataOrBuilder( + public Traj.FingerprintOrBuilder getWifiFingerprintsOrBuilder( int index) { - if (wifiDataBuilder_ == null) { - return wifiData_.get(index); } else { - return wifiDataBuilder_.getMessageOrBuilder(index); + if (wifiFingerprintsBuilder_ == null) { + return wifiFingerprints_.get(index); } else { + return wifiFingerprintsBuilder_.getMessageOrBuilder(index); } } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public java.util.List - getWifiDataOrBuilderList() { - if (wifiDataBuilder_ != null) { - return wifiDataBuilder_.getMessageOrBuilderList(); + public java.util.List + getWifiFingerprintsOrBuilderList() { + if (wifiFingerprintsBuilder_ != null) { + return wifiFingerprintsBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(wifiData_); + return java.util.Collections.unmodifiableList(wifiFingerprints_); } } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public WiFi_Sample.Builder addWifiDataBuilder() { - return getWifiDataFieldBuilder().addBuilder( - WiFi_Sample.getDefaultInstance()); + public Traj.Fingerprint.Builder addWifiFingerprintsBuilder() { + return getWifiFingerprintsFieldBuilder().addBuilder( + Traj.Fingerprint.getDefaultInstance()); } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public WiFi_Sample.Builder addWifiDataBuilder( + public Traj.Fingerprint.Builder addWifiFingerprintsBuilder( int index) { - return getWifiDataFieldBuilder().addBuilder( - index, WiFi_Sample.getDefaultInstance()); + return getWifiFingerprintsFieldBuilder().addBuilder( + index, Traj.Fingerprint.getDefaultInstance()); } /** - * repeated .WiFi_Sample wifi_data = 8; + * repeated .Fingerprint wifi_fingerprints = 11; */ - public java.util.List - getWifiDataBuilderList() { - return getWifiDataFieldBuilder().getBuilderList(); + public java.util.List + getWifiFingerprintsBuilderList() { + return getWifiFingerprintsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - WiFi_Sample, WiFi_Sample.Builder, WiFi_SampleOrBuilder> - getWifiDataFieldBuilder() { - if (wifiDataBuilder_ == null) { - wifiDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - WiFi_Sample, WiFi_Sample.Builder, WiFi_SampleOrBuilder>( - wifiData_, - ((bitField0_ & 0x00000080) == 0x00000080), + Traj.Fingerprint, Traj.Fingerprint.Builder, Traj.FingerprintOrBuilder> + getWifiFingerprintsFieldBuilder() { + if (wifiFingerprintsBuilder_ == null) { + wifiFingerprintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Traj.Fingerprint, Traj.Fingerprint.Builder, Traj.FingerprintOrBuilder>( + wifiFingerprints_, + ((bitField0_ & 0x00000080) != 0), getParentForChildren(), isClean()); - wifiData_ = null; + wifiFingerprints_ = null; } - return wifiDataBuilder_; + return wifiFingerprintsBuilder_; } - private java.util.List apsData_ = + private java.util.List apsData_ = java.util.Collections.emptyList(); private void ensureApsDataIsMutable() { - if (!((bitField0_ & 0x00000100) == 0x00000100)) { - apsData_ = new java.util.ArrayList(apsData_); + if (!((bitField0_ & 0x00000100) != 0)) { + apsData_ = new java.util.ArrayList(apsData_); bitField0_ |= 0x00000100; } } private com.google.protobuf.RepeatedFieldBuilderV3< - AP_Data, AP_Data.Builder, AP_DataOrBuilder> apsDataBuilder_; + Traj.WiFiAPData, Traj.WiFiAPData.Builder, Traj.WiFiAPDataOrBuilder> apsDataBuilder_; /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public java.util.List getApsDataList() { + public java.util.List getApsDataList() { if (apsDataBuilder_ == null) { return java.util.Collections.unmodifiableList(apsData_); } else { @@ -3779,7 +5334,7 @@ public java.util.List getApsDataList() { } } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ public int getApsDataCount() { if (apsDataBuilder_ == null) { @@ -3789,9 +5344,9 @@ public int getApsDataCount() { } } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public AP_Data getApsData(int index) { + public Traj.WiFiAPData getApsData(int index) { if (apsDataBuilder_ == null) { return apsData_.get(index); } else { @@ -3799,10 +5354,10 @@ public AP_Data getApsData(int index) { } } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ public Builder setApsData( - int index, AP_Data value) { + int index, Traj.WiFiAPData value) { if (apsDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -3816,10 +5371,10 @@ public Builder setApsData( return this; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ public Builder setApsData( - int index, AP_Data.Builder builderForValue) { + int index, Traj.WiFiAPData.Builder builderForValue) { if (apsDataBuilder_ == null) { ensureApsDataIsMutable(); apsData_.set(index, builderForValue.build()); @@ -3830,9 +5385,9 @@ public Builder setApsData( return this; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public Builder addApsData(AP_Data value) { + public Builder addApsData(Traj.WiFiAPData value) { if (apsDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -3846,10 +5401,10 @@ public Builder addApsData(AP_Data value) { return this; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ public Builder addApsData( - int index, AP_Data value) { + int index, Traj.WiFiAPData value) { if (apsDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -3863,10 +5418,10 @@ public Builder addApsData( return this; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ public Builder addApsData( - AP_Data.Builder builderForValue) { + Traj.WiFiAPData.Builder builderForValue) { if (apsDataBuilder_ == null) { ensureApsDataIsMutable(); apsData_.add(builderForValue.build()); @@ -3877,10 +5432,10 @@ public Builder addApsData( return this; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ public Builder addApsData( - int index, AP_Data.Builder builderForValue) { + int index, Traj.WiFiAPData.Builder builderForValue) { if (apsDataBuilder_ == null) { ensureApsDataIsMutable(); apsData_.add(index, builderForValue.build()); @@ -3891,10 +5446,10 @@ public Builder addApsData( return this; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ public Builder addAllApsData( - Iterable values) { + java.lang.Iterable values) { if (apsDataBuilder_ == null) { ensureApsDataIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( @@ -3906,7 +5461,7 @@ public Builder addAllApsData( return this; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ public Builder clearApsData() { if (apsDataBuilder_ == null) { @@ -3919,7 +5474,7 @@ public Builder clearApsData() { return this; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ public Builder removeApsData(int index) { if (apsDataBuilder_ == null) { @@ -3932,16 +5487,16 @@ public Builder removeApsData(int index) { return this; } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public AP_Data.Builder getApsDataBuilder( + public Traj.WiFiAPData.Builder getApsDataBuilder( int index) { return getApsDataFieldBuilder().getBuilder(index); } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public AP_DataOrBuilder getApsDataOrBuilder( + public Traj.WiFiAPDataOrBuilder getApsDataOrBuilder( int index) { if (apsDataBuilder_ == null) { return apsData_.get(index); } else { @@ -3949,9 +5504,9 @@ public AP_DataOrBuilder getApsDataOrBuilder( } } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public java.util.List + public java.util.List getApsDataOrBuilderList() { if (apsDataBuilder_ != null) { return apsDataBuilder_.getMessageOrBuilderList(); @@ -3960,35 +5515,35 @@ public AP_DataOrBuilder getApsDataOrBuilder( } } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public AP_Data.Builder addApsDataBuilder() { + public Traj.WiFiAPData.Builder addApsDataBuilder() { return getApsDataFieldBuilder().addBuilder( - AP_Data.getDefaultInstance()); + Traj.WiFiAPData.getDefaultInstance()); } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public AP_Data.Builder addApsDataBuilder( + public Traj.WiFiAPData.Builder addApsDataBuilder( int index) { return getApsDataFieldBuilder().addBuilder( - index, AP_Data.getDefaultInstance()); + index, Traj.WiFiAPData.getDefaultInstance()); } /** - * repeated .AP_Data aps_data = 9; + * repeated .WiFiAPData aps_data = 12; */ - public java.util.List + public java.util.List getApsDataBuilderList() { return getApsDataFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< - AP_Data, AP_Data.Builder, AP_DataOrBuilder> + Traj.WiFiAPData, Traj.WiFiAPData.Builder, Traj.WiFiAPDataOrBuilder> getApsDataFieldBuilder() { if (apsDataBuilder_ == null) { apsDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - AP_Data, AP_Data.Builder, AP_DataOrBuilder>( + Traj.WiFiAPData, Traj.WiFiAPData.Builder, Traj.WiFiAPDataOrBuilder>( apsData_, - ((bitField0_ & 0x00000100) == 0x00000100), + ((bitField0_ & 0x00000100) != 0), getParentForChildren(), isClean()); apsData_ = null; @@ -3996,938 +5551,6958 @@ public AP_Data.Builder addApsDataBuilder( return apsDataBuilder_; } - private long startTimestamp_ ; - /** - *
-       * UNIX timestamp (in milliseconds) recorded from the start of this
-       * trajectory data collection event. All future
-       * timestamps in sub classes are to be RELATIVE timestamps
-       * (in milliseconds) to this start time.
-       * E.g.
-       * start_timestamp = 1674819807315 (UTC 27 Jan 2023 in the morning)
-       * relative_timestamp = 3000 (3s)
-       * 
- * - * optional int64 start_timestamp = 10; - */ - public long getStartTimestamp() { - return startTimestamp_; + private java.util.List wifiRttData_ = + java.util.Collections.emptyList(); + private void ensureWifiRttDataIsMutable() { + if (!((bitField0_ & 0x00000200) != 0)) { + wifiRttData_ = new java.util.ArrayList(wifiRttData_); + bitField0_ |= 0x00000200; + } } + + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.WiFiRTTReading, Traj.WiFiRTTReading.Builder, Traj.WiFiRTTReadingOrBuilder> wifiRttDataBuilder_; + /** - *
-       * UNIX timestamp (in milliseconds) recorded from the start of this
-       * trajectory data collection event. All future
-       * timestamps in sub classes are to be RELATIVE timestamps
-       * (in milliseconds) to this start time.
-       * E.g.
-       * start_timestamp = 1674819807315 (UTC 27 Jan 2023 in the morning)
-       * relative_timestamp = 3000 (3s)
-       * 
- * - * optional int64 start_timestamp = 10; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Builder setStartTimestamp(long value) { - - startTimestamp_ = value; - onChanged(); - return this; + public java.util.List getWifiRttDataList() { + if (wifiRttDataBuilder_ == null) { + return java.util.Collections.unmodifiableList(wifiRttData_); + } else { + return wifiRttDataBuilder_.getMessageList(); + } } /** - *
-       * UNIX timestamp (in milliseconds) recorded from the start of this
-       * trajectory data collection event. All future
-       * timestamps in sub classes are to be RELATIVE timestamps
-       * (in milliseconds) to this start time.
-       * E.g.
-       * start_timestamp = 1674819807315 (UTC 27 Jan 2023 in the morning)
-       * relative_timestamp = 3000 (3s)
-       * 
- * - * optional int64 start_timestamp = 10; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Builder clearStartTimestamp() { - - startTimestamp_ = 0L; - onChanged(); - return this; + public int getWifiRttDataCount() { + if (wifiRttDataBuilder_ == null) { + return wifiRttData_.size(); + } else { + return wifiRttDataBuilder_.getCount(); + } } - - private Object dataIdentifier_ = ""; /** - * optional string data_identifier = 11; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public String getDataIdentifier() { - Object ref = dataIdentifier_; - if (!(ref instanceof String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); - dataIdentifier_ = s; - return s; + public Traj.WiFiRTTReading getWifiRttData(int index) { + if (wifiRttDataBuilder_ == null) { + return wifiRttData_.get(index); } else { - return (String) ref; + return wifiRttDataBuilder_.getMessage(index); } } /** - * optional string data_identifier = 11; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public com.google.protobuf.ByteString - getDataIdentifierBytes() { - Object ref = dataIdentifier_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); - dataIdentifier_ = b; - return b; + public Builder setWifiRttData( + int index, Traj.WiFiRTTReading value) { + if (wifiRttDataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWifiRttDataIsMutable(); + wifiRttData_.set(index, value); + onChanged(); } else { - return (com.google.protobuf.ByteString) ref; + wifiRttDataBuilder_.setMessage(index, value); } - } - /** - * optional string data_identifier = 11; - */ - public Builder setDataIdentifier( - String value) { - if (value == null) { - throw new NullPointerException(); - } - - dataIdentifier_ = value; - onChanged(); return this; } /** - * optional string data_identifier = 11; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Builder clearDataIdentifier() { - - dataIdentifier_ = getDefaultInstance().getDataIdentifier(); - onChanged(); + public Builder setWifiRttData( + int index, Traj.WiFiRTTReading.Builder builderForValue) { + if (wifiRttDataBuilder_ == null) { + ensureWifiRttDataIsMutable(); + wifiRttData_.set(index, builderForValue.build()); + onChanged(); + } else { + wifiRttDataBuilder_.setMessage(index, builderForValue.build()); + } return this; } /** - * optional string data_identifier = 11; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Builder setDataIdentifierBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - dataIdentifier_ = value; - onChanged(); + public Builder addWifiRttData(Traj.WiFiRTTReading value) { + if (wifiRttDataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWifiRttDataIsMutable(); + wifiRttData_.add(value); + onChanged(); + } else { + wifiRttDataBuilder_.addMessage(value); + } return this; } - - private Sensor_Info accelerometerInfo_ = null; - private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> accelerometerInfoBuilder_; /** - * optional .Sensor_Info accelerometer_info = 12; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public boolean hasAccelerometerInfo() { - return accelerometerInfoBuilder_ != null || accelerometerInfo_ != null; + public Builder addWifiRttData( + int index, Traj.WiFiRTTReading value) { + if (wifiRttDataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWifiRttDataIsMutable(); + wifiRttData_.add(index, value); + onChanged(); + } else { + wifiRttDataBuilder_.addMessage(index, value); + } + return this; } /** - * optional .Sensor_Info accelerometer_info = 12; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Sensor_Info getAccelerometerInfo() { - if (accelerometerInfoBuilder_ == null) { - return accelerometerInfo_ == null ? Sensor_Info.getDefaultInstance() : accelerometerInfo_; + public Builder addWifiRttData( + Traj.WiFiRTTReading.Builder builderForValue) { + if (wifiRttDataBuilder_ == null) { + ensureWifiRttDataIsMutable(); + wifiRttData_.add(builderForValue.build()); + onChanged(); } else { - return accelerometerInfoBuilder_.getMessage(); + wifiRttDataBuilder_.addMessage(builderForValue.build()); } + return this; } /** - * optional .Sensor_Info accelerometer_info = 12; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Builder setAccelerometerInfo(Sensor_Info value) { - if (accelerometerInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - accelerometerInfo_ = value; + public Builder addWifiRttData( + int index, Traj.WiFiRTTReading.Builder builderForValue) { + if (wifiRttDataBuilder_ == null) { + ensureWifiRttDataIsMutable(); + wifiRttData_.add(index, builderForValue.build()); onChanged(); } else { - accelerometerInfoBuilder_.setMessage(value); + wifiRttDataBuilder_.addMessage(index, builderForValue.build()); } - return this; } /** - * optional .Sensor_Info accelerometer_info = 12; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Builder setAccelerometerInfo( - Sensor_Info.Builder builderForValue) { - if (accelerometerInfoBuilder_ == null) { - accelerometerInfo_ = builderForValue.build(); + public Builder addAllWifiRttData( + java.lang.Iterable values) { + if (wifiRttDataBuilder_ == null) { + ensureWifiRttDataIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, wifiRttData_); onChanged(); } else { - accelerometerInfoBuilder_.setMessage(builderForValue.build()); + wifiRttDataBuilder_.addAllMessages(values); } - return this; } /** - * optional .Sensor_Info accelerometer_info = 12; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Builder mergeAccelerometerInfo(Sensor_Info value) { - if (accelerometerInfoBuilder_ == null) { - if (accelerometerInfo_ != null) { - accelerometerInfo_ = - Sensor_Info.newBuilder(accelerometerInfo_).mergeFrom(value).buildPartial(); - } else { - accelerometerInfo_ = value; - } + public Builder clearWifiRttData() { + if (wifiRttDataBuilder_ == null) { + wifiRttData_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000200); onChanged(); } else { - accelerometerInfoBuilder_.mergeFrom(value); + wifiRttDataBuilder_.clear(); } - return this; } /** - * optional .Sensor_Info accelerometer_info = 12; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Builder clearAccelerometerInfo() { - if (accelerometerInfoBuilder_ == null) { - accelerometerInfo_ = null; + public Builder removeWifiRttData(int index) { + if (wifiRttDataBuilder_ == null) { + ensureWifiRttDataIsMutable(); + wifiRttData_.remove(index); onChanged(); } else { - accelerometerInfo_ = null; - accelerometerInfoBuilder_ = null; + wifiRttDataBuilder_.remove(index); } - return this; } /** - * optional .Sensor_Info accelerometer_info = 12; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Sensor_Info.Builder getAccelerometerInfoBuilder() { - - onChanged(); - return getAccelerometerInfoFieldBuilder().getBuilder(); + public Traj.WiFiRTTReading.Builder getWifiRttDataBuilder( + int index) { + return getWifiRttDataFieldBuilder().getBuilder(index); } /** - * optional .Sensor_Info accelerometer_info = 12; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - public Sensor_InfoOrBuilder getAccelerometerInfoOrBuilder() { - if (accelerometerInfoBuilder_ != null) { - return accelerometerInfoBuilder_.getMessageOrBuilder(); + public Traj.WiFiRTTReadingOrBuilder getWifiRttDataOrBuilder( + int index) { + if (wifiRttDataBuilder_ == null) { + return wifiRttData_.get(index); } else { + return wifiRttDataBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .WiFiRTTReading wifi_rtt_data = 13; + */ + public java.util.List + getWifiRttDataOrBuilderList() { + if (wifiRttDataBuilder_ != null) { + return wifiRttDataBuilder_.getMessageOrBuilderList(); } else { - return accelerometerInfo_ == null ? - Sensor_Info.getDefaultInstance() : accelerometerInfo_; + return java.util.Collections.unmodifiableList(wifiRttData_); } } /** - * optional .Sensor_Info accelerometer_info = 12; + * repeated .WiFiRTTReading wifi_rtt_data = 13; */ - private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> - getAccelerometerInfoFieldBuilder() { - if (accelerometerInfoBuilder_ == null) { - accelerometerInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder>( - getAccelerometerInfo(), + public Traj.WiFiRTTReading.Builder addWifiRttDataBuilder() { + return getWifiRttDataFieldBuilder().addBuilder( + Traj.WiFiRTTReading.getDefaultInstance()); + } + /** + * repeated .WiFiRTTReading wifi_rtt_data = 13; + */ + public Traj.WiFiRTTReading.Builder addWifiRttDataBuilder( + int index) { + return getWifiRttDataFieldBuilder().addBuilder( + index, Traj.WiFiRTTReading.getDefaultInstance()); + } + /** + * repeated .WiFiRTTReading wifi_rtt_data = 13; + */ + public java.util.List + getWifiRttDataBuilderList() { + return getWifiRttDataFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.WiFiRTTReading, Traj.WiFiRTTReading.Builder, Traj.WiFiRTTReadingOrBuilder> + getWifiRttDataFieldBuilder() { + if (wifiRttDataBuilder_ == null) { + wifiRttDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Traj.WiFiRTTReading, Traj.WiFiRTTReading.Builder, Traj.WiFiRTTReadingOrBuilder>( + wifiRttData_, + ((bitField0_ & 0x00000200) != 0), getParentForChildren(), isClean()); - accelerometerInfo_ = null; + wifiRttData_ = null; } - return accelerometerInfoBuilder_; + return wifiRttDataBuilder_; } - private Sensor_Info gyroscopeInfo_ = null; - private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> gyroscopeInfoBuilder_; + private java.util.List bleFingerprints_ = + java.util.Collections.emptyList(); + private void ensureBleFingerprintsIsMutable() { + if (!((bitField0_ & 0x00000400) != 0)) { + bleFingerprints_ = new java.util.ArrayList(bleFingerprints_); + bitField0_ |= 0x00000400; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.Fingerprint, Traj.Fingerprint.Builder, Traj.FingerprintOrBuilder> bleFingerprintsBuilder_; + /** - * optional .Sensor_Info gyroscope_info = 13; + * repeated .Fingerprint ble_fingerprints = 14; */ - public boolean hasGyroscopeInfo() { - return gyroscopeInfoBuilder_ != null || gyroscopeInfo_ != null; + public java.util.List getBleFingerprintsList() { + if (bleFingerprintsBuilder_ == null) { + return java.util.Collections.unmodifiableList(bleFingerprints_); + } else { + return bleFingerprintsBuilder_.getMessageList(); + } } /** - * optional .Sensor_Info gyroscope_info = 13; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Sensor_Info getGyroscopeInfo() { - if (gyroscopeInfoBuilder_ == null) { - return gyroscopeInfo_ == null ? Sensor_Info.getDefaultInstance() : gyroscopeInfo_; + public int getBleFingerprintsCount() { + if (bleFingerprintsBuilder_ == null) { + return bleFingerprints_.size(); } else { - return gyroscopeInfoBuilder_.getMessage(); + return bleFingerprintsBuilder_.getCount(); } } /** - * optional .Sensor_Info gyroscope_info = 13; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Builder setGyroscopeInfo(Sensor_Info value) { - if (gyroscopeInfoBuilder_ == null) { + public Traj.Fingerprint getBleFingerprints(int index) { + if (bleFingerprintsBuilder_ == null) { + return bleFingerprints_.get(index); + } else { + return bleFingerprintsBuilder_.getMessage(index); + } + } + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + public Builder setBleFingerprints( + int index, Traj.Fingerprint value) { + if (bleFingerprintsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - gyroscopeInfo_ = value; + ensureBleFingerprintsIsMutable(); + bleFingerprints_.set(index, value); onChanged(); } else { - gyroscopeInfoBuilder_.setMessage(value); + bleFingerprintsBuilder_.setMessage(index, value); } - return this; } /** - * optional .Sensor_Info gyroscope_info = 13; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Builder setGyroscopeInfo( - Sensor_Info.Builder builderForValue) { - if (gyroscopeInfoBuilder_ == null) { - gyroscopeInfo_ = builderForValue.build(); + public Builder setBleFingerprints( + int index, Traj.Fingerprint.Builder builderForValue) { + if (bleFingerprintsBuilder_ == null) { + ensureBleFingerprintsIsMutable(); + bleFingerprints_.set(index, builderForValue.build()); onChanged(); } else { - gyroscopeInfoBuilder_.setMessage(builderForValue.build()); + bleFingerprintsBuilder_.setMessage(index, builderForValue.build()); } - return this; } /** - * optional .Sensor_Info gyroscope_info = 13; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Builder mergeGyroscopeInfo(Sensor_Info value) { - if (gyroscopeInfoBuilder_ == null) { - if (gyroscopeInfo_ != null) { - gyroscopeInfo_ = - Sensor_Info.newBuilder(gyroscopeInfo_).mergeFrom(value).buildPartial(); - } else { - gyroscopeInfo_ = value; + public Builder addBleFingerprints(Traj.Fingerprint value) { + if (bleFingerprintsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); } + ensureBleFingerprintsIsMutable(); + bleFingerprints_.add(value); onChanged(); } else { - gyroscopeInfoBuilder_.mergeFrom(value); + bleFingerprintsBuilder_.addMessage(value); } - return this; } /** - * optional .Sensor_Info gyroscope_info = 13; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Builder clearGyroscopeInfo() { - if (gyroscopeInfoBuilder_ == null) { - gyroscopeInfo_ = null; + public Builder addBleFingerprints( + int index, Traj.Fingerprint value) { + if (bleFingerprintsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureBleFingerprintsIsMutable(); + bleFingerprints_.add(index, value); onChanged(); } else { - gyroscopeInfo_ = null; - gyroscopeInfoBuilder_ = null; + bleFingerprintsBuilder_.addMessage(index, value); } - return this; } /** - * optional .Sensor_Info gyroscope_info = 13; - */ - public Sensor_Info.Builder getGyroscopeInfoBuilder() { - - onChanged(); - return getGyroscopeInfoFieldBuilder().getBuilder(); - } - /** - * optional .Sensor_Info gyroscope_info = 13; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Sensor_InfoOrBuilder getGyroscopeInfoOrBuilder() { - if (gyroscopeInfoBuilder_ != null) { - return gyroscopeInfoBuilder_.getMessageOrBuilder(); + public Builder addBleFingerprints( + Traj.Fingerprint.Builder builderForValue) { + if (bleFingerprintsBuilder_ == null) { + ensureBleFingerprintsIsMutable(); + bleFingerprints_.add(builderForValue.build()); + onChanged(); } else { - return gyroscopeInfo_ == null ? - Sensor_Info.getDefaultInstance() : gyroscopeInfo_; + bleFingerprintsBuilder_.addMessage(builderForValue.build()); } + return this; } /** - * optional .Sensor_Info gyroscope_info = 13; + * repeated .Fingerprint ble_fingerprints = 14; */ - private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> - getGyroscopeInfoFieldBuilder() { - if (gyroscopeInfoBuilder_ == null) { - gyroscopeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder>( - getGyroscopeInfo(), - getParentForChildren(), - isClean()); - gyroscopeInfo_ = null; + public Builder addBleFingerprints( + int index, Traj.Fingerprint.Builder builderForValue) { + if (bleFingerprintsBuilder_ == null) { + ensureBleFingerprintsIsMutable(); + bleFingerprints_.add(index, builderForValue.build()); + onChanged(); + } else { + bleFingerprintsBuilder_.addMessage(index, builderForValue.build()); } - return gyroscopeInfoBuilder_; - } - - private Sensor_Info rotationVectorInfo_ = null; - private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> rotationVectorInfoBuilder_; - /** - * optional .Sensor_Info rotation_vector_info = 14; - */ - public boolean hasRotationVectorInfo() { - return rotationVectorInfoBuilder_ != null || rotationVectorInfo_ != null; + return this; } /** - * optional .Sensor_Info rotation_vector_info = 14; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Sensor_Info getRotationVectorInfo() { - if (rotationVectorInfoBuilder_ == null) { - return rotationVectorInfo_ == null ? Sensor_Info.getDefaultInstance() : rotationVectorInfo_; + public Builder addAllBleFingerprints( + java.lang.Iterable values) { + if (bleFingerprintsBuilder_ == null) { + ensureBleFingerprintsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, bleFingerprints_); + onChanged(); } else { - return rotationVectorInfoBuilder_.getMessage(); + bleFingerprintsBuilder_.addAllMessages(values); } + return this; } /** - * optional .Sensor_Info rotation_vector_info = 14; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Builder setRotationVectorInfo(Sensor_Info value) { - if (rotationVectorInfoBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - rotationVectorInfo_ = value; + public Builder clearBleFingerprints() { + if (bleFingerprintsBuilder_ == null) { + bleFingerprints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000400); onChanged(); } else { - rotationVectorInfoBuilder_.setMessage(value); + bleFingerprintsBuilder_.clear(); } - return this; } /** - * optional .Sensor_Info rotation_vector_info = 14; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Builder setRotationVectorInfo( - Sensor_Info.Builder builderForValue) { - if (rotationVectorInfoBuilder_ == null) { - rotationVectorInfo_ = builderForValue.build(); + public Builder removeBleFingerprints(int index) { + if (bleFingerprintsBuilder_ == null) { + ensureBleFingerprintsIsMutable(); + bleFingerprints_.remove(index); onChanged(); } else { - rotationVectorInfoBuilder_.setMessage(builderForValue.build()); + bleFingerprintsBuilder_.remove(index); } - return this; } /** - * optional .Sensor_Info rotation_vector_info = 14; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Builder mergeRotationVectorInfo(Sensor_Info value) { - if (rotationVectorInfoBuilder_ == null) { - if (rotationVectorInfo_ != null) { - rotationVectorInfo_ = - Sensor_Info.newBuilder(rotationVectorInfo_).mergeFrom(value).buildPartial(); - } else { - rotationVectorInfo_ = value; - } - onChanged(); - } else { - rotationVectorInfoBuilder_.mergeFrom(value); + public Traj.Fingerprint.Builder getBleFingerprintsBuilder( + int index) { + return getBleFingerprintsFieldBuilder().getBuilder(index); + } + /** + * repeated .Fingerprint ble_fingerprints = 14; + */ + public Traj.FingerprintOrBuilder getBleFingerprintsOrBuilder( + int index) { + if (bleFingerprintsBuilder_ == null) { + return bleFingerprints_.get(index); } else { + return bleFingerprintsBuilder_.getMessageOrBuilder(index); } - - return this; } /** - * optional .Sensor_Info rotation_vector_info = 14; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Builder clearRotationVectorInfo() { - if (rotationVectorInfoBuilder_ == null) { - rotationVectorInfo_ = null; - onChanged(); + public java.util.List + getBleFingerprintsOrBuilderList() { + if (bleFingerprintsBuilder_ != null) { + return bleFingerprintsBuilder_.getMessageOrBuilderList(); } else { - rotationVectorInfo_ = null; - rotationVectorInfoBuilder_ = null; + return java.util.Collections.unmodifiableList(bleFingerprints_); } - - return this; } /** - * optional .Sensor_Info rotation_vector_info = 14; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Sensor_Info.Builder getRotationVectorInfoBuilder() { - - onChanged(); - return getRotationVectorInfoFieldBuilder().getBuilder(); + public Traj.Fingerprint.Builder addBleFingerprintsBuilder() { + return getBleFingerprintsFieldBuilder().addBuilder( + Traj.Fingerprint.getDefaultInstance()); } /** - * optional .Sensor_Info rotation_vector_info = 14; + * repeated .Fingerprint ble_fingerprints = 14; */ - public Sensor_InfoOrBuilder getRotationVectorInfoOrBuilder() { - if (rotationVectorInfoBuilder_ != null) { - return rotationVectorInfoBuilder_.getMessageOrBuilder(); - } else { - return rotationVectorInfo_ == null ? - Sensor_Info.getDefaultInstance() : rotationVectorInfo_; - } + public Traj.Fingerprint.Builder addBleFingerprintsBuilder( + int index) { + return getBleFingerprintsFieldBuilder().addBuilder( + index, Traj.Fingerprint.getDefaultInstance()); } /** - * optional .Sensor_Info rotation_vector_info = 14; + * repeated .Fingerprint ble_fingerprints = 14; */ - private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> - getRotationVectorInfoFieldBuilder() { - if (rotationVectorInfoBuilder_ == null) { - rotationVectorInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder>( - getRotationVectorInfo(), + public java.util.List + getBleFingerprintsBuilderList() { + return getBleFingerprintsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.Fingerprint, Traj.Fingerprint.Builder, Traj.FingerprintOrBuilder> + getBleFingerprintsFieldBuilder() { + if (bleFingerprintsBuilder_ == null) { + bleFingerprintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Traj.Fingerprint, Traj.Fingerprint.Builder, Traj.FingerprintOrBuilder>( + bleFingerprints_, + ((bitField0_ & 0x00000400) != 0), getParentForChildren(), isClean()); - rotationVectorInfo_ = null; + bleFingerprints_ = null; } - return rotationVectorInfoBuilder_; + return bleFingerprintsBuilder_; } - private Sensor_Info magnetometerInfo_ = null; - private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> magnetometerInfoBuilder_; + private java.util.List bleData_ = + java.util.Collections.emptyList(); + private void ensureBleDataIsMutable() { + if (!((bitField0_ & 0x00000800) != 0)) { + bleData_ = new java.util.ArrayList(bleData_); + bitField0_ |= 0x00000800; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.BleData, Traj.BleData.Builder, Traj.BleDataOrBuilder> bleDataBuilder_; + /** - * optional .Sensor_Info magnetometer_info = 15; + * repeated .BleData ble_data = 15; */ - public boolean hasMagnetometerInfo() { - return magnetometerInfoBuilder_ != null || magnetometerInfo_ != null; + public java.util.List getBleDataList() { + if (bleDataBuilder_ == null) { + return java.util.Collections.unmodifiableList(bleData_); + } else { + return bleDataBuilder_.getMessageList(); + } } /** - * optional .Sensor_Info magnetometer_info = 15; + * repeated .BleData ble_data = 15; */ - public Sensor_Info getMagnetometerInfo() { - if (magnetometerInfoBuilder_ == null) { - return magnetometerInfo_ == null ? Sensor_Info.getDefaultInstance() : magnetometerInfo_; + public int getBleDataCount() { + if (bleDataBuilder_ == null) { + return bleData_.size(); } else { - return magnetometerInfoBuilder_.getMessage(); + return bleDataBuilder_.getCount(); } } /** - * optional .Sensor_Info magnetometer_info = 15; + * repeated .BleData ble_data = 15; */ - public Builder setMagnetometerInfo(Sensor_Info value) { - if (magnetometerInfoBuilder_ == null) { + public Traj.BleData getBleData(int index) { + if (bleDataBuilder_ == null) { + return bleData_.get(index); + } else { + return bleDataBuilder_.getMessage(index); + } + } + /** + * repeated .BleData ble_data = 15; + */ + public Builder setBleData( + int index, Traj.BleData value) { + if (bleDataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - magnetometerInfo_ = value; + ensureBleDataIsMutable(); + bleData_.set(index, value); onChanged(); } else { - magnetometerInfoBuilder_.setMessage(value); + bleDataBuilder_.setMessage(index, value); } - return this; } /** - * optional .Sensor_Info magnetometer_info = 15; + * repeated .BleData ble_data = 15; */ - public Builder setMagnetometerInfo( - Sensor_Info.Builder builderForValue) { - if (magnetometerInfoBuilder_ == null) { - magnetometerInfo_ = builderForValue.build(); + public Builder setBleData( + int index, Traj.BleData.Builder builderForValue) { + if (bleDataBuilder_ == null) { + ensureBleDataIsMutable(); + bleData_.set(index, builderForValue.build()); onChanged(); } else { - magnetometerInfoBuilder_.setMessage(builderForValue.build()); + bleDataBuilder_.setMessage(index, builderForValue.build()); } - return this; } /** - * optional .Sensor_Info magnetometer_info = 15; + * repeated .BleData ble_data = 15; */ - public Builder mergeMagnetometerInfo(Sensor_Info value) { - if (magnetometerInfoBuilder_ == null) { - if (magnetometerInfo_ != null) { - magnetometerInfo_ = - Sensor_Info.newBuilder(magnetometerInfo_).mergeFrom(value).buildPartial(); - } else { - magnetometerInfo_ = value; + public Builder addBleData(Traj.BleData value) { + if (bleDataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); } + ensureBleDataIsMutable(); + bleData_.add(value); onChanged(); } else { - magnetometerInfoBuilder_.mergeFrom(value); + bleDataBuilder_.addMessage(value); } - return this; } /** - * optional .Sensor_Info magnetometer_info = 15; + * repeated .BleData ble_data = 15; */ - public Builder clearMagnetometerInfo() { - if (magnetometerInfoBuilder_ == null) { - magnetometerInfo_ = null; + public Builder addBleData( + int index, Traj.BleData value) { + if (bleDataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureBleDataIsMutable(); + bleData_.add(index, value); onChanged(); } else { - magnetometerInfo_ = null; - magnetometerInfoBuilder_ = null; + bleDataBuilder_.addMessage(index, value); } - return this; } /** - * optional .Sensor_Info magnetometer_info = 15; + * repeated .BleData ble_data = 15; */ - public Sensor_Info.Builder getMagnetometerInfoBuilder() { - - onChanged(); - return getMagnetometerInfoFieldBuilder().getBuilder(); + public Builder addBleData( + Traj.BleData.Builder builderForValue) { + if (bleDataBuilder_ == null) { + ensureBleDataIsMutable(); + bleData_.add(builderForValue.build()); + onChanged(); + } else { + bleDataBuilder_.addMessage(builderForValue.build()); + } + return this; } /** - * optional .Sensor_Info magnetometer_info = 15; + * repeated .BleData ble_data = 15; */ - public Sensor_InfoOrBuilder getMagnetometerInfoOrBuilder() { - if (magnetometerInfoBuilder_ != null) { - return magnetometerInfoBuilder_.getMessageOrBuilder(); + public Builder addBleData( + int index, Traj.BleData.Builder builderForValue) { + if (bleDataBuilder_ == null) { + ensureBleDataIsMutable(); + bleData_.add(index, builderForValue.build()); + onChanged(); } else { - return magnetometerInfo_ == null ? - Sensor_Info.getDefaultInstance() : magnetometerInfo_; + bleDataBuilder_.addMessage(index, builderForValue.build()); } + return this; } /** - * optional .Sensor_Info magnetometer_info = 15; + * repeated .BleData ble_data = 15; */ - private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> - getMagnetometerInfoFieldBuilder() { - if (magnetometerInfoBuilder_ == null) { - magnetometerInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder>( - getMagnetometerInfo(), + public Builder addAllBleData( + java.lang.Iterable values) { + if (bleDataBuilder_ == null) { + ensureBleDataIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, bleData_); + onChanged(); + } else { + bleDataBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .BleData ble_data = 15; + */ + public Builder clearBleData() { + if (bleDataBuilder_ == null) { + bleData_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + } else { + bleDataBuilder_.clear(); + } + return this; + } + /** + * repeated .BleData ble_data = 15; + */ + public Builder removeBleData(int index) { + if (bleDataBuilder_ == null) { + ensureBleDataIsMutable(); + bleData_.remove(index); + onChanged(); + } else { + bleDataBuilder_.remove(index); + } + return this; + } + /** + * repeated .BleData ble_data = 15; + */ + public Traj.BleData.Builder getBleDataBuilder( + int index) { + return getBleDataFieldBuilder().getBuilder(index); + } + /** + * repeated .BleData ble_data = 15; + */ + public Traj.BleDataOrBuilder getBleDataOrBuilder( + int index) { + if (bleDataBuilder_ == null) { + return bleData_.get(index); } else { + return bleDataBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .BleData ble_data = 15; + */ + public java.util.List + getBleDataOrBuilderList() { + if (bleDataBuilder_ != null) { + return bleDataBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(bleData_); + } + } + /** + * repeated .BleData ble_data = 15; + */ + public Traj.BleData.Builder addBleDataBuilder() { + return getBleDataFieldBuilder().addBuilder( + Traj.BleData.getDefaultInstance()); + } + /** + * repeated .BleData ble_data = 15; + */ + public Traj.BleData.Builder addBleDataBuilder( + int index) { + return getBleDataFieldBuilder().addBuilder( + index, Traj.BleData.getDefaultInstance()); + } + /** + * repeated .BleData ble_data = 15; + */ + public java.util.List + getBleDataBuilderList() { + return getBleDataFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.BleData, Traj.BleData.Builder, Traj.BleDataOrBuilder> + getBleDataFieldBuilder() { + if (bleDataBuilder_ == null) { + bleDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Traj.BleData, Traj.BleData.Builder, Traj.BleDataOrBuilder>( + bleData_, + ((bitField0_ & 0x00000800) != 0), getParentForChildren(), isClean()); - magnetometerInfo_ = null; + bleData_ = null; } - return magnetometerInfoBuilder_; + return bleDataBuilder_; + } + + private long startTimestamp_ ; + /** + *
+       * UNIX timestamp (in milliseconds) recorded from the start of this
+       * trajectory data collection event. All future
+       * timestamps in sub classes are to be RELATIVE timestamps
+       * (in milliseconds) to this start time.
+       * E.g.
+       * start_timestamp = 1674819807315 (UTC 27 Jan 2023 in the morning)
+       * relative_timestamp = 3000 (3s)
+       * 
+ * + * int64 start_timestamp = 16; + * @return The startTimestamp. + */ + @java.lang.Override + public long getStartTimestamp() { + return startTimestamp_; + } + /** + *
+       * UNIX timestamp (in milliseconds) recorded from the start of this
+       * trajectory data collection event. All future
+       * timestamps in sub classes are to be RELATIVE timestamps
+       * (in milliseconds) to this start time.
+       * E.g.
+       * start_timestamp = 1674819807315 (UTC 27 Jan 2023 in the morning)
+       * relative_timestamp = 3000 (3s)
+       * 
+ * + * int64 start_timestamp = 16; + * @param value The startTimestamp to set. + * @return This builder for chaining. + */ + public Builder setStartTimestamp(long value) { + + startTimestamp_ = value; + onChanged(); + return this; + } + /** + *
+       * UNIX timestamp (in milliseconds) recorded from the start of this
+       * trajectory data collection event. All future
+       * timestamps in sub classes are to be RELATIVE timestamps
+       * (in milliseconds) to this start time.
+       * E.g.
+       * start_timestamp = 1674819807315 (UTC 27 Jan 2023 in the morning)
+       * relative_timestamp = 3000 (3s)
+       * 
+ * + * int64 start_timestamp = 16; + * @return This builder for chaining. + */ + public Builder clearStartTimestamp() { + + startTimestamp_ = 0L; + onChanged(); + return this; } - private Sensor_Info barometerInfo_ = null; + private Traj.GNSSPosition initialPosition_; private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> barometerInfoBuilder_; + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder> initialPositionBuilder_; /** - * optional .Sensor_Info barometer_info = 16; + * .GNSSPosition initial_position = 17; + * @return Whether the initialPosition field is set. */ - public boolean hasBarometerInfo() { - return barometerInfoBuilder_ != null || barometerInfo_ != null; + public boolean hasInitialPosition() { + return initialPositionBuilder_ != null || initialPosition_ != null; } /** - * optional .Sensor_Info barometer_info = 16; + * .GNSSPosition initial_position = 17; + * @return The initialPosition. */ - public Sensor_Info getBarometerInfo() { - if (barometerInfoBuilder_ == null) { - return barometerInfo_ == null ? Sensor_Info.getDefaultInstance() : barometerInfo_; + public Traj.GNSSPosition getInitialPosition() { + if (initialPositionBuilder_ == null) { + return initialPosition_ == null ? Traj.GNSSPosition.getDefaultInstance() : initialPosition_; } else { - return barometerInfoBuilder_.getMessage(); + return initialPositionBuilder_.getMessage(); } } /** - * optional .Sensor_Info barometer_info = 16; + * .GNSSPosition initial_position = 17; */ - public Builder setBarometerInfo(Sensor_Info value) { - if (barometerInfoBuilder_ == null) { + public Builder setInitialPosition(Traj.GNSSPosition value) { + if (initialPositionBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - barometerInfo_ = value; + initialPosition_ = value; onChanged(); } else { - barometerInfoBuilder_.setMessage(value); + initialPositionBuilder_.setMessage(value); } return this; } /** - * optional .Sensor_Info barometer_info = 16; + * .GNSSPosition initial_position = 17; */ - public Builder setBarometerInfo( - Sensor_Info.Builder builderForValue) { - if (barometerInfoBuilder_ == null) { - barometerInfo_ = builderForValue.build(); + public Builder setInitialPosition( + Traj.GNSSPosition.Builder builderForValue) { + if (initialPositionBuilder_ == null) { + initialPosition_ = builderForValue.build(); onChanged(); } else { - barometerInfoBuilder_.setMessage(builderForValue.build()); + initialPositionBuilder_.setMessage(builderForValue.build()); } return this; } /** - * optional .Sensor_Info barometer_info = 16; + * .GNSSPosition initial_position = 17; */ - public Builder mergeBarometerInfo(Sensor_Info value) { - if (barometerInfoBuilder_ == null) { - if (barometerInfo_ != null) { - barometerInfo_ = - Sensor_Info.newBuilder(barometerInfo_).mergeFrom(value).buildPartial(); + public Builder mergeInitialPosition(Traj.GNSSPosition value) { + if (initialPositionBuilder_ == null) { + if (initialPosition_ != null) { + initialPosition_ = + Traj.GNSSPosition.newBuilder(initialPosition_).mergeFrom(value).buildPartial(); } else { - barometerInfo_ = value; + initialPosition_ = value; } onChanged(); } else { - barometerInfoBuilder_.mergeFrom(value); + initialPositionBuilder_.mergeFrom(value); } return this; } /** - * optional .Sensor_Info barometer_info = 16; + * .GNSSPosition initial_position = 17; */ - public Builder clearBarometerInfo() { - if (barometerInfoBuilder_ == null) { - barometerInfo_ = null; + public Builder clearInitialPosition() { + if (initialPositionBuilder_ == null) { + initialPosition_ = null; onChanged(); } else { - barometerInfo_ = null; - barometerInfoBuilder_ = null; + initialPosition_ = null; + initialPositionBuilder_ = null; } return this; } /** - * optional .Sensor_Info barometer_info = 16; + * .GNSSPosition initial_position = 17; */ - public Sensor_Info.Builder getBarometerInfoBuilder() { + public Traj.GNSSPosition.Builder getInitialPositionBuilder() { onChanged(); - return getBarometerInfoFieldBuilder().getBuilder(); + return getInitialPositionFieldBuilder().getBuilder(); } /** - * optional .Sensor_Info barometer_info = 16; + * .GNSSPosition initial_position = 17; */ - public Sensor_InfoOrBuilder getBarometerInfoOrBuilder() { - if (barometerInfoBuilder_ != null) { - return barometerInfoBuilder_.getMessageOrBuilder(); + public Traj.GNSSPositionOrBuilder getInitialPositionOrBuilder() { + if (initialPositionBuilder_ != null) { + return initialPositionBuilder_.getMessageOrBuilder(); } else { - return barometerInfo_ == null ? - Sensor_Info.getDefaultInstance() : barometerInfo_; + return initialPosition_ == null ? + Traj.GNSSPosition.getDefaultInstance() : initialPosition_; } } /** - * optional .Sensor_Info barometer_info = 16; + * .GNSSPosition initial_position = 17; */ private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> - getBarometerInfoFieldBuilder() { - if (barometerInfoBuilder_ == null) { - barometerInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder>( - getBarometerInfo(), + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder> + getInitialPositionFieldBuilder() { + if (initialPositionBuilder_ == null) { + initialPositionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder>( + getInitialPosition(), getParentForChildren(), isClean()); - barometerInfo_ = null; + initialPosition_ = null; } - return barometerInfoBuilder_; + return initialPositionBuilder_; } - private Sensor_Info lightSensorInfo_ = null; - private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> lightSensorInfoBuilder_; + private java.util.List correctedPositions_ = + java.util.Collections.emptyList(); + private void ensureCorrectedPositionsIsMutable() { + if (!((bitField0_ & 0x00001000) != 0)) { + correctedPositions_ = new java.util.ArrayList(correctedPositions_); + bitField0_ |= 0x00001000; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder> correctedPositionsBuilder_; + /** - * optional .Sensor_Info light_sensor_info = 17; + * repeated .GNSSPosition corrected_positions = 18; */ - public boolean hasLightSensorInfo() { - return lightSensorInfoBuilder_ != null || lightSensorInfo_ != null; + public java.util.List getCorrectedPositionsList() { + if (correctedPositionsBuilder_ == null) { + return java.util.Collections.unmodifiableList(correctedPositions_); + } else { + return correctedPositionsBuilder_.getMessageList(); + } } /** - * optional .Sensor_Info light_sensor_info = 17; + * repeated .GNSSPosition corrected_positions = 18; */ - public Sensor_Info getLightSensorInfo() { - if (lightSensorInfoBuilder_ == null) { - return lightSensorInfo_ == null ? Sensor_Info.getDefaultInstance() : lightSensorInfo_; + public int getCorrectedPositionsCount() { + if (correctedPositionsBuilder_ == null) { + return correctedPositions_.size(); } else { - return lightSensorInfoBuilder_.getMessage(); + return correctedPositionsBuilder_.getCount(); } } /** - * optional .Sensor_Info light_sensor_info = 17; + * repeated .GNSSPosition corrected_positions = 18; */ - public Builder setLightSensorInfo(Sensor_Info value) { - if (lightSensorInfoBuilder_ == null) { + public Traj.GNSSPosition getCorrectedPositions(int index) { + if (correctedPositionsBuilder_ == null) { + return correctedPositions_.get(index); + } else { + return correctedPositionsBuilder_.getMessage(index); + } + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + public Builder setCorrectedPositions( + int index, Traj.GNSSPosition value) { + if (correctedPositionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - lightSensorInfo_ = value; + ensureCorrectedPositionsIsMutable(); + correctedPositions_.set(index, value); onChanged(); } else { - lightSensorInfoBuilder_.setMessage(value); + correctedPositionsBuilder_.setMessage(index, value); } - return this; } /** - * optional .Sensor_Info light_sensor_info = 17; + * repeated .GNSSPosition corrected_positions = 18; */ - public Builder setLightSensorInfo( - Sensor_Info.Builder builderForValue) { - if (lightSensorInfoBuilder_ == null) { - lightSensorInfo_ = builderForValue.build(); + public Builder setCorrectedPositions( + int index, Traj.GNSSPosition.Builder builderForValue) { + if (correctedPositionsBuilder_ == null) { + ensureCorrectedPositionsIsMutable(); + correctedPositions_.set(index, builderForValue.build()); onChanged(); } else { - lightSensorInfoBuilder_.setMessage(builderForValue.build()); + correctedPositionsBuilder_.setMessage(index, builderForValue.build()); } - return this; } /** - * optional .Sensor_Info light_sensor_info = 17; + * repeated .GNSSPosition corrected_positions = 18; */ - public Builder mergeLightSensorInfo(Sensor_Info value) { - if (lightSensorInfoBuilder_ == null) { - if (lightSensorInfo_ != null) { - lightSensorInfo_ = - Sensor_Info.newBuilder(lightSensorInfo_).mergeFrom(value).buildPartial(); - } else { - lightSensorInfo_ = value; + public Builder addCorrectedPositions(Traj.GNSSPosition value) { + if (correctedPositionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); } + ensureCorrectedPositionsIsMutable(); + correctedPositions_.add(value); onChanged(); } else { - lightSensorInfoBuilder_.mergeFrom(value); + correctedPositionsBuilder_.addMessage(value); } - return this; } /** - * optional .Sensor_Info light_sensor_info = 17; + * repeated .GNSSPosition corrected_positions = 18; */ - public Builder clearLightSensorInfo() { - if (lightSensorInfoBuilder_ == null) { - lightSensorInfo_ = null; + public Builder addCorrectedPositions( + int index, Traj.GNSSPosition value) { + if (correctedPositionsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureCorrectedPositionsIsMutable(); + correctedPositions_.add(index, value); onChanged(); } else { - lightSensorInfo_ = null; - lightSensorInfoBuilder_ = null; + correctedPositionsBuilder_.addMessage(index, value); } - return this; } /** - * optional .Sensor_Info light_sensor_info = 17; + * repeated .GNSSPosition corrected_positions = 18; */ - public Sensor_Info.Builder getLightSensorInfoBuilder() { - - onChanged(); - return getLightSensorInfoFieldBuilder().getBuilder(); + public Builder addCorrectedPositions( + Traj.GNSSPosition.Builder builderForValue) { + if (correctedPositionsBuilder_ == null) { + ensureCorrectedPositionsIsMutable(); + correctedPositions_.add(builderForValue.build()); + onChanged(); + } else { + correctedPositionsBuilder_.addMessage(builderForValue.build()); + } + return this; } /** - * optional .Sensor_Info light_sensor_info = 17; + * repeated .GNSSPosition corrected_positions = 18; */ - public Sensor_InfoOrBuilder getLightSensorInfoOrBuilder() { - if (lightSensorInfoBuilder_ != null) { - return lightSensorInfoBuilder_.getMessageOrBuilder(); + public Builder addCorrectedPositions( + int index, Traj.GNSSPosition.Builder builderForValue) { + if (correctedPositionsBuilder_ == null) { + ensureCorrectedPositionsIsMutable(); + correctedPositions_.add(index, builderForValue.build()); + onChanged(); } else { - return lightSensorInfo_ == null ? - Sensor_Info.getDefaultInstance() : lightSensorInfo_; + correctedPositionsBuilder_.addMessage(index, builderForValue.build()); } + return this; } /** - * optional .Sensor_Info light_sensor_info = 17; + * repeated .GNSSPosition corrected_positions = 18; */ - private com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder> - getLightSensorInfoFieldBuilder() { - if (lightSensorInfoBuilder_ == null) { - lightSensorInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - Sensor_Info, Sensor_Info.Builder, Sensor_InfoOrBuilder>( - getLightSensorInfo(), - getParentForChildren(), - isClean()); - lightSensorInfo_ = null; + public Builder addAllCorrectedPositions( + java.lang.Iterable values) { + if (correctedPositionsBuilder_ == null) { + ensureCorrectedPositionsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, correctedPositions_); + onChanged(); + } else { + correctedPositionsBuilder_.addAllMessages(values); } - return lightSensorInfoBuilder_; - } - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { return this; } - - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + public Builder clearCorrectedPositions() { + if (correctedPositionsBuilder_ == null) { + correctedPositions_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + } else { + correctedPositionsBuilder_.clear(); + } return this; } - - - // @@protoc_insertion_point(builder_scope:Trajectory) + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + public Builder removeCorrectedPositions(int index) { + if (correctedPositionsBuilder_ == null) { + ensureCorrectedPositionsIsMutable(); + correctedPositions_.remove(index); + onChanged(); + } else { + correctedPositionsBuilder_.remove(index); + } + return this; + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + public Traj.GNSSPosition.Builder getCorrectedPositionsBuilder( + int index) { + return getCorrectedPositionsFieldBuilder().getBuilder(index); + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + public Traj.GNSSPositionOrBuilder getCorrectedPositionsOrBuilder( + int index) { + if (correctedPositionsBuilder_ == null) { + return correctedPositions_.get(index); } else { + return correctedPositionsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + public java.util.List + getCorrectedPositionsOrBuilderList() { + if (correctedPositionsBuilder_ != null) { + return correctedPositionsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(correctedPositions_); + } + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + public Traj.GNSSPosition.Builder addCorrectedPositionsBuilder() { + return getCorrectedPositionsFieldBuilder().addBuilder( + Traj.GNSSPosition.getDefaultInstance()); + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + public Traj.GNSSPosition.Builder addCorrectedPositionsBuilder( + int index) { + return getCorrectedPositionsFieldBuilder().addBuilder( + index, Traj.GNSSPosition.getDefaultInstance()); + } + /** + * repeated .GNSSPosition corrected_positions = 18; + */ + public java.util.List + getCorrectedPositionsBuilderList() { + return getCorrectedPositionsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder> + getCorrectedPositionsFieldBuilder() { + if (correctedPositionsBuilder_ == null) { + correctedPositionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder>( + correctedPositions_, + ((bitField0_ & 0x00001000) != 0), + getParentForChildren(), + isClean()); + correctedPositions_ = null; + } + return correctedPositionsBuilder_; + } + + private Traj.SensorInfo accelerometerInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> accelerometerInfoBuilder_; + /** + * .SensorInfo accelerometer_info = 19; + * @return Whether the accelerometerInfo field is set. + */ + public boolean hasAccelerometerInfo() { + return accelerometerInfoBuilder_ != null || accelerometerInfo_ != null; + } + /** + * .SensorInfo accelerometer_info = 19; + * @return The accelerometerInfo. + */ + public Traj.SensorInfo getAccelerometerInfo() { + if (accelerometerInfoBuilder_ == null) { + return accelerometerInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : accelerometerInfo_; + } else { + return accelerometerInfoBuilder_.getMessage(); + } + } + /** + * .SensorInfo accelerometer_info = 19; + */ + public Builder setAccelerometerInfo(Traj.SensorInfo value) { + if (accelerometerInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + accelerometerInfo_ = value; + onChanged(); + } else { + accelerometerInfoBuilder_.setMessage(value); + } + + return this; + } + /** + * .SensorInfo accelerometer_info = 19; + */ + public Builder setAccelerometerInfo( + Traj.SensorInfo.Builder builderForValue) { + if (accelerometerInfoBuilder_ == null) { + accelerometerInfo_ = builderForValue.build(); + onChanged(); + } else { + accelerometerInfoBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .SensorInfo accelerometer_info = 19; + */ + public Builder mergeAccelerometerInfo(Traj.SensorInfo value) { + if (accelerometerInfoBuilder_ == null) { + if (accelerometerInfo_ != null) { + accelerometerInfo_ = + Traj.SensorInfo.newBuilder(accelerometerInfo_).mergeFrom(value).buildPartial(); + } else { + accelerometerInfo_ = value; + } + onChanged(); + } else { + accelerometerInfoBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .SensorInfo accelerometer_info = 19; + */ + public Builder clearAccelerometerInfo() { + if (accelerometerInfoBuilder_ == null) { + accelerometerInfo_ = null; + onChanged(); + } else { + accelerometerInfo_ = null; + accelerometerInfoBuilder_ = null; + } + + return this; + } + /** + * .SensorInfo accelerometer_info = 19; + */ + public Traj.SensorInfo.Builder getAccelerometerInfoBuilder() { + + onChanged(); + return getAccelerometerInfoFieldBuilder().getBuilder(); + } + /** + * .SensorInfo accelerometer_info = 19; + */ + public Traj.SensorInfoOrBuilder getAccelerometerInfoOrBuilder() { + if (accelerometerInfoBuilder_ != null) { + return accelerometerInfoBuilder_.getMessageOrBuilder(); + } else { + return accelerometerInfo_ == null ? + Traj.SensorInfo.getDefaultInstance() : accelerometerInfo_; + } + } + /** + * .SensorInfo accelerometer_info = 19; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> + getAccelerometerInfoFieldBuilder() { + if (accelerometerInfoBuilder_ == null) { + accelerometerInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder>( + getAccelerometerInfo(), + getParentForChildren(), + isClean()); + accelerometerInfo_ = null; + } + return accelerometerInfoBuilder_; + } + + private Traj.SensorInfo gyroscopeInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> gyroscopeInfoBuilder_; + /** + * .SensorInfo gyroscope_info = 20; + * @return Whether the gyroscopeInfo field is set. + */ + public boolean hasGyroscopeInfo() { + return gyroscopeInfoBuilder_ != null || gyroscopeInfo_ != null; + } + /** + * .SensorInfo gyroscope_info = 20; + * @return The gyroscopeInfo. + */ + public Traj.SensorInfo getGyroscopeInfo() { + if (gyroscopeInfoBuilder_ == null) { + return gyroscopeInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : gyroscopeInfo_; + } else { + return gyroscopeInfoBuilder_.getMessage(); + } + } + /** + * .SensorInfo gyroscope_info = 20; + */ + public Builder setGyroscopeInfo(Traj.SensorInfo value) { + if (gyroscopeInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + gyroscopeInfo_ = value; + onChanged(); + } else { + gyroscopeInfoBuilder_.setMessage(value); + } + + return this; + } + /** + * .SensorInfo gyroscope_info = 20; + */ + public Builder setGyroscopeInfo( + Traj.SensorInfo.Builder builderForValue) { + if (gyroscopeInfoBuilder_ == null) { + gyroscopeInfo_ = builderForValue.build(); + onChanged(); + } else { + gyroscopeInfoBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .SensorInfo gyroscope_info = 20; + */ + public Builder mergeGyroscopeInfo(Traj.SensorInfo value) { + if (gyroscopeInfoBuilder_ == null) { + if (gyroscopeInfo_ != null) { + gyroscopeInfo_ = + Traj.SensorInfo.newBuilder(gyroscopeInfo_).mergeFrom(value).buildPartial(); + } else { + gyroscopeInfo_ = value; + } + onChanged(); + } else { + gyroscopeInfoBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .SensorInfo gyroscope_info = 20; + */ + public Builder clearGyroscopeInfo() { + if (gyroscopeInfoBuilder_ == null) { + gyroscopeInfo_ = null; + onChanged(); + } else { + gyroscopeInfo_ = null; + gyroscopeInfoBuilder_ = null; + } + + return this; + } + /** + * .SensorInfo gyroscope_info = 20; + */ + public Traj.SensorInfo.Builder getGyroscopeInfoBuilder() { + + onChanged(); + return getGyroscopeInfoFieldBuilder().getBuilder(); + } + /** + * .SensorInfo gyroscope_info = 20; + */ + public Traj.SensorInfoOrBuilder getGyroscopeInfoOrBuilder() { + if (gyroscopeInfoBuilder_ != null) { + return gyroscopeInfoBuilder_.getMessageOrBuilder(); + } else { + return gyroscopeInfo_ == null ? + Traj.SensorInfo.getDefaultInstance() : gyroscopeInfo_; + } + } + /** + * .SensorInfo gyroscope_info = 20; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> + getGyroscopeInfoFieldBuilder() { + if (gyroscopeInfoBuilder_ == null) { + gyroscopeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder>( + getGyroscopeInfo(), + getParentForChildren(), + isClean()); + gyroscopeInfo_ = null; + } + return gyroscopeInfoBuilder_; + } + + private Traj.SensorInfo rotationVectorInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> rotationVectorInfoBuilder_; + /** + * .SensorInfo rotation_vector_info = 21; + * @return Whether the rotationVectorInfo field is set. + */ + public boolean hasRotationVectorInfo() { + return rotationVectorInfoBuilder_ != null || rotationVectorInfo_ != null; + } + /** + * .SensorInfo rotation_vector_info = 21; + * @return The rotationVectorInfo. + */ + public Traj.SensorInfo getRotationVectorInfo() { + if (rotationVectorInfoBuilder_ == null) { + return rotationVectorInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : rotationVectorInfo_; + } else { + return rotationVectorInfoBuilder_.getMessage(); + } + } + /** + * .SensorInfo rotation_vector_info = 21; + */ + public Builder setRotationVectorInfo(Traj.SensorInfo value) { + if (rotationVectorInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + rotationVectorInfo_ = value; + onChanged(); + } else { + rotationVectorInfoBuilder_.setMessage(value); + } + + return this; + } + /** + * .SensorInfo rotation_vector_info = 21; + */ + public Builder setRotationVectorInfo( + Traj.SensorInfo.Builder builderForValue) { + if (rotationVectorInfoBuilder_ == null) { + rotationVectorInfo_ = builderForValue.build(); + onChanged(); + } else { + rotationVectorInfoBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .SensorInfo rotation_vector_info = 21; + */ + public Builder mergeRotationVectorInfo(Traj.SensorInfo value) { + if (rotationVectorInfoBuilder_ == null) { + if (rotationVectorInfo_ != null) { + rotationVectorInfo_ = + Traj.SensorInfo.newBuilder(rotationVectorInfo_).mergeFrom(value).buildPartial(); + } else { + rotationVectorInfo_ = value; + } + onChanged(); + } else { + rotationVectorInfoBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .SensorInfo rotation_vector_info = 21; + */ + public Builder clearRotationVectorInfo() { + if (rotationVectorInfoBuilder_ == null) { + rotationVectorInfo_ = null; + onChanged(); + } else { + rotationVectorInfo_ = null; + rotationVectorInfoBuilder_ = null; + } + + return this; + } + /** + * .SensorInfo rotation_vector_info = 21; + */ + public Traj.SensorInfo.Builder getRotationVectorInfoBuilder() { + + onChanged(); + return getRotationVectorInfoFieldBuilder().getBuilder(); + } + /** + * .SensorInfo rotation_vector_info = 21; + */ + public Traj.SensorInfoOrBuilder getRotationVectorInfoOrBuilder() { + if (rotationVectorInfoBuilder_ != null) { + return rotationVectorInfoBuilder_.getMessageOrBuilder(); + } else { + return rotationVectorInfo_ == null ? + Traj.SensorInfo.getDefaultInstance() : rotationVectorInfo_; + } + } + /** + * .SensorInfo rotation_vector_info = 21; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> + getRotationVectorInfoFieldBuilder() { + if (rotationVectorInfoBuilder_ == null) { + rotationVectorInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder>( + getRotationVectorInfo(), + getParentForChildren(), + isClean()); + rotationVectorInfo_ = null; + } + return rotationVectorInfoBuilder_; + } + + private Traj.SensorInfo magnetometerInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> magnetometerInfoBuilder_; + /** + * .SensorInfo magnetometer_info = 22; + * @return Whether the magnetometerInfo field is set. + */ + public boolean hasMagnetometerInfo() { + return magnetometerInfoBuilder_ != null || magnetometerInfo_ != null; + } + /** + * .SensorInfo magnetometer_info = 22; + * @return The magnetometerInfo. + */ + public Traj.SensorInfo getMagnetometerInfo() { + if (magnetometerInfoBuilder_ == null) { + return magnetometerInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : magnetometerInfo_; + } else { + return magnetometerInfoBuilder_.getMessage(); + } + } + /** + * .SensorInfo magnetometer_info = 22; + */ + public Builder setMagnetometerInfo(Traj.SensorInfo value) { + if (magnetometerInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + magnetometerInfo_ = value; + onChanged(); + } else { + magnetometerInfoBuilder_.setMessage(value); + } + + return this; + } + /** + * .SensorInfo magnetometer_info = 22; + */ + public Builder setMagnetometerInfo( + Traj.SensorInfo.Builder builderForValue) { + if (magnetometerInfoBuilder_ == null) { + magnetometerInfo_ = builderForValue.build(); + onChanged(); + } else { + magnetometerInfoBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .SensorInfo magnetometer_info = 22; + */ + public Builder mergeMagnetometerInfo(Traj.SensorInfo value) { + if (magnetometerInfoBuilder_ == null) { + if (magnetometerInfo_ != null) { + magnetometerInfo_ = + Traj.SensorInfo.newBuilder(magnetometerInfo_).mergeFrom(value).buildPartial(); + } else { + magnetometerInfo_ = value; + } + onChanged(); + } else { + magnetometerInfoBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .SensorInfo magnetometer_info = 22; + */ + public Builder clearMagnetometerInfo() { + if (magnetometerInfoBuilder_ == null) { + magnetometerInfo_ = null; + onChanged(); + } else { + magnetometerInfo_ = null; + magnetometerInfoBuilder_ = null; + } + + return this; + } + /** + * .SensorInfo magnetometer_info = 22; + */ + public Traj.SensorInfo.Builder getMagnetometerInfoBuilder() { + + onChanged(); + return getMagnetometerInfoFieldBuilder().getBuilder(); + } + /** + * .SensorInfo magnetometer_info = 22; + */ + public Traj.SensorInfoOrBuilder getMagnetometerInfoOrBuilder() { + if (magnetometerInfoBuilder_ != null) { + return magnetometerInfoBuilder_.getMessageOrBuilder(); + } else { + return magnetometerInfo_ == null ? + Traj.SensorInfo.getDefaultInstance() : magnetometerInfo_; + } + } + /** + * .SensorInfo magnetometer_info = 22; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> + getMagnetometerInfoFieldBuilder() { + if (magnetometerInfoBuilder_ == null) { + magnetometerInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder>( + getMagnetometerInfo(), + getParentForChildren(), + isClean()); + magnetometerInfo_ = null; + } + return magnetometerInfoBuilder_; + } + + private Traj.SensorInfo barometerInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> barometerInfoBuilder_; + /** + * .SensorInfo barometer_info = 23; + * @return Whether the barometerInfo field is set. + */ + public boolean hasBarometerInfo() { + return barometerInfoBuilder_ != null || barometerInfo_ != null; + } + /** + * .SensorInfo barometer_info = 23; + * @return The barometerInfo. + */ + public Traj.SensorInfo getBarometerInfo() { + if (barometerInfoBuilder_ == null) { + return barometerInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : barometerInfo_; + } else { + return barometerInfoBuilder_.getMessage(); + } + } + /** + * .SensorInfo barometer_info = 23; + */ + public Builder setBarometerInfo(Traj.SensorInfo value) { + if (barometerInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + barometerInfo_ = value; + onChanged(); + } else { + barometerInfoBuilder_.setMessage(value); + } + + return this; + } + /** + * .SensorInfo barometer_info = 23; + */ + public Builder setBarometerInfo( + Traj.SensorInfo.Builder builderForValue) { + if (barometerInfoBuilder_ == null) { + barometerInfo_ = builderForValue.build(); + onChanged(); + } else { + barometerInfoBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .SensorInfo barometer_info = 23; + */ + public Builder mergeBarometerInfo(Traj.SensorInfo value) { + if (barometerInfoBuilder_ == null) { + if (barometerInfo_ != null) { + barometerInfo_ = + Traj.SensorInfo.newBuilder(barometerInfo_).mergeFrom(value).buildPartial(); + } else { + barometerInfo_ = value; + } + onChanged(); + } else { + barometerInfoBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .SensorInfo barometer_info = 23; + */ + public Builder clearBarometerInfo() { + if (barometerInfoBuilder_ == null) { + barometerInfo_ = null; + onChanged(); + } else { + barometerInfo_ = null; + barometerInfoBuilder_ = null; + } + + return this; + } + /** + * .SensorInfo barometer_info = 23; + */ + public Traj.SensorInfo.Builder getBarometerInfoBuilder() { + + onChanged(); + return getBarometerInfoFieldBuilder().getBuilder(); + } + /** + * .SensorInfo barometer_info = 23; + */ + public Traj.SensorInfoOrBuilder getBarometerInfoOrBuilder() { + if (barometerInfoBuilder_ != null) { + return barometerInfoBuilder_.getMessageOrBuilder(); + } else { + return barometerInfo_ == null ? + Traj.SensorInfo.getDefaultInstance() : barometerInfo_; + } + } + /** + * .SensorInfo barometer_info = 23; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> + getBarometerInfoFieldBuilder() { + if (barometerInfoBuilder_ == null) { + barometerInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder>( + getBarometerInfo(), + getParentForChildren(), + isClean()); + barometerInfo_ = null; + } + return barometerInfoBuilder_; + } + + private Traj.SensorInfo lightSensorInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> lightSensorInfoBuilder_; + /** + * .SensorInfo light_sensor_info = 24; + * @return Whether the lightSensorInfo field is set. + */ + public boolean hasLightSensorInfo() { + return lightSensorInfoBuilder_ != null || lightSensorInfo_ != null; + } + /** + * .SensorInfo light_sensor_info = 24; + * @return The lightSensorInfo. + */ + public Traj.SensorInfo getLightSensorInfo() { + if (lightSensorInfoBuilder_ == null) { + return lightSensorInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : lightSensorInfo_; + } else { + return lightSensorInfoBuilder_.getMessage(); + } + } + /** + * .SensorInfo light_sensor_info = 24; + */ + public Builder setLightSensorInfo(Traj.SensorInfo value) { + if (lightSensorInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + lightSensorInfo_ = value; + onChanged(); + } else { + lightSensorInfoBuilder_.setMessage(value); + } + + return this; + } + /** + * .SensorInfo light_sensor_info = 24; + */ + public Builder setLightSensorInfo( + Traj.SensorInfo.Builder builderForValue) { + if (lightSensorInfoBuilder_ == null) { + lightSensorInfo_ = builderForValue.build(); + onChanged(); + } else { + lightSensorInfoBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .SensorInfo light_sensor_info = 24; + */ + public Builder mergeLightSensorInfo(Traj.SensorInfo value) { + if (lightSensorInfoBuilder_ == null) { + if (lightSensorInfo_ != null) { + lightSensorInfo_ = + Traj.SensorInfo.newBuilder(lightSensorInfo_).mergeFrom(value).buildPartial(); + } else { + lightSensorInfo_ = value; + } + onChanged(); + } else { + lightSensorInfoBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .SensorInfo light_sensor_info = 24; + */ + public Builder clearLightSensorInfo() { + if (lightSensorInfoBuilder_ == null) { + lightSensorInfo_ = null; + onChanged(); + } else { + lightSensorInfo_ = null; + lightSensorInfoBuilder_ = null; + } + + return this; + } + /** + * .SensorInfo light_sensor_info = 24; + */ + public Traj.SensorInfo.Builder getLightSensorInfoBuilder() { + + onChanged(); + return getLightSensorInfoFieldBuilder().getBuilder(); + } + /** + * .SensorInfo light_sensor_info = 24; + */ + public Traj.SensorInfoOrBuilder getLightSensorInfoOrBuilder() { + if (lightSensorInfoBuilder_ != null) { + return lightSensorInfoBuilder_.getMessageOrBuilder(); + } else { + return lightSensorInfo_ == null ? + Traj.SensorInfo.getDefaultInstance() : lightSensorInfo_; + } + } + /** + * .SensorInfo light_sensor_info = 24; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> + getLightSensorInfoFieldBuilder() { + if (lightSensorInfoBuilder_ == null) { + lightSensorInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder>( + getLightSensorInfo(), + getParentForChildren(), + isClean()); + lightSensorInfo_ = null; + } + return lightSensorInfoBuilder_; + } + + private Traj.SensorInfo proximityInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> proximityInfoBuilder_; + /** + * .SensorInfo proximity_info = 25; + * @return Whether the proximityInfo field is set. + */ + public boolean hasProximityInfo() { + return proximityInfoBuilder_ != null || proximityInfo_ != null; + } + /** + * .SensorInfo proximity_info = 25; + * @return The proximityInfo. + */ + public Traj.SensorInfo getProximityInfo() { + if (proximityInfoBuilder_ == null) { + return proximityInfo_ == null ? Traj.SensorInfo.getDefaultInstance() : proximityInfo_; + } else { + return proximityInfoBuilder_.getMessage(); + } + } + /** + * .SensorInfo proximity_info = 25; + */ + public Builder setProximityInfo(Traj.SensorInfo value) { + if (proximityInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + proximityInfo_ = value; + onChanged(); + } else { + proximityInfoBuilder_.setMessage(value); + } + + return this; + } + /** + * .SensorInfo proximity_info = 25; + */ + public Builder setProximityInfo( + Traj.SensorInfo.Builder builderForValue) { + if (proximityInfoBuilder_ == null) { + proximityInfo_ = builderForValue.build(); + onChanged(); + } else { + proximityInfoBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .SensorInfo proximity_info = 25; + */ + public Builder mergeProximityInfo(Traj.SensorInfo value) { + if (proximityInfoBuilder_ == null) { + if (proximityInfo_ != null) { + proximityInfo_ = + Traj.SensorInfo.newBuilder(proximityInfo_).mergeFrom(value).buildPartial(); + } else { + proximityInfo_ = value; + } + onChanged(); + } else { + proximityInfoBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .SensorInfo proximity_info = 25; + */ + public Builder clearProximityInfo() { + if (proximityInfoBuilder_ == null) { + proximityInfo_ = null; + onChanged(); + } else { + proximityInfo_ = null; + proximityInfoBuilder_ = null; + } + + return this; + } + /** + * .SensorInfo proximity_info = 25; + */ + public Traj.SensorInfo.Builder getProximityInfoBuilder() { + + onChanged(); + return getProximityInfoFieldBuilder().getBuilder(); + } + /** + * .SensorInfo proximity_info = 25; + */ + public Traj.SensorInfoOrBuilder getProximityInfoOrBuilder() { + if (proximityInfoBuilder_ != null) { + return proximityInfoBuilder_.getMessageOrBuilder(); + } else { + return proximityInfo_ == null ? + Traj.SensorInfo.getDefaultInstance() : proximityInfo_; + } + } + /** + * .SensorInfo proximity_info = 25; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder> + getProximityInfoFieldBuilder() { + if (proximityInfoBuilder_ == null) { + proximityInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.SensorInfo, Traj.SensorInfo.Builder, Traj.SensorInfoOrBuilder>( + getProximityInfo(), + getParentForChildren(), + isClean()); + proximityInfo_ = null; + } + return proximityInfoBuilder_; + } + + private java.util.List testPoints_ = + java.util.Collections.emptyList(); + private void ensureTestPointsIsMutable() { + if (!((bitField0_ & 0x00002000) != 0)) { + testPoints_ = new java.util.ArrayList(testPoints_); + bitField0_ |= 0x00002000; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder> testPointsBuilder_; + + /** + * repeated .GNSSPosition test_points = 26; + */ + public java.util.List getTestPointsList() { + if (testPointsBuilder_ == null) { + return java.util.Collections.unmodifiableList(testPoints_); + } else { + return testPointsBuilder_.getMessageList(); + } + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public int getTestPointsCount() { + if (testPointsBuilder_ == null) { + return testPoints_.size(); + } else { + return testPointsBuilder_.getCount(); + } + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Traj.GNSSPosition getTestPoints(int index) { + if (testPointsBuilder_ == null) { + return testPoints_.get(index); + } else { + return testPointsBuilder_.getMessage(index); + } + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Builder setTestPoints( + int index, Traj.GNSSPosition value) { + if (testPointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTestPointsIsMutable(); + testPoints_.set(index, value); + onChanged(); + } else { + testPointsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Builder setTestPoints( + int index, Traj.GNSSPosition.Builder builderForValue) { + if (testPointsBuilder_ == null) { + ensureTestPointsIsMutable(); + testPoints_.set(index, builderForValue.build()); + onChanged(); + } else { + testPointsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Builder addTestPoints(Traj.GNSSPosition value) { + if (testPointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTestPointsIsMutable(); + testPoints_.add(value); + onChanged(); + } else { + testPointsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Builder addTestPoints( + int index, Traj.GNSSPosition value) { + if (testPointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTestPointsIsMutable(); + testPoints_.add(index, value); + onChanged(); + } else { + testPointsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Builder addTestPoints( + Traj.GNSSPosition.Builder builderForValue) { + if (testPointsBuilder_ == null) { + ensureTestPointsIsMutable(); + testPoints_.add(builderForValue.build()); + onChanged(); + } else { + testPointsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Builder addTestPoints( + int index, Traj.GNSSPosition.Builder builderForValue) { + if (testPointsBuilder_ == null) { + ensureTestPointsIsMutable(); + testPoints_.add(index, builderForValue.build()); + onChanged(); + } else { + testPointsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Builder addAllTestPoints( + java.lang.Iterable values) { + if (testPointsBuilder_ == null) { + ensureTestPointsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, testPoints_); + onChanged(); + } else { + testPointsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Builder clearTestPoints() { + if (testPointsBuilder_ == null) { + testPoints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + } else { + testPointsBuilder_.clear(); + } + return this; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Builder removeTestPoints(int index) { + if (testPointsBuilder_ == null) { + ensureTestPointsIsMutable(); + testPoints_.remove(index); + onChanged(); + } else { + testPointsBuilder_.remove(index); + } + return this; + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Traj.GNSSPosition.Builder getTestPointsBuilder( + int index) { + return getTestPointsFieldBuilder().getBuilder(index); + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Traj.GNSSPositionOrBuilder getTestPointsOrBuilder( + int index) { + if (testPointsBuilder_ == null) { + return testPoints_.get(index); } else { + return testPointsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public java.util.List + getTestPointsOrBuilderList() { + if (testPointsBuilder_ != null) { + return testPointsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(testPoints_); + } + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Traj.GNSSPosition.Builder addTestPointsBuilder() { + return getTestPointsFieldBuilder().addBuilder( + Traj.GNSSPosition.getDefaultInstance()); + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public Traj.GNSSPosition.Builder addTestPointsBuilder( + int index) { + return getTestPointsFieldBuilder().addBuilder( + index, Traj.GNSSPosition.getDefaultInstance()); + } + /** + * repeated .GNSSPosition test_points = 26; + */ + public java.util.List + getTestPointsBuilderList() { + return getTestPointsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder> + getTestPointsFieldBuilder() { + if (testPointsBuilder_ == null) { + testPointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder>( + testPoints_, + ((bitField0_ & 0x00002000) != 0), + getParentForChildren(), + isClean()); + testPoints_ = null; + } + return testPointsBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:Trajectory) + } + + // @@protoc_insertion_point(class_scope:Trajectory) + private static final Traj.Trajectory DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new Traj.Trajectory(); + } + + public static Traj.Trajectory getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Trajectory parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Trajectory(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public Traj.Trajectory getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface RelativePositionOrBuilder extends + // @@protoc_insertion_point(interface_extends:RelativePosition) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * milliseconds from the start_timestamp
+     * 
+ * + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + long getRelativeTimestamp(); + + /** + *
+     * Both in metres. You should implement an algorithm to estimate
+     * these values. The values are always relative to your start point
+     * so the first entry should always be x = 0.0, y = 0.0
+     * 
+ * + * float x = 2; + * @return The x. + */ + float getX(); + + /** + * float y = 3; + * @return The y. + */ + float getY(); + } + /** + * Protobuf type {@code RelativePosition} + */ + public static final class RelativePosition extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:RelativePosition) + RelativePositionOrBuilder { + private static final long serialVersionUID = 0L; + // Use RelativePosition.newBuilder() to construct. + private RelativePosition(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private RelativePosition() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new RelativePosition(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private RelativePosition( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + relativeTimestamp_ = input.readInt64(); + break; + } + case 21: { + + x_ = input.readFloat(); + break; + } + case 29: { + + y_ = input.readFloat(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_RelativePosition_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_RelativePosition_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.RelativePosition.class, Traj.RelativePosition.Builder.class); + } + + public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; + private long relativeTimestamp_; + /** + *
+     * milliseconds from the start_timestamp
+     * 
+ * + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + + public static final int X_FIELD_NUMBER = 2; + private float x_; + /** + *
+     * Both in metres. You should implement an algorithm to estimate
+     * these values. The values are always relative to your start point
+     * so the first entry should always be x = 0.0, y = 0.0
+     * 
+ * + * float x = 2; + * @return The x. + */ + @java.lang.Override + public float getX() { + return x_; + } + + public static final int Y_FIELD_NUMBER = 3; + private float y_; + /** + * float y = 3; + * @return The y. + */ + @java.lang.Override + public float getY() { + return y_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (relativeTimestamp_ != 0L) { + output.writeInt64(1, relativeTimestamp_); + } + if (java.lang.Float.floatToRawIntBits(x_) != 0) { + output.writeFloat(2, x_); + } + if (java.lang.Float.floatToRawIntBits(y_) != 0) { + output.writeFloat(3, y_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (relativeTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, relativeTimestamp_); + } + if (java.lang.Float.floatToRawIntBits(x_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(2, x_); + } + if (java.lang.Float.floatToRawIntBits(y_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(3, y_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof Traj.RelativePosition)) { + return super.equals(obj); + } + Traj.RelativePosition other = (Traj.RelativePosition) obj; + + if (getRelativeTimestamp() + != other.getRelativeTimestamp()) return false; + if (java.lang.Float.floatToIntBits(getX()) + != java.lang.Float.floatToIntBits( + other.getX())) return false; + if (java.lang.Float.floatToIntBits(getY()) + != java.lang.Float.floatToIntBits( + other.getY())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRelativeTimestamp()); + hash = (37 * hash) + X_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getX()); + hash = (37 * hash) + Y_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getY()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static Traj.RelativePosition parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.RelativePosition parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.RelativePosition parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.RelativePosition parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.RelativePosition parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.RelativePosition parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.RelativePosition parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.RelativePosition parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.RelativePosition parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static Traj.RelativePosition parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.RelativePosition parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.RelativePosition parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(Traj.RelativePosition prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code RelativePosition} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:RelativePosition) + Traj.RelativePositionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_RelativePosition_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_RelativePosition_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.RelativePosition.class, Traj.RelativePosition.Builder.class); + } + + // Construct using Traj.RelativePosition.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + relativeTimestamp_ = 0L; + + x_ = 0F; + + y_ = 0F; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Traj.internal_static_RelativePosition_descriptor; + } + + @java.lang.Override + public Traj.RelativePosition getDefaultInstanceForType() { + return Traj.RelativePosition.getDefaultInstance(); + } + + @java.lang.Override + public Traj.RelativePosition build() { + Traj.RelativePosition result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public Traj.RelativePosition buildPartial() { + Traj.RelativePosition result = new Traj.RelativePosition(this); + result.relativeTimestamp_ = relativeTimestamp_; + result.x_ = x_; + result.y_ = y_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof Traj.RelativePosition) { + return mergeFrom((Traj.RelativePosition)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(Traj.RelativePosition other) { + if (other == Traj.RelativePosition.getDefaultInstance()) return this; + if (other.getRelativeTimestamp() != 0L) { + setRelativeTimestamp(other.getRelativeTimestamp()); + } + if (other.getX() != 0F) { + setX(other.getX()); + } + if (other.getY() != 0F) { + setY(other.getY()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Traj.RelativePosition parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Traj.RelativePosition) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private long relativeTimestamp_ ; + /** + *
+       * milliseconds from the start_timestamp
+       * 
+ * + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + /** + *
+       * milliseconds from the start_timestamp
+       * 
+ * + * int64 relative_timestamp = 1; + * @param value The relativeTimestamp to set. + * @return This builder for chaining. + */ + public Builder setRelativeTimestamp(long value) { + + relativeTimestamp_ = value; + onChanged(); + return this; + } + /** + *
+       * milliseconds from the start_timestamp
+       * 
+ * + * int64 relative_timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearRelativeTimestamp() { + + relativeTimestamp_ = 0L; + onChanged(); + return this; + } + + private float x_ ; + /** + *
+       * Both in metres. You should implement an algorithm to estimate
+       * these values. The values are always relative to your start point
+       * so the first entry should always be x = 0.0, y = 0.0
+       * 
+ * + * float x = 2; + * @return The x. + */ + @java.lang.Override + public float getX() { + return x_; + } + /** + *
+       * Both in metres. You should implement an algorithm to estimate
+       * these values. The values are always relative to your start point
+       * so the first entry should always be x = 0.0, y = 0.0
+       * 
+ * + * float x = 2; + * @param value The x to set. + * @return This builder for chaining. + */ + public Builder setX(float value) { + + x_ = value; + onChanged(); + return this; + } + /** + *
+       * Both in metres. You should implement an algorithm to estimate
+       * these values. The values are always relative to your start point
+       * so the first entry should always be x = 0.0, y = 0.0
+       * 
+ * + * float x = 2; + * @return This builder for chaining. + */ + public Builder clearX() { + + x_ = 0F; + onChanged(); + return this; + } + + private float y_ ; + /** + * float y = 3; + * @return The y. + */ + @java.lang.Override + public float getY() { + return y_; + } + /** + * float y = 3; + * @param value The y to set. + * @return This builder for chaining. + */ + public Builder setY(float value) { + + y_ = value; + onChanged(); + return this; + } + /** + * float y = 3; + * @return This builder for chaining. + */ + public Builder clearY() { + + y_ = 0F; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:RelativePosition) + } + + // @@protoc_insertion_point(class_scope:RelativePosition) + private static final Traj.RelativePosition DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new Traj.RelativePosition(); + } + + public static Traj.RelativePosition getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RelativePosition parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new RelativePosition(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public Traj.RelativePosition getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface IMUReadingOrBuilder extends + // @@protoc_insertion_point(interface_extends:IMUReading) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * milliseconds
+     * 
+ * + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + long getRelativeTimestamp(); + + /** + *
+     * Accelerometer [m/s^2]
+     * 
+ * + * .Vector3 acc = 2; + * @return Whether the acc field is set. + */ + boolean hasAcc(); + /** + *
+     * Accelerometer [m/s^2]
+     * 
+ * + * .Vector3 acc = 2; + * @return The acc. + */ + Traj.Vector3 getAcc(); + /** + *
+     * Accelerometer [m/s^2]
+     * 
+ * + * .Vector3 acc = 2; + */ + Traj.Vector3OrBuilder getAccOrBuilder(); + + /** + *
+     * Gyroscope [radians/s]
+     * 
+ * + * .Vector3 gyr = 3; + * @return Whether the gyr field is set. + */ + boolean hasGyr(); + /** + *
+     * Gyroscope [radians/s]
+     * 
+ * + * .Vector3 gyr = 3; + * @return The gyr. + */ + Traj.Vector3 getGyr(); + /** + *
+     * Gyroscope [radians/s]
+     * 
+ * + * .Vector3 gyr = 3; + */ + Traj.Vector3OrBuilder getGyrOrBuilder(); + + /** + *
+     * Orientation [unitless], 4 components should square sum to ~1
+     * 
+ * + * .Quaternion rotation_vector = 4; + * @return Whether the rotationVector field is set. + */ + boolean hasRotationVector(); + /** + *
+     * Orientation [unitless], 4 components should square sum to ~1
+     * 
+ * + * .Quaternion rotation_vector = 4; + * @return The rotationVector. + */ + Traj.Quaternion getRotationVector(); + /** + *
+     * Orientation [unitless], 4 components should square sum to ~1
+     * 
+ * + * .Quaternion rotation_vector = 4; + */ + Traj.QuaternionOrBuilder getRotationVectorOrBuilder(); + + /** + *
+     * Number of steps so far
+     * 
+ * + * int32 step_count = 5; + * @return The stepCount. + */ + int getStepCount(); + } + /** + * Protobuf type {@code IMUReading} + */ + public static final class IMUReading extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:IMUReading) + IMUReadingOrBuilder { + private static final long serialVersionUID = 0L; + // Use IMUReading.newBuilder() to construct. + private IMUReading(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private IMUReading() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new IMUReading(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private IMUReading( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + relativeTimestamp_ = input.readInt64(); + break; + } + case 18: { + Traj.Vector3.Builder subBuilder = null; + if (acc_ != null) { + subBuilder = acc_.toBuilder(); + } + acc_ = input.readMessage(Traj.Vector3.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(acc_); + acc_ = subBuilder.buildPartial(); + } + + break; + } + case 26: { + Traj.Vector3.Builder subBuilder = null; + if (gyr_ != null) { + subBuilder = gyr_.toBuilder(); + } + gyr_ = input.readMessage(Traj.Vector3.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(gyr_); + gyr_ = subBuilder.buildPartial(); + } + + break; + } + case 34: { + Traj.Quaternion.Builder subBuilder = null; + if (rotationVector_ != null) { + subBuilder = rotationVector_.toBuilder(); + } + rotationVector_ = input.readMessage(Traj.Quaternion.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(rotationVector_); + rotationVector_ = subBuilder.buildPartial(); + } + + break; + } + case 40: { + + stepCount_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_IMUReading_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_IMUReading_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.IMUReading.class, Traj.IMUReading.Builder.class); + } + + public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; + private long relativeTimestamp_; + /** + *
+     * milliseconds
+     * 
+ * + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + + public static final int ACC_FIELD_NUMBER = 2; + private Traj.Vector3 acc_; + /** + *
+     * Accelerometer [m/s^2]
+     * 
+ * + * .Vector3 acc = 2; + * @return Whether the acc field is set. + */ + @java.lang.Override + public boolean hasAcc() { + return acc_ != null; + } + /** + *
+     * Accelerometer [m/s^2]
+     * 
+ * + * .Vector3 acc = 2; + * @return The acc. + */ + @java.lang.Override + public Traj.Vector3 getAcc() { + return acc_ == null ? Traj.Vector3.getDefaultInstance() : acc_; + } + /** + *
+     * Accelerometer [m/s^2]
+     * 
+ * + * .Vector3 acc = 2; + */ + @java.lang.Override + public Traj.Vector3OrBuilder getAccOrBuilder() { + return getAcc(); + } + + public static final int GYR_FIELD_NUMBER = 3; + private Traj.Vector3 gyr_; + /** + *
+     * Gyroscope [radians/s]
+     * 
+ * + * .Vector3 gyr = 3; + * @return Whether the gyr field is set. + */ + @java.lang.Override + public boolean hasGyr() { + return gyr_ != null; + } + /** + *
+     * Gyroscope [radians/s]
+     * 
+ * + * .Vector3 gyr = 3; + * @return The gyr. + */ + @java.lang.Override + public Traj.Vector3 getGyr() { + return gyr_ == null ? Traj.Vector3.getDefaultInstance() : gyr_; + } + /** + *
+     * Gyroscope [radians/s]
+     * 
+ * + * .Vector3 gyr = 3; + */ + @java.lang.Override + public Traj.Vector3OrBuilder getGyrOrBuilder() { + return getGyr(); + } + + public static final int ROTATION_VECTOR_FIELD_NUMBER = 4; + private Traj.Quaternion rotationVector_; + /** + *
+     * Orientation [unitless], 4 components should square sum to ~1
+     * 
+ * + * .Quaternion rotation_vector = 4; + * @return Whether the rotationVector field is set. + */ + @java.lang.Override + public boolean hasRotationVector() { + return rotationVector_ != null; + } + /** + *
+     * Orientation [unitless], 4 components should square sum to ~1
+     * 
+ * + * .Quaternion rotation_vector = 4; + * @return The rotationVector. + */ + @java.lang.Override + public Traj.Quaternion getRotationVector() { + return rotationVector_ == null ? Traj.Quaternion.getDefaultInstance() : rotationVector_; + } + /** + *
+     * Orientation [unitless], 4 components should square sum to ~1
+     * 
+ * + * .Quaternion rotation_vector = 4; + */ + @java.lang.Override + public Traj.QuaternionOrBuilder getRotationVectorOrBuilder() { + return getRotationVector(); + } + + public static final int STEP_COUNT_FIELD_NUMBER = 5; + private int stepCount_; + /** + *
+     * Number of steps so far
+     * 
+ * + * int32 step_count = 5; + * @return The stepCount. + */ + @java.lang.Override + public int getStepCount() { + return stepCount_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (relativeTimestamp_ != 0L) { + output.writeInt64(1, relativeTimestamp_); + } + if (acc_ != null) { + output.writeMessage(2, getAcc()); + } + if (gyr_ != null) { + output.writeMessage(3, getGyr()); + } + if (rotationVector_ != null) { + output.writeMessage(4, getRotationVector()); + } + if (stepCount_ != 0) { + output.writeInt32(5, stepCount_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (relativeTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, relativeTimestamp_); + } + if (acc_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getAcc()); + } + if (gyr_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getGyr()); + } + if (rotationVector_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getRotationVector()); + } + if (stepCount_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(5, stepCount_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof Traj.IMUReading)) { + return super.equals(obj); + } + Traj.IMUReading other = (Traj.IMUReading) obj; + + if (getRelativeTimestamp() + != other.getRelativeTimestamp()) return false; + if (hasAcc() != other.hasAcc()) return false; + if (hasAcc()) { + if (!getAcc() + .equals(other.getAcc())) return false; + } + if (hasGyr() != other.hasGyr()) return false; + if (hasGyr()) { + if (!getGyr() + .equals(other.getGyr())) return false; + } + if (hasRotationVector() != other.hasRotationVector()) return false; + if (hasRotationVector()) { + if (!getRotationVector() + .equals(other.getRotationVector())) return false; + } + if (getStepCount() + != other.getStepCount()) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRelativeTimestamp()); + if (hasAcc()) { + hash = (37 * hash) + ACC_FIELD_NUMBER; + hash = (53 * hash) + getAcc().hashCode(); + } + if (hasGyr()) { + hash = (37 * hash) + GYR_FIELD_NUMBER; + hash = (53 * hash) + getGyr().hashCode(); + } + if (hasRotationVector()) { + hash = (37 * hash) + ROTATION_VECTOR_FIELD_NUMBER; + hash = (53 * hash) + getRotationVector().hashCode(); + } + hash = (37 * hash) + STEP_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getStepCount(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static Traj.IMUReading parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.IMUReading parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.IMUReading parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.IMUReading parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.IMUReading parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.IMUReading parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.IMUReading parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.IMUReading parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.IMUReading parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static Traj.IMUReading parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.IMUReading parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.IMUReading parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(Traj.IMUReading prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code IMUReading} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:IMUReading) + Traj.IMUReadingOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_IMUReading_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_IMUReading_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.IMUReading.class, Traj.IMUReading.Builder.class); + } + + // Construct using Traj.IMUReading.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + relativeTimestamp_ = 0L; + + if (accBuilder_ == null) { + acc_ = null; + } else { + acc_ = null; + accBuilder_ = null; + } + if (gyrBuilder_ == null) { + gyr_ = null; + } else { + gyr_ = null; + gyrBuilder_ = null; + } + if (rotationVectorBuilder_ == null) { + rotationVector_ = null; + } else { + rotationVector_ = null; + rotationVectorBuilder_ = null; + } + stepCount_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Traj.internal_static_IMUReading_descriptor; + } + + @java.lang.Override + public Traj.IMUReading getDefaultInstanceForType() { + return Traj.IMUReading.getDefaultInstance(); + } + + @java.lang.Override + public Traj.IMUReading build() { + Traj.IMUReading result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public Traj.IMUReading buildPartial() { + Traj.IMUReading result = new Traj.IMUReading(this); + result.relativeTimestamp_ = relativeTimestamp_; + if (accBuilder_ == null) { + result.acc_ = acc_; + } else { + result.acc_ = accBuilder_.build(); + } + if (gyrBuilder_ == null) { + result.gyr_ = gyr_; + } else { + result.gyr_ = gyrBuilder_.build(); + } + if (rotationVectorBuilder_ == null) { + result.rotationVector_ = rotationVector_; + } else { + result.rotationVector_ = rotationVectorBuilder_.build(); + } + result.stepCount_ = stepCount_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof Traj.IMUReading) { + return mergeFrom((Traj.IMUReading)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(Traj.IMUReading other) { + if (other == Traj.IMUReading.getDefaultInstance()) return this; + if (other.getRelativeTimestamp() != 0L) { + setRelativeTimestamp(other.getRelativeTimestamp()); + } + if (other.hasAcc()) { + mergeAcc(other.getAcc()); + } + if (other.hasGyr()) { + mergeGyr(other.getGyr()); + } + if (other.hasRotationVector()) { + mergeRotationVector(other.getRotationVector()); + } + if (other.getStepCount() != 0) { + setStepCount(other.getStepCount()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Traj.IMUReading parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Traj.IMUReading) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private long relativeTimestamp_ ; + /** + *
+       * milliseconds
+       * 
+ * + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + /** + *
+       * milliseconds
+       * 
+ * + * int64 relative_timestamp = 1; + * @param value The relativeTimestamp to set. + * @return This builder for chaining. + */ + public Builder setRelativeTimestamp(long value) { + + relativeTimestamp_ = value; + onChanged(); + return this; + } + /** + *
+       * milliseconds
+       * 
+ * + * int64 relative_timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearRelativeTimestamp() { + + relativeTimestamp_ = 0L; + onChanged(); + return this; + } + + private Traj.Vector3 acc_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.Vector3, Traj.Vector3.Builder, Traj.Vector3OrBuilder> accBuilder_; + /** + *
+       * Accelerometer [m/s^2]
+       * 
+ * + * .Vector3 acc = 2; + * @return Whether the acc field is set. + */ + public boolean hasAcc() { + return accBuilder_ != null || acc_ != null; + } + /** + *
+       * Accelerometer [m/s^2]
+       * 
+ * + * .Vector3 acc = 2; + * @return The acc. + */ + public Traj.Vector3 getAcc() { + if (accBuilder_ == null) { + return acc_ == null ? Traj.Vector3.getDefaultInstance() : acc_; + } else { + return accBuilder_.getMessage(); + } + } + /** + *
+       * Accelerometer [m/s^2]
+       * 
+ * + * .Vector3 acc = 2; + */ + public Builder setAcc(Traj.Vector3 value) { + if (accBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + acc_ = value; + onChanged(); + } else { + accBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * Accelerometer [m/s^2]
+       * 
+ * + * .Vector3 acc = 2; + */ + public Builder setAcc( + Traj.Vector3.Builder builderForValue) { + if (accBuilder_ == null) { + acc_ = builderForValue.build(); + onChanged(); + } else { + accBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * Accelerometer [m/s^2]
+       * 
+ * + * .Vector3 acc = 2; + */ + public Builder mergeAcc(Traj.Vector3 value) { + if (accBuilder_ == null) { + if (acc_ != null) { + acc_ = + Traj.Vector3.newBuilder(acc_).mergeFrom(value).buildPartial(); + } else { + acc_ = value; + } + onChanged(); + } else { + accBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * Accelerometer [m/s^2]
+       * 
+ * + * .Vector3 acc = 2; + */ + public Builder clearAcc() { + if (accBuilder_ == null) { + acc_ = null; + onChanged(); + } else { + acc_ = null; + accBuilder_ = null; + } + + return this; + } + /** + *
+       * Accelerometer [m/s^2]
+       * 
+ * + * .Vector3 acc = 2; + */ + public Traj.Vector3.Builder getAccBuilder() { + + onChanged(); + return getAccFieldBuilder().getBuilder(); + } + /** + *
+       * Accelerometer [m/s^2]
+       * 
+ * + * .Vector3 acc = 2; + */ + public Traj.Vector3OrBuilder getAccOrBuilder() { + if (accBuilder_ != null) { + return accBuilder_.getMessageOrBuilder(); + } else { + return acc_ == null ? + Traj.Vector3.getDefaultInstance() : acc_; + } + } + /** + *
+       * Accelerometer [m/s^2]
+       * 
+ * + * .Vector3 acc = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.Vector3, Traj.Vector3.Builder, Traj.Vector3OrBuilder> + getAccFieldBuilder() { + if (accBuilder_ == null) { + accBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.Vector3, Traj.Vector3.Builder, Traj.Vector3OrBuilder>( + getAcc(), + getParentForChildren(), + isClean()); + acc_ = null; + } + return accBuilder_; + } + + private Traj.Vector3 gyr_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.Vector3, Traj.Vector3.Builder, Traj.Vector3OrBuilder> gyrBuilder_; + /** + *
+       * Gyroscope [radians/s]
+       * 
+ * + * .Vector3 gyr = 3; + * @return Whether the gyr field is set. + */ + public boolean hasGyr() { + return gyrBuilder_ != null || gyr_ != null; + } + /** + *
+       * Gyroscope [radians/s]
+       * 
+ * + * .Vector3 gyr = 3; + * @return The gyr. + */ + public Traj.Vector3 getGyr() { + if (gyrBuilder_ == null) { + return gyr_ == null ? Traj.Vector3.getDefaultInstance() : gyr_; + } else { + return gyrBuilder_.getMessage(); + } + } + /** + *
+       * Gyroscope [radians/s]
+       * 
+ * + * .Vector3 gyr = 3; + */ + public Builder setGyr(Traj.Vector3 value) { + if (gyrBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + gyr_ = value; + onChanged(); + } else { + gyrBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * Gyroscope [radians/s]
+       * 
+ * + * .Vector3 gyr = 3; + */ + public Builder setGyr( + Traj.Vector3.Builder builderForValue) { + if (gyrBuilder_ == null) { + gyr_ = builderForValue.build(); + onChanged(); + } else { + gyrBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * Gyroscope [radians/s]
+       * 
+ * + * .Vector3 gyr = 3; + */ + public Builder mergeGyr(Traj.Vector3 value) { + if (gyrBuilder_ == null) { + if (gyr_ != null) { + gyr_ = + Traj.Vector3.newBuilder(gyr_).mergeFrom(value).buildPartial(); + } else { + gyr_ = value; + } + onChanged(); + } else { + gyrBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * Gyroscope [radians/s]
+       * 
+ * + * .Vector3 gyr = 3; + */ + public Builder clearGyr() { + if (gyrBuilder_ == null) { + gyr_ = null; + onChanged(); + } else { + gyr_ = null; + gyrBuilder_ = null; + } + + return this; + } + /** + *
+       * Gyroscope [radians/s]
+       * 
+ * + * .Vector3 gyr = 3; + */ + public Traj.Vector3.Builder getGyrBuilder() { + + onChanged(); + return getGyrFieldBuilder().getBuilder(); + } + /** + *
+       * Gyroscope [radians/s]
+       * 
+ * + * .Vector3 gyr = 3; + */ + public Traj.Vector3OrBuilder getGyrOrBuilder() { + if (gyrBuilder_ != null) { + return gyrBuilder_.getMessageOrBuilder(); + } else { + return gyr_ == null ? + Traj.Vector3.getDefaultInstance() : gyr_; + } + } + /** + *
+       * Gyroscope [radians/s]
+       * 
+ * + * .Vector3 gyr = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.Vector3, Traj.Vector3.Builder, Traj.Vector3OrBuilder> + getGyrFieldBuilder() { + if (gyrBuilder_ == null) { + gyrBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.Vector3, Traj.Vector3.Builder, Traj.Vector3OrBuilder>( + getGyr(), + getParentForChildren(), + isClean()); + gyr_ = null; + } + return gyrBuilder_; + } + + private Traj.Quaternion rotationVector_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.Quaternion, Traj.Quaternion.Builder, Traj.QuaternionOrBuilder> rotationVectorBuilder_; + /** + *
+       * Orientation [unitless], 4 components should square sum to ~1
+       * 
+ * + * .Quaternion rotation_vector = 4; + * @return Whether the rotationVector field is set. + */ + public boolean hasRotationVector() { + return rotationVectorBuilder_ != null || rotationVector_ != null; + } + /** + *
+       * Orientation [unitless], 4 components should square sum to ~1
+       * 
+ * + * .Quaternion rotation_vector = 4; + * @return The rotationVector. + */ + public Traj.Quaternion getRotationVector() { + if (rotationVectorBuilder_ == null) { + return rotationVector_ == null ? Traj.Quaternion.getDefaultInstance() : rotationVector_; + } else { + return rotationVectorBuilder_.getMessage(); + } + } + /** + *
+       * Orientation [unitless], 4 components should square sum to ~1
+       * 
+ * + * .Quaternion rotation_vector = 4; + */ + public Builder setRotationVector(Traj.Quaternion value) { + if (rotationVectorBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + rotationVector_ = value; + onChanged(); + } else { + rotationVectorBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * Orientation [unitless], 4 components should square sum to ~1
+       * 
+ * + * .Quaternion rotation_vector = 4; + */ + public Builder setRotationVector( + Traj.Quaternion.Builder builderForValue) { + if (rotationVectorBuilder_ == null) { + rotationVector_ = builderForValue.build(); + onChanged(); + } else { + rotationVectorBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * Orientation [unitless], 4 components should square sum to ~1
+       * 
+ * + * .Quaternion rotation_vector = 4; + */ + public Builder mergeRotationVector(Traj.Quaternion value) { + if (rotationVectorBuilder_ == null) { + if (rotationVector_ != null) { + rotationVector_ = + Traj.Quaternion.newBuilder(rotationVector_).mergeFrom(value).buildPartial(); + } else { + rotationVector_ = value; + } + onChanged(); + } else { + rotationVectorBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * Orientation [unitless], 4 components should square sum to ~1
+       * 
+ * + * .Quaternion rotation_vector = 4; + */ + public Builder clearRotationVector() { + if (rotationVectorBuilder_ == null) { + rotationVector_ = null; + onChanged(); + } else { + rotationVector_ = null; + rotationVectorBuilder_ = null; + } + + return this; + } + /** + *
+       * Orientation [unitless], 4 components should square sum to ~1
+       * 
+ * + * .Quaternion rotation_vector = 4; + */ + public Traj.Quaternion.Builder getRotationVectorBuilder() { + + onChanged(); + return getRotationVectorFieldBuilder().getBuilder(); + } + /** + *
+       * Orientation [unitless], 4 components should square sum to ~1
+       * 
+ * + * .Quaternion rotation_vector = 4; + */ + public Traj.QuaternionOrBuilder getRotationVectorOrBuilder() { + if (rotationVectorBuilder_ != null) { + return rotationVectorBuilder_.getMessageOrBuilder(); + } else { + return rotationVector_ == null ? + Traj.Quaternion.getDefaultInstance() : rotationVector_; + } + } + /** + *
+       * Orientation [unitless], 4 components should square sum to ~1
+       * 
+ * + * .Quaternion rotation_vector = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.Quaternion, Traj.Quaternion.Builder, Traj.QuaternionOrBuilder> + getRotationVectorFieldBuilder() { + if (rotationVectorBuilder_ == null) { + rotationVectorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.Quaternion, Traj.Quaternion.Builder, Traj.QuaternionOrBuilder>( + getRotationVector(), + getParentForChildren(), + isClean()); + rotationVector_ = null; + } + return rotationVectorBuilder_; + } + + private int stepCount_ ; + /** + *
+       * Number of steps so far
+       * 
+ * + * int32 step_count = 5; + * @return The stepCount. + */ + @java.lang.Override + public int getStepCount() { + return stepCount_; + } + /** + *
+       * Number of steps so far
+       * 
+ * + * int32 step_count = 5; + * @param value The stepCount to set. + * @return This builder for chaining. + */ + public Builder setStepCount(int value) { + + stepCount_ = value; + onChanged(); + return this; + } + /** + *
+       * Number of steps so far
+       * 
+ * + * int32 step_count = 5; + * @return This builder for chaining. + */ + public Builder clearStepCount() { + + stepCount_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:IMUReading) + } + + // @@protoc_insertion_point(class_scope:IMUReading) + private static final Traj.IMUReading DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new Traj.IMUReading(); + } + + public static Traj.IMUReading getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public IMUReading parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new IMUReading(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public Traj.IMUReading getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface MagnetometerReadingOrBuilder extends + // @@protoc_insertion_point(interface_extends:MagnetometerReading) + com.google.protobuf.MessageOrBuilder { + + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + long getRelativeTimestamp(); + + /** + *
+     * Magnetometer [uT]
+     * 
+ * + * .Vector3 mag = 2; + * @return Whether the mag field is set. + */ + boolean hasMag(); + /** + *
+     * Magnetometer [uT]
+     * 
+ * + * .Vector3 mag = 2; + * @return The mag. + */ + Traj.Vector3 getMag(); + /** + *
+     * Magnetometer [uT]
+     * 
+ * + * .Vector3 mag = 2; + */ + Traj.Vector3OrBuilder getMagOrBuilder(); + } + /** + * Protobuf type {@code MagnetometerReading} + */ + public static final class MagnetometerReading extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:MagnetometerReading) + MagnetometerReadingOrBuilder { + private static final long serialVersionUID = 0L; + // Use MagnetometerReading.newBuilder() to construct. + private MagnetometerReading(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MagnetometerReading() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MagnetometerReading(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MagnetometerReading( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + relativeTimestamp_ = input.readInt64(); + break; + } + case 18: { + Traj.Vector3.Builder subBuilder = null; + if (mag_ != null) { + subBuilder = mag_.toBuilder(); + } + mag_ = input.readMessage(Traj.Vector3.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(mag_); + mag_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_MagnetometerReading_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_MagnetometerReading_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.MagnetometerReading.class, Traj.MagnetometerReading.Builder.class); + } + + public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; + private long relativeTimestamp_; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + + public static final int MAG_FIELD_NUMBER = 2; + private Traj.Vector3 mag_; + /** + *
+     * Magnetometer [uT]
+     * 
+ * + * .Vector3 mag = 2; + * @return Whether the mag field is set. + */ + @java.lang.Override + public boolean hasMag() { + return mag_ != null; + } + /** + *
+     * Magnetometer [uT]
+     * 
+ * + * .Vector3 mag = 2; + * @return The mag. + */ + @java.lang.Override + public Traj.Vector3 getMag() { + return mag_ == null ? Traj.Vector3.getDefaultInstance() : mag_; + } + /** + *
+     * Magnetometer [uT]
+     * 
+ * + * .Vector3 mag = 2; + */ + @java.lang.Override + public Traj.Vector3OrBuilder getMagOrBuilder() { + return getMag(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (relativeTimestamp_ != 0L) { + output.writeInt64(1, relativeTimestamp_); + } + if (mag_ != null) { + output.writeMessage(2, getMag()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (relativeTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, relativeTimestamp_); + } + if (mag_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getMag()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof Traj.MagnetometerReading)) { + return super.equals(obj); + } + Traj.MagnetometerReading other = (Traj.MagnetometerReading) obj; + + if (getRelativeTimestamp() + != other.getRelativeTimestamp()) return false; + if (hasMag() != other.hasMag()) return false; + if (hasMag()) { + if (!getMag() + .equals(other.getMag())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRelativeTimestamp()); + if (hasMag()) { + hash = (37 * hash) + MAG_FIELD_NUMBER; + hash = (53 * hash) + getMag().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static Traj.MagnetometerReading parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.MagnetometerReading parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.MagnetometerReading parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.MagnetometerReading parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.MagnetometerReading parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.MagnetometerReading parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.MagnetometerReading parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.MagnetometerReading parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.MagnetometerReading parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static Traj.MagnetometerReading parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.MagnetometerReading parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.MagnetometerReading parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(Traj.MagnetometerReading prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code MagnetometerReading} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:MagnetometerReading) + Traj.MagnetometerReadingOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_MagnetometerReading_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_MagnetometerReading_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.MagnetometerReading.class, Traj.MagnetometerReading.Builder.class); + } + + // Construct using Traj.MagnetometerReading.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + relativeTimestamp_ = 0L; + + if (magBuilder_ == null) { + mag_ = null; + } else { + mag_ = null; + magBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Traj.internal_static_MagnetometerReading_descriptor; + } + + @java.lang.Override + public Traj.MagnetometerReading getDefaultInstanceForType() { + return Traj.MagnetometerReading.getDefaultInstance(); + } + + @java.lang.Override + public Traj.MagnetometerReading build() { + Traj.MagnetometerReading result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public Traj.MagnetometerReading buildPartial() { + Traj.MagnetometerReading result = new Traj.MagnetometerReading(this); + result.relativeTimestamp_ = relativeTimestamp_; + if (magBuilder_ == null) { + result.mag_ = mag_; + } else { + result.mag_ = magBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof Traj.MagnetometerReading) { + return mergeFrom((Traj.MagnetometerReading)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(Traj.MagnetometerReading other) { + if (other == Traj.MagnetometerReading.getDefaultInstance()) return this; + if (other.getRelativeTimestamp() != 0L) { + setRelativeTimestamp(other.getRelativeTimestamp()); + } + if (other.hasMag()) { + mergeMag(other.getMag()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Traj.MagnetometerReading parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Traj.MagnetometerReading) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private long relativeTimestamp_ ; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + /** + * int64 relative_timestamp = 1; + * @param value The relativeTimestamp to set. + * @return This builder for chaining. + */ + public Builder setRelativeTimestamp(long value) { + + relativeTimestamp_ = value; + onChanged(); + return this; + } + /** + * int64 relative_timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearRelativeTimestamp() { + + relativeTimestamp_ = 0L; + onChanged(); + return this; + } + + private Traj.Vector3 mag_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.Vector3, Traj.Vector3.Builder, Traj.Vector3OrBuilder> magBuilder_; + /** + *
+       * Magnetometer [uT]
+       * 
+ * + * .Vector3 mag = 2; + * @return Whether the mag field is set. + */ + public boolean hasMag() { + return magBuilder_ != null || mag_ != null; + } + /** + *
+       * Magnetometer [uT]
+       * 
+ * + * .Vector3 mag = 2; + * @return The mag. + */ + public Traj.Vector3 getMag() { + if (magBuilder_ == null) { + return mag_ == null ? Traj.Vector3.getDefaultInstance() : mag_; + } else { + return magBuilder_.getMessage(); + } + } + /** + *
+       * Magnetometer [uT]
+       * 
+ * + * .Vector3 mag = 2; + */ + public Builder setMag(Traj.Vector3 value) { + if (magBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + mag_ = value; + onChanged(); + } else { + magBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * Magnetometer [uT]
+       * 
+ * + * .Vector3 mag = 2; + */ + public Builder setMag( + Traj.Vector3.Builder builderForValue) { + if (magBuilder_ == null) { + mag_ = builderForValue.build(); + onChanged(); + } else { + magBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * Magnetometer [uT]
+       * 
+ * + * .Vector3 mag = 2; + */ + public Builder mergeMag(Traj.Vector3 value) { + if (magBuilder_ == null) { + if (mag_ != null) { + mag_ = + Traj.Vector3.newBuilder(mag_).mergeFrom(value).buildPartial(); + } else { + mag_ = value; + } + onChanged(); + } else { + magBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * Magnetometer [uT]
+       * 
+ * + * .Vector3 mag = 2; + */ + public Builder clearMag() { + if (magBuilder_ == null) { + mag_ = null; + onChanged(); + } else { + mag_ = null; + magBuilder_ = null; + } + + return this; + } + /** + *
+       * Magnetometer [uT]
+       * 
+ * + * .Vector3 mag = 2; + */ + public Traj.Vector3.Builder getMagBuilder() { + + onChanged(); + return getMagFieldBuilder().getBuilder(); + } + /** + *
+       * Magnetometer [uT]
+       * 
+ * + * .Vector3 mag = 2; + */ + public Traj.Vector3OrBuilder getMagOrBuilder() { + if (magBuilder_ != null) { + return magBuilder_.getMessageOrBuilder(); + } else { + return mag_ == null ? + Traj.Vector3.getDefaultInstance() : mag_; + } + } + /** + *
+       * Magnetometer [uT]
+       * 
+ * + * .Vector3 mag = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.Vector3, Traj.Vector3.Builder, Traj.Vector3OrBuilder> + getMagFieldBuilder() { + if (magBuilder_ == null) { + magBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.Vector3, Traj.Vector3.Builder, Traj.Vector3OrBuilder>( + getMag(), + getParentForChildren(), + isClean()); + mag_ = null; + } + return magBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:MagnetometerReading) + } + + // @@protoc_insertion_point(class_scope:MagnetometerReading) + private static final Traj.MagnetometerReading DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new Traj.MagnetometerReading(); + } + + public static Traj.MagnetometerReading getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MagnetometerReading parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MagnetometerReading(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public Traj.MagnetometerReading getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface BarometerReadingOrBuilder extends + // @@protoc_insertion_point(interface_extends:BarometerReading) + com.google.protobuf.MessageOrBuilder { + + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + long getRelativeTimestamp(); + + /** + *
+     * mbar
+     * 
+ * + * float pressure = 2; + * @return The pressure. + */ + float getPressure(); + } + /** + * Protobuf type {@code BarometerReading} + */ + public static final class BarometerReading extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:BarometerReading) + BarometerReadingOrBuilder { + private static final long serialVersionUID = 0L; + // Use BarometerReading.newBuilder() to construct. + private BarometerReading(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private BarometerReading() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new BarometerReading(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private BarometerReading( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + relativeTimestamp_ = input.readInt64(); + break; + } + case 21: { + + pressure_ = input.readFloat(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_BarometerReading_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_BarometerReading_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.BarometerReading.class, Traj.BarometerReading.Builder.class); + } + + public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; + private long relativeTimestamp_; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + + public static final int PRESSURE_FIELD_NUMBER = 2; + private float pressure_; + /** + *
+     * mbar
+     * 
+ * + * float pressure = 2; + * @return The pressure. + */ + @java.lang.Override + public float getPressure() { + return pressure_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (relativeTimestamp_ != 0L) { + output.writeInt64(1, relativeTimestamp_); + } + if (java.lang.Float.floatToRawIntBits(pressure_) != 0) { + output.writeFloat(2, pressure_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (relativeTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, relativeTimestamp_); + } + if (java.lang.Float.floatToRawIntBits(pressure_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(2, pressure_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof Traj.BarometerReading)) { + return super.equals(obj); + } + Traj.BarometerReading other = (Traj.BarometerReading) obj; + + if (getRelativeTimestamp() + != other.getRelativeTimestamp()) return false; + if (java.lang.Float.floatToIntBits(getPressure()) + != java.lang.Float.floatToIntBits( + other.getPressure())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRelativeTimestamp()); + hash = (37 * hash) + PRESSURE_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getPressure()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static Traj.BarometerReading parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.BarometerReading parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.BarometerReading parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.BarometerReading parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.BarometerReading parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.BarometerReading parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.BarometerReading parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.BarometerReading parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.BarometerReading parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static Traj.BarometerReading parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.BarometerReading parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.BarometerReading parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(Traj.BarometerReading prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code BarometerReading} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:BarometerReading) + Traj.BarometerReadingOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_BarometerReading_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_BarometerReading_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.BarometerReading.class, Traj.BarometerReading.Builder.class); + } + + // Construct using Traj.BarometerReading.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + relativeTimestamp_ = 0L; + + pressure_ = 0F; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Traj.internal_static_BarometerReading_descriptor; + } + + @java.lang.Override + public Traj.BarometerReading getDefaultInstanceForType() { + return Traj.BarometerReading.getDefaultInstance(); + } + + @java.lang.Override + public Traj.BarometerReading build() { + Traj.BarometerReading result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public Traj.BarometerReading buildPartial() { + Traj.BarometerReading result = new Traj.BarometerReading(this); + result.relativeTimestamp_ = relativeTimestamp_; + result.pressure_ = pressure_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof Traj.BarometerReading) { + return mergeFrom((Traj.BarometerReading)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(Traj.BarometerReading other) { + if (other == Traj.BarometerReading.getDefaultInstance()) return this; + if (other.getRelativeTimestamp() != 0L) { + setRelativeTimestamp(other.getRelativeTimestamp()); + } + if (other.getPressure() != 0F) { + setPressure(other.getPressure()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Traj.BarometerReading parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Traj.BarometerReading) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private long relativeTimestamp_ ; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + /** + * int64 relative_timestamp = 1; + * @param value The relativeTimestamp to set. + * @return This builder for chaining. + */ + public Builder setRelativeTimestamp(long value) { + + relativeTimestamp_ = value; + onChanged(); + return this; + } + /** + * int64 relative_timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearRelativeTimestamp() { + + relativeTimestamp_ = 0L; + onChanged(); + return this; + } + + private float pressure_ ; + /** + *
+       * mbar
+       * 
+ * + * float pressure = 2; + * @return The pressure. + */ + @java.lang.Override + public float getPressure() { + return pressure_; + } + /** + *
+       * mbar
+       * 
+ * + * float pressure = 2; + * @param value The pressure to set. + * @return This builder for chaining. + */ + public Builder setPressure(float value) { + + pressure_ = value; + onChanged(); + return this; + } + /** + *
+       * mbar
+       * 
+ * + * float pressure = 2; + * @return This builder for chaining. + */ + public Builder clearPressure() { + + pressure_ = 0F; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:BarometerReading) + } + + // @@protoc_insertion_point(class_scope:BarometerReading) + private static final Traj.BarometerReading DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new Traj.BarometerReading(); + } + + public static Traj.BarometerReading getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BarometerReading parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new BarometerReading(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public Traj.BarometerReading getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface LightReadingOrBuilder extends + // @@protoc_insertion_point(interface_extends:LightReading) + com.google.protobuf.MessageOrBuilder { + + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + long getRelativeTimestamp(); + + /** + *
+     * lux
+     * 
+ * + * float light = 2; + * @return The light. + */ + float getLight(); + } + /** + * Protobuf type {@code LightReading} + */ + public static final class LightReading extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:LightReading) + LightReadingOrBuilder { + private static final long serialVersionUID = 0L; + // Use LightReading.newBuilder() to construct. + private LightReading(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private LightReading() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new LightReading(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private LightReading( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + relativeTimestamp_ = input.readInt64(); + break; + } + case 21: { + + light_ = input.readFloat(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_LightReading_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_LightReading_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.LightReading.class, Traj.LightReading.Builder.class); + } + + public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; + private long relativeTimestamp_; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + + public static final int LIGHT_FIELD_NUMBER = 2; + private float light_; + /** + *
+     * lux
+     * 
+ * + * float light = 2; + * @return The light. + */ + @java.lang.Override + public float getLight() { + return light_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (relativeTimestamp_ != 0L) { + output.writeInt64(1, relativeTimestamp_); + } + if (java.lang.Float.floatToRawIntBits(light_) != 0) { + output.writeFloat(2, light_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (relativeTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, relativeTimestamp_); + } + if (java.lang.Float.floatToRawIntBits(light_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(2, light_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof Traj.LightReading)) { + return super.equals(obj); + } + Traj.LightReading other = (Traj.LightReading) obj; + + if (getRelativeTimestamp() + != other.getRelativeTimestamp()) return false; + if (java.lang.Float.floatToIntBits(getLight()) + != java.lang.Float.floatToIntBits( + other.getLight())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRelativeTimestamp()); + hash = (37 * hash) + LIGHT_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getLight()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static Traj.LightReading parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.LightReading parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.LightReading parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.LightReading parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.LightReading parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.LightReading parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.LightReading parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.LightReading parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.LightReading parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static Traj.LightReading parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.LightReading parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.LightReading parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(Traj.LightReading prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code LightReading} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:LightReading) + Traj.LightReadingOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_LightReading_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_LightReading_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.LightReading.class, Traj.LightReading.Builder.class); + } + + // Construct using Traj.LightReading.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + relativeTimestamp_ = 0L; + + light_ = 0F; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Traj.internal_static_LightReading_descriptor; + } + + @java.lang.Override + public Traj.LightReading getDefaultInstanceForType() { + return Traj.LightReading.getDefaultInstance(); + } + + @java.lang.Override + public Traj.LightReading build() { + Traj.LightReading result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public Traj.LightReading buildPartial() { + Traj.LightReading result = new Traj.LightReading(this); + result.relativeTimestamp_ = relativeTimestamp_; + result.light_ = light_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof Traj.LightReading) { + return mergeFrom((Traj.LightReading)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(Traj.LightReading other) { + if (other == Traj.LightReading.getDefaultInstance()) return this; + if (other.getRelativeTimestamp() != 0L) { + setRelativeTimestamp(other.getRelativeTimestamp()); + } + if (other.getLight() != 0F) { + setLight(other.getLight()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Traj.LightReading parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Traj.LightReading) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private long relativeTimestamp_ ; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + /** + * int64 relative_timestamp = 1; + * @param value The relativeTimestamp to set. + * @return This builder for chaining. + */ + public Builder setRelativeTimestamp(long value) { + + relativeTimestamp_ = value; + onChanged(); + return this; + } + /** + * int64 relative_timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearRelativeTimestamp() { + + relativeTimestamp_ = 0L; + onChanged(); + return this; + } + + private float light_ ; + /** + *
+       * lux
+       * 
+ * + * float light = 2; + * @return The light. + */ + @java.lang.Override + public float getLight() { + return light_; + } + /** + *
+       * lux
+       * 
+ * + * float light = 2; + * @param value The light to set. + * @return This builder for chaining. + */ + public Builder setLight(float value) { + + light_ = value; + onChanged(); + return this; + } + /** + *
+       * lux
+       * 
+ * + * float light = 2; + * @return This builder for chaining. + */ + public Builder clearLight() { + + light_ = 0F; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:LightReading) + } + + // @@protoc_insertion_point(class_scope:LightReading) + private static final Traj.LightReading DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new Traj.LightReading(); + } + + public static Traj.LightReading getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public LightReading parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new LightReading(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public Traj.LightReading getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ProximityReadingOrBuilder extends + // @@protoc_insertion_point(interface_extends:ProximityReading) + com.google.protobuf.MessageOrBuilder { + + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + long getRelativeTimestamp(); + + /** + *
+     * cm
+     * 
+ * + * float distance = 2; + * @return The distance. + */ + float getDistance(); + } + /** + * Protobuf type {@code ProximityReading} + */ + public static final class ProximityReading extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:ProximityReading) + ProximityReadingOrBuilder { + private static final long serialVersionUID = 0L; + // Use ProximityReading.newBuilder() to construct. + private ProximityReading(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ProximityReading() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ProximityReading(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ProximityReading( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + + relativeTimestamp_ = input.readInt64(); + break; + } + case 21: { + + distance_ = input.readFloat(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_ProximityReading_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_ProximityReading_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.ProximityReading.class, Traj.ProximityReading.Builder.class); + } + + public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; + private long relativeTimestamp_; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + + public static final int DISTANCE_FIELD_NUMBER = 2; + private float distance_; + /** + *
+     * cm
+     * 
+ * + * float distance = 2; + * @return The distance. + */ + @java.lang.Override + public float getDistance() { + return distance_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (relativeTimestamp_ != 0L) { + output.writeInt64(1, relativeTimestamp_); + } + if (java.lang.Float.floatToRawIntBits(distance_) != 0) { + output.writeFloat(2, distance_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (relativeTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, relativeTimestamp_); + } + if (java.lang.Float.floatToRawIntBits(distance_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(2, distance_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof Traj.ProximityReading)) { + return super.equals(obj); + } + Traj.ProximityReading other = (Traj.ProximityReading) obj; + + if (getRelativeTimestamp() + != other.getRelativeTimestamp()) return false; + if (java.lang.Float.floatToIntBits(getDistance()) + != java.lang.Float.floatToIntBits( + other.getDistance())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getRelativeTimestamp()); + hash = (37 * hash) + DISTANCE_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getDistance()); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static Traj.ProximityReading parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.ProximityReading parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.ProximityReading parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.ProximityReading parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.ProximityReading parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.ProximityReading parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.ProximityReading parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.ProximityReading parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.ProximityReading parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static Traj.ProximityReading parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static Traj.ProximityReading parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static Traj.ProximityReading parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(Traj.ProximityReading prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code ProximityReading} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:ProximityReading) + Traj.ProximityReadingOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return Traj.internal_static_ProximityReading_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_ProximityReading_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.ProximityReading.class, Traj.ProximityReading.Builder.class); + } + + // Construct using Traj.ProximityReading.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + relativeTimestamp_ = 0L; + + distance_ = 0F; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return Traj.internal_static_ProximityReading_descriptor; + } + + @java.lang.Override + public Traj.ProximityReading getDefaultInstanceForType() { + return Traj.ProximityReading.getDefaultInstance(); + } + + @java.lang.Override + public Traj.ProximityReading build() { + Traj.ProximityReading result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public Traj.ProximityReading buildPartial() { + Traj.ProximityReading result = new Traj.ProximityReading(this); + result.relativeTimestamp_ = relativeTimestamp_; + result.distance_ = distance_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof Traj.ProximityReading) { + return mergeFrom((Traj.ProximityReading)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(Traj.ProximityReading other) { + if (other == Traj.ProximityReading.getDefaultInstance()) return this; + if (other.getRelativeTimestamp() != 0L) { + setRelativeTimestamp(other.getRelativeTimestamp()); + } + if (other.getDistance() != 0F) { + setDistance(other.getDistance()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Traj.ProximityReading parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Traj.ProximityReading) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private long relativeTimestamp_ ; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + /** + * int64 relative_timestamp = 1; + * @param value The relativeTimestamp to set. + * @return This builder for chaining. + */ + public Builder setRelativeTimestamp(long value) { + + relativeTimestamp_ = value; + onChanged(); + return this; + } + /** + * int64 relative_timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearRelativeTimestamp() { + + relativeTimestamp_ = 0L; + onChanged(); + return this; + } + + private float distance_ ; + /** + *
+       * cm
+       * 
+ * + * float distance = 2; + * @return The distance. + */ + @java.lang.Override + public float getDistance() { + return distance_; + } + /** + *
+       * cm
+       * 
+ * + * float distance = 2; + * @param value The distance to set. + * @return This builder for chaining. + */ + public Builder setDistance(float value) { + + distance_ = value; + onChanged(); + return this; + } + /** + *
+       * cm
+       * 
+ * + * float distance = 2; + * @return This builder for chaining. + */ + public Builder clearDistance() { + + distance_ = 0F; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:ProximityReading) } - // @@protoc_insertion_point(class_scope:Trajectory) - private static final Trajectory DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:ProximityReading) + private static final Traj.ProximityReading DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new Trajectory(); + DEFAULT_INSTANCE = new Traj.ProximityReading(); } - public static Trajectory getDefaultInstance() { + public static Traj.ProximityReading getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public Trajectory parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProximityReading parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Trajectory(input, extensionRegistry); + return new ProximityReading(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public Trajectory getDefaultInstanceForType() { + @java.lang.Override + public Traj.ProximityReading getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface Pdr_SampleOrBuilder extends - // @@protoc_insertion_point(interface_extends:Pdr_Sample) + public interface GNSSPositionOrBuilder extends + // @@protoc_insertion_point(interface_extends:GNSSPosition) com.google.protobuf.MessageOrBuilder { + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + long getRelativeTimestamp(); + /** *
-     * milliseconds from the start_timestamp
+     * degrees (minimum 6 significant figures)
+     * latitude between -90 and 90
      * 
* - * optional int64 relative_timestamp = 1; + * double latitude = 2; + * @return The latitude. */ - long getRelativeTimestamp(); + double getLatitude(); /** *
-     * Both in metres. You should implement an algorithm to estimate
-     * these values. The values are always relative to your start point
-     * so the first entry should always be x = 0.0, y = 0.0
+     * longitude between -180 and 180
      * 
* - * optional float x = 2; + * double longitude = 3; + * @return The longitude. */ - float getX(); + double getLongitude(); /** - * optional float y = 3; + *
+     *metres
+     * 
+ * + * double altitude = 4; + * @return The altitude. */ - float getY(); + double getAltitude(); + + /** + *
+     * floor name
+     * 
+ * + * optional string floor = 5; + * @return Whether the floor field is set. + */ + boolean hasFloor(); + /** + *
+     * floor name
+     * 
+ * + * optional string floor = 5; + * @return The floor. + */ + java.lang.String getFloor(); + /** + *
+     * floor name
+     * 
+ * + * optional string floor = 5; + * @return The bytes for floor. + */ + com.google.protobuf.ByteString + getFloorBytes(); } /** - * Protobuf type {@code Pdr_Sample} + * Protobuf type {@code GNSSPosition} */ - public static final class Pdr_Sample extends + public static final class GNSSPosition extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Pdr_Sample) - Pdr_SampleOrBuilder { - // Use Pdr_Sample.newBuilder() to construct. - private Pdr_Sample(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // @@protoc_insertion_point(message_implements:GNSSPosition) + GNSSPositionOrBuilder { + private static final long serialVersionUID = 0L; + // Use GNSSPosition.newBuilder() to construct. + private GNSSPosition(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private Pdr_Sample() { - relativeTimestamp_ = 0L; - x_ = 0F; - y_ = 0F; + private GNSSPosition() { + floor_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GNSSPosition(); } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } - private Pdr_Sample( + private GNSSPosition( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -4936,88 +12511,184 @@ private Pdr_Sample( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; - } - break; - } case 8: { relativeTimestamp_ = input.readInt64(); break; } - case 21: { + case 17: { - x_ = input.readFloat(); + latitude_ = input.readDouble(); break; } - case 29: { + case 25: { - y_ = input.readFloat(); + longitude_ = input.readDouble(); + break; + } + case 33: { + + altitude_ = input.readDouble(); + break; + } + case 42: { + java.lang.String s = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + floor_ = s; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Pdr_Sample_descriptor; + return Traj.internal_static_GNSSPosition_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Pdr_Sample_fieldAccessorTable + return Traj.internal_static_GNSSPosition_fieldAccessorTable .ensureFieldAccessorsInitialized( - Pdr_Sample.class, Builder.class); + Traj.GNSSPosition.class, Traj.GNSSPosition.Builder.class); } + private int bitField0_; public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; private long relativeTimestamp_; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + + public static final int LATITUDE_FIELD_NUMBER = 2; + private double latitude_; /** *
-     * milliseconds from the start_timestamp
+     * degrees (minimum 6 significant figures)
+     * latitude between -90 and 90
      * 
* - * optional int64 relative_timestamp = 1; + * double latitude = 2; + * @return The latitude. */ - public long getRelativeTimestamp() { - return relativeTimestamp_; + @java.lang.Override + public double getLatitude() { + return latitude_; } - public static final int X_FIELD_NUMBER = 2; - private float x_; + public static final int LONGITUDE_FIELD_NUMBER = 3; + private double longitude_; /** *
-     * Both in metres. You should implement an algorithm to estimate
-     * these values. The values are always relative to your start point
-     * so the first entry should always be x = 0.0, y = 0.0
+     * longitude between -180 and 180
      * 
* - * optional float x = 2; + * double longitude = 3; + * @return The longitude. */ - public float getX() { - return x_; + @java.lang.Override + public double getLongitude() { + return longitude_; } - public static final int Y_FIELD_NUMBER = 3; - private float y_; + public static final int ALTITUDE_FIELD_NUMBER = 4; + private double altitude_; /** - * optional float y = 3; + *
+     *metres
+     * 
+ * + * double altitude = 4; + * @return The altitude. */ - public float getY() { - return y_; + @java.lang.Override + public double getAltitude() { + return altitude_; + } + + public static final int FLOOR_FIELD_NUMBER = 5; + private volatile java.lang.Object floor_; + /** + *
+     * floor name
+     * 
+ * + * optional string floor = 5; + * @return Whether the floor field is set. + */ + @java.lang.Override + public boolean hasFloor() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * floor name
+     * 
+ * + * optional string floor = 5; + * @return The floor. + */ + @java.lang.Override + public java.lang.String getFloor() { + java.lang.Object ref = floor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + floor_ = s; + return s; + } + } + /** + *
+     * floor name
+     * 
+ * + * optional string floor = 5; + * @return The bytes for floor. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFloorBytes() { + java.lang.Object ref = floor_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + floor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -5027,19 +12698,28 @@ public final boolean isInitialized() { return true; } + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (relativeTimestamp_ != 0L) { output.writeInt64(1, relativeTimestamp_); } - if (x_ != 0F) { - output.writeFloat(2, x_); + if (java.lang.Double.doubleToRawLongBits(latitude_) != 0) { + output.writeDouble(2, latitude_); } - if (y_ != 0F) { - output.writeFloat(3, y_); + if (java.lang.Double.doubleToRawLongBits(longitude_) != 0) { + output.writeDouble(3, longitude_); + } + if (java.lang.Double.doubleToRawLongBits(altitude_) != 0) { + output.writeDouble(4, altitude_); } + if (((bitField0_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, floor_); + } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -5049,116 +12729,147 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeInt64Size(1, relativeTimestamp_); } - if (x_ != 0F) { + if (java.lang.Double.doubleToRawLongBits(latitude_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(2, x_); + .computeDoubleSize(2, latitude_); } - if (y_ != 0F) { + if (java.lang.Double.doubleToRawLongBits(longitude_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(3, y_); + .computeDoubleSize(3, longitude_); + } + if (java.lang.Double.doubleToRawLongBits(altitude_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(4, altitude_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, floor_); } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof Pdr_Sample)) { + if (!(obj instanceof Traj.GNSSPosition)) { return super.equals(obj); } - Pdr_Sample other = (Pdr_Sample) obj; - - boolean result = true; - result = result && (getRelativeTimestamp() - == other.getRelativeTimestamp()); - result = result && ( - Float.floatToIntBits(getX()) - == Float.floatToIntBits( - other.getX())); - result = result && ( - Float.floatToIntBits(getY()) - == Float.floatToIntBits( - other.getY())); - return result; + Traj.GNSSPosition other = (Traj.GNSSPosition) obj; + + if (getRelativeTimestamp() + != other.getRelativeTimestamp()) return false; + if (java.lang.Double.doubleToLongBits(getLatitude()) + != java.lang.Double.doubleToLongBits( + other.getLatitude())) return false; + if (java.lang.Double.doubleToLongBits(getLongitude()) + != java.lang.Double.doubleToLongBits( + other.getLongitude())) return false; + if (java.lang.Double.doubleToLongBits(getAltitude()) + != java.lang.Double.doubleToLongBits( + other.getAltitude())) return false; + if (hasFloor() != other.hasFloor()) return false; + if (hasFloor()) { + if (!getFloor() + .equals(other.getFloor())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); + hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getRelativeTimestamp()); - hash = (37 * hash) + X_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getX()); - hash = (37 * hash) + Y_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getY()); + hash = (37 * hash) + LATITUDE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getLatitude())); + hash = (37 * hash) + LONGITUDE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getLongitude())); + hash = (37 * hash) + ALTITUDE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getAltitude())); + if (hasFloor()) { + hash = (37 * hash) + FLOOR_FIELD_NUMBER; + hash = (53 * hash) + getFloor().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static Pdr_Sample parseFrom( + public static Traj.GNSSPosition parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.GNSSPosition parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.GNSSPosition parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Pdr_Sample parseFrom( + public static Traj.GNSSPosition parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Pdr_Sample parseFrom(byte[] data) + public static Traj.GNSSPosition parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Pdr_Sample parseFrom( + public static Traj.GNSSPosition parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Pdr_Sample parseFrom(java.io.InputStream input) + public static Traj.GNSSPosition parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Pdr_Sample parseFrom( + public static Traj.GNSSPosition parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static Pdr_Sample parseDelimitedFrom(java.io.InputStream input) + public static Traj.GNSSPosition parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static Pdr_Sample parseDelimitedFrom( + public static Traj.GNSSPosition parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static Pdr_Sample parseFrom( + public static Traj.GNSSPosition parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Pdr_Sample parseFrom( + public static Traj.GNSSPosition parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -5166,44 +12877,47 @@ public static Pdr_Sample parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(Pdr_Sample prototype) { + public static Builder newBuilder(Traj.GNSSPosition prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** - * Protobuf type {@code Pdr_Sample} + * Protobuf type {@code GNSSPosition} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Pdr_Sample) - Pdr_SampleOrBuilder { + // @@protoc_insertion_point(builder_implements:GNSSPosition) + Traj.GNSSPositionOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Pdr_Sample_descriptor; + return Traj.internal_static_GNSSPosition_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Pdr_Sample_fieldAccessorTable + return Traj.internal_static_GNSSPosition_fieldAccessorTable .ensureFieldAccessorsInitialized( - Pdr_Sample.class, Builder.class); + Traj.GNSSPosition.class, Traj.GNSSPosition.Builder.class); } - // Construct using Traj.Pdr_Sample.newBuilder() + // Construct using Traj.GNSSPosition.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -5218,106 +12932,141 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } + @java.lang.Override public Builder clear() { super.clear(); relativeTimestamp_ = 0L; - x_ = 0F; + latitude_ = 0D; - y_ = 0F; + longitude_ = 0D; + altitude_ = 0D; + + floor_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return Traj.internal_static_Pdr_Sample_descriptor; + return Traj.internal_static_GNSSPosition_descriptor; } - public Pdr_Sample getDefaultInstanceForType() { - return Pdr_Sample.getDefaultInstance(); + @java.lang.Override + public Traj.GNSSPosition getDefaultInstanceForType() { + return Traj.GNSSPosition.getDefaultInstance(); } - public Pdr_Sample build() { - Pdr_Sample result = buildPartial(); + @java.lang.Override + public Traj.GNSSPosition build() { + Traj.GNSSPosition result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public Pdr_Sample buildPartial() { - Pdr_Sample result = new Pdr_Sample(this); + @java.lang.Override + public Traj.GNSSPosition buildPartial() { + Traj.GNSSPosition result = new Traj.GNSSPosition(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; result.relativeTimestamp_ = relativeTimestamp_; - result.x_ = x_; - result.y_ = y_; + result.latitude_ = latitude_; + result.longitude_ = longitude_; + result.altitude_ = altitude_; + if (((from_bitField0_ & 0x00000001) != 0)) { + to_bitField0_ |= 0x00000001; + } + result.floor_ = floor_; + result.bitField0_ = to_bitField0_; onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof Pdr_Sample) { - return mergeFrom((Pdr_Sample)other); + if (other instanceof Traj.GNSSPosition) { + return mergeFrom((Traj.GNSSPosition)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(Pdr_Sample other) { - if (other == Pdr_Sample.getDefaultInstance()) return this; + public Builder mergeFrom(Traj.GNSSPosition other) { + if (other == Traj.GNSSPosition.getDefaultInstance()) return this; if (other.getRelativeTimestamp() != 0L) { setRelativeTimestamp(other.getRelativeTimestamp()); } - if (other.getX() != 0F) { - setX(other.getX()); + if (other.getLatitude() != 0D) { + setLatitude(other.getLatitude()); } - if (other.getY() != 0F) { - setY(other.getY()); + if (other.getLongitude() != 0D) { + setLongitude(other.getLongitude()); } + if (other.getAltitude() != 0D) { + setAltitude(other.getAltitude()); + } + if (other.hasFloor()) { + bitField0_ |= 0x00000001; + floor_ = other.floor_; + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } + @java.lang.Override public final boolean isInitialized() { return true; } + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - Pdr_Sample parsedMessage = null; + Traj.GNSSPosition parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (Pdr_Sample) e.getUnfinishedMessage(); + parsedMessage = (Traj.GNSSPosition) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -5326,284 +13075,437 @@ public Builder mergeFrom( } return this; } + private int bitField0_; + + private long relativeTimestamp_ ; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + /** + * int64 relative_timestamp = 1; + * @param value The relativeTimestamp to set. + * @return This builder for chaining. + */ + public Builder setRelativeTimestamp(long value) { + + relativeTimestamp_ = value; + onChanged(); + return this; + } + /** + * int64 relative_timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearRelativeTimestamp() { + + relativeTimestamp_ = 0L; + onChanged(); + return this; + } + + private double latitude_ ; + /** + *
+       * degrees (minimum 6 significant figures)
+       * latitude between -90 and 90
+       * 
+ * + * double latitude = 2; + * @return The latitude. + */ + @java.lang.Override + public double getLatitude() { + return latitude_; + } + /** + *
+       * degrees (minimum 6 significant figures)
+       * latitude between -90 and 90
+       * 
+ * + * double latitude = 2; + * @param value The latitude to set. + * @return This builder for chaining. + */ + public Builder setLatitude(double value) { + + latitude_ = value; + onChanged(); + return this; + } + /** + *
+       * degrees (minimum 6 significant figures)
+       * latitude between -90 and 90
+       * 
+ * + * double latitude = 2; + * @return This builder for chaining. + */ + public Builder clearLatitude() { + + latitude_ = 0D; + onChanged(); + return this; + } + + private double longitude_ ; + /** + *
+       * longitude between -180 and 180
+       * 
+ * + * double longitude = 3; + * @return The longitude. + */ + @java.lang.Override + public double getLongitude() { + return longitude_; + } + /** + *
+       * longitude between -180 and 180
+       * 
+ * + * double longitude = 3; + * @param value The longitude to set. + * @return This builder for chaining. + */ + public Builder setLongitude(double value) { + + longitude_ = value; + onChanged(); + return this; + } + /** + *
+       * longitude between -180 and 180
+       * 
+ * + * double longitude = 3; + * @return This builder for chaining. + */ + public Builder clearLongitude() { + + longitude_ = 0D; + onChanged(); + return this; + } - private long relativeTimestamp_ ; + private double altitude_ ; /** *
-       * milliseconds from the start_timestamp
+       *metres
        * 
* - * optional int64 relative_timestamp = 1; + * double altitude = 4; + * @return The altitude. */ - public long getRelativeTimestamp() { - return relativeTimestamp_; + @java.lang.Override + public double getAltitude() { + return altitude_; } /** *
-       * milliseconds from the start_timestamp
+       *metres
        * 
* - * optional int64 relative_timestamp = 1; + * double altitude = 4; + * @param value The altitude to set. + * @return This builder for chaining. */ - public Builder setRelativeTimestamp(long value) { + public Builder setAltitude(double value) { - relativeTimestamp_ = value; + altitude_ = value; onChanged(); return this; } /** *
-       * milliseconds from the start_timestamp
+       *metres
        * 
* - * optional int64 relative_timestamp = 1; + * double altitude = 4; + * @return This builder for chaining. */ - public Builder clearRelativeTimestamp() { + public Builder clearAltitude() { - relativeTimestamp_ = 0L; + altitude_ = 0D; onChanged(); return this; } - private float x_ ; + private java.lang.Object floor_ = ""; /** *
-       * Both in metres. You should implement an algorithm to estimate
-       * these values. The values are always relative to your start point
-       * so the first entry should always be x = 0.0, y = 0.0
+       * floor name
        * 
* - * optional float x = 2; + * optional string floor = 5; + * @return Whether the floor field is set. */ - public float getX() { - return x_; + public boolean hasFloor() { + return ((bitField0_ & 0x00000001) != 0); } /** *
-       * Both in metres. You should implement an algorithm to estimate
-       * these values. The values are always relative to your start point
-       * so the first entry should always be x = 0.0, y = 0.0
+       * floor name
        * 
* - * optional float x = 2; + * optional string floor = 5; + * @return The floor. */ - public Builder setX(float value) { - - x_ = value; - onChanged(); - return this; + public java.lang.String getFloor() { + java.lang.Object ref = floor_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + floor_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** *
-       * Both in metres. You should implement an algorithm to estimate
-       * these values. The values are always relative to your start point
-       * so the first entry should always be x = 0.0, y = 0.0
+       * floor name
        * 
* - * optional float x = 2; + * optional string floor = 5; + * @return The bytes for floor. */ - public Builder clearX() { - - x_ = 0F; - onChanged(); - return this; + public com.google.protobuf.ByteString + getFloorBytes() { + java.lang.Object ref = floor_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + floor_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - - private float y_ ; /** - * optional float y = 3; + *
+       * floor name
+       * 
+ * + * optional string floor = 5; + * @param value The floor to set. + * @return This builder for chaining. */ - public float getY() { - return y_; + public Builder setFloor( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + floor_ = value; + onChanged(); + return this; } /** - * optional float y = 3; + *
+       * floor name
+       * 
+ * + * optional string floor = 5; + * @return This builder for chaining. */ - public Builder setY(float value) { - - y_ = value; + public Builder clearFloor() { + bitField0_ = (bitField0_ & ~0x00000001); + floor_ = getDefaultInstance().getFloor(); onChanged(); return this; } /** - * optional float y = 3; + *
+       * floor name
+       * 
+ * + * optional string floor = 5; + * @param value The bytes for floor to set. + * @return This builder for chaining. */ - public Builder clearY() { - - y_ = 0F; + public Builder setFloorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + bitField0_ |= 0x00000001; + floor_ = value; onChanged(); return this; } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.setUnknownFields(unknownFields); } + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:Pdr_Sample) + // @@protoc_insertion_point(builder_scope:GNSSPosition) } - // @@protoc_insertion_point(class_scope:Pdr_Sample) - private static final Pdr_Sample DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:GNSSPosition) + private static final Traj.GNSSPosition DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new Pdr_Sample(); + DEFAULT_INSTANCE = new Traj.GNSSPosition(); } - public static Pdr_Sample getDefaultInstance() { + public static Traj.GNSSPosition getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public Pdr_Sample parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GNSSPosition parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Pdr_Sample(input, extensionRegistry); + return new GNSSPosition(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public Pdr_Sample getDefaultInstanceForType() { + @java.lang.Override + public Traj.GNSSPosition getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface Motion_SampleOrBuilder extends - // @@protoc_insertion_point(interface_extends:Motion_Sample) + public interface GNSSReadingOrBuilder extends + // @@protoc_insertion_point(interface_extends:GNSSReading) com.google.protobuf.MessageOrBuilder { /** - *
-     * milliseconds
-     * 
- * - * optional int64 relative_timestamp = 1; - */ - long getRelativeTimestamp(); - - /** - *
-     * m/s^2
-     * 
- * - * optional float acc_x = 2; + * .GNSSPosition position = 1; + * @return Whether the position field is set. */ - float getAccX(); - + boolean hasPosition(); /** - * optional float acc_y = 3; + * .GNSSPosition position = 1; + * @return The position. */ - float getAccY(); - + Traj.GNSSPosition getPosition(); /** - * optional float acc_z = 4; + * .GNSSPosition position = 1; */ - float getAccZ(); + Traj.GNSSPositionOrBuilder getPositionOrBuilder(); /** *
-     * radians/s
+     * metres
      * 
* - * optional float gyr_x = 5; - */ - float getGyrX(); - - /** - * optional float gyr_y = 6; + * float accuracy = 2; + * @return The accuracy. */ - float getGyrY(); - - /** - * optional float gyr_z = 7; - */ - float getGyrZ(); + float getAccuracy(); /** *
-     * unitless, 4 components should sum to ~1
+     * m/s
      * 
* - * optional float rotation_vector_x = 8; - */ - float getRotationVectorX(); - - /** - * optional float rotation_vector_y = 9; + * float speed = 3; + * @return The speed. */ - float getRotationVectorY(); + float getSpeed(); /** - * optional float rotation_vector_z = 10; + *
+     * degrees
+     * 
+ * + * float bearing = 4; + * @return The bearing. */ - float getRotationVectorZ(); + float getBearing(); /** - * optional float rotation_vector_w = 11; + *
+     * e.g 'gps' or 'network'
+     * 
+ * + * string provider = 5; + * @return The provider. */ - float getRotationVectorW(); - + java.lang.String getProvider(); /** *
-     * Integer
+     * e.g 'gps' or 'network'
      * 
* - * optional int32 step_count = 12; + * string provider = 5; + * @return The bytes for provider. */ - int getStepCount(); + com.google.protobuf.ByteString + getProviderBytes(); } /** - * Protobuf type {@code Motion_Sample} + * Protobuf type {@code GNSSReading} */ - public static final class Motion_Sample extends + public static final class GNSSReading extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Motion_Sample) - Motion_SampleOrBuilder { - // Use Motion_Sample.newBuilder() to construct. - private Motion_Sample(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // @@protoc_insertion_point(message_implements:GNSSReading) + GNSSReadingOrBuilder { + private static final long serialVersionUID = 0L; + // Use GNSSReading.newBuilder() to construct. + private GNSSReading(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private Motion_Sample() { - relativeTimestamp_ = 0L; - accX_ = 0F; - accY_ = 0F; - accZ_ = 0F; - gyrX_ = 0F; - gyrY_ = 0F; - gyrZ_ = 0F; - rotationVectorX_ = 0F; - rotationVectorY_ = 0F; - rotationVectorZ_ = 0F; - rotationVectorW_ = 0F; - stepCount_ = 0; - } - - @Override + private GNSSReading() { + provider_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new GNSSReading(); + } + + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } - private Motion_Sample( + private GNSSReading( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); - int mutable_bitField0_ = 0; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -5612,488 +13514,373 @@ private Motion_Sample( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; + case 10: { + Traj.GNSSPosition.Builder subBuilder = null; + if (position_ != null) { + subBuilder = position_.toBuilder(); + } + position_ = input.readMessage(Traj.GNSSPosition.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(position_); + position_ = subBuilder.buildPartial(); } - break; - } - case 8: { - relativeTimestamp_ = input.readInt64(); break; } case 21: { - accX_ = input.readFloat(); + accuracy_ = input.readFloat(); break; } case 29: { - accY_ = input.readFloat(); + speed_ = input.readFloat(); break; } case 37: { - accZ_ = input.readFloat(); - break; - } - case 45: { - - gyrX_ = input.readFloat(); - break; - } - case 53: { - - gyrY_ = input.readFloat(); - break; - } - case 61: { - - gyrZ_ = input.readFloat(); - break; - } - case 69: { - - rotationVectorX_ = input.readFloat(); - break; - } - case 77: { - - rotationVectorY_ = input.readFloat(); + bearing_ = input.readFloat(); break; } - case 85: { - - rotationVectorZ_ = input.readFloat(); - break; - } - case 93: { + case 42: { + java.lang.String s = input.readStringRequireUtf8(); - rotationVectorW_ = input.readFloat(); + provider_ = s; break; } - case 96: { - - stepCount_ = input.readInt32(); + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Motion_Sample_descriptor; + return Traj.internal_static_GNSSReading_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Motion_Sample_fieldAccessorTable + return Traj.internal_static_GNSSReading_fieldAccessorTable .ensureFieldAccessorsInitialized( - Motion_Sample.class, Builder.class); - } - - public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; - private long relativeTimestamp_; - /** - *
-     * milliseconds
-     * 
- * - * optional int64 relative_timestamp = 1; - */ - public long getRelativeTimestamp() { - return relativeTimestamp_; + Traj.GNSSReading.class, Traj.GNSSReading.Builder.class); } - public static final int ACC_X_FIELD_NUMBER = 2; - private float accX_; + public static final int POSITION_FIELD_NUMBER = 1; + private Traj.GNSSPosition position_; /** - *
-     * m/s^2
-     * 
- * - * optional float acc_x = 2; + * .GNSSPosition position = 1; + * @return Whether the position field is set. */ - public float getAccX() { - return accX_; + @java.lang.Override + public boolean hasPosition() { + return position_ != null; } - - public static final int ACC_Y_FIELD_NUMBER = 3; - private float accY_; /** - * optional float acc_y = 3; + * .GNSSPosition position = 1; + * @return The position. */ - public float getAccY() { - return accY_; + @java.lang.Override + public Traj.GNSSPosition getPosition() { + return position_ == null ? Traj.GNSSPosition.getDefaultInstance() : position_; } - - public static final int ACC_Z_FIELD_NUMBER = 4; - private float accZ_; /** - * optional float acc_z = 4; + * .GNSSPosition position = 1; */ - public float getAccZ() { - return accZ_; + @java.lang.Override + public Traj.GNSSPositionOrBuilder getPositionOrBuilder() { + return getPosition(); } - public static final int GYR_X_FIELD_NUMBER = 5; - private float gyrX_; + public static final int ACCURACY_FIELD_NUMBER = 2; + private float accuracy_; /** *
-     * radians/s
+     * metres
      * 
* - * optional float gyr_x = 5; - */ - public float getGyrX() { - return gyrX_; - } - - public static final int GYR_Y_FIELD_NUMBER = 6; - private float gyrY_; - /** - * optional float gyr_y = 6; - */ - public float getGyrY() { - return gyrY_; - } - - public static final int GYR_Z_FIELD_NUMBER = 7; - private float gyrZ_; - /** - * optional float gyr_z = 7; + * float accuracy = 2; + * @return The accuracy. */ - public float getGyrZ() { - return gyrZ_; + @java.lang.Override + public float getAccuracy() { + return accuracy_; } - public static final int ROTATION_VECTOR_X_FIELD_NUMBER = 8; - private float rotationVectorX_; + public static final int SPEED_FIELD_NUMBER = 3; + private float speed_; /** *
-     * unitless, 4 components should sum to ~1
+     * m/s
      * 
* - * optional float rotation_vector_x = 8; - */ - public float getRotationVectorX() { - return rotationVectorX_; - } - - public static final int ROTATION_VECTOR_Y_FIELD_NUMBER = 9; - private float rotationVectorY_; - /** - * optional float rotation_vector_y = 9; + * float speed = 3; + * @return The speed. */ - public float getRotationVectorY() { - return rotationVectorY_; + @java.lang.Override + public float getSpeed() { + return speed_; } - public static final int ROTATION_VECTOR_Z_FIELD_NUMBER = 10; - private float rotationVectorZ_; + public static final int BEARING_FIELD_NUMBER = 4; + private float bearing_; /** - * optional float rotation_vector_z = 10; + *
+     * degrees
+     * 
+ * + * float bearing = 4; + * @return The bearing. */ - public float getRotationVectorZ() { - return rotationVectorZ_; + @java.lang.Override + public float getBearing() { + return bearing_; } - public static final int ROTATION_VECTOR_W_FIELD_NUMBER = 11; - private float rotationVectorW_; + public static final int PROVIDER_FIELD_NUMBER = 5; + private volatile java.lang.Object provider_; /** - * optional float rotation_vector_w = 11; + *
+     * e.g 'gps' or 'network'
+     * 
+ * + * string provider = 5; + * @return The provider. */ - public float getRotationVectorW() { - return rotationVectorW_; + @java.lang.Override + public java.lang.String getProvider() { + java.lang.Object ref = provider_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + provider_ = s; + return s; + } } - - public static final int STEP_COUNT_FIELD_NUMBER = 12; - private int stepCount_; /** *
-     * Integer
+     * e.g 'gps' or 'network'
      * 
* - * optional int32 step_count = 12; + * string provider = 5; + * @return The bytes for provider. */ - public int getStepCount() { - return stepCount_; + @java.lang.Override + public com.google.protobuf.ByteString + getProviderBytes() { + java.lang.Object ref = provider_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + provider_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (relativeTimestamp_ != 0L) { - output.writeInt64(1, relativeTimestamp_); - } - if (accX_ != 0F) { - output.writeFloat(2, accX_); - } - if (accY_ != 0F) { - output.writeFloat(3, accY_); - } - if (accZ_ != 0F) { - output.writeFloat(4, accZ_); - } - if (gyrX_ != 0F) { - output.writeFloat(5, gyrX_); - } - if (gyrY_ != 0F) { - output.writeFloat(6, gyrY_); - } - if (gyrZ_ != 0F) { - output.writeFloat(7, gyrZ_); - } - if (rotationVectorX_ != 0F) { - output.writeFloat(8, rotationVectorX_); + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (position_ != null) { + output.writeMessage(1, getPosition()); } - if (rotationVectorY_ != 0F) { - output.writeFloat(9, rotationVectorY_); + if (java.lang.Float.floatToRawIntBits(accuracy_) != 0) { + output.writeFloat(2, accuracy_); } - if (rotationVectorZ_ != 0F) { - output.writeFloat(10, rotationVectorZ_); + if (java.lang.Float.floatToRawIntBits(speed_) != 0) { + output.writeFloat(3, speed_); } - if (rotationVectorW_ != 0F) { - output.writeFloat(11, rotationVectorW_); + if (java.lang.Float.floatToRawIntBits(bearing_) != 0) { + output.writeFloat(4, bearing_); } - if (stepCount_ != 0) { - output.writeInt32(12, stepCount_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(provider_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, provider_); } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; - if (relativeTimestamp_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1, relativeTimestamp_); - } - if (accX_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(2, accX_); - } - if (accY_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(3, accY_); - } - if (accZ_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(4, accZ_); - } - if (gyrX_ != 0F) { + if (position_ != null) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(5, gyrX_); + .computeMessageSize(1, getPosition()); } - if (gyrY_ != 0F) { + if (java.lang.Float.floatToRawIntBits(accuracy_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(6, gyrY_); + .computeFloatSize(2, accuracy_); } - if (gyrZ_ != 0F) { + if (java.lang.Float.floatToRawIntBits(speed_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(7, gyrZ_); + .computeFloatSize(3, speed_); } - if (rotationVectorX_ != 0F) { + if (java.lang.Float.floatToRawIntBits(bearing_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(8, rotationVectorX_); + .computeFloatSize(4, bearing_); } - if (rotationVectorY_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(9, rotationVectorY_); - } - if (rotationVectorZ_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(10, rotationVectorZ_); - } - if (rotationVectorW_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(11, rotationVectorW_); - } - if (stepCount_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(12, stepCount_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(provider_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, provider_); } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof Motion_Sample)) { + if (!(obj instanceof Traj.GNSSReading)) { return super.equals(obj); } - Motion_Sample other = (Motion_Sample) obj; - - boolean result = true; - result = result && (getRelativeTimestamp() - == other.getRelativeTimestamp()); - result = result && ( - Float.floatToIntBits(getAccX()) - == Float.floatToIntBits( - other.getAccX())); - result = result && ( - Float.floatToIntBits(getAccY()) - == Float.floatToIntBits( - other.getAccY())); - result = result && ( - Float.floatToIntBits(getAccZ()) - == Float.floatToIntBits( - other.getAccZ())); - result = result && ( - Float.floatToIntBits(getGyrX()) - == Float.floatToIntBits( - other.getGyrX())); - result = result && ( - Float.floatToIntBits(getGyrY()) - == Float.floatToIntBits( - other.getGyrY())); - result = result && ( - Float.floatToIntBits(getGyrZ()) - == Float.floatToIntBits( - other.getGyrZ())); - result = result && ( - Float.floatToIntBits(getRotationVectorX()) - == Float.floatToIntBits( - other.getRotationVectorX())); - result = result && ( - Float.floatToIntBits(getRotationVectorY()) - == Float.floatToIntBits( - other.getRotationVectorY())); - result = result && ( - Float.floatToIntBits(getRotationVectorZ()) - == Float.floatToIntBits( - other.getRotationVectorZ())); - result = result && ( - Float.floatToIntBits(getRotationVectorW()) - == Float.floatToIntBits( - other.getRotationVectorW())); - result = result && (getStepCount() - == other.getStepCount()); - return result; - } - - @Override + Traj.GNSSReading other = (Traj.GNSSReading) obj; + + if (hasPosition() != other.hasPosition()) return false; + if (hasPosition()) { + if (!getPosition() + .equals(other.getPosition())) return false; + } + if (java.lang.Float.floatToIntBits(getAccuracy()) + != java.lang.Float.floatToIntBits( + other.getAccuracy())) return false; + if (java.lang.Float.floatToIntBits(getSpeed()) + != java.lang.Float.floatToIntBits( + other.getSpeed())) return false; + if (java.lang.Float.floatToIntBits(getBearing()) + != java.lang.Float.floatToIntBits( + other.getBearing())) return false; + if (!getProvider() + .equals(other.getProvider())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); - hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getRelativeTimestamp()); - hash = (37 * hash) + ACC_X_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getAccX()); - hash = (37 * hash) + ACC_Y_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getAccY()); - hash = (37 * hash) + ACC_Z_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getAccZ()); - hash = (37 * hash) + GYR_X_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getGyrX()); - hash = (37 * hash) + GYR_Y_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getGyrY()); - hash = (37 * hash) + GYR_Z_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getGyrZ()); - hash = (37 * hash) + ROTATION_VECTOR_X_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getRotationVectorX()); - hash = (37 * hash) + ROTATION_VECTOR_Y_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getRotationVectorY()); - hash = (37 * hash) + ROTATION_VECTOR_Z_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getRotationVectorZ()); - hash = (37 * hash) + ROTATION_VECTOR_W_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getRotationVectorW()); - hash = (37 * hash) + STEP_COUNT_FIELD_NUMBER; - hash = (53 * hash) + getStepCount(); + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPosition()) { + hash = (37 * hash) + POSITION_FIELD_NUMBER; + hash = (53 * hash) + getPosition().hashCode(); + } + hash = (37 * hash) + ACCURACY_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getAccuracy()); + hash = (37 * hash) + SPEED_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getSpeed()); + hash = (37 * hash) + BEARING_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getBearing()); + hash = (37 * hash) + PROVIDER_FIELD_NUMBER; + hash = (53 * hash) + getProvider().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static Motion_Sample parseFrom( + public static Traj.GNSSReading parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.GNSSReading parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.GNSSReading parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Motion_Sample parseFrom( + public static Traj.GNSSReading parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Motion_Sample parseFrom(byte[] data) + public static Traj.GNSSReading parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Motion_Sample parseFrom( + public static Traj.GNSSReading parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Motion_Sample parseFrom(java.io.InputStream input) + public static Traj.GNSSReading parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Motion_Sample parseFrom( + public static Traj.GNSSReading parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static Motion_Sample parseDelimitedFrom(java.io.InputStream input) + public static Traj.GNSSReading parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static Motion_Sample parseDelimitedFrom( + public static Traj.GNSSReading parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static Motion_Sample parseFrom( + public static Traj.GNSSReading parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Motion_Sample parseFrom( + public static Traj.GNSSReading parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -6101,44 +13888,47 @@ public static Motion_Sample parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(Motion_Sample prototype) { + public static Builder newBuilder(Traj.GNSSReading prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** - * Protobuf type {@code Motion_Sample} + * Protobuf type {@code GNSSReading} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Motion_Sample) - Motion_SampleOrBuilder { + // @@protoc_insertion_point(builder_implements:GNSSReading) + Traj.GNSSReadingOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Motion_Sample_descriptor; + return Traj.internal_static_GNSSReading_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Motion_Sample_fieldAccessorTable + return Traj.internal_static_GNSSReading_fieldAccessorTable .ensureFieldAccessorsInitialized( - Motion_Sample.class, Builder.class); + Traj.GNSSReading.class, Traj.GNSSReading.Builder.class); } - // Construct using Traj.Motion_Sample.newBuilder() + // Construct using Traj.GNSSReading.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -6153,160 +13943,142 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } + @java.lang.Override public Builder clear() { super.clear(); - relativeTimestamp_ = 0L; - - accX_ = 0F; - - accY_ = 0F; - - accZ_ = 0F; - - gyrX_ = 0F; - - gyrY_ = 0F; - - gyrZ_ = 0F; - - rotationVectorX_ = 0F; - - rotationVectorY_ = 0F; + if (positionBuilder_ == null) { + position_ = null; + } else { + position_ = null; + positionBuilder_ = null; + } + accuracy_ = 0F; - rotationVectorZ_ = 0F; + speed_ = 0F; - rotationVectorW_ = 0F; + bearing_ = 0F; - stepCount_ = 0; + provider_ = ""; return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return Traj.internal_static_Motion_Sample_descriptor; + return Traj.internal_static_GNSSReading_descriptor; } - public Motion_Sample getDefaultInstanceForType() { - return Motion_Sample.getDefaultInstance(); + @java.lang.Override + public Traj.GNSSReading getDefaultInstanceForType() { + return Traj.GNSSReading.getDefaultInstance(); } - public Motion_Sample build() { - Motion_Sample result = buildPartial(); + @java.lang.Override + public Traj.GNSSReading build() { + Traj.GNSSReading result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public Motion_Sample buildPartial() { - Motion_Sample result = new Motion_Sample(this); - result.relativeTimestamp_ = relativeTimestamp_; - result.accX_ = accX_; - result.accY_ = accY_; - result.accZ_ = accZ_; - result.gyrX_ = gyrX_; - result.gyrY_ = gyrY_; - result.gyrZ_ = gyrZ_; - result.rotationVectorX_ = rotationVectorX_; - result.rotationVectorY_ = rotationVectorY_; - result.rotationVectorZ_ = rotationVectorZ_; - result.rotationVectorW_ = rotationVectorW_; - result.stepCount_ = stepCount_; + @java.lang.Override + public Traj.GNSSReading buildPartial() { + Traj.GNSSReading result = new Traj.GNSSReading(this); + if (positionBuilder_ == null) { + result.position_ = position_; + } else { + result.position_ = positionBuilder_.build(); + } + result.accuracy_ = accuracy_; + result.speed_ = speed_; + result.bearing_ = bearing_; + result.provider_ = provider_; onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof Motion_Sample) { - return mergeFrom((Motion_Sample)other); + if (other instanceof Traj.GNSSReading) { + return mergeFrom((Traj.GNSSReading)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(Motion_Sample other) { - if (other == Motion_Sample.getDefaultInstance()) return this; - if (other.getRelativeTimestamp() != 0L) { - setRelativeTimestamp(other.getRelativeTimestamp()); - } - if (other.getAccX() != 0F) { - setAccX(other.getAccX()); - } - if (other.getAccY() != 0F) { - setAccY(other.getAccY()); + public Builder mergeFrom(Traj.GNSSReading other) { + if (other == Traj.GNSSReading.getDefaultInstance()) return this; + if (other.hasPosition()) { + mergePosition(other.getPosition()); } - if (other.getAccZ() != 0F) { - setAccZ(other.getAccZ()); - } - if (other.getGyrX() != 0F) { - setGyrX(other.getGyrX()); - } - if (other.getGyrY() != 0F) { - setGyrY(other.getGyrY()); - } - if (other.getGyrZ() != 0F) { - setGyrZ(other.getGyrZ()); - } - if (other.getRotationVectorX() != 0F) { - setRotationVectorX(other.getRotationVectorX()); - } - if (other.getRotationVectorY() != 0F) { - setRotationVectorY(other.getRotationVectorY()); + if (other.getAccuracy() != 0F) { + setAccuracy(other.getAccuracy()); } - if (other.getRotationVectorZ() != 0F) { - setRotationVectorZ(other.getRotationVectorZ()); + if (other.getSpeed() != 0F) { + setSpeed(other.getSpeed()); } - if (other.getRotationVectorW() != 0F) { - setRotationVectorW(other.getRotationVectorW()); + if (other.getBearing() != 0F) { + setBearing(other.getBearing()); } - if (other.getStepCount() != 0) { - setStepCount(other.getStepCount()); + if (!other.getProvider().isEmpty()) { + provider_ = other.provider_; + onChanged(); } + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } + @java.lang.Override public final boolean isInitialized() { return true; } + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - Motion_Sample parsedMessage = null; + Traj.GNSSReading parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (Motion_Sample) e.getUnfinishedMessage(); + parsedMessage = (Traj.GNSSReading) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -6316,483 +14088,475 @@ public Builder mergeFrom( return this; } - private long relativeTimestamp_ ; + private Traj.GNSSPosition position_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder> positionBuilder_; /** - *
-       * milliseconds
-       * 
- * - * optional int64 relative_timestamp = 1; + * .GNSSPosition position = 1; + * @return Whether the position field is set. */ - public long getRelativeTimestamp() { - return relativeTimestamp_; + public boolean hasPosition() { + return positionBuilder_ != null || position_ != null; } /** - *
-       * milliseconds
-       * 
- * - * optional int64 relative_timestamp = 1; + * .GNSSPosition position = 1; + * @return The position. */ - public Builder setRelativeTimestamp(long value) { - - relativeTimestamp_ = value; - onChanged(); - return this; + public Traj.GNSSPosition getPosition() { + if (positionBuilder_ == null) { + return position_ == null ? Traj.GNSSPosition.getDefaultInstance() : position_; + } else { + return positionBuilder_.getMessage(); + } } /** - *
-       * milliseconds
-       * 
- * - * optional int64 relative_timestamp = 1; + * .GNSSPosition position = 1; */ - public Builder clearRelativeTimestamp() { - - relativeTimestamp_ = 0L; - onChanged(); - return this; - } + public Builder setPosition(Traj.GNSSPosition value) { + if (positionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + position_ = value; + onChanged(); + } else { + positionBuilder_.setMessage(value); + } - private float accX_ ; - /** - *
-       * m/s^2
-       * 
- * - * optional float acc_x = 2; - */ - public float getAccX() { - return accX_; - } - /** - *
-       * m/s^2
-       * 
- * - * optional float acc_x = 2; - */ - public Builder setAccX(float value) { - - accX_ = value; - onChanged(); return this; } /** - *
-       * m/s^2
-       * 
- * - * optional float acc_x = 2; + * .GNSSPosition position = 1; */ - public Builder clearAccX() { - - accX_ = 0F; - onChanged(); + public Builder setPosition( + Traj.GNSSPosition.Builder builderForValue) { + if (positionBuilder_ == null) { + position_ = builderForValue.build(); + onChanged(); + } else { + positionBuilder_.setMessage(builderForValue.build()); + } + return this; } - - private float accY_ ; /** - * optional float acc_y = 3; + * .GNSSPosition position = 1; */ - public float getAccY() { - return accY_; + public Builder mergePosition(Traj.GNSSPosition value) { + if (positionBuilder_ == null) { + if (position_ != null) { + position_ = + Traj.GNSSPosition.newBuilder(position_).mergeFrom(value).buildPartial(); + } else { + position_ = value; + } + onChanged(); + } else { + positionBuilder_.mergeFrom(value); + } + + return this; } /** - * optional float acc_y = 3; + * .GNSSPosition position = 1; */ - public Builder setAccY(float value) { - - accY_ = value; - onChanged(); + public Builder clearPosition() { + if (positionBuilder_ == null) { + position_ = null; + onChanged(); + } else { + position_ = null; + positionBuilder_ = null; + } + return this; } /** - * optional float acc_y = 3; + * .GNSSPosition position = 1; */ - public Builder clearAccY() { + public Traj.GNSSPosition.Builder getPositionBuilder() { - accY_ = 0F; onChanged(); - return this; - } - - private float accZ_ ; - /** - * optional float acc_z = 4; - */ - public float getAccZ() { - return accZ_; + return getPositionFieldBuilder().getBuilder(); } /** - * optional float acc_z = 4; + * .GNSSPosition position = 1; */ - public Builder setAccZ(float value) { - - accZ_ = value; - onChanged(); - return this; + public Traj.GNSSPositionOrBuilder getPositionOrBuilder() { + if (positionBuilder_ != null) { + return positionBuilder_.getMessageOrBuilder(); + } else { + return position_ == null ? + Traj.GNSSPosition.getDefaultInstance() : position_; + } } /** - * optional float acc_z = 4; + * .GNSSPosition position = 1; */ - public Builder clearAccZ() { - - accZ_ = 0F; - onChanged(); - return this; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder> + getPositionFieldBuilder() { + if (positionBuilder_ == null) { + positionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder>( + getPosition(), + getParentForChildren(), + isClean()); + position_ = null; + } + return positionBuilder_; } - private float gyrX_ ; + private float accuracy_ ; /** *
-       * radians/s
+       * metres
        * 
* - * optional float gyr_x = 5; + * float accuracy = 2; + * @return The accuracy. */ - public float getGyrX() { - return gyrX_; + @java.lang.Override + public float getAccuracy() { + return accuracy_; } /** *
-       * radians/s
+       * metres
        * 
* - * optional float gyr_x = 5; + * float accuracy = 2; + * @param value The accuracy to set. + * @return This builder for chaining. */ - public Builder setGyrX(float value) { + public Builder setAccuracy(float value) { - gyrX_ = value; + accuracy_ = value; onChanged(); return this; } /** *
-       * radians/s
+       * metres
        * 
* - * optional float gyr_x = 5; - */ - public Builder clearGyrX() { - - gyrX_ = 0F; - onChanged(); - return this; - } - - private float gyrY_ ; - /** - * optional float gyr_y = 6; - */ - public float getGyrY() { - return gyrY_; - } - /** - * optional float gyr_y = 6; + * float accuracy = 2; + * @return This builder for chaining. */ - public Builder setGyrY(float value) { - - gyrY_ = value; - onChanged(); - return this; - } - /** - * optional float gyr_y = 6; - */ - public Builder clearGyrY() { - - gyrY_ = 0F; - onChanged(); - return this; - } - - private float gyrZ_ ; - /** - * optional float gyr_z = 7; - */ - public float getGyrZ() { - return gyrZ_; - } - /** - * optional float gyr_z = 7; - */ - public Builder setGyrZ(float value) { - - gyrZ_ = value; - onChanged(); - return this; - } - /** - * optional float gyr_z = 7; - */ - public Builder clearGyrZ() { + public Builder clearAccuracy() { - gyrZ_ = 0F; + accuracy_ = 0F; onChanged(); return this; } - private float rotationVectorX_ ; + private float speed_ ; /** *
-       * unitless, 4 components should sum to ~1
+       * m/s
        * 
* - * optional float rotation_vector_x = 8; + * float speed = 3; + * @return The speed. */ - public float getRotationVectorX() { - return rotationVectorX_; + @java.lang.Override + public float getSpeed() { + return speed_; } /** *
-       * unitless, 4 components should sum to ~1
+       * m/s
        * 
* - * optional float rotation_vector_x = 8; + * float speed = 3; + * @param value The speed to set. + * @return This builder for chaining. */ - public Builder setRotationVectorX(float value) { + public Builder setSpeed(float value) { - rotationVectorX_ = value; + speed_ = value; onChanged(); return this; } /** *
-       * unitless, 4 components should sum to ~1
+       * m/s
        * 
* - * optional float rotation_vector_x = 8; - */ - public Builder clearRotationVectorX() { - - rotationVectorX_ = 0F; - onChanged(); - return this; - } - - private float rotationVectorY_ ; - /** - * optional float rotation_vector_y = 9; - */ - public float getRotationVectorY() { - return rotationVectorY_; - } - /** - * optional float rotation_vector_y = 9; - */ - public Builder setRotationVectorY(float value) { - - rotationVectorY_ = value; - onChanged(); - return this; - } - /** - * optional float rotation_vector_y = 9; - */ - public Builder clearRotationVectorY() { - - rotationVectorY_ = 0F; - onChanged(); - return this; - } - - private float rotationVectorZ_ ; - /** - * optional float rotation_vector_z = 10; - */ - public float getRotationVectorZ() { - return rotationVectorZ_; - } - /** - * optional float rotation_vector_z = 10; - */ - public Builder setRotationVectorZ(float value) { - - rotationVectorZ_ = value; - onChanged(); - return this; - } - /** - * optional float rotation_vector_z = 10; + * float speed = 3; + * @return This builder for chaining. */ - public Builder clearRotationVectorZ() { + public Builder clearSpeed() { - rotationVectorZ_ = 0F; + speed_ = 0F; onChanged(); return this; } - private float rotationVectorW_ ; + private float bearing_ ; /** - * optional float rotation_vector_w = 11; + *
+       * degrees
+       * 
+ * + * float bearing = 4; + * @return The bearing. */ - public float getRotationVectorW() { - return rotationVectorW_; + @java.lang.Override + public float getBearing() { + return bearing_; } /** - * optional float rotation_vector_w = 11; + *
+       * degrees
+       * 
+ * + * float bearing = 4; + * @param value The bearing to set. + * @return This builder for chaining. */ - public Builder setRotationVectorW(float value) { + public Builder setBearing(float value) { - rotationVectorW_ = value; + bearing_ = value; onChanged(); return this; } /** - * optional float rotation_vector_w = 11; + *
+       * degrees
+       * 
+ * + * float bearing = 4; + * @return This builder for chaining. */ - public Builder clearRotationVectorW() { + public Builder clearBearing() { - rotationVectorW_ = 0F; + bearing_ = 0F; onChanged(); return this; } - private int stepCount_ ; + private java.lang.Object provider_ = ""; /** *
-       * Integer
+       * e.g 'gps' or 'network'
        * 
* - * optional int32 step_count = 12; + * string provider = 5; + * @return The provider. */ - public int getStepCount() { - return stepCount_; + public java.lang.String getProvider() { + java.lang.Object ref = provider_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + provider_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** *
-       * Integer
+       * e.g 'gps' or 'network'
        * 
* - * optional int32 step_count = 12; + * string provider = 5; + * @return The bytes for provider. */ - public Builder setStepCount(int value) { + public com.google.protobuf.ByteString + getProviderBytes() { + java.lang.Object ref = provider_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + provider_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * e.g 'gps' or 'network'
+       * 
+ * + * string provider = 5; + * @param value The provider to set. + * @return This builder for chaining. + */ + public Builder setProvider( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + provider_ = value; + onChanged(); + return this; + } + /** + *
+       * e.g 'gps' or 'network'
+       * 
+ * + * string provider = 5; + * @return This builder for chaining. + */ + public Builder clearProvider() { - stepCount_ = value; + provider_ = getDefaultInstance().getProvider(); onChanged(); return this; } /** *
-       * Integer
+       * e.g 'gps' or 'network'
        * 
* - * optional int32 step_count = 12; + * string provider = 5; + * @param value The bytes for provider to set. + * @return This builder for chaining. */ - public Builder clearStepCount() { + public Builder setProviderBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); - stepCount_ = 0; + provider_ = value; onChanged(); return this; } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.setUnknownFields(unknownFields); } + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:Motion_Sample) + // @@protoc_insertion_point(builder_scope:GNSSReading) } - // @@protoc_insertion_point(class_scope:Motion_Sample) - private static final Motion_Sample DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:GNSSReading) + private static final Traj.GNSSReading DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new Motion_Sample(); + DEFAULT_INSTANCE = new Traj.GNSSReading(); } - public static Motion_Sample getDefaultInstance() { + public static Traj.GNSSReading getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public Motion_Sample parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public GNSSReading parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Motion_Sample(input, extensionRegistry); + return new GNSSReading(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public Motion_Sample getDefaultInstanceForType() { + @java.lang.Override + public Traj.GNSSReading getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface Position_SampleOrBuilder extends - // @@protoc_insertion_point(interface_extends:Position_Sample) + public interface FingerprintOrBuilder extends + // @@protoc_insertion_point(interface_extends:Fingerprint) com.google.protobuf.MessageOrBuilder { /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. */ long getRelativeTimestamp(); /** - *
-     * uT
-     * 
- * - * optional float mag_x = 2; + * repeated .RFScan rf_scans = 2; */ - float getMagX(); - + java.util.List + getRfScansList(); /** - * optional float mag_y = 3; + * repeated .RFScan rf_scans = 2; */ - float getMagY(); - + Traj.RFScan getRfScans(int index); + /** + * repeated .RFScan rf_scans = 2; + */ + int getRfScansCount(); + /** + * repeated .RFScan rf_scans = 2; + */ + java.util.List + getRfScansOrBuilderList(); /** - * optional float mag_z = 4; + * repeated .RFScan rf_scans = 2; */ - float getMagZ(); + Traj.RFScanOrBuilder getRfScansOrBuilder( + int index); } /** - * Protobuf type {@code Position_Sample} + * Protobuf type {@code Fingerprint} */ - public static final class Position_Sample extends + public static final class Fingerprint extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Position_Sample) - Position_SampleOrBuilder { - // Use Position_Sample.newBuilder() to construct. - private Position_Sample(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // @@protoc_insertion_point(message_implements:Fingerprint) + FingerprintOrBuilder { + private static final long serialVersionUID = 0L; + // Use Fingerprint.newBuilder() to construct. + private Fingerprint(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private Position_Sample() { - relativeTimestamp_ = 0L; - magX_ = 0F; - magY_ = 0F; - magZ_ = 0F; + private Fingerprint() { + rfScans_ = java.util.Collections.emptyList(); } - @Override + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Fingerprint(); + } + + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } - private Position_Sample( + private Fingerprint( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -6801,96 +14565,110 @@ private Position_Sample( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; - } - break; - } case 8: { relativeTimestamp_ = input.readInt64(); break; } - case 21: { - - magX_ = input.readFloat(); - break; - } - case 29: { - - magY_ = input.readFloat(); + case 18: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + rfScans_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + rfScans_.add( + input.readMessage(Traj.RFScan.parser(), extensionRegistry)); break; } - case 37: { - - magZ_ = input.readFloat(); + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + rfScans_ = java.util.Collections.unmodifiableList(rfScans_); + } + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Position_Sample_descriptor; + return Traj.internal_static_Fingerprint_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Position_Sample_fieldAccessorTable + return Traj.internal_static_Fingerprint_fieldAccessorTable .ensureFieldAccessorsInitialized( - Position_Sample.class, Builder.class); + Traj.Fingerprint.class, Traj.Fingerprint.Builder.class); } public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; private long relativeTimestamp_; /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. */ + @java.lang.Override public long getRelativeTimestamp() { return relativeTimestamp_; } - public static final int MAG_X_FIELD_NUMBER = 2; - private float magX_; + public static final int RF_SCANS_FIELD_NUMBER = 2; + private java.util.List rfScans_; /** - *
-     * uT
-     * 
- * - * optional float mag_x = 2; + * repeated .RFScan rf_scans = 2; */ - public float getMagX() { - return magX_; + @java.lang.Override + public java.util.List getRfScansList() { + return rfScans_; } - - public static final int MAG_Y_FIELD_NUMBER = 3; - private float magY_; /** - * optional float mag_y = 3; + * repeated .RFScan rf_scans = 2; */ - public float getMagY() { - return magY_; + @java.lang.Override + public java.util.List + getRfScansOrBuilderList() { + return rfScans_; + } + /** + * repeated .RFScan rf_scans = 2; + */ + @java.lang.Override + public int getRfScansCount() { + return rfScans_.size(); + } + /** + * repeated .RFScan rf_scans = 2; + */ + @java.lang.Override + public Traj.RFScan getRfScans(int index) { + return rfScans_.get(index); } - - public static final int MAG_Z_FIELD_NUMBER = 4; - private float magZ_; /** - * optional float mag_z = 4; + * repeated .RFScan rf_scans = 2; */ - public float getMagZ() { - return magZ_; + @java.lang.Override + public Traj.RFScanOrBuilder getRfScansOrBuilder( + int index) { + return rfScans_.get(index); } private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -6900,22 +14678,19 @@ public final boolean isInitialized() { return true; } + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (relativeTimestamp_ != 0L) { output.writeInt64(1, relativeTimestamp_); } - if (magX_ != 0F) { - output.writeFloat(2, magX_); - } - if (magY_ != 0F) { - output.writeFloat(3, magY_); - } - if (magZ_ != 0F) { - output.writeFloat(4, magZ_); + for (int i = 0; i < rfScans_.size(); i++) { + output.writeMessage(2, rfScans_.get(i)); } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -6925,127 +14700,115 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeInt64Size(1, relativeTimestamp_); } - if (magX_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(2, magX_); - } - if (magY_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(3, magY_); - } - if (magZ_ != 0F) { + for (int i = 0; i < rfScans_.size(); i++) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(4, magZ_); + .computeMessageSize(2, rfScans_.get(i)); } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof Position_Sample)) { + if (!(obj instanceof Traj.Fingerprint)) { return super.equals(obj); } - Position_Sample other = (Position_Sample) obj; - - boolean result = true; - result = result && (getRelativeTimestamp() - == other.getRelativeTimestamp()); - result = result && ( - Float.floatToIntBits(getMagX()) - == Float.floatToIntBits( - other.getMagX())); - result = result && ( - Float.floatToIntBits(getMagY()) - == Float.floatToIntBits( - other.getMagY())); - result = result && ( - Float.floatToIntBits(getMagZ()) - == Float.floatToIntBits( - other.getMagZ())); - return result; - } - - @Override + Traj.Fingerprint other = (Traj.Fingerprint) obj; + + if (getRelativeTimestamp() + != other.getRelativeTimestamp()) return false; + if (!getRfScansList() + .equals(other.getRfScansList())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); + hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getRelativeTimestamp()); - hash = (37 * hash) + MAG_X_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getMagX()); - hash = (37 * hash) + MAG_Y_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getMagY()); - hash = (37 * hash) + MAG_Z_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getMagZ()); + if (getRfScansCount() > 0) { + hash = (37 * hash) + RF_SCANS_FIELD_NUMBER; + hash = (53 * hash) + getRfScansList().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static Position_Sample parseFrom( + public static Traj.Fingerprint parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.Fingerprint parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.Fingerprint parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Position_Sample parseFrom( + public static Traj.Fingerprint parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Position_Sample parseFrom(byte[] data) + public static Traj.Fingerprint parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Position_Sample parseFrom( + public static Traj.Fingerprint parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Position_Sample parseFrom(java.io.InputStream input) + public static Traj.Fingerprint parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Position_Sample parseFrom( + public static Traj.Fingerprint parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static Position_Sample parseDelimitedFrom(java.io.InputStream input) + public static Traj.Fingerprint parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static Position_Sample parseDelimitedFrom( + public static Traj.Fingerprint parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static Position_Sample parseFrom( + public static Traj.Fingerprint parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Position_Sample parseFrom( + public static Traj.Fingerprint parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -7053,44 +14816,47 @@ public static Position_Sample parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(Position_Sample prototype) { + public static Builder newBuilder(Traj.Fingerprint prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** - * Protobuf type {@code Position_Sample} + * Protobuf type {@code Fingerprint} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Position_Sample) - Position_SampleOrBuilder { + // @@protoc_insertion_point(builder_implements:Fingerprint) + Traj.FingerprintOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Position_Sample_descriptor; + return Traj.internal_static_Fingerprint_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Position_Sample_fieldAccessorTable + return Traj.internal_static_Fingerprint_fieldAccessorTable .ensureFieldAccessorsInitialized( - Position_Sample.class, Builder.class); + Traj.Fingerprint.class, Traj.Fingerprint.Builder.class); } - // Construct using Traj.Position_Sample.newBuilder() + // Construct using Traj.Fingerprint.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -7103,114 +14869,154 @@ private Builder( private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { + getRfScansFieldBuilder(); } } + @java.lang.Override public Builder clear() { super.clear(); relativeTimestamp_ = 0L; - magX_ = 0F; - - magY_ = 0F; - - magZ_ = 0F; - + if (rfScansBuilder_ == null) { + rfScans_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + rfScansBuilder_.clear(); + } return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return Traj.internal_static_Position_Sample_descriptor; + return Traj.internal_static_Fingerprint_descriptor; } - public Position_Sample getDefaultInstanceForType() { - return Position_Sample.getDefaultInstance(); + @java.lang.Override + public Traj.Fingerprint getDefaultInstanceForType() { + return Traj.Fingerprint.getDefaultInstance(); } - public Position_Sample build() { - Position_Sample result = buildPartial(); + @java.lang.Override + public Traj.Fingerprint build() { + Traj.Fingerprint result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public Position_Sample buildPartial() { - Position_Sample result = new Position_Sample(this); + @java.lang.Override + public Traj.Fingerprint buildPartial() { + Traj.Fingerprint result = new Traj.Fingerprint(this); + int from_bitField0_ = bitField0_; result.relativeTimestamp_ = relativeTimestamp_; - result.magX_ = magX_; - result.magY_ = magY_; - result.magZ_ = magZ_; + if (rfScansBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + rfScans_ = java.util.Collections.unmodifiableList(rfScans_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.rfScans_ = rfScans_; + } else { + result.rfScans_ = rfScansBuilder_.build(); + } onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof Position_Sample) { - return mergeFrom((Position_Sample)other); + if (other instanceof Traj.Fingerprint) { + return mergeFrom((Traj.Fingerprint)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(Position_Sample other) { - if (other == Position_Sample.getDefaultInstance()) return this; + public Builder mergeFrom(Traj.Fingerprint other) { + if (other == Traj.Fingerprint.getDefaultInstance()) return this; if (other.getRelativeTimestamp() != 0L) { setRelativeTimestamp(other.getRelativeTimestamp()); } - if (other.getMagX() != 0F) { - setMagX(other.getMagX()); - } - if (other.getMagY() != 0F) { - setMagY(other.getMagY()); - } - if (other.getMagZ() != 0F) { - setMagZ(other.getMagZ()); + if (rfScansBuilder_ == null) { + if (!other.rfScans_.isEmpty()) { + if (rfScans_.isEmpty()) { + rfScans_ = other.rfScans_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureRfScansIsMutable(); + rfScans_.addAll(other.rfScans_); + } + onChanged(); + } + } else { + if (!other.rfScans_.isEmpty()) { + if (rfScansBuilder_.isEmpty()) { + rfScansBuilder_.dispose(); + rfScansBuilder_ = null; + rfScans_ = other.rfScans_; + bitField0_ = (bitField0_ & ~0x00000001); + rfScansBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getRfScansFieldBuilder() : null; + } else { + rfScansBuilder_.addAllMessages(other.rfScans_); + } + } } + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } + @java.lang.Override public final boolean isInitialized() { return true; } + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - Position_Sample parsedMessage = null; + Traj.Fingerprint parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (Position_Sample) e.getUnfinishedMessage(); + parsedMessage = (Traj.Fingerprint) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -7219,16 +15025,21 @@ public Builder mergeFrom( } return this; } + private int bitField0_; private long relativeTimestamp_ ; /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. */ + @java.lang.Override public long getRelativeTimestamp() { return relativeTimestamp_; } /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @param value The relativeTimestamp to set. + * @return This builder for chaining. */ public Builder setRelativeTimestamp(long value) { @@ -7237,7 +15048,8 @@ public Builder setRelativeTimestamp(long value) { return this; } /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @return This builder for chaining. */ public Builder clearRelativeTimestamp() { @@ -7246,189 +15058,395 @@ public Builder clearRelativeTimestamp() { return this; } - private float magX_ ; + private java.util.List rfScans_ = + java.util.Collections.emptyList(); + private void ensureRfScansIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + rfScans_ = new java.util.ArrayList(rfScans_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.RFScan, Traj.RFScan.Builder, Traj.RFScanOrBuilder> rfScansBuilder_; + /** - *
-       * uT
-       * 
- * - * optional float mag_x = 2; + * repeated .RFScan rf_scans = 2; */ - public float getMagX() { - return magX_; + public java.util.List getRfScansList() { + if (rfScansBuilder_ == null) { + return java.util.Collections.unmodifiableList(rfScans_); + } else { + return rfScansBuilder_.getMessageList(); + } } /** - *
-       * uT
-       * 
- * - * optional float mag_x = 2; + * repeated .RFScan rf_scans = 2; */ - public Builder setMagX(float value) { - - magX_ = value; - onChanged(); + public int getRfScansCount() { + if (rfScansBuilder_ == null) { + return rfScans_.size(); + } else { + return rfScansBuilder_.getCount(); + } + } + /** + * repeated .RFScan rf_scans = 2; + */ + public Traj.RFScan getRfScans(int index) { + if (rfScansBuilder_ == null) { + return rfScans_.get(index); + } else { + return rfScansBuilder_.getMessage(index); + } + } + /** + * repeated .RFScan rf_scans = 2; + */ + public Builder setRfScans( + int index, Traj.RFScan value) { + if (rfScansBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRfScansIsMutable(); + rfScans_.set(index, value); + onChanged(); + } else { + rfScansBuilder_.setMessage(index, value); + } return this; } /** - *
-       * uT
-       * 
- * - * optional float mag_x = 2; + * repeated .RFScan rf_scans = 2; */ - public Builder clearMagX() { - - magX_ = 0F; - onChanged(); + public Builder setRfScans( + int index, Traj.RFScan.Builder builderForValue) { + if (rfScansBuilder_ == null) { + ensureRfScansIsMutable(); + rfScans_.set(index, builderForValue.build()); + onChanged(); + } else { + rfScansBuilder_.setMessage(index, builderForValue.build()); + } return this; } - - private float magY_ ; /** - * optional float mag_y = 3; + * repeated .RFScan rf_scans = 2; + */ + public Builder addRfScans(Traj.RFScan value) { + if (rfScansBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRfScansIsMutable(); + rfScans_.add(value); + onChanged(); + } else { + rfScansBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .RFScan rf_scans = 2; + */ + public Builder addRfScans( + int index, Traj.RFScan value) { + if (rfScansBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureRfScansIsMutable(); + rfScans_.add(index, value); + onChanged(); + } else { + rfScansBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .RFScan rf_scans = 2; + */ + public Builder addRfScans( + Traj.RFScan.Builder builderForValue) { + if (rfScansBuilder_ == null) { + ensureRfScansIsMutable(); + rfScans_.add(builderForValue.build()); + onChanged(); + } else { + rfScansBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .RFScan rf_scans = 2; + */ + public Builder addRfScans( + int index, Traj.RFScan.Builder builderForValue) { + if (rfScansBuilder_ == null) { + ensureRfScansIsMutable(); + rfScans_.add(index, builderForValue.build()); + onChanged(); + } else { + rfScansBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .RFScan rf_scans = 2; + */ + public Builder addAllRfScans( + java.lang.Iterable values) { + if (rfScansBuilder_ == null) { + ensureRfScansIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, rfScans_); + onChanged(); + } else { + rfScansBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .RFScan rf_scans = 2; + */ + public Builder clearRfScans() { + if (rfScansBuilder_ == null) { + rfScans_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + rfScansBuilder_.clear(); + } + return this; + } + /** + * repeated .RFScan rf_scans = 2; + */ + public Builder removeRfScans(int index) { + if (rfScansBuilder_ == null) { + ensureRfScansIsMutable(); + rfScans_.remove(index); + onChanged(); + } else { + rfScansBuilder_.remove(index); + } + return this; + } + /** + * repeated .RFScan rf_scans = 2; + */ + public Traj.RFScan.Builder getRfScansBuilder( + int index) { + return getRfScansFieldBuilder().getBuilder(index); + } + /** + * repeated .RFScan rf_scans = 2; */ - public float getMagY() { - return magY_; + public Traj.RFScanOrBuilder getRfScansOrBuilder( + int index) { + if (rfScansBuilder_ == null) { + return rfScans_.get(index); } else { + return rfScansBuilder_.getMessageOrBuilder(index); + } } /** - * optional float mag_y = 3; + * repeated .RFScan rf_scans = 2; */ - public Builder setMagY(float value) { - - magY_ = value; - onChanged(); - return this; + public java.util.List + getRfScansOrBuilderList() { + if (rfScansBuilder_ != null) { + return rfScansBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(rfScans_); + } } /** - * optional float mag_y = 3; + * repeated .RFScan rf_scans = 2; */ - public Builder clearMagY() { - - magY_ = 0F; - onChanged(); - return this; + public Traj.RFScan.Builder addRfScansBuilder() { + return getRfScansFieldBuilder().addBuilder( + Traj.RFScan.getDefaultInstance()); } - - private float magZ_ ; /** - * optional float mag_z = 4; + * repeated .RFScan rf_scans = 2; */ - public float getMagZ() { - return magZ_; + public Traj.RFScan.Builder addRfScansBuilder( + int index) { + return getRfScansFieldBuilder().addBuilder( + index, Traj.RFScan.getDefaultInstance()); } /** - * optional float mag_z = 4; + * repeated .RFScan rf_scans = 2; */ - public Builder setMagZ(float value) { - - magZ_ = value; - onChanged(); - return this; + public java.util.List + getRfScansBuilderList() { + return getRfScansFieldBuilder().getBuilderList(); } - /** - * optional float mag_z = 4; - */ - public Builder clearMagZ() { - - magZ_ = 0F; - onChanged(); - return this; + private com.google.protobuf.RepeatedFieldBuilderV3< + Traj.RFScan, Traj.RFScan.Builder, Traj.RFScanOrBuilder> + getRfScansFieldBuilder() { + if (rfScansBuilder_ == null) { + rfScansBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + Traj.RFScan, Traj.RFScan.Builder, Traj.RFScanOrBuilder>( + rfScans_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + rfScans_ = null; + } + return rfScansBuilder_; } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.setUnknownFields(unknownFields); } + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:Position_Sample) + // @@protoc_insertion_point(builder_scope:Fingerprint) } - // @@protoc_insertion_point(class_scope:Position_Sample) - private static final Position_Sample DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:Fingerprint) + private static final Traj.Fingerprint DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new Position_Sample(); + DEFAULT_INSTANCE = new Traj.Fingerprint(); } - public static Position_Sample getDefaultInstance() { + public static Traj.Fingerprint getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public Position_Sample parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Fingerprint parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Position_Sample(input, extensionRegistry); + return new Fingerprint(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public Position_Sample getDefaultInstanceForType() { + @java.lang.Override + public Traj.Fingerprint getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface Pressure_SampleOrBuilder extends - // @@protoc_insertion_point(interface_extends:Pressure_Sample) + public interface RFScanOrBuilder extends + // @@protoc_insertion_point(interface_extends:RFScan) com.google.protobuf.MessageOrBuilder { /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. */ long getRelativeTimestamp(); /** *
-     * mbar
+     * Integer encoding of the hex mac address (BSSID)
+     * e.g. 207394925843984
      * 
* - * optional float pressure = 2; + * int64 mac = 2; + * @return The mac. */ - float getPressure(); + long getMac(); + + /** + *
+     * rssi integer in dBm.
+     * typically between -120 and -10
+     * 
+ * + * int32 rssi = 3; + * @return The rssi. + */ + int getRssi(); + + /** + *
+     * returned position
+     * 
+ * + * optional .GNSSPosition position = 4; + * @return Whether the position field is set. + */ + boolean hasPosition(); + /** + *
+     * returned position
+     * 
+ * + * optional .GNSSPosition position = 4; + * @return The position. + */ + Traj.GNSSPosition getPosition(); + /** + *
+     * returned position
+     * 
+ * + * optional .GNSSPosition position = 4; + */ + Traj.GNSSPositionOrBuilder getPositionOrBuilder(); } /** - * Protobuf type {@code Pressure_Sample} + * Protobuf type {@code RFScan} */ - public static final class Pressure_Sample extends + public static final class RFScan extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Pressure_Sample) - Pressure_SampleOrBuilder { - // Use Pressure_Sample.newBuilder() to construct. - private Pressure_Sample(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // @@protoc_insertion_point(message_implements:RFScan) + RFScanOrBuilder { + private static final long serialVersionUID = 0L; + // Use RFScan.newBuilder() to construct. + private RFScan(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private Pressure_Sample() { - relativeTimestamp_ = 0L; - pressure_ = 0F; + private RFScan() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new RFScan(); } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } - private Pressure_Sample( + private RFScan( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -7437,68 +15455,152 @@ private Pressure_Sample( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; - } - break; - } case 8: { relativeTimestamp_ = input.readInt64(); break; } - case 21: { + case 16: { - pressure_ = input.readFloat(); + mac_ = input.readInt64(); + break; + } + case 24: { + + rssi_ = input.readInt32(); + break; + } + case 34: { + Traj.GNSSPosition.Builder subBuilder = null; + if (((bitField0_ & 0x00000001) != 0)) { + subBuilder = position_.toBuilder(); + } + position_ = input.readMessage(Traj.GNSSPosition.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(position_); + position_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000001; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Pressure_Sample_descriptor; + return Traj.internal_static_RFScan_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Pressure_Sample_fieldAccessorTable + return Traj.internal_static_RFScan_fieldAccessorTable .ensureFieldAccessorsInitialized( - Pressure_Sample.class, Builder.class); + Traj.RFScan.class, Traj.RFScan.Builder.class); } + private int bitField0_; public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; private long relativeTimestamp_; /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. */ + @java.lang.Override public long getRelativeTimestamp() { return relativeTimestamp_; } - public static final int PRESSURE_FIELD_NUMBER = 2; - private float pressure_; + public static final int MAC_FIELD_NUMBER = 2; + private long mac_; /** *
-     * mbar
+     * Integer encoding of the hex mac address (BSSID)
+     * e.g. 207394925843984
      * 
* - * optional float pressure = 2; + * int64 mac = 2; + * @return The mac. */ - public float getPressure() { - return pressure_; + @java.lang.Override + public long getMac() { + return mac_; + } + + public static final int RSSI_FIELD_NUMBER = 3; + private int rssi_; + /** + *
+     * rssi integer in dBm.
+     * typically between -120 and -10
+     * 
+ * + * int32 rssi = 3; + * @return The rssi. + */ + @java.lang.Override + public int getRssi() { + return rssi_; + } + + public static final int POSITION_FIELD_NUMBER = 4; + private Traj.GNSSPosition position_; + /** + *
+     * returned position
+     * 
+ * + * optional .GNSSPosition position = 4; + * @return Whether the position field is set. + */ + @java.lang.Override + public boolean hasPosition() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * returned position
+     * 
+ * + * optional .GNSSPosition position = 4; + * @return The position. + */ + @java.lang.Override + public Traj.GNSSPosition getPosition() { + return position_ == null ? Traj.GNSSPosition.getDefaultInstance() : position_; + } + /** + *
+     * returned position
+     * 
+ * + * optional .GNSSPosition position = 4; + */ + @java.lang.Override + public Traj.GNSSPositionOrBuilder getPositionOrBuilder() { + return position_ == null ? Traj.GNSSPosition.getDefaultInstance() : position_; } private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -7508,16 +15610,25 @@ public final boolean isInitialized() { return true; } + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (relativeTimestamp_ != 0L) { output.writeInt64(1, relativeTimestamp_); } - if (pressure_ != 0F) { - output.writeFloat(2, pressure_); + if (mac_ != 0L) { + output.writeInt64(2, mac_); + } + if (rssi_ != 0) { + output.writeInt32(3, rssi_); } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(4, getPosition()); + } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -7527,105 +15638,135 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeInt64Size(1, relativeTimestamp_); } - if (pressure_ != 0F) { + if (mac_ != 0L) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(2, pressure_); + .computeInt64Size(2, mac_); + } + if (rssi_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, rssi_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getPosition()); } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof Pressure_Sample)) { + if (!(obj instanceof Traj.RFScan)) { return super.equals(obj); } - Pressure_Sample other = (Pressure_Sample) obj; + Traj.RFScan other = (Traj.RFScan) obj; - boolean result = true; - result = result && (getRelativeTimestamp() - == other.getRelativeTimestamp()); - result = result && ( - Float.floatToIntBits(getPressure()) - == Float.floatToIntBits( - other.getPressure())); - return result; + if (getRelativeTimestamp() + != other.getRelativeTimestamp()) return false; + if (getMac() + != other.getMac()) return false; + if (getRssi() + != other.getRssi()) return false; + if (hasPosition() != other.hasPosition()) return false; + if (hasPosition()) { + if (!getPosition() + .equals(other.getPosition())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); + hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getRelativeTimestamp()); - hash = (37 * hash) + PRESSURE_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getPressure()); + hash = (37 * hash) + MAC_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMac()); + hash = (37 * hash) + RSSI_FIELD_NUMBER; + hash = (53 * hash) + getRssi(); + if (hasPosition()) { + hash = (37 * hash) + POSITION_FIELD_NUMBER; + hash = (53 * hash) + getPosition().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static Pressure_Sample parseFrom( + public static Traj.RFScan parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.RFScan parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.RFScan parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Pressure_Sample parseFrom( + public static Traj.RFScan parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Pressure_Sample parseFrom(byte[] data) + public static Traj.RFScan parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Pressure_Sample parseFrom( + public static Traj.RFScan parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Pressure_Sample parseFrom(java.io.InputStream input) + public static Traj.RFScan parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Pressure_Sample parseFrom( + public static Traj.RFScan parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static Pressure_Sample parseDelimitedFrom(java.io.InputStream input) + public static Traj.RFScan parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static Pressure_Sample parseDelimitedFrom( + public static Traj.RFScan parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static Pressure_Sample parseFrom( + public static Traj.RFScan parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Pressure_Sample parseFrom( + public static Traj.RFScan parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -7633,44 +15774,47 @@ public static Pressure_Sample parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(Pressure_Sample prototype) { + public static Builder newBuilder(Traj.RFScan prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** - * Protobuf type {@code Pressure_Sample} + * Protobuf type {@code RFScan} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Pressure_Sample) - Pressure_SampleOrBuilder { + // @@protoc_insertion_point(builder_implements:RFScan) + Traj.RFScanOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Pressure_Sample_descriptor; + return Traj.internal_static_RFScan_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Pressure_Sample_fieldAccessorTable + return Traj.internal_static_RFScan_fieldAccessorTable .ensureFieldAccessorsInitialized( - Pressure_Sample.class, Builder.class); + Traj.RFScan.class, Traj.RFScan.Builder.class); } - // Construct using Traj.Pressure_Sample.newBuilder() + // Construct using Traj.RFScan.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -7683,268 +15827,575 @@ private Builder( private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { + getPositionFieldBuilder(); } } + @java.lang.Override public Builder clear() { super.clear(); relativeTimestamp_ = 0L; - pressure_ = 0F; + mac_ = 0L; + + rssi_ = 0; + if (positionBuilder_ == null) { + position_ = null; + } else { + positionBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return Traj.internal_static_Pressure_Sample_descriptor; + return Traj.internal_static_RFScan_descriptor; } - public Pressure_Sample getDefaultInstanceForType() { - return Pressure_Sample.getDefaultInstance(); + @java.lang.Override + public Traj.RFScan getDefaultInstanceForType() { + return Traj.RFScan.getDefaultInstance(); } - public Pressure_Sample build() { - Pressure_Sample result = buildPartial(); + @java.lang.Override + public Traj.RFScan build() { + Traj.RFScan result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public Pressure_Sample buildPartial() { - Pressure_Sample result = new Pressure_Sample(this); + @java.lang.Override + public Traj.RFScan buildPartial() { + Traj.RFScan result = new Traj.RFScan(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; result.relativeTimestamp_ = relativeTimestamp_; - result.pressure_ = pressure_; + result.mac_ = mac_; + result.rssi_ = rssi_; + if (((from_bitField0_ & 0x00000001) != 0)) { + if (positionBuilder_ == null) { + result.position_ = position_; + } else { + result.position_ = positionBuilder_.build(); + } + to_bitField0_ |= 0x00000001; + } + result.bitField0_ = to_bitField0_; onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof Pressure_Sample) { - return mergeFrom((Pressure_Sample)other); + if (other instanceof Traj.RFScan) { + return mergeFrom((Traj.RFScan)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(Pressure_Sample other) { - if (other == Pressure_Sample.getDefaultInstance()) return this; + public Builder mergeFrom(Traj.RFScan other) { + if (other == Traj.RFScan.getDefaultInstance()) return this; if (other.getRelativeTimestamp() != 0L) { setRelativeTimestamp(other.getRelativeTimestamp()); } - if (other.getPressure() != 0F) { - setPressure(other.getPressure()); + if (other.getMac() != 0L) { + setMac(other.getMac()); + } + if (other.getRssi() != 0) { + setRssi(other.getRssi()); + } + if (other.hasPosition()) { + mergePosition(other.getPosition()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Traj.RFScan parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (Traj.RFScan) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } } + return this; + } + private int bitField0_; + + private long relativeTimestamp_ ; + /** + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. + */ + @java.lang.Override + public long getRelativeTimestamp() { + return relativeTimestamp_; + } + /** + * int64 relative_timestamp = 1; + * @param value The relativeTimestamp to set. + * @return This builder for chaining. + */ + public Builder setRelativeTimestamp(long value) { + + relativeTimestamp_ = value; + onChanged(); + return this; + } + /** + * int64 relative_timestamp = 1; + * @return This builder for chaining. + */ + public Builder clearRelativeTimestamp() { + + relativeTimestamp_ = 0L; + onChanged(); + return this; + } + + private long mac_ ; + /** + *
+       * Integer encoding of the hex mac address (BSSID)
+       * e.g. 207394925843984
+       * 
+ * + * int64 mac = 2; + * @return The mac. + */ + @java.lang.Override + public long getMac() { + return mac_; + } + /** + *
+       * Integer encoding of the hex mac address (BSSID)
+       * e.g. 207394925843984
+       * 
+ * + * int64 mac = 2; + * @param value The mac to set. + * @return This builder for chaining. + */ + public Builder setMac(long value) { + + mac_ = value; + onChanged(); + return this; + } + /** + *
+       * Integer encoding of the hex mac address (BSSID)
+       * e.g. 207394925843984
+       * 
+ * + * int64 mac = 2; + * @return This builder for chaining. + */ + public Builder clearMac() { + + mac_ = 0L; onChanged(); return this; } - public final boolean isInitialized() { - return true; - } - - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - Pressure_Sample parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (Pressure_Sample) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private long relativeTimestamp_ ; + private int rssi_ ; /** - * optional int64 relative_timestamp = 1; + *
+       * rssi integer in dBm.
+       * typically between -120 and -10
+       * 
+ * + * int32 rssi = 3; + * @return The rssi. */ - public long getRelativeTimestamp() { - return relativeTimestamp_; + @java.lang.Override + public int getRssi() { + return rssi_; } /** - * optional int64 relative_timestamp = 1; + *
+       * rssi integer in dBm.
+       * typically between -120 and -10
+       * 
+ * + * int32 rssi = 3; + * @param value The rssi to set. + * @return This builder for chaining. */ - public Builder setRelativeTimestamp(long value) { + public Builder setRssi(int value) { - relativeTimestamp_ = value; + rssi_ = value; onChanged(); return this; } /** - * optional int64 relative_timestamp = 1; + *
+       * rssi integer in dBm.
+       * typically between -120 and -10
+       * 
+ * + * int32 rssi = 3; + * @return This builder for chaining. */ - public Builder clearRelativeTimestamp() { + public Builder clearRssi() { - relativeTimestamp_ = 0L; + rssi_ = 0; onChanged(); return this; } - private float pressure_ ; + private Traj.GNSSPosition position_; + private com.google.protobuf.SingleFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder> positionBuilder_; /** *
-       * mbar
+       * returned position
        * 
* - * optional float pressure = 2; + * optional .GNSSPosition position = 4; + * @return Whether the position field is set. */ - public float getPressure() { - return pressure_; + public boolean hasPosition() { + return ((bitField0_ & 0x00000001) != 0); } /** *
-       * mbar
+       * returned position
        * 
* - * optional float pressure = 2; + * optional .GNSSPosition position = 4; + * @return The position. */ - public Builder setPressure(float value) { - - pressure_ = value; - onChanged(); + public Traj.GNSSPosition getPosition() { + if (positionBuilder_ == null) { + return position_ == null ? Traj.GNSSPosition.getDefaultInstance() : position_; + } else { + return positionBuilder_.getMessage(); + } + } + /** + *
+       * returned position
+       * 
+ * + * optional .GNSSPosition position = 4; + */ + public Builder setPosition(Traj.GNSSPosition value) { + if (positionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + position_ = value; + onChanged(); + } else { + positionBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; return this; } /** *
-       * mbar
+       * returned position
        * 
* - * optional float pressure = 2; + * optional .GNSSPosition position = 4; */ - public Builder clearPressure() { - - pressure_ = 0F; - onChanged(); + public Builder setPosition( + Traj.GNSSPosition.Builder builderForValue) { + if (positionBuilder_ == null) { + position_ = builderForValue.build(); + onChanged(); + } else { + positionBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + return this; + } + /** + *
+       * returned position
+       * 
+ * + * optional .GNSSPosition position = 4; + */ + public Builder mergePosition(Traj.GNSSPosition value) { + if (positionBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + position_ != null && + position_ != Traj.GNSSPosition.getDefaultInstance()) { + position_ = + Traj.GNSSPosition.newBuilder(position_).mergeFrom(value).buildPartial(); + } else { + position_ = value; + } + onChanged(); + } else { + positionBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + return this; + } + /** + *
+       * returned position
+       * 
+ * + * optional .GNSSPosition position = 4; + */ + public Builder clearPosition() { + if (positionBuilder_ == null) { + position_ = null; + onChanged(); + } else { + positionBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); return this; } + /** + *
+       * returned position
+       * 
+ * + * optional .GNSSPosition position = 4; + */ + public Traj.GNSSPosition.Builder getPositionBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getPositionFieldBuilder().getBuilder(); + } + /** + *
+       * returned position
+       * 
+ * + * optional .GNSSPosition position = 4; + */ + public Traj.GNSSPositionOrBuilder getPositionOrBuilder() { + if (positionBuilder_ != null) { + return positionBuilder_.getMessageOrBuilder(); + } else { + return position_ == null ? + Traj.GNSSPosition.getDefaultInstance() : position_; + } + } + /** + *
+       * returned position
+       * 
+ * + * optional .GNSSPosition position = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder> + getPositionFieldBuilder() { + if (positionBuilder_ == null) { + positionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + Traj.GNSSPosition, Traj.GNSSPosition.Builder, Traj.GNSSPositionOrBuilder>( + getPosition(), + getParentForChildren(), + isClean()); + position_ = null; + } + return positionBuilder_; + } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.setUnknownFields(unknownFields); } + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:Pressure_Sample) + // @@protoc_insertion_point(builder_scope:RFScan) } - // @@protoc_insertion_point(class_scope:Pressure_Sample) - private static final Pressure_Sample DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:RFScan) + private static final Traj.RFScan DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new Pressure_Sample(); + DEFAULT_INSTANCE = new Traj.RFScan(); } - public static Pressure_Sample getDefaultInstance() { + public static Traj.RFScan getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public Pressure_Sample parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RFScan parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Pressure_Sample(input, extensionRegistry); + return new RFScan(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public Pressure_Sample getDefaultInstanceForType() { + @java.lang.Override + public Traj.RFScan getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface Light_SampleOrBuilder extends - // @@protoc_insertion_point(interface_extends:Light_Sample) + public interface WiFiRTTReadingOrBuilder extends + // @@protoc_insertion_point(interface_extends:WiFiRTTReading) com.google.protobuf.MessageOrBuilder { /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. */ long getRelativeTimestamp(); /** *
-     * lux
+     * cm
+     * Integer encoding of the hex mac address (BSSID)
+     * e.g. 207394925843984
      * 
* - * optional float light = 2; + * int64 mac = 2; + * @return The mac. */ - float getLight(); + long getMac(); + + /** + *
+     * in mm
+     * 
+ * + * float distance = 3; + * @return The distance. + */ + float getDistance(); + + /** + *
+     * in mm
+     * 
+ * + * float distance_std = 4; + * @return The distanceStd. + */ + float getDistanceStd(); + + /** + *
+     * rssi integer in dBm.
+     * typically between -120 and -10
+     * 
+ * + * int32 rssi = 5; + * @return The rssi. + */ + int getRssi(); } /** - * Protobuf type {@code Light_Sample} + * Protobuf type {@code WiFiRTTReading} */ - public static final class Light_Sample extends + public static final class WiFiRTTReading extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Light_Sample) - Light_SampleOrBuilder { - // Use Light_Sample.newBuilder() to construct. - private Light_Sample(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // @@protoc_insertion_point(message_implements:WiFiRTTReading) + WiFiRTTReadingOrBuilder { + private static final long serialVersionUID = 0L; + // Use WiFiRTTReading.newBuilder() to construct. + private WiFiRTTReading(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private Light_Sample() { - relativeTimestamp_ = 0L; - light_ = 0F; + private WiFiRTTReading() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new WiFiRTTReading(); } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } - private Light_Sample( + private WiFiRTTReading( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); - int mutable_bitField0_ = 0; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -7953,68 +16404,141 @@ private Light_Sample( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; - } - break; - } case 8: { relativeTimestamp_ = input.readInt64(); break; } - case 21: { + case 16: { - light_ = input.readFloat(); + mac_ = input.readInt64(); + break; + } + case 29: { + + distance_ = input.readFloat(); + break; + } + case 37: { + + distanceStd_ = input.readFloat(); + break; + } + case 40: { + + rssi_ = input.readInt32(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Light_Sample_descriptor; + return Traj.internal_static_WiFiRTTReading_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Light_Sample_fieldAccessorTable + return Traj.internal_static_WiFiRTTReading_fieldAccessorTable .ensureFieldAccessorsInitialized( - Light_Sample.class, Builder.class); + Traj.WiFiRTTReading.class, Traj.WiFiRTTReading.Builder.class); } public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; private long relativeTimestamp_; /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. */ + @java.lang.Override public long getRelativeTimestamp() { return relativeTimestamp_; } - public static final int LIGHT_FIELD_NUMBER = 2; - private float light_; + public static final int MAC_FIELD_NUMBER = 2; + private long mac_; /** *
-     * lux
+     * cm
+     * Integer encoding of the hex mac address (BSSID)
+     * e.g. 207394925843984
      * 
* - * optional float light = 2; + * int64 mac = 2; + * @return The mac. */ - public float getLight() { - return light_; + @java.lang.Override + public long getMac() { + return mac_; + } + + public static final int DISTANCE_FIELD_NUMBER = 3; + private float distance_; + /** + *
+     * in mm
+     * 
+ * + * float distance = 3; + * @return The distance. + */ + @java.lang.Override + public float getDistance() { + return distance_; + } + + public static final int DISTANCE_STD_FIELD_NUMBER = 4; + private float distanceStd_; + /** + *
+     * in mm
+     * 
+ * + * float distance_std = 4; + * @return The distanceStd. + */ + @java.lang.Override + public float getDistanceStd() { + return distanceStd_; + } + + public static final int RSSI_FIELD_NUMBER = 5; + private int rssi_; + /** + *
+     * rssi integer in dBm.
+     * typically between -120 and -10
+     * 
+ * + * int32 rssi = 5; + * @return The rssi. + */ + @java.lang.Override + public int getRssi() { + return rssi_; } private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -8024,16 +16548,28 @@ public final boolean isInitialized() { return true; } + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (relativeTimestamp_ != 0L) { output.writeInt64(1, relativeTimestamp_); } - if (light_ != 0F) { - output.writeFloat(2, light_); + if (mac_ != 0L) { + output.writeInt64(2, mac_); + } + if (java.lang.Float.floatToRawIntBits(distance_) != 0) { + output.writeFloat(3, distance_); } + if (java.lang.Float.floatToRawIntBits(distanceStd_) != 0) { + output.writeFloat(4, distanceStd_); + } + if (rssi_ != 0) { + output.writeInt32(5, rssi_); + } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; @@ -8043,105 +16579,142 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeInt64Size(1, relativeTimestamp_); } - if (light_ != 0F) { + if (mac_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, mac_); + } + if (java.lang.Float.floatToRawIntBits(distance_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(2, light_); + .computeFloatSize(3, distance_); + } + if (java.lang.Float.floatToRawIntBits(distanceStd_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(4, distanceStd_); + } + if (rssi_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(5, rssi_); } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof Light_Sample)) { + if (!(obj instanceof Traj.WiFiRTTReading)) { return super.equals(obj); } - Light_Sample other = (Light_Sample) obj; - - boolean result = true; - result = result && (getRelativeTimestamp() - == other.getRelativeTimestamp()); - result = result && ( - Float.floatToIntBits(getLight()) - == Float.floatToIntBits( - other.getLight())); - return result; + Traj.WiFiRTTReading other = (Traj.WiFiRTTReading) obj; + + if (getRelativeTimestamp() + != other.getRelativeTimestamp()) return false; + if (getMac() + != other.getMac()) return false; + if (java.lang.Float.floatToIntBits(getDistance()) + != java.lang.Float.floatToIntBits( + other.getDistance())) return false; + if (java.lang.Float.floatToIntBits(getDistanceStd()) + != java.lang.Float.floatToIntBits( + other.getDistanceStd())) return false; + if (getRssi() + != other.getRssi()) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); + hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( getRelativeTimestamp()); - hash = (37 * hash) + LIGHT_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getLight()); + hash = (37 * hash) + MAC_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getMac()); + hash = (37 * hash) + DISTANCE_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getDistance()); + hash = (37 * hash) + DISTANCE_STD_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getDistanceStd()); + hash = (37 * hash) + RSSI_FIELD_NUMBER; + hash = (53 * hash) + getRssi(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - - public static Light_Sample parseFrom( + + public static Traj.WiFiRTTReading parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.WiFiRTTReading parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.WiFiRTTReading parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Light_Sample parseFrom( + public static Traj.WiFiRTTReading parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Light_Sample parseFrom(byte[] data) + public static Traj.WiFiRTTReading parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Light_Sample parseFrom( + public static Traj.WiFiRTTReading parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Light_Sample parseFrom(java.io.InputStream input) + public static Traj.WiFiRTTReading parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Light_Sample parseFrom( + public static Traj.WiFiRTTReading parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static Light_Sample parseDelimitedFrom(java.io.InputStream input) + public static Traj.WiFiRTTReading parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static Light_Sample parseDelimitedFrom( + public static Traj.WiFiRTTReading parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static Light_Sample parseFrom( + public static Traj.WiFiRTTReading parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Light_Sample parseFrom( + public static Traj.WiFiRTTReading parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -8149,44 +16722,47 @@ public static Light_Sample parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(Light_Sample prototype) { + public static Builder newBuilder(Traj.WiFiRTTReading prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** - * Protobuf type {@code Light_Sample} + * Protobuf type {@code WiFiRTTReading} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Light_Sample) - Light_SampleOrBuilder { + // @@protoc_insertion_point(builder_implements:WiFiRTTReading) + Traj.WiFiRTTReadingOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Light_Sample_descriptor; + return Traj.internal_static_WiFiRTTReading_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Light_Sample_fieldAccessorTable + return Traj.internal_static_WiFiRTTReading_fieldAccessorTable .ensureFieldAccessorsInitialized( - Light_Sample.class, Builder.class); + Traj.WiFiRTTReading.class, Traj.WiFiRTTReading.Builder.class); } - // Construct using Traj.Light_Sample.newBuilder() + // Construct using Traj.WiFiRTTReading.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -8201,100 +16777,133 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } + @java.lang.Override public Builder clear() { super.clear(); relativeTimestamp_ = 0L; - light_ = 0F; + mac_ = 0L; + + distance_ = 0F; + + distanceStd_ = 0F; + + rssi_ = 0; return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return Traj.internal_static_Light_Sample_descriptor; + return Traj.internal_static_WiFiRTTReading_descriptor; } - public Light_Sample getDefaultInstanceForType() { - return Light_Sample.getDefaultInstance(); + @java.lang.Override + public Traj.WiFiRTTReading getDefaultInstanceForType() { + return Traj.WiFiRTTReading.getDefaultInstance(); } - public Light_Sample build() { - Light_Sample result = buildPartial(); + @java.lang.Override + public Traj.WiFiRTTReading build() { + Traj.WiFiRTTReading result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public Light_Sample buildPartial() { - Light_Sample result = new Light_Sample(this); + @java.lang.Override + public Traj.WiFiRTTReading buildPartial() { + Traj.WiFiRTTReading result = new Traj.WiFiRTTReading(this); result.relativeTimestamp_ = relativeTimestamp_; - result.light_ = light_; + result.mac_ = mac_; + result.distance_ = distance_; + result.distanceStd_ = distanceStd_; + result.rssi_ = rssi_; onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof Light_Sample) { - return mergeFrom((Light_Sample)other); + if (other instanceof Traj.WiFiRTTReading) { + return mergeFrom((Traj.WiFiRTTReading)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(Light_Sample other) { - if (other == Light_Sample.getDefaultInstance()) return this; + public Builder mergeFrom(Traj.WiFiRTTReading other) { + if (other == Traj.WiFiRTTReading.getDefaultInstance()) return this; if (other.getRelativeTimestamp() != 0L) { setRelativeTimestamp(other.getRelativeTimestamp()); } - if (other.getLight() != 0F) { - setLight(other.getLight()); + if (other.getMac() != 0L) { + setMac(other.getMac()); } + if (other.getDistance() != 0F) { + setDistance(other.getDistance()); + } + if (other.getDistanceStd() != 0F) { + setDistanceStd(other.getDistanceStd()); + } + if (other.getRssi() != 0) { + setRssi(other.getRssi()); + } + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } + @java.lang.Override public final boolean isInitialized() { return true; } + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - Light_Sample parsedMessage = null; + Traj.WiFiRTTReading parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (Light_Sample) e.getUnfinishedMessage(); + parsedMessage = (Traj.WiFiRTTReading) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -8306,13 +16915,17 @@ public Builder mergeFrom( private long relativeTimestamp_ ; /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @return The relativeTimestamp. */ + @java.lang.Override public long getRelativeTimestamp() { return relativeTimestamp_; } /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @param value The relativeTimestamp to set. + * @return This builder for chaining. */ public Builder setRelativeTimestamp(long value) { @@ -8321,7 +16934,8 @@ public Builder setRelativeTimestamp(long value) { return this; } /** - * optional int64 relative_timestamp = 1; + * int64 relative_timestamp = 1; + * @return This builder for chaining. */ public Builder clearRelativeTimestamp() { @@ -8330,197 +16944,332 @@ public Builder clearRelativeTimestamp() { return this; } - private float light_ ; + private long mac_ ; /** *
-       * lux
+       * cm
+       * Integer encoding of the hex mac address (BSSID)
+       * e.g. 207394925843984
        * 
* - * optional float light = 2; + * int64 mac = 2; + * @return The mac. */ - public float getLight() { - return light_; + @java.lang.Override + public long getMac() { + return mac_; } /** *
-       * lux
+       * cm
+       * Integer encoding of the hex mac address (BSSID)
+       * e.g. 207394925843984
        * 
* - * optional float light = 2; + * int64 mac = 2; + * @param value The mac to set. + * @return This builder for chaining. */ - public Builder setLight(float value) { + public Builder setMac(long value) { - light_ = value; + mac_ = value; onChanged(); return this; } /** *
-       * lux
+       * cm
+       * Integer encoding of the hex mac address (BSSID)
+       * e.g. 207394925843984
        * 
* - * optional float light = 2; + * int64 mac = 2; + * @return This builder for chaining. */ - public Builder clearLight() { + public Builder clearMac() { - light_ = 0F; + mac_ = 0L; + onChanged(); + return this; + } + + private float distance_ ; + /** + *
+       * in mm
+       * 
+ * + * float distance = 3; + * @return The distance. + */ + @java.lang.Override + public float getDistance() { + return distance_; + } + /** + *
+       * in mm
+       * 
+ * + * float distance = 3; + * @param value The distance to set. + * @return This builder for chaining. + */ + public Builder setDistance(float value) { + + distance_ = value; + onChanged(); + return this; + } + /** + *
+       * in mm
+       * 
+ * + * float distance = 3; + * @return This builder for chaining. + */ + public Builder clearDistance() { + + distance_ = 0F; + onChanged(); + return this; + } + + private float distanceStd_ ; + /** + *
+       * in mm
+       * 
+ * + * float distance_std = 4; + * @return The distanceStd. + */ + @java.lang.Override + public float getDistanceStd() { + return distanceStd_; + } + /** + *
+       * in mm
+       * 
+ * + * float distance_std = 4; + * @param value The distanceStd to set. + * @return This builder for chaining. + */ + public Builder setDistanceStd(float value) { + + distanceStd_ = value; + onChanged(); + return this; + } + /** + *
+       * in mm
+       * 
+ * + * float distance_std = 4; + * @return This builder for chaining. + */ + public Builder clearDistanceStd() { + + distanceStd_ = 0F; + onChanged(); + return this; + } + + private int rssi_ ; + /** + *
+       * rssi integer in dBm.
+       * typically between -120 and -10
+       * 
+ * + * int32 rssi = 5; + * @return The rssi. + */ + @java.lang.Override + public int getRssi() { + return rssi_; + } + /** + *
+       * rssi integer in dBm.
+       * typically between -120 and -10
+       * 
+ * + * int32 rssi = 5; + * @param value The rssi to set. + * @return This builder for chaining. + */ + public Builder setRssi(int value) { + + rssi_ = value; + onChanged(); + return this; + } + /** + *
+       * rssi integer in dBm.
+       * typically between -120 and -10
+       * 
+ * + * int32 rssi = 5; + * @return This builder for chaining. + */ + public Builder clearRssi() { + + rssi_ = 0; onChanged(); return this; } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.setUnknownFields(unknownFields); } + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:Light_Sample) + // @@protoc_insertion_point(builder_scope:WiFiRTTReading) } - // @@protoc_insertion_point(class_scope:Light_Sample) - private static final Light_Sample DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:WiFiRTTReading) + private static final Traj.WiFiRTTReading DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new Light_Sample(); + DEFAULT_INSTANCE = new Traj.WiFiRTTReading(); } - public static Light_Sample getDefaultInstance() { + public static Traj.WiFiRTTReading getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public Light_Sample parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WiFiRTTReading parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Light_Sample(input, extensionRegistry); + return new WiFiRTTReading(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public Light_Sample getDefaultInstanceForType() { + @java.lang.Override + public Traj.WiFiRTTReading getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface GNSS_SampleOrBuilder extends - // @@protoc_insertion_point(interface_extends:GNSS_Sample) + public interface WiFiAPDataOrBuilder extends + // @@protoc_insertion_point(interface_extends:WiFiAPData) com.google.protobuf.MessageOrBuilder { - /** - * optional int64 relative_timestamp = 1; - */ - long getRelativeTimestamp(); - - /** - *
-     * degrees (minimum 6 significant figures)
-     * latitude between -90 and 90
-     * 
- * - * optional float latitude = 2; - */ - float getLatitude(); - /** *
-     * longitude between -180 and 180
+     * Integer encoding of the hex mac address (BSSID)
+     * e.g. 207394925843984
      * 
* - * optional float longitude = 3; + * int64 mac = 1; + * @return The mac. */ - float getLongitude(); + long getMac(); /** *
-     *metres
+     * E.g. 'Eduroam' or 'Starbucks_free_wifi'
      * 
* - * optional float altitude = 4; + * string ssid = 2; + * @return The ssid. */ - float getAltitude(); - + java.lang.String getSsid(); /** *
-     * metres
+     * E.g. 'Eduroam' or 'Starbucks_free_wifi'
      * 
* - * optional float accuracy = 5; + * string ssid = 2; + * @return The bytes for ssid. */ - float getAccuracy(); + com.google.protobuf.ByteString + getSsidBytes(); /** *
-     * m/s
+     * Typically 2.4GHz or 5GHz
      * 
* - * optional float speed = 6; + * int64 frequency = 3; + * @return The frequency. */ - float getSpeed(); + long getFrequency(); /** *
-     * e.g 'gps' or 'network'
-     * 
- * - * optional string provider = 7; - */ - String getProvider(); - /** - *
-     * e.g 'gps' or 'network'
+     * Flag to indicate if the AP supports RTT measurements
      * 
* - * optional string provider = 7; + * bool rtt_enabled = 4; + * @return The rttEnabled. */ - com.google.protobuf.ByteString - getProviderBytes(); + boolean getRttEnabled(); } /** - * Protobuf type {@code GNSS_Sample} + * Protobuf type {@code WiFiAPData} */ - public static final class GNSS_Sample extends + public static final class WiFiAPData extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:GNSS_Sample) - GNSS_SampleOrBuilder { - // Use GNSS_Sample.newBuilder() to construct. - private GNSS_Sample(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // @@protoc_insertion_point(message_implements:WiFiAPData) + WiFiAPDataOrBuilder { + private static final long serialVersionUID = 0L; + // Use WiFiAPData.newBuilder() to construct. + private WiFiAPData(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private GNSS_Sample() { - relativeTimestamp_ = 0L; - latitude_ = 0F; - longitude_ = 0F; - altitude_ = 0F; - accuracy_ = 0F; - speed_ = 0F; - provider_ = ""; + private WiFiAPData() { + ssid_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new WiFiAPData(); } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } - private GNSS_Sample( + private WiFiAPData( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); - int mutable_bitField0_ = 0; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -8529,189 +17278,155 @@ private GNSS_Sample( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; - } - break; - } case 8: { - relativeTimestamp_ = input.readInt64(); - break; - } - case 21: { - - latitude_ = input.readFloat(); - break; - } - case 29: { - - longitude_ = input.readFloat(); + mac_ = input.readInt64(); break; } - case 37: { + case 18: { + java.lang.String s = input.readStringRequireUtf8(); - altitude_ = input.readFloat(); + ssid_ = s; break; } - case 45: { + case 24: { - accuracy_ = input.readFloat(); + frequency_ = input.readInt64(); break; } - case 53: { + case 32: { - speed_ = input.readFloat(); + rttEnabled_ = input.readBool(); break; } - case 58: { - String s = input.readStringRequireUtf8(); - - provider_ = s; + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_GNSS_Sample_descriptor; - } - - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return Traj.internal_static_GNSS_Sample_fieldAccessorTable - .ensureFieldAccessorsInitialized( - GNSS_Sample.class, Builder.class); - } - - public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; - private long relativeTimestamp_; - /** - * optional int64 relative_timestamp = 1; - */ - public long getRelativeTimestamp() { - return relativeTimestamp_; - } - - public static final int LATITUDE_FIELD_NUMBER = 2; - private float latitude_; - /** - *
-     * degrees (minimum 6 significant figures)
-     * latitude between -90 and 90
-     * 
- * - * optional float latitude = 2; - */ - public float getLatitude() { - return latitude_; - } - - public static final int LONGITUDE_FIELD_NUMBER = 3; - private float longitude_; - /** - *
-     * longitude between -180 and 180
-     * 
- * - * optional float longitude = 3; - */ - public float getLongitude() { - return longitude_; - } - - public static final int ALTITUDE_FIELD_NUMBER = 4; - private float altitude_; - /** - *
-     *metres
-     * 
- * - * optional float altitude = 4; - */ - public float getAltitude() { - return altitude_; - } - - public static final int ACCURACY_FIELD_NUMBER = 5; - private float accuracy_; - /** - *
-     * metres
-     * 
- * - * optional float accuracy = 5; - */ - public float getAccuracy() { - return accuracy_; + return Traj.internal_static_WiFiAPData_descriptor; } - public static final int SPEED_FIELD_NUMBER = 6; - private float speed_; + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return Traj.internal_static_WiFiAPData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + Traj.WiFiAPData.class, Traj.WiFiAPData.Builder.class); + } + + public static final int MAC_FIELD_NUMBER = 1; + private long mac_; /** *
-     * m/s
+     * Integer encoding of the hex mac address (BSSID)
+     * e.g. 207394925843984
      * 
* - * optional float speed = 6; + * int64 mac = 1; + * @return The mac. */ - public float getSpeed() { - return speed_; + @java.lang.Override + public long getMac() { + return mac_; } - public static final int PROVIDER_FIELD_NUMBER = 7; - private volatile Object provider_; + public static final int SSID_FIELD_NUMBER = 2; + private volatile java.lang.Object ssid_; /** *
-     * e.g 'gps' or 'network'
+     * E.g. 'Eduroam' or 'Starbucks_free_wifi'
      * 
* - * optional string provider = 7; + * string ssid = 2; + * @return The ssid. */ - public String getProvider() { - Object ref = provider_; - if (ref instanceof String) { - return (String) ref; + @java.lang.Override + public java.lang.String getSsid() { + java.lang.Object ref = ssid_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); - provider_ = s; + java.lang.String s = bs.toStringUtf8(); + ssid_ = s; return s; } } /** *
-     * e.g 'gps' or 'network'
+     * E.g. 'Eduroam' or 'Starbucks_free_wifi'
      * 
* - * optional string provider = 7; + * string ssid = 2; + * @return The bytes for ssid. */ + @java.lang.Override public com.google.protobuf.ByteString - getProviderBytes() { - Object ref = provider_; - if (ref instanceof String) { + getSsidBytes() { + java.lang.Object ref = ssid_; + if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); - provider_ = b; + (java.lang.String) ref); + ssid_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } + public static final int FREQUENCY_FIELD_NUMBER = 3; + private long frequency_; + /** + *
+     * Typically 2.4GHz or 5GHz
+     * 
+ * + * int64 frequency = 3; + * @return The frequency. + */ + @java.lang.Override + public long getFrequency() { + return frequency_; + } + + public static final int RTT_ENABLED_FIELD_NUMBER = 4; + private boolean rttEnabled_; + /** + *
+     * Flag to indicate if the AP supports RTT measurements
+     * 
+ * + * bool rtt_enabled = 4; + * @return The rttEnabled. + */ + @java.lang.Override + public boolean getRttEnabled() { + return rttEnabled_; + } + private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -8721,190 +17436,158 @@ public final boolean isInitialized() { return true; } + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (relativeTimestamp_ != 0L) { - output.writeInt64(1, relativeTimestamp_); - } - if (latitude_ != 0F) { - output.writeFloat(2, latitude_); - } - if (longitude_ != 0F) { - output.writeFloat(3, longitude_); - } - if (altitude_ != 0F) { - output.writeFloat(4, altitude_); + if (mac_ != 0L) { + output.writeInt64(1, mac_); } - if (accuracy_ != 0F) { - output.writeFloat(5, accuracy_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ssid_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ssid_); } - if (speed_ != 0F) { - output.writeFloat(6, speed_); + if (frequency_ != 0L) { + output.writeInt64(3, frequency_); } - if (!getProviderBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 7, provider_); + if (rttEnabled_ != false) { + output.writeBool(4, rttEnabled_); } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; - if (relativeTimestamp_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1, relativeTimestamp_); - } - if (latitude_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(2, latitude_); - } - if (longitude_ != 0F) { + if (mac_ != 0L) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(3, longitude_); + .computeInt64Size(1, mac_); } - if (altitude_ != 0F) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(4, altitude_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ssid_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, ssid_); } - if (accuracy_ != 0F) { + if (frequency_ != 0L) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(5, accuracy_); + .computeInt64Size(3, frequency_); } - if (speed_ != 0F) { + if (rttEnabled_ != false) { size += com.google.protobuf.CodedOutputStream - .computeFloatSize(6, speed_); - } - if (!getProviderBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, provider_); + .computeBoolSize(4, rttEnabled_); } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof GNSS_Sample)) { + if (!(obj instanceof Traj.WiFiAPData)) { return super.equals(obj); } - GNSS_Sample other = (GNSS_Sample) obj; - - boolean result = true; - result = result && (getRelativeTimestamp() - == other.getRelativeTimestamp()); - result = result && ( - Float.floatToIntBits(getLatitude()) - == Float.floatToIntBits( - other.getLatitude())); - result = result && ( - Float.floatToIntBits(getLongitude()) - == Float.floatToIntBits( - other.getLongitude())); - result = result && ( - Float.floatToIntBits(getAltitude()) - == Float.floatToIntBits( - other.getAltitude())); - result = result && ( - Float.floatToIntBits(getAccuracy()) - == Float.floatToIntBits( - other.getAccuracy())); - result = result && ( - Float.floatToIntBits(getSpeed()) - == Float.floatToIntBits( - other.getSpeed())); - result = result && getProvider() - .equals(other.getProvider()); - return result; - } - - @Override + Traj.WiFiAPData other = (Traj.WiFiAPData) obj; + + if (getMac() + != other.getMac()) return false; + if (!getSsid() + .equals(other.getSsid())) return false; + if (getFrequency() + != other.getFrequency()) return false; + if (getRttEnabled() + != other.getRttEnabled()) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); - hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MAC_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getRelativeTimestamp()); - hash = (37 * hash) + LATITUDE_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getLatitude()); - hash = (37 * hash) + LONGITUDE_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getLongitude()); - hash = (37 * hash) + ALTITUDE_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getAltitude()); - hash = (37 * hash) + ACCURACY_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getAccuracy()); - hash = (37 * hash) + SPEED_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( - getSpeed()); - hash = (37 * hash) + PROVIDER_FIELD_NUMBER; - hash = (53 * hash) + getProvider().hashCode(); + getMac()); + hash = (37 * hash) + SSID_FIELD_NUMBER; + hash = (53 * hash) + getSsid().hashCode(); + hash = (37 * hash) + FREQUENCY_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getFrequency()); + hash = (37 * hash) + RTT_ENABLED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getRttEnabled()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static GNSS_Sample parseFrom( + public static Traj.WiFiAPData parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.WiFiAPData parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.WiFiAPData parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static GNSS_Sample parseFrom( + public static Traj.WiFiAPData parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static GNSS_Sample parseFrom(byte[] data) + public static Traj.WiFiAPData parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static GNSS_Sample parseFrom( + public static Traj.WiFiAPData parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static GNSS_Sample parseFrom(java.io.InputStream input) + public static Traj.WiFiAPData parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static GNSS_Sample parseFrom( + public static Traj.WiFiAPData parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static GNSS_Sample parseDelimitedFrom(java.io.InputStream input) + public static Traj.WiFiAPData parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static GNSS_Sample parseDelimitedFrom( + public static Traj.WiFiAPData parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static GNSS_Sample parseFrom( + public static Traj.WiFiAPData parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static GNSS_Sample parseFrom( + public static Traj.WiFiAPData parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -8912,44 +17595,47 @@ public static GNSS_Sample parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(GNSS_Sample prototype) { + public static Builder newBuilder(Traj.WiFiAPData prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** - * Protobuf type {@code GNSS_Sample} + * Protobuf type {@code WiFiAPData} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:GNSS_Sample) - GNSS_SampleOrBuilder { + // @@protoc_insertion_point(builder_implements:WiFiAPData) + Traj.WiFiAPDataOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_GNSS_Sample_descriptor; + return Traj.internal_static_WiFiAPData_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_GNSS_Sample_fieldAccessorTable + return Traj.internal_static_WiFiAPData_fieldAccessorTable .ensureFieldAccessorsInitialized( - GNSS_Sample.class, Builder.class); + Traj.WiFiAPData.class, Traj.WiFiAPData.Builder.class); } - // Construct using Traj.GNSS_Sample.newBuilder() + // Construct using Traj.WiFiAPData.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -8964,131 +17650,128 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } + @java.lang.Override public Builder clear() { super.clear(); - relativeTimestamp_ = 0L; - - latitude_ = 0F; - - longitude_ = 0F; - - altitude_ = 0F; + mac_ = 0L; - accuracy_ = 0F; + ssid_ = ""; - speed_ = 0F; + frequency_ = 0L; - provider_ = ""; + rttEnabled_ = false; return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return Traj.internal_static_GNSS_Sample_descriptor; + return Traj.internal_static_WiFiAPData_descriptor; } - public GNSS_Sample getDefaultInstanceForType() { - return GNSS_Sample.getDefaultInstance(); + @java.lang.Override + public Traj.WiFiAPData getDefaultInstanceForType() { + return Traj.WiFiAPData.getDefaultInstance(); } - public GNSS_Sample build() { - GNSS_Sample result = buildPartial(); + @java.lang.Override + public Traj.WiFiAPData build() { + Traj.WiFiAPData result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public GNSS_Sample buildPartial() { - GNSS_Sample result = new GNSS_Sample(this); - result.relativeTimestamp_ = relativeTimestamp_; - result.latitude_ = latitude_; - result.longitude_ = longitude_; - result.altitude_ = altitude_; - result.accuracy_ = accuracy_; - result.speed_ = speed_; - result.provider_ = provider_; + @java.lang.Override + public Traj.WiFiAPData buildPartial() { + Traj.WiFiAPData result = new Traj.WiFiAPData(this); + result.mac_ = mac_; + result.ssid_ = ssid_; + result.frequency_ = frequency_; + result.rttEnabled_ = rttEnabled_; onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof GNSS_Sample) { - return mergeFrom((GNSS_Sample)other); + if (other instanceof Traj.WiFiAPData) { + return mergeFrom((Traj.WiFiAPData)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(GNSS_Sample other) { - if (other == GNSS_Sample.getDefaultInstance()) return this; - if (other.getRelativeTimestamp() != 0L) { - setRelativeTimestamp(other.getRelativeTimestamp()); - } - if (other.getLatitude() != 0F) { - setLatitude(other.getLatitude()); - } - if (other.getLongitude() != 0F) { - setLongitude(other.getLongitude()); - } - if (other.getAltitude() != 0F) { - setAltitude(other.getAltitude()); + public Builder mergeFrom(Traj.WiFiAPData other) { + if (other == Traj.WiFiAPData.getDefaultInstance()) return this; + if (other.getMac() != 0L) { + setMac(other.getMac()); } - if (other.getAccuracy() != 0F) { - setAccuracy(other.getAccuracy()); + if (!other.getSsid().isEmpty()) { + ssid_ = other.ssid_; + onChanged(); } - if (other.getSpeed() != 0F) { - setSpeed(other.getSpeed()); + if (other.getFrequency() != 0L) { + setFrequency(other.getFrequency()); } - if (!other.getProvider().isEmpty()) { - provider_ = other.provider_; - onChanged(); + if (other.getRttEnabled() != false) { + setRttEnabled(other.getRttEnabled()); } + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } + @java.lang.Override public final boolean isInitialized() { return true; } + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - GNSS_Sample parsedMessage = null; + Traj.WiFiAPData parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (GNSS_Sample) e.getUnfinishedMessage(); + parsedMessage = (Traj.WiFiAPData) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -9098,422 +17781,399 @@ public Builder mergeFrom( return this; } - private long relativeTimestamp_ ; - /** - * optional int64 relative_timestamp = 1; - */ - public long getRelativeTimestamp() { - return relativeTimestamp_; - } - /** - * optional int64 relative_timestamp = 1; - */ - public Builder setRelativeTimestamp(long value) { - - relativeTimestamp_ = value; - onChanged(); - return this; - } - /** - * optional int64 relative_timestamp = 1; - */ - public Builder clearRelativeTimestamp() { - - relativeTimestamp_ = 0L; - onChanged(); - return this; - } - - private float latitude_ ; - /** - *
-       * degrees (minimum 6 significant figures)
-       * latitude between -90 and 90
-       * 
- * - * optional float latitude = 2; - */ - public float getLatitude() { - return latitude_; - } - /** - *
-       * degrees (minimum 6 significant figures)
-       * latitude between -90 and 90
-       * 
- * - * optional float latitude = 2; - */ - public Builder setLatitude(float value) { - - latitude_ = value; - onChanged(); - return this; - } - /** - *
-       * degrees (minimum 6 significant figures)
-       * latitude between -90 and 90
-       * 
- * - * optional float latitude = 2; - */ - public Builder clearLatitude() { - - latitude_ = 0F; - onChanged(); - return this; - } - - private float longitude_ ; + private long mac_ ; /** *
-       * longitude between -180 and 180
+       * Integer encoding of the hex mac address (BSSID)
+       * e.g. 207394925843984
        * 
* - * optional float longitude = 3; + * int64 mac = 1; + * @return The mac. */ - public float getLongitude() { - return longitude_; + @java.lang.Override + public long getMac() { + return mac_; } /** *
-       * longitude between -180 and 180
+       * Integer encoding of the hex mac address (BSSID)
+       * e.g. 207394925843984
        * 
* - * optional float longitude = 3; + * int64 mac = 1; + * @param value The mac to set. + * @return This builder for chaining. */ - public Builder setLongitude(float value) { + public Builder setMac(long value) { - longitude_ = value; + mac_ = value; onChanged(); return this; } /** *
-       * longitude between -180 and 180
+       * Integer encoding of the hex mac address (BSSID)
+       * e.g. 207394925843984
        * 
* - * optional float longitude = 3; + * int64 mac = 1; + * @return This builder for chaining. */ - public Builder clearLongitude() { + public Builder clearMac() { - longitude_ = 0F; + mac_ = 0L; onChanged(); return this; } - private float altitude_ ; + private java.lang.Object ssid_ = ""; /** *
-       *metres
+       * E.g. 'Eduroam' or 'Starbucks_free_wifi'
        * 
* - * optional float altitude = 4; + * string ssid = 2; + * @return The ssid. */ - public float getAltitude() { - return altitude_; + public java.lang.String getSsid() { + java.lang.Object ref = ssid_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ssid_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** *
-       *metres
+       * E.g. 'Eduroam' or 'Starbucks_free_wifi'
        * 
* - * optional float altitude = 4; + * string ssid = 2; + * @return The bytes for ssid. */ - public Builder setAltitude(float value) { - - altitude_ = value; - onChanged(); - return this; + public com.google.protobuf.ByteString + getSsidBytes() { + java.lang.Object ref = ssid_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ssid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } /** *
-       *metres
+       * E.g. 'Eduroam' or 'Starbucks_free_wifi'
        * 
* - * optional float altitude = 4; + * string ssid = 2; + * @param value The ssid to set. + * @return This builder for chaining. */ - public Builder clearAltitude() { - - altitude_ = 0F; + public Builder setSsid( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + ssid_ = value; onChanged(); return this; } - - private float accuracy_ ; - /** - *
-       * metres
-       * 
- * - * optional float accuracy = 5; - */ - public float getAccuracy() { - return accuracy_; - } /** *
-       * metres
+       * E.g. 'Eduroam' or 'Starbucks_free_wifi'
        * 
* - * optional float accuracy = 5; + * string ssid = 2; + * @return This builder for chaining. */ - public Builder setAccuracy(float value) { + public Builder clearSsid() { - accuracy_ = value; + ssid_ = getDefaultInstance().getSsid(); onChanged(); return this; } /** *
-       * metres
+       * E.g. 'Eduroam' or 'Starbucks_free_wifi'
        * 
* - * optional float accuracy = 5; + * string ssid = 2; + * @param value The bytes for ssid to set. + * @return This builder for chaining. */ - public Builder clearAccuracy() { + public Builder setSsidBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); - accuracy_ = 0F; + ssid_ = value; onChanged(); return this; } - private float speed_ ; + private long frequency_ ; /** *
-       * m/s
+       * Typically 2.4GHz or 5GHz
        * 
* - * optional float speed = 6; + * int64 frequency = 3; + * @return The frequency. */ - public float getSpeed() { - return speed_; + @java.lang.Override + public long getFrequency() { + return frequency_; } /** *
-       * m/s
+       * Typically 2.4GHz or 5GHz
        * 
* - * optional float speed = 6; + * int64 frequency = 3; + * @param value The frequency to set. + * @return This builder for chaining. */ - public Builder setSpeed(float value) { + public Builder setFrequency(long value) { - speed_ = value; + frequency_ = value; onChanged(); return this; } /** *
-       * m/s
+       * Typically 2.4GHz or 5GHz
        * 
* - * optional float speed = 6; + * int64 frequency = 3; + * @return This builder for chaining. */ - public Builder clearSpeed() { + public Builder clearFrequency() { - speed_ = 0F; + frequency_ = 0L; onChanged(); return this; } - private Object provider_ = ""; - /** - *
-       * e.g 'gps' or 'network'
-       * 
- * - * optional string provider = 7; - */ - public String getProvider() { - Object ref = provider_; - if (!(ref instanceof String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); - provider_ = s; - return s; - } else { - return (String) ref; - } - } - /** - *
-       * e.g 'gps' or 'network'
-       * 
- * - * optional string provider = 7; - */ - public com.google.protobuf.ByteString - getProviderBytes() { - Object ref = provider_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); - provider_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + private boolean rttEnabled_ ; /** *
-       * e.g 'gps' or 'network'
+       * Flag to indicate if the AP supports RTT measurements
        * 
* - * optional string provider = 7; + * bool rtt_enabled = 4; + * @return The rttEnabled. */ - public Builder setProvider( - String value) { - if (value == null) { - throw new NullPointerException(); - } - - provider_ = value; - onChanged(); - return this; + @java.lang.Override + public boolean getRttEnabled() { + return rttEnabled_; } /** *
-       * e.g 'gps' or 'network'
+       * Flag to indicate if the AP supports RTT measurements
        * 
* - * optional string provider = 7; + * bool rtt_enabled = 4; + * @param value The rttEnabled to set. + * @return This builder for chaining. */ - public Builder clearProvider() { + public Builder setRttEnabled(boolean value) { - provider_ = getDefaultInstance().getProvider(); + rttEnabled_ = value; onChanged(); return this; } /** *
-       * e.g 'gps' or 'network'
+       * Flag to indicate if the AP supports RTT measurements
        * 
* - * optional string provider = 7; + * bool rtt_enabled = 4; + * @return This builder for chaining. */ - public Builder setProviderBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); + public Builder clearRttEnabled() { - provider_ = value; + rttEnabled_ = false; onChanged(); return this; } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.setUnknownFields(unknownFields); } + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:GNSS_Sample) + // @@protoc_insertion_point(builder_scope:WiFiAPData) } - // @@protoc_insertion_point(class_scope:GNSS_Sample) - private static final GNSS_Sample DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:WiFiAPData) + private static final Traj.WiFiAPData DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new GNSS_Sample(); + DEFAULT_INSTANCE = new Traj.WiFiAPData(); } - public static GNSS_Sample getDefaultInstance() { + public static Traj.WiFiAPData getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public GNSS_Sample parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WiFiAPData parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new GNSS_Sample(input, extensionRegistry); + return new WiFiAPData(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public GNSS_Sample getDefaultInstanceForType() { + @java.lang.Override + public Traj.WiFiAPData getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface WiFi_SampleOrBuilder extends - // @@protoc_insertion_point(interface_extends:WiFi_Sample) + public interface BleDataOrBuilder extends + // @@protoc_insertion_point(interface_extends:BleData) com.google.protobuf.MessageOrBuilder { /** - * optional int64 relative_timestamp = 1; + * string mac_address = 1; + * @return The macAddress. */ - long getRelativeTimestamp(); + java.lang.String getMacAddress(); + /** + * string mac_address = 1; + * @return The bytes for macAddress. + */ + com.google.protobuf.ByteString + getMacAddressBytes(); + + /** + * string name = 2; + * @return The name. + */ + java.lang.String getName(); + /** + * string name = 2; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); /** - * repeated .Mac_Scan mac_scans = 2; + * int32 tx_power_level = 3; + * @return The txPowerLevel. */ - java.util.List - getMacScansList(); + int getTxPowerLevel(); + /** - * repeated .Mac_Scan mac_scans = 2; + * int32 advertise_flags = 4; + * @return The advertiseFlags. */ - Mac_Scan getMacScans(int index); + int getAdvertiseFlags(); + /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @return A list containing the serviceUuids. */ - int getMacScansCount(); + java.util.List + getServiceUuidsList(); /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @return The count of serviceUuids. */ - java.util.List - getMacScansOrBuilderList(); + int getServiceUuidsCount(); /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @param index The index of the element to return. + * @return The serviceUuids at the given index. */ - Mac_ScanOrBuilder getMacScansOrBuilder( - int index); + java.lang.String getServiceUuids(int index); + /** + * repeated string service_uuids = 5; + * @param index The index of the value to return. + * @return The bytes of the serviceUuids at the given index. + */ + com.google.protobuf.ByteString + getServiceUuidsBytes(int index); + + /** + * bytes manufacturer_data = 6; + * @return The manufacturerData. + */ + com.google.protobuf.ByteString getManufacturerData(); } /** - * Protobuf type {@code WiFi_Sample} + * Protobuf type {@code BleData} */ - public static final class WiFi_Sample extends + public static final class BleData extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:WiFi_Sample) - WiFi_SampleOrBuilder { - // Use WiFi_Sample.newBuilder() to construct. - private WiFi_Sample(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // @@protoc_insertion_point(message_implements:BleData) + BleDataOrBuilder { + private static final long serialVersionUID = 0L; + // Use BleData.newBuilder() to construct. + private BleData(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private WiFi_Sample() { - relativeTimestamp_ = 0L; - macScans_ = java.util.Collections.emptyList(); + private BleData() { + macAddress_ = ""; + name_ = ""; + serviceUuids_ = com.google.protobuf.LazyStringArrayList.EMPTY; + manufacturerData_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new BleData(); } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } - private WiFi_Sample( + private BleData( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -9522,98 +18182,225 @@ private WiFi_Sample( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + macAddress_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + name_ = s; + break; + } + case 24: { + + txPowerLevel_ = input.readInt32(); + break; + } + case 32: { + + advertiseFlags_ = input.readInt32(); + break; + } + case 42: { + java.lang.String s = input.readStringRequireUtf8(); + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + serviceUuids_ = new com.google.protobuf.LazyStringArrayList(); + mutable_bitField0_ |= 0x00000001; } + serviceUuids_.add(s); break; } - case 8: { + case 50: { - relativeTimestamp_ = input.readInt64(); + manufacturerData_ = input.readBytes(); break; } - case 18: { - if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) { - macScans_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000002; + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; } - macScans_.add( - input.readMessage(Mac_Scan.parser(), extensionRegistry)); break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { - if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) { - macScans_ = java.util.Collections.unmodifiableList(macScans_); + if (((mutable_bitField0_ & 0x00000001) != 0)) { + serviceUuids_ = serviceUuids_.getUnmodifiableView(); } + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_WiFi_Sample_descriptor; + return Traj.internal_static_BleData_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_WiFi_Sample_fieldAccessorTable + return Traj.internal_static_BleData_fieldAccessorTable .ensureFieldAccessorsInitialized( - WiFi_Sample.class, Builder.class); + Traj.BleData.class, Traj.BleData.Builder.class); } - private int bitField0_; - public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; - private long relativeTimestamp_; + public static final int MAC_ADDRESS_FIELD_NUMBER = 1; + private volatile java.lang.Object macAddress_; /** - * optional int64 relative_timestamp = 1; + * string mac_address = 1; + * @return The macAddress. */ - public long getRelativeTimestamp() { - return relativeTimestamp_; + @java.lang.Override + public java.lang.String getMacAddress() { + java.lang.Object ref = macAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + macAddress_ = s; + return s; + } + } + /** + * string mac_address = 1; + * @return The bytes for macAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMacAddressBytes() { + java.lang.Object ref = macAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + macAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NAME_FIELD_NUMBER = 2; + private volatile java.lang.Object name_; + /** + * string name = 2; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * string name = 2; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } - public static final int MAC_SCANS_FIELD_NUMBER = 2; - private java.util.List macScans_; + public static final int TX_POWER_LEVEL_FIELD_NUMBER = 3; + private int txPowerLevel_; /** - * repeated .Mac_Scan mac_scans = 2; + * int32 tx_power_level = 3; + * @return The txPowerLevel. */ - public java.util.List getMacScansList() { - return macScans_; + @java.lang.Override + public int getTxPowerLevel() { + return txPowerLevel_; } + + public static final int ADVERTISE_FLAGS_FIELD_NUMBER = 4; + private int advertiseFlags_; /** - * repeated .Mac_Scan mac_scans = 2; + * int32 advertise_flags = 4; + * @return The advertiseFlags. */ - public java.util.List - getMacScansOrBuilderList() { - return macScans_; + @java.lang.Override + public int getAdvertiseFlags() { + return advertiseFlags_; } + + public static final int SERVICE_UUIDS_FIELD_NUMBER = 5; + private com.google.protobuf.LazyStringList serviceUuids_; /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @return A list containing the serviceUuids. */ - public int getMacScansCount() { - return macScans_.size(); + public com.google.protobuf.ProtocolStringList + getServiceUuidsList() { + return serviceUuids_; } /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @return The count of serviceUuids. */ - public Mac_Scan getMacScans(int index) { - return macScans_.get(index); + public int getServiceUuidsCount() { + return serviceUuids_.size(); } /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @param index The index of the element to return. + * @return The serviceUuids at the given index. */ - public Mac_ScanOrBuilder getMacScansOrBuilder( - int index) { - return macScans_.get(index); + public java.lang.String getServiceUuids(int index) { + return serviceUuids_.get(index); + } + /** + * repeated string service_uuids = 5; + * @param index The index of the value to return. + * @return The bytes of the serviceUuids at the given index. + */ + public com.google.protobuf.ByteString + getServiceUuidsBytes(int index) { + return serviceUuids_.getByteString(index); + } + + public static final int MANUFACTURER_DATA_FIELD_NUMBER = 6; + private com.google.protobuf.ByteString manufacturerData_; + /** + * bytes manufacturer_data = 6; + * @return The manufacturerData. + */ + @java.lang.Override + public com.google.protobuf.ByteString getManufacturerData() { + return manufacturerData_; } private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -9623,123 +18410,182 @@ public final boolean isInitialized() { return true; } + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (relativeTimestamp_ != 0L) { - output.writeInt64(1, relativeTimestamp_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(macAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, macAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); + } + if (txPowerLevel_ != 0) { + output.writeInt32(3, txPowerLevel_); } - for (int i = 0; i < macScans_.size(); i++) { - output.writeMessage(2, macScans_.get(i)); + if (advertiseFlags_ != 0) { + output.writeInt32(4, advertiseFlags_); } + for (int i = 0; i < serviceUuids_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, serviceUuids_.getRaw(i)); + } + if (!manufacturerData_.isEmpty()) { + output.writeBytes(6, manufacturerData_); + } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; - if (relativeTimestamp_ != 0L) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(macAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, macAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); + } + if (txPowerLevel_ != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1, relativeTimestamp_); + .computeInt32Size(3, txPowerLevel_); + } + if (advertiseFlags_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(4, advertiseFlags_); } - for (int i = 0; i < macScans_.size(); i++) { + { + int dataSize = 0; + for (int i = 0; i < serviceUuids_.size(); i++) { + dataSize += computeStringSizeNoTag(serviceUuids_.getRaw(i)); + } + size += dataSize; + size += 1 * getServiceUuidsList().size(); + } + if (!manufacturerData_.isEmpty()) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, macScans_.get(i)); + .computeBytesSize(6, manufacturerData_); } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof WiFi_Sample)) { + if (!(obj instanceof Traj.BleData)) { return super.equals(obj); } - WiFi_Sample other = (WiFi_Sample) obj; - - boolean result = true; - result = result && (getRelativeTimestamp() - == other.getRelativeTimestamp()); - result = result && getMacScansList() - .equals(other.getMacScansList()); - return result; + Traj.BleData other = (Traj.BleData) obj; + + if (!getMacAddress() + .equals(other.getMacAddress())) return false; + if (!getName() + .equals(other.getName())) return false; + if (getTxPowerLevel() + != other.getTxPowerLevel()) return false; + if (getAdvertiseFlags() + != other.getAdvertiseFlags()) return false; + if (!getServiceUuidsList() + .equals(other.getServiceUuidsList())) return false; + if (!getManufacturerData() + .equals(other.getManufacturerData())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); - hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getRelativeTimestamp()); - if (getMacScansCount() > 0) { - hash = (37 * hash) + MAC_SCANS_FIELD_NUMBER; - hash = (53 * hash) + getMacScansList().hashCode(); - } + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MAC_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getMacAddress().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + TX_POWER_LEVEL_FIELD_NUMBER; + hash = (53 * hash) + getTxPowerLevel(); + hash = (37 * hash) + ADVERTISE_FLAGS_FIELD_NUMBER; + hash = (53 * hash) + getAdvertiseFlags(); + if (getServiceUuidsCount() > 0) { + hash = (37 * hash) + SERVICE_UUIDS_FIELD_NUMBER; + hash = (53 * hash) + getServiceUuidsList().hashCode(); + } + hash = (37 * hash) + MANUFACTURER_DATA_FIELD_NUMBER; + hash = (53 * hash) + getManufacturerData().hashCode(); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static WiFi_Sample parseFrom( + public static Traj.BleData parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.BleData parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.BleData parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static WiFi_Sample parseFrom( + public static Traj.BleData parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static WiFi_Sample parseFrom(byte[] data) + public static Traj.BleData parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static WiFi_Sample parseFrom( + public static Traj.BleData parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static WiFi_Sample parseFrom(java.io.InputStream input) + public static Traj.BleData parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static WiFi_Sample parseFrom( + public static Traj.BleData parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static WiFi_Sample parseDelimitedFrom(java.io.InputStream input) + public static Traj.BleData parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static WiFi_Sample parseDelimitedFrom( + public static Traj.BleData parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static WiFi_Sample parseFrom( + public static Traj.BleData parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static WiFi_Sample parseFrom( + public static Traj.BleData parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -9747,44 +18593,47 @@ public static WiFi_Sample parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(WiFi_Sample prototype) { + public static Builder newBuilder(Traj.BleData prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** - * Protobuf type {@code WiFi_Sample} + * Protobuf type {@code BleData} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:WiFi_Sample) - WiFi_SampleOrBuilder { + // @@protoc_insertion_point(builder_implements:BleData) + Traj.BleDataOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_WiFi_Sample_descriptor; + return Traj.internal_static_BleData_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_WiFi_Sample_fieldAccessorTable + return Traj.internal_static_BleData_fieldAccessorTable .ensureFieldAccessorsInitialized( - WiFi_Sample.class, Builder.class); + Traj.BleData.class, Traj.BleData.Builder.class); } - // Construct using Traj.WiFi_Sample.newBuilder() + // Construct using Traj.BleData.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -9797,141 +18646,155 @@ private Builder( private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { - getMacScansFieldBuilder(); } } + @java.lang.Override public Builder clear() { super.clear(); - relativeTimestamp_ = 0L; + macAddress_ = ""; + + name_ = ""; + + txPowerLevel_ = 0; + + advertiseFlags_ = 0; + + serviceUuids_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + manufacturerData_ = com.google.protobuf.ByteString.EMPTY; - if (macScansBuilder_ == null) { - macScans_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - } else { - macScansBuilder_.clear(); - } return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return Traj.internal_static_WiFi_Sample_descriptor; + return Traj.internal_static_BleData_descriptor; } - public WiFi_Sample getDefaultInstanceForType() { - return WiFi_Sample.getDefaultInstance(); + @java.lang.Override + public Traj.BleData getDefaultInstanceForType() { + return Traj.BleData.getDefaultInstance(); } - public WiFi_Sample build() { - WiFi_Sample result = buildPartial(); + @java.lang.Override + public Traj.BleData build() { + Traj.BleData result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public WiFi_Sample buildPartial() { - WiFi_Sample result = new WiFi_Sample(this); + @java.lang.Override + public Traj.BleData buildPartial() { + Traj.BleData result = new Traj.BleData(this); int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - result.relativeTimestamp_ = relativeTimestamp_; - if (macScansBuilder_ == null) { - if (((bitField0_ & 0x00000002) == 0x00000002)) { - macScans_ = java.util.Collections.unmodifiableList(macScans_); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.macScans_ = macScans_; - } else { - result.macScans_ = macScansBuilder_.build(); - } - result.bitField0_ = to_bitField0_; + result.macAddress_ = macAddress_; + result.name_ = name_; + result.txPowerLevel_ = txPowerLevel_; + result.advertiseFlags_ = advertiseFlags_; + if (((bitField0_ & 0x00000001) != 0)) { + serviceUuids_ = serviceUuids_.getUnmodifiableView(); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.serviceUuids_ = serviceUuids_; + result.manufacturerData_ = manufacturerData_; onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof WiFi_Sample) { - return mergeFrom((WiFi_Sample)other); + if (other instanceof Traj.BleData) { + return mergeFrom((Traj.BleData)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(WiFi_Sample other) { - if (other == WiFi_Sample.getDefaultInstance()) return this; - if (other.getRelativeTimestamp() != 0L) { - setRelativeTimestamp(other.getRelativeTimestamp()); + public Builder mergeFrom(Traj.BleData other) { + if (other == Traj.BleData.getDefaultInstance()) return this; + if (!other.getMacAddress().isEmpty()) { + macAddress_ = other.macAddress_; + onChanged(); } - if (macScansBuilder_ == null) { - if (!other.macScans_.isEmpty()) { - if (macScans_.isEmpty()) { - macScans_ = other.macScans_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureMacScansIsMutable(); - macScans_.addAll(other.macScans_); - } - onChanged(); - } - } else { - if (!other.macScans_.isEmpty()) { - if (macScansBuilder_.isEmpty()) { - macScansBuilder_.dispose(); - macScansBuilder_ = null; - macScans_ = other.macScans_; - bitField0_ = (bitField0_ & ~0x00000002); - macScansBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getMacScansFieldBuilder() : null; - } else { - macScansBuilder_.addAllMessages(other.macScans_); - } + if (!other.getName().isEmpty()) { + name_ = other.name_; + onChanged(); + } + if (other.getTxPowerLevel() != 0) { + setTxPowerLevel(other.getTxPowerLevel()); + } + if (other.getAdvertiseFlags() != 0) { + setAdvertiseFlags(other.getAdvertiseFlags()); + } + if (!other.serviceUuids_.isEmpty()) { + if (serviceUuids_.isEmpty()) { + serviceUuids_ = other.serviceUuids_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureServiceUuidsIsMutable(); + serviceUuids_.addAll(other.serviceUuids_); } + onChanged(); + } + if (other.getManufacturerData() != com.google.protobuf.ByteString.EMPTY) { + setManufacturerData(other.getManufacturerData()); } + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } + @java.lang.Override public final boolean isInitialized() { return true; } + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - WiFi_Sample parsedMessage = null; + Traj.BleData parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (WiFi_Sample) e.getUnfinishedMessage(); + parsedMessage = (Traj.BleData) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -9942,377 +18805,479 @@ public Builder mergeFrom( } private int bitField0_; - private long relativeTimestamp_ ; + private java.lang.Object macAddress_ = ""; /** - * optional int64 relative_timestamp = 1; + * string mac_address = 1; + * @return The macAddress. */ - public long getRelativeTimestamp() { - return relativeTimestamp_; + public java.lang.String getMacAddress() { + java.lang.Object ref = macAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + macAddress_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** - * optional int64 relative_timestamp = 1; + * string mac_address = 1; + * @return The bytes for macAddress. */ - public Builder setRelativeTimestamp(long value) { - - relativeTimestamp_ = value; + public com.google.protobuf.ByteString + getMacAddressBytes() { + java.lang.Object ref = macAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + macAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string mac_address = 1; + * @param value The macAddress to set. + * @return This builder for chaining. + */ + public Builder setMacAddress( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + macAddress_ = value; onChanged(); return this; } /** - * optional int64 relative_timestamp = 1; + * string mac_address = 1; + * @return This builder for chaining. */ - public Builder clearRelativeTimestamp() { + public Builder clearMacAddress() { - relativeTimestamp_ = 0L; + macAddress_ = getDefaultInstance().getMacAddress(); onChanged(); return this; } - - private java.util.List macScans_ = - java.util.Collections.emptyList(); - private void ensureMacScansIsMutable() { - if (!((bitField0_ & 0x00000002) == 0x00000002)) { - macScans_ = new java.util.ArrayList(macScans_); - bitField0_ |= 0x00000002; - } + /** + * string mac_address = 1; + * @param value The bytes for macAddress to set. + * @return This builder for chaining. + */ + public Builder setMacAddressBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + macAddress_ = value; + onChanged(); + return this; } - private com.google.protobuf.RepeatedFieldBuilderV3< - Mac_Scan, Mac_Scan.Builder, Mac_ScanOrBuilder> macScansBuilder_; - + private java.lang.Object name_ = ""; /** - * repeated .Mac_Scan mac_scans = 2; + * string name = 2; + * @return The name. */ - public java.util.List getMacScansList() { - if (macScansBuilder_ == null) { - return java.util.Collections.unmodifiableList(macScans_); + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; } else { - return macScansBuilder_.getMessageList(); + return (java.lang.String) ref; } } /** - * repeated .Mac_Scan mac_scans = 2; + * string name = 2; + * @return The bytes for name. */ - public int getMacScansCount() { - if (macScansBuilder_ == null) { - return macScans_.size(); + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; } else { - return macScansBuilder_.getCount(); + return (com.google.protobuf.ByteString) ref; } } /** - * repeated .Mac_Scan mac_scans = 2; + * string name = 2; + * @param value The name to set. + * @return This builder for chaining. */ - public Mac_Scan getMacScans(int index) { - if (macScansBuilder_ == null) { - return macScans_.get(index); - } else { - return macScansBuilder_.getMessage(index); - } + public Builder setName( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + name_ = value; + onChanged(); + return this; } /** - * repeated .Mac_Scan mac_scans = 2; + * string name = 2; + * @return This builder for chaining. */ - public Builder setMacScans( - int index, Mac_Scan value) { - if (macScansBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMacScansIsMutable(); - macScans_.set(index, value); - onChanged(); - } else { - macScansBuilder_.setMessage(index, value); - } + public Builder clearName() { + + name_ = getDefaultInstance().getName(); + onChanged(); return this; } /** - * repeated .Mac_Scan mac_scans = 2; + * string name = 2; + * @param value The bytes for name to set. + * @return This builder for chaining. */ - public Builder setMacScans( - int index, Mac_Scan.Builder builderForValue) { - if (macScansBuilder_ == null) { - ensureMacScansIsMutable(); - macScans_.set(index, builderForValue.build()); - onChanged(); - } else { - macScansBuilder_.setMessage(index, builderForValue.build()); - } + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + name_ = value; + onChanged(); return this; } + + private int txPowerLevel_ ; /** - * repeated .Mac_Scan mac_scans = 2; + * int32 tx_power_level = 3; + * @return The txPowerLevel. */ - public Builder addMacScans(Mac_Scan value) { - if (macScansBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMacScansIsMutable(); - macScans_.add(value); - onChanged(); - } else { - macScansBuilder_.addMessage(value); - } - return this; + @java.lang.Override + public int getTxPowerLevel() { + return txPowerLevel_; } /** - * repeated .Mac_Scan mac_scans = 2; + * int32 tx_power_level = 3; + * @param value The txPowerLevel to set. + * @return This builder for chaining. */ - public Builder addMacScans( - int index, Mac_Scan value) { - if (macScansBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureMacScansIsMutable(); - macScans_.add(index, value); - onChanged(); - } else { - macScansBuilder_.addMessage(index, value); - } + public Builder setTxPowerLevel(int value) { + + txPowerLevel_ = value; + onChanged(); return this; } /** - * repeated .Mac_Scan mac_scans = 2; + * int32 tx_power_level = 3; + * @return This builder for chaining. */ - public Builder addMacScans( - Mac_Scan.Builder builderForValue) { - if (macScansBuilder_ == null) { - ensureMacScansIsMutable(); - macScans_.add(builderForValue.build()); - onChanged(); - } else { - macScansBuilder_.addMessage(builderForValue.build()); - } + public Builder clearTxPowerLevel() { + + txPowerLevel_ = 0; + onChanged(); return this; } + + private int advertiseFlags_ ; /** - * repeated .Mac_Scan mac_scans = 2; + * int32 advertise_flags = 4; + * @return The advertiseFlags. */ - public Builder addMacScans( - int index, Mac_Scan.Builder builderForValue) { - if (macScansBuilder_ == null) { - ensureMacScansIsMutable(); - macScans_.add(index, builderForValue.build()); - onChanged(); - } else { - macScansBuilder_.addMessage(index, builderForValue.build()); - } - return this; + @java.lang.Override + public int getAdvertiseFlags() { + return advertiseFlags_; } /** - * repeated .Mac_Scan mac_scans = 2; + * int32 advertise_flags = 4; + * @param value The advertiseFlags to set. + * @return This builder for chaining. */ - public Builder addAllMacScans( - Iterable values) { - if (macScansBuilder_ == null) { - ensureMacScansIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, macScans_); - onChanged(); - } else { - macScansBuilder_.addAllMessages(values); - } + public Builder setAdvertiseFlags(int value) { + + advertiseFlags_ = value; + onChanged(); return this; } /** - * repeated .Mac_Scan mac_scans = 2; + * int32 advertise_flags = 4; + * @return This builder for chaining. */ - public Builder clearMacScans() { - if (macScansBuilder_ == null) { - macScans_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - } else { - macScansBuilder_.clear(); - } + public Builder clearAdvertiseFlags() { + + advertiseFlags_ = 0; + onChanged(); return this; } + + private com.google.protobuf.LazyStringList serviceUuids_ = com.google.protobuf.LazyStringArrayList.EMPTY; + private void ensureServiceUuidsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + serviceUuids_ = new com.google.protobuf.LazyStringArrayList(serviceUuids_); + bitField0_ |= 0x00000001; + } + } /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @return A list containing the serviceUuids. */ - public Builder removeMacScans(int index) { - if (macScansBuilder_ == null) { - ensureMacScansIsMutable(); - macScans_.remove(index); - onChanged(); - } else { - macScansBuilder_.remove(index); - } + public com.google.protobuf.ProtocolStringList + getServiceUuidsList() { + return serviceUuids_.getUnmodifiableView(); + } + /** + * repeated string service_uuids = 5; + * @return The count of serviceUuids. + */ + public int getServiceUuidsCount() { + return serviceUuids_.size(); + } + /** + * repeated string service_uuids = 5; + * @param index The index of the element to return. + * @return The serviceUuids at the given index. + */ + public java.lang.String getServiceUuids(int index) { + return serviceUuids_.get(index); + } + /** + * repeated string service_uuids = 5; + * @param index The index of the value to return. + * @return The bytes of the serviceUuids at the given index. + */ + public com.google.protobuf.ByteString + getServiceUuidsBytes(int index) { + return serviceUuids_.getByteString(index); + } + /** + * repeated string service_uuids = 5; + * @param index The index to set the value at. + * @param value The serviceUuids to set. + * @return This builder for chaining. + */ + public Builder setServiceUuids( + int index, java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceUuidsIsMutable(); + serviceUuids_.set(index, value); + onChanged(); return this; } /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @param value The serviceUuids to add. + * @return This builder for chaining. */ - public Mac_Scan.Builder getMacScansBuilder( - int index) { - return getMacScansFieldBuilder().getBuilder(index); + public Builder addServiceUuids( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + ensureServiceUuidsIsMutable(); + serviceUuids_.add(value); + onChanged(); + return this; } /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @param values The serviceUuids to add. + * @return This builder for chaining. */ - public Mac_ScanOrBuilder getMacScansOrBuilder( - int index) { - if (macScansBuilder_ == null) { - return macScans_.get(index); } else { - return macScansBuilder_.getMessageOrBuilder(index); - } + public Builder addAllServiceUuids( + java.lang.Iterable values) { + ensureServiceUuidsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, serviceUuids_); + onChanged(); + return this; } /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @return This builder for chaining. */ - public java.util.List - getMacScansOrBuilderList() { - if (macScansBuilder_ != null) { - return macScansBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(macScans_); - } + public Builder clearServiceUuids() { + serviceUuids_ = com.google.protobuf.LazyStringArrayList.EMPTY; + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; } /** - * repeated .Mac_Scan mac_scans = 2; + * repeated string service_uuids = 5; + * @param value The bytes of the serviceUuids to add. + * @return This builder for chaining. */ - public Mac_Scan.Builder addMacScansBuilder() { - return getMacScansFieldBuilder().addBuilder( - Mac_Scan.getDefaultInstance()); + public Builder addServiceUuidsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + ensureServiceUuidsIsMutable(); + serviceUuids_.add(value); + onChanged(); + return this; } + + private com.google.protobuf.ByteString manufacturerData_ = com.google.protobuf.ByteString.EMPTY; /** - * repeated .Mac_Scan mac_scans = 2; + * bytes manufacturer_data = 6; + * @return The manufacturerData. */ - public Mac_Scan.Builder addMacScansBuilder( - int index) { - return getMacScansFieldBuilder().addBuilder( - index, Mac_Scan.getDefaultInstance()); + @java.lang.Override + public com.google.protobuf.ByteString getManufacturerData() { + return manufacturerData_; } /** - * repeated .Mac_Scan mac_scans = 2; + * bytes manufacturer_data = 6; + * @param value The manufacturerData to set. + * @return This builder for chaining. */ - public java.util.List - getMacScansBuilderList() { - return getMacScansFieldBuilder().getBuilderList(); + public Builder setManufacturerData(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + manufacturerData_ = value; + onChanged(); + return this; } - private com.google.protobuf.RepeatedFieldBuilderV3< - Mac_Scan, Mac_Scan.Builder, Mac_ScanOrBuilder> - getMacScansFieldBuilder() { - if (macScansBuilder_ == null) { - macScansBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - Mac_Scan, Mac_Scan.Builder, Mac_ScanOrBuilder>( - macScans_, - ((bitField0_ & 0x00000002) == 0x00000002), - getParentForChildren(), - isClean()); - macScans_ = null; - } - return macScansBuilder_; + /** + * bytes manufacturer_data = 6; + * @return This builder for chaining. + */ + public Builder clearManufacturerData() { + + manufacturerData_ = getDefaultInstance().getManufacturerData(); + onChanged(); + return this; } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.setUnknownFields(unknownFields); } + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:WiFi_Sample) + // @@protoc_insertion_point(builder_scope:BleData) } - // @@protoc_insertion_point(class_scope:WiFi_Sample) - private static final WiFi_Sample DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:BleData) + private static final Traj.BleData DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new WiFi_Sample(); + DEFAULT_INSTANCE = new Traj.BleData(); } - public static WiFi_Sample getDefaultInstance() { + public static Traj.BleData getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public WiFi_Sample parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BleData parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new WiFi_Sample(input, extensionRegistry); + return new BleData(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public WiFi_Sample getDefaultInstanceForType() { + @java.lang.Override + public Traj.BleData getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface Mac_ScanOrBuilder extends - // @@protoc_insertion_point(interface_extends:Mac_Scan) + public interface Vector3OrBuilder extends + // @@protoc_insertion_point(interface_extends:Vector3) com.google.protobuf.MessageOrBuilder { /** - * optional int64 relative_timestamp = 1; + * float x = 1; + * @return The x. */ - long getRelativeTimestamp(); + float getX(); /** - *
-     * Integer encoding of the hex mac address
-     * e.g. 207394925843984
-     * 
- * - * optional int64 mac = 2; + * float y = 2; + * @return The y. */ - long getMac(); + float getY(); /** - *
-     * rssi integer in dBm.
-     * typically between -120 and -10
-     * 
- * - * optional int32 rssi = 3; + * float z = 3; + * @return The z. */ - int getRssi(); + float getZ(); } /** - * Protobuf type {@code Mac_Scan} + *
+   * --- Common Types ---
+   * 
+ * + * Protobuf type {@code Vector3} */ - public static final class Mac_Scan extends + public static final class Vector3 extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Mac_Scan) - Mac_ScanOrBuilder { - // Use Mac_Scan.newBuilder() to construct. - private Mac_Scan(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // @@protoc_insertion_point(message_implements:Vector3) + Vector3OrBuilder { + private static final long serialVersionUID = 0L; + // Use Vector3.newBuilder() to construct. + private Vector3(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private Mac_Scan() { - relativeTimestamp_ = 0L; - mac_ = 0L; - rssi_ = 0; + private Vector3() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Vector3(); } - @Override + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } - private Mac_Scan( + private Vector3( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); - int mutable_bitField0_ = 0; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -10321,88 +19286,90 @@ private Mac_Scan( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; - } + case 13: { + + x_ = input.readFloat(); break; } - case 8: { + case 21: { - relativeTimestamp_ = input.readInt64(); + y_ = input.readFloat(); break; } - case 16: { + case 29: { - mac_ = input.readInt64(); + z_ = input.readFloat(); break; } - case 24: { - - rssi_ = input.readInt32(); + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Mac_Scan_descriptor; + return Traj.internal_static_Vector3_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Mac_Scan_fieldAccessorTable + return Traj.internal_static_Vector3_fieldAccessorTable .ensureFieldAccessorsInitialized( - Mac_Scan.class, Builder.class); + Traj.Vector3.class, Traj.Vector3.Builder.class); } - public static final int RELATIVE_TIMESTAMP_FIELD_NUMBER = 1; - private long relativeTimestamp_; + public static final int X_FIELD_NUMBER = 1; + private float x_; /** - * optional int64 relative_timestamp = 1; + * float x = 1; + * @return The x. */ - public long getRelativeTimestamp() { - return relativeTimestamp_; + @java.lang.Override + public float getX() { + return x_; } - public static final int MAC_FIELD_NUMBER = 2; - private long mac_; + public static final int Y_FIELD_NUMBER = 2; + private float y_; /** - *
-     * Integer encoding of the hex mac address
-     * e.g. 207394925843984
-     * 
- * - * optional int64 mac = 2; + * float y = 2; + * @return The y. */ - public long getMac() { - return mac_; + @java.lang.Override + public float getY() { + return y_; } - - public static final int RSSI_FIELD_NUMBER = 3; - private int rssi_; - /** - *
-     * rssi integer in dBm.
-     * typically between -120 and -10
-     * 
- * - * optional int32 rssi = 3; + + public static final int Z_FIELD_NUMBER = 3; + private float z_; + /** + * float z = 3; + * @return The z. */ - public int getRssi() { - return rssi_; + @java.lang.Override + public float getZ() { + return z_; } private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -10412,133 +19379,151 @@ public final boolean isInitialized() { return true; } + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (relativeTimestamp_ != 0L) { - output.writeInt64(1, relativeTimestamp_); + if (java.lang.Float.floatToRawIntBits(x_) != 0) { + output.writeFloat(1, x_); } - if (mac_ != 0L) { - output.writeInt64(2, mac_); + if (java.lang.Float.floatToRawIntBits(y_) != 0) { + output.writeFloat(2, y_); } - if (rssi_ != 0) { - output.writeInt32(3, rssi_); + if (java.lang.Float.floatToRawIntBits(z_) != 0) { + output.writeFloat(3, z_); } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; - if (relativeTimestamp_ != 0L) { + if (java.lang.Float.floatToRawIntBits(x_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1, relativeTimestamp_); + .computeFloatSize(1, x_); } - if (mac_ != 0L) { + if (java.lang.Float.floatToRawIntBits(y_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt64Size(2, mac_); + .computeFloatSize(2, y_); } - if (rssi_ != 0) { + if (java.lang.Float.floatToRawIntBits(z_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(3, rssi_); + .computeFloatSize(3, z_); } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof Mac_Scan)) { + if (!(obj instanceof Traj.Vector3)) { return super.equals(obj); } - Mac_Scan other = (Mac_Scan) obj; - - boolean result = true; - result = result && (getRelativeTimestamp() - == other.getRelativeTimestamp()); - result = result && (getMac() - == other.getMac()); - result = result && (getRssi() - == other.getRssi()); - return result; + Traj.Vector3 other = (Traj.Vector3) obj; + + if (java.lang.Float.floatToIntBits(getX()) + != java.lang.Float.floatToIntBits( + other.getX())) return false; + if (java.lang.Float.floatToIntBits(getY()) + != java.lang.Float.floatToIntBits( + other.getY())) return false; + if (java.lang.Float.floatToIntBits(getZ()) + != java.lang.Float.floatToIntBits( + other.getZ())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); - hash = (37 * hash) + RELATIVE_TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getRelativeTimestamp()); - hash = (37 * hash) + MAC_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getMac()); - hash = (37 * hash) + RSSI_FIELD_NUMBER; - hash = (53 * hash) + getRssi(); + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + X_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getX()); + hash = (37 * hash) + Y_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getY()); + hash = (37 * hash) + Z_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getZ()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static Mac_Scan parseFrom( + public static Traj.Vector3 parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.Vector3 parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.Vector3 parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Mac_Scan parseFrom( + public static Traj.Vector3 parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Mac_Scan parseFrom(byte[] data) + public static Traj.Vector3 parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Mac_Scan parseFrom( + public static Traj.Vector3 parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Mac_Scan parseFrom(java.io.InputStream input) + public static Traj.Vector3 parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Mac_Scan parseFrom( + public static Traj.Vector3 parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static Mac_Scan parseDelimitedFrom(java.io.InputStream input) + public static Traj.Vector3 parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static Mac_Scan parseDelimitedFrom( + public static Traj.Vector3 parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static Mac_Scan parseFrom( + public static Traj.Vector3 parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Mac_Scan parseFrom( + public static Traj.Vector3 parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -10546,44 +19531,51 @@ public static Mac_Scan parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(Mac_Scan prototype) { + public static Builder newBuilder(Traj.Vector3 prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** - * Protobuf type {@code Mac_Scan} + *
+     * --- Common Types ---
+     * 
+ * + * Protobuf type {@code Vector3} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Mac_Scan) - Mac_ScanOrBuilder { + // @@protoc_insertion_point(builder_implements:Vector3) + Traj.Vector3OrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Mac_Scan_descriptor; + return Traj.internal_static_Vector3_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Mac_Scan_fieldAccessorTable + return Traj.internal_static_Vector3_fieldAccessorTable .ensureFieldAccessorsInitialized( - Mac_Scan.class, Builder.class); + Traj.Vector3.class, Traj.Vector3.Builder.class); } - // Construct using Traj.Mac_Scan.newBuilder() + // Construct using Traj.Vector3.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -10598,106 +19590,121 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } + @java.lang.Override public Builder clear() { super.clear(); - relativeTimestamp_ = 0L; + x_ = 0F; - mac_ = 0L; + y_ = 0F; - rssi_ = 0; + z_ = 0F; return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return Traj.internal_static_Mac_Scan_descriptor; + return Traj.internal_static_Vector3_descriptor; } - public Mac_Scan getDefaultInstanceForType() { - return Mac_Scan.getDefaultInstance(); + @java.lang.Override + public Traj.Vector3 getDefaultInstanceForType() { + return Traj.Vector3.getDefaultInstance(); } - public Mac_Scan build() { - Mac_Scan result = buildPartial(); + @java.lang.Override + public Traj.Vector3 build() { + Traj.Vector3 result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public Mac_Scan buildPartial() { - Mac_Scan result = new Mac_Scan(this); - result.relativeTimestamp_ = relativeTimestamp_; - result.mac_ = mac_; - result.rssi_ = rssi_; + @java.lang.Override + public Traj.Vector3 buildPartial() { + Traj.Vector3 result = new Traj.Vector3(this); + result.x_ = x_; + result.y_ = y_; + result.z_ = z_; onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof Mac_Scan) { - return mergeFrom((Mac_Scan)other); + if (other instanceof Traj.Vector3) { + return mergeFrom((Traj.Vector3)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(Mac_Scan other) { - if (other == Mac_Scan.getDefaultInstance()) return this; - if (other.getRelativeTimestamp() != 0L) { - setRelativeTimestamp(other.getRelativeTimestamp()); + public Builder mergeFrom(Traj.Vector3 other) { + if (other == Traj.Vector3.getDefaultInstance()) return this; + if (other.getX() != 0F) { + setX(other.getX()); } - if (other.getMac() != 0L) { - setMac(other.getMac()); + if (other.getY() != 0F) { + setY(other.getY()); } - if (other.getRssi() != 0) { - setRssi(other.getRssi()); + if (other.getZ() != 0F) { + setZ(other.getZ()); } + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } + @java.lang.Override public final boolean isInitialized() { return true; } + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - Mac_Scan parsedMessage = null; + Traj.Vector3 parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (Mac_Scan) e.getUnfinishedMessage(); + parsedMessage = (Traj.Vector3) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -10707,231 +19714,216 @@ public Builder mergeFrom( return this; } - private long relativeTimestamp_ ; + private float x_ ; /** - * optional int64 relative_timestamp = 1; + * float x = 1; + * @return The x. */ - public long getRelativeTimestamp() { - return relativeTimestamp_; + @java.lang.Override + public float getX() { + return x_; } /** - * optional int64 relative_timestamp = 1; + * float x = 1; + * @param value The x to set. + * @return This builder for chaining. */ - public Builder setRelativeTimestamp(long value) { + public Builder setX(float value) { - relativeTimestamp_ = value; + x_ = value; onChanged(); return this; } /** - * optional int64 relative_timestamp = 1; + * float x = 1; + * @return This builder for chaining. */ - public Builder clearRelativeTimestamp() { + public Builder clearX() { - relativeTimestamp_ = 0L; + x_ = 0F; onChanged(); return this; } - private long mac_ ; + private float y_ ; /** - *
-       * Integer encoding of the hex mac address
-       * e.g. 207394925843984
-       * 
- * - * optional int64 mac = 2; + * float y = 2; + * @return The y. */ - public long getMac() { - return mac_; + @java.lang.Override + public float getY() { + return y_; } /** - *
-       * Integer encoding of the hex mac address
-       * e.g. 207394925843984
-       * 
- * - * optional int64 mac = 2; + * float y = 2; + * @param value The y to set. + * @return This builder for chaining. */ - public Builder setMac(long value) { + public Builder setY(float value) { - mac_ = value; + y_ = value; onChanged(); return this; } /** - *
-       * Integer encoding of the hex mac address
-       * e.g. 207394925843984
-       * 
- * - * optional int64 mac = 2; + * float y = 2; + * @return This builder for chaining. */ - public Builder clearMac() { + public Builder clearY() { - mac_ = 0L; + y_ = 0F; onChanged(); return this; } - private int rssi_ ; + private float z_ ; /** - *
-       * rssi integer in dBm.
-       * typically between -120 and -10
-       * 
- * - * optional int32 rssi = 3; + * float z = 3; + * @return The z. */ - public int getRssi() { - return rssi_; + @java.lang.Override + public float getZ() { + return z_; } /** - *
-       * rssi integer in dBm.
-       * typically between -120 and -10
-       * 
- * - * optional int32 rssi = 3; + * float z = 3; + * @param value The z to set. + * @return This builder for chaining. */ - public Builder setRssi(int value) { + public Builder setZ(float value) { - rssi_ = value; + z_ = value; onChanged(); return this; } /** - *
-       * rssi integer in dBm.
-       * typically between -120 and -10
-       * 
- * - * optional int32 rssi = 3; + * float z = 3; + * @return This builder for chaining. */ - public Builder clearRssi() { + public Builder clearZ() { - rssi_ = 0; + z_ = 0F; onChanged(); return this; } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.setUnknownFields(unknownFields); } + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:Mac_Scan) + // @@protoc_insertion_point(builder_scope:Vector3) } - // @@protoc_insertion_point(class_scope:Mac_Scan) - private static final Mac_Scan DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:Vector3) + private static final Traj.Vector3 DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new Mac_Scan(); + DEFAULT_INSTANCE = new Traj.Vector3(); } - public static Mac_Scan getDefaultInstance() { + public static Traj.Vector3 getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public Mac_Scan parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Vector3 parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Mac_Scan(input, extensionRegistry); + return new Vector3(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public Mac_Scan getDefaultInstanceForType() { + @java.lang.Override + public Traj.Vector3 getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface AP_DataOrBuilder extends - // @@protoc_insertion_point(interface_extends:AP_Data) + public interface QuaternionOrBuilder extends + // @@protoc_insertion_point(interface_extends:Quaternion) com.google.protobuf.MessageOrBuilder { /** - *
-     * Integer encoding of the hex mac address
-     * e.g. 207394925843984
-     * 
- * - * optional int64 mac = 1; + * float x = 1; + * @return The x. */ - long getMac(); + float getX(); /** - *
-     * E.g. 'Eduroam' or 'Starbucks_free_wifi'
-     * 
- * - * optional string ssid = 2; + * float y = 2; + * @return The y. */ - String getSsid(); + float getY(); + /** - *
-     * E.g. 'Eduroam' or 'Starbucks_free_wifi'
-     * 
- * - * optional string ssid = 2; + * float z = 3; + * @return The z. */ - com.google.protobuf.ByteString - getSsidBytes(); + float getZ(); /** - *
-     * Typically 2.4GHz or 5GHz
-     * 
- * - * optional int64 frequency = 3; + * float w = 4; + * @return The w. */ - long getFrequency(); + float getW(); } /** - * Protobuf type {@code AP_Data} + * Protobuf type {@code Quaternion} */ - public static final class AP_Data extends + public static final class Quaternion extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:AP_Data) - AP_DataOrBuilder { - // Use AP_Data.newBuilder() to construct. - private AP_Data(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // @@protoc_insertion_point(message_implements:Quaternion) + QuaternionOrBuilder { + private static final long serialVersionUID = 0L; + // Use Quaternion.newBuilder() to construct. + private Quaternion(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private AP_Data() { - mac_ = 0L; - ssid_ = ""; - frequency_ = 0L; + private Quaternion() { } - @Override + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Quaternion(); + } + + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } - private AP_Data( + private Quaternion( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); - int mutable_bitField0_ = 0; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -10940,121 +19932,106 @@ private AP_Data( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; - } + case 13: { + + x_ = input.readFloat(); break; } - case 8: { + case 21: { - mac_ = input.readInt64(); + y_ = input.readFloat(); break; } - case 18: { - String s = input.readStringRequireUtf8(); + case 29: { - ssid_ = s; + z_ = input.readFloat(); break; } - case 24: { + case 37: { - frequency_ = input.readInt64(); + w_ = input.readFloat(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } break; } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_AP_Data_descriptor; + return Traj.internal_static_Quaternion_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_AP_Data_fieldAccessorTable + return Traj.internal_static_Quaternion_fieldAccessorTable .ensureFieldAccessorsInitialized( - AP_Data.class, Builder.class); + Traj.Quaternion.class, Traj.Quaternion.Builder.class); } - public static final int MAC_FIELD_NUMBER = 1; - private long mac_; + public static final int X_FIELD_NUMBER = 1; + private float x_; /** - *
-     * Integer encoding of the hex mac address
-     * e.g. 207394925843984
-     * 
- * - * optional int64 mac = 1; + * float x = 1; + * @return The x. */ - public long getMac() { - return mac_; + @java.lang.Override + public float getX() { + return x_; } - public static final int SSID_FIELD_NUMBER = 2; - private volatile Object ssid_; + public static final int Y_FIELD_NUMBER = 2; + private float y_; /** - *
-     * E.g. 'Eduroam' or 'Starbucks_free_wifi'
-     * 
- * - * optional string ssid = 2; + * float y = 2; + * @return The y. */ - public String getSsid() { - Object ref = ssid_; - if (ref instanceof String) { - return (String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); - ssid_ = s; - return s; - } + @java.lang.Override + public float getY() { + return y_; } + + public static final int Z_FIELD_NUMBER = 3; + private float z_; /** - *
-     * E.g. 'Eduroam' or 'Starbucks_free_wifi'
-     * 
- * - * optional string ssid = 2; + * float z = 3; + * @return The z. */ - public com.google.protobuf.ByteString - getSsidBytes() { - Object ref = ssid_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); - ssid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + @java.lang.Override + public float getZ() { + return z_; } - public static final int FREQUENCY_FIELD_NUMBER = 3; - private long frequency_; + public static final int W_FIELD_NUMBER = 4; + private float w_; /** - *
-     * Typically 2.4GHz or 5GHz
-     * 
- * - * optional int64 frequency = 3; + * float w = 4; + * @return The w. */ - public long getFrequency() { - return frequency_; + @java.lang.Override + public float getW() { + return w_; } private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -11064,132 +20041,164 @@ public final boolean isInitialized() { return true; } + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (mac_ != 0L) { - output.writeInt64(1, mac_); + if (java.lang.Float.floatToRawIntBits(x_) != 0) { + output.writeFloat(1, x_); } - if (!getSsidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ssid_); + if (java.lang.Float.floatToRawIntBits(y_) != 0) { + output.writeFloat(2, y_); } - if (frequency_ != 0L) { - output.writeInt64(3, frequency_); + if (java.lang.Float.floatToRawIntBits(z_) != 0) { + output.writeFloat(3, z_); } + if (java.lang.Float.floatToRawIntBits(w_) != 0) { + output.writeFloat(4, w_); + } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; - if (mac_ != 0L) { + if (java.lang.Float.floatToRawIntBits(x_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt64Size(1, mac_); + .computeFloatSize(1, x_); } - if (!getSsidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, ssid_); + if (java.lang.Float.floatToRawIntBits(y_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(2, y_); } - if (frequency_ != 0L) { + if (java.lang.Float.floatToRawIntBits(z_) != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt64Size(3, frequency_); + .computeFloatSize(3, z_); + } + if (java.lang.Float.floatToRawIntBits(w_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(4, w_); } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof AP_Data)) { + if (!(obj instanceof Traj.Quaternion)) { return super.equals(obj); } - AP_Data other = (AP_Data) obj; - - boolean result = true; - result = result && (getMac() - == other.getMac()); - result = result && getSsid() - .equals(other.getSsid()); - result = result && (getFrequency() - == other.getFrequency()); - return result; + Traj.Quaternion other = (Traj.Quaternion) obj; + + if (java.lang.Float.floatToIntBits(getX()) + != java.lang.Float.floatToIntBits( + other.getX())) return false; + if (java.lang.Float.floatToIntBits(getY()) + != java.lang.Float.floatToIntBits( + other.getY())) return false; + if (java.lang.Float.floatToIntBits(getZ()) + != java.lang.Float.floatToIntBits( + other.getZ())) return false; + if (java.lang.Float.floatToIntBits(getW()) + != java.lang.Float.floatToIntBits( + other.getW())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; } - @Override + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); - hash = (37 * hash) + MAC_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getMac()); - hash = (37 * hash) + SSID_FIELD_NUMBER; - hash = (53 * hash) + getSsid().hashCode(); - hash = (37 * hash) + FREQUENCY_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getFrequency()); + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + X_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getX()); + hash = (37 * hash) + Y_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getY()); + hash = (37 * hash) + Z_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getZ()); + hash = (37 * hash) + W_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getW()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static AP_Data parseFrom( + public static Traj.Quaternion parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.Quaternion parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.Quaternion parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static AP_Data parseFrom( + public static Traj.Quaternion parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static AP_Data parseFrom(byte[] data) + public static Traj.Quaternion parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static AP_Data parseFrom( + public static Traj.Quaternion parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static AP_Data parseFrom(java.io.InputStream input) + public static Traj.Quaternion parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static AP_Data parseFrom( + public static Traj.Quaternion parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static AP_Data parseDelimitedFrom(java.io.InputStream input) + public static Traj.Quaternion parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static AP_Data parseDelimitedFrom( + public static Traj.Quaternion parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static AP_Data parseFrom( + public static Traj.Quaternion parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static AP_Data parseFrom( + public static Traj.Quaternion parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -11197,44 +20206,47 @@ public static AP_Data parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(AP_Data prototype) { + public static Builder newBuilder(Traj.Quaternion prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** - * Protobuf type {@code AP_Data} + * Protobuf type {@code Quaternion} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:AP_Data) - AP_DataOrBuilder { + // @@protoc_insertion_point(builder_implements:Quaternion) + Traj.QuaternionOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_AP_Data_descriptor; + return Traj.internal_static_Quaternion_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_AP_Data_fieldAccessorTable + return Traj.internal_static_Quaternion_fieldAccessorTable .ensureFieldAccessorsInitialized( - AP_Data.class, Builder.class); + Traj.Quaternion.class, Traj.Quaternion.Builder.class); } - // Construct using Traj.AP_Data.newBuilder() + // Construct using Traj.Quaternion.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -11249,107 +20261,127 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } + @java.lang.Override public Builder clear() { super.clear(); - mac_ = 0L; + x_ = 0F; - ssid_ = ""; + y_ = 0F; - frequency_ = 0L; + z_ = 0F; + + w_ = 0F; return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return Traj.internal_static_AP_Data_descriptor; + return Traj.internal_static_Quaternion_descriptor; } - public AP_Data getDefaultInstanceForType() { - return AP_Data.getDefaultInstance(); + @java.lang.Override + public Traj.Quaternion getDefaultInstanceForType() { + return Traj.Quaternion.getDefaultInstance(); } - public AP_Data build() { - AP_Data result = buildPartial(); + @java.lang.Override + public Traj.Quaternion build() { + Traj.Quaternion result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public AP_Data buildPartial() { - AP_Data result = new AP_Data(this); - result.mac_ = mac_; - result.ssid_ = ssid_; - result.frequency_ = frequency_; + @java.lang.Override + public Traj.Quaternion buildPartial() { + Traj.Quaternion result = new Traj.Quaternion(this); + result.x_ = x_; + result.y_ = y_; + result.z_ = z_; + result.w_ = w_; onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof AP_Data) { - return mergeFrom((AP_Data)other); + if (other instanceof Traj.Quaternion) { + return mergeFrom((Traj.Quaternion)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(AP_Data other) { - if (other == AP_Data.getDefaultInstance()) return this; - if (other.getMac() != 0L) { - setMac(other.getMac()); + public Builder mergeFrom(Traj.Quaternion other) { + if (other == Traj.Quaternion.getDefaultInstance()) return this; + if (other.getX() != 0F) { + setX(other.getX()); } - if (!other.getSsid().isEmpty()) { - ssid_ = other.ssid_; - onChanged(); + if (other.getY() != 0F) { + setY(other.getY()); } - if (other.getFrequency() != 0L) { - setFrequency(other.getFrequency()); + if (other.getZ() != 0F) { + setZ(other.getZ()); } + if (other.getW() != 0F) { + setW(other.getW()); + } + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } + @java.lang.Override public final boolean isInitialized() { return true; } + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - AP_Data parsedMessage = null; + Traj.Quaternion parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (AP_Data) e.getUnfinishedMessage(); + parsedMessage = (Traj.Quaternion) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -11359,297 +20391,285 @@ public Builder mergeFrom( return this; } - private long mac_ ; + private float x_ ; /** - *
-       * Integer encoding of the hex mac address
-       * e.g. 207394925843984
-       * 
- * - * optional int64 mac = 1; + * float x = 1; + * @return The x. */ - public long getMac() { - return mac_; + @java.lang.Override + public float getX() { + return x_; } /** - *
-       * Integer encoding of the hex mac address
-       * e.g. 207394925843984
-       * 
- * - * optional int64 mac = 1; + * float x = 1; + * @param value The x to set. + * @return This builder for chaining. */ - public Builder setMac(long value) { + public Builder setX(float value) { - mac_ = value; + x_ = value; onChanged(); return this; } /** - *
-       * Integer encoding of the hex mac address
-       * e.g. 207394925843984
-       * 
- * - * optional int64 mac = 1; + * float x = 1; + * @return This builder for chaining. */ - public Builder clearMac() { + public Builder clearX() { - mac_ = 0L; + x_ = 0F; onChanged(); return this; } - private Object ssid_ = ""; + private float y_ ; /** - *
-       * E.g. 'Eduroam' or 'Starbucks_free_wifi'
-       * 
- * - * optional string ssid = 2; + * float y = 2; + * @return The y. */ - public String getSsid() { - Object ref = ssid_; - if (!(ref instanceof String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); - ssid_ = s; - return s; - } else { - return (String) ref; - } + @java.lang.Override + public float getY() { + return y_; } /** - *
-       * E.g. 'Eduroam' or 'Starbucks_free_wifi'
-       * 
- * - * optional string ssid = 2; + * float y = 2; + * @param value The y to set. + * @return This builder for chaining. */ - public com.google.protobuf.ByteString - getSsidBytes() { - Object ref = ssid_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); - ssid_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public Builder setY(float value) { + + y_ = value; + onChanged(); + return this; } /** - *
-       * E.g. 'Eduroam' or 'Starbucks_free_wifi'
-       * 
- * - * optional string ssid = 2; + * float y = 2; + * @return This builder for chaining. */ - public Builder setSsid( - String value) { - if (value == null) { - throw new NullPointerException(); - } - - ssid_ = value; + public Builder clearY() { + + y_ = 0F; onChanged(); return this; } + + private float z_ ; /** - *
-       * E.g. 'Eduroam' or 'Starbucks_free_wifi'
-       * 
- * - * optional string ssid = 2; + * float z = 3; + * @return The z. */ - public Builder clearSsid() { + @java.lang.Override + public float getZ() { + return z_; + } + /** + * float z = 3; + * @param value The z to set. + * @return This builder for chaining. + */ + public Builder setZ(float value) { - ssid_ = getDefaultInstance().getSsid(); + z_ = value; onChanged(); return this; } /** - *
-       * E.g. 'Eduroam' or 'Starbucks_free_wifi'
-       * 
- * - * optional string ssid = 2; + * float z = 3; + * @return This builder for chaining. */ - public Builder setSsidBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); + public Builder clearZ() { - ssid_ = value; + z_ = 0F; onChanged(); return this; } - private long frequency_ ; + private float w_ ; /** - *
-       * Typically 2.4GHz or 5GHz
-       * 
- * - * optional int64 frequency = 3; + * float w = 4; + * @return The w. */ - public long getFrequency() { - return frequency_; + @java.lang.Override + public float getW() { + return w_; } /** - *
-       * Typically 2.4GHz or 5GHz
-       * 
- * - * optional int64 frequency = 3; + * float w = 4; + * @param value The w to set. + * @return This builder for chaining. */ - public Builder setFrequency(long value) { + public Builder setW(float value) { - frequency_ = value; + w_ = value; onChanged(); return this; } /** - *
-       * Typically 2.4GHz or 5GHz
-       * 
- * - * optional int64 frequency = 3; + * float w = 4; + * @return This builder for chaining. */ - public Builder clearFrequency() { + public Builder clearW() { - frequency_ = 0L; + w_ = 0F; onChanged(); return this; } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.setUnknownFields(unknownFields); } + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:AP_Data) + // @@protoc_insertion_point(builder_scope:Quaternion) } - // @@protoc_insertion_point(class_scope:AP_Data) - private static final AP_Data DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:Quaternion) + private static final Traj.Quaternion DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new AP_Data(); + DEFAULT_INSTANCE = new Traj.Quaternion(); } - public static AP_Data getDefaultInstance() { + public static Traj.Quaternion getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public AP_Data parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Quaternion parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new AP_Data(input, extensionRegistry); + return new Quaternion(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public AP_Data getDefaultInstanceForType() { + @java.lang.Override + public Traj.Quaternion getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface Sensor_InfoOrBuilder extends - // @@protoc_insertion_point(interface_extends:Sensor_Info) + public interface SensorInfoOrBuilder extends + // @@protoc_insertion_point(interface_extends:SensorInfo) com.google.protobuf.MessageOrBuilder { /** - * optional string name = 1; + * string name = 1; + * @return The name. */ - String getName(); + java.lang.String getName(); /** - * optional string name = 1; + * string name = 1; + * @return The bytes for name. */ com.google.protobuf.ByteString getNameBytes(); /** - * optional string vendor = 2; + * string vendor = 2; + * @return The vendor. */ - String getVendor(); + java.lang.String getVendor(); /** - * optional string vendor = 2; + * string vendor = 2; + * @return The bytes for vendor. */ com.google.protobuf.ByteString getVendorBytes(); /** - * optional float resolution = 3; + * float resolution = 3; + * @return The resolution. */ float getResolution(); /** - * optional float power = 4; + * float power = 4; + * @return The power. */ float getPower(); /** - * optional int32 version = 5; + * int32 version = 5; + * @return The version. */ int getVersion(); /** - * optional int32 type = 6; + * int32 type = 6; + * @return The type. */ int getType(); + + /** + * float max_range = 7; + * @return The maxRange. + */ + float getMaxRange(); + + /** + * float frequency = 8; + * @return The frequency. + */ + float getFrequency(); } /** - * Protobuf type {@code Sensor_Info} + * Protobuf type {@code SensorInfo} */ - public static final class Sensor_Info extends + public static final class SensorInfo extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:Sensor_Info) - Sensor_InfoOrBuilder { - // Use Sensor_Info.newBuilder() to construct. - private Sensor_Info(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // @@protoc_insertion_point(message_implements:SensorInfo) + SensorInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use SensorInfo.newBuilder() to construct. + private SensorInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private Sensor_Info() { + private SensorInfo() { name_ = ""; vendor_ = ""; - resolution_ = 0F; - power_ = 0F; - version_ = 0; - type_ = 0; } - @Override + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new SensorInfo(); + } + + @java.lang.Override public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return com.google.protobuf.UnknownFieldSet.getDefaultInstance(); + return this.unknownFields; } - private Sensor_Info( + private SensorInfo( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { this(); - int mutable_bitField0_ = 0; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); try { boolean done = false; while (!done) { @@ -11658,20 +20678,14 @@ private Sensor_Info( case 0: done = true; break; - default: { - if (!input.skipField(tag)) { - done = true; - } - break; - } case 10: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); name_ = s; break; } case 18: { - String s = input.readStringRequireUtf8(); + java.lang.String s = input.readStringRequireUtf8(); vendor_ = s; break; @@ -11696,56 +20710,81 @@ private Sensor_Info( type_ = input.readInt32(); break; } + case 61: { + + maxRange_ = input.readFloat(); + break; + } + case 69: { + + frequency_ = input.readFloat(); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException( e).setUnfinishedMessage(this); } finally { + this.unknownFields = unknownFields.build(); makeExtensionsImmutable(); } } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Sensor_Info_descriptor; + return Traj.internal_static_SensorInfo_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Sensor_Info_fieldAccessorTable + return Traj.internal_static_SensorInfo_fieldAccessorTable .ensureFieldAccessorsInitialized( - Sensor_Info.class, Builder.class); + Traj.SensorInfo.class, Traj.SensorInfo.Builder.class); } public static final int NAME_FIELD_NUMBER = 1; - private volatile Object name_; + private volatile java.lang.Object name_; /** - * optional string name = 1; + * string name = 1; + * @return The name. */ - public String getName() { - Object ref = name_; - if (ref instanceof String) { - return (String) ref; + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); name_ = s; return s; } } /** - * optional string name = 1; + * string name = 1; + * @return The bytes for name. */ + @java.lang.Override public com.google.protobuf.ByteString getNameBytes() { - Object ref = name_; - if (ref instanceof String) { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); name_ = b; return b; } else { @@ -11754,32 +20793,36 @@ public String getName() { } public static final int VENDOR_FIELD_NUMBER = 2; - private volatile Object vendor_; + private volatile java.lang.Object vendor_; /** - * optional string vendor = 2; + * string vendor = 2; + * @return The vendor. */ - public String getVendor() { - Object ref = vendor_; - if (ref instanceof String) { - return (String) ref; + @java.lang.Override + public java.lang.String getVendor() { + java.lang.Object ref = vendor_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); vendor_ = s; return s; } } /** - * optional string vendor = 2; + * string vendor = 2; + * @return The bytes for vendor. */ + @java.lang.Override public com.google.protobuf.ByteString getVendorBytes() { - Object ref = vendor_; - if (ref instanceof String) { + java.lang.Object ref = vendor_; + if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); vendor_ = b; return b; } else { @@ -11790,8 +20833,10 @@ public String getVendor() { public static final int RESOLUTION_FIELD_NUMBER = 3; private float resolution_; /** - * optional float resolution = 3; + * float resolution = 3; + * @return The resolution. */ + @java.lang.Override public float getResolution() { return resolution_; } @@ -11799,8 +20844,10 @@ public float getResolution() { public static final int POWER_FIELD_NUMBER = 4; private float power_; /** - * optional float power = 4; + * float power = 4; + * @return The power. */ + @java.lang.Override public float getPower() { return power_; } @@ -11808,8 +20855,10 @@ public float getPower() { public static final int VERSION_FIELD_NUMBER = 5; private int version_; /** - * optional int32 version = 5; + * int32 version = 5; + * @return The version. */ + @java.lang.Override public int getVersion() { return version_; } @@ -11817,13 +20866,38 @@ public int getVersion() { public static final int TYPE_FIELD_NUMBER = 6; private int type_; /** - * optional int32 type = 6; + * int32 type = 6; + * @return The type. */ + @java.lang.Override public int getType() { return type_; } + public static final int MAX_RANGE_FIELD_NUMBER = 7; + private float maxRange_; + /** + * float max_range = 7; + * @return The maxRange. + */ + @java.lang.Override + public float getMaxRange() { + return maxRange_; + } + + public static final int FREQUENCY_FIELD_NUMBER = 8; + private float frequency_; + /** + * float frequency = 8; + * @return The frequency. + */ + @java.lang.Override + public float getFrequency() { + return frequency_; + } + private byte memoizedIsInitialized = -1; + @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; @@ -11833,18 +20907,19 @@ public final boolean isInitialized() { return true; } + @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } - if (!getVendorBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(vendor_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, vendor_); } - if (resolution_ != 0F) { + if (java.lang.Float.floatToRawIntBits(resolution_) != 0) { output.writeFloat(3, resolution_); } - if (power_ != 0F) { + if (java.lang.Float.floatToRawIntBits(power_) != 0) { output.writeFloat(4, power_); } if (version_ != 0) { @@ -11853,24 +20928,32 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (type_ != 0) { output.writeInt32(6, type_); } + if (java.lang.Float.floatToRawIntBits(maxRange_) != 0) { + output.writeFloat(7, maxRange_); + } + if (java.lang.Float.floatToRawIntBits(frequency_) != 0) { + output.writeFloat(8, frequency_); + } + unknownFields.writeTo(output); } + @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } - if (!getVendorBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(vendor_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, vendor_); } - if (resolution_ != 0F) { + if (java.lang.Float.floatToRawIntBits(resolution_) != 0) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(3, resolution_); } - if (power_ != 0F) { + if (java.lang.Float.floatToRawIntBits(power_) != 0) { size += com.google.protobuf.CodedOutputStream .computeFloatSize(4, power_); } @@ -11882,119 +20965,148 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeInt32Size(6, type_); } + if (java.lang.Float.floatToRawIntBits(maxRange_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(7, maxRange_); + } + if (java.lang.Float.floatToRawIntBits(frequency_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(8, frequency_); + } + size += unknownFields.getSerializedSize(); memoizedSize = size; return size; } - private static final long serialVersionUID = 0L; - @Override - public boolean equals(final Object obj) { + @java.lang.Override + public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof Sensor_Info)) { + if (!(obj instanceof Traj.SensorInfo)) { return super.equals(obj); } - Sensor_Info other = (Sensor_Info) obj; - - boolean result = true; - result = result && getName() - .equals(other.getName()); - result = result && getVendor() - .equals(other.getVendor()); - result = result && ( - Float.floatToIntBits(getResolution()) - == Float.floatToIntBits( - other.getResolution())); - result = result && ( - Float.floatToIntBits(getPower()) - == Float.floatToIntBits( - other.getPower())); - result = result && (getVersion() - == other.getVersion()); - result = result && (getType() - == other.getType()); - return result; - } - - @Override + Traj.SensorInfo other = (Traj.SensorInfo) obj; + + if (!getName() + .equals(other.getName())) return false; + if (!getVendor() + .equals(other.getVendor())) return false; + if (java.lang.Float.floatToIntBits(getResolution()) + != java.lang.Float.floatToIntBits( + other.getResolution())) return false; + if (java.lang.Float.floatToIntBits(getPower()) + != java.lang.Float.floatToIntBits( + other.getPower())) return false; + if (getVersion() + != other.getVersion()) return false; + if (getType() + != other.getType()) return false; + if (java.lang.Float.floatToIntBits(getMaxRange()) + != java.lang.Float.floatToIntBits( + other.getMaxRange())) return false; + if (java.lang.Float.floatToIntBits(getFrequency()) + != java.lang.Float.floatToIntBits( + other.getFrequency())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); + hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); hash = (37 * hash) + VENDOR_FIELD_NUMBER; hash = (53 * hash) + getVendor().hashCode(); hash = (37 * hash) + RESOLUTION_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( + hash = (53 * hash) + java.lang.Float.floatToIntBits( getResolution()); hash = (37 * hash) + POWER_FIELD_NUMBER; - hash = (53 * hash) + Float.floatToIntBits( + hash = (53 * hash) + java.lang.Float.floatToIntBits( getPower()); hash = (37 * hash) + VERSION_FIELD_NUMBER; hash = (53 * hash) + getVersion(); hash = (37 * hash) + TYPE_FIELD_NUMBER; hash = (53 * hash) + getType(); + hash = (37 * hash) + MAX_RANGE_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getMaxRange()); + hash = (37 * hash) + FREQUENCY_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getFrequency()); hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; } - public static Sensor_Info parseFrom( + public static Traj.SensorInfo parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static Traj.SensorInfo parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static Traj.SensorInfo parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Sensor_Info parseFrom( + public static Traj.SensorInfo parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Sensor_Info parseFrom(byte[] data) + public static Traj.SensorInfo parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static Sensor_Info parseFrom( + public static Traj.SensorInfo parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static Sensor_Info parseFrom(java.io.InputStream input) + public static Traj.SensorInfo parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Sensor_Info parseFrom( + public static Traj.SensorInfo parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } - public static Sensor_Info parseDelimitedFrom(java.io.InputStream input) + public static Traj.SensorInfo parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static Sensor_Info parseDelimitedFrom( + public static Traj.SensorInfo parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static Sensor_Info parseFrom( + public static Traj.SensorInfo parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static Sensor_Info parseFrom( + public static Traj.SensorInfo parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -12002,44 +21114,47 @@ public static Sensor_Info parseFrom( .parseWithIOException(PARSER, input, extensionRegistry); } + @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(Sensor_Info prototype) { + public static Builder newBuilder(Traj.SensorInfo prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } + @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - @Override + @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** - * Protobuf type {@code Sensor_Info} + * Protobuf type {@code SensorInfo} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:Sensor_Info) - Sensor_InfoOrBuilder { + // @@protoc_insertion_point(builder_implements:SensorInfo) + Traj.SensorInfoOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return Traj.internal_static_Sensor_Info_descriptor; + return Traj.internal_static_SensorInfo_descriptor; } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return Traj.internal_static_Sensor_Info_fieldAccessorTable + return Traj.internal_static_SensorInfo_fieldAccessorTable .ensureFieldAccessorsInitialized( - Sensor_Info.class, Builder.class); + Traj.SensorInfo.class, Traj.SensorInfo.Builder.class); } - // Construct using Traj.Sensor_Info.newBuilder() + // Construct using Traj.SensorInfo.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -12054,6 +21169,7 @@ private void maybeForceBuilderInitialization() { .alwaysUseFieldBuilders) { } } + @java.lang.Override public Builder clear() { super.clear(); name_ = ""; @@ -12068,75 +21184,92 @@ public Builder clear() { type_ = 0; + maxRange_ = 0F; + + frequency_ = 0F; + return this; } + @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return Traj.internal_static_Sensor_Info_descriptor; + return Traj.internal_static_SensorInfo_descriptor; } - public Sensor_Info getDefaultInstanceForType() { - return Sensor_Info.getDefaultInstance(); + @java.lang.Override + public Traj.SensorInfo getDefaultInstanceForType() { + return Traj.SensorInfo.getDefaultInstance(); } - public Sensor_Info build() { - Sensor_Info result = buildPartial(); + @java.lang.Override + public Traj.SensorInfo build() { + Traj.SensorInfo result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } - public Sensor_Info buildPartial() { - Sensor_Info result = new Sensor_Info(this); + @java.lang.Override + public Traj.SensorInfo buildPartial() { + Traj.SensorInfo result = new Traj.SensorInfo(this); result.name_ = name_; result.vendor_ = vendor_; result.resolution_ = resolution_; result.power_ = power_; result.version_ = version_; result.type_ = type_; + result.maxRange_ = maxRange_; + result.frequency_ = frequency_; onBuilt(); return result; } + @java.lang.Override public Builder clone() { - return (Builder) super.clone(); + return super.clone(); } + @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.setField(field, value); + java.lang.Object value) { + return super.setField(field, value); } + @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { - return (Builder) super.clearField(field); + return super.clearField(field); } + @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return (Builder) super.clearOneof(oneof); + return super.clearOneof(oneof); } + @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - int index, Object value) { - return (Builder) super.setRepeatedField(field, index, value); + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); } + @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, - Object value) { - return (Builder) super.addRepeatedField(field, value); + java.lang.Object value) { + return super.addRepeatedField(field, value); } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof Sensor_Info) { - return mergeFrom((Sensor_Info)other); + if (other instanceof Traj.SensorInfo) { + return mergeFrom((Traj.SensorInfo)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(Sensor_Info other) { - if (other == Sensor_Info.getDefaultInstance()) return this; + public Builder mergeFrom(Traj.SensorInfo other) { + if (other == Traj.SensorInfo.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; onChanged(); @@ -12157,23 +21290,32 @@ public Builder mergeFrom(Sensor_Info other) { if (other.getType() != 0) { setType(other.getType()); } + if (other.getMaxRange() != 0F) { + setMaxRange(other.getMaxRange()); + } + if (other.getFrequency() != 0F) { + setFrequency(other.getFrequency()); + } + this.mergeUnknownFields(other.unknownFields); onChanged(); return this; } + @java.lang.Override public final boolean isInitialized() { return true; } + @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - Sensor_Info parsedMessage = null; + Traj.SensorInfo parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (Sensor_Info) e.getUnfinishedMessage(); + parsedMessage = (Traj.SensorInfo) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -12183,32 +21325,34 @@ public Builder mergeFrom( return this; } - private Object name_ = ""; + private java.lang.Object name_ = ""; /** - * optional string name = 1; + * string name = 1; + * @return The name. */ - public String getName() { - Object ref = name_; - if (!(ref instanceof String)) { + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); name_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** - * optional string name = 1; + * string name = 1; + * @return The bytes for name. */ public com.google.protobuf.ByteString getNameBytes() { - Object ref = name_; + java.lang.Object ref = name_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); name_ = b; return b; } else { @@ -12216,10 +21360,12 @@ public String getName() { } } /** - * optional string name = 1; + * string name = 1; + * @param value The name to set. + * @return This builder for chaining. */ public Builder setName( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } @@ -12229,7 +21375,8 @@ public Builder setName( return this; } /** - * optional string name = 1; + * string name = 1; + * @return This builder for chaining. */ public Builder clearName() { @@ -12238,7 +21385,9 @@ public Builder clearName() { return this; } /** - * optional string name = 1; + * string name = 1; + * @param value The bytes for name to set. + * @return This builder for chaining. */ public Builder setNameBytes( com.google.protobuf.ByteString value) { @@ -12252,32 +21401,34 @@ public Builder setNameBytes( return this; } - private Object vendor_ = ""; + private java.lang.Object vendor_ = ""; /** - * optional string vendor = 2; + * string vendor = 2; + * @return The vendor. */ - public String getVendor() { - Object ref = vendor_; - if (!(ref instanceof String)) { + public java.lang.String getVendor() { + java.lang.Object ref = vendor_; + if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - String s = bs.toStringUtf8(); + java.lang.String s = bs.toStringUtf8(); vendor_ = s; return s; } else { - return (String) ref; + return (java.lang.String) ref; } } /** - * optional string vendor = 2; + * string vendor = 2; + * @return The bytes for vendor. */ public com.google.protobuf.ByteString getVendorBytes() { - Object ref = vendor_; + java.lang.Object ref = vendor_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( - (String) ref); + (java.lang.String) ref); vendor_ = b; return b; } else { @@ -12285,10 +21436,12 @@ public String getVendor() { } } /** - * optional string vendor = 2; + * string vendor = 2; + * @param value The vendor to set. + * @return This builder for chaining. */ public Builder setVendor( - String value) { + java.lang.String value) { if (value == null) { throw new NullPointerException(); } @@ -12298,7 +21451,8 @@ public Builder setVendor( return this; } /** - * optional string vendor = 2; + * string vendor = 2; + * @return This builder for chaining. */ public Builder clearVendor() { @@ -12307,7 +21461,9 @@ public Builder clearVendor() { return this; } /** - * optional string vendor = 2; + * string vendor = 2; + * @param value The bytes for vendor to set. + * @return This builder for chaining. */ public Builder setVendorBytes( com.google.protobuf.ByteString value) { @@ -12323,13 +21479,17 @@ public Builder setVendorBytes( private float resolution_ ; /** - * optional float resolution = 3; + * float resolution = 3; + * @return The resolution. */ + @java.lang.Override public float getResolution() { return resolution_; } /** - * optional float resolution = 3; + * float resolution = 3; + * @param value The resolution to set. + * @return This builder for chaining. */ public Builder setResolution(float value) { @@ -12338,7 +21498,8 @@ public Builder setResolution(float value) { return this; } /** - * optional float resolution = 3; + * float resolution = 3; + * @return This builder for chaining. */ public Builder clearResolution() { @@ -12349,13 +21510,17 @@ public Builder clearResolution() { private float power_ ; /** - * optional float power = 4; + * float power = 4; + * @return The power. */ + @java.lang.Override public float getPower() { return power_; } /** - * optional float power = 4; + * float power = 4; + * @param value The power to set. + * @return This builder for chaining. */ public Builder setPower(float value) { @@ -12364,7 +21529,8 @@ public Builder setPower(float value) { return this; } /** - * optional float power = 4; + * float power = 4; + * @return This builder for chaining. */ public Builder clearPower() { @@ -12375,13 +21541,17 @@ public Builder clearPower() { private int version_ ; /** - * optional int32 version = 5; + * int32 version = 5; + * @return The version. */ + @java.lang.Override public int getVersion() { return version_; } /** - * optional int32 version = 5; + * int32 version = 5; + * @param value The version to set. + * @return This builder for chaining. */ public Builder setVersion(int value) { @@ -12390,7 +21560,8 @@ public Builder setVersion(int value) { return this; } /** - * optional int32 version = 5; + * int32 version = 5; + * @return This builder for chaining. */ public Builder clearVersion() { @@ -12401,13 +21572,17 @@ public Builder clearVersion() { private int type_ ; /** - * optional int32 type = 6; + * int32 type = 6; + * @return The type. */ + @java.lang.Override public int getType() { return type_; } /** - * optional int32 type = 6; + * int32 type = 6; + * @param value The type to set. + * @return This builder for chaining. */ public Builder setType(int value) { @@ -12416,7 +21591,8 @@ public Builder setType(int value) { return this; } /** - * optional int32 type = 6; + * int32 type = 6; + * @return This builder for chaining. */ public Builder clearType() { @@ -12424,50 +21600,116 @@ public Builder clearType() { onChanged(); return this; } + + private float maxRange_ ; + /** + * float max_range = 7; + * @return The maxRange. + */ + @java.lang.Override + public float getMaxRange() { + return maxRange_; + } + /** + * float max_range = 7; + * @param value The maxRange to set. + * @return This builder for chaining. + */ + public Builder setMaxRange(float value) { + + maxRange_ = value; + onChanged(); + return this; + } + /** + * float max_range = 7; + * @return This builder for chaining. + */ + public Builder clearMaxRange() { + + maxRange_ = 0F; + onChanged(); + return this; + } + + private float frequency_ ; + /** + * float frequency = 8; + * @return The frequency. + */ + @java.lang.Override + public float getFrequency() { + return frequency_; + } + /** + * float frequency = 8; + * @param value The frequency to set. + * @return This builder for chaining. + */ + public Builder setFrequency(float value) { + + frequency_ = value; + onChanged(); + return this; + } + /** + * float frequency = 8; + * @return This builder for chaining. + */ + public Builder clearFrequency() { + + frequency_ = 0F; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.setUnknownFields(unknownFields); } + @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { - return this; + return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:Sensor_Info) + // @@protoc_insertion_point(builder_scope:SensorInfo) } - // @@protoc_insertion_point(class_scope:Sensor_Info) - private static final Sensor_Info DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:SensorInfo) + private static final Traj.SensorInfo DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new Sensor_Info(); + DEFAULT_INSTANCE = new Traj.SensorInfo(); } - public static Sensor_Info getDefaultInstance() { + public static Traj.SensorInfo getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public Sensor_Info parsePartialFrom( + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SensorInfo parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Sensor_Info(input, extensionRegistry); + return new SensorInfo(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } - @Override - public com.google.protobuf.Parser getParserForType() { + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { return PARSER; } - public Sensor_Info getDefaultInstanceForType() { + @java.lang.Override + public Traj.SensorInfo getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -12479,55 +21721,85 @@ public Sensor_Info getDefaultInstanceForType() { com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_Trajectory_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Pdr_Sample_descriptor; + internal_static_RelativePosition_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_RelativePosition_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_IMUReading_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_IMUReading_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_MagnetometerReading_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_MagnetometerReading_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_BarometerReading_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_BarometerReading_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_LightReading_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_LightReading_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_ProximityReading_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_ProximityReading_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_GNSSPosition_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Pdr_Sample_fieldAccessorTable; + internal_static_GNSSPosition_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Motion_Sample_descriptor; + internal_static_GNSSReading_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Motion_Sample_fieldAccessorTable; + internal_static_GNSSReading_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Position_Sample_descriptor; + internal_static_Fingerprint_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Position_Sample_fieldAccessorTable; + internal_static_Fingerprint_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Pressure_Sample_descriptor; + internal_static_RFScan_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Pressure_Sample_fieldAccessorTable; + internal_static_RFScan_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Light_Sample_descriptor; + internal_static_WiFiRTTReading_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Light_Sample_fieldAccessorTable; + internal_static_WiFiRTTReading_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_GNSS_Sample_descriptor; + internal_static_WiFiAPData_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_GNSS_Sample_fieldAccessorTable; + internal_static_WiFiAPData_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_WiFi_Sample_descriptor; + internal_static_BleData_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_WiFi_Sample_fieldAccessorTable; + internal_static_BleData_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Mac_Scan_descriptor; + internal_static_Vector3_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Mac_Scan_fieldAccessorTable; + internal_static_Vector3_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_AP_Data_descriptor; + internal_static_Quaternion_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_AP_Data_fieldAccessorTable; + internal_static_Quaternion_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor - internal_static_Sensor_Info_descriptor; + internal_static_SensorInfo_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_Sensor_Info_fieldAccessorTable; + internal_static_SensorInfo_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -12536,128 +21808,177 @@ public Sensor_Info getDefaultInstanceForType() { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - String[] descriptorData = { - "\n#Cloud/app/src/main/proto/traj.proto\"\337\004" + - "\n\nTrajectory\022\027\n\017android_version\030\001 \001(\t\022 \n" + - "\010imu_data\030\002 \003(\0132\016.Motion_Sample\022\035\n\010pdr_d" + - "ata\030\003 \003(\0132\013.Pdr_Sample\022\'\n\rposition_data\030" + - "\004 \003(\0132\020.Position_Sample\022\'\n\rpressure_data" + - "\030\005 \003(\0132\020.Pressure_Sample\022!\n\nlight_data\030\006" + - " \003(\0132\r.Light_Sample\022\037\n\tgnss_data\030\007 \003(\0132\014" + - ".GNSS_Sample\022\037\n\twifi_data\030\010 \003(\0132\014.WiFi_S" + - "ample\022\032\n\010aps_data\030\t \003(\0132\010.AP_Data\022\027\n\017sta" + - "rt_timestamp\030\n \001(\003\022\027\n\017data_identifier\030\013 ", - "\001(\t\022(\n\022accelerometer_info\030\014 \001(\0132\014.Sensor" + - "_Info\022$\n\016gyroscope_info\030\r \001(\0132\014.Sensor_I" + - "nfo\022*\n\024rotation_vector_info\030\016 \001(\0132\014.Sens" + - "or_Info\022\'\n\021magnetometer_info\030\017 \001(\0132\014.Sen" + - "sor_Info\022$\n\016barometer_info\030\020 \001(\0132\014.Senso" + - "r_Info\022\'\n\021light_sensor_info\030\021 \001(\0132\014.Sens" + - "or_Info\">\n\nPdr_Sample\022\032\n\022relative_timest" + - "amp\030\001 \001(\003\022\t\n\001x\030\002 \001(\002\022\t\n\001y\030\003 \001(\002\"\205\002\n\rMoti" + - "on_Sample\022\032\n\022relative_timestamp\030\001 \001(\003\022\r\n" + - "\005acc_x\030\002 \001(\002\022\r\n\005acc_y\030\003 \001(\002\022\r\n\005acc_z\030\004 \001", - "(\002\022\r\n\005gyr_x\030\005 \001(\002\022\r\n\005gyr_y\030\006 \001(\002\022\r\n\005gyr_" + - "z\030\007 \001(\002\022\031\n\021rotation_vector_x\030\010 \001(\002\022\031\n\021ro" + - "tation_vector_y\030\t \001(\002\022\031\n\021rotation_vector" + - "_z\030\n \001(\002\022\031\n\021rotation_vector_w\030\013 \001(\002\022\022\n\ns" + - "tep_count\030\014 \001(\005\"Z\n\017Position_Sample\022\032\n\022re" + - "lative_timestamp\030\001 \001(\003\022\r\n\005mag_x\030\002 \001(\002\022\r\n" + - "\005mag_y\030\003 \001(\002\022\r\n\005mag_z\030\004 \001(\002\"?\n\017Pressure_" + - "Sample\022\032\n\022relative_timestamp\030\001 \001(\003\022\020\n\010pr" + - "essure\030\002 \001(\002\"9\n\014Light_Sample\022\032\n\022relative" + - "_timestamp\030\001 \001(\003\022\r\n\005light\030\002 \001(\002\"\223\001\n\013GNSS", - "_Sample\022\032\n\022relative_timestamp\030\001 \001(\003\022\020\n\010l" + - "atitude\030\002 \001(\002\022\021\n\tlongitude\030\003 \001(\002\022\020\n\010alti" + - "tude\030\004 \001(\002\022\020\n\010accuracy\030\005 \001(\002\022\r\n\005speed\030\006 " + - "\001(\002\022\020\n\010provider\030\007 \001(\t\"G\n\013WiFi_Sample\022\032\n\022" + - "relative_timestamp\030\001 \001(\003\022\034\n\tmac_scans\030\002 " + - "\003(\0132\t.Mac_Scan\"A\n\010Mac_Scan\022\032\n\022relative_t" + - "imestamp\030\001 \001(\003\022\013\n\003mac\030\002 \001(\003\022\014\n\004rssi\030\003 \001(" + - "\005\"7\n\007AP_Data\022\013\n\003mac\030\001 \001(\003\022\014\n\004ssid\030\002 \001(\t\022" + - "\021\n\tfrequency\030\003 \001(\003\"m\n\013Sensor_Info\022\014\n\004nam" + - "e\030\001 \001(\t\022\016\n\006vendor\030\002 \001(\t\022\022\n\nresolution\030\003 ", - "\001(\002\022\r\n\005power\030\004 \001(\002\022\017\n\007version\030\005 \001(\005\022\014\n\004t" + - "ype\030\006 \001(\005b\006proto3" + java.lang.String[] descriptorData = { + "\n\035app/src/main/proto/traj.proto\"\277\007\n\nTraj" + + "ectory\022\027\n\017android_version\030\001 \001(\t\022\032\n\022traje" + + "ctory_version\030\002 \001(\002\022\025\n\rtrajectory_id\030\003 \001" + + "(\t\022\035\n\010imu_data\030\004 \003(\0132\013.IMUReading\022#\n\010pdr" + + "_data\030\005 \003(\0132\021.RelativePosition\022/\n\021magnet" + + "ometer_data\030\006 \003(\0132\024.MagnetometerReading\022" + + "(\n\rpressure_data\030\007 \003(\0132\021.BarometerReadin" + + "g\022!\n\nlight_data\030\010 \003(\0132\r.LightReading\022)\n\016" + + "proximity_data\030\t \003(\0132\021.ProximityReading\022" + + "\037\n\tgnss_data\030\n \003(\0132\014.GNSSReading\022\'\n\021wifi" + + "_fingerprints\030\013 \003(\0132\014.Fingerprint\022\035\n\010aps" + + "_data\030\014 \003(\0132\013.WiFiAPData\022&\n\rwifi_rtt_dat" + + "a\030\r \003(\0132\017.WiFiRTTReading\022&\n\020ble_fingerpr" + + "ints\030\016 \003(\0132\014.Fingerprint\022\032\n\010ble_data\030\017 \003" + + "(\0132\010.BleData\022\027\n\017start_timestamp\030\020 \001(\003\022\'\n" + + "\020initial_position\030\021 \001(\0132\r.GNSSPosition\022*" + + "\n\023corrected_positions\030\022 \003(\0132\r.GNSSPositi" + + "on\022\'\n\022accelerometer_info\030\023 \001(\0132\013.SensorI" + + "nfo\022#\n\016gyroscope_info\030\024 \001(\0132\013.SensorInfo" + + "\022)\n\024rotation_vector_info\030\025 \001(\0132\013.SensorI" + + "nfo\022&\n\021magnetometer_info\030\026 \001(\0132\013.SensorI" + + "nfo\022#\n\016barometer_info\030\027 \001(\0132\013.SensorInfo" + + "\022&\n\021light_sensor_info\030\030 \001(\0132\013.SensorInfo" + + "\022#\n\016proximity_info\030\031 \001(\0132\013.SensorInfo\022\"\n" + + "\013test_points\030\032 \003(\0132\r.GNSSPosition\"D\n\020Rel" + + "ativePosition\022\032\n\022relative_timestamp\030\001 \001(" + + "\003\022\t\n\001x\030\002 \001(\002\022\t\n\001y\030\003 \001(\002\"\220\001\n\nIMUReading\022\032" + + "\n\022relative_timestamp\030\001 \001(\003\022\025\n\003acc\030\002 \001(\0132" + + "\010.Vector3\022\025\n\003gyr\030\003 \001(\0132\010.Vector3\022$\n\017rota" + + "tion_vector\030\004 \001(\0132\013.Quaternion\022\022\n\nstep_c" + + "ount\030\005 \001(\005\"H\n\023MagnetometerReading\022\032\n\022rel" + + "ative_timestamp\030\001 \001(\003\022\025\n\003mag\030\002 \001(\0132\010.Vec" + + "tor3\"@\n\020BarometerReading\022\032\n\022relative_tim" + + "estamp\030\001 \001(\003\022\020\n\010pressure\030\002 \001(\002\"9\n\014LightR" + + "eading\022\032\n\022relative_timestamp\030\001 \001(\003\022\r\n\005li" + + "ght\030\002 \001(\002\"@\n\020ProximityReading\022\032\n\022relativ" + + "e_timestamp\030\001 \001(\003\022\020\n\010distance\030\002 \001(\002\"\177\n\014G" + + "NSSPosition\022\032\n\022relative_timestamp\030\001 \001(\003\022" + + "\020\n\010latitude\030\002 \001(\001\022\021\n\tlongitude\030\003 \001(\001\022\020\n\010" + + "altitude\030\004 \001(\001\022\022\n\005floor\030\005 \001(\tH\000\210\001\001B\010\n\006_f" + + "loor\"r\n\013GNSSReading\022\037\n\010position\030\001 \001(\0132\r." + + "GNSSPosition\022\020\n\010accuracy\030\002 \001(\002\022\r\n\005speed\030" + + "\003 \001(\002\022\017\n\007bearing\030\004 \001(\002\022\020\n\010provider\030\005 \001(\t" + + "\"D\n\013Fingerprint\022\032\n\022relative_timestamp\030\001 " + + "\001(\003\022\031\n\010rf_scans\030\002 \003(\0132\007.RFScan\"r\n\006RFScan" + + "\022\032\n\022relative_timestamp\030\001 \001(\003\022\013\n\003mac\030\002 \001(" + + "\003\022\014\n\004rssi\030\003 \001(\005\022$\n\010position\030\004 \001(\0132\r.GNSS" + + "PositionH\000\210\001\001B\013\n\t_position\"o\n\016WiFiRTTRea" + + "ding\022\032\n\022relative_timestamp\030\001 \001(\003\022\013\n\003mac\030" + + "\002 \001(\003\022\020\n\010distance\030\003 \001(\002\022\024\n\014distance_std\030" + + "\004 \001(\002\022\014\n\004rssi\030\005 \001(\005\"O\n\nWiFiAPData\022\013\n\003mac" + + "\030\001 \001(\003\022\014\n\004ssid\030\002 \001(\t\022\021\n\tfrequency\030\003 \001(\003\022" + + "\023\n\013rtt_enabled\030\004 \001(\010\"\217\001\n\007BleData\022\023\n\013mac_" + + "address\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\026\n\016tx_power_" + + "level\030\003 \001(\005\022\027\n\017advertise_flags\030\004 \001(\005\022\025\n\r" + + "service_uuids\030\005 \003(\t\022\031\n\021manufacturer_data" + + "\030\006 \001(\014\"*\n\007Vector3\022\t\n\001x\030\001 \001(\002\022\t\n\001y\030\002 \001(\002\022" + + "\t\n\001z\030\003 \001(\002\"8\n\nQuaternion\022\t\n\001x\030\001 \001(\002\022\t\n\001y" + + "\030\002 \001(\002\022\t\n\001z\030\003 \001(\002\022\t\n\001w\030\004 \001(\002\"\222\001\n\nSensorI" + + "nfo\022\014\n\004name\030\001 \001(\t\022\016\n\006vendor\030\002 \001(\t\022\022\n\nres" + + "olution\030\003 \001(\002\022\r\n\005power\030\004 \001(\002\022\017\n\007version\030" + + "\005 \001(\005\022\014\n\004type\030\006 \001(\005\022\021\n\tmax_range\030\007 \001(\002\022\021" + + "\n\tfrequency\030\010 \001(\002b\006proto3" }; - com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = - new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { - public com.google.protobuf.ExtensionRegistry assignDescriptors( - com.google.protobuf.Descriptors.FileDescriptor root) { - descriptor = root; - return null; - } - }; - com.google.protobuf.Descriptors.FileDescriptor + descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { - }, assigner); + }); internal_static_Trajectory_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_Trajectory_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_Trajectory_descriptor, - new String[] { "AndroidVersion", "ImuData", "PdrData", "PositionData", "PressureData", "LightData", "GnssData", "WifiData", "ApsData", "StartTimestamp", "DataIdentifier", "AccelerometerInfo", "GyroscopeInfo", "RotationVectorInfo", "MagnetometerInfo", "BarometerInfo", "LightSensorInfo", }); - internal_static_Pdr_Sample_descriptor = + new java.lang.String[] { "AndroidVersion", "TrajectoryVersion", "TrajectoryId", "ImuData", "PdrData", "MagnetometerData", "PressureData", "LightData", "ProximityData", "GnssData", "WifiFingerprints", "ApsData", "WifiRttData", "BleFingerprints", "BleData", "StartTimestamp", "InitialPosition", "CorrectedPositions", "AccelerometerInfo", "GyroscopeInfo", "RotationVectorInfo", "MagnetometerInfo", "BarometerInfo", "LightSensorInfo", "ProximityInfo", "TestPoints", }); + internal_static_RelativePosition_descriptor = getDescriptor().getMessageTypes().get(1); - internal_static_Pdr_Sample_fieldAccessorTable = new + internal_static_RelativePosition_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Pdr_Sample_descriptor, - new String[] { "RelativeTimestamp", "X", "Y", }); - internal_static_Motion_Sample_descriptor = + internal_static_RelativePosition_descriptor, + new java.lang.String[] { "RelativeTimestamp", "X", "Y", }); + internal_static_IMUReading_descriptor = getDescriptor().getMessageTypes().get(2); - internal_static_Motion_Sample_fieldAccessorTable = new + internal_static_IMUReading_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Motion_Sample_descriptor, - new String[] { "RelativeTimestamp", "AccX", "AccY", "AccZ", "GyrX", "GyrY", "GyrZ", "RotationVectorX", "RotationVectorY", "RotationVectorZ", "RotationVectorW", "StepCount", }); - internal_static_Position_Sample_descriptor = + internal_static_IMUReading_descriptor, + new java.lang.String[] { "RelativeTimestamp", "Acc", "Gyr", "RotationVector", "StepCount", }); + internal_static_MagnetometerReading_descriptor = getDescriptor().getMessageTypes().get(3); - internal_static_Position_Sample_fieldAccessorTable = new + internal_static_MagnetometerReading_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Position_Sample_descriptor, - new String[] { "RelativeTimestamp", "MagX", "MagY", "MagZ", }); - internal_static_Pressure_Sample_descriptor = + internal_static_MagnetometerReading_descriptor, + new java.lang.String[] { "RelativeTimestamp", "Mag", }); + internal_static_BarometerReading_descriptor = getDescriptor().getMessageTypes().get(4); - internal_static_Pressure_Sample_fieldAccessorTable = new + internal_static_BarometerReading_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Pressure_Sample_descriptor, - new String[] { "RelativeTimestamp", "Pressure", }); - internal_static_Light_Sample_descriptor = + internal_static_BarometerReading_descriptor, + new java.lang.String[] { "RelativeTimestamp", "Pressure", }); + internal_static_LightReading_descriptor = getDescriptor().getMessageTypes().get(5); - internal_static_Light_Sample_fieldAccessorTable = new + internal_static_LightReading_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Light_Sample_descriptor, - new String[] { "RelativeTimestamp", "Light", }); - internal_static_GNSS_Sample_descriptor = + internal_static_LightReading_descriptor, + new java.lang.String[] { "RelativeTimestamp", "Light", }); + internal_static_ProximityReading_descriptor = getDescriptor().getMessageTypes().get(6); - internal_static_GNSS_Sample_fieldAccessorTable = new + internal_static_ProximityReading_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_GNSS_Sample_descriptor, - new String[] { "RelativeTimestamp", "Latitude", "Longitude", "Altitude", "Accuracy", "Speed", "Provider", }); - internal_static_WiFi_Sample_descriptor = + internal_static_ProximityReading_descriptor, + new java.lang.String[] { "RelativeTimestamp", "Distance", }); + internal_static_GNSSPosition_descriptor = getDescriptor().getMessageTypes().get(7); - internal_static_WiFi_Sample_fieldAccessorTable = new + internal_static_GNSSPosition_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_WiFi_Sample_descriptor, - new String[] { "RelativeTimestamp", "MacScans", }); - internal_static_Mac_Scan_descriptor = + internal_static_GNSSPosition_descriptor, + new java.lang.String[] { "RelativeTimestamp", "Latitude", "Longitude", "Altitude", "Floor", "Floor", }); + internal_static_GNSSReading_descriptor = getDescriptor().getMessageTypes().get(8); - internal_static_Mac_Scan_fieldAccessorTable = new + internal_static_GNSSReading_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Mac_Scan_descriptor, - new String[] { "RelativeTimestamp", "Mac", "Rssi", }); - internal_static_AP_Data_descriptor = + internal_static_GNSSReading_descriptor, + new java.lang.String[] { "Position", "Accuracy", "Speed", "Bearing", "Provider", }); + internal_static_Fingerprint_descriptor = getDescriptor().getMessageTypes().get(9); - internal_static_AP_Data_fieldAccessorTable = new + internal_static_Fingerprint_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_AP_Data_descriptor, - new String[] { "Mac", "Ssid", "Frequency", }); - internal_static_Sensor_Info_descriptor = + internal_static_Fingerprint_descriptor, + new java.lang.String[] { "RelativeTimestamp", "RfScans", }); + internal_static_RFScan_descriptor = getDescriptor().getMessageTypes().get(10); - internal_static_Sensor_Info_fieldAccessorTable = new + internal_static_RFScan_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_RFScan_descriptor, + new java.lang.String[] { "RelativeTimestamp", "Mac", "Rssi", "Position", "Position", }); + internal_static_WiFiRTTReading_descriptor = + getDescriptor().getMessageTypes().get(11); + internal_static_WiFiRTTReading_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_WiFiRTTReading_descriptor, + new java.lang.String[] { "RelativeTimestamp", "Mac", "Distance", "DistanceStd", "Rssi", }); + internal_static_WiFiAPData_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_WiFiAPData_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_WiFiAPData_descriptor, + new java.lang.String[] { "Mac", "Ssid", "Frequency", "RttEnabled", }); + internal_static_BleData_descriptor = + getDescriptor().getMessageTypes().get(13); + internal_static_BleData_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_BleData_descriptor, + new java.lang.String[] { "MacAddress", "Name", "TxPowerLevel", "AdvertiseFlags", "ServiceUuids", "ManufacturerData", }); + internal_static_Vector3_descriptor = + getDescriptor().getMessageTypes().get(14); + internal_static_Vector3_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Vector3_descriptor, + new java.lang.String[] { "X", "Y", "Z", }); + internal_static_Quaternion_descriptor = + getDescriptor().getMessageTypes().get(15); + internal_static_Quaternion_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_Quaternion_descriptor, + new java.lang.String[] { "X", "Y", "Z", "W", }); + internal_static_SensorInfo_descriptor = + getDescriptor().getMessageTypes().get(16); + internal_static_SensorInfo_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_Sensor_Info_descriptor, - new String[] { "Name", "Vendor", "Resolution", "Power", "Version", "Type", }); + internal_static_SensorInfo_descriptor, + new java.lang.String[] { "Name", "Vendor", "Resolution", "Power", "Version", "Type", "MaxRange", "Frequency", }); } // @@protoc_insertion_point(outer_class_scope) diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java index 7f7e74b2..89b690b2 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java @@ -623,11 +623,11 @@ private void checkNetworkStatus() { private void logDataSize(Traj.Trajectory trajectory) { Log.i("ServerCommunications", "IMU Data size: " + trajectory.getImuDataCount()); - Log.i("ServerCommunications", "Position Data size: " + trajectory.getPositionDataCount()); + Log.i("ServerCommunications", "Position Data size: " + trajectory.getMagnetometerDataCount()); Log.i("ServerCommunications", "Pressure Data size: " + trajectory.getPressureDataCount()); Log.i("ServerCommunications", "Light Data size: " + trajectory.getLightDataCount()); Log.i("ServerCommunications", "GNSS Data size: " + trajectory.getGnssDataCount()); - Log.i("ServerCommunications", "WiFi Data size: " + trajectory.getWifiDataCount()); + Log.i("ServerCommunications", "WiFi Data size: " + trajectory.getWifiFingerprintsCount()); Log.i("ServerCommunications", "APS Data size: " + trajectory.getApsDataCount()); Log.i("ServerCommunications", "PDR Data size: " + trajectory.getPdrDataCount()); } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java index 579e344c..e5371a33 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java @@ -121,4 +121,19 @@ public void stopUpdating() { locationManager.removeUpdates(locationListener); } + /** + * Get the last known location from the location manager. + * @return Last known location, or null if unavailable + */ + @SuppressLint("MissingPermission") + public android.location.Location getLastLocation() { + if (checkLocationPermissions()) { + android.location.Location gpsLoc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + if (gpsLoc != null) + return gpsLoc; + else + return locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); + } + return null; + } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/MovementSensor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/MovementSensor.java index a5282150..c8b33264 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/MovementSensor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/MovementSensor.java @@ -49,7 +49,9 @@ public MovementSensor(Context context, int sensorType) { sensor.getResolution(), sensor.getPower(), sensor.getVersion(), - sensor.getType() + sensor.getType(), + sensor.getMaximumRange(), + 0.0f // frequency set later ); System.err.println(sensorInfo); } else { @@ -59,7 +61,9 @@ public MovementSensor(Context context, int sensorType) { -1.0f, 0.0f, 0, - 0 + 0, + 0.0f, + 0.0f ); } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java index 6eca847c..11c793a4 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java @@ -146,6 +146,11 @@ public class SensorFusion implements SensorEventListener, Observer { private float[] startLocation; // Wifi values private List wifiList; + // Track seen APs to avoid duplicates + private Map seenAPs = new HashMap<>(); + // Track last fingerprint to avoid duplicates + private long lastFingerprintTime = 0; + private int lastFingerprintHash = 0; // Over time accelerometer magnitude values since last step @@ -406,7 +411,7 @@ public void onSensorChanged(SensorEvent sensorEvent) { if (saveRecording) { this.pathView.drawTrajectory(newCords); stepCounter++; - trajectory.addPdrData(Traj.Pdr_Sample.newBuilder() + trajectory.addPdrData(Traj.RelativePosition.newBuilder() .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) .setX(newCords[0]) .setY(newCords[1])); @@ -444,16 +449,19 @@ public void onLocationChanged(@NonNull Location location) { float altitude = (float) location.getAltitude(); float accuracy = (float) location.getAccuracy(); float speed = (float) location.getSpeed(); + float bearing = (float) location.getBearing(); String provider = location.getProvider(); if(saveRecording) { - trajectory.addGnssData(Traj.GNSS_Sample.newBuilder() + trajectory.addGnssData(Traj.GNSSReading.newBuilder() + .setPosition(Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(System.currentTimeMillis() - absoluteStartTime) + .setLatitude(latitude) + .setLongitude(longitude) + .setAltitude(altitude)) .setAccuracy(accuracy) - .setAltitude(altitude) - .setLatitude(latitude) - .setLongitude(longitude) .setSpeed(speed) - .setProvider(provider) - .setRelativeTimestamp(System.currentTimeMillis()-absoluteStartTime)); + .setBearing(bearing) + .setProvider(provider)); } } } @@ -471,15 +479,47 @@ public void update(Object[] wifiList) { this.wifiList = Stream.of(wifiList).map(o -> (Wifi) o).collect(Collectors.toList()); if(this.saveRecording) { - Traj.WiFi_Sample.Builder wifiData = Traj.WiFi_Sample.newBuilder() - .setRelativeTimestamp(SystemClock.uptimeMillis()-bootTime); + // Check for repeated fingerprints using 32 bit hash, using MAC and signal strength + int fingerprintHash = 0; for (Wifi data : this.wifiList) { - wifiData.addMacScans(Traj.Mac_Scan.newBuilder() + fingerprintHash = 31 * fingerprintHash + (int)(data.getBssid() ^ (data.getBssid() >>> 32)); + fingerprintHash = 31 * fingerprintHash + data.getLevel(); + } + + // Skip if duplicate fingerprint within 1 second + long currentTime = System.currentTimeMillis(); + if (fingerprintHash == lastFingerprintHash && + (currentTime - lastFingerprintTime) < 1000) { + return; + } + + lastFingerprintHash = fingerprintHash; + lastFingerprintTime = currentTime; + + // Create Fingerprint for WiFi + Traj.Fingerprint.Builder wifiFingerprint = Traj.Fingerprint.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime); + + for (Wifi data : this.wifiList) { + // Create RFScan for each WiFi + wifiFingerprint.addRfScans(Traj.RFScan.newBuilder() .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - .setMac(data.getBssid()).setRssi(data.getLevel())); + .setMac(data.getBssid()) + .setRssi(data.getLevel())); + + // Add AP data only if not seen before + if (!seenAPs.containsKey(data.getBssid())) { + trajectory.addApsData(Traj.WiFiAPData.newBuilder() + .setMac(data.getBssid()) + .setSsid(data.getSsid()) + .setFrequency(data.getFrequency()) + .setRttEnabled(data.isRttEnabled())); + seenAPs.put(data.getBssid(), true); + } } - // Adding WiFi data to Trajectory - this.trajectory.addWifiData(wifiData); + + // Add to trajectory + this.trajectory.addWifiFingerprints(wifiFingerprint); } createWifiPositioningRequest(); } @@ -843,6 +883,16 @@ public void stopListening() { } } + /** + * Generate unique trajectory ID based on timestamp and device info + * Format: android_{device}_{timestamp} + */ + private String generateTrajectoryId() { + String deviceModel = Build.MODEL.replaceAll("\\s+", "_"); + long timestamp = System.currentTimeMillis(); + return String.format("android_%s_%d", deviceModel, timestamp); + } + /** * Enables saving sensor values to the trajectory object. * @@ -861,6 +911,7 @@ public void startRecording() { this.saveRecording = true; this.stepCounter = 0; + this.seenAPs.clear(); this.absoluteStartTime = System.currentTimeMillis(); this.bootTime = SystemClock.uptimeMillis(); // Protobuf trajectory class for sending sensor data to restful API @@ -871,9 +922,22 @@ public void startRecording() { .setGyroscopeInfo(createInfoBuilder(gyroscopeSensor)) .setMagnetometerInfo(createInfoBuilder(magnetometerSensor)) .setBarometerInfo(createInfoBuilder(barometerSensor)) - .setLightSensorInfo(createInfoBuilder(lightSensor)); - - + .setLightSensorInfo(createInfoBuilder(lightSensor)) + .setRotationVectorInfo(createInfoBuilder(rotationSensor)) + .setProximityInfo(createInfoBuilder(proximitySensor)) + .setTrajectoryVersion(2.0f) + .setTrajectoryId(generateTrajectoryId()); + + + // Set initial position if available + if (gnssProcessor != null && gnssProcessor.getLastLocation() != null) { + Location loc = gnssProcessor.getLastLocation(); + trajectory.setInitialPosition(Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(0) + .setLatitude(loc.getLatitude()) + .setLongitude(loc.getLongitude()) + .setAltitude(loc.getAltitude())); + } this.storeTrajectoryTimer = new Timer(); this.storeTrajectoryTimer.schedule(new storeDataInTrajectory(), 0, TIME_CONST); @@ -922,7 +986,7 @@ public void sendTrajectoryToCloud() { } /** - * Creates a {@link Traj.Sensor_Info} objects from the specified sensor's data. + * Creates a {@link Traj.SensorInfo} objects from the specified sensor's data. * * @param sensor MovementSensor objects with populated sensorInfo fields * @return Traj.SensorInfo object to be used in building the trajectory @@ -930,14 +994,16 @@ public void sendTrajectoryToCloud() { * @see Traj Trajectory object used for communication with the server * @see MovementSensor class abstracting SensorManager based sensors */ - private Traj.Sensor_Info.Builder createInfoBuilder(MovementSensor sensor) { - return Traj.Sensor_Info.newBuilder() + private Traj.SensorInfo.Builder createInfoBuilder(MovementSensor sensor) { + return Traj.SensorInfo.newBuilder() .setName(sensor.sensorInfo.getName()) .setVendor(sensor.sensorInfo.getVendor()) .setResolution(sensor.sensorInfo.getResolution()) .setPower(sensor.sensorInfo.getPower()) .setVersion(sensor.sensorInfo.getVersion()) - .setType(sensor.sensorInfo.getType()); + .setType(sensor.sensorInfo.getType()) + .setMaxRange(sensor.sensorInfo.getMaxRange()) + .setFrequency(sensor.sensorInfo.getFrequency()); } /** @@ -948,44 +1014,46 @@ private Traj.Sensor_Info.Builder createInfoBuilder(MovementSensor sensor) { */ private class storeDataInTrajectory extends TimerTask { public void run() { - // Store IMU and magnetometer data in Trajectory class - trajectory.addImuData(Traj.Motion_Sample.newBuilder() - .setRelativeTimestamp(SystemClock.uptimeMillis()-bootTime) - .setAccX(acceleration[0]) - .setAccY(acceleration[1]) - .setAccZ(acceleration[2]) - .setGyrX(angularVelocity[0]) - .setGyrY(angularVelocity[1]) - .setGyrZ(angularVelocity[2]) - .setGyrZ(angularVelocity[2]) - .setRotationVectorX(rotation[0]) - .setRotationVectorY(rotation[1]) - .setRotationVectorZ(rotation[2]) - .setRotationVectorW(rotation[3]) - .setStepCount(stepCounter)) - .addPositionData(Traj.Position_Sample.newBuilder() - .setMagX(magneticField[0]) - .setMagY(magneticField[1]) - .setMagZ(magneticField[2]) - .setRelativeTimestamp(SystemClock.uptimeMillis()-bootTime)) -// .addGnssData(Traj.GNSS_Sample.newBuilder() -// .setLatitude(latitude) -// .setLongitude(longitude) -// .setRelativeTimestamp(SystemClock.uptimeMillis()-bootTime)) - ; + // Store IMU data in Trajectory class + trajectory.addImuData(Traj.IMUReading.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setAcc(Traj.Vector3.newBuilder() + .setX(acceleration[0]) + .setY(acceleration[1]) + .setZ(acceleration[2])) + .setGyr(Traj.Vector3.newBuilder() + .setX(angularVelocity[0]) + .setY(angularVelocity[1]) + .setZ(angularVelocity[2])) + .setRotationVector(Traj.Quaternion.newBuilder() + .setX(rotation[0]) + .setY(rotation[1]) + .setZ(rotation[2]) + .setW(rotation[3])) + .setStepCount(stepCounter)); + + // Store magnetometer data in Trajectory class + trajectory.addMagnetometerData(Traj.MagnetometerReading.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setMag(Traj.Vector3.newBuilder() + .setX(magneticField[0]) + .setY(magneticField[1]) + .setZ(magneticField[2]))); // Divide timer with a counter for storing data every 1 second if (counter == 99) { counter = 0; // Store pressure and light data if (barometerSensor.sensor != null) { - trajectory.addPressureData(Traj.Pressure_Sample.newBuilder() + trajectory.addPressureData(Traj.BarometerReading.newBuilder() .setPressure(pressure) .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime)) - .addLightData(Traj.Light_Sample.newBuilder() + .addLightData(Traj.LightReading.newBuilder() .setLight(light) + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime)) + .addProximityData(Traj.ProximityReading.newBuilder() .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - .build()); + .setDistance(proximity)); } // Divide the timer for storing AP data every 5 seconds @@ -993,10 +1061,12 @@ public void run() { secondCounter = 0; //Current Wifi Object Wifi currentWifi = wifiProcessor.getCurrentWifiData(); - trajectory.addApsData(Traj.AP_Data.newBuilder() + trajectory.addApsData(Traj.WiFiAPData.newBuilder() .setMac(currentWifi.getBssid()) .setSsid(currentWifi.getSsid()) - .setFrequency(currentWifi.getFrequency())); + .setFrequency(currentWifi.getFrequency()) + .setRttEnabled(currentWifi.isRttEnabled())); + seenAPs.put(currentWifi.getBssid(), true); } else { secondCounter++; diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorInfo.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorInfo.java index 23b92848..9563c9ae 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorInfo.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorInfo.java @@ -17,6 +17,8 @@ public class SensorInfo { private final float power; private final int version; private final int type; + private final float maxRange; + private final float frequency; /** * Public default constructor of the Sensor Info object. @@ -30,13 +32,15 @@ public class SensorInfo { * @param version version of the sensor's module. * @param type generic type of this sensor. */ - public SensorInfo(String name, String vendor, float resolution, float power, int version, int type) { + public SensorInfo(String name, String vendor, float resolution, float power, int version, int type, float maxRange, float frequency) { this.name = name; this.vendor = vendor; this.resolution = resolution; this.power = power; this.version = version; this.type = type; + this.maxRange = maxRange; + this.frequency = frequency; } @@ -66,6 +70,14 @@ public int getType() { return type; } + public float getMaxRange() { + return maxRange; + } + + public float getFrequency() { + return frequency; + } + //endregion /** diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/Wifi.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/Wifi.java index d2e981cb..c117b81b 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/Wifi.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/Wifi.java @@ -17,6 +17,7 @@ public class Wifi { private long bssid; private int level; private long frequency; + private boolean rttEnabled; /** * Empty public default constructor of the Wifi object. @@ -30,6 +31,7 @@ public Wifi(){} public long getBssid() { return bssid; } public int getLevel() { return level; } public long getFrequency() { return frequency; } + public boolean isRttEnabled() { return rttEnabled; } /** * Setters for each property @@ -38,6 +40,7 @@ public Wifi(){} public void setBssid(long bssid) { this.bssid = bssid; } public void setLevel(int level) { this.level = level; } public void setFrequency(long frequency) { this.frequency = frequency; } + public void setRttEnabled(boolean rttEnabled) { this.rttEnabled = rttEnabled; } /** * Generates a string containing mac address and rssi of Wifi. diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java index fa8a17dd..d6031458 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java @@ -136,6 +136,9 @@ public void onReceive(Context context, Intent intent) { //store mac address and rssi of wifi wifiData[i].setBssid(intMacAddress); wifiData[i].setLevel(wifiScanList.get(i).level); + wifiData[i].setSsid(wifiScanList.get(i).SSID); + wifiData[i].setFrequency(wifiScanList.get(i).frequency); + wifiData[i].setRttEnabled(wifiScanList.get(i).is80211mcResponder()); } //Notify observers of change in wifiData variable diff --git a/app/src/main/proto/traj.proto b/app/src/main/proto/traj.proto index 95d8b0ac..03a0e464 100644 --- a/app/src/main/proto/traj.proto +++ b/app/src/main/proto/traj.proto @@ -1,149 +1,210 @@ syntax = "proto3"; message Trajectory { -string android_version = 1; -repeated Motion_Sample imu_data = 2; -repeated Pdr_Sample pdr_data = 3; -repeated Position_Sample position_data = 4; -repeated Pressure_Sample pressure_data = 5; -repeated Light_Sample light_data = 6; - -repeated GNSS_Sample gnss_data = 7; -repeated WiFi_Sample wifi_data = 8; -repeated AP_Data aps_data = 9; - -// UNIX timestamp (in milliseconds) recorded from the start of this -// trajectory data collection event. All future -// timestamps in sub classes are to be RELATIVE timestamps -// (in milliseconds) to this start time. -// E.g. -// start_timestamp = 1674819807315 (UTC 27 Jan 2023 in the morning) -// relative_timestamp = 3000 (3s) -int64 start_timestamp = 10; -string data_identifier = 11; -Sensor_Info accelerometer_info = 12; -Sensor_Info gyroscope_info = 13; -Sensor_Info rotation_vector_info = 14; -Sensor_Info magnetometer_info = 15; -Sensor_Info barometer_info = 16; -Sensor_Info light_sensor_info = 17; + string android_version = 1; + // version 2.0 + float trajectory_version = 2; + // trajectory id/name for identification + string trajectory_id = 3; + repeated IMUReading imu_data = 4; + repeated RelativePosition pdr_data = 5; + repeated MagnetometerReading magnetometer_data = 6; + repeated BarometerReading pressure_data = 7; + repeated LightReading light_data = 8; + repeated ProximityReading proximity_data = 9; + + repeated GNSSReading gnss_data = 10; + repeated Fingerprint wifi_fingerprints = 11; + repeated WiFiAPData aps_data = 12; + repeated WiFiRTTReading wifi_rtt_data = 13; + repeated Fingerprint ble_fingerprints = 14; + repeated BleData ble_data = 15; + + // UNIX timestamp (in milliseconds) recorded from the start of this + // trajectory data collection event. All future + // timestamps in sub classes are to be RELATIVE timestamps + // (in milliseconds) to this start time. + // E.g. + // start_timestamp = 1674819807315 (UTC 27 Jan 2023 in the morning) + // relative_timestamp = 3000 (3s) + int64 start_timestamp = 16; + GNSSPosition initial_position = 17; + repeated GNSSPosition corrected_positions = 18; + + SensorInfo accelerometer_info = 19; + SensorInfo gyroscope_info = 20; + SensorInfo rotation_vector_info = 21; + SensorInfo magnetometer_info = 22; + SensorInfo barometer_info = 23; + SensorInfo light_sensor_info = 24; + SensorInfo proximity_info = 25; + + repeated GNSSPosition test_points = 26; } -message Pdr_Sample { -// milliseconds from the start_timestamp -int64 relative_timestamp = 1; +message RelativePosition { + // milliseconds from the start_timestamp + int64 relative_timestamp = 1; -// Both in metres. You should implement an algorithm to estimate -// these values. The values are always relative to your start point -// so the first entry should always be x = 0.0, y = 0.0 -float x = 2; -float y = 3; + // Both in metres. You should implement an algorithm to estimate + // these values. The values are always relative to your start point + // so the first entry should always be x = 0.0, y = 0.0 + float x = 2; + float y = 3; } +message IMUReading { + // milliseconds + int64 relative_timestamp = 1; + // Accelerometer [m/s^2] + Vector3 acc = 2; + + // Gyroscope [radians/s] + Vector3 gyr = 3; -message Motion_Sample { - // milliseconds - int64 relative_timestamp = 1; - // m/s^2 - float acc_x = 2; - float acc_y = 3; - float acc_z = 4; + // Orientation [unitless], 4 components should square sum to ~1 + Quaternion rotation_vector = 4; - // radians/s - float gyr_x = 5; - float gyr_y = 6; - float gyr_z = 7; + // Number of steps so far + int32 step_count = 5; +} - // unitless, 4 components should sum to ~1 - float rotation_vector_x = 8; - float rotation_vector_y = 9; - float rotation_vector_z = 10; - float rotation_vector_w = 11; +message MagnetometerReading { + int64 relative_timestamp = 1; - // Integer - int32 step_count = 12; + // Magnetometer [uT] + Vector3 mag = 2; } -message Position_Sample { - int64 relative_timestamp = 1; +message BarometerReading { + int64 relative_timestamp = 1; - // uT - float mag_x = 2; - float mag_y = 3; - float mag_z = 4; + // mbar + float pressure = 2; } -message Pressure_Sample { - int64 relative_timestamp = 1; +message LightReading { + int64 relative_timestamp = 1; + // lux + float light = 2; +} - // mbar - float pressure = 2; +message ProximityReading { + int64 relative_timestamp = 1; + // cm + float distance = 2; +} +message GNSSPosition { + int64 relative_timestamp = 1; + + // degrees (minimum 6 significant figures) + // latitude between -90 and 90 + double latitude = 2; + // longitude between -180 and 180 + double longitude = 3; + //metres + double altitude = 4; + // floor name + optional string floor = 5; } -message Light_Sample { - int64 relative_timestamp = 1; - // lux - float light = 2; + +message GNSSReading { + GNSSPosition position = 1; + // metres + float accuracy = 2; + // m/s + float speed = 3; + // degrees + float bearing = 4; + + // e.g 'gps' or 'network' + string provider = 5; } -message GNSS_Sample { - int64 relative_timestamp = 1; - // degrees (minimum 6 significant figures) - // latitude between -90 and 90 - float latitude = 2; +message Fingerprint { + int64 relative_timestamp = 1; + repeated RFScan rf_scans = 2; - // longitude between -180 and 180 - float longitude = 3; +} - //metres - float altitude = 4; +message RFScan { + int64 relative_timestamp = 1; - // metres - float accuracy = 5; + // Integer encoding of the hex mac address (BSSID) + // e.g. 207394925843984 + int64 mac = 2; - // m/s - float speed = 6; + // rssi integer in dBm. + // typically between -120 and -10 + int32 rssi = 3; - // e.g 'gps' or 'network' - string provider = 7; + // returned position + optional GNSSPosition position = 4; } -message WiFi_Sample { - int64 relative_timestamp = 1; - repeated Mac_Scan mac_scans = 2; - +message WiFiRTTReading { + int64 relative_timestamp = 1; + // cm + // Integer encoding of the hex mac address (BSSID) + // e.g. 207394925843984 + int64 mac = 2; + + // in mm + float distance = 3; + // in mm + float distance_std = 4; + // rssi integer in dBm. + // typically between -120 and -10 + int32 rssi = 5; } -message Mac_Scan { - int64 relative_timestamp = 1; +message WiFiAPData { + // Integer encoding of the hex mac address (BSSID) + // e.g. 207394925843984 + int64 mac = 1; - // Integer encoding of the hex mac address - // e.g. 207394925843984 - int64 mac = 2; + // E.g. 'Eduroam' or 'Starbucks_free_wifi' + string ssid = 2; - // rssi integer in dBm. - // typically between -120 and -10 - int32 rssi = 3; + // Typically 2.4GHz or 5GHz + int64 frequency = 3; + + // Flag to indicate if the AP supports RTT measurements + bool rtt_enabled = 4; } -message AP_Data { - // Integer encoding of the hex mac address - // e.g. 207394925843984 - int64 mac = 1; +message BleData { + string mac_address = 1; + string name = 2; + int32 tx_power_level = 3; + int32 advertise_flags = 4; + repeated string service_uuids = 5; + bytes manufacturer_data = 6; +} - // E.g. 'Eduroam' or 'Starbucks_free_wifi' - string ssid = 2; + // --- Common Types --- +message Vector3 { + float x = 1; + float y = 2; + float z = 3; +} - // Typically 2.4GHz or 5GHz - int64 frequency = 3; +message Quaternion { + float x = 1; + float y = 2; + float z = 3; + float w = 4; } -message Sensor_Info { - string name = 1; - string vendor = 2; - float resolution = 3; - float power = 4; - int32 version = 5; - int32 type = 6; +message SensorInfo { + string name = 1; + string vendor = 2; + float resolution = 3; + float power = 4; + int32 version = 5; + int32 type = 6; + float max_range = 7; + float frequency = 8; } \ No newline at end of file From 9a6cd8fb0c9ad1568f013a50076a7cfe64a50b84 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Mon, 2 Feb 2026 19:15:50 +0000 Subject: [PATCH 09/65] [Bug] Upgrade AGP 8.7.1 -> 8.7.3 (#14) --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 915a81dd..9022d40c 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { // NOTE: Only classpath deps (plugins) go here // Compatibility change for AS 2024.2.1 Patch 1 // classpath 'com.android.tools.build:gradle:8.8.0' - classpath 'com.android.tools.build:gradle:8.7.1' + classpath 'com.android.tools.build:gradle:8.7.3' classpath 'com.google.gms:google-services:4.4.2' def nav_version = "2.5.3" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" From a51787abddbcc459e94ebe7813d4a7749c42a011 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Thu, 5 Feb 2026 15:14:05 +0000 Subject: [PATCH 10/65] [Feat] Floorplans When Inside Building (#11) --- app/build.gradle | 5 + app/src/main/AndroidManifest.xml | 17 +- .../data/remote/ServerCommunications.java | 187 ++++++++++-------- .../presentation/fragment/FilesFragment.java | 4 +- .../presentation/fragment/HomeFragment.java | 32 +-- .../fragment/IndoorMapFragment.java | 18 +- .../fragment/RecordingFragment.java | 80 +++++--- .../fragment/StartLocationFragment.java | 42 ++-- .../fragment/TrajectoryMapFragment.java | 154 +++++++-------- .../PositionMe/sensors/WiFiPositioning.java | 5 +- .../PositionMe/utils/BuildingPolygon.java | 40 ++-- .../PositionMe/utils/IndoorMapManager.java | 38 ++-- .../utils/NucleusBuildingManager.java | 38 +++- .../PositionMe/utils/PermissionManager.java | 57 +++--- .../PositionMe/utils/UtilConstants.java | 34 ++++ .../main/res/layout-small/fragment_home.xml | 2 +- app/src/main/res/layout/fragment_home.xml | 9 +- .../res/layout/fragment_trajectory_map.xml | 14 +- app/src/main/res/values/googlemaps_api.xml | 6 - app/src/main/res/values/strings.xml | 4 +- 20 files changed, 459 insertions(+), 327 deletions(-) create mode 100644 app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java delete mode 100644 app/src/main/res/values/googlemaps_api.xml diff --git a/app/build.gradle b/app/build.gradle index 033aa481..0dc657a0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,6 +32,9 @@ android { "\"${localProperties['OPENPOSITIONING_API_KEY'] ?: ''}\"" buildConfigField "String", "OPENPOSITIONING_MASTER_KEY", "\"${localProperties['OPENPOSITIONING_MASTER_KEY'] ?: ''}\"" + + // Add reference to maps API key for manifest file + resValue 'string', 'google_maps_key', (localProperties['MAPS_API_KEY'] ?: '') } buildFeatures { @@ -83,6 +86,8 @@ dependencies { implementation "com.google.protobuf:protobuf-java-util:3.20.1" implementation "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" implementation 'com.google.android.gms:play-services-maps:19.0.0' + implementation 'com.google.android.gms:play-services-location:21.3.0' + // Navigation components def nav_version = "2.8.6" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 678711fd..1b23a3f1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ - - - + @@ -56,6 +50,8 @@ + + + + + android:screenOrientation="portrait" + tools:ignore="LockedOrientationActivity"> diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java index 89b690b2..e6b54f19 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java @@ -1,16 +1,12 @@ package com.openpositioning.PositionMe.data.remote; -import android.util.Log; -import java.util.Map; -import java.util.HashMap; -import java.util.Iterator; -import java.io.BufferedReader; -import java.io.FileReader; -import org.json.JSONObject; - -import android.os.Environment; -import java.io.FileInputStream; -import java.io.OutputStream; +import static com.openpositioning.PositionMe.utils.UtilConstants.API_KEY_MASTER; +import static com.openpositioning.PositionMe.utils.UtilConstants.API_KEY_USER; +import static com.openpositioning.PositionMe.utils.UtilConstants.API_POST_TRAJECTORIES; +import static com.openpositioning.PositionMe.utils.UtilConstants.PROTOCOL_APP_JSON; +import static com.openpositioning.PositionMe.utils.UtilConstants.PROTOCOL_MULTIPART; +import static com.openpositioning.PositionMe.utils.UtilConstants.URL_API; +import static com.openpositioning.PositionMe.utils.UtilConstants.URL_GET_TRAJECTORIES; import android.content.Context; import android.content.SharedPreferences; @@ -20,31 +16,37 @@ import android.os.Environment; import android.os.Handler; import android.os.Looper; +import android.util.Log; import android.widget.Toast; -import androidx.annotation.NonNull; import androidx.preference.PreferenceManager; import com.google.protobuf.util.JsonFormat; -import com.openpositioning.PositionMe.BuildConfig; import com.openpositioning.PositionMe.Traj; import com.openpositioning.PositionMe.presentation.fragment.FilesFragment; import com.openpositioning.PositionMe.presentation.activity.MainActivity; import com.openpositioning.PositionMe.sensors.Observable; import com.openpositioning.PositionMe.sensors.Observer; +import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.nio.file.Files; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.Locale; +import java.util.Map; +import java.util.HashMap; +import java.util.Iterator; import java.util.List; -import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import okhttp3.Call; @@ -59,6 +61,8 @@ import okhttp3.Response; import okhttp3.ResponseBody; +import org.json.JSONObject; + /** * This class handles communications with the server through HTTPs. The class uses an * {@link OkHttpClient} for making requests to the server. The class includes methods for sending @@ -73,6 +77,11 @@ public class ServerCommunications implements Observable { public static Map downloadRecords = new HashMap<>(); // Application context for handling permissions and devices + + private static final int OBSERVER_INDEX_FILES = 0; + private static final int OBSERVER_INDEX_MAIN = 1; + private static final int OBSERVER_INDEX_RECORDING = 2; + private final Context context; // Network status checking @@ -85,23 +94,6 @@ public class ServerCommunications implements Observable { private boolean success; private List observers; - // Static constants necessary for communications - private static final String userKey = BuildConfig.OPENPOSITIONING_API_KEY; - private static final String masterKey = BuildConfig.OPENPOSITIONING_MASTER_KEY; - private static final String uploadURL = - "https://openpositioning.org/api/live/trajectory/upload/" + userKey - + "/?key=" + masterKey; - private static final String downloadURL = - "https://openpositioning.org/api/live/trajectory/download/" + userKey - + "?skip=0&limit=30&key=" + masterKey; - private static final String infoRequestURL = - "https://openpositioning.org/api/live/users/trajectories/" + userKey - + "?key=" + masterKey; - private static final String PROTOCOL_CONTENT_TYPE = "multipart/form-data"; - private static final String PROTOCOL_ACCEPT_TYPE = "application/json"; - - - /** * Public default constructor of {@link ServerCommunications}. The constructor saves context, * initialises a {@link ConnectivityManager}, {@link Observer} and gets the user preferences. @@ -134,20 +126,20 @@ public void sendTrajectory(Traj.Trajectory trajectory){ byte[] binaryTrajectory = trajectory.toByteArray(); File path = null; - // for android 13 or higher use dedicated external storage + // For android 13 or higher use dedicated external storage if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { path = context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS); if (path == null) { path = context.getFilesDir(); } - } else { // for android 12 or lower use internal storage + } else { // For android 12 or lower, use internal storage path = context.getFilesDir(); } System.out.println(path.toString()); // Format the file name according to date - SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yy-HH-mm-ss"); + SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yy-HH-mm-ss", Locale.UK); Date date = new Date(); File file = new File(path, "trajectory_" + dateFormat.format(date) + ".txt"); @@ -157,9 +149,9 @@ public void sendTrajectory(Traj.Trajectory trajectory){ stream.write(binaryTrajectory); stream.close(); System.out.println("Recorded binary trajectory for debugging stored in: " + path); - } catch (IOException ee) { + } catch (IOException e) { // Catch and print if writing to the file fails - System.err.println("Storing of recorded binary trajectory failed: " + ee.getMessage()); + System.err.println("Storing of recorded binary trajectory failed: " + e.getMessage()); } // Check connections available before sending data @@ -173,28 +165,29 @@ public void sendTrajectory(Traj.Trajectory trajectory){ // Instantiate client for HTTP requests OkHttpClient client = new OkHttpClient(); - // Creaet a equest body with a file to upload in multipart/form-data format + // Create a request body with a file to upload in multipart/form-data format RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM) .addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("text/plain"), file)) .build(); // Create a POST request with the required headers - Request request = new Request.Builder().url(uploadURL).post(requestBody) - .addHeader("accept", PROTOCOL_ACCEPT_TYPE) - .addHeader("Content-Type", PROTOCOL_CONTENT_TYPE).build(); + String uploadURL = createUploadURL(); + Request request = new Request.Builder() + .url(uploadURL) + .post(requestBody) + .addHeader("accept", PROTOCOL_APP_JSON) + .addHeader("Content-Type", PROTOCOL_MULTIPART) + .build(); // Enqueue the request to be executed asynchronously and handle the response client.newCall(request).enqueue(new Callback() { // Handle failure to get response from the server @Override public void onFailure(Call call, IOException e) { - e.printStackTrace(); - System.err.println("Failure to get response"); - // Delete the local file and set success to false - //file.delete(); + System.err.println("Failure to get response: " + e.getMessage()); success = false; - notifyObservers(1); + notifyObservers(OBSERVER_INDEX_MAIN); } private void copyFile(File src, File dst) throws IOException { @@ -211,27 +204,28 @@ private void copyFile(File src, File dst) throws IOException { // Process the server's response @Override public void onResponse(Call call, Response response) throws IOException { try (ResponseBody responseBody = response.body()) { - // If the response is unsuccessful, delete the local file and throw an - // exception + // If the response is unsuccessful, throw an exception if (!response.isSuccessful()) { - //file.delete(); -// System.err.println("POST error response: " + responseBody.string()); - + // Show error message to users String errorBody = responseBody.string(); infoResponse = "Upload failed: " + errorBody; new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show()); // show error message to users + Toast.makeText( + context, infoResponse, Toast.LENGTH_SHORT).show() + ); System.err.println("POST error response: " + errorBody); success = false; - notifyObservers(1); + notifyObservers(OBSERVER_INDEX_MAIN); throw new IOException("Unexpected code " + response); } // Print the response headers Headers responseHeaders = response.headers(); for (int i = 0, size = responseHeaders.size(); i < size; i++) { - System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i)); + System.out.println( + responseHeaders.name(i) + ": " + responseHeaders.value(i) + ); } // Print a confirmation of a successful POST to API System.out.println("Successful post response: " + responseBody.string()); @@ -241,29 +235,34 @@ private void copyFile(File src, File dst) throws IOException { System.out.println("Original trajectory file saved at: " + originalPath); // Copy the file to the Downloads folder - File downloadsDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); + File downloadsDir = Environment.getExternalStoragePublicDirectory( + Environment.DIRECTORY_DOWNLOADS + ); File downloadFile = new File(downloadsDir, file.getName()); try { copyFile(file, downloadFile); - System.out.println("Trajectory file copied to Downloads: " + downloadFile.getAbsolutePath()); + System.out.println("Trajectory file copied to Downloads: " + + downloadFile.getAbsolutePath() + ); } catch (IOException e) { - e.printStackTrace(); - System.err.println("Failed to copy file to Downloads: " + e.getMessage()); + System.err.println( + "Failed to copy file to Downloads: " + e.getMessage() + ); } // Delete local file and set success to true success = file.delete(); - notifyObservers(1); + notifyObservers(OBSERVER_INDEX_MAIN); } } }); } else { - // If the device is not connected to network or allowed to send, do not send trajectory - // and notify observers and user + // If the device is not connected to network or allowed to send, + // do not send trajectory and notify observers and user System.err.println("No uploading allowed right now!"); success = false; - notifyObservers(1); + notifyObservers(OBSERVER_INDEX_MAIN); } } @@ -285,7 +284,7 @@ public void uploadLocalTrajectory(File localTrajectory) { byte[] fileBytes = Files.readAllBytes(localTrajectory.toPath()); fileRequestBody = RequestBody.create(MediaType.parse("text/plain"), fileBytes); } catch (IOException e) { - e.printStackTrace(); + System.err.println("Error: " + e.getMessage()); // if failed, use File object to construct RequestBody fileRequestBody = RequestBody.create(MediaType.parse("text/plain"), localTrajectory); } @@ -299,23 +298,26 @@ public void uploadLocalTrajectory(File localTrajectory) { .build(); // Create a POST request with the required headers + String uploadURL = createUploadURL(); okhttp3.Request request = new okhttp3.Request.Builder().url(uploadURL).post(requestBody) - .addHeader("accept", PROTOCOL_ACCEPT_TYPE) - .addHeader("Content-Type", PROTOCOL_CONTENT_TYPE).build(); + .addHeader("accept", PROTOCOL_APP_JSON) + .addHeader("Content-Type", PROTOCOL_MULTIPART).build(); // Enqueue the request to be executed asynchronously and handle the response client.newCall(request).enqueue(new okhttp3.Callback() { @Override public void onFailure(Call call, IOException e) { - // Print error message, set success to false and notify observers - e.printStackTrace(); -// localTrajectory.delete(); + // Set success to false and notify observers success = false; - System.err.println("UPLOAD: Failure to get response"); - notifyObservers(1); + System.err.println( + "[" + e.getClass() + "] UPLOAD: Failure to get response" + ); + notifyObservers(OBSERVER_INDEX_MAIN); + + // Show error message to users infoResponse = "Upload failed: " + e.getMessage(); // Store error message new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show()); // show error message to users + Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show()); } @Override @@ -325,7 +327,7 @@ public void onResponse(Call call, Response response) throws IOException { // Print error message, set success to false and throw an exception success = false; // System.err.println("UPLOAD unsuccessful: " + responseBody.string()); - notifyObservers(1); + notifyObservers(OBSERVER_INDEX_MAIN); // localTrajectory.delete(); assert responseBody != null; String errorBody = responseBody.string(); @@ -348,7 +350,7 @@ public void onResponse(Call call, Response response) throws IOException { // Delete local file, set success to true and notify observers success = localTrajectory.delete(); - notifyObservers(1); + notifyObservers(OBSERVER_INDEX_MAIN); } } }); @@ -379,15 +381,16 @@ private void loadDownloadRecords() { String id = record.getString("id"); downloadRecords.put(id, record); } catch (Exception e) { - System.err.println("Error loading record with key: " + key); - e.printStackTrace(); + System.err.println( + "[" + e.getClass() + "] Error loading record with key: " + key + ); } } System.out.println("Loaded downloadRecords: " + downloadRecords); } catch (Exception e) { - e.printStackTrace(); + System.err.println("Error: " + e.getMessage()); } } else { System.out.println("Download_records.json not found in app-specific directory."); @@ -456,7 +459,6 @@ private void saveDownloadRecord(long startTimestamp, String fileName, String id, System.out.println("Download record saved successfully at: " + recordsFile.getAbsolutePath()); } catch (Exception e) { - e.printStackTrace(); System.err.println("Error saving download record: " + e.getMessage()); } } @@ -479,8 +481,8 @@ public void downloadTrajectory(int position, String id, String dateSubmitted) { // Create GET request with required header okhttp3.Request request = new okhttp3.Request.Builder() - .url(downloadURL) - .addHeader("accept", PROTOCOL_ACCEPT_TYPE) + .url(URL_GET_TRAJECTORIES) + .addHeader("accept", PROTOCOL_APP_JSON) .get() .build(); @@ -488,7 +490,7 @@ public void downloadTrajectory(int position, String id, String dateSubmitted) { client.newCall(request).enqueue(new okhttp3.Callback() { @Override public void onFailure(Call call, IOException e) { - e.printStackTrace(); + System.err.println("Error: " + e.getMessage()); } @Override @@ -568,21 +570,21 @@ public void onResponse(Call call, Response response) throws IOException { * the {@link ServerCommunications#infoResponse} field is updated and observes notified. * */ - public void sendInfoRequest() { + public void sendInfoRequest(String requestURL) { // Create a new OkHttpclient OkHttpClient client = new OkHttpClient(); // Create GET info request with appropriate URL and header okhttp3.Request request = new okhttp3.Request.Builder() - .url(infoRequestURL) - .addHeader("accept", PROTOCOL_ACCEPT_TYPE) + .url(requestURL) + .addHeader("accept", PROTOCOL_APP_JSON) .get() .build(); // Enqueue the GET request for asynchronous execution client.newCall(request).enqueue(new okhttp3.Callback() { @Override public void onFailure(Call call, IOException e) { - e.printStackTrace(); + System.err.println("Error: " + e.getMessage()); } @Override public void onResponse(Call call, Response response) throws IOException { @@ -596,7 +598,7 @@ public void sendInfoRequest() { infoResponse = responseBody.string(); // Print a message in the console and notify observers System.out.println("Response received"); - notifyObservers(0); + notifyObservers(OBSERVER_INDEX_FILES); } } }); @@ -620,6 +622,19 @@ private void checkNetworkStatus() { } } + // TODO - Implement true campaign support + private String createUploadURL(String campaign){ + return URL_API + API_POST_TRAJECTORIES + "/" + + campaign + "/" + API_KEY_USER + + "/?key=" + API_KEY_MASTER; + } + + // TODO - Remove this temporary copy once campaigns have been implemented + private String createUploadURL(){ + return URL_API + API_POST_TRAJECTORIES + "/" + + "nucleus_building" + "/" + API_KEY_USER + + "/?key=" + API_KEY_MASTER; + } private void logDataSize(Traj.Trajectory trajectory) { Log.i("ServerCommunications", "IMU Data size: " + trajectory.getImuDataCount()); @@ -656,10 +671,10 @@ public void registerObserver(Observer o) { @Override public void notifyObservers(int index) { for(Observer o : observers) { - if(index == 0 && o instanceof FilesFragment) { + if(index == OBSERVER_INDEX_FILES && o instanceof FilesFragment) { o.update(new String[] {infoResponse}); } - else if (index == 1 && o instanceof MainActivity) { + else if (index == OBSERVER_INDEX_MAIN && o instanceof MainActivity) { o.update(new Boolean[] {success}); } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java index 83bc4ef1..1484f083 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java @@ -1,5 +1,7 @@ package com.openpositioning.PositionMe.presentation.fragment; +import static com.openpositioning.PositionMe.utils.UtilConstants.URL_GET_USER_TRAJECTORIES; + import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -113,7 +115,7 @@ public void onClick(View view) { } }); // Request list of uploaded trajectories from the server. - serverCommunications.sendInfoRequest(); + serverCommunications.sendInfoRequest(URL_GET_USER_TRAJECTORIES); // Force RecyclerView refresh to ensure icon states are correct new Handler(Looper.getMainLooper()).postDelayed(() -> { if (filesList.getAdapter() != null) { diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java index 8371b04e..3172d55a 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java @@ -11,6 +11,7 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -22,6 +23,8 @@ import androidx.preference.PreferenceManager; import com.google.android.material.button.MaterialButton; +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationServices; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; @@ -50,6 +53,7 @@ public class HomeFragment extends Fragment implements OnMapReadyCallback { private Button start; private Button measurements; private Button files; + private Button indoorPositioning; private TextView gnssStatusTextView; // For the map @@ -116,6 +120,13 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat Navigation.findNavController(v).navigate(action); }); + // Indoor Positioning button + // TODO - Implement new view and functionality + indoorPositioning = view.findViewById(R.id.indoorButton); + indoorPositioning.setOnClickListener(v -> { + Toast.makeText(getContext(), "Coming soon!", Toast.LENGTH_SHORT).show(); + }); + // TextView to display GNSS disabled message gnssStatusTextView = view.findViewById(R.id.gnssStatusTextView); @@ -182,21 +193,19 @@ private void checkAndUpdatePermissions() { gnssStatusTextView.setVisibility(View.GONE); // Check runtime permissions for location - if (ActivityCompat.checkSelfPermission( - requireContext(), Manifest.permission.ACCESS_FINE_LOCATION) - == PackageManager.PERMISSION_GRANTED || - ActivityCompat.checkSelfPermission( - requireContext(), Manifest.permission.ACCESS_COARSE_LOCATION) - == PackageManager.PERMISSION_GRANTED) { + boolean permissionGrantedLocationFine = ActivityCompat.checkSelfPermission( + requireContext(), Manifest.permission.ACCESS_FINE_LOCATION + ) == PackageManager.PERMISSION_GRANTED; + + boolean permissionGrantedLocationCoarse = ActivityCompat.checkSelfPermission( + requireContext(), Manifest.permission.ACCESS_COARSE_LOCATION + ) == PackageManager.PERMISSION_GRANTED; + if (permissionGrantedLocationFine || permissionGrantedLocationCoarse) { // Enable the MyLocation layer of Google Map mMap.setMyLocationEnabled(true); - // Optionally move the camera to last known or default location: - // (You could retrieve it from FusedLocationProvider or similar). - // Here, just leaving it on default. - // If you want to center on the user as soon as it loads, do something like: - /* + // Zoom to the user upon map load FusedLocationProviderClient fusedLocationClient = LocationServices.getFusedLocationProviderClient(requireContext()); fusedLocationClient.getLastLocation().addOnSuccessListener(location -> { @@ -205,7 +214,6 @@ private void checkAndUpdatePermissions() { mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentLatLng, 15f)); } }); - */ } else { // If no permission, simply show a default location or prompt for permissions showEdinburghAndMessage("Permission not granted. Please enable in settings."); diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/IndoorMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/IndoorMapFragment.java index 48c40474..e6f03d7e 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/IndoorMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/IndoorMapFragment.java @@ -36,11 +36,8 @@ public void switchFloor(int floorIndex) { return; // Prevent index out of bounds } // Hide all floors - for (GroundOverlay overlay : groundOverlays) { - if (overlay != null) { - overlay.setVisible(false); - } - } + setMapVisibility(false); + // Show selected floor GroundOverlay selectedOverlay = groundOverlays[floorIndex]; if (selectedOverlay != null) { @@ -49,12 +46,15 @@ public void switchFloor(int floorIndex) { currentFloor = floorIndex; } - // Hide all floors - public void hideMap() { - //Hide all floors + /** + * Show or hide all floors + * + * @param visibility Set true to show maps; set false to hide maps + */ + public void setMapVisibility(boolean visibility) { for (GroundOverlay overlay : groundOverlays) { if (overlay != null) { - overlay.setVisible(false); + overlay.setVisible(visibility); } } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java index 6362a971..2f61d3d2 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java @@ -7,31 +7,32 @@ import android.os.Bundle; import android.os.CountDownTimer; import android.os.Handler; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.LinearInterpolator; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; -import com.google.android.material.button.MaterialButton; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.preference.PreferenceManager; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.material.button.MaterialButton; + import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.data.remote.ServerCommunications; import com.openpositioning.PositionMe.presentation.activity.RecordingActivity; +import com.openpositioning.PositionMe.sensors.Observer; import com.openpositioning.PositionMe.sensors.SensorFusion; import com.openpositioning.PositionMe.sensors.SensorTypes; import com.openpositioning.PositionMe.utils.UtilFunctions; -import com.google.android.gms.maps.model.LatLng; - /** * Fragment responsible for managing the recording process of trajectory data. @@ -52,11 +53,12 @@ * @see RecordingActivity The activity managing the recording workflow. * @see SensorFusion Handles sensor data collection. * @see SensorTypes Enumeration of available sensor types. + * @see Observer Interface for handling server responses * * @author Shu Gu */ -public class RecordingFragment extends Fragment { +public class RecordingFragment extends Fragment implements Observer { // UI elements private MaterialButton completeButton, cancelButton; @@ -97,6 +99,7 @@ public RecordingFragment() { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.sensorFusion = SensorFusion.getInstance(); + this.sensorFusion.registerForServerUpdate(this); Context context = requireActivity(); this.settings = PreferenceManager.getDefaultSharedPreferences(context); this.refreshDataHandler = new Handler(); @@ -119,15 +122,15 @@ public void onViewCreated(@NonNull View view, // Child Fragment: the container in fragment_recording.xml // where TrajectoryMapFragment is placed trajectoryMapFragment = (TrajectoryMapFragment) - getChildFragmentManager().findFragmentById(R.id.trajectoryMapFragmentContainer); + getChildFragmentManager().findFragmentById(R.id.trajectoryMapFragmentContainer); // If not present, create it if (trajectoryMapFragment == null) { trajectoryMapFragment = new TrajectoryMapFragment(); getChildFragmentManager() - .beginTransaction() - .replace(R.id.trajectoryMapFragmentContainer, trajectoryMapFragment) - .commit(); + .beginTransaction() + .replace(R.id.trajectoryMapFragmentContainer, trajectoryMapFragment) + .commit(); } // Initialize UI references @@ -154,23 +157,22 @@ public void onViewCreated(@NonNull View view, ((RecordingActivity) requireActivity()).showCorrectionScreen(); }); - // Cancel button with confirmation dialog cancelButton.setOnClickListener(v -> { AlertDialog dialog = new AlertDialog.Builder(requireActivity()) - .setTitle("Confirm Cancel") - .setMessage("Are you sure you want to cancel the recording? Your progress will be lost permanently!") - .setNegativeButton("Yes", (dialogInterface, which) -> { - // User confirmed cancellation - sensorFusion.stopRecording(); - if (autoStop != null) autoStop.cancel(); - requireActivity().onBackPressed(); - }) - .setPositiveButton("No", (dialogInterface, which) -> { - // User cancelled the dialog. Do nothing. - dialogInterface.dismiss(); - }) - .create(); // Create the dialog but do not show it yet + .setTitle("Confirm Cancel") + .setMessage("Are you sure you want to cancel the recording? Your progress will be lost permanently!") + .setNegativeButton("Yes", (dialogInterface, which) -> { + // User confirmed cancellation + sensorFusion.stopRecording(); + if (autoStop != null) autoStop.cancel(); + requireActivity().onBackPressed(); + }) + .setPositiveButton("No", (dialogInterface, which) -> { + // User cancelled the dialog. Do nothing. + dialogInterface.dismiss(); + }) + .create(); // Create the dialog but do not show it yet // Show the dialog and change the button color dialog.setOnShowListener(dialogInterface -> { @@ -219,8 +221,8 @@ private void updateUIandPosition() { if (pdrValues == null) return; // Distance - distance += Math.sqrt(Math.pow(pdrValues[0] - previousPosX, 2) - + Math.pow(pdrValues[1] - previousPosY, 2)); + distance += (float) Math.sqrt(Math.pow(pdrValues[0] - previousPosX, 2) + + Math.pow(pdrValues[1] - previousPosY, 2)); distanceTravelled.setText(getString(R.string.meter, String.format("%.2f", distance))); // Elevation @@ -235,14 +237,16 @@ private void updateUIandPosition() { if (latLngArray != null) { LatLng oldLocation = trajectoryMapFragment.getCurrentLocation(); // or store locally LatLng newLocation = UtilFunctions.calculateNewPos( - oldLocation == null ? new LatLng(latLngArray[0], latLngArray[1]) : oldLocation, - new float[]{ pdrValues[0] - previousPosX, pdrValues[1] - previousPosY } + oldLocation == null ? new LatLng(latLngArray[0], latLngArray[1]) : oldLocation, + new float[]{ pdrValues[0] - previousPosX, pdrValues[1] - previousPosY } ); // Pass the location + orientation to the map if (trajectoryMapFragment != null) { - trajectoryMapFragment.updateUserLocation(newLocation, - (float) Math.toDegrees(sensorFusion.passOrientation())); + trajectoryMapFragment.updateUserLocation( + newLocation, + (float) Math.toDegrees(sensorFusion.passOrientation()) + ); } } @@ -295,4 +299,16 @@ public void onResume() { refreshDataHandler.postDelayed(refreshDataTask, 500); } } + + /** + * {@inheritDoc} + * Called by {@link ServerCommunications} when the response to the HTTP info request is received. + * + * @param singletonStringList a single string wrapped in an object array containing the http + * response from the server. + */ + @Override + public void update(Object[] singletonStringList) { + // TODO - Implement + } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java index ee14f69f..ea247129 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java @@ -1,6 +1,9 @@ package com.openpositioning.PositionMe.presentation.fragment; +import static com.openpositioning.PositionMe.utils.UtilConstants.ZOOM_LEVEL_DEFAULT; + import android.os.Bundle; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -45,7 +48,7 @@ public class StartLocationFragment extends Fragment { // Start position of the user to be stored private float[] startPosition = new float[2]; // Zoom level for the Google map - private float zoom = 19f; + private float zoom = ZOOM_LEVEL_DEFAULT; // Instance for managing indoor building overlays (if any) private NucleusBuildingManager nucleusBuildingManager; // Dummy variable for floor index @@ -64,21 +67,30 @@ public StartLocationFragment() { * The map is loaded and configured so that it displays a draggable marker for the start location */ @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView( + @NonNull LayoutInflater inflater, + ViewGroup container, + Bundle savedInstanceState + ) { AppCompatActivity activity = (AppCompatActivity) getActivity(); if (activity != null && activity.getSupportActionBar() != null) { activity.getSupportActionBar().hide(); } - View rootView = inflater.inflate(R.layout.fragment_startlocation, container, false); + View rootView = inflater.inflate( + R.layout.fragment_startlocation, + container, + false + ); // Obtain the start position from the GPS data from the SensorFusion class + // TODO - Why set start=false if we want the start position? + // Is this a badly named argument? startPosition = sensorFusion.getGNSSLatitude(false); // If no location found, zoom the map out if (startPosition[0] == 0 && startPosition[1] == 0) { zoom = 1f; } else { - zoom = 19f; + zoom = ZOOM_LEVEL_DEFAULT; } // Initialize map fragment @@ -88,10 +100,12 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, supportMapFragment.getMapAsync(new OnMapReadyCallback() { /** * {@inheritDoc} - * Controls to allow scrolling, tilting, rotating and a compass view of the - * map are enabled. A marker is added to the map with the start position and a marker - * drag listener is generated to detect when the marker has moved to obtain the new - * location. + * Controls to allow scrolling, tilting, rotating and + * a compass view of the map are enabled. + *

+ * A marker is added to the map with the start position, and + * a marker drag listener is generated to detect + * when the marker has moved to obtain the new location. */ @Override public void onMapReady(GoogleMap mMap) { @@ -107,9 +121,10 @@ public void onMapReady(GoogleMap mMap) { // Create NucleusBuildingManager instance (if needed) nucleusBuildingManager = new NucleusBuildingManager(mMap); - nucleusBuildingManager.getIndoorMapManager().hideMap(); + nucleusBuildingManager.getIndoorMapFragment().setMapVisibility(false); // Add a marker at the current GPS location and move the camera + // TODO - What does startMarker do? position = new LatLng(startPosition[0], startPosition[1]); Marker startMarker = mMap.addMarker(new MarkerOptions() .position(position) @@ -149,7 +164,8 @@ public void onMarkerDrag(Marker marker) {} /** * {@inheritDoc} - * Button onClick listener enabled to detect when to go to next fragment and start PDR recording. + * Button onClick listener enabled to detect when to go + * to next fragment and start PDR recording. */ @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { @@ -185,7 +201,7 @@ public void onClick(View view) { // Otherwise (unexpected host) } else { // Optional: log or handle error - // Log.e("StartLocationFragment", "Unknown host Activity: " + requireActivity()); + Log.e("StartLocationFragment", "Unknown host Activity: " + requireActivity()); } } }); @@ -200,7 +216,7 @@ private void switchFloorNU(int floorIndex) { FloorNK = floorIndex; // Set the current floor index if (nucleusBuildingManager != null) { // Call the switchFloor method of the IndoorMapManager to switch to the specified floor - nucleusBuildingManager.getIndoorMapManager().switchFloor(floorIndex); + nucleusBuildingManager.getIndoorMapFragment().switchFloor(floorIndex); } } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java index eb0bad65..2cb52d28 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java @@ -1,6 +1,11 @@ package com.openpositioning.PositionMe.presentation.fragment; -import android.graphics.Color; +import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_BUILDING_WITHOUT_FLOOR_MAPS; +import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_PATH_COLOUR; +import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_PATH_GNSS; +import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_PATH_MONOCHROME; +import static com.openpositioning.PositionMe.utils.UtilConstants.LINE_WEIGHT_PATH; + import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; @@ -10,26 +15,26 @@ import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Spinner; -import com.google.android.material.switchmaterial.SwitchMaterial; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.*; +import com.google.android.material.switchmaterial.SwitchMaterial; + import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.sensors.SensorFusion; import com.openpositioning.PositionMe.utils.IndoorMapManager; import com.openpositioning.PositionMe.utils.UtilFunctions; -import com.google.android.gms.maps.CameraUpdateFactory; -import com.google.android.gms.maps.GoogleMap; -import com.google.android.gms.maps.SupportMapFragment; -import com.google.android.gms.maps.model.*; import java.util.ArrayList; import java.util.List; - /** * A fragment responsible for displaying a trajectory map using Google Maps. *

@@ -53,6 +58,8 @@ public class TrajectoryMapFragment extends Fragment { + private static final float DEFAULT_LINE_WIDTH = 10f; + private GoogleMap gMap; // Google Maps instance private LatLng currentLocation; // Stores the user's current location private Marker orientationMarker; // Marker representing user's heading @@ -70,7 +77,6 @@ public class TrajectoryMapFragment extends Fragment { private IndoorMapManager indoorMapManager; // Manages indoor mapping private SensorFusion sensorFusion; - // UI private Spinner switchMapSpinner; @@ -81,7 +87,6 @@ public class TrajectoryMapFragment extends Fragment { private Button switchColorButton; private Polygon buildingPolygon; - public TrajectoryMapFragment() { // Required empty public constructor } @@ -129,7 +134,6 @@ public void onMapReady(@NonNull GoogleMap googleMap) { hasPendingCameraMove = false; pendingCameraPosition = null; } - drawBuildingPolygon(); Log.d("TrajectoryMapFragment", "onMapReady: Map is ready!"); @@ -155,12 +159,12 @@ public void onMapReady(@NonNull GoogleMap googleMap) { switchColorButton.setOnClickListener(v -> { if (polyline != null) { if (isRed) { - switchColorButton.setBackgroundColor(Color.BLACK); - polyline.setColor(Color.BLACK); + switchColorButton.setBackgroundColor(COLOUR_PATH_MONOCHROME); + polyline.setColor(COLOUR_PATH_MONOCHROME); isRed = false; } else { - switchColorButton.setBackgroundColor(Color.RED); - polyline.setColor(Color.RED); + switchColorButton.setBackgroundColor(COLOUR_PATH_COLOUR); + polyline.setColor(COLOUR_PATH_COLOUR); isRed = true; } } @@ -169,10 +173,11 @@ public void onMapReady(@NonNull GoogleMap googleMap) { // Floor up/down logic autoFloorSwitch.setOnCheckedChangeListener((compoundButton, isChecked) -> { - //TODO - fix the sensor fusion method to get the elevation (cannot get it from the current method) + // TODO - fix the sensor fusion method to get the elevation (cannot get it from the current method) // float elevationVal = sensorFusion.getElevation(); -// indoorMapManager.setCurrentFloor((int)(elevationVal/indoorMapManager.getFloorHeight()) -// ,true); + float elevationVal = 0f; + int newFloor = (int)(elevationVal/indoorMapManager.getFloorHeight()); + indoorMapManager.setCurrentFloor(newFloor, true); }); floorUpButton.setOnClickListener(v -> { @@ -199,7 +204,7 @@ public void onMapReady(@NonNull GoogleMap googleMap) { * The method also initializes the GNSS polyline for tracking GNSS path. * The method sets the map type to Hybrid and initializes the map with these settings. * - * @param map + * @param map Google Map object */ private void initMapSettings(GoogleMap map) { @@ -215,17 +220,20 @@ private void initMapSettings(GoogleMap map) { // Initialize an empty polyline polyline = map.addPolyline(new PolylineOptions() - .color(Color.RED) - .width(5f) + .color(COLOUR_PATH_COLOUR) + .width(LINE_WEIGHT_PATH) .add() // start empty ); // GNSS path in blue gnssPolyline = map.addPolyline(new PolylineOptions() - .color(Color.BLUE) - .width(5f) + .color(COLOUR_PATH_GNSS) + .width(LINE_WEIGHT_PATH) .add() // start empty ); + + // (Attempt to) Tap through available floor plans + map.setOnGroundOverlayClickListener(groundOverlay -> indoorMapManager.increaseFloor()); } @@ -281,8 +289,9 @@ public void onNothingSelected(AdapterView parent) {} } /** - * Update the user's current location on the map, create or move orientation marker, - * and append to polyline if the user actually moved. + * Update the user's current location on the map, + * create or move orientation marker, and + * append to polyline if the user actually moved. * * @param newLocation The new location to plot. * @param orientation The user’s heading (e.g. from sensor fusion). @@ -435,12 +444,12 @@ public void clearMapAndReset() { // Re-create empty polylines with your chosen colors if (gMap != null) { polyline = gMap.addPolyline(new PolylineOptions() - .color(Color.RED) - .width(5f) + .color(COLOUR_PATH_COLOUR) + .width(LINE_WEIGHT_PATH) .add()); gnssPolyline = gMap.addPolyline(new PolylineOptions() - .color(Color.BLUE) - .width(5f) + .color(COLOUR_PATH_GNSS) + .width(LINE_WEIGHT_PATH) .add()); } } @@ -457,7 +466,7 @@ public void clearMapAndReset() { *

* * Note: The method uses hard-coded vertices for the building polygon. - * + * // TODO - Reimplement to use BuildingPolygon instead *

* * See: {@link com.google.android.gms.maps.model.PolygonOptions} The options for the new polygon. @@ -468,21 +477,16 @@ private void drawBuildingPolygon() { return; } - // nuclear building polygon vertices - LatLng nucleus1 = new LatLng(55.92279538827796, -3.174612147506538); - LatLng nucleus2 = new LatLng(55.92278121423647, -3.174107900816096); - LatLng nucleus3 = new LatLng(55.92288405733954, -3.173843694667146); - LatLng nucleus4 = new LatLng(55.92331786793876, -3.173832892645086); - LatLng nucleus5 = new LatLng(55.923337194112555, -3.1746284301397387); - - - // nkml building polygon vertices - LatLng nkml1 = new LatLng(55.9230343434213, -3.1751847990731954); - LatLng nkml2 = new LatLng(55.923032840563366, -3.174777103346131); - LatLng nkml4 = new LatLng(55.92280139974615, -3.175195527934348); - LatLng nkml3 = new LatLng(55.922793885410734, -3.1747958788136867); + /* + * Polygon vertices for: + * - Fleeming Jenkin Building + * - Faraday Building + * + * Note that Nucleus building and NKML have their + * outlines handled by IndoorMapManager + * */ - LatLng fjb1 = new LatLng(55.92269205199916, -3.1729563477188774);//left top + LatLng fjb1 = new LatLng(55.92269205199916, -3.1729563477188774); LatLng fjb2 = new LatLng(55.922822801570994, -3.172594249522305); LatLng fjb3 = new LatLng(55.92223512226413, -3.171921917547244); LatLng fjb4 = new LatLng(55.9221071265519, -3.1722813131202097); @@ -492,49 +496,41 @@ private void drawBuildingPolygon() { LatLng faraday3 = new LatLng(55.922271383074154, -3.1715191463437162); LatLng faraday4 = new LatLng(55.92220124468304, -3.171705013935158); - - - PolygonOptions buildingPolygonOptions = new PolygonOptions() - .add(nucleus1, nucleus2, nucleus3, nucleus4, nucleus5) - .strokeColor(Color.RED) // Red border - .strokeWidth(10f) // Border width - //.fillColor(Color.argb(50, 255, 0, 0)) // Semi-transparent red fill - .zIndex(1); // Set a higher zIndex to ensure it appears above other overlays - // Options for the new polygon - PolygonOptions buildingPolygonOptions2 = new PolygonOptions() - .add(nkml1, nkml2, nkml3, nkml4, nkml1) - .strokeColor(Color.BLUE) // Blue border - .strokeWidth(10f) // Border width - // .fillColor(Color.argb(50, 0, 0, 255)) // Semi-transparent blue fill - .zIndex(1); // Set a higher zIndex to ensure it appears above other overlays - - PolygonOptions buildingPolygonOptions3 = new PolygonOptions() - .add(fjb1, fjb2, fjb3, fjb4, fjb1) - .strokeColor(Color.GREEN) // Green border - .strokeWidth(10f) // Border width - //.fillColor(Color.argb(50, 0, 255, 0)) // Semi-transparent green fill - .zIndex(1); // Set a higher zIndex to ensure it appears above other overlays - - PolygonOptions buildingPolygonOptions4 = new PolygonOptions() - .add(faraday1, faraday2, faraday3, faraday4, faraday1) - .strokeColor(Color.YELLOW) // Yellow border - .strokeWidth(10f) // Border width - //.fillColor(Color.argb(50, 255, 255, 0)) // Semi-transparent yellow fill - .zIndex(1); // Set a higher zIndex to ensure it appears above other overlays - + PolygonOptions buildingFleeming = new PolygonOptions() + .add(fjb1, fjb2, fjb3, fjb4, fjb1) + .strokeColor(COLOUR_BUILDING_WITHOUT_FLOOR_MAPS) + .strokeWidth(DEFAULT_LINE_WIDTH) + //.fillColor(Color.argb(50, 0, 255, 0)) // Semi-transparent green fill + .zIndex(1); // Set a higher zIndex to ensure it appears above other overlays + + PolygonOptions buildingFaraday = new PolygonOptions() + .add(faraday1, faraday2, faraday3, faraday4, faraday1) + .strokeColor(COLOUR_BUILDING_WITHOUT_FLOOR_MAPS) + .strokeWidth(DEFAULT_LINE_WIDTH) + //.fillColor(Color.argb(50, 255, 255, 0)) // Semi-transparent yellow fill + .zIndex(1); // Set a higher zIndex to ensure it appears above other overlays + + ArrayList buildingPolygons = new ArrayList<>(); + buildingPolygons.add(buildingFleeming); + buildingPolygons.add(buildingFaraday); // Remove the old polygon if it exists if (buildingPolygon != null) { buildingPolygon.remove(); } - // Add the polygon to the map - buildingPolygon = gMap.addPolygon(buildingPolygonOptions); - gMap.addPolygon(buildingPolygonOptions2); - gMap.addPolygon(buildingPolygonOptions3); - gMap.addPolygon(buildingPolygonOptions4); - Log.d("TrajectoryMapFragment", "Building polygon added, vertex count: " + buildingPolygon.getPoints().size()); + // Add the polygons to the map + for (PolygonOptions building : buildingPolygons){ + buildingPolygon = gMap.addPolygon(building); + } + Log.d( + "TrajectoryMapFragment", + "Building polygon added, vertex count: " + buildingPolygon.getPoints().size() + ); + + // For buildings with floor maps, draw outline + indoorMapManager.setIndicationOfIndoorMap(); } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java index dbf809dd..abc9e3dc 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java @@ -1,4 +1,7 @@ package com.openpositioning.PositionMe.sensors; + +import static com.openpositioning.PositionMe.utils.UtilConstants.URL_API; + import android.content.Context; import android.util.Log; @@ -31,7 +34,7 @@ public class WiFiPositioning { // Queue for storing the POST requests made private RequestQueue requestQueue; // URL for WiFi positioning API - private static final String url="https://openpositioning.org/api/position/fine"; + private static final String url = URL_API + "/position/fine"; /** * Getter for the WiFi positioning coordinates obtained using openpositioning API diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/BuildingPolygon.java b/app/src/main/java/com/openpositioning/PositionMe/utils/BuildingPolygon.java index 2d0a3265..3e4f4fc1 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/BuildingPolygon.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/BuildingPolygon.java @@ -1,35 +1,41 @@ package com.openpositioning.PositionMe.utils; - import com.google.android.gms.maps.model.LatLng; import java.util.ArrayList; import java.util.List; /** - * Class used to check for a pre-defined set of coordinates if it is in a Building (Nucleus, Library) - * (Can be used to add more buildings by adding the coordinates of the buildings and adding methods) + * Class used to check for a pre-defined set of coordinates + * if it is in a building + * * @see IndoorMapManager Used by the the IndoorFloorManager class * @author Arun Gopalakrishnan */ public class BuildingPolygon { - // Defining the coordinates of the building boundaries (rectangular boundaries based on floor map shape) + // Defining the coordinates of the building boundaries + // (rectangular boundaries based on floor map shape) + // North-East and South-West Coordinates for the Nucleus Building - public static final LatLng NUCLEUS_NE=new LatLng(55.92332001571212, -3.1738768212979593); - public static final LatLng NUCLEUS_SW=new LatLng(55.92282257022002, -3.1745956532857647); + public static final LatLng NUCLEUS_NE = + new LatLng(55.92332001571212, -3.1738768212979593); + public static final LatLng NUCLEUS_SW = + new LatLng(55.92282257022002, -3.1745956532857647); // North-East and South-West Coordinates for the Kenneth and Murray Library Building - public static final LatLng LIBRARY_NE=new LatLng(55.92306692576906, -3.174771893078224); - public static final LatLng LIBRARY_SW=new LatLng(55.92281045664704, -3.175184089079065); + public static final LatLng LIBRARY_NE = + new LatLng(55.92306692576906, -3.174771893078224); + public static final LatLng LIBRARY_SW = + new LatLng(55.92281045664704, -3.175184089079065); // Boundary coordinates of the Nucleus building (clockwise) - public static final List NUCLEUS_POLYGON = new ArrayList() {{ + public static final List NUCLEUS_POLYGON = new ArrayList<>() {{ add(BuildingPolygon.NUCLEUS_NE); add(new LatLng(BuildingPolygon.NUCLEUS_SW.latitude, BuildingPolygon.NUCLEUS_NE.longitude)); // South-East add(BuildingPolygon.NUCLEUS_SW); add(new LatLng(BuildingPolygon.NUCLEUS_NE.latitude, BuildingPolygon.NUCLEUS_SW.longitude)); // North-West }}; //Boundary coordinates of the Library building (clockwise) - public static final List LIBRARY_POLYGON = new ArrayList() {{ + public static final List LIBRARY_POLYGON = new ArrayList<>() {{ add(BuildingPolygon.LIBRARY_NE); add(new LatLng(BuildingPolygon.LIBRARY_SW.latitude,BuildingPolygon.LIBRARY_NE.longitude));//(South-East) add(BuildingPolygon.LIBRARY_SW); @@ -64,7 +70,7 @@ public static boolean inLibrary(LatLng point){ */ private static boolean pointInPolygon(LatLng point, List polygon) { int numCrossings = 0; - List path=polygon; + List path = polygon; // For each edge for (int i=0; i < path.size(); i++) { LatLng a = path.get(i); @@ -79,7 +85,7 @@ private static boolean pointInPolygon(LatLng point, List polygon) { } } - //if odd number of numCrossings return true (point is in polygon) + // If odd number of numCrossings, return true (point is in polygon) return (numCrossings % 2 == 1); } @@ -95,11 +101,11 @@ private static boolean pointInPolygon(LatLng point, List polygon) { */ private static boolean crossingSegment(LatLng point, LatLng a,LatLng b) { double pointLng = point.longitude, - pointLat = point.latitude, - aLng = a.longitude, - aLat = a.latitude, - bLng = b.longitude, - bLat = b.latitude; + pointLat = point.latitude, + aLng = a.longitude, + aLat = a.latitude, + bLng = b.longitude, + bLat = b.latitude; if (aLat > bLat) { aLng = b.longitude; aLat = b.latitude; diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java index 9d7167df..20393963 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java @@ -1,6 +1,7 @@ package com.openpositioning.PositionMe.utils; -import android.graphics.Color; +import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_BUILDING_WITH_FLOOR_MAPS; + import android.util.Log; import com.google.android.gms.maps.GoogleMap; @@ -64,12 +65,13 @@ public IndoorMapManager(GoogleMap map){ } /** - * Function to update the current location of user and display the indoor map - * if user in building with indoor map available - * @param currentLocation new location of user + * Function to update the current location of user + * and display the indoor map if user in building + * with indoor map available + * @param currentLocation Location of user */ public void setCurrentLocation(LatLng currentLocation){ - this.currentLocation=currentLocation; + this.currentLocation = currentLocation; setBuildingOverlay(); } @@ -156,15 +158,15 @@ else if (BuildingPolygon.inLibrary(currentLocation) && !isIndoorMapSet) { .image(BitmapDescriptorFactory.fromResource(R.drawable.libraryg)) .positionFromBounds(LIBRARY)); isIndoorMapSet = true; - currentFloor=0; - floorHeight=LIBRARY_FLOOR_HEIGHT; + currentFloor = 0; + floorHeight = LIBRARY_FLOOR_HEIGHT; } // Removing overlay if user no longer in area with indoor maps available else if (!BuildingPolygon.inLibrary(currentLocation) && !BuildingPolygon.inNucleus(currentLocation)&& isIndoorMapSet){ groundOverlay.remove(); isIndoorMapSet = false; - currentFloor=0; + currentFloor = 0; } } catch (Exception ex) { Log.e("Error with overlay, Exception:", ex.toString()); @@ -172,22 +174,24 @@ else if (!BuildingPolygon.inLibrary(currentLocation) && } /** - * Function used to set the indication of available floor maps for building using green Polylines - * along the building's boundaries. + * Function used to set the indication of available floor maps + * for building using green Polylines along the building's boundaries. */ public void setIndicationOfIndoorMap(){ - //Indicator for Nucleus Building - List points=BuildingPolygon.NUCLEUS_POLYGON; + // Indicator for Nucleus Building + List points = BuildingPolygon.NUCLEUS_POLYGON; // Closing Boundary points.add(BuildingPolygon.NUCLEUS_POLYGON.get(0)); - gMap.addPolyline(new PolylineOptions().color(Color.GREEN) - .addAll(points)); + gMap.addPolyline(new PolylineOptions() + .color(COLOUR_BUILDING_WITH_FLOOR_MAPS) + .addAll(points)); // Indicator for the Library Building - points=BuildingPolygon.LIBRARY_POLYGON; + points = BuildingPolygon.LIBRARY_POLYGON; // Closing Boundary points.add(BuildingPolygon.LIBRARY_POLYGON.get(0)); - gMap.addPolyline(new PolylineOptions().color(Color.GREEN) - .addAll(points)); + gMap.addPolyline(new PolylineOptions() + .color(COLOUR_BUILDING_WITH_FLOOR_MAPS) + .addAll(points)); } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/NucleusBuildingManager.java b/app/src/main/java/com/openpositioning/PositionMe/utils/NucleusBuildingManager.java index 3570e8ad..a7226f67 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/NucleusBuildingManager.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/NucleusBuildingManager.java @@ -32,14 +32,34 @@ public NucleusBuildingManager(GoogleMap map) { buildingPolygon.add(new LatLng(N2, -W1)); // Northwest corner // Initialize the indoor map of each layer - indoorMapFragment.addFloor(0, R.drawable.floor_lg, new LatLngBounds(buildingPolygon.get(0), buildingPolygon.get(2))); - indoorMapFragment.addFloor(1, R.drawable.floor_ug, new LatLngBounds(buildingPolygon.get(0), buildingPolygon.get(2))); - indoorMapFragment.addFloor(2, R.drawable.floor_1, new LatLngBounds(buildingPolygon.get(0), buildingPolygon.get(2))); - indoorMapFragment.addFloor(3, R.drawable.floor_2, new LatLngBounds(buildingPolygon.get(0), buildingPolygon.get(2))); - indoorMapFragment.addFloor(4, R.drawable.floor_3, new LatLngBounds(buildingPolygon.get(0), buildingPolygon.get(2))); + indoorMapFragment.addFloor( + 0, + R.drawable.floor_lg, + new LatLngBounds(buildingPolygon.get(0),buildingPolygon.get(2)) + ); + indoorMapFragment.addFloor( + 1, + R.drawable.floor_ug, + new LatLngBounds(buildingPolygon.get(0), buildingPolygon.get(2)) + ); + indoorMapFragment.addFloor( + 2, + R.drawable.floor_1, + new LatLngBounds(buildingPolygon.get(0), buildingPolygon.get(2)) + ); + indoorMapFragment.addFloor( + 3, + R.drawable.floor_2, + new LatLngBounds(buildingPolygon.get(0), buildingPolygon.get(2)) + ); + indoorMapFragment.addFloor( + 4, + R.drawable.floor_3, + new LatLngBounds(buildingPolygon.get(0), buildingPolygon.get(2)) + ); } - public IndoorMapFragment getIndoorMapManager() { + public IndoorMapFragment getIndoorMapFragment() { return indoorMapFragment; } @@ -72,7 +92,11 @@ public boolean isPointInBuilding(LatLng point) { * @param vertB the second vertex of the edge * @return true if the ray intersects with the edge, false otherwise */ - private boolean rayCastIntersect(LatLng point, LatLng vertA, LatLng vertB) { + private boolean rayCastIntersect( + LatLng point, + LatLng vertA, + LatLng vertB + ) { double aY = vertA.latitude; double bY = vertB.latitude; double aX = vertA.longitude; diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java b/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java index 40c937ab..8e8acbac 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java @@ -53,13 +53,12 @@ public PermissionManager(Activity activity, PermissionCallback callback) { this.callback = callback; // Populate required permissions + // For API < 29, also request broad storage permissions + // For API >= 29, also request ACTIVITY_RECOGNITION requiredPermissions.add(Manifest.permission.ACCESS_FINE_LOCATION); requiredPermissions.add(Manifest.permission.ACCESS_COARSE_LOCATION); requiredPermissions.add(Manifest.permission.ACCESS_WIFI_STATE); requiredPermissions.add(Manifest.permission.CHANGE_WIFI_STATE); - // For API < 29, also request broad storage permissions - // For API >= 29, also request ACTIVITY_RECOGNITION - // (We can do the check here or just always add them; the OS will skip as needed.) requiredPermissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); requiredPermissions.add(Manifest.permission.READ_EXTERNAL_STORAGE); requiredPermissions.add(Manifest.permission.ACTIVITY_RECOGNITION); @@ -71,9 +70,9 @@ public PermissionManager(Activity activity, PermissionCallback callback) { public void checkAndRequestPermissions() { if (!hasAllPermissions()) { ActivityCompat.requestPermissions( - activity, - requiredPermissions.toArray(new String[0]), - ALL_PERMISSIONS_REQUEST + activity, + requiredPermissions.toArray(new String[0]), + ALL_PERMISSIONS_REQUEST ); } else { // Already granted @@ -90,9 +89,11 @@ public void checkAndRequestPermissions() { * permissionManager.handleRequestPermissionsResult(requestCode, permissions, grantResults); * } */ - public void handleRequestPermissionsResult(int requestCode, - String[] permissions, - int[] grantResults) { + public void handleRequestPermissionsResult( + int requestCode, + String[] permissions, + int[] grantResults + ) { if (requestCode == ALL_PERMISSIONS_REQUEST) { boolean allGranted = true; List deniedPermissions = new ArrayList<>(); @@ -144,13 +145,13 @@ private boolean hasAllPermissions() { private void showFirstDenialDialog() { if (!activity.isFinishing()) { new AlertDialog.Builder(activity) - .setTitle("Permissions Denied") - .setMessage("Certain permissions are essential for this app to function.\n" + - "Tap GRANT to try again or EXIT to close the app.") - .setCancelable(false) - .setPositiveButton("Grant", (dialog, which) -> checkAndRequestPermissions()) - .setNegativeButton("Exit", (dialog, which) -> activity.finish()) - .show(); + .setTitle("Permissions Denied") + .setMessage("Certain permissions are essential for this app to function.\n" + + "Tap GRANT to try again or EXIT to close the app.") + .setCancelable(false) + .setPositiveButton("Grant", (dialog, which) -> checkAndRequestPermissions()) + .setNegativeButton("Exit", (dialog, which) -> activity.finish()) + .show(); } } @@ -160,18 +161,18 @@ private void showFirstDenialDialog() { private void showPermanentDenialDialog() { if (!activity.isFinishing()) { new AlertDialog.Builder(activity) - .setTitle("Permission Permanently Denied") - .setMessage("Some permissions have been permanently denied. " + - "Please go to Settings to enable them manually.") - .setCancelable(false) - .setPositiveButton("Settings", (dialog, which) -> { - Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); - Uri uri = Uri.fromParts("package", activity.getPackageName(), null); - intent.setData(uri); - activity.startActivity(intent); - }) - .setNegativeButton("Exit", (dialog, which) -> activity.finish()) - .show(); + .setTitle("Permission Permanently Denied") + .setMessage("Some permissions have been permanently denied. " + + "Please go to Settings to enable them manually.") + .setCancelable(false) + .setPositiveButton("Settings", (dialog, which) -> { + Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", activity.getPackageName(), null); + intent.setData(uri); + activity.startActivity(intent); + }) + .setNegativeButton("Exit", (dialog, which) -> activity.finish()) + .show(); } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java b/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java new file mode 100644 index 00000000..6ad91a4b --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java @@ -0,0 +1,34 @@ +package com.openpositioning.PositionMe.utils; + +import android.graphics.Color; + +import com.openpositioning.PositionMe.BuildConfig; + +public class UtilConstants { + + public static final int COLOUR_BUILDING_WITHOUT_FLOOR_MAPS = Color.YELLOW; + public static final int COLOUR_BUILDING_WITH_FLOOR_MAPS = Color.GREEN; + public static final int COLOUR_PATH_COLOUR = Color.RED; + public static final int COLOUR_PATH_MONOCHROME = Color.BLACK; + public static final int COLOUR_PATH_GNSS = Color.BLUE; + + public static final float LINE_WEIGHT_PATH = 5f; + + public static final float ZOOM_LEVEL_DEFAULT = 19f; + + public static final String API_KEY_USER = BuildConfig.OPENPOSITIONING_API_KEY; + public static final String API_KEY_MASTER = BuildConfig.OPENPOSITIONING_MASTER_KEY; + public static final String URL_API = "https://openpositioning.org/api"; + public static final String API_GET_USER_TRAJECTORIES = "/live/users/trajectories"; + public static final String API_GET_TRAJECTORIES = "/live/trajectory/download"; + public static final String API_POST_TRAJECTORIES = "/live/trajectory/upload"; + + public static final String URL_GET_USER_TRAJECTORIES = + URL_API + API_GET_USER_TRAJECTORIES + "/" + API_KEY_USER + "?key=" + API_KEY_MASTER; + + // TODO - Extract function to allow N trajectories downloaded, not just 30 + public static final String URL_GET_TRAJECTORIES = + URL_API + API_GET_TRAJECTORIES + "/" + API_KEY_USER + "?skip=0&limit=30&key=" + API_KEY_MASTER; + public static final String PROTOCOL_MULTIPART = "multipart/form-data"; + public static final String PROTOCOL_APP_JSON = "application/json"; +} diff --git a/app/src/main/res/layout-small/fragment_home.xml b/app/src/main/res/layout-small/fragment_home.xml index bd713b67..337c152f 100644 --- a/app/src/main/res/layout-small/fragment_home.xml +++ b/app/src/main/res/layout-small/fragment_home.xml @@ -162,7 +162,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" - android:text="Indoor Positioning \n (In Development)" + android:text="@string/button_indoorPositioning" android:textColor="@color/md_theme_onPrimary" android:backgroundTint="#9E9E9E" android:textSize="14sp" diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 99c1ef13..0ff416e7 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -159,15 +159,14 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" - android:text="Indoor Positioning \n (In Development)" + android:backgroundTint="@color/primaryBlue" + android:text="@string/button_indoorPositioning" android:textColor="@color/md_theme_onPrimary" - android:backgroundTint="#9E9E9E" android:textSize="14sp" app:cornerRadius="14dp" - app:layout_constraintTop_toBottomOf="@id/buttonGrid" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toEndOf="parent" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/fragment_trajectory_map.xml b/app/src/main/res/layout/fragment_trajectory_map.xml index a8ab9118..ada01e35 100644 --- a/app/src/main/res/layout/fragment_trajectory_map.xml +++ b/app/src/main/res/layout/fragment_trajectory_map.xml @@ -10,7 +10,7 @@ android:id="@+id/trajectoryMap" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" - android:layout_height="match_parent" /> + android:layout_height="match_parent"/> + + + app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/values/googlemaps_api.xml b/app/src/main/res/values/googlemaps_api.xml deleted file mode 100644 index 12c34f16..00000000 --- a/app/src/main/res/values/googlemaps_api.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - ${BuildConfig.MAPS_API_KEY} - - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a2fa6043..49b8a35e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -109,7 +109,7 @@ Default building assumptions Floor height in meters - Color + Colour 🛰 Show GNSS Floor Down button Floor Up button @@ -136,5 +136,7 @@ Play End Exit + Indoor Positioning (Coming Soon) + Map Type \ No newline at end of file From fd60152c4db3e5e24b13fb9a4292af0a6c95b75a Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Thu, 5 Feb 2026 19:52:43 +0000 Subject: [PATCH 11/65] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 53d81c73..496b6ae6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Embedded Mobile and Wireless Systems (EWireless) 5 2025/25 +# Embedded Mobile and Wireless Systems (EWireless) 5 2025/26 ## Coursework 1 - Group 13 [![Build Status](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android.yml) From 8d2786c9fc9ef87ae85fc10289d161ddda8de77f Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Sat, 7 Feb 2026 12:37:27 +0000 Subject: [PATCH 12/65] [Infra] Upstream Maps API Key Fix (#21) --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0dc657a0..46cbf440 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -34,7 +34,7 @@ android { "\"${localProperties['OPENPOSITIONING_MASTER_KEY'] ?: ''}\"" // Add reference to maps API key for manifest file - resValue 'string', 'google_maps_key', (localProperties['MAPS_API_KEY'] ?: '') + manifestPlaceholders = [MAPS_API_KEY:localProperties['MAPS_API_KEY']?:""] } buildFeatures { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1b23a3f1..10a576e3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -82,7 +82,7 @@ + android:value="${MAPS_API_KEY}"/> Date: Sun, 8 Feb 2026 17:15:03 +0000 Subject: [PATCH 13/65] [Feat] Sensor Data - Bluetooth (#22) --- .../PositionMe/TrajectoryMetadataTest.java | 36 ++++ .../sensors/BleDataProcessorTest.java | 33 ++++ app/src/main/AndroidManifest.xml | 6 + .../fragment/MeasurementsFragment.java | 51 ++++- .../fragment/StartLocationFragment.java | 6 +- .../viewitems/BleListAdapter.java | 85 +++++++++ .../presentation/viewitems/BleViewHolder.java | 37 ++++ .../viewitems/WifiListAdapter.java | 5 + .../PositionMe/sensors/BleDataProcessor.java | 177 ++++++++++++++++++ .../PositionMe/sensors/BleDevice.java | 38 ++++ .../PositionMe/sensors/SensorFusion.java | 130 +++++++++++-- .../PositionMe/sensors/WifiDataProcessor.java | 27 ++- .../main/res/drawable/ic_baseline_bt_24.xml | 10 + .../main/res/layout/fragment_measurements.xml | 78 +++++++- .../main/res/layout/item_ble_card_view.xml | 77 ++++++++ app/src/main/res/values/strings.xml | 2 + .../PositionMe/WifiDeduplicationTest.java | 45 +++++ 17 files changed, 810 insertions(+), 33 deletions(-) create mode 100644 app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java create mode 100644 app/src/androidTest/java/com/openpositioning/PositionMe/sensors/BleDataProcessorTest.java create mode 100644 app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java create mode 100644 app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleViewHolder.java create mode 100644 app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java create mode 100644 app/src/main/java/com/openpositioning/PositionMe/sensors/BleDevice.java create mode 100644 app/src/main/res/drawable/ic_baseline_bt_24.xml create mode 100644 app/src/main/res/layout/item_ble_card_view.xml create mode 100644 app/src/test/java/com/openpositioning/PositionMe/WifiDeduplicationTest.java diff --git a/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java b/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java new file mode 100644 index 00000000..c0b83854 --- /dev/null +++ b/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java @@ -0,0 +1,36 @@ +package com.openpositioning.PositionMe; + +import org.junit.Test; +import static org.junit.Assert.*; + +public class TrajectoryMetadataTest { + + @Test + public void testTrajectoryIdGeneration() { + String trajectoryId = generateTrajectoryId(); + + assertNotNull("Trajectory ID should not be null", trajectoryId); + assertTrue("Trajectory ID should start with 'android_'", + trajectoryId.startsWith("android_")); + assertTrue("Trajectory ID should contain timestamp", + trajectoryId.length() > 20); + } + + @Test + public void testTrajectoryVersionIsCorrect() { + Traj.Trajectory.Builder builder = Traj.Trajectory.newBuilder() + .setTrajectoryVersion(2.0f) + .setTrajectoryId("test_id"); + + Traj.Trajectory trajectory = builder.build(); + + assertEquals("Trajectory version should be 2.0", + 2.0f, trajectory.getTrajectoryVersion(), 0.001f); + } + + private String generateTrajectoryId() { + String deviceModel = android.os.Build.MODEL.replaceAll("\\s+", "_"); + long timestamp = System.currentTimeMillis(); + return String.format("android_%s_%d", deviceModel, timestamp); + } +} \ No newline at end of file diff --git a/app/src/androidTest/java/com/openpositioning/PositionMe/sensors/BleDataProcessorTest.java b/app/src/androidTest/java/com/openpositioning/PositionMe/sensors/BleDataProcessorTest.java new file mode 100644 index 00000000..2aedf63d --- /dev/null +++ b/app/src/androidTest/java/com/openpositioning/PositionMe/sensors/BleDataProcessorTest.java @@ -0,0 +1,33 @@ +package com.openpositioning.PositionMe.sensors; + +import android.content.Context; +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import org.junit.Test; +import org.junit.runner.RunWith; +import static org.junit.Assert.*; + +@RunWith(AndroidJUnit4.class) +public class BleDataProcessorTest { + + @Test + public void testBleProcessorInitialisation() { + Context context = InstrumentationRegistry.getInstrumentation().getTargetContext(); + BleDataProcessor processor = new BleDataProcessor(context); + assertNotNull("BLE processor should initialise", processor); + } + + @Test + public void testObserverRegistration() { + Context context = InstrumentationRegistry.getInstrumentation().getTargetContext(); + BleDataProcessor processor = new BleDataProcessor(context); + + Observer testObserver = objList -> { + // Test observer + }; + + processor.registerObserver(testObserver); + // If no exception, test passes + assertTrue(true); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 10a576e3..7f2fc293 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -37,6 +37,12 @@ + + + + + + diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java index 20c43987..fdff5d23 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java @@ -16,10 +16,12 @@ import androidx.recyclerview.widget.RecyclerView; import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.sensors.BleDevice; import com.openpositioning.PositionMe.sensors.SensorFusion; import com.openpositioning.PositionMe.sensors.SensorTypes; import com.openpositioning.PositionMe.sensors.Wifi; import com.openpositioning.PositionMe.presentation.viewitems.WifiListAdapter; +import com.openpositioning.PositionMe.presentation.viewitems.BleListAdapter; import java.util.List; import java.util.Map; @@ -47,9 +49,12 @@ public class MeasurementsFragment extends Fragment { // UI elements private ConstraintLayout sensorMeasurementList; private RecyclerView wifiListView; + private RecyclerView bleListView; // List of string resource IDs private int[] prefaces; private int[] gnssPrefaces; + private WifiListAdapter wifiAdapter; + private BleListAdapter bleAdapter; /** @@ -125,6 +130,44 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat sensorMeasurementList = (ConstraintLayout) getView().findViewById(R.id.sensorMeasurementList); wifiListView = (RecyclerView) getView().findViewById(R.id.wifiList); wifiListView.setLayoutManager(new LinearLayoutManager(getActivity())); + wifiAdapter = new WifiListAdapter(getActivity(), new java.util.ArrayList<>()); + wifiListView.setAdapter(wifiAdapter); + + bleListView = (RecyclerView) getView().findViewById(R.id.bleList); + bleListView.setLayoutManager(new LinearLayoutManager(getActivity())); + bleAdapter = new BleListAdapter(getActivity(), new java.util.ArrayList<>()); + bleListView.setAdapter(bleAdapter); + + CardView wifiTitleCard = getView().findViewById(R.id.dividerLine); + TextView wifiTitleText = getView().findViewById(R.id.wifiTitle); + + CardView bleTitleCard = getView().findViewById(R.id.bleTitle); + TextView bleTitleText = getView().findViewById(R.id.bleTitleText); + + // Initially hide both lists + wifiListView.setVisibility(View.GONE); + bleListView.setVisibility(View.GONE); + + wifiTitleCard.setOnClickListener(v -> { + if (wifiListView.getVisibility() == View.VISIBLE) { + wifiListView.setVisibility(View.GONE); + } else { + wifiListView.setVisibility(View.VISIBLE); + bleListView.setVisibility(View.GONE); + } + }); + + bleTitleCard.setOnClickListener(v -> { + if (bleListView.getVisibility() == View.VISIBLE) { + bleListView.setVisibility(View.GONE); + } else { + bleListView.setVisibility(View.VISIBLE); + wifiListView.setVisibility(View.GONE); + } + }); + + wifiTitleText.setOnClickListener(v -> wifiTitleCard.performClick()); + bleTitleText.setOnClickListener(v -> bleTitleCard.performClick()); } /** @@ -168,7 +211,13 @@ else if(values.length == 2){ List wifiObjects = sensorFusion.getWifiList(); // If there are WiFi networks visible, update the recycler view with the data. if(wifiObjects != null) { - wifiListView.setAdapter(new WifiListAdapter(getActivity(), wifiObjects)); + wifiAdapter.updateData(wifiObjects); + } + // Get all Bluetooth values - convert to list of strings + List bleObjects = sensorFusion.getBleList(); + // If there are Bluetooth devices visible, update the recycler view with the data. + if(bleObjects != null && !bleObjects.isEmpty()) { + bleAdapter.updateData(bleObjects); } // Restart the data updater task in REFRESH_TIME milliseconds. refreshDataHandler.postDelayed(refreshTableTask, REFRESH_TIME); diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java index ea247129..3d2416cc 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java @@ -82,9 +82,7 @@ public View onCreateView( false ); - // Obtain the start position from the GPS data from the SensorFusion class - // TODO - Why set start=false if we want the start position? - // Is this a badly named argument? + // Get current GPS location to display as default marker position startPosition = sensorFusion.getGNSSLatitude(false); // If no location found, zoom the map out if (startPosition[0] == 0 && startPosition[1] == 0) { @@ -186,8 +184,8 @@ public void onClick(View view) { // If the Activity is RecordingActivity if (requireActivity() instanceof RecordingActivity) { // Start sensor recording + set the start location - sensorFusion.startRecording(); sensorFusion.setStartGNSSLatitude(startPosition); + sensorFusion.startRecording(); // Now switch to the recording screen ((RecordingActivity) requireActivity()).showRecordingScreen(); diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java new file mode 100644 index 00000000..24bfecc6 --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java @@ -0,0 +1,85 @@ +package com.openpositioning.PositionMe.presentation.viewitems; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.sensors.BleDevice; + +import java.util.List; + +/** + * Adapter used for displaying BLE device data. + * + * @see BleViewHolder corresponding View Holder class + * @see com.openpositioning.PositionMe.R.layout#item_ble_card_view xml layout file + * + * @author Vlad Stratulat + */ +public class BleListAdapter extends RecyclerView.Adapter { + + Context context; + List items; + + /** + * Default public constructor with context for inflating views and list to be displayed. + * + * @param context application context to enable inflating views used in the list. + * @param items list of BleDevice objects to be displayed in the list. + * + * @see BleDevice the data class. + */ + public BleListAdapter(Context context, List items) { + this.context = context; + this.items = items; + } + + /** + * {@inheritDoc} + * @see com.openpositioning.PositionMe.R.layout#item_ble_card_view xml layout file + */ + @NonNull + @Override + public BleViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new BleViewHolder(LayoutInflater.from(context).inflate(R.layout.item_ble_card_view, parent, false)); + } + + /** + * {@inheritDoc} + * Formats and assigns the data fields from the BleDevice object to the TextView fields. + * + * @see BleDevice data class + * @see com.openpositioning.PositionMe.R.string formatting for strings. + * @see com.openpositioning.PositionMe.R.layout#item_ble_card_view xml layout file + */ + @Override + public void onBindViewHolder(@NonNull BleViewHolder holder, int position) { + BleDevice device = items.get(position); + String macString = context.getString(R.string.mac, device.getMacAddress()); + holder.macAddress.setText(macString); + String nameString = context.getString(R.string.name, device.getName()); + holder.name.setText(nameString); + String levelString = context.getString(R.string.db, Integer.toString(device.getRssi())); + holder.rssi.setText(levelString); + } + + /** + * {@inheritDoc} + * Number of BleDevice objects. + * + * @return number of items in the list. + */ + @Override + public int getItemCount() { + return items.size(); + } + + public void updateData(List newItems) { + this.items = newItems; + notifyDataSetChanged(); + } +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleViewHolder.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleViewHolder.java new file mode 100644 index 00000000..e83b0584 --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleViewHolder.java @@ -0,0 +1,37 @@ +package com.openpositioning.PositionMe.presentation.viewitems; + +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.openpositioning.PositionMe.R; + +/** + * View holder class for the RecyclerView displaying BLE device data. + * + * @see BleListAdapter the corresponding list adapter. + * @see com.openpositioning.PositionMe.R.layout#item_ble_card_view xml layout file + * + * @author Vlad Stratulat + */ +public class BleViewHolder extends RecyclerView.ViewHolder { + + TextView macAddress; + TextView name; + TextView rssi; + + /** + * {@inheritDoc} + * Assign TextView fields corresponding to BleDevice attributes. + * + * @see com.openpositioning.PositionMe.sensors.BleDevice the data class + */ + public BleViewHolder(@NonNull View itemView) { + super(itemView); + macAddress = itemView.findViewById(R.id.bleAddressItem); + name = itemView.findViewById(R.id.bleNameItem); + rssi = itemView.findViewById(R.id.bleRssiItem); + } +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java index 887e7689..3e6a42bc 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java @@ -74,4 +74,9 @@ public void onBindViewHolder(@NonNull WifiViewHolder holder, int position) { public int getItemCount() { return items.size(); } + + public void updateData(List newItems) { + this.items = newItems; + notifyDataSetChanged(); + } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java new file mode 100644 index 00000000..7cd75c3a --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java @@ -0,0 +1,177 @@ +package com.openpositioning.PositionMe.sensors; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothManager; +import android.bluetooth.le.BluetoothLeScanner; +import android.bluetooth.le.ScanCallback; +import android.bluetooth.le.ScanResult; +import android.bluetooth.le.ScanSettings; +import android.content.Context; +import android.content.pm.PackageManager; +import android.os.ParcelUuid; + +import java.util.ArrayList; +import java.util.List; +import java.util.Timer; +import java.util.TimerTask; + +/** + * BLE data gathering and processing for fingerprinting. + * + * Scans for nearby Bluetooth Low Energy beacons and devices, collecting MAC addresses, + * signal strength, and advertised data for positioning. + * + * @author Vlad Stratulat + */ +public class BleDataProcessor implements Observable { + + //Time over which a new scan will be initiated (same as WiFi) + private static final long SCAN_INTERVAL = 5000; + + // Application context for handling permissions and BluetoothLeScanner instances + private final Context context; + // Bluetooth scanner for scanning devices via the android system + private BluetoothLeScanner bleScanner; + //List of observers to be notified when changes are detected + private ArrayList observers; + //List of nearby devices + private BleDevice[] bleData; + // Timer object + private Timer bleScanTimer; + + public BleDataProcessor(Context context) { + this.context = context; + this.observers = new ArrayList<>(); + + if (!hasPermission()) { + return; + } + + BluetoothManager bluetoothManager = + (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE); + + if (bluetoothManager == null) { + return; + } + + BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter(); + + if (bluetoothAdapter != null && bluetoothAdapter.isEnabled()) { + bleScanner = bluetoothAdapter.getBluetoothLeScanner(); + if (bleScanner != null) { + startListening(); + } + } + } + + private boolean hasPermission() { + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) { + return (context.checkSelfPermission(Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_GRANTED && + context.checkSelfPermission(Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED); + } else { + return (context.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED); + } + } + + private final ScanCallback scanCallback = new ScanCallback() { + @Override + public void onBatchScanResults(List results) { + if (results.isEmpty() || !hasPermission()) { + return; + } + + // Process results + bleData = new BleDevice[results.size()]; + for (int i = 0; i < results.size(); i++) { + ScanResult scanResult = results.get(i); + bleData[i] = new BleDevice(); + bleData[i].setMacAddress(scanResult.getDevice().getAddress()); + bleData[i].setRssi(scanResult.getRssi()); + + if (hasPermission()) { + @SuppressLint("MissingPermission") + String name = scanResult.getDevice().getName(); + bleData[i].setName(name != null ? name : ""); + } + bleData[i].setTxPowerLevel(scanResult.getTxPower()); + + if (scanResult.getScanRecord() != null) { + List serviceUuids = scanResult.getScanRecord().getServiceUuids(); + if (serviceUuids != null && !serviceUuids.isEmpty()) { + String[] uuids = new String[serviceUuids.size()]; + for (int j = 0; j < serviceUuids.size(); j++) { + uuids[j] = serviceUuids.get(j).toString(); + } + bleData[i].setServiceUuids(uuids); + } + + bleData[i].setManufacturerData( + scanResult.getScanRecord().getManufacturerSpecificData()); + bleData[i].setAdvertiseFlags( + scanResult.getScanRecord().getAdvertiseFlags()); + } + } + + notifyObservers(0); + } + + @Override + public void onScanFailed(int errorCode) { + // Silent failure + } + }; + + private void startBleScan() { + if (!hasPermission() || bleScanner == null) { + return; + } + + ScanSettings settings = new ScanSettings.Builder() + .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) + .setReportDelay(SCAN_INTERVAL) + .build(); + + try { + bleScanner.startScan(null, settings, scanCallback); + } catch (SecurityException e) { + // Permission denied + } + } + + public void startListening() { + this.bleScanTimer = new Timer(); + this.bleScanTimer.schedule(new TimerTask() { + @Override + public void run() { + startBleScan(); + } + }, 0, SCAN_INTERVAL); + } + + public void stopListening() { + if (bleScanTimer != null) { + bleScanTimer.cancel(); + } + if (bleScanner != null && hasPermission()) { + try { + bleScanner.stopScan(scanCallback); + } catch (SecurityException e) { + // Permission denied + } + } + } + + @Override + public void registerObserver(Observer o) { + observers.add(o); + } + + @Override + public void notifyObservers(int idx) { + for (Observer o : observers) { + o.update(bleData); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDevice.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDevice.java new file mode 100644 index 00000000..b95aaad2 --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDevice.java @@ -0,0 +1,38 @@ +package com.openpositioning.PositionMe.sensors; + +import android.util.SparseArray; + +/** + * BLE device information class. + * + * @author Vlad Stratulat + */ +public class BleDevice { + private String macAddress; + private int rssi; + private String name; + private int txPowerLevel; + private int advertiseFlags; + private String[] serviceUuids; + private SparseArray manufacturerData; + + public BleDevice() {} + + public String getMacAddress() { return macAddress; } + public int getRssi() { return rssi; } + public String getName() { return name; } + public int getTxPowerLevel() { return txPowerLevel; } + public int getAdvertiseFlags() { return advertiseFlags; } + public String[] getServiceUuids() { return serviceUuids; } + public SparseArray getManufacturerData() { return manufacturerData; } + + public void setMacAddress(String macAddress) { this.macAddress = macAddress; } + public void setRssi(int rssi) { this.rssi = rssi; } + public void setName(String name) { this.name = name; } + public void setTxPowerLevel(int txPowerLevel) { this.txPowerLevel = txPowerLevel; } + public void setAdvertiseFlags(int advertiseFlags) { this.advertiseFlags = advertiseFlags; } + public void setServiceUuids(String[] serviceUuids) { this.serviceUuids = serviceUuids; } + public void setManufacturerData(SparseArray manufacturerData) { + this.manufacturerData = manufacturerData; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java index 11c793a4..4d6eb12c 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java @@ -103,6 +103,7 @@ public class SensorFusion implements SensorEventListener, Observer { // Other data recording private WifiDataProcessor wifiProcessor; private GNSSDataProcessor gnssProcessor; + private BleDataProcessor bleProcessor; // Data listener private final LocationListener locationListener; @@ -146,11 +147,16 @@ public class SensorFusion implements SensorEventListener, Observer { private float[] startLocation; // Wifi values private List wifiList; + // BLE values + private List bleList; // Track seen APs to avoid duplicates private Map seenAPs = new HashMap<>(); // Track last fingerprint to avoid duplicates - private long lastFingerprintTime = 0; - private int lastFingerprintHash = 0; + private long lastWifiFingerprintTime = 0; + private int lastWifiFingerprintHash = 0; + // Track last BLE fingerprint to avoid duplicates + private long lastBleFingerprintTime = 0; + private int lastBleFingerprintHash = 0; // Over time accelerometer magnitude values since last step @@ -240,6 +246,8 @@ public void setContext(Context context) { this.wifiProcessor = new WifiDataProcessor(context); wifiProcessor.registerObserver(this); this.gnssProcessor = new GNSSDataProcessor(context, locationListener); + this.bleProcessor = new BleDataProcessor(context); + bleProcessor.registerObserver(this); // Create object handling HTTPS communication this.serverCommunications = new ServerCommunications(context); // Save absolute and relative start time @@ -250,6 +258,7 @@ public void setContext(Context context) { // Other initialisations... this.accelMagnitude = new ArrayList<>(); + this.bleList = new ArrayList<>(); this.pdrProcessing = new PdrProcessing(context); this.settings = PreferenceManager.getDefaultSharedPreferences(context); this.pathView = new PathView(context, null); @@ -466,6 +475,15 @@ public void onLocationChanged(@NonNull Location location) { } } + @Override + public void update(Object[] objList) { + if (objList instanceof Wifi[]) { + updateWifi((Wifi[]) objList); + } else if (objList instanceof BleDevice[]) { + updateBle((BleDevice[]) objList); + } + } + /** * {@inheritDoc} * @@ -473,8 +491,7 @@ public void onLocationChanged(@NonNull Location location) { * * @see WifiDataProcessor object for wifi scanning. */ - @Override - public void update(Object[] wifiList) { + private void updateWifi(Object[] wifiList) { // Save newest wifi values to local variable this.wifiList = Stream.of(wifiList).map(o -> (Wifi) o).collect(Collectors.toList()); @@ -488,13 +505,13 @@ public void update(Object[] wifiList) { // Skip if duplicate fingerprint within 1 second long currentTime = System.currentTimeMillis(); - if (fingerprintHash == lastFingerprintHash && - (currentTime - lastFingerprintTime) < 1000) { + if (fingerprintHash == lastWifiFingerprintHash && + (currentTime - lastWifiFingerprintTime) < 1000) { return; } - lastFingerprintHash = fingerprintHash; - lastFingerprintTime = currentTime; + lastWifiFingerprintHash = fingerprintHash; + lastWifiFingerprintTime = currentTime; // Create Fingerprint for WiFi Traj.Fingerprint.Builder wifiFingerprint = Traj.Fingerprint.newBuilder() @@ -524,6 +541,75 @@ public void update(Object[] wifiList) { createWifiPositioningRequest(); } + // Handle BLE updates + private void updateBle(BleDevice[] bleDevices) { + // Save newest BLE values to local variable + if (bleDevices != null) { + this.bleList = java.util.Arrays.asList(bleDevices); + } + + if (!saveRecording || bleDevices == null || bleDevices.length == 0) { + return; + } + + // Check for repeated BLE fingerprints using hash, using MAC and signal strength + int fingerprintHash = 0; + for (BleDevice device : bleDevices) { + long macLong = convertMacToLong(device.getMacAddress()); + fingerprintHash = 31 * fingerprintHash + (int)(macLong ^ (macLong >>> 32)); + fingerprintHash = 31 * fingerprintHash + device.getRssi(); + } + + // Skip if duplicate fingerprint within 1 second + long currentTime = System.currentTimeMillis(); + if (fingerprintHash == lastBleFingerprintHash && + (currentTime - lastBleFingerprintTime) < 1000) { + return; + } + + lastBleFingerprintHash = fingerprintHash; + lastBleFingerprintTime = currentTime; + + // Build BLE fingerprint + Traj.Fingerprint.Builder bleFingerprint = Traj.Fingerprint.newBuilder().setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime); + + for (BleDevice device : bleDevices) { + bleFingerprint.addRfScans(Traj.RFScan.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setMac(convertMacToLong(device.getMacAddress())) + .setRssi(device.getRssi())); + + // Add BLE data + Traj.BleData.Builder bleData = Traj.BleData.newBuilder() + .setMacAddress(device.getMacAddress()) + .setName(device.getName()) + .setTxPowerLevel(device.getTxPowerLevel()) + .setAdvertiseFlags(device.getAdvertiseFlags()); + + if (device.getServiceUuids() != null) { + for (String uuid : device.getServiceUuids()) { + bleData.addServiceUuids(uuid); + } + } + + // Convert first manufacturer data entry to bytes + if (device.getManufacturerData() != null && device.getManufacturerData().size() > 0) { + byte[] mfgData = device.getManufacturerData().valueAt(0); + bleData.setManufacturerData(com.google.protobuf.ByteString.copyFrom(mfgData)); + } + + trajectory.addBleData(bleData); + } + + trajectory.addBleFingerprints(bleFingerprint); + } + + // Helper to convert MAC string to long + private long convertMacToLong(String macAddress) { + String cleanMac = macAddress.replace(":", ""); + return Long.parseLong(cleanMac, 16); + } + /** * Function to create a request to obtain a wifi location for the obtained wifi fingerprint * @@ -757,6 +843,16 @@ public List getWifiList() { return this.wifiList; } + /** + * Return the most recent list of BLE devices. + * Each BleDevice object contains a MAC address, RSSI, name, and other BLE data. + * + * @return list of BleDevice objects. + */ + public List getBleList() { + return this.bleList; + } + /** * Get information about all the sensors registered in SensorFusion. * @@ -847,6 +943,7 @@ public void resumeListening() { rotationSensor.sensorManager.registerListener(this, rotationSensor.sensor, (int) 1e6); wifiProcessor.startListening(); gnssProcessor.startLocationUpdates(); + bleProcessor.startListening(); } /** @@ -880,6 +977,12 @@ public void stopListening() { } // Stop receiving location updates this.gnssProcessor.stopUpdating(); + // Stop bluetooth processor with error catching + try { + bleProcessor.stopListening(); + } catch (Exception e) { + System.err.println("Bluetooth resumed before existing"); + } } } @@ -929,14 +1032,13 @@ public void startRecording() { .setTrajectoryId(generateTrajectoryId()); - // Set initial position if available - if (gnssProcessor != null && gnssProcessor.getLastLocation() != null) { - Location loc = gnssProcessor.getLastLocation(); + // Set initial position from user-selected start location + if (startLocation != null && (startLocation[0] != 0 || startLocation[1] != 0)) { trajectory.setInitialPosition(Traj.GNSSPosition.newBuilder() .setRelativeTimestamp(0) - .setLatitude(loc.getLatitude()) - .setLongitude(loc.getLongitude()) - .setAltitude(loc.getAltitude())); + .setLatitude(startLocation[0]) + .setLongitude(startLocation[1]) + .setAltitude(0)); } this.storeTrajectoryTimer = new Timer(); diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java index d6031458..50354ec8 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java @@ -248,16 +248,25 @@ public void stopListening() { * disable it. */ public void checkWifiThrottling(){ - if(checkWifiPermissions()) { - //If the device does not support wifi throttling an exception is thrown - try { - if(Settings.Global.getInt(context.getContentResolver(), "wifi_scan_throttle_enabled")==1) { - //Inform user to disable wifi throttling - Toast.makeText(context, "Disable Wi-Fi Throttling", Toast.LENGTH_SHORT).show(); - } - } catch (Settings.SettingNotFoundException e) { - e.printStackTrace(); + if (!checkWifiPermissions()) { + return; + } + //If the device does not support wifi throttling an exception is thrown + try { + boolean isThrottled = false; + // For Android 11+ + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) { + isThrottled = wifiManager.isScanThrottleEnabled(); + } else { + isThrottled = Settings.Global.getInt(context.getContentResolver(), "wifi_scan_throttle_enabled") == 1; + } + + if (isThrottled) { + //Inform user to disable wifi throttling + Toast.makeText(context, "Disable Wi-Fi Throttling", Toast.LENGTH_SHORT).show(); } + } catch (Settings.SettingNotFoundException e) { + e.printStackTrace(); } } diff --git a/app/src/main/res/drawable/ic_baseline_bt_24.xml b/app/src/main/res/drawable/ic_baseline_bt_24.xml new file mode 100644 index 00000000..b67324a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_bt_24.xml @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_measurements.xml b/app/src/main/res/layout/fragment_measurements.xml index 640af10d..9174c490 100644 --- a/app/src/main/res/layout/fragment_measurements.xml +++ b/app/src/main/res/layout/fragment_measurements.xml @@ -14,10 +14,10 @@ android:id="@+id/sensorMeasurementList" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginTop="0dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintBottom_toTopOf="@id/dividerLine"> + app:layout_constraintTop_toTopOf="parent"> @@ -570,6 +569,8 @@ android:id="@+id/wifiTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:background="?attr/selectableItemBackground" + android:clickable="true" android:text="@string/wifi" android:textColor="@color/white" android:textSize="24sp" @@ -599,14 +600,81 @@ + + + + + + + + + + + + + + + app:layout_constraintTop_toBottomOf="@id/bleTitle"/> diff --git a/app/src/main/res/layout/item_ble_card_view.xml b/app/src/main/res/layout/item_ble_card_view.xml new file mode 100644 index 00000000..ca447746 --- /dev/null +++ b/app/src/main/res/layout/item_ble_card_view.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 49b8a35e..4168cb4d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -30,6 +30,7 @@ PDR Position Pedestrian Dead Reckoning WiFi Networks + Bluetooth Devices @@ -54,6 +55,7 @@ Power:\t\t\t\t\t\t\t\t %1$s Version:\t\t\t\t\t\t %1$s MAC: %1$s + Name: %1$s Settings diff --git a/app/src/test/java/com/openpositioning/PositionMe/WifiDeduplicationTest.java b/app/src/test/java/com/openpositioning/PositionMe/WifiDeduplicationTest.java new file mode 100644 index 00000000..0e97a3d8 --- /dev/null +++ b/app/src/test/java/com/openpositioning/PositionMe/WifiDeduplicationTest.java @@ -0,0 +1,45 @@ +package com.openpositioning.PositionMe; + +import org.junit.Test; +import static org.junit.Assert.*; + +public class WifiDeduplicationTest { + + @Test + public void testFingerprintHashCalculation() { + // Simulate two identical scans + long[] macs1 = {123456789L, 987654321L}; + int[] rssis1 = {-50, -60}; + + long[] macs2 = {123456789L, 987654321L}; + int[] rssis2 = {-50, -60}; + + int hash1 = calculateHash(macs1, rssis1); + int hash2 = calculateHash(macs2, rssis2); + + assertEquals("Identical scans should have same hash", hash1, hash2); + } + + @Test + public void testDifferentScansHaveDifferentHashes() { + long[] macs1 = {123456789L}; + int[] rssis1 = {-50}; + + long[] macs2 = {123456789L}; + int[] rssis2 = {-55}; // Different RSSI + + int hash1 = calculateHash(macs1, rssis1); + int hash2 = calculateHash(macs2, rssis2); + + assertNotEquals("Different scans should have different hashes", hash1, hash2); + } + + private int calculateHash(long[] macs, int[] rssis) { + int hash = 0; + for (int i = 0; i < macs.length; i++) { + hash = 31 * hash + (int)(macs[i] ^ (macs[i] >>> 32)); + hash = 31 * hash + rssis[i]; + } + return hash; + } +} \ No newline at end of file From 604e5c82ec1460747381e8e23d8776fd3cfc8429 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Sun, 8 Feb 2026 19:46:32 +0000 Subject: [PATCH 14/65] [Infra] Android SDK Actions (#24) --- .github/workflows/android-11.yml | 36 ++++++++++++++++++++++++++++++++ .github/workflows/android-16.yml | 36 ++++++++++++++++++++++++++++++++ .github/workflows/android.yml | 28 ------------------------- README.md | 2 +- 4 files changed, 73 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/android-11.yml create mode 100644 .github/workflows/android-16.yml delete mode 100644 .github/workflows/android.yml diff --git a/.github/workflows/android-11.yml b/.github/workflows/android-11.yml new file mode 100644 index 00000000..bd2c8449 --- /dev/null +++ b/.github/workflows/android-11.yml @@ -0,0 +1,36 @@ +name: Android 11 Build + +on: + push: + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 21.0.3 + uses: actions/setup-java@v4 + with: + java-version: '21.0.3' + distribution: 'jetbrains' + cache: gradle + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + + - name: Add (empty) local.properties + run: touch ./local.properties + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Setup Android 11.0 SDK + uses: android-actions/setup-android@v3.2.2 + with: + cmdline-tools-version: 10406996 + + - name: gradle build + run: ./gradlew --no-daemon --parallel build \ No newline at end of file diff --git a/.github/workflows/android-16.yml b/.github/workflows/android-16.yml new file mode 100644 index 00000000..3879929c --- /dev/null +++ b/.github/workflows/android-16.yml @@ -0,0 +1,36 @@ +name: Android 16 Build + +on: + push: + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 21.0.3 + uses: actions/setup-java@v4 + with: + java-version: '21.0.3' + distribution: 'jetbrains' + cache: gradle + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + + - name: Add (empty) local.properties + run: touch ./local.properties + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Setup Android 16.0 SDK + uses: android-actions/setup-android@v3.2.2 + with: + cmdline-tools-version: 12266719 + + - name: gradle build + run: ./gradlew --no-daemon --parallel build \ No newline at end of file diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml deleted file mode 100644 index 1dd8dcf7..00000000 --- a/.github/workflows/android.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Android Gradle Assemble - -on: - push: - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK 21.0.3 - uses: actions/setup-java@v4 - with: - java-version: '21.0.3' - distribution: 'jetbrains' - cache: gradle - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 - - name: Add (empty) local.properties - run: touch ./local.properties - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Gradle - Lint - run: ./gradlew lint --parallel - - name: Gradle - Assemble - run: ./gradlew assemble --parallel diff --git a/README.md b/README.md index 496b6ae6..2dd7496e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Embedded Mobile and Wireless Systems (EWireless) 5 2025/26 ## Coursework 1 - Group 13 -[![Build Status](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android.yml) +[![Android 11](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml) [![Android 16](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml) **PositionMe** is an indoor positioning data collection application initially developed for the University of Edinburgh's Embedded Wireless course. The application now includes enhanced features, including **trajectory playback**, improved UI design, and comprehensive location tracking. From 7022c78703780bf993f24dc6395c9a5cd2b7eb88 Mon Sep 17 00:00:00 2001 From: Vlad118 <96501158+Vlad118@users.noreply.github.com> Date: Mon, 9 Feb 2026 01:06:51 +0000 Subject: [PATCH 15/65] Initial position and GNSS fix in replay (#28) --- .../PositionMe/data/local/TrajParser.java | 30 +++++++++++-- .../presentation/fragment/ReplayFragment.java | 45 ++++++++++--------- .../PositionMe/sensors/SensorFusion.java | 1 - 3 files changed, 52 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java b/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java index 2d2b1cbf..399ace04 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java @@ -223,10 +223,34 @@ private static List parsePdrData(JsonArray pdrArray) { private static List parseGnssData(JsonArray gnssArray) { List gnssList = new ArrayList<>(); if (gnssArray == null) return gnssList; - Gson gson = new Gson(); + for (int i = 0; i < gnssArray.size(); i++) { - GnssRecord record = gson.fromJson(gnssArray.get(i), GnssRecord.class); - gnssList.add(record); + try { + JsonObject gnssObj = gnssArray.get(i).getAsJsonObject(); + GnssRecord record = new GnssRecord(); + + // Check if position object exists (nested structure) + if (gnssObj.has("position")) { + JsonObject position = gnssObj.getAsJsonObject("position"); + record.relativeTimestamp = position.has("relativeTimestamp") + ? position.get("relativeTimestamp").getAsLong() : 0; + record.latitude = position.has("latitude") + ? position.get("latitude").getAsDouble() : 0.0; + record.longitude = position.has("longitude") + ? position.get("longitude").getAsDouble() : 0.0; + } else { + // Flat structure (fallback) + record.relativeTimestamp = gnssObj.has("relativeTimestamp") + ? gnssObj.get("relativeTimestamp").getAsLong() : 0; + record.latitude = gnssObj.has("latitude") + ? gnssObj.get("latitude").getAsDouble() : 0.0; + record.longitude = gnssObj.has("longitude") + ? gnssObj.get("longitude").getAsDouble() : 0.0; + } + gnssList.add(record); + } catch (Exception e) { + Log.e(TAG, "Error parsing GNSS record: " + e.getMessage()); + } } return gnssList; }/** Finds the closest IMU record to the given timestamp. */ diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java index d15a4a83..b478f213 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java @@ -132,6 +132,12 @@ public void onViewCreated(@NonNull View view, } + // Initialize UI controls + playPauseButton = view.findViewById(R.id.playPauseButton); + restartButton = view.findViewById(R.id.restartButton); + exitButton = view.findViewById(R.id.exitButton); + goEndButton = view.findViewById(R.id.goEndButton); + playbackSeekBar = view.findViewById(R.id.playbackSeekBar); // 1) Check if the file contains any GNSS data boolean gnssExists = hasAnyGnssData(replayData); @@ -139,26 +145,14 @@ public void onViewCreated(@NonNull View view, if (gnssExists) { showGnssChoiceDialog(); } else { - // No GNSS data -> automatically use param lat/lon - if (initialLat != 0f || initialLon != 0f) { - LatLng startPoint = new LatLng(initialLat, initialLon); - Log.i(TAG, "Setting initial map position: " + startPoint.toString()); - trajectoryMapFragment.setInitialCameraPosition(startPoint); + // Setup map + setupInitialMapPosition(initialLat, initialLon); + if (!replayData.isEmpty()) { + playbackSeekBar.setMax(replayData.size() - 1); + updateMapForIndex(0); } } - // Initialize UI controls - playPauseButton = view.findViewById(R.id.playPauseButton); - restartButton = view.findViewById(R.id.restartButton); - exitButton = view.findViewById(R.id.exitButton); - goEndButton = view.findViewById(R.id.goEndButton); - playbackSeekBar = view.findViewById(R.id.playbackSeekBar); - - // Set SeekBar max value based on replay data - if (!replayData.isEmpty()) { - playbackSeekBar.setMax(replayData.size() - 1); - } - // Button Listeners playPauseButton.setOnClickListener(v -> { if (replayData.isEmpty()) { @@ -250,21 +244,32 @@ private boolean hasAnyGnssData(List data) { * 2) Lat/Lon from ReplayActivity arguments */ private void showGnssChoiceDialog() { + LatLng firstGnss = getFirstGnssLocation(replayData); + new AlertDialog.Builder(requireContext()) .setTitle("Choose Starting Location") - .setMessage("GNSS data is found in the file. Would you like to use the file's GNSS as the start, or the one you manually picked?") + .setMessage("GNSS data found. Use file's GNSS or your manual position?") .setPositiveButton("Use File's GNSS", (dialog, which) -> { - LatLng firstGnss = getFirstGnssLocation(replayData); if (firstGnss != null) { + // Re-parse with file's GNSS coords + replayData = TrajParser.parseTrajectoryData(filePath, requireContext(), + firstGnss.latitude, firstGnss.longitude); setupInitialMapPosition((float) firstGnss.latitude, (float) firstGnss.longitude); } else { // Fallback if no valid GNSS found setupInitialMapPosition(initialLat, initialLon); } + playbackSeekBar.setMax(replayData.size() - 1); + updateMapForIndex(0); dialog.dismiss(); }) .setNegativeButton("Use Manual Set", (dialog, which) -> { + // Re-parse with manual coords (or just use existing) + replayData = TrajParser.parseTrajectoryData(filePath, requireContext(), + initialLat, initialLon); setupInitialMapPosition(initialLat, initialLon); + playbackSeekBar.setMax(replayData.size() - 1); + updateMapForIndex(0); dialog.dismiss(); }) .setCancelable(false) @@ -272,7 +277,7 @@ private void showGnssChoiceDialog() { } private void setupInitialMapPosition(float latitude, float longitude) { - LatLng startPoint = new LatLng(initialLat, initialLon); + LatLng startPoint = new LatLng(latitude, longitude); Log.i(TAG, "Setting initial map position: " + startPoint.toString()); trajectoryMapFragment.setInitialCameraPosition(startPoint); } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java index 4d6eb12c..49b4c344 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java @@ -1031,7 +1031,6 @@ public void startRecording() { .setTrajectoryVersion(2.0f) .setTrajectoryId(generateTrajectoryId()); - // Set initial position from user-selected start location if (startLocation != null && (startLocation[0] != 0 || startLocation[1] != 0)) { trajectory.setInitialPosition(Traj.GNSSPosition.newBuilder() From 88aec9beb4acd0e2e9ea74b09d6f045a59e40ecf Mon Sep 17 00:00:00 2001 From: Vlad118 <96501158+Vlad118@users.noreply.github.com> Date: Mon, 9 Feb 2026 13:53:33 +0000 Subject: [PATCH 16/65] [Feat/Extension] Completes sensor data tasks (initial orientation) and adds visual improvements to sensor measurements lists (#30) --- .../PositionMe/TrajectoryMetadataTest.java | 12 ++++++ .../PositionMe/data/local/TrajParser.java | 40 +++++++++++++++++-- .../fragment/MeasurementsFragment.java | 11 +++++ .../presentation/fragment/ReplayFragment.java | 7 ++++ .../fragment/TrajectoryMapFragment.java | 2 +- .../viewitems/BleListAdapter.java | 12 +++++- .../viewitems/WifiListAdapter.java | 19 +++++++-- .../viewitems/WifiViewHolder.java | 6 ++- .../PositionMe/sensors/SensorFusion.java | 18 +++++++++ .../main/res/drawable/ic_expand_more_24.xml | 10 +++++ .../main/res/layout/fragment_measurements.xml | 24 +++++++++++ .../main/res/layout/item_wifi_card_view.xml | 37 ++++++++++++----- app/src/main/res/values/strings.xml | 1 + 13 files changed, 180 insertions(+), 19 deletions(-) create mode 100644 app/src/main/res/drawable/ic_expand_more_24.xml diff --git a/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java b/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java index c0b83854..b0675569 100644 --- a/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java +++ b/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java @@ -12,6 +12,8 @@ public void testTrajectoryIdGeneration() { assertNotNull("Trajectory ID should not be null", trajectoryId); assertTrue("Trajectory ID should start with 'android_'", trajectoryId.startsWith("android_")); + assertTrue("Trajectory ID should contain device model", + trajectoryId.contains(android.os.Build.MODEL.replaceAll("\\s+", "_"))); assertTrue("Trajectory ID should contain timestamp", trajectoryId.length() > 20); } @@ -28,6 +30,16 @@ public void testTrajectoryVersionIsCorrect() { 2.0f, trajectory.getTrajectoryVersion(), 0.001f); } + @Test + public void testTrajectoryIdUniqueness() { + String id1 = generateTrajectoryId(); + // Small delay to ensure different timestamp + try { Thread.sleep(10); } catch (InterruptedException e) {} + String id2 = generateTrajectoryId(); + + assertNotEquals("Two trajectory IDs should be different", id1, id2); + } + private String generateTrajectoryId() { String deviceModel = android.os.Build.MODEL.replaceAll("\\s+", "_"); long timestamp = System.currentTimeMillis(); diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java b/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java index 399ace04..83d40dbe 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java @@ -203,10 +203,44 @@ public static List parseTrajectoryData(String filePath, Context con private static List parseImuData(JsonArray imuArray) { List imuList = new ArrayList<>(); if (imuArray == null) return imuList; - Gson gson = new Gson(); + for (int i = 0; i < imuArray.size(); i++) { - ImuRecord record = gson.fromJson(imuArray.get(i), ImuRecord.class); - imuList.add(record); + try { + JsonObject imuObj = imuArray.get(i).getAsJsonObject(); + ImuRecord record = new ImuRecord(); + + record.relativeTimestamp = imuObj.has("relativeTimestamp") + ? imuObj.get("relativeTimestamp").getAsLong() : 0; + + // Parse acc (nested) + if (imuObj.has("acc")) { + JsonObject acc = imuObj.getAsJsonObject("acc"); + record.accX = acc.has("x") ? acc.get("x").getAsFloat() : 0f; + record.accY = acc.has("y") ? acc.get("y").getAsFloat() : 0f; + record.accZ = acc.has("z") ? acc.get("z").getAsFloat() : 0f; + } + + // Parse gyr (nested) + if (imuObj.has("gyr")) { + JsonObject gyr = imuObj.getAsJsonObject("gyr"); + record.gyrX = gyr.has("x") ? gyr.get("x").getAsFloat() : 0f; + record.gyrY = gyr.has("y") ? gyr.get("y").getAsFloat() : 0f; + record.gyrZ = gyr.has("z") ? gyr.get("z").getAsFloat() : 0f; + } + + // Parse rotationVector (nested) + if (imuObj.has("rotationVector")) { + JsonObject rot = imuObj.getAsJsonObject("rotationVector"); + record.rotationVectorX = rot.has("x") ? rot.get("x").getAsFloat() : 0f; + record.rotationVectorY = rot.has("y") ? rot.get("y").getAsFloat() : 0f; + record.rotationVectorZ = rot.has("z") ? rot.get("z").getAsFloat() : 0f; + record.rotationVectorW = rot.has("w") ? rot.get("w").getAsFloat() : 1f; + } + + imuList.add(record); + } catch (Exception e) { + Log.e(TAG, "Error parsing IMU record: " + e.getMessage()); + } } return imuList; }/** Parses PDR data from JSON. */ diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java index fdff5d23..4a8a8acb 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java @@ -6,6 +6,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -56,6 +57,8 @@ public class MeasurementsFragment extends Fragment { private WifiListAdapter wifiAdapter; private BleListAdapter bleAdapter; + private ImageView wifiExpandIcon; + private ImageView bleExpandIcon; /** * Public default constructor, empty. @@ -140,9 +143,11 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat CardView wifiTitleCard = getView().findViewById(R.id.dividerLine); TextView wifiTitleText = getView().findViewById(R.id.wifiTitle); + wifiExpandIcon = getView().findViewById(R.id.wifiExpandIcon); CardView bleTitleCard = getView().findViewById(R.id.bleTitle); TextView bleTitleText = getView().findViewById(R.id.bleTitleText); + bleExpandIcon = getView().findViewById(R.id.bleExpandIcon); // Initially hide both lists wifiListView.setVisibility(View.GONE); @@ -151,18 +156,24 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat wifiTitleCard.setOnClickListener(v -> { if (wifiListView.getVisibility() == View.VISIBLE) { wifiListView.setVisibility(View.GONE); + wifiExpandIcon.setRotation(0); } else { wifiListView.setVisibility(View.VISIBLE); bleListView.setVisibility(View.GONE); + wifiExpandIcon.setRotation(180); + bleExpandIcon.setRotation(0); } }); bleTitleCard.setOnClickListener(v -> { if (bleListView.getVisibility() == View.VISIBLE) { bleListView.setVisibility(View.GONE); + bleExpandIcon.setRotation(0); } else { bleListView.setVisibility(View.VISIBLE); wifiListView.setVisibility(View.GONE); + bleExpandIcon.setRotation(180); + wifiExpandIcon.setRotation(0); } }); diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java index b478f213..7cdf2dd6 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java @@ -280,6 +280,13 @@ private void setupInitialMapPosition(float latitude, float longitude) { LatLng startPoint = new LatLng(latitude, longitude); Log.i(TAG, "Setting initial map position: " + startPoint.toString()); trajectoryMapFragment.setInitialCameraPosition(startPoint); + + // Set initial orientation if data exists + if (!replayData.isEmpty()) { + float initialOrientation = replayData.get(0).orientation; + trajectoryMapFragment.updateUserLocation(startPoint, initialOrientation); + Log.i(TAG, "Setting initial orientation: " + initialOrientation); + } } /** diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java index 2cb52d28..94f0d108 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java @@ -312,7 +312,7 @@ public void updateUserLocation(@NonNull LatLng newLocation, float orientation) { .icon(BitmapDescriptorFactory.fromBitmap( UtilFunctions.getBitmapFromVector(requireContext(), R.drawable.ic_baseline_navigation_24))) - ); + .rotation(orientation)); gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(newLocation, 19f)); } else { // Update marker position + orientation diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java index 24bfecc6..f4700231 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java @@ -61,8 +61,18 @@ public void onBindViewHolder(@NonNull BleViewHolder holder, int position) { BleDevice device = items.get(position); String macString = context.getString(R.string.mac, device.getMacAddress()); holder.macAddress.setText(macString); - String nameString = context.getString(R.string.name, device.getName()); + + // BLE Name + String rawName = device.getName(); + String nameToShow; + if (rawName == null || rawName.trim().isEmpty()) { + nameToShow = context.getString(R.string.unknown); + } else { + nameToShow = rawName; + } + String nameString = context.getString(R.string.name, nameToShow); holder.name.setText(nameString); + String levelString = context.getString(R.string.db, Integer.toString(device.getRssi())); holder.rssi.setText(levelString); } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java index 3e6a42bc..50f64c3d 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java @@ -58,10 +58,23 @@ public WifiViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType */ @Override public void onBindViewHolder(@NonNull WifiViewHolder holder, int position) { - String macString = context.getString(R.string.mac, Long.toString(items.get(position).getBssid())); - holder.bssid.setText(macString); - String levelString = context.getString(R.string.db, Long.toString(items.get(position).getLevel())); + Wifi wifi = items.get(position); + + String macString = context.getString(R.string.mac, Long.toString(wifi.getBssid())); + holder.mac.setText(macString); + String levelString = context.getString(R.string.db, Long.toString(wifi.getLevel())); holder.level.setText(levelString); + + // Show SSID (name) + String rawSsid = wifi.getSsid(); + String ssidToShow; + if (rawSsid == null || rawSsid.trim().isEmpty()) { + ssidToShow = context.getString(R.string.unknown); + } else { + ssidToShow = rawSsid; + } + String nameString = context.getString(R.string.name, ssidToShow); + holder.ssid.setText(nameString); } /** diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiViewHolder.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiViewHolder.java index 96c563cf..2a96903a 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiViewHolder.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiViewHolder.java @@ -18,7 +18,8 @@ */ public class WifiViewHolder extends RecyclerView.ViewHolder { - TextView bssid; + TextView mac; + TextView ssid; TextView level; /** @@ -29,7 +30,8 @@ public class WifiViewHolder extends RecyclerView.ViewHolder { */ public WifiViewHolder(@NonNull View itemView) { super(itemView); - bssid = itemView.findViewById(R.id.wifiNameItem); + mac = itemView.findViewById(R.id.wifiMacItem); + ssid = itemView.findViewById(R.id.wifiSsidItem); level = itemView.findViewById(R.id.wifiLevelItem); } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java index 49b4c344..8d447769 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java @@ -1038,6 +1038,24 @@ public void startRecording() { .setLatitude(startLocation[0]) .setLongitude(startLocation[1]) .setAltitude(0)); + + // Save initial orientation + trajectory.addImuData(Traj.IMUReading.newBuilder() + .setRelativeTimestamp(0) + .setAcc(Traj.Vector3.newBuilder() + .setX(acceleration[0]) + .setY(acceleration[1]) + .setZ(acceleration[2])) + .setGyr(Traj.Vector3.newBuilder() + .setX(angularVelocity[0]) + .setY(angularVelocity[1]) + .setZ(angularVelocity[2])) + .setRotationVector(Traj.Quaternion.newBuilder() + .setX(rotation[0]) + .setY(rotation[1]) + .setZ(rotation[2]) + .setW(rotation[3])) + .setStepCount(0)); } this.storeTrajectoryTimer = new Timer(); diff --git a/app/src/main/res/drawable/ic_expand_more_24.xml b/app/src/main/res/drawable/ic_expand_more_24.xml new file mode 100644 index 00000000..5c4ba3ef --- /dev/null +++ b/app/src/main/res/drawable/ic_expand_more_24.xml @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_measurements.xml b/app/src/main/res/layout/fragment_measurements.xml index 9174c490..90c20acf 100644 --- a/app/src/main/res/layout/fragment_measurements.xml +++ b/app/src/main/res/layout/fragment_measurements.xml @@ -593,6 +593,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:tint="@color/white" /> + + @@ -659,6 +671,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:tint="@color/white" /> + + diff --git a/app/src/main/res/layout/item_wifi_card_view.xml b/app/src/main/res/layout/item_wifi_card_view.xml index ce457371..1b1852ad 100644 --- a/app/src/main/res/layout/item_wifi_card_view.xml +++ b/app/src/main/res/layout/item_wifi_card_view.xml @@ -26,19 +26,38 @@ android:layout_height="match_parent" android:padding="12dp"> - - + + app:layout_constraintTop_toTopOf="parent"> + + + + + + + Version:\t\t\t\t\t\t %1$s MAC: %1$s Name: %1$s + Unknown Settings From 408a32a82cafbac030086ed4d74997e94b1bb8e1 Mon Sep 17 00:00:00 2001 From: keeegannn <115988136+keeegannn@users.noreply.github.com> Date: Mon, 9 Feb 2026 14:32:42 +0000 Subject: [PATCH 17/65] [Feat] Time marker and screen remain on during replay (#26) Co-authored-by: Vlad118 --- app/build.gradle | 1 - .../PositionMe/data/local/TrajParser.java | 47 ++++++++ .../data/remote/ServerCommunications.java | 36 +++--- .../presentation/activity/ReplayActivity.java | 3 + .../fragment/RecordingFragment.java | 21 +++- .../presentation/fragment/ReplayFragment.java | 4 + .../fragment/TrajectoryMapFragment.java | 27 ++++- .../PositionMe/sensors/SensorFusion.java | 33 +++++- .../PositionMe/sensors/WiFiPositioning.java | 4 +- .../drawable/ic_baseline_add_timed_marker.xml | 10 ++ .../main/res/layout/fragment_recording.xml | 14 +++ app/src/main/res/values/strings.xml | 1 + .../PositionMe/TestPointUnitTest.java | 112 ++++++++++++++++++ secrets.properties | 2 +- 14 files changed, 288 insertions(+), 27 deletions(-) create mode 100644 app/src/main/res/drawable/ic_baseline_add_timed_marker.xml create mode 100644 app/src/test/java/com/openpositioning/PositionMe/TestPointUnitTest.java diff --git a/app/build.gradle b/app/build.gradle index 46cbf440..b506ad1d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -74,7 +74,6 @@ dependencies { implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.android.volley:volley:1.2.1' implementation 'androidx.gridlayout:gridlayout:1.0.0' - // Material Components (Material 3 support is in 1.12.0+) testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.2.1' diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java b/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java index 83d40dbe..4a6e48a6 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java @@ -10,6 +10,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.openpositioning.PositionMe.presentation.fragment.ReplayFragment; +import com.openpositioning.PositionMe.sensors.GNSSDataProcessor; import com.openpositioning.PositionMe.sensors.SensorFusion; import java.io.BufferedReader; @@ -65,6 +66,9 @@ public static class ReplayPoint { public float orientation; // Orientation in degrees public float speed; // Speed in meters per second public long timestamp; // Relative timestamp + public LatLng testPoint; // Test point location (null if not a test point) + public int testPointNumber; // Test point number (0 if not a test point) + public String testPointTime; // Formatted time for test point /** * Constructs a ReplayPoint. @@ -81,6 +85,9 @@ public ReplayPoint(LatLng pdrLocation, LatLng gnssLocation, float orientation, f this.orientation = orientation; this.speed = speed; this.timestamp = timestamp; + this.testPoint = null; + this.testPointNumber = 0; + this.testPointTime = null; } } @@ -104,6 +111,12 @@ private static class GnssRecord { public double latitude, longitude; // GNSS coordinates } + /** Represents a Test Point marker saved during recording. */ + private static class TestPointRecord { + public long relativeTimestamp; + public double latitude, longitude, altitude; + } + /** * Parses trajectory data from a JSON file and reconstructs a list of replay points. * @@ -150,6 +163,7 @@ public static List parseTrajectoryData(String filePath, Context con List imuList = parseImuData(root.getAsJsonArray("imuData")); List pdrList = parsePdrData(root.getAsJsonArray("pdrData")); List gnssList = parseGnssData(root.getAsJsonArray("gnssData")); + List testPointList = parseTestPoints(root.getAsJsonArray("testPoints")); Log.i(TAG, "Parsed data - IMU: " + imuList.size() + " records, PDR: " + pdrList.size() + " records, GNSS: " + gnssList.size() + " records"); @@ -189,6 +203,21 @@ public static List parseTrajectoryData(String filePath, Context con 0f, pdr.relativeTimestamp)); } + // Match test points to ReplayPoints by finding closest timestamp + for (int i = 0; i < testPointList.size(); i++) { + TestPointRecord testPt = testPointList.get(i); + + ReplayPoint closest = result.stream() + .min(Comparator.comparingLong(rp -> Math.abs(rp.timestamp - testPt.relativeTimestamp))) + .orElse(null); + + if (closest != null) { + closest.testPoint = new LatLng(testPt.latitude, testPt.longitude); + closest.testPointNumber = i + 1; + closest.testPointTime = formatTimestamp(testPt.relativeTimestamp); + } + } + Collections.sort(result, Comparator.comparingLong(rp -> rp.timestamp)); Log.i(TAG, "Final ReplayPoints count: " + result.size()); @@ -287,6 +316,16 @@ private static List parseGnssData(JsonArray gnssArray) { } } return gnssList; +}/** Parses Test Points data from JSON. */ +private static List parseTestPoints(JsonArray testPointsArray) { + List testPointsList = new ArrayList<>(); + if (testPointsArray == null) return testPointsList; + Gson gson = new Gson(); + for (int i = 0; i < testPointsArray.size(); i++) { + TestPointRecord record = gson.fromJson(testPointsArray.get(i), TestPointRecord.class); + testPointsList.add(record); + } + return testPointsList; }/** Finds the closest IMU record to the given timestamp. */ private static ImuRecord findClosestImuRecord(List imuList, long targetTimestamp) { return imuList.stream().min(Comparator.comparingLong(imu -> Math.abs(imu.relativeTimestamp - targetTimestamp))) @@ -311,4 +350,12 @@ private static float computeOrientationFromRotationVector(float rx, float ry, fl return azimuthDeg < 0 ? azimuthDeg + 360.0f : azimuthDeg; } + /** Formats a relative timestamp into MM:SS format */ + private static String formatTimestamp(long relativeTimestamp) { + long seconds = relativeTimestamp / 1000; + long minutes = seconds / 60; + seconds = seconds % 60; + return String.format("%02d:%02d", minutes, seconds); + } + } \ No newline at end of file diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java index e6b54f19..9940c289 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java @@ -174,11 +174,11 @@ public void sendTrajectory(Traj.Trajectory trajectory){ // Create a POST request with the required headers String uploadURL = createUploadURL(); Request request = new Request.Builder() - .url(uploadURL) - .post(requestBody) - .addHeader("accept", PROTOCOL_APP_JSON) - .addHeader("Content-Type", PROTOCOL_MULTIPART) - .build(); + .url(uploadURL) + .post(requestBody) + .addHeader("accept", PROTOCOL_APP_JSON) + .addHeader("Content-Type", PROTOCOL_MULTIPART) + .build(); // Enqueue the request to be executed asynchronously and handle the response client.newCall(request).enqueue(new Callback() { @@ -210,8 +210,8 @@ private void copyFile(File src, File dst) throws IOException { String errorBody = responseBody.string(); infoResponse = "Upload failed: " + errorBody; new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText( - context, infoResponse, Toast.LENGTH_SHORT).show() + Toast.makeText( + context, infoResponse, Toast.LENGTH_SHORT).show() ); System.err.println("POST error response: " + errorBody); @@ -224,7 +224,7 @@ private void copyFile(File src, File dst) throws IOException { Headers responseHeaders = response.headers(); for (int i = 0, size = responseHeaders.size(); i < size; i++) { System.out.println( - responseHeaders.name(i) + ": " + responseHeaders.value(i) + responseHeaders.name(i) + ": " + responseHeaders.value(i) ); } // Print a confirmation of a successful POST to API @@ -236,17 +236,17 @@ private void copyFile(File src, File dst) throws IOException { // Copy the file to the Downloads folder File downloadsDir = Environment.getExternalStoragePublicDirectory( - Environment.DIRECTORY_DOWNLOADS + Environment.DIRECTORY_DOWNLOADS ); File downloadFile = new File(downloadsDir, file.getName()); try { copyFile(file, downloadFile); System.out.println("Trajectory file copied to Downloads: " - + downloadFile.getAbsolutePath() + + downloadFile.getAbsolutePath() ); } catch (IOException e) { System.err.println( - "Failed to copy file to Downloads: " + e.getMessage() + "Failed to copy file to Downloads: " + e.getMessage() ); } @@ -310,14 +310,14 @@ public void onFailure(Call call, IOException e) { // Set success to false and notify observers success = false; System.err.println( - "[" + e.getClass() + "] UPLOAD: Failure to get response" + "[" + e.getClass() + "] UPLOAD: Failure to get response" ); notifyObservers(OBSERVER_INDEX_MAIN); // Show error message to users infoResponse = "Upload failed: " + e.getMessage(); // Store error message new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show()); + Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show()); } @Override @@ -382,7 +382,7 @@ private void loadDownloadRecords() { downloadRecords.put(id, record); } catch (Exception e) { System.err.println( - "[" + e.getClass() + "] Error loading record with key: " + key + "[" + e.getClass() + "] Error loading record with key: " + key ); } } @@ -625,15 +625,15 @@ private void checkNetworkStatus() { // TODO - Implement true campaign support private String createUploadURL(String campaign){ return URL_API + API_POST_TRAJECTORIES + "/" - + campaign + "/" + API_KEY_USER - + "/?key=" + API_KEY_MASTER; + + campaign + "/" + API_KEY_USER + + "/?key=" + API_KEY_MASTER; } // TODO - Remove this temporary copy once campaigns have been implemented private String createUploadURL(){ return URL_API + API_POST_TRAJECTORIES + "/" - + "nucleus_building" + "/" + API_KEY_USER - + "/?key=" + API_KEY_MASTER; + + "nucleus_building" + "/" + API_KEY_USER + + "/?key=" + API_KEY_MASTER; } private void logDataSize(Traj.Trajectory trajectory) { diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/ReplayActivity.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/ReplayActivity.java index c6a30472..37f93bd7 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/ReplayActivity.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/ReplayActivity.java @@ -2,6 +2,8 @@ import android.os.Bundle; import android.util.Log; +import android.view.WindowManager; + import java.io.File; import androidx.annotation.Nullable; @@ -75,6 +77,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { if (savedInstanceState == null) { showStartLocationFragment(); } + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } /** diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java index 2f61d3d2..8521aa7f 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java @@ -26,6 +26,10 @@ import com.google.android.gms.maps.model.LatLng; import com.google.android.material.button.MaterialButton; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.material.button.MaterialButton; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.data.remote.ServerCommunications; import com.openpositioning.PositionMe.presentation.activity.RecordingActivity; @@ -62,6 +66,7 @@ public class RecordingFragment extends Fragment implements Observer { // UI elements private MaterialButton completeButton, cancelButton; + private FloatingActionButton timedMarker; private ImageView recIcon; private ProgressBar timeRemaining; private TextView elevation, distanceTravelled, gnssError; @@ -81,6 +86,7 @@ public class RecordingFragment extends Fragment implements Observer { // References to the child map fragment private TrajectoryMapFragment trajectoryMapFragment; + private int timed_marker_counter = 1; private final Runnable refreshDataTask = new Runnable() { @Override @@ -140,6 +146,7 @@ public void onViewCreated(@NonNull View view, completeButton = view.findViewById(R.id.stopButton); cancelButton = view.findViewById(R.id.cancelButton); + timedMarker = view.findViewById(R.id.dropMarkerButton); recIcon = view.findViewById(R.id.redDot); timeRemaining = view.findViewById(R.id.timeRemainingBar); @@ -183,6 +190,18 @@ public void onViewCreated(@NonNull View view, dialog.show(); // Finally, show the dialog }); + timedMarker.setOnClickListener(v -> { + if (trajectoryMapFragment == null) return; + LatLng marker_location = trajectoryMapFragment.getCurrentLocation(); + if (marker_location == null) return; + long tMs = sensorFusion.getRecordingElapsedMs(); + String timeLabel = android.text.format.DateFormat.format("HH:mm:ss", tMs).toString(); + trajectoryMapFragment.addTimeMarker(marker_location, timeLabel, timed_marker_counter); + double GNNSAltitude = sensorFusion.getGNSSAltitude(); + sensorFusion.addTestPoint(marker_location.latitude, marker_location.longitude, GNNSAltitude); + timed_marker_counter++; + }); + // The blinking effect for recIcon blinkingRecordingIcon(); @@ -212,7 +231,7 @@ public void onFinish() { refreshDataHandler.post(refreshDataTask); } } - + /** * Update the UI with sensor data and pass map updates to TrajectoryMapFragment. */ diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java index 7cdf2dd6..2ad373e0 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java @@ -180,6 +180,7 @@ public void onViewCreated(@NonNull View view, currentIndex = 0; playbackSeekBar.setProgress(0); Log.i(TAG, "Restart button pressed. Resetting playback to index 0."); + trajectoryMapFragment.removeAllMarkers(); updateMapForIndex(0); }); @@ -357,6 +358,9 @@ private void updateMapForIndex(int newIndex) { if (p.gnssLocation != null) { trajectoryMapFragment.updateGNSS(p.gnssLocation); } + if (p.testPoint != null){ + trajectoryMapFragment.addTimeMarker(p.testPoint, p.testPointTime, p.testPointNumber); + } } lastIndex = newIndex; diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java index 94f0d108..dfb28ddb 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java @@ -79,13 +79,13 @@ public class TrajectoryMapFragment extends Fragment { // UI private Spinner switchMapSpinner; - private SwitchMaterial gnssSwitch; private SwitchMaterial autoFloorSwitch; private com.google.android.material.floatingactionbutton.FloatingActionButton floorUpButton, floorDownButton; private Button switchColorButton; private Polygon buildingPolygon; + private List markers = new ArrayList<>(); public TrajectoryMapFragment() { // Required empty public constructor @@ -359,6 +359,31 @@ public void setInitialCameraPosition(@NonNull LatLng startLocation) { } } + /** + * Adds a Timed marker to the map + */ + public void addTimeMarker(LatLng pos, String timeLabel, int number) { + if (gMap == null || pos == null) return; + + Marker marker = gMap.addMarker(new MarkerOptions() + .position(pos) + .title("Test Point #" + number) + .snippet("Time: " + timeLabel) + .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); + markers.add(marker); + } + + /** + * Clears Markers From Maps + */ + public void removeAllMarkers() { + for (Marker marker : markers) { + if (marker != null) { + marker.remove(); + } + } + markers.clear(); + } /** * Get the current user location on the map. diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java index 8d447769..d16a5486 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java @@ -610,6 +610,7 @@ private long convertMacToLong(String macAddress) { return Long.parseLong(cleanMac, 16); } + /** * Function to create a request to obtain a wifi location for the obtained wifi fingerprint * @@ -618,13 +619,16 @@ private void createWifiPositioningRequest(){ // Try catch block to catch any errors and prevent app crashing try { // Creating a JSON object to store the WiFi access points - JSONObject wifiAccessPoints=new JSONObject(); + JSONObject wifiAccessPoints = new JSONObject(); for (Wifi data : this.wifiList){ wifiAccessPoints.put(String.valueOf(data.getBssid()), data.getLevel()); } // Creating POST Request JSONObject wifiFingerPrint = new JSONObject(); wifiFingerPrint.put(WIFI_FINGERPRINT, wifiAccessPoints); + + Log.d("WiFiPositioning", "Sending: " + wifiFingerPrint.toString()); + this.wiFiPositioning.request(wifiFingerPrint); } catch (JSONException e) { // Catching error while making JSON object, to prevent crashes @@ -640,13 +644,16 @@ private void createWifiPositioningRequest(){ private void createWifiPositionRequestCallback(){ try { // Creating a JSON object to store the WiFi access points - JSONObject wifiAccessPoints=new JSONObject(); + JSONObject wifiAccessPoints = new JSONObject(); for (Wifi data : this.wifiList){ wifiAccessPoints.put(String.valueOf(data.getBssid()), data.getLevel()); } // Creating POST Request JSONObject wifiFingerPrint = new JSONObject(); wifiFingerPrint.put(WIFI_FINGERPRINT, wifiAccessPoints); + + Log.d("WiFiPositioning", "Sending: " + wifiFingerPrint.toString()); + this.wiFiPositioning.request(wifiFingerPrint, new WiFiPositioning.VolleyCallback() { @Override public void onSuccess(LatLng wifiLocation, int floor) { @@ -663,7 +670,6 @@ public void onError(String message) { // Error log to keep record of errors (for secure programming and maintainability) Log.e("jsonErrors","Error creating json object"+e.toString()); } - } /** @@ -1198,6 +1204,27 @@ public void run() { } } + public double getGNSSAltitude() { + if (gnssProcessor != null && gnssProcessor.getLastLocation() != null) { + return gnssProcessor.getLastLocation().getAltitude(); + } + return 0.0; + } + + public void addTestPoint(double latitude, double longitude, double altitude) { + if (saveRecording && trajectory != null) { + trajectory.addTestPoints(Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setLatitude(latitude) + .setLongitude(longitude) + .setAltitude(altitude)); + } + } + + public long getRecordingElapsedMs() { + return SystemClock.uptimeMillis() - bootTime; + } + //endregion } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java index abc9e3dc..9b73a141 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java @@ -90,8 +90,8 @@ public void request(JSONObject jsonWifiFeatures) { // Parses the response to obtain the WiFi location and WiFi floor response -> { try { - wifiLocation = new LatLng(response.getDouble("lat"),response.getDouble("lon")); - floor = response.getInt("floor"); + wifiLocation = new LatLng(response.getDouble("lat"),response.getDouble("lon")); + floor = response.getInt("floor"); } catch (JSONException e) { // Error log to keep record of errors (for secure programming and maintainability) Log.e("jsonErrors","Error parsing response: "+e.getMessage()+" "+ response); diff --git a/app/src/main/res/drawable/ic_baseline_add_timed_marker.xml b/app/src/main/res/drawable/ic_baseline_add_timed_marker.xml new file mode 100644 index 00000000..597344fc --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_add_timed_marker.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/fragment_recording.xml b/app/src/main/res/layout/fragment_recording.xml index c04381a5..59934a8e 100644 --- a/app/src/main/res/layout/fragment_recording.xml +++ b/app/src/main/res/layout/fragment_recording.xml @@ -93,6 +93,20 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"> + + + + + Exit Indoor Positioning (Coming Soon) Map Type + Drop Marker \ No newline at end of file diff --git a/app/src/test/java/com/openpositioning/PositionMe/TestPointUnitTest.java b/app/src/test/java/com/openpositioning/PositionMe/TestPointUnitTest.java new file mode 100644 index 00000000..71fe13a4 --- /dev/null +++ b/app/src/test/java/com/openpositioning/PositionMe/TestPointUnitTest.java @@ -0,0 +1,112 @@ +package com.openpositioning.PositionMe; + +import org.junit.Test; +import org.junit.Before; +import static org.junit.Assert.*; + +/** + * Unit tests for Test Point functionality in trajectory recording. + */ +public class TestPointUnitTest { + + private Traj.Trajectory.Builder trajectoryBuilder; + + @Before + public void setUp() { + // Create a new trajectory builder before each test + trajectoryBuilder = Traj.Trajectory.newBuilder(); + } + + @Test + public void testAddSingleTestPoint() { + // Arrange + double lat = 55.9445; + double lon = -3.1892; + double alt = 50.0; + long timestamp = 1000L; + + // Act + trajectoryBuilder.addTestPoints(Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(timestamp) + .setLatitude(lat) + .setLongitude(lon) + .setAltitude(alt)); + + Traj.Trajectory trajectory = trajectoryBuilder.build(); + + // Assert + assertEquals("Should have 1 test point", 1, trajectory.getTestPointsCount()); + assertEquals(lat, trajectory.getTestPoints(0).getLatitude(), 0.0001); + assertEquals(lon, trajectory.getTestPoints(0).getLongitude(), 0.0001); + assertEquals(alt, trajectory.getTestPoints(0).getAltitude(), 0.0001); + assertEquals(timestamp, trajectory.getTestPoints(0).getRelativeTimestamp()); + } + + @Test + public void testAddMultipleTestPoints() { + // Arrange & Act - Add 3 test points + for (int i = 0; i < 3; i++) { + trajectoryBuilder.addTestPoints(Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(i * 1000L) + .setLatitude(55.9445 + i * 0.001) + .setLongitude(-3.1892 + i * 0.001) + .setAltitude(50.0 + i)); + } + + Traj.Trajectory trajectory = trajectoryBuilder.build(); + + // Assert + assertEquals("Should have 3 test points", 3, trajectory.getTestPointsCount()); + } + + @Test + public void testTestPointTimestampOrder() { + // Arrange - Add test points with different timestamps + trajectoryBuilder.addTestPoints(Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(5000L) + .setLatitude(55.9445) + .setLongitude(-3.1892) + .setAltitude(50.0)); + + trajectoryBuilder.addTestPoints(Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(10000L) + .setLatitude(55.9446) + .setLongitude(-3.1893) + .setAltitude(51.0)); + + Traj.Trajectory trajectory = trajectoryBuilder.build(); + + // Assert - Verify timestamps are preserved + assertEquals(5000L, trajectory.getTestPoints(0).getRelativeTimestamp()); + assertEquals(10000L, trajectory.getTestPoints(1).getRelativeTimestamp()); + } + + @Test + public void testEmptyTrajectoryHasNoTestPoints() { + // Act + Traj.Trajectory trajectory = trajectoryBuilder.build(); + + // Assert + assertEquals("Empty trajectory should have 0 test points", 0, trajectory.getTestPointsCount()); + } + + @Test + public void testTestPointCoordinatesAccuracy() { + // Arrange - Use precise coordinates (Edinburgh area) + double preciseLat = 55.944425; + double preciseLon = -3.189208; + + // Act + trajectoryBuilder.addTestPoints(Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(0L) + .setLatitude(preciseLat) + .setLongitude(preciseLon) + .setAltitude(0.0)); + + Traj.Trajectory trajectory = trajectoryBuilder.build(); + + // Assert - Check precision to 6 decimal places + assertEquals(preciseLat, trajectory.getTestPoints(0).getLatitude(), 0.000001); + assertEquals(preciseLon, trajectory.getTestPoints(0).getLongitude(), 0.000001); + } +} \ No newline at end of file diff --git a/secrets.properties b/secrets.properties index f0dc54fd..585fc423 100644 --- a/secrets.properties +++ b/secrets.properties @@ -3,4 +3,4 @@ # MAPS_API_KEY= OPENPOSITIONING_API_KEY= -OPENPOSITIONING_MASTER_KEY= +OPENPOSITIONING_MASTER_KEY= \ No newline at end of file From 09b3115f27893bfb1da5bb27fd991b2bc3f37eb2 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Mon, 9 Feb 2026 14:49:17 +0000 Subject: [PATCH 18/65] [Bug] Update secrets.properties --- secrets.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/secrets.properties b/secrets.properties index 585fc423..f0dc54fd 100644 --- a/secrets.properties +++ b/secrets.properties @@ -3,4 +3,4 @@ # MAPS_API_KEY= OPENPOSITIONING_API_KEY= -OPENPOSITIONING_MASTER_KEY= \ No newline at end of file +OPENPOSITIONING_MASTER_KEY= From 1eb761cf01d95b54f90b0d61ed9a41163f4c2a0b Mon Sep 17 00:00:00 2001 From: Vlad118 <96501158+Vlad118@users.noreply.github.com> Date: Mon, 9 Feb 2026 17:59:47 +0000 Subject: [PATCH 19/65] Add contributors section to README --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 2dd7496e..bd7aec9b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,12 @@ # Embedded Mobile and Wireless Systems (EWireless) 5 2025/26 ## Coursework 1 - Group 13 +### Contributors +- Vlad Stratulat (vlad118) +- Stewart Alexander (sa-fx) +- Keegan McGowan (keeegannn) +- Alex Mackenzie (alexmac3002) + +# [![Android 11](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml) [![Android 16](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml) From de96aa95985ac7432e95584ffc94e7a15b1861ff Mon Sep 17 00:00:00 2001 From: Vlad118 <96501158+Vlad118@users.noreply.github.com> Date: Wed, 11 Feb 2026 14:34:09 +0000 Subject: [PATCH 20/65] Feat sensor data (#33) TrajectoryMapFragment getElevation: added missing init for SensorFusion --- .../presentation/fragment/TrajectoryMapFragment.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java index dfb28ddb..1d5c5c8c 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java @@ -91,6 +91,12 @@ public TrajectoryMapFragment() { // Required empty public constructor } + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + sensorFusion = SensorFusion.getInstance(); + } + @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @@ -172,10 +178,7 @@ public void onMapReady(@NonNull GoogleMap googleMap) { // Floor up/down logic autoFloorSwitch.setOnCheckedChangeListener((compoundButton, isChecked) -> { - - // TODO - fix the sensor fusion method to get the elevation (cannot get it from the current method) -// float elevationVal = sensorFusion.getElevation(); - float elevationVal = 0f; + float elevationVal = sensorFusion.getElevation(); int newFloor = (int)(elevationVal/indoorMapManager.getFloorHeight()); indoorMapManager.setCurrentFloor(newFloor, true); }); From 18f0fb1ae3cd7f8aaa84dd8546aec87be756f956 Mon Sep 17 00:00:00 2001 From: Vlad118 <96501158+Vlad118@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:21:32 +0000 Subject: [PATCH 21/65] [Feat] Sensor data - Add BT Permissions Toast (#34) --- .../openpositioning/PositionMe/sensors/BleDataProcessor.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java index 7cd75c3a..16f29146 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java @@ -11,6 +11,7 @@ import android.content.Context; import android.content.pm.PackageManager; import android.os.ParcelUuid; +import android.widget.Toast; import java.util.ArrayList; import java.util.List; @@ -46,6 +47,7 @@ public BleDataProcessor(Context context) { this.observers = new ArrayList<>(); if (!hasPermission()) { + Toast.makeText(context, "Enable Nearby Devices / Location Permission", Toast.LENGTH_LONG).show(); return; } From 3b9204d712d43e455e00d1661f5cc85332b79f4f Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Wed, 11 Feb 2026 20:25:53 +0000 Subject: [PATCH 22/65] [Feat] Nearby Floorplans (#20) Co-authored-by: Alexander Mackenzie --- README.md | 1 - app/build.gradle | 29 +- app/src/main/AndroidManifest.xml | 6 +- .../data/remote/ServerCommunications.java | 488 +++++++++++++----- .../fragment/CorrectionFragment.java | 95 +++- .../presentation/fragment/FilesFragment.java | 11 +- .../fragment/IndoorMapFragment.java | 61 --- .../fragment/RecordingFragment.java | 196 ++++++- .../presentation/fragment/ReplayFragment.java | 19 +- .../fragment/StartLocationFragment.java | 31 +- .../fragment/TrajectoryMapFragment.java | 340 ++++++------ .../presentation/fragment/UploadFragment.java | 13 +- .../viewitems/UploadListAdapter.java | 12 +- .../PositionMe/sensors/SensorFusion.java | 140 +++-- .../PositionMe/utils/Building.java | 333 ++++++++++++ .../PositionMe/utils/BuildingPolygon.java | 136 ----- .../PositionMe/utils/IndoorMapManager.java | 192 ++----- .../utils/NucleusBuildingManager.java | 122 ----- .../PositionMe/utils/UtilConstants.java | 39 +- app/src/main/res/drawable/floor_1.png | Bin 359812 -> 0 bytes app/src/main/res/drawable/floor_2.png | Bin 330347 -> 0 bytes app/src/main/res/drawable/floor_3.png | Bin 265043 -> 0 bytes app/src/main/res/drawable/floor_lg.png | Bin 130320 -> 0 bytes app/src/main/res/drawable/floor_ug.png | Bin 501513 -> 0 bytes app/src/main/res/drawable/library1.png | Bin 463257 -> 0 bytes app/src/main/res/drawable/library2.png | Bin 464249 -> 0 bytes app/src/main/res/drawable/library3.png | Bin 435986 -> 0 bytes app/src/main/res/drawable/libraryg.png | Bin 474919 -> 0 bytes app/src/main/res/drawable/nucleus1.png | Bin 188729 -> 0 bytes app/src/main/res/drawable/nucleus2.png | Bin 173104 -> 0 bytes app/src/main/res/drawable/nucleus3.png | Bin 134987 -> 0 bytes app/src/main/res/drawable/nucleusg.png | Bin 243607 -> 0 bytes app/src/main/res/drawable/nucleusground.png | Bin 457380 -> 0 bytes app/src/main/res/drawable/nucleuslg.png | Bin 67768 -> 0 bytes .../main/res/layout/fragment_correction.xml | 49 +- gradle.properties | 4 +- secrets.properties | 2 +- 37 files changed, 1427 insertions(+), 892 deletions(-) delete mode 100644 app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/IndoorMapFragment.java create mode 100644 app/src/main/java/com/openpositioning/PositionMe/utils/Building.java delete mode 100644 app/src/main/java/com/openpositioning/PositionMe/utils/BuildingPolygon.java delete mode 100644 app/src/main/java/com/openpositioning/PositionMe/utils/NucleusBuildingManager.java delete mode 100644 app/src/main/res/drawable/floor_1.png delete mode 100644 app/src/main/res/drawable/floor_2.png delete mode 100644 app/src/main/res/drawable/floor_3.png delete mode 100644 app/src/main/res/drawable/floor_lg.png delete mode 100644 app/src/main/res/drawable/floor_ug.png delete mode 100644 app/src/main/res/drawable/library1.png delete mode 100644 app/src/main/res/drawable/library2.png delete mode 100644 app/src/main/res/drawable/library3.png delete mode 100644 app/src/main/res/drawable/libraryg.png delete mode 100644 app/src/main/res/drawable/nucleus1.png delete mode 100644 app/src/main/res/drawable/nucleus2.png delete mode 100644 app/src/main/res/drawable/nucleus3.png delete mode 100644 app/src/main/res/drawable/nucleusg.png delete mode 100644 app/src/main/res/drawable/nucleusground.png delete mode 100644 app/src/main/res/drawable/nucleuslg.png diff --git a/README.md b/README.md index bd7aec9b..ac35411c 100644 --- a/README.md +++ b/README.md @@ -54,4 +54,3 @@ - The recorded trajectory will be simulated and displayed on the map. 6. **Control playback**: - Pause, restart, or jump to the end using playback controls. - diff --git a/app/build.gradle b/app/build.gradle index b506ad1d..d991de38 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -68,25 +68,23 @@ android { dependencies { // Core AndroidX implementation 'androidx.appcompat:appcompat:1.7.0-alpha03' // or stable: 1.6.1 - implementation 'androidx.core:core-ktx:1.12.0' implementation 'androidx.constraintlayout:constraintlayout:2.2.0' - implementation 'androidx.preference:preference:1.2.1' + implementation 'androidx.core:core-ktx:1.12.0' + implementation 'androidx.gridlayout:gridlayout:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'androidx.preference:preference:1.2.1' implementation 'com.android.volley:volley:1.2.1' implementation 'androidx.gridlayout:gridlayout:1.0.0' // Material Components (Material 3 support is in 1.12.0+) - testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.2.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' implementation 'com.google.android.material:material:1.12.0' - implementation 'com.google.protobuf:protobuf-java:3.20.1' - implementation 'com.squareup.okhttp3:okhttp:4.10.0' - implementation "com.google.protobuf:protobuf-java-util:3.20.1" - implementation "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" + implementation 'com.google.android.gms:play-services-maps:19.0.0' implementation 'com.google.android.gms:play-services-location:21.3.0' - + implementation "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" + implementation 'com.google.protobuf:protobuf-java:3.20.1' + implementation "com.google.protobuf:protobuf-java-util:3.20.1" + implementation 'com.squareup.okhttp3:okhttp:4.10.0' // Navigation components def nav_version = "2.8.6" @@ -97,8 +95,17 @@ dependencies { // implementation "androidx.compose.material3:material3:1.3.1" // implementation "androidx.activity:activity-compose:1.7.2" + // JSON parsing + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.20' + implementation 'com.fasterxml.jackson.core:jackson-core:2.6.3' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.6.3' + implementation("de.grundid.opendatalab:geojson-jackson:3.0") + + // Memory leak testing - Include only when required +// debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.14' + // Testing testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' androidTestImplementation 'androidx.test.ext:junit:1.2.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7f2fc293..5ec34b2e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> 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
7MKzXG97GhG9` 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 diff --git a/app/src/main/res/drawable/floor_lg.png b/app/src/main/res/drawable/floor_lg.png deleted file mode 100644 index 75eb7014237a34853852e94491fb572c80bfdd80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130320 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

kwk0yjlWlLG7ZaFq5;rYJ3(_7RESdYFbIs(@ zZ&V$M=n8najeyjdHADSuImBC^?YdYL2dA>e;v)JWe%MHwBMPo!))luJ&q!w3-NWDU zy1=&YAn|axWn9J0zputL0<$^HK8X)!@CnuRfqQw56S? z#HC-VG4oaSQ>pb3jHJY7B>#~p;^s_+$y{?_e4Ez-!fkBed{MS@sK7%D!$CkWB?an_ zO3qO~WIy|VmM&tRMXi~S7dwv;}e5J==j!#^YzJU5R3ZuH3-V>U-Ep| zJT-^kfRb@*m>GgK3A&igk_5dnTCJ=|=%Yi+ytnLpuQrx!otkxMuOKVP1c8=yRjn4ZxoI?3VVR+`zmDHIeKz7@mqdnGV2N$C)z)!*Y(FvM%3y7lyHN>`@|@1Z3lSfJjZu zGV4YmG~){HflQAH*X2r~QT6E!XZJg^3$ND1KLu(q=#kBdwXv-rQJxLS58iUq+`9l2 zr3p{b4Y&=UvG{e5xJ%)4-P(5dtvaMVa+>&LtMH6XDh~uJBQV_{dWEYUyR3@L;=CmF zUO)TpAp1p=A$RWLL*SchTgV)^O=ZaQyN&bVTQ;5r5_4MIbDlC*2CfcZV@Jz7T-A?XJst{Jv_nuDhX%3s$%ONO)TM2pL^F` z_V9jx#}5I?^LvE9e$vUBiK6z|1|uVV%X`hWHbdsb_aL0*BheuGV0PYEN-^$~gL zJUTRw_3it2Fd*8uKt%w2DMfixNg-(WRZX+iiE+o8yOe(&M7NX77ar9?tcMQ~L3c&nfvCZNs-|z*geRxbhlw1#4XTq}yt7Au?@G~0 zh>k7L1*NWd)ZUE7ATO9>S!Z3a+E9&G1Yjw6s|ye|j&U}>QKlWmSxSvh*k4teFLTTj z+)07u4Cawt2?JQ**&M@OAK@W8Mf~X3R zM;=Bivi7Aqd0L{E$=SX?$KfVtd`l?<4t#=%01~{08;7@2i0&;#W0>u@oe4rNo0D#h zOOmJabD!wFX~g;@)e=N7IU-5Gjr@#`(g)r{LgSSKc71n`lUWt11+B)@LfPX5ttQj% zGK_rMAl(EU&K))Te+DkR zZg;fA6IykKegywUyZBqgnoGxQ zov9|{8QV&t!bgb&}GW0$It~!XvSlYOK1k%6eEE4A2b)5`g);J z2{UlX-c)^{KMTbLL@Wt7(oHJuW7OS2vwK_(YX`?QG>*S>kJwb40~v-oa|cDH8x_$v z)z#H~aa6NN1at7W!6Lr>yjSry!*el7r(+F#*VWj}M6XpV^|;W zL8_TY&9fUAOw6=xw#qENh;6%zWw6ZdV2Bq~=Ii4mH6OiD^KvFaMU^QBb zBUnOHF9*1UraHsShPZ(-ECUu%eFG^l{9Xj<}&HJ%uzTzwYy>CcN#@A z0$MoF45(*_Wkjjo+E5RJh{FplVho^NQJ2jNr(S>In@H4sMLoiK!v@S$xnWUz98Ap= z2s&lsk2A|9cio`b)mb3Cika1l^o@qNVRY?G+IIKbU07;R-PQIv?EqhX*&481;ZhTCk!GN$FbmS1bP?j%%@o8{113btb<m@sf`e{(7WA-cf+AC#NW^0(k0rAjIWKDZ(t;_3(Lu;roA!Il!@lv9IxdcO#}|! zu-F;5z!3N8Gp>wbMn)os`!q^^>gZ{GrZGc?1?Kqkf^j$b0$o8gXtCBGpF>oLueOeF zIJr+U=@HQ)0-y%4#3TQrw6q_FYD5^p)B7$CuGKzPr# zw?Or~jFgpCc6G`AC~B%u?!{Rox!`Yem<_Pv~)(g znigW=poG&*pxCOIFDzBByMUy79!x2O~?AqmTT7nh7=I62QG! z5!i?IV!YI9B7@{IITbktIZ?&K!FjBQ-ycyh+)?<@XR51e_Sp3u&i##J21kv`08#3I z2usdjNTP;2BQND6CcBpR#Mis^D{hPyzHT|7tu7ga09@Z!1M;fob$S(_8g+9^6U&bl zE0+M_^;M)z<2QU_%Fdz9{n0W{{U)9#UcPa=KJ?zFpaatzhx9XADgo+bJ(8X2RlWwx zX2#&G;{xG2i8*GVRfCAvwRP5?fQ;b7B|3+;kXx%K-^}mo+m7S224_Yj*uQZKzbI%*lusB*YyU(N!u1GZjtkPE6)GxCUgNEhJt@)Ntr{=%F#;c${=VWTWXXV& zRSP{3a~^wwTVgjeul6cA8XJc$I|9r;39m||WUIIEk-PEsY~!Ol3>l=nq%;cni&j{& zc!J*81yY?BZe>wV?0TM(;~Vg;hkcE{gl)~7lbtB|;mwHtMbkIeu2WpU9&LHu`1|c| zgGhIHVy!!D?$JtyD(DZ?U=4R}F)N%LTjX}C#&xMH6!U9;Hg>|~OB`pO_x4?f)98C> zM)Ns34`aA3ew+XH)lrTE>{v#5;!%s%Ju|cXWr_k&Oo>-q>obd{nPp)QOf-IMW>Tor z>5$pdw&}t$POt1FX|7wB-ggS{6si@WaB*ISPZKRNG5#?|n(~K6WGJbz7b1VNt$F^Av{L3V^kOUjCOYY9Jqv zz*~3O&`>AZ9*Tx|?hI)+6hVecXaI5&7FKi}td5D{7ZW;(HVf0@)@l>pK;s1n3FFko zre|zn17HxDGvl2TyL1tgZ#ga=dPu-~$Og0ZGo2Ikq&WK2cw zM^Pu%6gPBkr#Pf3jn;bcPxxjjNS=JVRA)gy;x<8Qqn!08kIu{A>Y;$G~Kqt2|n%*T+sjL+vkhNwhYxUV?C z+R{lG-U}4ecIjEcKC?B^P}>PbL9-9^{JtEX*MbuK&(Uib7G-#oZJ~|$=QBPjcGLEb ztld?JjavYt_qT;msDkf;Fz3Y*i1;=N*Vn_Y%=*cuON724S|aweL^39w@T0WGx4z_k z{z4df(iYSQdv0bcl`PDWK5az*QbuuL+=!pZyYIHqeVjebH9&cvwCff+`TcbQMYf-%SuXg~of z(==)eXG_TyGgX*WLZay8a4wj|>*Vfst}ChQ_E$oB*KO?CuJUOQv?9WVUg=~TO(uE& zU`E^7igQbz2ex8n3_MY4O8|Cr?fuQlS95PLUuW723H*W9!X*A{??h4hZ6f6Y@zPFu zE#vM(YHWhQyxv|j!tNEpIu zjYS84^7G)lM8L>*4h^*oRjMy>Cy3&@%s3%yU1kU;-Fs@0(Gw zitRTKt{Y&LfChHWwc!Q~7l+=R_T>nz%hcHU2c70=-jTYZC5D zbzVh#)fXj~p!mo&nkY>@TVw(@!Ylw$|q8%E@EXQXL;SB+1!EkZ|p!P^#Igui}e3-dG@Qf z0}UIxZ)uIELlGE1}meU%w7SZph}B7MB*TXQ9bD+c1^^V1Afg zkTRzS+H8TS!2r~{p6`@tc1U}0pM87$CcO4|{4lj+WX2U;Ix>T0-W3Bxo)nD7!pu6N z@&=)kUfZXBEvMD|n$#VlZsYSj%*q$@kpWcv89gyn9%zjvAyoBPvAMUmqx%PNy!(JX zV4nvnZoim)`MH$n$WdXvOpL}Ne+)R zgI4S%FNq5MOtg_3Qw2RurFR7K)WXBQW@izc;Z9Xqef>!h>YNYoTyY#WNgDM>6BeioJ(i9pfzQb?4YWkSk(IEg5lny*GjFgt={!Bw@ zs+q{aOhR_Q&a}Q=%|ejA9kztW+4o?HFBc|Xp=e#EUy1S>7!CnIoYfBm}GUt0%R_~Kj+U&8lDx#a8Ux~vT*sE zgF_TosKNLBTWY@auab)<_WxH8DJTn&#Pl~oTh!kJMhIrImByUy>s*X7bNc2}D@$|0 zUEG#SvxL?PA4_Wo6}Ez2Uc2AbjNh)XI=0K)AFs}3eYDWCh17U115^3LIar@c#R4ct zghSTSV|!NebSZ17we{+Q-P5Vh1cH>v6L6iF##h zzQ^VZ0$HHEjq+$b4(1G8;N)RSw`RXsHsSl05P-Pej z7&p!7A^@O_{}6N^73lMGZ4TnSfe`X}#S^HmarCRgqD7pnW`9+l=;a)jkdgPCV#9Ta z$K4hG9*+E5$n`$>OAKbn^!)>lvg96Sz#@K)=ugbpM#31-PK#fGIMBDRLpUc}lqZV2 zm$0Jn@jpdh&vM4>J^R`{quI91M2}x>EWSwQ8f3RStgd{<9TiwULooPFY$pO*=Q1-5 z+FA$>HdP0vi{Qw&Wa1#>B!fYL)A3f@%7M4y)c^q|`+5Mvf)2+MQCf)k_DP+0(S;jc3bO&C$J8sj^lH?(_W2(93O?TRJ`^-%vZ_CXSO1eyD zi#A=0%JYt>od#Ft)ucZU)>+jV#%|4wty$Xrn$Urk32gl88)Q!Wc2j5kE*w-P}9|01Su&)*K`jMbbpfjebAa= zpJXJZ^E@WSaHTDjLmXs9pw~g@<<=Au%v?%t*p-Q>HPT!u@b|;1eGd}?(_}{MMHeC&}k?_=uxVK0Xu$c7mki`Q6yPrd~gK6+D)w+VQHPJX_Lx8c@U$5sJI9CiV z{UG2pEOKn@Kav77BlYju6HM+j(4N&SSSNc{9}pRr>bw}{TZb5mx@?SVdgdP^w3GcR(OVw5(R!4HQUy=#mN)*OFK9b*llC@Cjyk9zEC`xdFj0_a^CDG78lHq#D*&Yf> zmhX}`ujiCDE%PuBSzyx7*Rb4|3co2%eSu;j1m!JthP^~~N z#C8VV5Uk$KbRIOf*^RSRgXxtb1g5p^Q2NG4Wco>xc|rGz2aHY;bk2mIwctYsONo2j zejJa-$1KU_9xCZl?cH7E08;&2JfPdX@3h4^cY)_WQuxnV$$$SN<)51K@4x=fLx*|i zYH>SccCbnNzslpXys<;iMb--s{gGx1&&|xuaG02wnwXeaB)$KqGT)QKT+i+aSVe?~ z_$5-ONsP!)@=(=KRi7zym(h*?eSXk)3}MaO7!?H46?@#_e8Xz<4Qd81Fr$@=VjG1M zio)_UR3vS%1<_OH<@f)~4K`X)C%bd!&fwFhnA*(kZ{M-whcd8U?eInZPt88)I~?(q zFeNoLH6_&-fFwHaNiMv4|L$GI{}N>Y+bg`+lXobPvY;F*tZ#aW=l>|`pEj@-%P6_u z)(mRNWByAzP{qF=169E`?~W5TT~wF_Z4hyXeJu_1Y~d6Pir=08Tz-+8fFp_UZm

    iB}nMf^MZSA9gC7%5!76ufg<8bD-W=p1TeN%-^y6brrSB z{*v_YF@e5CEl|Rf{nX|&u%LkzuE30W{Z8S|&W?Z&USL@gFvZw;dS#$nl7iR1v8Hm* z3p>&KCkFo|a77GZ1Vf0n+d1Gh`*IYlE%kT3P7X(W&#Zhfs!xUrjFW9d?A&j6X~%ETwwhg00+q?vjMuax~Va}`ecj5CV1e1>$A z_u#`#y9)e@gDM+%?SY6UkV}oRf#c`jd_9F2$!@`Ps@Ro4#XJtT$-ny%c93fa-4K5E zxZvKj#Yw{5qya8Cl~b3%hygxO0~vm*fOTN`CQ03aTYH~6|eew-fz$oHo z#|E_jo;B>>H9qW|A?rfErl+xyRq~O>*0<&g1Kc+E3O$vg0!VmLzuTXB?qzh<|5f8#YM$MMSQ`DJu6X_Zk3f`{T4lS;?>CYfvD<&f(yK{3g**| z=XwDkRk#b%(3D~sj0#h^4RMLpREA>wFxX(_6STI`yT6>}EpNo!v+7?086tPcwQKXZ z5HG~SbqK7bTFrT5vebXWu?W=BD2(%TNKW{WV7Npqv4`MFv9d%wp2CUcFHi=+Gw(_i zcs(rCaHa6lq0_nl=KZDoLUwQY;V4K%#Y59xMObTA&8v1Fp0GlwCOtQ7%doB=^)L#X2zHBaW?-KsLfz zWYF1J)1%hptI1Cj6Fsc%pDzh;Ur}^j$kkP_t}bd3R*k$vwIOb|@sN2QCtkL7&j@ky zs`3fT z9=$TlwiNt^Z_>oqIW-n|_Pmacq9NTL!rqN1M|(rNm~v#-2gQaeP`}8Xpz)|nSrr&J zLCXl_;cLNlYN4g+zf+RO+C<>RR4`GgCnw>@@FY`Dx*TwsE&IpQb@=^C`b) z^Zv>}CbnB8-;RIyeo5y56xEEOP+AJD4|cxjsC z!_+h@?9b{v`6?17Hn^SKafriiE@!WcL1i+ev>Qhcb?~#u^>2TbAz?6ck&|mT5~vr) zm=*8E4xpEowyp|>w9hsW6Ov*bA8fiC%}kFwY|6=IS3m=uZ+M)7%>lXOxRH^;J-)j> zt?s)~?2g<_s77L`_5qJf4)j*@0QHAteX3Zp?ZA+Tt#Jh?Hr<~i?5QRA!&bH*yG0wjUT<~@3USld0cAFuVSEPpka_}gp5{Z zH+h|{4^UpO#JF8-Dz$3l{un&suqN|FI>EKMiJC!F2*Bl6 zTie3ru`TL4yHz{F@m)QQ;3HQ#IjW{}zi>+5yw|(7XSt!zxS_ARmiHp4za3uwGz;Be zD`0ay&OzF%$sS_rNm6+PZ0;BZ#QxJu!Vw{5^{)tXvn3dUi;Fv?M;{|R>|#mwl#$La z{J+0~?3HP`_K6xX@qzclCc@VW#s{CHI{`!sC z$!;>)Bw;RJIPkeMIeskQ<<~8)_Gv>%z$Bj4RaI?l?ZB$lxEz^;BZol%f&r27ieI}N zG6r`Ub+nvoZ_5N=yxT$^GE&GP8%pj+{%HBfuF~!YPPt|wt{j{fzoBz4>OE^~*%s-X8P4-(D zb(E+Yr~#n?+2BKCkE#5Nc>CXddoR}#p0@GH3#f(8Y$0hS4sCU1pLkaa{Ao_d?6759 zW~w!_-Z9`|H=+xfUO2}q^7ThlF}2k|ZHMTA4`yxbU+#79M?@gsJycGp}4B)8PcP(JP$F5zkJaVk*m%#|}(C zo30P;U%`O9f!-TVQJ{|hTo{ykms$dG>&||%J{Q&o4$HttWBp(zD>AnPvh&V01g6|sl1G8AIvORDt^ie$7N9V5eWdp z>nU`Ngw>dnP5purM4T^8rkD~q+s+i4wm5Sc*Q*kbx-)f9)*JuD?>;K|4g7QzHoK&g znOHm>>_9qt#x02ZyM%$|KLkQ;WltHe7kwr3DDTfG)QLorftzt#m|0Wg2Uf+Gy<;iA z81Y#-)zrT_uaUOz5x@Iu&6W+Gr8Q@>E~d?=rKLT8F*v@x&6{Ua?{LgNSzvW8<*N(y zEx!oJ%lGX}A!iDnw-qtA1I_}NLhX%J2XGN>h$4Xz)meK7JYWO|(R3xtelqJ-cypkS z7BE0|LyY$i|C7IHiZ6n8;E&rc8x|bjR~Yzy5zQno5Q6TPy%;DnoDggPlYa01`rLub zCaP2PTo))-$bTTcDRS+GfWx3>YCfLB-s@tAV(jt>!&PTMam6g}TfHzd&|Id64JL&@ zE8X=E{`$%^~t`>x`g|6B9n{K{L$zGTF%?%FJxC?U2SkGTfI zx=J@UsSKIwx6P0!QOmz?^D*mJ%oyHd3rYCM+72D%$MOq^6{B*m1RPG##MV{>!3HYC zQHkf=+VfqYfdEw$4O)p-&_?MoYT46YKb9Bh*P!mulMwX|y0GnF-clqHY$QX;}W5~PLd(9k+Gq%U+FTlTL?Mw>)x&qlF^A> zwha#04=4$c%NmLC20c91X2b55p16p`#ihl?MZ6?)u;O+gs)Y2oe)tj*1M| zKp0#~@GQmjndvW|h$#T>9>A6+U`reY)4;?zzZ_5C&cq$9e7&@pAj%Fm`abRHPPVSO zHj&{JU-p9is}Y!~SDuYX*l$YfVNoQA145TYZpEK-${$se(u$T4DtyE7I2wyi@;;*I z1>r7`M%fo!N~*%qkB`OO}{v(T_7NIG$M zN5Wq~^6-~U7F4wL%6VinkYfQisy)U6;F`%-ZZFmU055kyOD@u_G-wTzfwsYe*>tri z1ebF$35cQ3_k3o*;XQ5Pz4Ssc5XIXS<3$aqenP;AUI=Q!o9s&UIZBP<6^ATFvPRzL zTv;t$U0W-FwZOchI~E)@m1+gEN6b~jW%VH&-5)-W(+3_|ciF5%oL_i8G6?#7M)Ne! zIo?^i$M#wN?=B*+Y*UC9_GDWnZjcQ&hjIE<7`(?{H@l#hRJ|&g1^BeCp1upYKfcW9 zd8+a3bMOLKK2in##Q9ddu@qK`=*UfPt``zn( zzNdgt`GwxhjC48$MO?raR2%5`1;4`7ghC)8Nl6eDQba-aKL#9h7jTMl=wpBW?0>D{ zSuyD3Wnf`p5oIa=(-(b@viKC&G-{Er2`l;Vk7&CWiH6Cgv`wJ2D zRmy#ciM;=*Bb)g;06`;xaKM|k=l$}<2lOnTFctd#T)j#;?8TFNOMb%jST5EZZxC2ej+LQ-i32`Oo$hJtk0fH4Ll0#YKJyy52YDnz}UtZ z@m%x1f4}oQ59jFN4|cYFzt{J=KJk9PKKr)AEUh2I#@wSlQSl~@NB_I;?Y`jy79{D9 zvC*-2l()xZ3#^%o$RmUt`+jg9}(;%}BI9BM)YE8t3}G`QK)h zdSqR#l3KQ`jyrIN37@}`pW_T18&eK?X2@eWAbL?VvP*)P-S0ZNH)Q|lf8HOg<6VnL zQ1$;1PVoomtQPROt@FSE+ZquFO$xo_`mz3yiQs#IM;4wjT(Zm z<tsu5zQv{?3pD7V4$Y*ngxcBv-{w( zpThrNYq+20Zjl}6@sh*(%-Ayv`1;u0f{qkW_ehT6*wo~IP4)i&daJAUt)`B~+aype z*iH|{#U=}>T4l`dHghlOOiw`-#wWl(7OSs`|9h3cvB$z%=bd(8hqlExz6k2hF-L_D zD`GsvM=xu6Jr{$iVJ*%r- zYYPeMax5=68e+bvb&Ztu5Fbe1#*3!S`eL<89(D$ey%sTYIDGwINdd&oY~X!O+uLx= z6e@9in*Lm?WSxr)B{F2{f7FW<5X2F#vLu({+RchTdIDer6XRw}0OzZ6j5HHp2Na1Q zV?-%YV#UZ(KecTlf6Kvc4?j0GO^|IjzqZ8w8=VE3*U|!j2mZ2R%x8f3h78rD6t$l( zb^PJu@VGfVL33z1{>O%ifYVkZO}>=d*)wMZ{XzXoEmicEfs=O;Ca%cn^MWr6e>D9+ zo-8bv3y$pS_r+^Dx(nv}{y@!E3KNAa`_IMAR6CN)XE>`&ta=lq&BX=0yDexY%j|+L z&dPKfmXtN8!;hzO)77ZTg(}=CD)xT?8Th|H?xObz{_v+ypK3kjHA8NZlNXw1=86Ce zn9~NLW@^wY{6Ua8r10JAQp6zk?v+{%q;Q4Yl)5-ygWSZCTsh05yb=~?P|PEEizD)Y2+)Q6}#A$F8Y=$YfmYUa*? zzJYjI91x%G|A>;Yo%t=7Cnh9BmPD!)y)9qT(=2-QrhCb(spV`{Gr8F|RLM~4oRE$r1P`l{@si{$>2N#1HSfPoGNq9|Im9ZbBXXt@xwa<`vN7+~l0`Hz`UKv5j#d5? zFmc7#?9b0opsYG?0J;cZ9Z;04?4e8^j2@^a790BBzaD?Xa)9g>t8l~qzxSoazv-84 znbL6wq1Ej#TI@{VaS2bUk@{jxr2)5fq+% z>l4X;-TtQ~kA99UrumtUL1RpjQ+q?-{R&y z!SGn5C);*S%MrS{<%ps7xE|GEjJPGR)#bt;4r5%KQc;t7OVUW(&_xmWBk~DXbTQ~w zpy`4kn{2%uufl$)l{bSw{2j}}NnP)$tsP%J0YlCajux9?{)j^~*U4cAl6r<{StT=< zjn9R>#Yy8KiK7Sjk0P{%qIEaj4{(glN@{^sJ|`G1Lf+9vwUJYkZjqC!s;aT-gOGUEh;mPU=`K!2MI&9UBQME zAPNFSmj6o9!tQ8^5#%0hVcMXCtYiOJ9(wc8)zWhs_k*POb z#C^!0Fn}z2FS^8o5mlb+R6y1bzQcVOj16UFuei7qjq_xl^MCiKPFM@?6LB;%>DRt! znQ2oxABmQ@FKcXUY;SBlg;IO2qpeli%*Y|`zB$O~{Qgm@x&-+m*w2=_EVlOrNI)#9 z7=&9tjPdxHl%1K}C4t^_wch;It78!ltKUz(7VU{D=~&!>`35}H%^bsmFzAq_rF$2> z`N+PI83%Q&6H=;v3qV=(|JXzRJ-ebA=Gk4((+ifcRjo`o5;yK&t>}>mr zX;mN|@!R>ul1@A0(MGy7pDb`=-)m|YTwY$ruiLJ6fvSo<*GF2MbVjZ$fIZ(2g@y*= zK2NxE)k(Iy{ujt;{sO>+Z>$1Z4hd$0$&4ssA*YQLQP)OrXGER*QMp5udfg0=z_e@&<@%UwAoq>m-5w6daaXo9i}pRO(i+BArs$Lo!DU` zlV!5VdGd4#HtV7CAlHqaiRYE0TbFHlpl5KKLlwDS?*m#GG<{x*>_O#e1xxFA5>Kan z^S^^%_xAhkkbKJYfmIwapfRO!wlQS^3u0T)G?mqSqWMabawb$=-BYicYH4ZtAKAhX zN^#G%No6ewkB!MZw_Nr7&9B}4z(47^`E6RQN}p`_!LQ}bbq!{`x|N~ul!0b#uvxBy zk>hP%TQ~sZI7rHLOGM)8@cWn52SVX49}G1sIgM3AWZ5l z)-Uqj`DFNlHv?I&%VsvV0rJWs8sKCCRchkne|4TW^G|~SMVDIeRKOgqu-#ChO~r~K zpFOX#r*BHqMgJv>YsNSCC5IpnXY9 z;?vD#@;*XpA{eB7lPqrv#|wAYAiYU_HAwnqOy{tY8W!JhKnh2jNuF%I18aoPG=k() z=uT#mJ_HjC?otgzAhwA5(i95kxE{Ly6j<2l;6xm{;10m&)-N`t`Fw^+hX21KmO0>y zM5gWapUf98UOaQI!D8|a&@p*33|1y4C7trw^c;1yoN*AXW;qfu7g*v^G=99%9SyYF z!Jv-%d;zFc&owVR)irhg9>j8viq_=Y-MCy6@}T8Fes=Z;8l%PSs6aZVX6x;s@55fr zg)?tj{eg~Rjp-bCjDbSKUq8(cNWVBK+rzK9jU*TakTt;pBt=TXtlI!`tBy_S{LW$H ze`p=uQ=o62|AP(;j#nNaf{}!s-`30)#@3zh%PJ{_s8AiWW92){mz11dK-3uCz9Bo( z~y)Vizk?)=cnUs3K4eh#oKO^IX8gUG9GFfG$)=-Hzs5Phx zEcAT!aG_L!oiVu@vVU}FO5S=hZTrD6At^9O*X`FLF8`8y#k;L30rLIQkzTR!hix^j z_QSR)+grpz4_QBe|1JV((Ue;ixqQj0u7DFM9I*Ofl+A!-U&v};oK_b&!^d(t{!L{3 z$laY()<3lQ4_jh-|+h#$m1OX;*id3c}(Bb>y700iqU}qi{S9PaFOV= zG%#z(^avm2^lo}SN*cd*D@yu|>Y?)=(xtJ39B>G!N}ZOMeF;ZE!|#7Dk!d7Ng8U68IT0y zWSMNtm1ZAVR*HK0HlE{b0mlN4tp-et+ESZpC^@K9%u#T_faJK)gsC=#uc3$D*!edN z3&ffJ1$dZ&ij0z2M+Sgzl1T*sh(+t>?(VMYF1&Ewvoj)R?BI$8`QGFk8}hmG08`43 zb_NtRAje^*nj{9BO<**&OP^HUo4V2u0)vle(Tr`LhOZw#AfrffI^k@BKWT~71=Rkm zoveMda7eidaXyxH5LmzAN@-61(sbtrX-Um5Xh~b6+1jh>9Fz?`jy1_u60hO&wxgV` z=_Rx4C@kqZRLdPmGwnM1rwv#GX;Ycr1r^*=wX1nuWFGC#`^WnXc_YaQx*UE$CLMB z7{e%1)U85B@}9>Z@au1TB==dywpLBuy#NCwrRl#ol&F_5;y&<;k>3{ zCX+Pm!SKl}n%=ne1qLdv)9|=p$nQc9K74QiU!9PB_QLs%GYky6=-YFlOJ(9JJ1(U! z$#+6rU*PQRzmKRRs1lqheLZ%DW*>w;-Rto^`kj|kklngGU?Le~;Y_I`uD)txr#rSs zzxWh>OM7H~fdqnaA;A&ud z_vtdfXRyg*yl3>gSVp=Rh7Z2L&44Ki$Tk@JG4>8j<}kjOd`MW=W=yYJIE$V_1IAQQ3;Cq`EG4m@ZMo@v*3pMQzD0 z`=RVJbi`>(`Y;u+4el! zB=M-FqE@OBUH1kRhpe%uc`kX!vCcm_Eg#Qbh3o?g*Og7D04YG0o~mFu&2mF^PMQ2T zS;a+fRFr-L$(K^>2J)%L{LLfPNa*Tjo?y=lQ%((mJCR8(R}A=_rg@uezuz(C=OMoc zyz1QuDE^(d3gNkZ`Ks@CvUGvc_I7?AZ7J9dzz|a^;0&Ixlb`|as`Oe_Q23B|qhAUv z+Bw1*HbNpIwEx=6xLP-23YTTU**^o_JT+RJl`}01W;)xeJ{T+kfQqAjYKwoyDOafj zX&LIx1~V#3HjynS{>Qe&1}JJi3ntdeoO74wh1Sggq_^Z^#M(I_ zqrJ4fY3~8)1p;piP{ycaWNF96Z4B8~#mY%-9Ij{VWptlUlm!$9J~6#RQAw2&@~-9-EEgpPLL4^_}l$A^TC z)s&1BudXoBpQUHeeB<>lsjU)M)1CUuPiBCNoO-PFVnH#f?v4S+SbLAR>YTU-^L4?e zcV#ozOf{xZ4`&=~%k8+IYr1BxxPrNzd=A_EK%BiSJje4`O?w1*v6~9>Ml|~>7#N@+Pc!A`B#(iT}nNl3O4vvfXOYtW1K;FwO;&G~;@Io8v zFsKuMPBa-*D-&ZcDRq6@h|r_U92%N-v3&9*a=gM&CHf+0Kih)-*3jZz32n@EZIFBz z_@+o00m{LLurmQEy(!@-Z(FYyR&R`OPMiIFCHu++*q+J^k#93UWxjTBHjO{m|CjKi z6TAP#>RagPsF3i}XWctPHCG?=HBo#eR^$+%LEtyn%GZyw0#}ow3CALTCQ($ zb(YzT_{c9Wvp7@#-OBa#lErr`>^L49^LZ@Xo0Iq&7(DWYD{q;fyplkML6d|5fQ z5~L|0ucF}5|7L@G#r>eIZQ#z|kIDdunJ9?|0vP`ENAT_aiPvS{PVBN~j`Kd>C@mZ} z%j>TbC4fxpkL9B10l0B6YE4 zG%MzDU$?BBU{_~aDl03$j#A6ZEBq6n<$&m#g}6>8=$Dt5Hq z4?ET$J2r0V_uV+M4sVf}nfYPhmnHmiNh@;ppdj~;d+qJSi!$8gtLW|sw3y#m|G5{J z+z}9@a)r;hmf~Y+-36Fg4;Sd>5=~(9ePm^9s*S?+>DN`0cbK!@q3(1v{j^&y zo3bBwT&sNP;AtdsX105J(tbLX)>3)r4`D5UWL~Yk;1N2J%t#__v^myDY>GNG7(G~N z&1k#=e#sy4`P*Gf{qP)^OTSnl^;g+?12lB{+uHU%Q~e48iDUNnRh8!e8S{KOkPm(( zFpvVgAe9~js3wY+U#=mbPs4qDH6h9o0 zc)C(>)bR@bvp%J_HCZJ$G``66k_q(f?nB#NI@pT$o8^lJb7qL~{bWNp_5K?X0G$Jv z?aE*aV_^nj!aQ_(5#IlS8RobNXhRsPskL3npM9wA>o6lc!YIHz%N$Hjo7|S?HV3KY zng5YYEJOg^;8BEF;4)c81UNg?1Cl4bfE&Q@8G!qqpAAHC6;Q75r8Jmru>(gPgyUp` zM{!_P{_o6Xpk$#aY1uj0pMad@i`qHN>o3WV|BsIF9VaqA@=r$u8{x3lr4`unwBOz% zZ_!JW4xTif{94+arDnh10$u?Xh%9Vu)@3~%JuN*&ORa}8gTk)lA<^P$*k)v)teGY~oNKRnLBwoh|sNV241ivJU)xCf$zPKm=2OPD@No zOiQF^SJfVQvOoaLrz7|b*i9^(7XK2Rhw2u-GQoNEfUb^V>55c8nX;PL(W>_BP5G^!J5uZy?316@F@@x8--SF{ z17Ihes73QJd@<#yYJQ@DHV38>JRTl1KWI~NL|;EH%piGl&&+o-&C0Ho+%q`*MG9w3 z%k`0j4O5cd`id}95QBU&`2MywB)m}hn*BxsPQ|C5P86BcSkC#Fp~wJZM@mmS|I`NZ z$V%$T21PYkz+cVYWA!@y&7tnkO{BL0`f(35a(d4vwl;$*($-8a8hWoBiJr?nwmS(W zw8Zdgd**IFSAI;~eMdUtgtzFY=l5=&%YX;tQ>SZa>Vb%{N`(b2Pu9iAa%i$xf1}Kl zw{UJ6>(C=Lb~kK{Qf&Y_LycooR?h*$sE*9l1+g^!D5EOdBJ~UrS<@$`rltY-Utbw6 zep@j#N_OJFvEU-5PV!C1OL9vPXfVxvw3vZ?79k*lyM7+99IjosX77|`|F_g~L&2PN2IGSz!S_5m z90T(Ci;4SY5=yVtaz=0ey*F*|Wa!qaIuIAi2KxK^KS>0u%mETlHn13AUGBdZy{flB zQAb8)$VTk50+Qco=x18zM;wg7LI#X=)}43c`1H6hcPWd+*iw;oE6xJU|C|pBD3^^5 zvb}%$)Md9w6I&_$F(faf%$K-}^nZ!$O?qf|S0#>HzduFFt-W{M_JpX0mg%Wt&kOo= z3nx#S%ZmezSWDe>mfVqbSMkb$z@Aq!^}?q5T)ChAw3!cRNb}NcU{?SeSGof4UD3U& z25(hargr>lpLjTCL6acrFg-Cc>Z5+-v++4k`z=ZeC`(InHK<2p0D9z%uM`@U2SIQ= z$koszOAAu z^iP9sl9V0ZUKdlD7n6JZ>u?}Wt7;&ASUP_$M`ggL&O8Ik4?6vvs+3=w!#{lGZhCg< z>g@raJr_N|Z2Y$P?tl09cvnK@m&~>ny_E@nB9E8{0^z4|_L~NOUk3~X#T^qB| zex^mj4`u%{b#x=9?5h*Tc8I_X;<@>p-ZDv9MML}T>O)Xbb*A~arF3yZV%>)^HN&Rj z9PL-F5$!6@oax1z=u_WsNqyNpd*|BwD=&KEDSS=+OdU-fOV15aa7egsj+Svacm0Y7 zMZtdr?AJeUDLe3Ss3(4C%?eD;)>2%h5cSQ z%bcMZsPKIIl$1&q&0$y=)_;pNLxW4|PG8wLM1?rKx(4!>7U}#=kd|pAM*XsUs2tVO z3?Dsq;-MF(NpL*D^hdQ1GM>dC4!d2V@e~_CZ441GgDn+hwJ%l_ zNmd@ZDqeX@xv%}^5bj~awD>k$NWNa!n&Wz*;Ay8_wqCZ zD@HF^(Qf~y<5J&uzPa5oE>nHiaI}N2rQi(dQE+EfGNo@?41ON^9r!$Jc!WpN! z3eOI%*R&1%iKkkkO%%o*!(U@UVVri5Q+EtAuDZUxpPP5_I^NsY^+(wJVjVk`)t#+R zua!M+aNL(VHrwD>hhTb)Uu-%#FP`;Cmh)$ln>OQ`oN*{4Lf>F04#uhV7OBw$&%yoe$K0E6* z71S3;NxR49eC&TbZI;c_ZI*3iH1*e$%5?hN`23RwvkNO{n5uu2fx?sh#=M0M+y+BgZiNfYYzCQ zi+?K5vU?Ms1zdJ#7y8S!?-x)GH?KaWeYYn>d&RXk)>ns%Ijf^IT1bMQA5c;Gz3i~j zf&I@jLkc&|{O8vwvluwvFwyRh9aiex*f@3P=kn6~?2RYrrGua%Sq-l&I-kb72JIgb z%(|};-D&vj^E775R{4K>)yRCDiNE)(|Iw`)H|qodpARntx-FfBM5{FKgT&l`D%AM> zTX^87VsK#<~W%wz|k5jGa6!8JA(u3S8H zOf~w|!`>alIJ@(=A7`(PYBi{HWx`Ktm!HBy6{NUs7zqo!k4Q!9&Ltjh#K0zblNBO~ z<`1_hMz$p1UP+K~bo4AS;!+*6aWl+b^{dF~OA@pD(hRXE#GJ-SvE7ev3%HWWJZS8O zkB>+eb{wr$Uhta9kD$-;uztMaBD>&`C8r9^S4qP82z(LLUB}%Wcv1~24At!X1M@(P zq&h-%z@j93(h_w-K%BtYul{F@!m*APKuXfaHNRVx+vK_Un$A!CEvoCj6J7Z#mM~&^ zmL-vjW4z~vAM_uy65N7_jns{^OL5R!Rf?eC_hqS)_x`v_x*{Z_?Pix_3C$jM*VVsL zMjc}>VtHT|JULlALnVxA%mjtA-*IHMN^G!?<<*o9QWyf-Pe=4H90L=WNa zHz{wb?PY+7fuy+|)V z5E;P;U#$beUeKSnOCR}gTAp+)`425edbD}Xbq%#&h6`W{1zTtLXvft@Gjue)-FgLI z#;qU+}fk$MkaX*aW!#Op>n{~%hWT5iVvi;&t_ZoA+lj}?k+ZN$A zH{zFxK`vW^Tbuc&MeL<5fQ{Ump!$sEr8g=47pTU*{`Ceqg^IPGUa% z?0CBYce>xfdWYb*qh8Pj>(yDMnZ_k_wqBJq`P=rknLA@$NO|+tSdZq0Qc}R}15HDXZ%U6#^(FdZXLC;?GnN8p+~zLUTf zc((=HE^%qz`)n<0zTwz&!sPqt4aCcVjD>~VvY|4UGM51VM18oriO-q*!Sf=qa*l-w zYh({0@#%|8)GpkN0vr!Fpz_x87V_3aB$Y=_XGy@)5|hij+NW(*6k$~Fg5CuM<>A63 z$6?Rkzgw#din2JA_VTqw^vU>qloxNX4h%S;COxrm9%RqwZ2Pe{i#3e$LM*%u*N_-| zXY7pq?9<3;XC`3SQMS71x_&QKvhDJIllX&D-=!eVmX};hdT`|A^1jf0Ed?w3*?^VP zv+H@L@lNR>+Z!YEufF)?E7v*cZPj97kqF9Ouem~pj8>Y%!TcIi72#H(#UhP2V5t5D z97c#cear4=|5W*8j&2Xd<+9)yFNx^F*$!~`4khKhBIW!du^6Qn;?TYmb~V>S%dU5 z0s|mhwbU|W zES^sqPl^v?wmo^7iBE?_9X0<7W8pU}TxkH6d9d5j&<5_&XqA1tgu}5-I2pExPL7=X z=YY;NWtBp9c?(o}4{jA8gs(R>yyI@{8e4+9zcd@MObV;_tnV3z9NjBNMNx9=Yda=NA09;xW5RR-us4Vv3k3AF%mWASJB~P2Imj!^exi3I%T%3s! zIMQ)2hWRgrtCy$@KY3i)%liq|sPNRcRJzE@Ltfxc%E*elI0vZ5+bSr47u_sHM>zl_ z*I1+&VN1IQ`#TtfP1|w{F$2=X{g^0?6T+4%fSG9|=Hscy=804JM`x=Brd+h2v6ir` zuw1#EzqnhH3zu3(l~9UQgmUS(x~d;~{RzIrO$!n~osm~0^nVzaKf%(AP87^nxP+M3irXCVRSt?*_@+mG#>L~a{TVywM+ncL-}Sbc;VvuL02&;_NZN~Z%h&`krg61bKL zX}7BZ(H{q6h4l~M1iI>#`8-&EZ|X~{)G9$L^)6Kk@Y8X6awaLk5BtldmA=ug)`WV? zv8Xp`BWXG*--2Olc+}qRa{RQMepu!BH$A@bbG~eAUC+mw`}hTJLF9R2(x7QYJ0=Ap z&33lEBKjY!!^)@YLxmJy_b>Y3*R9fr{R>Es(tHl`tkR}mCztE$sKp1MwC?=!#7rOUZs}`f zQ-J!arD_Us*@Pd67S*Gh;=E-Bx_ZZ2kB*q;5y&G#Xm9;sIQE$j$p_{GlQ%`49N3k# z@D0xn&lYAUGjfUpO0!=@lV?I-mD*Au*Wm)4w3kDO8EH`-j#R0a751tRmjL3?AyHjuIx;d6AK5>O8nowsZxYOS1OskS$vjg5k?upOo-U!9 zbgOwpdCEY{iko?$pJR%s$Ml}f2=W)QPB_u3Kf!xm75lh0f7?&$U6c%FEAJQl9M}$8RLQ!^Mrgmc~0XTai)vXsYt2y&ds=Rh&~*tmKJS!(7qe zMIFPC4fz$|S_3p2d5dK*@m{a^d{=*O|A?xzSQeL}_u}58Y^T|C$|VCfg2Th(z=3kx z6^xdlW*roF?o1R(sX`zQ27(!rUTq;-IIV}`&s7pWND?PwG^Fa}ERLy!t|XyLa_XPg zvRTQXi%oo6xT)~jE74p> zONuAhtdoo0zCDXk8y8GhG&!UzWscIB8nUwFmR5{A&fP_@XdDxZHB+zi^=&a*xHAz z+13{yh;sS6^T6 z!?3BRuQ##5s0oEhj#Si%RgJA+N58gPTvB7uA)&El82^`Ia6QJ9b~Lv1O?AOU@1#?5 zMt_1duddvzC`W%y-&6ik%P&H?1CmZT#3pY6k+In7DR+-Ix*I#|xl%`sVjkt!w9%xe zdCmMlf#dF3nTW=Jbgc7KTu5swNkZo%oDFIUYDadJpywxt4a2~6!*c5<<=!5lyg}Mu z?<8Ewe-zJH`xwe+vJ!N5FCfGiRPtFM?k>A-(D!PmLOCne?SH12_inuy7;YsL zzO3L&66qD*oO597bDaqb#GEKgh?ow!&P46P;JlC6Ejjyh*z7oAP zzr`mdZ_XhY@<9b@j@bKNFLT@b1Bg()&)J_0=mej6JSspti!#PPthQT%hl0GynZ0 z`g`^F$RTIfVEazm&3s|A8sDki<(~M^Lg3sP+o-xp4!mkSi{OU^dI{;P7RyVvmN|9h zb#9iqj#eXglKE!b^E#RJlfFnjDXu+yj$Ym_UR8^S6l2>}`X>L;GSo3N)U$#5@nax7QW)2Gu^8dMKcRIHOKt6g_#)Nb)8y{cc|a|Fj`-S z-4FqrfM~qX38ca&Nb0qtm$R$|*tvv+Z+ZW6g)7MOH7yOR#XCwK)F&fN{nqc?Og~u4 zl|IVT_|S-fV_+wwdH&t+OupN4T!$YMOCDl_p8@PjgGK^Mvo!YjgN4mw(+EwgQh6ROHFjuu*RDHx z*t!~m`UG@&*(bOc?;Yy+WyPbqw{f`l$h5+?PuxVT!q3h_+GJ+c^-c99V3dsGE2kv5 zGSoKAwlJZ_#Y>V2&6p+(qGXCu)IqRhre|}p`Jl4{omP#i>cV?XeJzoL!bE0pwsSWc zU(LN&5lz4q6crU!D?ZqWTwAnG+rZP7sVPcbI>FQrELw~=s97LGjZh~=@dy+a=eQc# z&nUMP-*S-sYGo#6%J2B}SKEPP^r&M=1>dL%Z5Id68(&UxxS_7xdK|%js%sioUHOCl za#z&LJgrBu%dxtwt+u6Fl$#YnMYhd^{?1 zOJ&AA?DC3T^oovb!)(%{iXtz)*D6M!aT=Ns9Gm*a5)p*tm-Fn9*GZ1r82^Ice%_Oc zjW@`vD;+G9i%tydYuSwv8SK%jsQ~zI7RW5$ZZhO#r5QQPv%4V2B)z>5c#}zLZxB>` z-Tz<%nZ)B;Fvp~GZ2q=mTAW!~UtU=M?EgOa4a|?~1TFEx2ls^L-q z9hZPsK+OliB38#J|DK8AJN1iyBD6g3bZH5eaJmrb=KbanM{L;MLj}Z1E8ORZAmw}l zuT~)50$u|rt}E-C>zf;!%=GK^?|T>ZZ-EZuk6Utqa*BoNocxy~*D!s*6eAI-vpsc9 zx2hfI4i3k2pH)`8<9mcC9SU;wbLUVcQRW=D*S||mIy6($y?nxW9hSyHVhWn1wJ5%5G8+~EVpSdJ2*{Jx zBTtxDa0d|u>szUsN^6Fw*whW^n>4wddIyuwoulMX7D*Msum&A8?~LbEJibrZB$B@H zCReydwyYNt8*OCt>sM=fpcmEB=O~&;z9+l!Er&sl7{`0J=Zb8h3w)lQ3-wj2RU$5a z(ufmE3JU*`SF;BbwojXB3-=bA{mQz#N1blxh5tjrJutpEb{Bpm)iizk07RP@U+?%% z75*j*YM2CMy3Tx+zIVk{!gTtLiqR(Ap`=eq6gj9}0x99ex7Bmu7=#xr{5&h6l^&Jc z)Gx|HPiixFtc7hk6&0NngX1bgJQcD&ISH9Kyv}9#tk5@btDhKow@yYM#y=^={@u)4 z`08b1A2s24WxhckIIqjlzc>sx-XKw|t&*iDRTChH*&!}`nSj7>BGGXxfdH^Gn6qa1 zPHri(0aL4zY%}lP(^oU=mDS1HQv2($CoZLKJtsL5(Y%wB>{R>v?#zQ-QHSPzLOZm@ zZUqBhZ9pDZ6M=4EdL^pnc-HucU;Xf4jyP_Fa6G=ZJ2?_H#bHecnW@2y>B}>Up^;81 z1MH%?eW=R1_15NzzIA{mT*S{{hDUgLr%xS6cn}^b`qoOs85^Zd?oP&aRNgxTjKOLf zhTS6)p}F|ZO8}XQol`7a4Vb`l)-|gI|}Sb7Us zScog;g~$l8xeSyW2@RdiQ`2w3&SCr%C(vxj{q~yXV~=RSwmY_(NM2oCt(kKjDQXdq z^f(~$diot+vr1)T_l0BTsSP)l!G|@~aA2ZiYE1K$><|;HVVB&m_x7EEN}i;QulXJB zD02Dj(O+N)L@@@T`Pca_V-F>F27fTkTg{6>;LFT&nm+s6(hZS{O~+!@19Eg#<1jne z$alHmUetmggF|vhti6IykA&n_I?@xxTMwV}8c~}-TB{?7JP7Or;s;jJ!&-xSgFHW&kN(|g~8*a72NRr*lZ@Dr|`#@34%n43Va?}Z_+rj zXg`b|F+L6m_Jd@ova(3!7<)6;HD$i)m6Bb|jd^;~MKd(5iI$H@Gp1kFbNA)U|`ah?EsJg_&?XcqL zZS(V`je=r7%os*F_5nR@;Elcn^ty}Zxka~xLoUO3Bh>1W=IhHIf>A2i+N%w_rU0^#1vHi)}- zfBbIn7cNY-UB-!#yWd zSodMSUox0U9q)(nHNobItplC&im)`_W{VfMf+60$a6#u8#FWLF+3Mwk@@b|&H*eYdr>#vo* z?Wzp7NxoB*a{-wmN%KVSN!)IKyk`=r2H^xjj2<>IMqa+6np!wx_v-iOnwKZPU-w|9`j5!QfzW*P{VeOAyZX&@bVuKwo;%~0kphibYH+!Ip7bp8U{U#eZJyG}u(lWdxbdTV5 zd!n(e$eL^t&$6*z&58P&deqrRmA8VClKjEROkCo#H?@rPjkJvl0=jsk99^EP%>Y4ba?%1-|7*Z`!~5*<1agIeVuWId=7VHq&3R$cnUFkwpIM%*a3 z|E`Ov+Y*nS!j2a{f}-mSkkCKaLabg<)1htA5Mm4_?N^kj4>?MU zLd+iejo0H2U`@whcOXn4zK6fzscJvWiI{-zp7<(S4883s*`Ms_T`Wu$gV=r3ND_n= zGnA?sHLKcn#!sl)rnod;8pO8rp@eQY%|}ZMe|rWVmiW;z>zJW?+P(G3s8m6l?`#hPosGv8qT81C9mSDv*B zRZXq-8hYM7(otn6z4t|CUoKjNr=)I$AkFK#(>T^s zGT0$wht4;bI-aT+FKix8Gp%`Iw^?Fz5f%p-FrLBusZ(>P{1}$f;iVd=6 zrruX^5%;-{%f?4r4vr>F?Is+WrIGc1o*e3XxJd!T@B3~<8|^s05st3dF(FH9HywxQ zuT_JWLdD|Gx!X;yE?bLTsW5q9RQCGUhQ)fJVDz82e?I-WIHMyqc6+Q4+0Cq85*#YZ z4?4^1f1X($StYsz@IJOY&X}?M0S@D03C`g6A`8cQSr@n~q$Ri|Bxce#BQh~=@y4!s zc%4q&$2Wr+xy0Sq{Joo!WRyHsj&PSI{QktG3t$jj#BD`se00C3+em!dujU=>x*4u4$dL<0I%I`(MHUfXq zfDjf8x?$l>;V<{ZfdfiE%ot1wOK;pVjGj%IZ8R3d%$uo*|CGP~fhYfdie;0inYh(> z3XL0IwHm+_kGzy9sSNl=|B&DG&#BLreMug_3&UdiI;s0FTsf$fn$9`AJx<|ulUnCKLx#=% z?#9%aLenIird*rmv(NI^ z?QQTpv)y35Yhwv_{GzZVzgxb$TNMg>65!1?$YJv-I?!rb7C0qPjmna`4>R z;bCK=c~L?2$ASJKS%l`7@wRj+t0_T-aDKyD%f9S*8@Jiz9<+GM+CiUbwJ$meT4u^p zWMDI4GxeTfdap8P`XzUfd-1h4@5i8Kxi}Bbj6)*v;5bQtA*EX4se5o9_bVoWa=MGQ zBN%(`!93OR&?!pP7>U`(k zUqbfBJ!r7V68+)uEm<7bi0wUCwz6s|z^N3OI|jTAe%tnz3jGDJMQrS+KZ(gipD8Os(Pk6>##xSX6EJikj4EJ^>p4n^p7hKPvBDa$w}nQii5624tx z%l=_H;+S7v8mpL2+_UnNdD&*6vvi2a&DI+4EWe$ZX$tP>Q@3U7A?wCKaFSc~IAGO?7+^baE6hkcgQsxrtrb3Pug=gj& z6?+$5o0={Bhp#X`L|vwTEU|Ud+`PK-(-p?D+$``L(OWVu`@>_AAIj<SD~KgQhtgzH=rL74?^xHPc)-&ZdOo| za6#UTVz1k#mKwd&&Ef#xk_ooKj_BlEIe92z<7mWV=Z?M5=xj<##VSVeL>AE!_c_1t zo3K2e4vTeEU|d{WwMAEQ^C%H}rnmg^2X_y54^NNK#_hwi@0Gk?dO!0H;@mNR@PC+k z&!{H0_iY%(qelf%P!JGMil{Ut^cEEm6afXL7nRvdj8uCsG_@URLga_+rfK9|=I zfkdO}o{}REIiuP%-sE}mKVTkg+!qi2_dAc$r%NNHEwDIsschIKXg`cIZe;qW=2f3c zP2psOsCa4MGM} z=Cu=BT^7(Rzxb7K0LTg_&Ajz0JZMoGYE&2R*z0ZjahmV9(DUsOo$S4=9^6O3g5y1+ zs7G^Q^+TewjcEP&u-HR)4u&wR2q?pQd?Iz$!cp+%!HDG5wavBlwWc_|BTSXF4_BXY z6<;CUrL3N&FIe&owuYEhDqvi|^a=3cx{Gf7srdMYCAI+$!IuWHj>qKXT!?!7q%UJdw+EycER()%0 zNtX4Hyd@_0Nf*6nuLm+s4H<*PM*bTRxbWE7Tg2Nd0e~4t(|Fimf8YbMql-hieoRe$8vn%nso22@I^R-tsa3kXG&WOT-Nj8 z2#+XJO*!xL;oPrBalJ^OzdX}yE&iUrcQ~s*n>Z6eS;2^cY1_#RydIdFx=IGq`;4KY zJ1P0}r5-TVmo~Ubr;|I?&?3V2-%@&Co*@tS)JSxUs6Sf!xc{qf)*)DH&Hl^iVqJ-U z#}A1%F*H%?dZYUH-QP-`9meY-&$iVR_ccFwu*X24fr;bA1HIKg*Ba8L;J^Ca*oN(7 zLm3DnPrP1-UM-@1Q!mo$Mbqn#dT2q5rdsRJRwW+AG6Zf^u!~bCyu)s0ep!nv`nFeY ztO4m%gRDIq(<;@sgVEe_#8%pD)J`bwl;t;_~Wp8zS?Yu9^<7 z%=ndhfGvEXKfR3TX)s!S))EL~JifvIIiiA!@v{!QQK=`pYVS`Ew=<=zp!b1p6Tj%! zbD+C@VjOCogXhD=&F^^Mc^)0w2^axp{j)&4$+~Y>B|K9=u&oUK6@Q3x8h_@>K^FG< z_G;RPF?)~8xZLCe4>1FdV!4B(6xR(0F?WO7-&TEb7c)CtK1>BPeg6H2*^??vs(MBgXnOrY)jTRAXuLZ<;6CVc8rhaUUSKHkJzGYOl= zavHmXZ0_A_=nn8<8bfz*%n}J{29b|3nD6G6+`idCR>B)Mj~{D3^0YHDxxL@vKU%Jk z;2YgZ$1#!e%Hc2Y+IGlIYVH?!`>U=LCvb~6cfs7;dwtjS<=jaH(3P)`dTJPvMC@V&v1o4TW$r4J5Ddo}Ls<1a(6C z9tP*bKRv?AoGq^$-{=EaJwL>Thq+yX$FKnO~xMw*Wx+Gj(=+eAYSk(r=&cJFr@# zGRZMtXrg1qk-6_JhAs&^jlZM4?(&Z)ub&1Md4Msf?;J0C&axT}czS=3Fu3{!*qqvE zJFe_z;@w7Un#GMoKj;sBJKe`tCf9Wm9n)*&?n4g+Y8t4#`>h!H`7{9OJF?nc(1NC67apq#md| z5_uTm(sM`tv)W^EEOxQK;fTKG@NH0}dOLFiha}6uv<>qQzn{>$%+297L;KF7SM4MJ za&y}?DOzj&_U-KLfFNcU7>M^m(>9sY#7NqRKooPJ8F|=D3tJ-+SI?bv936AP|2dJ1 zq0ELM^!-Wp&{bo`cbi&(<=O%i*J)h?8Y){~UIowAPa z=Ul?*8vH>qZ+irLe;tg?94v}3NvJF??-;=2o=#MpnwaCU7N&W*(>3f${O`RzUWpk5 z1+=ej9;QR-E5T^m#({l4mh9oi>{bTesa@68RX4XGA-2Rs+Wv`{&4a}8|9spI7H|=p z#+bbc23XmHbH8bi0NoQrXi_LM{)1kq;l}Ndbz11@(;K8E%)k&CE2d+lx0=(el#3bg zd(gYzfm}Lww5hB%beBJK)rKZl-dT zg~LPPp-4VJE@zQ^QN;>GQAOa<*&w}qA0g2L$|lr{34sAk+K0LFimk6+854m??F;|> z_-AZHC?-RMMTF$PZ`R#=U*eM66%U!j)vGH@7Lr?m!!;Fsd;oHHtIk5YFmul*C#k2f z?$39qO;C)E^iyuhNMd=2!exTt(vs_K5Vuyy963_7volz0f7DczJrV_(OH#*7ya0M4 z?~jW{HjT#L^CkOf`Ix00M~lukDPban5;nssd>)CbjnC#r+$&O&P=n>x;1hm?hpD%t zMV7w0G@*9uTW!Rhxm>GiTlP!^<#;N}_erQj5|F-=tgI~JJ}krrrMcuYG&$Fyi-Pw1 z&@gJj{H&d1kv)4c51u`4WZfjEB&7ggNVnl{!SawY$*W;8MQ{}3r?6%b&IforM|VMj z?~SwFuPzw*j||mm!hvuU5l^*)T!MhGknm_!6VBNzT$7)lrYe4ZvdN2}gcxv;iP?<^ zrSd(zQE|Q^e;1_{I3tN!&H0gFCe5?DPW#G*BniP@8H&(*FQmI&?czyhnz7?nESrw_ z`92`z_?`@ICrt$MpV8d;6PcVvCPcU&FkU%pb_bz$h6lu&jE&`=$!blV7K6Ra`jPZw zZ*#_JK$&+{-V|cT-2)i~A3Jr2{RVmKA&XTs|ncFK;NWYF~FDZH);yd9RijZKffZy-5 zE4URgX)Jdvz&g!2ynQiA9TM7O+cxWbOxGD8b($wXVR-^c5XR%AfiME9Jfc%cDPt%@ z&1B9sJ^_8Lsc}=PLE(|OcXx*7cO{ZVI%^hvxz?(OxrRPld%;e|1izu8^}c$>nct=X@TN#Fhh%;vroxfmIppFDbt7+Z>n zi`LQKk^E+Flw31G>c-tn?ui3k&C#6uKx>_OEOatB@C;`bxHvR{x5iRNzGi#Hnu&+% zIHOyZ^}vj}y>}L$UyeO6T#~)^E8)%Esb)<|PFnf!%|gqv4!1^C=g7(%%pDSxWGtxMyq2BUxv|9bKzGD@EaQ=xPscUHf|3p%&aHgh$Y!`H|A)v@*_ zhjGS?uOivxszcyBwi85uNQfLpd1GOJzOo-s;&ubPaI=ux%|xN8{755%2Tz{>&mrH1 z3Bc6s72$k!e$9sKtmG^0uk)X%hpi4+me?X;mz+K1US3p4? zFTLTj2i$>b7QsH|a&a9^*mqdnGuER2*ILp=?xn&b$sYDRRJ_O`;`z9gYj;LX9V%r0 zD2(N|Vec>=_%%YPNyp02%d2u?J+5u;@U-kNv8LKO9RWc>Nw+T|z|(l!>PHN>(v@F$ z@#-JkS(8+y`FNg(A1RYxK46uY@%J41h$%YjN9M|pMn}nb6}GEeXDNIlbld{(^a8Fn zJF&gCKtv}1!^V5gc2I@A?uHMpgl{78dAs>D2kpxhGS*ERfjT1--1d2I8N)!AGH5E` zX!p;>ZRZ2|TxcH*isc@_sTw+-`Tar6(z0#QNxUJl$A54tbP8de`=xz+PnbV+&yDjK zg>!bVKY#X`&oMckJjSc995S7(HrTRHqfVbWiq;5E*xfzcm1Ht}ls?l-!6O^CxWjIH zdLlKFVhkxZgeZQhiGE;xN;lbY%jo0md1qC%Wz z>c?jJumJ$22Ou_Io_d=%+eD1=Mh&!aZ~;AWxU$FbUR=a#m3{CyUdnz_UI=oT;Z0M-=k~TJ?_h!0sx?SsC$L?MJx0sCUqug$bCG~~FXaA3! zW>N-pquFv)tu9-lTCi0BV=Y@0e=r=`L=a117|iE+;CH zk9(3LP?tE9ftY*u6`zoY?2lpk;-w`VXl79sHERzb_F z2hDA&GdI7^jq`c>k2DdPb12BQ;TgI;m@$tcuqXX!c%sMrB?k>8$cVm*RNo6~bVEF? zD_E<0)Xa%!YMzO}cO|6~}5a{p@!`RW!b!08hJnT8G6cQ%2Sr@x=q})4 z^67utF(R^hkc=?slQ}Vpr7Q(;&M7z2=j@3sGqpIbO$CCA z{Pd_0=i0fG1JrwOv%O9iuQXYEhwVO|@g*4Ds3xmD(xOnRKr?Ig4_AGw7Z-$HZ~ZzX@J7Y6~8{= z)mK`+DH3^)J8P)h-57mA1gGfflFoYMfV z3xvK%hzcrY)fqX`-vTZ~_AiX!Q_qT-9nKqBfmQ;}139YxcrI zrjUO`_r?PpCAwsVDkq(zjBxk6@rZcidM?!WDL_-5cOt-BA3#O^b$w>y(J>`-bsOOn z6WfmNV=Iz$2Df})j1=qa)Pwvw`R3l+#%_BrFT)zk=HY&T1swn6)5OgD<3|xgOWX)= zC#Q7#l9GEr4P>E%hi|MtR9-X1DzEs;Z~O058U)D7*`uD1>rSq_OnxNE{=&M5FRZ`! z)3PwUXq7X&*m0Chm*8F9APg7reH$=K-8vQ%bI{oEFf>&6P1@3A%k~;2;h4OpSkQqX z!~!jqp?cqdJvH5CzS@5Eg1L;9rDq|U2^uFpzf7XQ*;eI1v@=gX z#8bMp$nO$3Dr~{%x&&#He=Lu`ZR#d>;H*zWTr;n*fquPmuL_c#71PE0o(!8WnX8rq@hU4_4r@&J=pcUKB^}}uD#9_w!di@ zYnot*;)PjovGo99s{bgEZoxcXWR=L9#^|*2XYe=;^pCBPD>heLI(6!I^}hk*em(bg zeQAiOSRpeWXozbU3H;j`kfM}`9<)ce7iBs)7=2MVn*n+5l&J62$A{c1k&7F}GUzxc z$y&gIF)9hBxMiz?5AVIDzaM|eOaaqS&{7n$b1-5vxv@0T%&eC4cTCrO9U>swD+;SB z|7(#mHtoaCRjjJ8h|tKpkbHQDjlGXbdy*}Y59*J%ZQ7sWD09b2z9@p}+i+dF_F2N|!71=o0RfQVt)@8tIhQiDM7wYS zGS|uKfo-Vc7)iE0K9PiMQB}*+azhV&gXw;V^qQgD5U(+F)SfM3KsB>J&7#N#^8KsCt>G?4S$#w8L?g1R&g%V<|7W1OO^TvM$NhHNCOM~_E zd>$uZIXQP_Qs-fxI)ypgR|tcrcMST;hpnOi1Zk!yj!8b;pqc(S*%QWXX{j2d2LsQ6 zU&O$AQc_BexaBv0`qc0Q|Lt47Jm%LKM@QkI-3bDKWwSxdAIj_1N#QXR_Zp}S_yx)UG_mB1yfvS9@>+0_u%l2ZV)|U;N0cK zPKeSaVx3_-h)i7-`J=4keL(d>wQQs}O%MvYFq49XMKwi+OMGieFoI7DK=i>~-Wkbf z>`H>^6}_ym_eG3y+#wBVk2@gPXXo4dKo~qQxx-~X#=>c)@lrVMU=|D^h67zhVYQd# z_luEr$O5F9BXwsPSjx{^HU&)h&74!N@Er!sv&p?@@Uf<>F;^M+_c!~OIHa$8#VOLJ zs>V$XPmlNEIc#)Dqp>4Jsy*1lYm-$b>DWCDABF}Q=>BHIeiak;$;9H9c8zWdp9}{Y z5IPGRl>83u=#LpA)k-jqYm(eUuDiVk-yNdM8M8d6-1|~P?n=#0q4AHs3f*P*OBc^C z)IEC?e#y1FnckTltu(tq7W1!4nyTroZ0Xp8gDHBo5-Sr>ogB$>Ic$bgfxQz0ZZ6m@!1 zQLLJ9A>p1nt^sld^FCSf13|KnoS=&vy`Xw7`E{4`%;IAgy7;-c?!vM;r;7Fp?h0-d zRjO)eTaokZA<#UzJAwltF$WG_9rrlJ! z@`c-D!_!tTWwDmGld24*Mhh*0i8zd#0QA?+ZIW= z=1-4^#({y5XyKvvxw)CQj--v)TRh1qqqH{-OlV|XW6R9Hz|Ii_rY$+ z2SSzqVWQBDrc#tOus_FO`bNm0X6q-O#&|W(NMl2cj*MebiKje0^GIZ#Y|Gq#mV7z+ zH--S+z~h2UMt?fXS0mHwfk*866uhg$xU&K9z)NrZ{=_oWvZA*KythpN2p7FBGJ>D% zJ3``G^W^bi|NdpCXIx`F`zMEm5m~L)kIkNEYj%qonSTF~5D;5!PZ-s)11kP7%(1a? z#AJlh44zeL**a_zJN|J-8)(k9D0`DKG-nkCj~S~-ICu1+JnQ}xm|;SR>xTou%)Kg6 z0B&ULn4_)^PwxGYg8=Q%<0k-Tu?d%4jxfwF`TK`AP>sCxX4DaXy3fzhJsk}n_q(h2 z-{MjX9cRcX-=hY!#Q;Br1GvuH7?F^`wsv&Bf&fCK32l&7JNuJjv#X zIC%g>4s4E|VHO@viYo((Yja0pm2-!vA2105N#lv4lKU+nbyNS)8~8^*lwxq2LB@$aDY1m(XA@88>7gCsujbtL@fk$O35D4f zmn@^02EqCb!pQkOdz{NSbqmbEGY^~fT>}WGlfeapgTF0Y(Y1O=Z{ux?mmxa&SCX-5 z`sZYpUyLisE6EoUgXfpjBo~bC=e(8_7|Rcr0F8{_26{W;j2G>mX2C>|@jBFS=}R<< zMr%fS$EQp@Pm{$igDzuWy^24_7xb$CAB%I|BJW8(%adrIeUD0G{sn(sNzPKN@GPa{i9%L?Jvqpao9XP(>Zne)ak}Jr?`?M*JQqZ zqvc!|Xd3^L9m*S_SK8t1e3c!}Gd&NOiSVj6Fn<+jJMRS^cfhv-*HfS8j?7Cp%(A1*gWj>XKjM^sxAFjR;g)&nO2e?@=@Mn zCFzq<0L47*`y!p)s>seDesnzcV=8mog>eXUoISAiD%#?5F0=m$kVrWlst7(g1m@1h zGPkefquijz^%RQU;-BY|EuPRv?@`Y&%jT;zSz9M;KlKm`i8)>c+lVf%k9 z4%D443ympjhxnH5Cd>@Fc!QOF$R7;Gv&kcYD#Tzcy!_?%&f9zbZLVFV2>>0QO~&FA zfiX+54bKhjxG>P>=$s3kUr$iDEOM!CD!HdaD3en3-+u;5Hpsqe`{fT4iK$`8`-wrh zP5}X)=+z^i20UPZ zlLdd$&@6By3UT2`_~k?=XJ==}mEV(prW%!KfCm^rX71?y^V?OQ{Z*cCIWm!l@84sG z0v8EuYipbC&FYUL1o~!a|7mH9vH~6e99y(rSJT^LQoV6K**{3G+186EbZ1pEkq0Fl z3_(A@tU$7!dyEmM-I}Ug#z3Ok%05UJlCwXM+b{)vvQ!w#hiUzD6lO3B?F%0tz-G-E z-RF>DJ8uxPAk!D+Dm{xU%OqQ7@(o%(+jM#QgAchMj5}LVL7T)fsrfqY9*j*QgM6Z* z6-l$k(SkvI7i@wiV!+jn8-fA~pDZmIP{ytgqZ@qzx}9!MwU!xr4A5753y1dh=C8n} zt5d6#>_kn>y=p07ouBc5-F`ANJ#DYIcT`MfVY}|J%n)~S;yc%s2*`j_dMDG}AN-Sv zLeXQ02?|OO0I@NZGv5u*r;)%|q01Ah0-r}YcIt+9XJ#Ak*DA@3X&dZXyd54khSHda za<(|s0S(Md$gDy!g00$q*y7sSd>|VqnAOP#{q~F)r~-lD;hLkR&EA(Sd+_BTkj~i5 zX71R+)~j_B%xZ?o0+%?hCM*0RUz4MEfoX?K|A8`We&(&n?l%Y%iI*>61wiX{i3E7q zo_W7B3}#I8p^66y%BXF2fAHE*6nTSrXzWkVMBt^Z9BaYcrvTp6K|cBxc;@uQIF&)T z|Lfast9sy_6DT;rX?&yI2LXACJ6z#njOElacG4N!#K40b4eDKz8oJ*W#i*<@A$-Vh zcgB<&I%|G=rQOtE;-@Yx#q7i#q<|F(&-3!3iiG^!TLjTyp`0lC)@KCd#}BK6&gxwX zb8e9NEeExejbkYLcLplr7z5D5c73DqVJDAqSDwj7y-lV`RonYZtJ`jf`LBTI&DSH= z4?O!8N<@i3<)O8Yl+u+&t?x+5p==y0bmIhBlOY|)rGT60?o0|c(v9jg!Xl_-Phc8uBxHSsRLajZr3rcQh0Y~F81AkNhD$U69iq%|v znls4CB>mur7iym>2f1D!3^(&PqBBC^@TZC%hHDH4Lksq`;Oh~Y)tzb5peAYBUzADn zVbVIGbYqyh42DCwOKu0o6}eO-LT%~IXAr@31eop*%fw@HR7nvq3-rlRNh3q9pDAaP z3G^Lzx6FrA#~LjRc&MNU22~z8SK*V@!@2b6`ua&V&a(&WN$ENom&UV5jN3@gUsJbB zW$NZHnY`Ek{(=?`my?o`#K#iIczo)40`)`5-47C83Szc{J`mSzo`XYO-Q^1vQ)KFC zfC{AJ@in}|3f+^vqUkbokpA*i;eO{o|NQt7B=o@D9p@csVBq1gK|Am2kJFj91P6D{ z^oMFXYa+akcOclWwF*Ow@7!^7TZ<4jzIV@go+X^M^G*(pM?9KL?0N$F1A3Y$nux@E@NppcRn{&ylR?1G2 zeRk#y&H|;}O`(fd-)x7(hXldq;HPA7u9Lu6+ z0BK$rUIZ5VBy3AIi2><)?U-TJll*%@+> zie)f5&26vl3?)bI7KzX^dMg2eGu-OBJd2M2f?&!G)4s({^zdV?Hr((sC3*|nbFt3T zJq}#}$x$zVCaUCj|Jw51f@i%Iy6|+Un3($fCCm4*x}GTm%C(ZAkh1pImmUvyS5P;P zf1DwNAlLu45Dihs&p@6G1I z$Sb=lNkfnSZ@54C7WzI65NMXG>$7ur=|oF|6kdS<9jr?+MEDY*J$bJ5=v^|0f#di; z2xp9%Jz&o-I}y@%9Of|##hj=OMU4v&4E7JYKmPGk2M zAUE87-<#yc3X8nXQd;+=2Gn)|7s3SzKrGB98bQ}?mI{Q1 z5l7=2hBCBnIbCpaa$5E*zbLXvs4p0Lcic-YBeeo^y;E3ngwJh9BQyuUnm97M?e>lK z?X;Dno#Uc}pxjK$kaIVe8z&iXQumyyTl|yWP8wi2q9=@8gicDF20S$$#vg?ViC$YOEM`_eUmz@rrYO#bM1?@~|@xV2Px$nWc^XOp{m ztad&XA-Xj(@G@YfH^3%1}IwoTf# zcdyS}Y18YxF^u)Om*2Z-9z>j_$M;IXk@ffsAh=bX`&gx-s6l#W-4n;PCo+{q7Z-Npu#HN=JL>VN>AHIzZ9owjewA@pN$sfu)MG-^%|5t0u!87< zxnIxfpXhu${%f7Ohit;$#Qz`sY=@(?!LsZTo~HK~bAw~&rj=BxeU9w)rn^e-m11*4 zEb>6ql!`e~0F^030Y{`5CI(57UN{n9rQE18L;qZNWV0p9=0HG#GgyfTG?GLiHXx_RLY zAcrm7%n`7q9rTKv9k5Q$$p^GRE_vaz&fkzbKZTVdE={e31JSpKgeAf6QJD7w;@ULy zh%kb7&-$?qfZ1fZtEvA_Q^0G9^rXfw_v@xrEccB_nINcuh++j#z`}tvzua6oOO)2w z!=GLg`iwDsCE5o5gu)H5>uvIfNY$W=8bcetHI4ty^ZaWTfLVJgDrL5ou}=d0 z1I*n&dCg1$xOfeprTc`~X$>oGmzgloczgy3Zr6IlGX90G{IlTip0!?$$Jb=D0s)@} z*pY0w}=zWAj$9kk%y9^fJ5gG+P2+TmKqp8yFyf%%y#WnN?B z2E3z8&x&j}tF^1@a_Y+JQq-6iemiuPZ2U2>oXYg~4`{#T zKdY*e{mShW0dk)Y~`E-$-zgeR&3sgArVf z@k@X3g&e3*_I~}VN?SXuneb+G%Y~=YCd#3$&P!zvitu>V?d%0nQ2fT~;o)7_e}_lK z0yU}stl+5?v+$mN56}Y0%Q+$q;;W3C>K+#tAc2R95$r;tJWU;daeS#`IYx7G#UF0PfDe;J80o#> z2%-pMRRk&J_vaITObUPEl6>B+q4GU;d04pi%S|C$uCnfttY3lvm5Yt!>0fk!Q0CR93eX(o0EJuxzn_Uk4wTPyN-k_FT6Y38Yn_9HYw?~ZvF<>||S98%6R@_AJ(Z-<+! zz7oPNn`0DiI93Vu_{69&tF>vh0&N7N>JOZ}lny43fc9dK9frN*9pt)H_b1z9$+l^G z$3SlCn#q$(iMwR?IYvcU1NN@<6cCcdjM5Lsk_G{ngI49>fR4{k@ug{!`M*0X9j`Tn zV|k2Y6_m_AUbx^Ps$Hx3p}Ru`@c1c}*eR^LLTW9mS)6bI_>Z-Vh(Y?wtbZ`wgk;v9 zbik!a`;*(8@bPKLfhRDWGB3x3_dYeZ zBhOaVo*z1e9|hcPJa21V9-bI+bG^?2LX)-znLC5b{XrZLz@ehTMHpBvUAxHTF-_ST`mVs+SQ47rOl)}m(;YI&%?Vq|9;oI62qTgjbyF0Zx)n>=`{GhLzz zO<3guAHb43iJhY6c6F;eiGq#0`6=go8C1R;I3@=ix)B2o!yM>pK{is&eL55xlkhZJ ztABZ|+n4;6^6aslXXB%s!9)_t;VXNzdXcL{(Ll z=~ACdUIY;4rNbZoa>~Ngm_NSZMg#LJH z?pZJ4zoW==@iR2PQw`vfP!g}3mKu(1_|qCPK@DX`N!fVPK>OU$jXMRJuYdkbikMN? z4ButTyuT8t;ZLIi(N#wXWOah_h-LcyM1VG(nWc7Yw!4Ay&mKMK`p7NU&AhIp0}zH$~$R%m;2WEKfvJKrVU@~hxzitafeF^-}^ef zNfw51>}=}EFpHyKrs^^GG(=yq1JVMt?dOoMHZTt`WJ40(X=dPjZTzH58n~ZGafzP} zB-&D@17mszz4s@Kp?e_b6%eRhQv*pE#2v&C=_$Qc;eZF%Sh{Y#d}C9(Cijw|VGirg zUABFflqewj_1Vqymu{848dx<=gzK}t{I9UiRY8CUh>McFCVPKxYi{PeOYBr5Bw#e+ z^-Yn>td(s&VSpzy9L9fIxAb9_eBe*Vsr8mS*+L*t{y?b7V)1pWyXAFAUlWH{O52#e zzUvK!u%fzHuZ3LwM>kHeu3BK5mV>6PSFc~%xT2z_CLkb$=w$bj>oc{Tk2=f4mh(rj ztVi|OjZ0_r8WfB)fR6d~jVO@B#9e1kPw8rr%Rl@3`+rL5vba!T%MU-j)Cl{ylhKLYU2EuO+GyO57u&y2iiho_o&*5FM|c0+f7L+yM4*J48oFT0en;UP zj1DlyNBg*%w8l@KLD)L}37RK|(P>V)T%M$3>p>1pIiq}6;KW@8I_t|u=eFiP?J0OR z>!_)zbFgyjHuHpGo3fxbQ@n_3x`GKIf_ zgy&ll6oufjK}6iiBjIdpTk66gTR{F{$ZeJ;Xge8l$OD`5Zr|W*p1Hb{ke~e(9g%~W z@PnV{|r*s9y}hAym1=7qdS zsJU)sV)Jq>8^XGZ8~xmwN;4cJs)D*YAnBD16nFhAw|u^Kn91+#So(l)Nlt6>C|eY6 zd(8vB83`DfWK{xAg;p?N8+#FrmQ)(d1p%qk6QU%(j9bP_F9Kn#7DT$V0ysZ%8!&Oh zXH6VJ_agimt^WAI+^)7<#8kiM%+bGeDGu0=1YSAYj^0BEQZ;4*GV9;SZysk8I*|&@ zXpOyq%py(J^5=mfaGpk7Q&O^5RPvVzV4c$QOnU(^dz?R3>kFb3qe$Hfr zz%2PNZ6V|Ti1OJN!_1slc(Ub8ob6g(&M&-4SPx3g%oO{(7t*aq0EyHH-4z=Rm%W@; zfGz!UyxNkl&Ktk>Kj%3)Bd-&0-n{wejjpJws_KMlt0@QDTq``j! z6{NDjm{ud}1KEr?QT9{PEDksNEOoaGOwTli{>(A!H*FMR-OtOmp&dpG?Ni!)1Q1i+ z|MJ=1fA_nIK^-yKX9PvNw4FH;_Sz)oS!M={vg-ZsJYn(jWtpyKr6Ua|RfHn!@^N@& zTrl@aLRvBz_?s{7DUV)&HghLdW|KvH>Lj>(fn^H9dx?$hod`uAX(7#<{38R1d@*LO z3p~~q{W|pQn##wAPee^wBsaHif|AG2pMLT=)0)SCpC#9B87u*t(|IVcM-{~a!RUjv zs9ChK9dm>L?M9=~5yw{q(Feac0f&SC6{m$Yo~I3TBOqnXtSR8VQO8N&_+^ibyxYJ| zMTH-5Tn=&T34#I7`a-wGEIbDyytmE+8T{xAH zd#?BAz`(gF#mAnv^M3~Y{h)^dtZy&-*mLrF0+!H-p{rR z1d@biCq8vUJtJ9-IE4s52!a7pDrAF4dT;bAAW|jLP+UVvtuk}n8K!CHe(NuAbF<*w z=M!u>CPVrP+$R&3mUx%=F2td8!Tu}7_gA>ymz4map}P0F!YNvm4t;SX6nAl@D{(3tD2F0-D6d{S}!r(h92g(P>YAr ziGtV+GL1e6I0=X_GxVKwQ=fZuCqD-LbvBENON`QFo6BezjhEam9r4phHP_H8yK8Xg z&YgnsXTcXP@baa9j8_;p&Xf<#$`mYpn5VQ6JA&@XDSMcy71_|a`jedYzWwnDuAdA8lVZ&ohBx{%UGH_xBqOwe&~{*GCF z>>u_-+*^q5_lo}N)hlgLmg!^Q)EU^{%BrJ-u$*o`d%fPY^Ls=+>HmY2OpU=#u`Fb< zxoHY78B~pDZ3BR(MsNT;-XuT5trDHfXF&Et^V&S%XU+E{oJPTIm6@;VLy7L^KQbi z!|14PJp~*1bqXw2iNpiIuLX0lKpU^z_h@sM3HvIc88C^NXZenWGY>nVv{`Um1VJ4~ zTWLm$`2oh{-bf0zLYZyu$z+4u$g-6OgvH)!v|N8n7L=X%e8*tw{Dlh_MCg9~>2d%I z<_#d!vG-lRke&dTHv;c$qo|a5X5D|G9V^P?6Wp!4^#;neVR8DtF#aE&sK0~uE=Jm* z7@+O8Rf<~P{q4a{68rkTM*l2FW@}YDu$eX}ZY^o8Xw@xlubNU}Ol`YMyhuE3SB%@> z6zcg0Xho#TsUCzbybPLzetAb14W9M|^63vBEY$*DS%g}3W5{2Pb*~rdW|s{SG^piJ z?2XNV0LJ#Z|4V?m10sUAXwllD*3DisZDdvJ!tZlb)u*!|(9tYM{MLcBS0aC-C<_e8 z20u)tmE9K?dk-rxbWFYq>U#GOMr#YxcJy0xd_{eN0RrS26*qy&;Z#G~-%5<_A{clp z1rp-`ugr$vfY^{oBbftWdXr9s{?7AbI3~A7z<_+G;Sb!fj*gDQj_E~|kdF$tlFo}; zWh+U7YynVVfid?VDE0R1bcgx6y1K`(Xhw8&wANpVxsiViIW`KZm8YL0vTG+ zlFv(>7J+UWgDD51P7(kO-bq8QEWt~7!9nQnJz^Vp3bPO|OqIQBcH@x`&m2$Ruu5jd z>z;afNr<_{6Cjf>;IMho3vlZOWTvaYvAJ3oeLefRj}c{UH6y;%xn1%rdi(W==dT)! zgHMZvqk;mkP3CO{EV_szZ1|1f8Shw@s3Q*pbaW(FrYFYSVr~2}iXt5=k)nk0T2|~+ z@8p;Vw#N2g6A$=J0uR?@TK#7U?Hj-$bwg*fg^)BwY|&l{47~X?e(Ar{asWx|v~E^* zmNhxBo$3vO01ON6AxHds0wC)e|4BUI{tnK zbHva->s#wtdsw&k`cM4@M0N7Q)+!|P!#?0WrdM3hp5y-g4%WiBofds_YjdES(AN-7 zb~8Oks&$K9pGLCiX}aE2s*LiCAEGxmn3XyZ44evjA`&Egw3;6r(R~60keI{ zKDss;u@^h=8G-`OiS(HKoc;OpXXVcuu(cbYO5Ia6OEw>WW{5n#0|Pp;+T!O&7gY4t z@5KHnv@+3?D@jLWb`f-CEunE&>fOneidAN}fJ+YD5Rl}7tPYp-r^_085#vHc)3%au zmy)xd*HSu2gY9!2r1cH>@D#HM%qRj=i@=7PtsuD6j8A&1jNe8NymNEXLwCG}MUS(} zE8EU92XLCOl1wbznx#>P5da(5vf6f8%eHHJ#XucVS1^zR#Z)#{nZ-N0IJ>yuw@#dP ziFw^~y|2;vM^-8=xTDtY1mSO;97Ug9KmSZWcl=+RiXDnlbDgSXu=Hr8;8o0-xbu9f z(cj{C;(x~bS=SfcH3<5co|>MXKC$v@?CI0K{A`?yOD0T4-e_*G1b*RR$aru$5)Fi7rFq3s^JwH-S@t7V-*nLckvbfW9&BrIm4&N6ch*WFg8zQpoWiknTkk%> z=054aKLh`$1SSc5<~nwiaXadtzoQ8JZZ1H@{mbm)_I_hSvfa4# z&_F;C*{=JyvR{0~`}Z^?FMOt0i3*PU{QeBIYBMCbFP#Bg?yRS@E($mRyFu2WMACOv zIIob;a}SMw{T$|GkS1f_bhj8;3(%DFxUBwuOpfQ5*`gx{V`;sm{YtjTRTDtphOM?n z#Q*O!GF27fR$gy2ftd(^vBF@$9a{r@^?0vKNlD2_{r}DdS~YzMw8Pq4vkqwRK)<4x zy*L;QmIH$u7g=gJpsI%H358l|*bT07{J-knI;`n7>>ozG#akr=18E(lQc9PgGGIta zC?z0*qq}2(1taG`hLorb5R`671t|&XW+>e`V$|;%2zdYgdyn^cpZ9q7*A5OC*S^;o zpYwB8*DlZ^{*?Y*K9vWm^JHK3?@UuJNv}?o@?E4v`~xFc<=Ide($U$;+1c4Y$X8ZQ zt|A%dLCti4Fo>T3?!))ir9sMnpjljK)$>_TH=z(~g-Z95(y%f{VtBpxVvxSIE<;>L z;!x#?2D2cF`ySF4P?{x{;N~dTY5}O+dkwY)eEe8*+3B9KZF$gb^bNslEv>z+t*su5 z`C$0dpI-teyCN?b*&eXs-ZRv`lAYWl!Vw67-Je(Wt7N|2K0raCfOEq%V18_%D?+DO zAN%p+$Bd7|!!~|@{qC8Q7D^203ks~3US}u*hv6229`psPZZ|o+#fcbd?lybl9P|7}^@6+h-mQZV z4KaX##DrsqckmFN`rzANB0uv#_I^-g%~P_hiSsw!HF%-S>+r-3(vY{Wpm$gSuY1q9 zp4wl=C{s)0*bG=Z?egDCnAe8fI8Q^%NG}K#XwpB1_lH8#j%>kLse_?v4yJ8EKNoNm zL`q}t6>=E}EkEZU^mPYJ06Mz%3kH(?XD9NZJw3fTy*)BII=WH1Q2?9v^!D_kcAP=E z@}Ix9C2KYnxDXsbMn*wKM#ir2s}c&r&nB8PwRzA*`=!N2dzr_5h^ve}7n)iDs}Wh)C$`;t836UYSGiqHlMCON)g43# zGVeos55CzIfU1~H{Mmz>85D7S-KcMpr({xnqfYryDu-U#Qcto`xr{Ez9{y0^*8kl5 zp+UTBi9QNhJ+<&go_gWMjgZbJ>Vqff=&T*WV2C~Mkd$lDjyL$rRT z;(y)KR}=rBWL5O5a6*aZy7KmaE&&)9U{E1p>`GA*W}&b=HtIa+rk8iQitmB;B|YG} z5Lo>i!txdU3r&T7bj7r*m4yX9%RD|e$1Jk`_oKe?g5}qZ2CR*lHP|kz1n)p~*Lz5_ z()r8AQvukRJ6m1fU0tQT`JWRkm`c2Fc*3~{#OUbhI0TiclL4SlOQB9qPEAfuRwA8^ z2fQzw?Csjjp*9VQ437?vj*cRS!8F;Cu|Q*ONVhiJm?OH$UB6Dx{@{Y{j{Vdv@!5&l$yut}y861tI_j%DeDPYW9GyWi#XY)7ILDq%cIL3}^%9$*&qJTP;hDHszuVmW6_Quv`2O zK$<6%Fr}+tOH%vKh-U2gTy9AsSdEr+PBHuS8YUlrhc8fx%l z-@0*&?$Uvt{J(i$Za42L@q3|kB4@pJ?a(v+{gLH2T#K1d@D7(x%4oQP@jY@tH|P)j z7g-JB-EZonYGAg;#;mL@Qa^Dx90&CSw6PfjPNa`Qf&9;tE^q$+A=8zMT}{(KQ&W?L z59|kCg1_ZZ11}x5$KK3=GXM2K44e7@PMtYP#Q&Ef-K0WPoewQAgCBS($ZGYZv*tjD z4rSlW=YQY(>aSCH_hLC{JN|Vi|KFZ`zHwJ5A6>tADg+6AOeI}8gulq)z4aGfB~8Z> ziDfY^w6q@uqlBXtwhYu5MXu_ndox)3B^=rofD%}#!Ga-T-U70Yf%%>a!u{RrR!E4R3hV z9!KJ$aaAAwuaH9<19QgEc0-OBl%J8WJX=+3Aa&>jL!`Or0zrJm3G`vef1&6vg#Z5( zr!bsARkOTRzj*&Yei#@4(n%wKAO}RNMgrwk$p z1OLRv#>NT42DInC?&NCw{dU3jcDj43gknj4PJT)Xa!^tUW`Q62sKNe|a^HMm9)7ap zGGK>~SkV_5dk1?5hb8E>IwGMbla*@h<8^O%@CZLe!0?r&CBFM!i>rq*;$Y0HpXf8R zOgD_KM9SkXQ~N`|p)+6z>5|K8)(KHRoSj@~g|Y{R@W|oeC^QS7Tg&j(FpfZC?G=aj z&Y`q4np?9YG+i`JG?QRSlhg~GaW&W~d4QxZ06fG8m3;=1Z8=~zcupRu3LU>bwi>x~ z0(6#`lSdoI#fFJ{t%e<#u))vg$VjDo&gFsSFD0o;#?a$3V4YM-$~77D6brIwL*`&8 z)LkPT28LDokuF=QYddTQ++~C~VTkS7+Y4o7hYD$OJm1YSJ^Zs0?(*+e{Y*)s2M7Z!9FESZ zDj26kv8#cKPA!d?6vK2w&zlBvMYORHfcvRXpuDUd6qxzHP6_2-EjWC(?EeVQ4}gl@ z=I*O4ot>SyPEIwgN3v*`(R141>B53b*DYfva z3wf)>J1^H7(f*I@2}kFxYoljpfjnBHN7?yxtZJigkT0u5S^A247qa~ZZf!syAoLI$ zVb2SP4Rl~#?si>-Z2REmR=Y!m)pLe}-!5**Jo^fAoRF5Dj-Hkt^F~~ABMr$u zAS{412K-%YDJuH#B-{m&%SwLHVBc1t09a&U>g)M3;gXAs|P_bU?iYxAzS=&)jnjx>~o6QmBc+lL=Q7hIJiZ)s3Qix48gB^+@@bq+1K%9xu2=|~AnYFN+B zYUtA9dtS=Y4b8jHiUTQqE8_Au(BT&wwQ`pHz=o8YjbJh+rtQJSKHfr#>Z$6hYO7x6 zdy++~4$aEWcF1|5gql3xUDgD0A;-3k`NC4gAYqbcK#9*&|015l3r^CIU{a|ZN-i%- zRl*r6^j7BN1k>9#fiyv5t>7a#xF_T9OH&gn@wv>Q$}MtFr%2f zHhf{^@<>M|uiKLHp}Z*v(7U?uPt5eOg@#$lDyOgm%m+em(C%(EW0h((1JR4sljVD5 zV5~6QX6_$DB_m)6PsST zi}1QOvt*wQ`p9J~a2PA0_<>CY=-DyBrP8#-G=2UFkTfFeh&YhC!8g0M$I;OgsgJFu zPQDioX}=HGNaC9~;YS**!M>G2M|D+w1d=NVZ+p8XIH7XxP(Y#!8jMbm66<7Sat4Dj z#qzLkXF!2SkQrosecf$+9TIO8@0+S;gUk`gzX;Lp*7k)Vo`V!u`1x?sDGxyH?t^3u zz3bfU42TY?C&s5u=f=-nO~1m+nSLfYz4h@Dgo*L3#%RfCbG|?zu#Fi{H$BORi^iln zqpC}F4?bg%VFWyi1|txM_Uh=$$V$h@$N$n;(#o&$B&NB(6cN`>%1|)##mfW0nvYrJ7SSd#rIJ3d=_81%88pk%yze3X8Yo{nx(y}<}qgSBzG z+u!xWDS>ZdW}TjhhfW0sXyaTC3CNfc>O9c9xL1!0Gx1Zm(ATY?h-w94`I)PEY7ItK zHr@K@#0q#05?Y}ujoqCZbS+%ohG)9<$I$SB=km$c0MwJ2Pf31tkR*D=*@~GHR8(99 z@~Q~rH3bG@acwj0EI7gs=Ae*msNym{0Ypt2`@WfsZ$gFkKt^mayJ=WhmSZryg_4rO zoWBdqtNqeLhpr2#yPGOFcNYX64du+^%-5mr9v&X<9x`=xKkDl4sq=-?SXgWrCm$f0x_nBxgIjIExGgk|C1h{z%;D4@Mq$3XwXcKPhY!^nJqlr|FIW-PG z8;k-EFqLr!i$K>K=Kc4~Okz~^?|Ndn!QRV^2Y7cDs=a!#x5gx;x~#$+!otETP>-+X zwb8e3_0}eucjaqA5H}IBS**%=HO30qjEszT8A!Ym&4DCdQUV@@{@q*_o0V)1HaMEf zz}mm^F)_$#=`{kqBEKs9C>gCU0Mvvw6>uv(g-)ph7T%l+ML{_gZGB*7ZbgYe!b+2p zIx)pJpb|`}cX;{srkQ|R#OxrArLK@hu;P;f4eE(XB^?SsTP{tJp=-m~RhktE)PZ;< zmxBWhk^$5tE*4Ynk;Lba%%-OIL^ikK4a%&_)1b_ER3?fWZK#07cAcy*db$O;{7!1o zHy00%QEoPh$*_yACN3_?F$bou78@stAOuacf_7}8@T*6zf^8~RGcypz8MtF&T6$)t zU1&!JN0`^+L!6i7ulp^rC<%=H(8VToUPY)s(0QQ$;F_AQk!&imX^tQ2D_4Ip>j*-c zl~~en{N?fE$JZgPiOT%YJrU&CE!Eq-rt6K=V$_gdu&y(-40HmPzMdW)(KT=Qq-;Lg zT=xR5SSWHv5#Hv~6)G%ESCIbsBZyo;uWs56t+DJw-*%D1=Jl5e=8HeogsrTsW`Hjx zo$Qsdw|59Kepf0PEZZ<=b1rsSZkolvbIZqR)p&6;lt@g^`5!SrR#aVQW`J!V~BU}f9C&$Z9+Kc2L z8j7<57le!yvA_`@(G8Q75V}S^fBb0F$vM*TezMK{jtt6|cfQ_(VKd6F+Ns~yzMo3F z2A0wQ1Dtj!`g4~6YWSdvM!%!2fHMghL9y?Co~(~}ZB9jxzU6y1gEBaZih5$YtiITmp=(k2=Yn_Tq8EGVEHBhg{m1{ z?W=Kbc>XdYggfOvHbblTdq7*KD4WfqeM1e+f_n)Quc{7f=G8y?cq_EQ2bIJ(49YOc zsM4FrP%to>z)U+5DLT2KL6f_w#Hc8~0s3zLNoZNg` z2zM%X12?>}-tp+#{dQ%a?Nq_(r(w7E-Bh_YFVR$?iIEG?n2>*-LlVA&&YdR^&;g#M zvQ?U!nwyX-s7+^56QdH2<(qSGsIOtUhgvvrbmiLBR!rgo0s;~OtS!PnJ9|4hse|88 zoxjTIWZnR>fgj<0F2qWboWPviyxiQ}0N0x!1;nWanm2USIo0$>UzZXC7cGMrx&uv! z5$scR2LXkRLHcDr!2b$e$ctPS?ba50B_$wmrKKYgz+ZuMFIyP4Ag4e};kSm?K2Fe2 z?;K)_3Q!MHBHO$B@)y9H`+=~cdo;s$-K~C8f?W+aJ6+}ajKvc7m&q>=m?HK5r$Y|8yTS z`tVl)5SbIg*+!QJdkKAwjYVt9GUR5-&6_v-Au`{4^gBARyxdon1yOjS zZa1qaUboEpquk2$`EJwmNLuM+5>F2~fIIw~|0SjACx(5CqvT15*{V3Q|o%oahI<%fUeed=^crbQn1Hb>ye6t^vSVV_i zjXRT6sbnM_e>pTf@(FUcYamuH*0*N<6>UYHFJKWgZDfPF!-rbcM9aH_4n8StlypE` zOdJ5LP=_QKuzFy+6AYnOf)*>I|2YQ;0)eqzvtAQZ))&Nw_9giG`Vur+wFe&_eyfv# z)k7z_4f%Jq+}NTeKTja=#k2R#_wE_@w3)RgDV@Cv2#~hK4C`ci;di**2>OY_fGa}s z4-eg|m0>kDFmoY$vsun5AqWjL2PC zZJ2`uZ8*{uNUq7P18trc2mH%rVw~UG$=lN2-rn8L7W&B^$}XrJC192X1Em)a;E6CG z-N)sid#PlrV8Rig=x8(9TiCpgTI^ov`2_Lwu&BU?)sa;#aygbU)))EUBQxEZJ<5|h z`O2q{A9rzBQ8f%cke}dX%|EUHS~rA@0(RNA&-}Jr`v%a*0l0)fi{z-MUK}i?g|$I& zsyG~(!L_gfu;W*78ieqGR!Ey=LVvF3k|uI|d1*ZDmKVww4!ldu^Fun!8om7#6pMSI ziR2A2Bx9!f$$ar*n~&EX&@J?=DfG0Hx3jZDlecx6y^~~lWtdS~UUc9jL{1buT?G?4 z>{*CIYkOL_sF}$9DyWFEQspa)CN>(XgRiWoY!-0$P15I8yz2qxf}a`C7E zq;mg$m^nB|+d&pW@sYKUm+d24TiaXM^iB{KjbcUM)Zz*tZ4qk=&r{SXH z2RBPi7Z;awQSY}7+qA7F7a<8LFPun~5A1OHKf|Px6&UU({365u4EFYlL$frT0cVwJ zh_mp|$$Qfb=M~0Ad`kah^D#X;`zzt7$G5jYTA{t^m85w({_uzthURJ z@PvZe6H;Q_yri||Z4!ZOvhh_hCge=;C#sySZE7M;8bCbdKQI`ts`fl)85j;Vq#n1Kd*75i*mlXZlBGm%)mNjD+`*d`Osa-yICf6=27fZ#{*S|NiVnp zW7#{JdE1Jq7o=K}o)UuUgKo*nUYnn#0t67%M3yBf!VmtFgOy6<%~Z2(G3mTX{Ton@ zBVgWgY~sM~ypn|g8ircF1H-J?@liNQLE-L?y9zR=0B1m7Luq!YEFm|cFhLvJd-q9S zXGaI%;{p_;t*Zpkzyn=zJBAh9w-n{H!$Qx=iKvk_11eCauRa_YSbs%1wydbANbcAY zH#dMcsX}4;oTD%$B_%7R+&>$dc9lx#n1R4C=39hAy*L88yYjDoUdQ<~ie3{x|Iy{x z`k$bK=xczt(e74mAb>z>GUXcj+cz*z9zqq@G}aE!B4KAbIFs3Y$7rT>h0YQ?-XogU zfainZ+GopXGbxduynC%4&n|PrdDRlHL5a*TXGjh9#Px*(El|EJ49?qP;WGeuH)OOO zw3gl>4f!^mIH$nDLoNySwoa)7n@)B0s$fNo6tTjsgGMC!z+EXnwS^XaPrTb76cqFi znBRQF)4SXTxvT?8O<_CV#S41Iz}&@TU=@_9!##Df6_zopb{jTiuL!Ivp*{N3bcCFto`f)~=GI6|%i;j+ti00h01(D`L3QJlf zJO|g=Ys}nEud8y$#}Q;)bc*N+oY^upKN8rt1-nmN0-~KdAXd{@?_($Pos{ zeKj8ZcUNTqqePs-&~?i*PUvMjbS>x>k+~iQJ-ZTTa{n8rP&mcq4m7E9Am@cF`$XGr`4c(Gu zY(+3$(jo@>rw3#A1*=@NwgJlw5)3sRF*Y`HAgpCzXsIV`Zf*j60Y-mQ2fvVU=SG9d z`%%mTs<_2K4Zx6Uc6ODQHhgSqM;;X|9UUE0ON$62kwVDpwk#8h=H}vyzl8-WqKZFPK9uAD zjb;(}I&?r5;3VoaZk6pihqPH9mT<%L zv6L$`$!UD?QMYdTsH67J#-0P5b!UrUUS)&NA4(=qaO9YddTHj@AX#)h89$%;kuBm{ zFu;n|=1s5D<2QBI5&_k7+?KGf3*|5NLhq#Xq@tu=c#Vs5WMNiaP=E&9bC>hBx#re7 zFmRdr)XQh@U%`^Y#md0gW^;cA5|RG>Z}aF5kYe1w#k$Ff8F_Bg8hd{E2!g(5?rwO^ z!p4>)XpIMgl$Q4ZTlpAqB*twYZoKLM>Jn@`SfY+qcLGe8_|tXp80b=!=2`;qJ;r&- z$rHBfVX3OP&Q6)+kCcR`{%dYX$rOWS~C;`#ogXaN}*XI9gy448t0f`x)Z)`}<0 zxDH56qT+dC0Hdb#xTvUpJTG^mS6mFxJ=Xp)_JR20uS)m7!zFHjG)naw{Ang8?eBKK zevNtk`gMR}q-E9Xwsm4JWoUwRj|||6$$Ggu07Fd7H^{xNIpX7ZC~K8-#zcS$sFWQa z+O6FThZ8>8rwE|knH%xE_ZQizg`}9zChrnDISvVpc@IkBoJg4UR?-fuzNK=VK%F+(NHc%iv?Ex;bgIvvaTpDq?%MS>H4qz%`T0zpbX z;1qzbyR^>VAHeaQy!gcPuV9Hb^mLc$$!Kf9SH1&`WljCdQ3H4gF>kAZO-cg7E4RmX z3r5DtEek_>%=6M@v4FrxNr?jTKD%F8;^V@`(EMQ$0`@BFfxXHN+zm<%+9RiCHj9`5JQd%V9hiO`aq zs-ein<}57}pOMIYNYbvc`lHbz2aGt#VvrX1O62{afh;5;MDBQ49!zxsDC`0;+Cr|o zsi>&9sGwj51_s^+xEV}d=gfj*E^%Uad&umd3k!djndG;X+nQ&X}!dAfD)0NCXI6}>etWbR7)*L zVE@p++@oqkwK7FNRfs1?rz+)J`qwu!$c&Eb9rZ!~dc8Y-on*dF>x4(@BqpkcM#b39 z?nZ9Gm8_jc?u}m;!T9}rM`&I6rNvUWZcB4k1Q%0a6*XkN-&0?FC4x_ZV&pW*(4GCW zoff_*@4Y>;`LG(xt63KU>p1O~;TD8l{dU=gCwyb0?M~f<+~8aQNCB8~$%-B;FK9O0 z%Q(#6=^oAuc8_oV7|6iP%*+@U;5hfCe>S$JNos2v32JV*(mx0E^?ezU#opr*fwb%V zG?b!=jP87IWr<{%>OzfEzmGZcNNxO2n$-33=jQ|LDDH5D?`p}o1^u(#1Kk4y1Jt4- zB3)8zH#Unyw7k3R<9JEq%4Q!L7`SX2XVS)Ut<1dD9SC6kZ7qMVk>onJ=oq9s-)CsPnkY*`UFhi^AVQ>Dw)l3#P4M}N4szEjq^)8uBzdXwal(9b{L z>$;J9$p9jqhQdjm>%!^pA7C3PGf38A+r_T+@nV)1^IRTXZmHVom&$y)JSU90=!4@s zVT6&9k%W=+b+jaK@_oVK{|1@NjV^6IBPuQ>ep7rYthDN}D%vWSB`bRd6PwPC0(X5O zMBc`z%cL{AdpfE{T*cVS%S%~&2pS3P8*_Gc$#Zd*5wfSJr&nY;O~OmMe;)P6Vc+x( zPB6{`HtRupAQ$h%J3+6-E@sM={xSF2u+?8bMPA-{uXSbFucnZ?7M@*bnJ0xo=(9$` z#9s4~6btM>Tg5K0lzw$q8QW|r;5Z%)&+axAlEG+V7||Nna$o6?NqIZbD)Q*2{v$oG zR(B9@3X}v+r z{E2GyyISTwt`|nFx~$vVPjy%H2tX-_Pa^&N{(ok999FHvipbSZ)!-~0+D`M}&C1Ke z=;@y3K;^;+4o;)`!gz0JOXTunch%uoj;uHK3Q>#4eL6$-FXb|LgdU9QrTrA_Ppt&# z@v?fXVU1i*Fq_zn?rEJhw^eItTvF_V-k~OZi-<5%GbgQ2>WJRR+PMK9A5~d}84RngQ2V+;M)~t34 z9|~~-J?QQI5y*P>cC{qQ;D+qJB{0aSHK1?sWoa=h8tHKr|Qg zDcr0@?9iNc`(>O>LgE>`|1geRkjGi)i;J-%z*Tmncx82Iab3%reHm6Qq^neolJ~Y# zwN0m=eWGA&W_C3@hrzk6+Q`mt@i@t*$Nn=|cG|Ok*CGNELTe_vCu%3OffTqmb4OnP zT{EOQ9?BiDtCsn_B~t@|pT|0cJA^miEUPkx=@%{KN|*JUiO(*j@KB?w&)ThSC(046 zPtN{brekEjx%9*;CvmrYJR#kMRi984;|{%V0ij%_6x%E=5RRrZ^Y$FZ7@_s^$B+!u z%$u(B%EPfeH1d`Gq3=A8ki_qM9alk8mIXQbI0BAW>ZVnNC^*sIZ93SoJ8@& zuId`Wsk}?{=k%+~bLH@5cmxT_nJni;UMz6>4yWZ@wu=+D324W_Md6i9T!8 z0GIAzD7RgZAI%JQZSy|e%0P5~aoilv@UkR8xzKI32AU5ZU^E}-6|J06WU`o_Z{k$Fo3KAzI+plnJr#?*n%up*C~=xzaHk@J4ZBBExfII}J~?%pzhoSnb!siM zo*2xnND^YVE>v@df~!>J$o$kf+5TmtbZKcRdx;lf@)nl+;l0xUy<4v08r#7c#&@aYVCUEAgB~H`FNUn!5t_W52I<(#`RBM)h=&RSHu8tT?)j8d2 z*lE;zW18?*$GSsxkVja|{i|WJNA~AA6eqXlj|BVVohy&pRq9%s<=yD;vhk{v921!# z&+JAjI&5$oS`=Gy7p%P7%yZ4HUW`bl;BN}&&c$gUHadnLS@!BWDOfFUICO1#+Tac6 zJ%wjx-sWzSbp+bQ?U-0eDQ-!$*`Q?gwu9kk+)Oq)*~7&pBsM+QM5je|hANmtYSMSs z+NstXJiG{HJ3|<6Bm?tAi;bq<#)Zhh@h}2W8yDWd(x))`YdsJ3%qhRrnD9QtIV>6V zK1uGKbm+J4JXM4#FktdCT-PeeS)|9iS@+<*9(KmZ52SVKTMvm*_7LDB65rq**SOh!t;L%?8bIJ*e;BG>%Zbn*qj*R$Y*qSdr#$r(a(E+Iw&)N zJGgy`%7Z(&ixVTT(j;}wb$jH)&iJDWxjryi^wGoh41AHIfNsREm7)^07Gxz3N9;Y{ zS(Ya4>w73wRt$QO;+JOc%z_y`uIY??7m`hl=#*0izWh+|e%f73=Jhd?V6q;qAxXOA zkftmnkfz4MDVMtqZQ-^nGoW|>Iy1SEq{7_qZz6e7x24out=D4REaw@;m56A{ILY;; zi1GN$);g7Enc^(yNA{`mHu)pf zlRFEw3(X6)%PY@Es{6}3EZVP2-L!FB&)h<6%M{&}IraTfR<=AdC5FotoT(=)*w)P&ViL?<)S;wxn(=O<21I_-RnlklPiB-%zO zUkKm4<~eV=IooJ!HgL9Ebr!$U2bf|UHe~S zCpuTBJx6w82r~xMwOl8{=DCy4yFA1^<2d>`HsBLgn{b(w9ztBABaYOw2xl(niz{n2 z7oN#2db6=O!X**n=^^=SsJkvK_bqW zx|0hD>;2XA-m5Au@o(*fCx2}H`x4ny9W`piTQ(NN%bd3@tlx!xPkAM+;B;nJG3Irz z!Neo)oB0E4g)cCDUNF*)+eI==QwzV>re=(`^#0`$NF89``YikF_&9d)#vA6T>-H~W zlw}u4e+SI?;7UrBR2S!#!yivFwsngvX6k!VoVx=*r>BoO+KXABga!)e zH-noKP*ZxHJ12j1i~ZhQ7iLrr6`u6$B5>*H={ZHuwv1eApGA!XrN?di{bMj&`|F2y zMrk)5WphC-Oll`+dX4t8!4?=$KwrTmXOOG;)$WyhAG5ldRJD`dqcL48ysRD5W{Mtu z#8|3peZ$wdpiE!KZT-h!kdzdUX9=T$)!cYU>-P-FUZ)hB{NKFkrQ`!r1m;WehHfE~ zBJEyo2Fi9fpEu6h5!zQsI~liDa1jcg&LNbX`MJ685CgrZXK7MPa+n8|Rh&9#s2Imn zyBB8)caCgVKWAp_EG>k4gCCF6eMIXHEdMZ&`!GHb7!&gk)mUpC zs$EXXA2T}E#ccuv1f(HSle9beUoqRKv=&nMO}<%n*7e#9lgQm(AFJvNj2~*vc*q{h zEaiAdv>s(KqO9B`7s0HH;@xq+IFTw>=Cy+b7Oz6e%x;py;**7k@Z=1_eBEL*M)sB@ z#(PK1sB5!}klWtuoP=N`QyOCNKoR0v@kJ^dW%Le&U(YR2lD<^I2_JY2x8gLs9wz&a z5NcJNr+)P6#Vv2L7JeV}k1_m#+a6d+(%V@(;S~^;ZWI57BDXX3!M$`Yr|*QM8Ky6N zgz5x+B_W+HWY@PJocUj8vWB)~3kid1k`$;AIZf;1yu}6?1o+r<8ciGlU)L|Q=G-?K zT_R<v~awcBy4DI-#Rf7m>k1C-(psa2w$utm@*$vmBq&eOK-Ctx3%-mWWI(Pfz@^RDzhAUHZoTe-y;7 zxctE7EXFVRh_Qal7}?b9{gi9vh$`M<6ZF1bUkya=VPgy_l0Ta3IZIR z)7oSG10_?O%2jx_*}kCv0Z&*Xsy)zdq`D*fwYH9a-HYnjNXL@wq5egF&Jp0=EP8kv z=^P zSwh!5MYSpxt$Uh<$B)~4!=pDY&l@r9V84jBYD;F6!su)WrPyZ=wX|ar98-2)+*uyM z^ga^*d`vxf(Q`u+-_Ur1H?{AxK6yvJ>KsikWd}vi)>j2?VTBXDF8nD3cy)qawf2UX z1@UglI+C<|n=l4NJNX>&ht?7J+Ii-IiQiLZcjv~AkhtDwT=7=lVOva{*d>-W^Eto( z__EEd2!n5(E8FUw8*OttMI2c>);o{94Tc+J=aH)&iMn~)V*R_pSvzwm8}l~bTwLYG zB>EoCuvpU59ObidYg-iEug7>_sJ^L<^O-#j#zyG5eGYQN%zym1^+hk&jS5Ql%R(vc zBa=VGQ+bEdlDxyWhhL&Bl{uL)Obo=hOQh63b0%jla%Dwlz3DC@V~*Lyi*&UjC*PxE z(Fp&zZ#@&Qvf-LB6P>%r+zCLuN6{E2-*97E{G&s>#ax+Sdxt@V&qAbnRYQrr~zd5o)`75;Y U33iD0Iq~o1Wt5?5cOE_aKR4nr7XSbN diff --git a/app/src/main/res/drawable/floor_ug.png b/app/src/main/res/drawable/floor_ug.png deleted file mode 100644 index 843d8f9a0ffdf2e2edf9d276ea06f8e7c9aa8742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 501513 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 k9E7jlu?&oyHH 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�L@6WBN!qYG& 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%0DSJ@uhm=>h8c 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%0AnH>u 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�^{svH$P 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

    53{WKmyt5=;R`jbN2?fb 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 diff --git a/app/src/main/res/drawable/library2.png b/app/src/main/res/drawable/library2.png deleted file mode 100644 index 27fa2b21ad93a2e7dc27fa2168e9935b9580f708..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464249 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

    LP^ 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

    E3 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%0AspOV35eF?)hCPd5oxI5P4}3gd%2N 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

    k6e`imStz(fRCYiOUM$sDw(G;gp$I2sQ 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

    `~EY-hp6w9(YVq5zMMG>-} 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 Ph%a>&tyfjbA3pyd8L&+d diff --git a/app/src/main/res/drawable/library3.png b/app/src/main/res/drawable/library3.png deleted file mode 100644 index a7eff2bc4e75b8fb0cd550ffdba2b5dddc4b02f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435986 zcmYhi1yCH%7cC4~U~vf$+(H5bcXtm?2=4B#i@Uo+a1HK@1h>WA-JReB=Y!w->iyrX zn%bS&ovxlc-M8;O=X98YoCFFYJ|Ywp6v}r=(H~Gy0MfU^10L?}N*mXU*4qcP;|~d8 zsLC#Ix%)6_w(W4=Z6VG{{I9!69hks#}x11 zF##g=Wn!|;&#aw6y6O~V%rtG|5Azy4TPu#XYqaaLNtrdw+x^i*JT424V`~tV>wg_? zT_67+vw@-($%y@*od=V1ks|!hIFJXSzf1mKYtolQl@$KJ){P?KAo%~bh8quv|6gNv zJ+Xwbf&Vjt;2qyD|Fadw0yGSI2dyT%E)x?IENW`%-Uue4bY_qa*UoO9m3f-oLb;o=w%p03=5=)FKPQKUg6P@m5AF25>1pasiLb}1t3A| zzAU}$^ zpZT6nwzs=0W$y3P{Dk{CCdd0S?`4281{4?l^gBY&vqms+X#ZyaUi8G25VBA-Fg}g3 zdmz1wS%7!Ry%_z2dyK5hiJyWhC53Eg7xKa=3Ta9lJ0{Bx-OV3sCEmkeA~Ft@RN{{Y z>G(8X78=TehD5nOCmRk-Gcn9zA5!5QE@V0EUa>0DGi1|8?dKc*3QfgX?iEZAbx;iU zqoR|K#W`%X`bKnSHd z9<#7k)LZV#IP?eCQ17LEd;XYbv*iB0q7N6hZnB;ZE7(9=F`6kZhFrGSsl-Z$qQm7I z&UC?*91>_GV&Hi2cmQ%Qm`Ee9Gcz7r6=5%$I6SQ*PD@r=td=F8PKJdeH4RGF0|CNL$M7{QDznnkj$mfWPq6|9B>fP5a0X$j?(P0Y`?@jp&K0>nvUXYtoH08w;Ob3a!qs39EWkmx(&(F`{DYWVaY;0`m&p1f-JVXQpbxTVce@?;6 zCq!p%Ar(4p8V{Inv&hEf-K_z@s^V<#r7X}Mp2y9s>Zzr!$7FDbh{^k;>z4J~XzaW{ zPc^?IVdpzNeEh3v((yFhVRhzp=8+lqHuLNf$WP`zej<0Hh)Q_^%|)q-h)am{E9)Kp zsI&X0{9hZ!c`ZxTB&cB^MxJ9ooWHn5MTlcSCVqb6-|sUu$ZyA&*5KR)ivOxh`mQy@ zhtABhtR^`*_P-d=L|YGbZ~An8kMVc-z002v;{mk;7({3tjcPl}+xT9o?`?9i4C}ZEFgAMC{|01#2fj-fQ(LcmZeedaZ+<(C#=q)JFI*0-T$=+?Ve_P`j*e*u% z_FbQhjEgjaaQx6#pTOSbScRP2-;{!$i^B;;x%ZIlhS3U9GASyS>d=K;{G$Rq< z-5-_6E6+N|?JWPrP$ZPMt~Al(5@%KWU6H-Nome|{ToR67X$WCuy*J!(iSJkP6(-kT z4Y-|aC7HOm%pY%0>rAsi{q2`YRSP)n=Nbde4pwVghIKgfYU5$%NHK}2?NQhg=Pi}KJz0p2Qc0=FhkSt-wMKmFLHP`Rl~g;i#7?$SIrwDkxVkmK|cZA}wn zCfov_^4tToW;DO2Gh-PMh7Qn3DJ64%kTsdK1Ll2rYV|CN^n|%^bPz^3{SeA*;-^A* z^wFR9UdYI%nN(gwHrJ{^BwcTL>)-4pE5`0U<}P_6&fQ4fif1ctCWLls2lJkHl8NXV zqj1;OJ?E4V?Iup(vnPtUhEWcA;@GaK6CrSF!#>k=ILng%JPaM%jZE|hH*N?F`K!H| z$6#RZN9OjAWHbY@Djpx`z%Wo>M3c*_Le(gyWOm9vAsP2=%R_-g%V`qOV78Yu>i+(f zA|TFcSku|pMfuxoTJro*_1d!P^ZM+U@a|W~w}mVM*Gcg9Y~5B~;Q5-3hm_>5Q$@4U zyA1^erR(=O`2*~evFWZ|ePMubET;LO7&l>wGY`(R-*_nS7O7fL`wK*ZHb8=~8=%Yd=t4tTw4Y$XJ|ZO6M0a+L;|~2tknV2j=CX%OoxKJ-*x7p8#8) ze3^~!+Cm-sAX>!NN{Nw)--x!D-)k}8r|#K=dwG-S{ETY7G4!(eA+msqGd}5c%xHl6@9#<{q%8cG)(eqnjZwpM>xN7+%Opu6BP5MHrCv{8f8Iy>SLq@eQ_2l`SK4P z)f7gBF7rHSYWOH)uE8IJp=%~J7?E%u%#i`;F z46`WPFtRi(U^MallJ=?An}QT`cSebc=!>PL<&G%-&5qLT zj8d`iSW*D$fbCPi?Sj|8RUFRuw2Fh{Ery0N@$p%Qpb~Zaoqc=U!s&3ERTV5P8)<)i zB&oK3OF;()LX}m20s}_J!Iu(yf@bqs?8mx6m(_9^ML%VB zF#3~06GYF*bbXO%X`QNt76lFpLEcGYvARkY49;#loh#C8X`yT|S>M1^zJWgj22!Kr zzX+o4{v;)3z`hF-hqn;cJ1qSXdqw|g*q!?bNL1_CHoBDkeKamClIlBNucV6Vd=83} z9K*uMNaX0)*d0Gv@}P3&q+_RgJ{){sjVt)B5Z22asH3&-FO8(ng%QNog~fb6PD84! ztbChk>$BW`5fw1fL_Gn0Kf3-T`{&=92Y~W@eccmx5d6gChBVg|0Ca}kk=A{fn&ly# zH4(TAIIE^x1}`q$1vb<>X*gSFj_RZ$LQK=|?uLo-Gs}DJvxXT6tLsSQhY#{|OZ>U= zIm*@W`LgnVK1sj_#$qrlP}5Lb8y&RXWbv9PVH(cOHP5uDRy3wRxZ^foSn2Q!S*PgCe^G0i)YU|1Vih(zwTJFY|`1#CZp^zvB5QK1RJBmNYw|HqxRX?n7hDw{@n9JpNZBtk4Lerl5=4e+iW6K<=~nki{O z?O|PNN5A%@j#eN*tcmCc`ym20L7_sSsNIpFj97lRml)}~(5;dQ$PIm=fwtXW>jqA9 zaw@CkpbiHROr6PYxs=89SD6v`BaAHJo#XliAW38W2j{*~G05cFB{zynO14S7EFauf zYfz7(SPhFCiZCqagu$1h9$E1g5sg*dJY$E*_0pH}`DamcP0aKEoKv;JrWDh`7WFA| z1Fr2?M31+PF^t=#=io-?BScAexG(QH&3p2M+X@>o1{r4Pu#)G!2=uzGV+hKi0T9K? zdmWvEx05x?ODhNGtlMVsHMy-E3`F4s&>%3U1OiPVfO;w@BhF+X4CvCq6de}tJ91Z3 z5A+I(wyT3#(w*ZcdXaCXv8AQdWtAm0ERdLm<8c9#p8dxPk6n$1#@vQk`c7y?4=6mx zsobCa`*bQ>EYkHH3h_cZr@s0>OQZr$V8P!opX0&d$wh{5y)8TbTJkUWb3<_6JvOY5CZlGrwTQ zcrZ4=9`Vv(-7}WRZ;l^Uo<;zG+p*HUE$>3li$&(x13z~ z{8P}{n$B{aX^gP0ZuZUf^+J9OzeNaYU%=k3h^ip}ee7xL4ZG!$mVRT$bLL!oK~KN9 z$x0SgfL-cbRp&OFF+jRcG5{Xp1SR^DN@oDx;j0nq##Tpd=~Sr&^~r)C;C5yHbu1Y8 z;0#*;n_F2acQYUfkGOJ946^7{{77*+LaV++EmK8w#}yHCCj~A^ zwmXrkboxkM$s>T}ciWg<;|H#46uCasbA*|5#+O5Z2sQDO^8o-Cx3l4?*#?8C1{d1d zMVl;WN@g#r{kl(^tT)vKA@xq6{Nu++aj;zLq0W?661 zAQQ=7k_PQ@J`A0Sawkp@n~GVsYF|dH_l|| z=A{E{Pc_xca3SFFq-eFlLgO>evYCXqoPvwnFY$h5Wz^4&eXT_-73MK#uMUh9$V@{M zPhw#~Fdjtzf`RNX8EOtcE*ZXsw}Re{_G+FZxCRoXl7_qD-884f(1J@;9Zp@W(FsOk z?O)7N1CwG}fjj@n88`M*g^|>27k%M_zDzBw$;Aj2m>9{g^PiehZ;JPir!Dr6?Qx^Y zE;(Nb?n#qTQTa(ee(x7Ykx-oC2Kl9VgSSSDywHP5O!sW3v87E?jx;J8WfTT%@e!+Y1#Ej4Sm| zha*u{0gheHealcx?aJjeGl1Bi_|{v$?-1@iy=h}w;*uSY)P<~6TAF_@$TcM4?bMK1 z5SR@#8y*!Zn-+YN{&6a9UW2C;%$hJmJ(|ZiN;MHGJo+*W_dWRe>*>)~lAOE|1wHO^ z^~*_$Bn2Fk8j7V&&lLm9#ubavQ|%3rs{St=#9Y5=3aN%$QGInP5nRlSa@KF#uj`3c zZv01OVt~0cf?jQl>yMNFmebkFPK9Ly_|E;#YATh7 zt)1+UA+H%-IB_iWdpXw|J|(lD?}pGHa{2LtX4#Zotk!KjcEhTqT^%1kin5OQN0!6X zl?>VwkPvkVwf0*a6Rg?^5=Rl@+a_#p+v!mxR+d;+AGL5F&Vc{c}pz>+>uoatz(5M!7ds}+8(JVw|t|7Jc=BaNbT61V(NwZEn zN3k4X{Bq6qbmX5fK2)jr;;qr|MaOtAcpfODV{$K=U?X#zm}dm^W={>}(fYcV#&R+7 zm-4eVg2~sjQS9v*5|WfL`sGZS^Dy#hX$-G2vB!I9l)nrs&M;2GL$cQjRKh^Hybvh^ zY<4z3rnIbcHbtcfE3A0>4rMz}tH5vNVHAnO7C-nQjvtRJYd>067Ey58&73|oQ<$0- zHxT1CQ8+t8-ArGkD&HeWs%mJ9kl%TKMLwFmQ{R=^s?2o^*@cr zc$*4C9sMS}PM0|Y0VXDX6A0=F7{DN4Xev)!$6cOK=jG*6)Ht8~hLusuXVu$!S&}>u zAny6vEIqC@_WfE@@uTI2%s}lop ziHX4y#Gqce3{HJCfv0Mlj)#tys#her!M~*T#=h3pB+mz@V9=HL@qv!{Kc5Yc3QJI9 z6mqkWeVuPGepHE{W80jgTlNKZYip1MT>3IIb2W7tjn(-I7mwFd4jX&JQv7aN1!^=@ zRpNwM-krj$I>7-CO+ccT&9Md|AhzGFFtWAl%Io)j zYZYb9e3k{z{ISl(>A86isWBy*rP-;aZ>E88M321e%vSpz@;!EV4S(5=E1D~&O%7;t zwOLpgSvPaC_+2I}Ciat#8wUi7{k|*stfwitAl_>a&#QU-L&R&eBCs~*mvDSo(C3ug zo@@5sRzVZV?584%v%u9Q$LE<-TA#3zwI)i%#0_&AGb;e*Pwxi`IK>}0k(D}ySa>?k zye;4b5smr{&Q4ti*@*FlcI2G+C1Som_NL5G8Z3}k%+KS;uASe&t>7BGS_IAzD-VJU z)%Lid*_PZDpS{Q|<-_h)c4sGx)->%f&^B%sXOl#9&(K?nQyV;9<;GvN6N#MF*j`7e zU%;+G(;s9RToD%#;F1ApjqWnHHnRfvRO=l2JVv)ezPH~V+_Ii}|0mq*O1ByshH zDm2a+=~gwk&^LTlt0TmGvG;a!KELZ)b*HzO?LVD^*_XSAXR}l54~9Fv+gxR|IJQ14 zbyh*5^t0aHm`K~mK-K?Kx{+>qc78cf5ttwjv4FbIKOmVm@|b5Xv$cu?1R~C~Pv%}N ztf5-+XtukM6J9Ni*yr>(?e!||GN{)Kai>)L7}atOEP_8a_!#^Q%gHRQQm#mFytz~3 z<(;%M3WUTj_fQeG0jl^-DPssH_zm>*1m&)8tu;?G&peB>1|P>??**2RtI*UrJb&-) zY4F(jJ_73~oDTnapUqcyJpY!}6X-ePe7@0rZOGc)1{}OY!PcuS&R~<#^#ACVl^IFY zfzL1kp9bdtUV_Wc?z7Hn=5;(qz4u+cA?+_W0HLj+8qelMo;6Sh-%~r<(kWW|c>40P ze)*~qYN+><)!&`oRAg_5S#fJv#?ShZ7bgx3k(tj`yry)S+F+MqIZG?QI5hHjI0BS= z7Cs4mEFwQeCd;xp+XiDx_5*!2{ApH&L*5Kt_s$~=0;}Q7f11*ozuM!vJ?De~ulKe- z>Mdv9`ytMn7*WdnKeb^aUW3j&`=Ut}tkFErAFW^sadj|q$)o@_xWOyO9o-b- zrpAGCvNBy0e8vm{_b6NxXr3E?auQ6}&1KTN*ukp|C$;+>_pUC-fU_E+e=C4}u^z4?Auh>kluEUjCp# z^rubTF+vp2cx;DQ_uDh@a}}TA@n-93>%LIEE&jCseWaMkNSSCji?@)gxweCM{ilrV z;mH-WuERq<@7{;a6=zy){bTUz9x6N$V`8q5_eR71$-&zEN%G^GISsqjl$%4;gkE-M zy2s_P51r}G+CT4crL2zmW>OishpYZyxvs;b zT6#`bI%_*$Jv&u{vF5!4w=8ZKL3fUmR!qx0ynD|(k}H3N0&i}?;mxP=b?-7lm0*0_ z$632z9k**5ZgL+Wczw*6#@X55vNpH*d-QCXyjKtYFU=h+j!vfH20sa&~o4)|<0k2q&)c zglnb=JpnGrj+Y0G9mY3o*taF}o>g9VJtQ@%I-tInyO`I7XktE#GoRPT8e46fj_2hL z6jQ??4ULhPgBWj22NIRn1K+2`?B_JTm%D8T!L_Tbe*^bwZSD<~;qOf4O8LfMN1zxy zK5DB(s%iar7GGHz*}VUBF$(Hv6Umc4>xyW|GqTM|XKJA0%*>KL-Kn&ZQ9{wCNI+F{ z1ySzo5r_a0nI)^Hpk{Vq#U!f2+Wl`%ZlQ8x(}8pLMBlPG{xAHB8jM}N>)AJYh;C@| zE{{bCxLsS>W$Ur2Zke^aYZ-3bs{dqpOtT6fXy4uFq&$0$=S$5+=!AI33x%RL6faL1 zY`U|$;qWU>;nnOmH^yj?DmX50+0o33Iye_KKVF;(1-HnwsM}go30_7i`aY+)*aYKl zH1(TySDG+4KSYqPJ{xrF;_eQ|?FQTTR*N!J)8p?~Po=S6Y5KQ1v*I2`*61G8J*ZYN zZJ!D-ohM_r--Oq6=roKiai4H(B^bFs@Y0ciD8*zXr4l+-ZHb4 zLNB6blR2DHB8T6hrK&yLQeNi)yQ9*jul70pN++P*iB_|yERgrtc(v2+$D4>}Gyl5f zxdy^rMO1wRVqXP}-Od4lc>%nmBi5lV4$}-#duC>J|-U~%yKh?t~ zaC3WlO*GG+Kh8Ii4w#MMmEED>O?}DPp5e^Uke8tb~~M&jYK5IF)2U`HPGNb{ienEV1m9QPx$=kQx&xv;X#R(f(`;hc1qzJ zOz+hD1j6Mq#Rqb0S#k6Sjr}?j?x?Qx{Kk}xR#3M-;z%hUjoWXUj7ktWwpAmf{vs6I zNHVCu!^srII|{t|2J~KuE{Rvq60{9CCNy)+iWO16)G?-?D~XnP?gA>@Nh z7Bg1%;rQD9z8o9>cTH1?-`>R$_WlAScdDpaa>9oDS`@{lyrQCFVH|9R$-;qoQg#3EnOB?+&Ldj%CW;hRL_CdT-)*k9i*zzvQku&xezq zcGjQ=`%O!yq(47*yfQuB``lvQcA>3VRM44h8+smSN%-JFb1=9~6y?HiS88n#lKex(L_v<-6IN1=JXAIFK1az^wkmO3jDW8s2II*PZ zBI!w@9g`=G|Do06r+8k>WLtKj_S)(^b`W&pkUM}h03&S`LwS2MfKT>12Lt_}?N(-O zA+Gw!`z#2^RU`0{N}5Q26lNb8TXKvj^PqL|{-R8!d_5B%&S(46u~B);bv!f-r>H|M z83z(@;8>4;`8)r$%p`(;UEgIjNLip5w?$2NPwfH`&y7$onPFz!Q|H;By;0U$6=YkN zLEBr7DNq_PhMlS2KorzxCCjK2-R79cK?C_N^HnXMiPAU5#(d$5j zWU40;LtEQqxsjnx_SaDq<+e)I-}nD9!5NILcN^$JL~R$VoYO527iX``(t{viCyV06KAIq zkz*fv?hqMK^pnZk|M!=ll}%P~Yquf%W5Ao~*Q-L$-@OBlj-eo{jC7JEJm~b#8me(M z=yA>@FhJ3OZvGIR-036r%B$8|kwix-Po8ZxkdDmzpr?fy@nQY$HvHMA^YiGL@A(fO zSJ%c2RPHYYSGJ1k&9$S%ZX3{C1e)OU@Ii+*%XZ7dAInYl`G2Le_SC1`5;HwowGeG+tPMl5YCjM^kJq< z^(J`+Pf^bFTdS@&xWhL-{_3EEbpb53EphP1P|Vj6K+yiyw67(oC@D1wyr6W6{m~hq zU1z(^UcaCUlGZJCfxwD;Q8a zmRzZ2YU&=X_IgM>`zS7G=tlx4Gs5DRl}o=3)&5t}{q&bAvJ@M01J+ z8Gp$uD;u7x)V3rdBEr-C7X(O1ctMFk=0*KPLXPw0$u~Nn8TG)1%IyS>!d7*%D=V0{ z3FNkfQkkcK^{&kbnzp#EsC85dd$()uuGM2O zHk*7~t}7yWPKLtmw@42r(ry4i=Ca4kG>cm ze!(>`9p-TQPia+Q=~)mLH^sYOOBiV+s!;#jvTToK*x?06`U)434* zMf3)SOJjz?0?&eNL7qW%w%Hj3d%gT1nXIdPLeSVa`CpH#%l9$H!L#O@@6zz$kK<6d{NhVy*og(2O&n@P2l@d9TTz}^%qoXOXp|>VF16zg zTu20!5o{Y*O&RPwsV?Y`!Sg2q61>`c51r|xxTi9yDxB8CAn|<(2}^(E7sf2e!1(x} z=W5KJ$G1CW2WZ8^mLZLV2xbHfvVgED{@yPiPeQ8xeN+&?Cmk*?TQC?mxc^9`xWAHz zr)8T~D`=mIqgacsFy%>?wvxL4Sb9$-g>&gO3L<5wB7dhpO(fpv&u?4MG(L9ZnezK+ zW}p{VIZcsrRrCCA=kv&1fw=)G%{uO$DW*(sLG?=`{m4GMb3Tqwsm7u<$Dc z4prxr1IFMwhHFfQ>D=q42gyBHIUJX~D&PZ3*&%+|vL6I~S5d1P=RWwC|BfXK(Kd`^ zRVNMjqE--|$y?j{#V1a6NdOy;ApuE26R&&F|0!wck-l=vuXOU4ckvT-IJ}>w*@bGl~P1`sK@*VyN4)Jpjx@o3!Kq`RHGLuQfdh}&=KqiQPjXcvSx@j!rPd_O4blx?7&8N<ax(JGv ziIMP@!WFu=5*mT`ZMs@1_%>$T_7R#>*I*PjYUD>7^heXjp(Fsk)_IxeZn#GT)Naze zPoJQsg{7s{;t|T+)S@-yUx&?G#l4BEb+%kRam$GV6_SmHARigEkY*TSH7+f`RFV(e zjlGngF3^eCZ&X>={7_F!V9|doJCFouusYa>B*qZPs{`$!(J~J3BWsMUUr`Ad44z2KYg( zh+BCHNFE$7#_#(H*0R4~R_YM#9cGk&aw`^uE~??$l5q#y;;h;dlDgvbMO z>p1ng_-<)#-B`I>HYwj>K+$`Y21g_%+|QDyMzJs4>;!WUTbTCZ>uLXwIznh{g}GVk zch>iT>U6DWv$3LEpt_09=Ueg4lw}=$eC-ADT&E2(#dSlFZ5F6+U^Nqc;xX#(5v>8KO#&N?id)*`13myq@pl9XKSm4TR&3dS2_xmg zbu2W@fWEi$!rF%{=E~qv|M;0F>?~5X#8ymu87IMy;%dA<{3j^C?!@ufI1@ztphEpY z`v`Lxa(VALN3QZE6-4ABG$8`0C~00?;{H?70)FFe$CmYUJC+3ZFIvd1%PMoB-48tp zYx03Qjc*K&W*w-Q4$^Y2X@F??S=hE}NaPvF+@%*e1_b?VU1hK_71SvVWIyUWE_eMFb5;uUEF9Ga>}V1M4O3zA6?)Q>g|{5LcyOYM`!B082iKN#^bP(JOt& zD3f_n_C4L@ot^oq;j#Ziv(EfaR21^kCLhD{^^TFtuc3x+&4@Lj_3P_MlmB`A=jBIHEByS%0i%Ib_w5XGTqBw3f!s34We9 znCXF#=^Ep0;T^=P2BkW`3E(On)NlN`yPvis{Jw54-U(|86B`FI`rQ|p?MrwGQ3E;T zm67I^BoRmp`40w1euUd~B?dMTGf*lp&Fg84B+%)0^ilNppT0r9>`eT5h=|WE4uT#S zcM~4#hnOztmIh`U8P3jC_0G$Gs~>{lex+pzdnmwJD-tdbINhQkbFg2Xn&K1gB7D>% z>?RypC*h;gjVGEXH(i?txP@ol?)Kt+8!=C=5>=Z{3=+&O2htYUB?YDR-P@l^F;QQd z>Irl0C5RJ4gldPBK7IJdWhJ;EudnHtg(S+y6q^Fuz#IGv+6oAPKqPyFnAcq{JY_}O z&vaLhotRR{>oY~z_at`y|AKO2=DS)!D6qt>GXlt$w*no>8%*^Jn6Oo|pt-RiK^|gS z8v=YdT`4hS=Vv!4<2b8t_|>?)(;H|r7?0t{KRz}x&{TlI$ifo$uWi4x0RD;1cg zer_b=n+1Jp_z8roG;jefL7EBS#W%o1OY-Ypk96v9rb1?;F${+*A~1VMxZt3H1ft2j zZEFaqOwJd<<6r-w4d|&V!Vh*%dV_K+TY^!PbgVPgWvyX_+xP_sZ533ypo%w@w6#qe zZkT2?wE1?Ae`Y!V6ltn#CzccXy2V{)Sze$1Af8xOQ<{!HIL9GWRD#H~BTPCvp+?V& zvsI)L2zH-koAH@LZF>nnb-(3t*+??AYI-F+5;CN5;~Rp=1(e#iF!wSQi40xr5M~De zm?u2&qaoJd=SpCOrC0=8gTfr7fjC-0Njhk0G3U0M%fhO=Ngs9M-$Oqf%yo9IpCJHJ z1ZN1b@3~Vkw6Zv|5b0DSuN3y7KGe!1BHXqZQD%F?Q1wu`ijroJER!yoAhV%t>vpka zX5|l@1K-62&H)rC?gHp{r}AA*#T0u9a{|+TG4@WXL3lfHD67a)3L#42--Ll_<`l{j zPJz4|64nXGfxITmsa3*v|G<4QzAf7%{tp8;rgF7ZKGt`Srn{Lq+&$Gc%+C)mrl7o8#aw%UG&}Me9t6|s3h}Z; zU9u!>#l(=JSuQw7F7E8WfR*Y|jvcIww5)MS@P0mu*QgYk-g#xK{|c;}jDtSMgPTRG z+{W9fvpFK{d)VTg79u$ksA^yidMKut_;f(XE8xr24gMfuhrT>S<(BZ<)#2kZ5;*G0 zYbAQj!0X>qXS1VP**;U&^wE50^VPM0B$zfjhB-d)bUv)xCYwB7O}Wt ztT__|wYnU@#T8~9ef@1B?(C2sjysNO++|$g%$BeTXV*K}a(H@dFkkDBRFzBbGgD?2 zM?T4Wov9iS{_=to@y`vx7IeM2@mk2>HHc3@aM}eVsZY`MUgZDRJbnmuYbbDQ=mH^f zU0AF$J#F+pZaj&3IT)tCQWCgPd`!!}$2&eetkHeF(QQml{`460dLf|k1{poSDO#hR zpBSD9mRky!U-o@&8LW<1(bV6h4#?RY`<>o&8_K@nrHDM&50n{f8Ml;cpcLlf4Vdc zpZDGM%t&T56Yd@szTtv-zanC)i65zR5^dWtbL(%gvo~~^?P23(NmjL+ZP8LhV&oyaB<(@(H$0BtEzM>jG)?p3U3Y~uWHgQ%t+0b~>&w?b zYgIDI2yTcR{8m-pA_@kkl%v#I;Z`QMb2gO_<@ zc#a&O@(9xz^Si5~u7OT2Z6Zs}TCC{reEp-&lZX1*<2`Pbl_d@ABM6`T=Kw@Hdoeu& z#kpguh;l4~}=6=l6;$g3oP8+;!8m9f5R->Mme9o#`JHAXl`x%P~@Z6a3fk(tr z*RB2SVJu3ffb^6GPfJB%+cdE0<8j(DU`Z|{(QycPGwY(W+C#G3UrUMlSG>6p?7pp{ z5^+14W2=n2ZoydqWP8!3nag=8G{b!CuQ4XTYie&YdD`)#X9yjiG$m-Gj{;7e;5W`M zJ&3>Y`w4SVm8{gSQ2IHPPTGnz&h|^(L;|ypb&EVV&d3PA2mL#p;$G!v>#u=h1 zFkIKgNNibZ;XL=}_4+&RY8yK8@rnkI&?pNCd}R>!baLo zoKT|B2qX6jnxQ>%gH|l+(DZqM&?qB6d%43j<3thY&-~r*v0#=x>=g5?!C*xWK!~Ax zxc-#M!l!yiIP=w)pxO&r)xVw-YWbL({V4=yl4NAXp^dklzw>h|oV$d4FC+uP;8<*n zOM`?)Le9SiFtds~TPk}6RDL-BM9v?e*u%_-Z)v%S#R^vAi&Vz1k33FKufTVA6Z402 z7m@yz5i8EAh!VNUcpl&{YiIQ)MaH^oG35S;yww1HTlvL26c~hwA_ur<&TcW z54S_C*N5eouht*p`ECYGPYQs|^+)Z{q+g(Qw>u)tpZ{&9^ zPaHJ*PM*hXEJdq+H`%mejCnT6+;OCLF3XHGsLaM2Nzffl?Ix6qzQ;zDG_#KCiqp$v zJ&_O}%O7pEV1>U&;PTay4)EIFIJp^8Ck(t|zs;Dyu2VvW zpdRibc@u0^&sn^tZR>nOz5dn@*(AKqno-7r)6v&!o`#?uK2o*1OAuF4$wfvA&Lf<= zv7JyIaZ{N7vfkGy!gRU)8B=-L_i~fVkl$l>JL#g+yq(0MJ-hL?dj{Dllu7P@WLv0L z1ea$mc|RJXTaYB9$6Fh;J^Ks8sz-}*h24}hb(^+xv=nr)zvhWf@XD8d`fY(3u5PQACn z^N+IuVG%`!-q^^`rPN0PdLBBSL+mF_tL*Cz zl*q&1xnNp9bS-D2w%_IvW;$!y)ZA7UGCv?h@1Ng$^PsLWN?Q%qCbfJ}8m_XR_6d{G zr=Zn`jX$fY!Hyy#fAEFKdc_lQpmB`T5ctU89wUNA#kd_X@$VimAej7 zZs6vRhCFWV^8H_{{GDhI!N$jpIT^Y)aUbFEANxZN@+ZZf$4vRNp*Kz?SxrFLAt`Kk zo=~<)zkK6(nY!FYD9jY(&*#1l4CrrNVcj?+TQKTGg5X-g$>W-&vJiMr9oZ7|Ktm-F zQ<|0Zpi5S*7?PE!W)Q*^n*q(7EqIjYtTs9NZ6|Nw-c8?`r?hI!-`9i>r5N1&rb zIBT7g7@r^~hgCi*sth(h8>_fzXXGA(rnYj#+|g`x5~!+g8kxDd!7_L=?x&oR5_P=e z{jrRhhaEaU>rCq{$5B~%xnU>)@IN+fjAhTq%yW|akFfYv6EP1le^)KvbjoY&>+WcK zHh`f{JYnK&?A)vR<3$LY34v`hQnXIfkvL^*C8Fh429e0RW$E#CMUqK5UQ;%Fzvd(-yA}?>j^gcgx9Zrp*&Nd;i1gq` z>%eB)mNaYw-7Hs`G{GkM4Rq@C`>KNbo-j<*X7KY($>ICly{@JN215n3L~dhVkXmKj zD|X|Zs7HxkE4>}ld6}asvY##DTe3x zEqU+D1hCI*Vx{lXt?g^e&H{-}++LDJ@_jDJ1KFR)zki%zje3GnRM3C||6$i+vsF(+ zuTNEg%xXzSxb2fpKLF?5+|p1I&FM%Q3mB�nN;H)j1_2ToHG%wfuF(@lkoN{Smwf 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℘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�;PYj_C)T}Nq3Aq*WL$1r9(E7JXOL>za< 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

    CVXq;caOcTNyCBdBmUdPN3|t9AP`* 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⋘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 Nc)I$ztaD0e0su!y6oUW& diff --git a/app/src/main/res/drawable/libraryg.png b/app/src/main/res/drawable/libraryg.png deleted file mode 100644 index e7f185df96e3de2d1bfca7ff3e77ecf5135e0075..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474919 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

    dILRJ;JMB#S_*$TEI8G)Vz%5@!nW?gHd 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 z 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%0D7KMuj~KmA5w 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

    !@iI=LtmcRG?P`b&kHDJ6GjVXoMa7v{ zU>Dh|cdkS2hE?gh*ProU025#y1+cW%h8~F(r+h>ruyfM}svo_@H7v)R9-4Aq?~YFH7n38b*tr7r8rMcV6M;8mpOV<~+z~b(I(nwpDCHgJJiQPtL!``_J%9L~!^>7kp1A8rGM-hC!P*5bePXKU1kG`pdwH%9= zuf@En%f;G9`O$08S7_CtHFULQR7UA}^j-#U)HO6=YGDs8A}VP_e%M@wzmMZqgf9n5 z0&?x*Sz&?|9FVsFRIl%f=Iy^mxNyJ_gvXEWBj9O_80{$LV2RRYE5fy8Y1p|q!PLYE z`bMVEGcXft7O{l{cM2BCR1p{~2PP(JSTTPkmd;wIIQn5IA|Uy|BOp6>?!@lhyI-1M z@hIov!z)p%RxMJ9(gguozI-{xjTgh+i;3|ZL@f##bnNh7C-LC!O;Mrf8yHc=PzEK-R}_=A)6>|K zQZ{U<(b~0hFD4D0j`UPXnbFk;DPv{P@8?l)EnSAlPX;%gqCqMYeCiGL3KI|xG0{<& zGk&qs<;d*tANE6p7q#CXR$?B9ALqZNP~GJ18I0 zVe8<80Yivf)~$x{FrI+_ZgFL0OKfSwJ+CHa8sho+b*93e#@8i~Tt$VGwxYsgEwmB6 zt_9zr%zi%2zj=Ozx`ryAJodrW^CyU)XpurC^&&F?uG^q44CO>v_#Ww20e%eW^OTp8 zXD+3Z_D_S~!6s?^t z)^x1~Qq!`<$d#VH3MsaGh=BYdp3SR{^TglK;1Dd^wil(!Iuk))qOVA_zX^^r%T!ug zD%LNX4;A{|=f`3Ax>+N{wk*Tn-UQObeJS6=cU$Op-ys!A%RjUIzTJ1;2CypHM1 zrl8w5?U0h8LUE_(h%EW%^W{Uqin~}OP){Aig>m`H9fSr35&2D{@)U`+i`EJcR_}_H zJC+k6twSV2^3+ohcqCbi6nVLpDk)X$wlolOB;t|Rb4(vI8c|`23px2Hh$5XUDOuce z2L_j^I*lu1=*Xearb<{{+Ymb122>`qk&&KR_{bF9$dl;pEo7KGXFity@oID{H`r61 zg%x+=P^Co3UFKwRZH%5i4b`huKuV?>(laGD=p3gad^unO!g6~3!dW7+qYx61R{*{n z+y$e?jY4#M3K9~Mk(?NVlMaOKK&lqpk2vG@7oo!0^J^729$DVGd&D&swR zv_r9C#YE%j>+6f#w{MF%Av{!m=guAB%eYFFDtPqh5zd^sN!J0bTGxSvxdk2bKuTIB z9E+ENmVpIT0POjQ7xc-3T#b9zvT^0NKFN$&nf( zP0_1sM2+^H+io~_?3#!hci2{~RR*&bEr64&6XN1BsXofD(&h#C?s0e{K_T$BviF}F zHEW|&x6a7S%D|yLdq@FJ7Uy+zd4=^BaB^}&VxrPTANM$`!o)}e5g{R1xnKzn?J8V} zVuZekhg_bHYPD-YS5HRY`4;l@0bmlqO0A)xCQJ;~VaQ65t~z4kQgL+Oer#E@8fQQlRT>Ue7lp7p>ULS-PH$_7YMq9z2n(CxeC)t4I+3uHf|R2V^po}h-R%j(zoae zQ$8h_2yz|;JrBf|RV%Q2ljQE1-D~rFfc!{J38lQ@3D-Gv4G}I8`F}o7J_sy_lz%Lb zDM=}aBgJUa@4sNz=EFFD>I!aLbSrQ);7zc$HH4+LgYeoTm9>1Jcd3#Lu_v_5tSp2D zhhyI4vDmU(<h*nBb7z?62Ki6Bq<2=_oKS}jF?=W8?L48(XL%{WUDjz))f=Yi`m=4 z*1;Jz#VFX?!NH{jOwEj_T=-Mn=?Bk;mq_+h;8LO#%!njs5W!_rKgK)Ne?|B#!FjKx zrGi^mZ{hY;cg4{UL;wC?!_3S~vG@7ood}4BhX*`8Jzo+K(hFWAAUAK`ME&~p1p#3) z!UUvp<;vn-B>`#Osy3`FE%AtsrKV@XmDd3wLc-pySXt1NtH4-K1!qp2#jJ@F5a{=6 z-4O=+^bUF9LHF3e&e4t<7*fJW06aataQ)JimkqV9feNaSqQlRYy2Pc%t03^m2zM%T zy(QM|p#MT|DG)h=_>{BLr^fCH=FORdTbHEK4>q6b`dxR_Y19lFa!HZmx`}%>^$pbE zNs99ly8hsf^CC*Ezp8~Mt?NTYEg8W93R{$1@b`O0#3PB6U`Lo)8dCbHDAI|d_mL_+ zRx0#};HYcn;O-4~oIiaQKEBW4@yHt&P94LZEo*T5$}@O9cm~h=e(-SjBQod>uZPd` z^vLqJx9Zpy#a*1{~Y)Ye}rzwWCUj&82@5xgli79yCb`MMEOvAyQ7jfzA4O}{N zox)XIJk8+>h07Et4wrD@U}x>BIh zLvdt9J|Zj)3W5W}i7@WQrj;wj%IQk*s35Od6A|tM zm$KzyXkrO9HsR6CraZrk>lbf}>$rSaI~d`YVZV|>sEIV8Fus}-QxJHxlg$eG+usOE z5;k3Ma5ABCp^m*%BC1fBS&?7@;_vqq`*&@|w$=MZ zxop?9KAN;>jfeN|h;Pe{K>tW0k++bT^a9P=b`mCn1uEd55V!-t)Jy}B5pmeHX&q*; zdvC9Jq0IBbjeiGjHy*;+R0}ogRH8g&)2LT6$?}syWu&yF47ct+z`RN0acJ*$F^U@( zorP4XF9mg*mO-~ZT~MojbyTTc9#!jBLyfu>QM*xf)NWV<6|0vfGFb){s+C5Sn&nZy zSxw3-HzXwhkzuKbB$@N}d_d&U3%-wiQLa)oB1AGVFC~vmQGB=_=X&Alxzjjv{2*c@ z-;;4Ez#TVUR8QTzeVy6|bGVi)Ax3g}u`tF*sy2)82}2?vDhMC~!lNLGuRP_WMnfmG z@AeJMs7*~y&VX>KOY)eUl10C>psk}rWW)jGtCU04TJ=OnjJigeSOdq$^C6x;^F=n) zs7q~@^fLySHQc@RP$*K|_yq=f z!OFG-HAI$FL2!=+`@I*I!$Oe}8>*~0zPt*spN}^wXNFV>X$!?m368h4%@LDC2_?!}VCcAs^ge6RBggfiOfH!UJh*coEB=^;^C#SiWbr(Yukh1| z(fF!eGnm+wfREQTp(N%8Pjhj|YnE2RtQ{LEqwprU2a3TT{R|o-7rX$;r8yiaQdKXQffd$j%WB<;b!h=)T z3x)Q>*HYlTR0d^ltFp&cY$=VNJPyLy<2$f#$2KAfhoEn0gyuEMAd9{$Esec$WeM}Q z+~By#&(m1gv7*XL`26DVK#xel?CJ)DoCetql8lQ_}yF{!oxyI*^D4Usi$c872y1% zYdM{{mt8}X2oG&D(&Djm%XTcAy;i!0P_0fy4Ep^yDs$|Gj?0bY$&5$kctN{0i{@be z_A}zzzCV49enUop7cg}x;f$MC&b>xL7}`2nXxF8O7?I4$Q5R(GW0jka2_8Aq(bK^0 zt$$+e;y-Zi*m*?dAANWOtZY@_TFRCPKt;qvKSwgjt8+;`%HuM^nSiZ>tzz_4x}Haj zHD#J`w$Q}&Teq-$!8}|%^$_8~l9t9Mq>Wowg1wU!z8m-}I&^J^3RSDn^J<`J{c4Dg zO%jW4)oR!bjoY+C{l;~Ol+;6w`gPH?UUj7BkSwalQ@WFEg{6qOcz)h5aOc{6s`t`F z53;eTE|m|-G>Wr?qs9b;bB77b^$X_&iLs<_Gd9109OhB#?0byBU7?MsmdhBSiFls2(;mqzuogn>x36>F| zk5JjPbtp!%T?3`dRTT?po;h|3z9gfpH)!kV3A1oDb)Mt)ZtY|dJ}+>)%Z`(7T)9aE z4<->Da+_fF?Abw#axek$@$nG^q;ccMqEO$xdsnRH z$S!y9-@lKuXK#yw-MUR3m=nA6ATpDZks}ldeG?1l>#GXI{`jGDm@|Gff)wj{6b89g z2AZ{NM+%=lq9W7bU~h^tm1-g>IU4tGOB2F_o<|`uA%K*mXi|bS;b3bCJzaHV=J2Y} zRAEp&nV9fu+FRBv!I`56P?6$mV{0vXmbqaRE?l+P&pvyh;R)9{2n-0qv=Kvb=gL#@ z9wlnluZl)3nvg=TMQN4^UX@x+J)0C{Z%q3AMH~gR8CSv0ZI|m1mzG88{zuA&Xjj%MwgUyz%UAT&g!+wUR`+I0U z`M@5^OwIIQ?NAE3`UXT8IQ2M4;0j$+Qw_z;HQ{#810x3yzFN37ypt6>e)X;K4iI=4j24$V=va!FJq#j0xUilkgsMWvdhN!dvhqelsG*&;*{ zIeqGT3!Z*{@O^FCl1^LpS1AJ3~| zNIp6;7LJrpMkHr(i5Vn!e=m>T1+1W}Yid&Y%fOxM*Rgf&G6eX&PTF}gFq1VS6IIl0 z)QrkpY1&s2b3vS3ol&iJ9U^cCgad~(;(zyVdElAfZ8$i&z_FMivejgyAQFk7z;eU# z!;O4OQlfCAuzk%kbnO1!OXAL?NQ24>e>*#dWz$A=l?3QyCu8pXC0M&?+e^`?*Q_iC z4jlz!6EjLbI!F)aQ5A|Yo;~rwq8Sr$?zo${_Ls3gpv_m^VQFJQ@sYv8(wc}3;PvR< zYb1opy!-8wIJW;F#Y-0ztCXTLNr~_YflWGi-j12R3Kqe**cLQ$%`Glq?yi3)U{*IwfMVsPFV7|Effr3%l7UYIy? z6mDPj7w2>h*!v*Rt#4n99Qi9fvn3HwM=IAjMBt_JYoMiqojZ15&$gYgDrQA>kqhM7 zGAg$`QU)YvWWmw31lqQ0g6j2~;NIN}NJ~$CnKw*A)HO4SsFxI`c1(tpgHt@x#cE){ zQ(v4tc98@On6qFydVJd(4O+G$lG+d@%M?d3I}=1iJSniA%nyF{)r*&5YGH#img3L0AFHm{u1Q%xqM8;Fy%z}_l7PwP|^%*9sTwcUz zy{-<-NQO$5Eh*~D7Xbm-yZr#Q%hyr5LS@ny%#p^ESaY>^Mfftn?IEwhbmQ_3xZU`0 z0>YxpBOpZtBo}fM5MJAYk(+=pauX1)0NmW%1OeeWAP*iqz?m}&0@AuR%*{>V;pK(o zv@AH4ERRx-me3$Y{qlKMgnvauhRP_IdII5-v)#6*+6gBLqXNr^>jQUug9li}um57UMZ!y~s)Ma(EIND1oyYcKpv z4Z5aWkFL)q1x$n9kxhbm6;nt427jLWMI)S@0KM>Xj?s8;91S0Iy=7kwQKm>8+!;-y=dKY1)Exi1hFoFu-L?`__( z4$4(2P7Op)Qf9vqrXv-r5_zyIf!OF6q>~oZtW7I4Y*-7GYgeaqsER5zs*4dWRn;WX zbE~bFjhKiu#6@RPm5Jxkd#l2U((wQo*3JJm*CPaj~)3zHT`JpQoeOpuVCUvMCl% z7}wHbxmJM@uXS_Z8*?U4#`((^uy5M0g}Rbn603Ycr&#zWQdCK^-a&PagYY#LojM&7`3+p4dHR`Z)9&*cY`L zG=`q82{g5J#ArimYNn{8SRqRlgh>}=D^x(mYSrmk`eKxpO--46vv)#P)(nYU=$o0s zrBrFOZ&e>EvP@yZ$#``C0hOsV)T&>V>Y`Wm7}wn_Qzs7X$L%W~Fd#BCY~*m1E#U-H zTWi?ZJHo-G49Zom03%~#62l~t$wV>I{3h^7$m2(sNLF;=Qo@zqBd7O&T5?c?j|=6< zbHLLl(rB7ubeBiz>$hkIJ7-5EBxZ_^lER>@ui3Ms=!|4DNpoYkmMR15VvbZ#hTz^U zPxwE51V@*0aCA1O>x$&+OM{YtT)%W3ZZ}_9!~9)vKTMxKUlo~Pf@Q88~lCaarfp$m{3Ns+g@Jjn&)q@sYks!HL2l@ zgr|qM=v8L~K8wJGi-&Ra$T3nx(qZRd2hw%uo>W0Qon6bLZsV3zk=T=Zm4)n_3>e9C z5FH(b#edAl+9gYI`s7(0{cA6g8mX6AgDSMs@`GKk z%Cs~{=_mzVUAZvxd0)kr->0jmN!wH$+`R{@7pz89xFV6>0M{~xr2JTb*JyDqWrr@k zdeXPFMc9jHVidsEK?~pZ>yMJf?GZ!DBu9($n>&SgqO_K_3hvyviG|Z=ijg1z(q)Z_ z$b8lFD@>U>7LA%Tgk1?r1CS!iB!+S#z&`-1=g-8EeS1;AX-gs`mXx<_s>A7~Mrm$^ zn)RxYqSFkOSk@lhKs5UiC9v}0PI9P9vRaK~A}yVjXKExkUIgx$&!&G*eV>ZTgV$i0 zwRkDIfAck*%T|VS@nR%T$wbtm-22WAwfOjW zTsn0Ws~65D`F_3YymSRq44X8C6#cJAp;O1b+jpqkL?JT5S4_BMH_xeQq+F5$S-D(s z7@Aw+iH{qiBc(3u7$W+2Z@Lj_PsUBQalLsLF_E#bDrQTHrY0$_+?%ci*OGRq)2OLf zRFp@#{QaJjZ0&{T15fz)dEwyBoj7;&E_^*+2$>*mkEU&_;m6@)QK~{|Dhr&KL|9~+ zNQjHU#j_{z=elLMcQX*C7Qhd`4#Y1*e?&5st#nd|m2QFg9%D0on3`E3GR%+Ot909x z7luT9&23y^ZfPmx|5E@*L(fo?$XgJGeD@7r5Q!@cwHg#h`>ySvt(!&lodwzuN!KL} zT~%F+M44B(r@Bb43U5ze+_-dCkb;(-TEN1}S}0KbF8*$FV;QCG1-7 zPE6yDU6841NF*aokR0x)v9{JlMy9$T-lpbOu&~ib@lxh=KB`c2(ZqPJ$6ugx=e8uH zy5ieDc6ltqrvs%47SGqXcJcg6^HMFUpPIGhHeNwM-a!VGvd!g($vAhe6|=WSg(|h7 zu8}Q9Sf2U$z{b`Q#T;ztT4_EUUtc6+pFcQ{dBC0t$i15d>uv7?7Txc^FPa0A2RsLa z=YOy#EF}Tq6^VQH>;y|iqyG5uV?jWgHf<^@fP44uiE~Uqa+_eaX;W7a5S}zn`ZMY^ zX-4PHVeYgk2zvHk~rlCn`cCX`JhhY2C%R;6`sT1r;g+FXT_Bj2e+HIuzBTTga^N_xaLQh%9fb7 zd<6#d?}HXyx)bSYkE+!x!N%GOH?Q4-kLPogDCdC2Z92fv)QIAht8%9eFQVr0z#U_L z`4x{JO1-W;>hb+Ay)a_(6q13)bU+uG&?H4)Mf7fS&nWkhvYA+7LOk^K^~B_UEgfC4 zLN}l16`lD#ywbW%+dwQ{S)p20Qp`i)_gEUyU=nioraMy766ig3#ia8zg#yCfmC{n< zas0p`_<9A1Ue_OojYN4OQMwk6!h28IN>x##PF2`BnTsCRu+Z4tgF6KxAvT9(&K%vm1ya_4z6VSG8W29xNp>oZt$jM5> z{X6b>@;C(P84=WwI>XAwoQP}|Vw1B`y-F$Qo7m!!`&m-#HN=EuCSF{zy5D*vY+N7Q zI|nlhOR@e$LP8uI99@MOLP(Hg>d4;Ej_%!!Rr5CE>bV=jGu>04U=b%CJYi=A&D+(( z(v2%g1`LtH3q_C`&7Bq*nW;E+_#hFgIby_6TMw8re?B_*>Wc6PX@&ayU^m=0cIG4t zsyKJNV9#;^Pa_Z?=a2T?I*Ab}PQ!m2yehnrp&BA0;;?b)PQ}r@U_#fteSNB92B1=n zdU)h^3sDi_RF8BZ+RSxbI^~a~?5Jv}Av!7+ZnsYh65O(53s~FOl5#J7FMqPRp$1MI zJ1v|%C{d?zHB6Z_4l-SB%1<7}kX&fzuA7wLT_%4#=~j3uqldnJjYLE^Pm>ZdkgcVG z(iZx#a4dtvf3eGMX;ksv?FYhXg{irzAW6~)2(V}K284wqqFm(?M4a0}F4qwqH4N^k zVS>wMRkyERf~}(ydJp;yzx?nm%)!Z=fSO3}rGcTsUwe$o z7vaAL&SSYOhve)UwUHi*qkkU~0r|4#fV^{U{I-TWx01yfqul4M@|4sV@_HY7RG71| zdDU{vnK%(a{;v* z?KD;|*oI}ZH{j2;2eEg{aSBJVcEN5O+IdC9#n1$BaM6N|y*et>vqnyxhoQrVpqQN% zo|6)vkw%SeMlvbd9yoSjmzY=`8OGmWh6#TxL)|9zh@hk+IXRWSTWYvDIk~OY(A1zK z892P>1a@uODCR^IhJ>Uzs_gs_7n4nmu?8J^cV&vx-N-~8zMgk5bIk8};`!!z52Y)b zp-tDiqIX-z&|L5Ll*QF;_+KyC->mwyKg8~x|N!egzWo3XDVr<&BBjw?b&^0i4*?TDk zz9x$ZPdZ|Wl%x>ZC{?Z;`VSe72F)ufoJ z(hO5Gb0j4vBbwq)PZ#qN%2zH&$?G?mLVV4$rE_dB<-bK@$!@PD0rFyZ}m+%z<5(GbCr*+jC^#bo-P z{RiNu5rc%u&Cxwquyyqkya))U_-P8SSizB*!h~_x>5JHM;DDHGz$*sJND=0(Dsk6v zN~+1jW}si^AMkCPUii9cM|5t~2H&;sMf=_HP4jQCY55*SOkRPB$K2I3vG3d=3?4Za zaq-fqhggwaM-3^-aag}(F_z9=fbbVU*(%mpxM3xg@%p3`(*yY9^FT!qJ6(MhDsM-z zefCbyAn;N3yH$6lLX>ibU%%40O58d2^ zXt4?Q+w`R(d_Kr|Td(9hf~(&zO>W+)HRgsacfv4JQ}#6QR(W38*eRjBMhU(qJ1Y~q zy83iZ4Vzc)Mc9kiGmkx>4ESv{I`!xdeSLi-k%B3D!YHG8@wW<9%i_o3<597CG2wD_ z#oYNgck&1_($k=)Cl?jOlhAa8hNYuN|AAP$`v8Sqn7()oYBnq(2n7c=yU{mha|kK$ zWK5n%bz~F2AcF;iP*P&D;Ce30CNj#OkF%t+*=UB z0)cf)=EK|bE)0w~&EKsd<@a)Wr=|iyL7}8{7u-|G`bquf*g`4kVBF83aX=ypAUC9|ECyb`| z*ekB!Uhq`x+PGFM0;#Xh1VlQXPJ|~tO-hS$m8(J~mkVW%)wRq_`X>6$#Ka6S%pMvP zh??~pVG=3H^A<0}fMKIy^oEWK|EInP3yGw3BBhr#rw;`8EOSK{_~Zc*+=+O2_tiWk zB^+F}F=5UURI6Q^;!pf4GhLK9-f9zxXBU)1#{4L*J+|)}mdu(+N^P)sHp>TlZ8I^| zg(evKjHf2OM>9AN5K5ou@jO3-mO70vrD{+zJjATcUxMFfP`sR@Wk zgPiJ`@|CIxqFfjr-VPD@&!ew}e_;{+`;giaNmdny6!=gzQEI1nls-$$ThlYpL)$Jr z@J*kAh>Qrs!WrY?`QQNzjM)rZaZ?dKTL?L$?Z>ik;OBj;XZ=@@w}mPI1vN-~DF1OT z@X7+J+q} z#Yo74DbsNB;6bEPL#oA#w9&o1IGaqS26Y}RAUL?VViYM>3)ip0qV=mO(01KQ+Fyo_dK{IyFkf6ZddTeFb13rV3{fI1DEib>!W7P_#sHW1!l1d-BHgPvA8R;}NOxigj` zA=k>zHulaaThGEBrKk3|vYP z8!7*E#m}S0;)nj_PdFF49o>1w02MCr6F0FAEz74J0Q6$)phSSH6-9X_O~B*Qf>~E;<xs~&OI@+9P3z9J@#F7(@WYUi7%-?W2KMiT!GrtZ+dkch z>}BKmixg5a(?}k9^ehLLE?&m!MYD0^qPOtE#i&ucE?U&6h}f7+(ea=nhN>iRI;c>E z5c(nz#}Dnr_6^G@T{P*Pqw(#4{;1uggyPD)NQwvkTz62+9gt}iEJOcKaKAx*a*!L< z>N}%;lNLx$*AOO3T&_$lEn#S)kD%vI1!-r(s05Q-Gpd_x?Ciw;i@@iIk0-g#_ln## zkP__lLoU~%dQv9N7g%qT(f;dR@Nf^t$wPl3Dk2Wrx{}NM zk5QhA@Ck$RSMvJ#;b0jpOvm|LQFtr(7Q88;lu9LUa~D7!!qn2yA*C!Fci3w{A&mi> zVQgNp2oG+1k)kNM!+WKuN(G;?9TlpS$EayD#7IaSDgR66%*4@se~F$hCLp}VMOtzO zVxm(K6`4wka~4XKcR`~DHPN6!4K$=}qeivRq;VZIYf=Zzo7P3k=JnCCMFX^M)kuV@ zHOq+}*T~3h#E~MyqX--oYfD~KD;Ybs?8S;d79lC0MNUJMx0Pd9bTrR_oubZsQ(Fb|(zn zym~<_I93?yG;D^ll}aF;v{7AsGx6PQ-=9u|QJ8iUINMn-$jMP9GFA+>_Kspbj-Y@L zQhNCNUYUI`UgevF+gG1q{E(mE^~ekQhP?W`;zS`}CFE_MYxsSdG7SV0QJ6Gx7-oze z3pEWr=;*%cv1hMiEHfN4R&LmiJuE1MNJ%nGOo=esInZ$;3YpUN3^q;TRr#YMBS?m# z#U$Jeic4r@7K{wFP_1?iF=|v0cu~w#hxQ|$*s+d`-}?6}DNaImun^?`40o>;yh=3V z@q#&FkW|K;IN*OIo4lShybsH|C6VbUTQEjk`u9( z5#h>!9}$LUA*t}AkPw@JR-Ia7!Kx+rW7z`CUA_0=%F`(W(M8EDd~Ey=Iq zG$EFVhM3bsaii*xNPilU$`^wC8ylO!!pefak52M61YUQ6-x!yeMfGnA$+iy3sQSyY z7ayHY#Kj2n{+NR1Z5m1k^MU1FMEeuS|04YVA+nyBKkJIQny0@HdIrld&so&ck)cJq zuh6l3W8AoO9w!bQhqeysETZ?c2%kH0ca(exK8jra$541Hmz}m$Nux{}}tX;AiTUW0aW;d)<@#HWzUEm(xXD?FWPvJQS+7}@t z4S}R|v1t|C&WBR`B1oZ*Ct|^CNJNGOdDXeU4g~HBCm{N{;WpgGfthljxk(s$U zDYCrqR0iG03bHopHEkjmmn;avJSivZ@3Z`u;L#t5xl@IKCv98Wso)aH=7F7?5%4UC zlr;7(^r{i$XQZX2At50L{f7L4!6SYUCR6*ipTW*eYvAYYON#4LL`4KbgGbHe(!HGT zT)x@VE{w`YIE9F)EJQ|g&vOo9V{-)g7(s3k#@LJkt( zasM7h|2!CxuUnB3(TPP!Sdz#C&L>fBsLqfP!Hf(K#WGSdcW&H*UO#k2_wNV7$)zNv zvsCx!X{u9R@H!#|Lns6vE^Z$M?1-W;#1h#}jHgOP5<{?OD^qhz7#f?1(GAW+7HzHv zmEcQd?6a5<5|BfA7)CNLo#%WfekLZ$I=H^FQ{wVlh3cPDrK};>=9QgAw}x~wAGpU? zS5FRO6S?qM_9k!{N=eB;vxc=%vZOtgch8q2Tnrmq4bi#5)d-KQviX;{hvY}!$ixh$ zX1XHI%Bn%xjs!gq6~8TQijjQE#4)~(%V`d>ke-w(oEa1dx=wnIV!sHVC%7OmD5LY_ zH6N$_kD320e=O_C$(e92VT%skz7}QZ!l^^TE1y{CShR;lLic$>8sXybF~D{Dmxi}~ zGB@l>g-i+F&3{ZuKynk6{QKMh@V-kW>&Zy5lnI3=E1PZqlSmN?LsYmwLW2E7*t2ate(C)yhW7m(!}|S> zZY{pYj4?}va!?SSc*cu`+I&22LQjw4P70Z}jtYVTpJ2|!5x8*jBsz8LiXVrMq6XEP zlsBpCU6>{)zO5keX}(5Ehj$cw&MLaJu#p5-psUv*MWlj*P`KG*j0=OYsi{zU!$Lxk zoR|$&g)N&hZafLp%0@E#V882e@iC-)N^uk~rT?jF>G>UVsX*|jv%6J( z@0%vO_3GCR+jjqjulsz9BYXE_!?O7Zei150hSW4DBDuiiOH(FC=bpW&+zb%M{@QvH zKY!aD{l4yjVLuFn_oKV8GU3HEdBV4}5Fv9J6%~pD1x^N*LSb%0#7|W<4VoG$q!=dC z(G)~SM37SX2wPUI!Jr;}F{IBx{M>gCe(gID^QMkQY#}SQ-@4|GWwT}w;b0GEya*^e zKFG%XJ8t-c%8lnkceL-;8C|~Zhf?Lr3NoIS#zsm6Atwb36ceq&&iy~Z`N*+I!1I`r5|a=c6ORl^?}CaXALBZoi9VBg zOCuSM9XN)W<9?@mq-&f@>0`{y889$55^j}AJdqF|huhaKiSxX0BzwD}T1M;(>1X0d zg*ou4uZSO;8LFykz8uxiH_$|4LNXSt-hykFZYb`{3+_ANbST2-50(jTqjFc5BLC@6 zL2~An3V2I(^d%U3&F_oxQE-HDSe<{fw)rWkFwq*F`8~ zMy04og*NqGV7XQ**ZIMZ(>KtAHYYHFdpo&z(#pD+=yeTx{tO9mu|f&ubQgt$lp9?= zRk0u$!`t%_UeI-<*Any1Bv6t5~fjtZj_NeqjYpI;;XM9XTmgyg1-1bE1Nf zl9Eo(Ho}O}zoPf|-{H}HUeiMIyv498W-UzDnC7wFc|3j3qkFf-IemRY=<1S^PhzW- zS5|s5s8!*WZ~46rF2zZ%)kV4pVolemsAds~)g(n(N8FPiTpV7?YT;3TBe*Q_+A?7w zF?j0xSaCETDBdO9^DPbiUo6U;pz?8n8_d~@~%ZeTd~z5VvtF)6cHWyH~39^=}1FWkK74SydgUrLrU5p#%gBQXy2 ztYg@}b0;ah?0h1F6!J6JzJ56#Kk`7U_FeGnma4u0w>hy>oFXHy)gjPP0Ib(s`c&P+_zQOryo8+ZLhWOFinJfz`nuF~3k z)dP)NHmCQP^)g{JCa@7zHl~!q>#Vo$*EZ=b^~r{8`QW%J8wlb#!uKCe@1uXw|6`Of9T& zeE)9TyLna2*V6o#9bXjTpT)2VeBuzW8$!%FnioEESWuz zNXs@{I`seneyL(aC4rP8t70m`b5=p9QMVzwe?OQMDoLr%jmHlnuyi&lWGgmf$A)!C zqi^f-U4Qf(@H1>3t%(q&BP}gMe2c!mOib`Taq24W-zm5!kCRt;L{jX(8>BqRQkYKV z2Tw}Bb@ev9e8Wje*A&lZGGtlIj);jNDW=a!v5O(4NpS;#pUBzBlUEsG!4Rv-%ebzk zlUyiy9)uGq?(7;?iRL(I^MxZvkO1x}mAbPE5m$-_D@`01Gc#jc zJbwjKD6d(WWt6RCfiW{?!_2A}qT|>k4v38khu0%%QADAfOGzZa-^D$`8R@CQ#Ud+v z_RcQi8imM1TSpzi;lY?Tc^WRCxhx&b2a#6_`TV<37b6epxOC>U7|kmX^zAW3+}RS) z)Wk@5kgMIGDG`GU*tT|=a9t{s@q89ZQRjHE0vr*RPRgMtDSf7|c@VmJ$q#cUPQ#@u zw{Yt437k203g=Fo!TFPCaN*P$BInKvaZOL)&C0OD5DxQZ;x($TPu#dj(varg;k4J!q!5QWB@R> zFcWh;p8F+=dY3y5SUHzg#g_@0b}dzko+~|*i5Pd**ji}NcXPSPMl2~wCMM?id31kq zjS_y|30OE|9M-H}OXczjido5EZzYE<1#=6D{Of4~hjwqn*&}xl9~&>q8Tnn(*MpYugwhj)c)3Ajw4`07@A%gs$!`MJwl+_}9 zh7fZ0aq?D(vLs9?t9)hb6D|9r^+EQDMyU5 zu&-@i2O=doNhmtkNvYyYXOkvY?sWCl;C|bK&i#QC`>%@$(fPqEMep2j636#l$EDNm zxN!0wP93^|!@JMpUCQx}rI%)pa7G&>oZLO~#m+3(%qK zS5TN)=RttKA2t4^(YEt9(2(@;Jh*+u7YnB>$Ca~p(YRH6bnMy#Mh0>s9~q=XF`?i& zE^5%y$|gnY7LlVN@N_SDW#_*mr0-JSZdv&k_V3&ZU0oH0a>J%cmeAGHM+i0i$;t7O zl0ezXkKziIO|^K%Wu+%5B_ZXCo_kz*RH9DfT13vi7sr+0^qw?qC<1(*z{Omh(m+M@ zxN=bXZ|4=%c{FI_^2L}satM-=Vu`SjCYB?82+LKbq6bu_EkkKink@BIuwnBaj2k){ z#4lc=UelJSRINNIX>w9rxuGD^m7Ib!#Q+JLbnv%ibB{4Smjjcq%#0MF^l$?53gG1aST9EjCKs$* zB`2prM@JXm|MWYWx9>!GdI$%1ZAM5?C@G7QGOEcdPpjm>+ru4O)-1u!^+)p9=qvHi zEd;&W4Zx^@qcObyNDTXa_{%V3)Ld*{v6qO(ZFsmx2%%6HWk;LJY$FUF*&BbXofV;mr-sBTi4g@9*Tr$3$vMCQ6rg6eO`Q@WQEUm#)FWd5cBbmLi4R zr9>%_$6PO3YN^1+QcmB_9@esmID`@bJ4#9A-*HXYEg zMFmu=T@_X~`Y<+8M_f!CZeG2G>sM}&9Nfd6t!puP_;gGd@&{rRWzeD+5w2F1(5A~b zaB^`bWlfqh$a93kViMu!^H`XfF_-{7^LT`iz#zoOM2BYuNK=e$bL@!?}1# zut%#HDSq1eA?KPHVB^0GYVM~SjV!mYH4nHAVw_xrX53%o^90u=?`!2#7+8J_(zicnyp@13 zI8pLf+HP)9xN+kKDVZsG5>0s>X9^$BZT6$Q?oElTXJ`aN9XTm(+0+1$Rz!K*ffRPO zT@DWm5i59e&nS1C>*;I2+tUXt=TF1MlhP!{{LrHYwlHfZBQwC>MTW+$E90lp-(%Xs zX_&WmGgj|Bj7|GaV&(RI7&3Y?8n$eQ=4~2L#nKXn1-M-ec>0tSx=hq+*oc&b!WV~N zC2!TjHE_Fj8uE-dQVKFeuPl$~Smkc`U}P#MB~yj&XW2=? zjmsBE$-joU*k~f1JTfC*4qYN}j@DWzNr4rSmFqWR;UDv`VaWm{#7OU8bM`LZHYWno z3JCx$LDIen*!I53Krb{3{|+}ZmEk$)qY6lG&@GD zM!Cw8GlSg7AOgoObf0*~(l=}pjv$Qmb6{$!LCT~i%*-|6V5ULm12EyY-|)nQJ6AvIDEVwvog^2KIA{-kr`sbf9V!$BuA2ejC!MpH7_rC1R@Qz#3z)QOZET;{38dincfa}X|D z!ew?wHkD~>RIOEy^b?4Ac+p9j(0JoWe-Zx6c+=d>_W{@KUs~sg+UU`PCM$jy2==(* zNwvZNJi)Tn`wkPw_Xa~2&sbPx%6|NecLn3$k;?b^6@?HVp$mdHV? zR<&ShX^A^`?$9;Q#j*Twbg@FkiWR8v>IieBbW&=$@#M+Qwob)y>+*S0I6SHGwn9=u zGUiMeja!!rb}h?2vU69@hq;9T?%niM9F^cw+6c4e&q9yy2cUZWW++#&3RN7gVnVWx zo(?IYl7h{(6;A>-C8azvDh4MGA4Fn&ULjG_NEVG;%_`;Lgj={r!6`pIdvZa-RMP>R1NdB^N zkeR6l14Dfxb^h>wQm~VYse7vA{=IBx@gt06U+=`P}h9NK>be@vYR z;$;P*L^%_To;m|Iq%5VSlMIPolJ{%%IB$h%ql!B0oowj4HE`?7J;m8q;OiPTu8Eq} zDj_mSTEB#}M3OBdI5-zaLVP5V_EVH*(QtGvBg~mLtz3wk1(X|}tljCG#zeU5ATcRa zL; z3wJ@B818r6aOU_yoH%%Z()A>+oVy11+dfE$&G%iDZtOPvo4!4vXP__Unz20bf`)qf zdN43DB>5~!@?RcJ+BAW`-(5t7r-(dAr~9~kM}{TA{q9+uJa!yzH?QK(wM#g(XAe#u zI)qb4ju81dM?@(LNr_CDvc%{oqwmjM(X>rNwCdCi_3GD#zOf;-B~+iMr3+<^<7P?( zWY3OWxOD1~bQ6I`Lc)WS5gZVWhwh&6dwc_)58UB);|jd)hg1H)pgJrTmrftU(Y=@P z%qN`6w&LajU~U6+=++IcB}*eSOX|RQTb)^i|0Y>TXrSk}kp9|}nAi>9WkaMti5z!z%ja;h_3VPbBiFgq;5=K@}ASzRp?7fzkW@=B>@<-9?IN~l@0CISNkiGZ9V z0@7Y6c@G|tVoeHYty;Bk_3Bk3Af$8>+O?~XV#RDpLB9)k_h;f*e)xF$AR{Lo7%Dep*e}Tm=Kh$RE^@RLPQ}O#Y>k% z^|}p+5XzBE4M$eCDy4S>4({BBg)^t((B6HNw;p-c@8Ff>C(mDsMy;B`(AZLp81aN$ zo(#xlWXJX&!ty`n2@hD25sA2W>ol%izJeGcn3<#?G08AAG(l8kB=&CK3TKxR=-s&u zNcY8wLr1ZC@gf}DwFmJ9%r{b^Oa&JV88#SMP)9P6u-t1}ybriMsZm8|Zmx&0usEDL zbXsvH7f6}Q%#MMMl`Tq?v?rNWA;mKtJmts0$N=T5)TD0-7mG1I_4UU2lSjq;jQr3y zqzbTa2mCU8JUX^)h{t}xls2!FLq@r(B{5~{IFfM#O1~^&P86Gvi8u=Jl-F$Lla`t( zIu2Owc%eX^@PBys5ycZ;LEk_PPL#IJ#f!nx+5%qgcS#8@*z}O`#4At`84l-;UBH{Q^)Zm$EXhXlOmfBOlIO@vJm(zLcE)i z5TAqlcf8>3QE&%VZt&uR<7dr7hwhz7PF1N~yxr?w5&pYS5)iI4nSk8PML^g)T*GDx z0z&Q4KLUO~Z%MXQR5iuowO$YJ!Ped$Wy-rCC6&q^cSIEl;b#HvU=sx7G!c+T1?#i# zgD;VQNMn+3fat9vZC=6U- zY+1Dv3uewiQc^N3%-GA23bbW_nVu@rQ`7Jwz#mT^C&JI0TIB-3cFjMH9E3joeh?oR z5*#6&$c0pD(Swtc5JU}lRCp?pf>hBn&K_p?8>Gri3SvG0eU=a#~Tm%h#-jXs7h zilF#^)2TT|O_>C1ySG;~+zWm2!~^cMc`M{Hs?<^_p7hxF(PzaskkXMzHziZ$__j=c z;h%<41E-*F=|?1|*Le)=)&bvkXobFAT4DHr zo*4T}Km6FE1Nwj65&b&1!%$Kt*Du|O;OCiQC1<5h*``Y!Oq@3wzmA!TvK1;pU*A}e zNS^n>V0W@SQP9WBgUFsZB!~-7l)ZcH8Mdw6h!yjvW6|_+m@@KrET2CgLH_BubNv#g z&RvMv6USi9qB%H!{9d7MWEr*&nrP9!6QbGdi+kJNTFTx8Nd}WiPQyck6~|u3wevoh zI(#TKyk5}LRfCznmYDOwgiFsr7foAt5)K89?74*dw}TXSy@G)W@coefm@#7tWIDPC zh>H`XB|p;ANExMk5(+VudoC+1i(E!Hh&5^y<%UI+&Gs}4Stv!OEhkbaQxF4fOj|e` zt-h+OIQwzXxmQ!+H7j0>TIQ{r{%vsGn3b809{qnpm)@;VET2cPj{(jDYg;p_L#h7I zQiqk5G-=$%Mh>3jol5mdY;-!}V=_>uQDY37FaaZ{OvRX)lZCle?;pFPOeHInC})b| zWsKok+6XSC3`KBo)kTMI8e__WMVPU48D_6oi9c4Y#)v7?1<{Bl8DTR>Q!^P%Oyy#p zn@p|_Lt`Rd6j&;ZjSKPY@qu7@p1EX!_$EQpGKjkgiJL7!(QN=Z5?`@85-_D}7pR)IW{)GQo<9lDe5KEPy}$m;+l| zY4J8sPfwgZdl8*GcN7JXO|T3N4TTBT<;$0G^{Uk4ZDOJhKffoqapNXJLKB5zS`b*F ze00x`6qgKyN5sP8{v$kl_8eZGPceJ^CFQ|Hvoh5Y_&k8v?vp%mXV<^Y+IB$6 zvgMGIrHWu`%xhFF4NF@`+_`lINpJAZ@~-GTs0)4@H;EKFEmGFmhFo#t9l_U=t^s=| zTR6KG!|fXvh0^~<7U?k{KQ`i402?y}-2^ zm7q`!#q7*byI~DveBQJZYSt z9rQd3j~_n6Q*ToE>Bg9-4BWhYACKIgkh1pXQ7WgBdKfx>B06<#k7&A9nlSyInUxPb z0-~m&3V%O;u^47yJ>GHAnYexZEGkv524h(UVw2)29pd1A=OGr)nuz)ElkGeVnA-9>2;<%X|S1VKRfw;&>_M1Isn=Rssx zERG!5`j=6P2Ys#d|>8}9IW@DQ=F zaU_@V!bC(>l}Lb=jLK4$C?C=Y1?Qo(UX!-AK1x?8iv~>_qD9-*RL8YO^R{i!qFr0D zZPunW>NRUY`DR9SwK_D2?Q$98E&HS3`6lU9$s{Ev5CM#b*TaWYmSUkHlh#|x%2a{2 zp&7;JDg1p4Se5c`!nvdY#!nlE#;sc*D~DaAva4pr$s&BVkm?@A2#A*lZeF?m(xj8i zMEzzhiR3#Vm=DPZR;6P~RqSFa@+C&4_$f36^SpUD=59B!Pmphv%BNnt;D-~iSwUP{WI z^c*Excd3h?M~x>X!V;+|Y0%TxM0QR(+-}^(rd7*u^{l6O{`;bsy#~5|*Bh-mcZH>u zIps%&uq9ob*6yfScT&k-z`I`!p9z{iAZSre>Vw;tt7IDqHVQxXcLneE=w z(|HmqPrg@$Op`~NG9jbiX=z!wa>WgYc5Q+GQ(yW%H6l3*@<0`~Qd#4CVw1Si6{_IJ z-+n^r@qHR}pSC)#oI8&zXHQXi zenRCtMYx0J(Qk7r8|WJvqh#5NXxyqTWpfIyoWDf%X0lYy>A5^Q#IN$W=Z5PSy`^Wr z0p+S#iM4uoQMg7e+oN0OmI#f>L}~^*p2!vHB7C+GoghS_*(L7LeLJyu)&e9e%%v@e zoR9xw5$ZH-h~y+m-v24^vyDvT@b>h=9}^}ZB=9-DrLxxH>uhQZw-S)V#6%n*rF+SeCGho?CJy8$Aba=j z#kg_P1p(nXBU`s_g`=aRARsel%)q>Pd&G7BB-s7!?-PfK)t%+qs)&tFrG{4%W~M|+ zei@E^+s-Jil)yHj{e}#p>wCb^NL#pcWyL-=IvLRsk%)>4M`U;yqQb%u8xxI~SPBtg z!miWXBSzUyzl62D8U~M;ghtIOhnxO?LQf}aP#{qAi%@qELK zQwAweNiEZcFm|!*Fr>0s%Z2-r1D}LaN$-{u7cGow&38-bx24^LTI4k zg1-S>16HCWWh5nm-Ci1F)Z~eS>BDY0yyrIE{?-?JBUelp#Jm z5`B7n2M@Qx&9UAWJqNTy&;A2pWp9mysC2O+c20I2CJq~i69=v-u98r)yb-1>Tm#qQ zuA&IU$0Q&*B?&3X$w;BPBAJv(Uh9Te>rRM|MNCvQHN^LE>d-Ce0r}AO>pGaZbTO4N zX{3nrTPD+hiLt6!MSsTl8Q8i05Xp~Zs`obVB>J{p>S5vXMTm%Fx5=Nr+f|Mqe>;;p zt~(yOyHi~wnZL0-GZE+2b~$ZwxI;vg3zl`MCzpR$s9FPMD>{mGHF)4}#+ZpX^4B34 z8p~0sT5TAcm_wBaMH1x+*I{Rl-bFD7P0U@jhGe!P)o)aGNioXZvBB|TKETPx$C+qy zXMi-1gv+oLl=pD_boJ!I?CwQi1V;SOQ_Rt`ET#feGc!T5_*qGb@kB;QRuZWW{(#q)bLVce*Ew`{JDOaaNWzw27@b19+lU-&NCEk9QywKa!?{|f>ZI5!Zjg(o2j`akv*O_#9iY2O&lW?VY0(3F|$IG zzkT3&6iVHQi3NMpOij)ZN*JfJTuYP446h*lh{9cZx4)PG7#$fw1-lp=TwLK;yg2GK zYCZm?_Pq@;Kp+5IPWZd!}bpbu|En{}uzlu#DM$nX@=L&qzf=VT{f)`aQUzdi4y zcebtX-uqj$>eQLyqk<=1z6hms3kwcLV8Ao6YJTX8NHIr--Ss*bC&iO8?9sh~CzqG4 zVu`_2fmf(fQ{+d6!oG}Gou?8(^-luHNfyFi1Yzuu{&?}cVDkwc(HuKt0W57SNSZWZ zLv>R|8k@jTq56+NDf8MoGNHtal94Nm^A~^RDL&3~=XegApSKqgj~%#r{uGRi&Cs$# z7c_3!7RBssggfG-glzaf@xzWyt8o6rS;`+r^!%Ye%2lc@yw>q3DTB#`mbRSYB0Zmv zvWX&>JuM=GTpoGhzm#NYRGh)Gql!%UczI**wv9M(=pxEjcEW&PN5QppacI-?*gP*X zECx3&pU1K}f55;<2LpZ^g@(S~%K zYr0~ji{qD>k*zSRRi;o8z69hUAbYkG0a^UgLzTHPs|c7&Z>a_gzsO{rg}7vUBGalrLXi zapd#ITM0-~Qj#Db3l}bgpPytyk)MF@2*~Ks)3ImI#+M@?e2xjov}x0@V8LJFx@pt; z!^OoJ7tUWmbZR!n&YFw!Cr{$kk%RE_dIVpueD0;*0X*m9r;)>{5$z@BG$bbE?_E%V zsfi}GZPU~$)Y2Mt8a9I0qX!t) z|2r}9xgeA(Z-xcyR?>Ygq~yM`JLW!k)+D$mp3O>_ZE%l0pW(_%3VfJ*ITm(QLOp1G85_z%BzM}=y&=$crH zE5$!E6PZ-eJ2<+cL6a(ojHZJ4>uVVrv1wX5 z&K*C6otxLd`%&;ajSS=lPYf1oV{~YYNu&g(XR1?UDS3S3ykH`zs+x^UXU<{WlG*f* zyyie`+QyC^I6hjGN#+(-Fg7uRvAG3IXlrC-Oy`ZLTp7@DLn4BYF>T}=#oc+~;Ho7S zO>Ek_gOGQgGss)*4TmIdy$yn5j(5fEukN^WJ8ueWt@M%_jYiR`P8Vw{7d#5D0O z|3$DO&)@V~>=g&{9;ZF}FC)3|ef$JFH?9(+y`6eCL7%}tQ9WiwX~nCVb2_mk6X_lhQA(t-<-g6U(n&xPfJ}C*z@8D0&U*gs#1Mkn-m$=AzJNQ5>Z578jcgAJ2Q3 zJ$?*5J04@E&qAddwS>Jq*BQ#PCX*8h(&lx6q!E;gMat%Cw_y`MUj7KqhM~s^_Um_r{ z=_p0`FM>y`RaFuM0Xeb%s^aM1hqX2E=bxKVp+W%*_kN~$D*;KS#%KTj{g^jz9{l~K zON$j_0&-YPLTBvWy&Gf3%*0=RZ4!;Zwr$%40U0r3M4l0l6)Q%exT`A;A3X}6=P%Ij zmoX?&){z!L&d|n{V&{%53c+_Cb%$aD>zLn?!Wcz+)1Ed5u zwl3Ck?AUz}6NXNDSs~>{yY3C}b&o!zyy#NJA(=sNPl`IdjDw1bI*Qxr;OdQg_~rY) zg%Xgjd$-1qzYm3hk(p3{^4Bq3>F}!Y8Zy!2@uENoMCy4x5qszD7 zqj>4kq!j7XGg5Kq`gQExvH?%LVo(KKpp`n%y;zeNB&5VDlZQ=Lw+!kQ=e6FrJit0kbEs zl5AJr0lb*uPa}rG+|&rRE~QbSv@?Ptq{;HR6?R^wIz25Be{S4_m2);Kj^;(#iY92& zu>({z^~HKNrbIwY&8=W+W=i=)M3NLv8C`eb=4141*JQ%TT{b9SA22lzaw;nmBRj zI1$~Wh>wkew}+P)@zB*}ClkhkfPXvSXEDOUH}Kp)8%r4$&tHZm)7PO|9Y>6qHXoHM zIUzch@`uWXa`G+LflP4B^?*qerepisy=c{`5x)EJS5nmM#mE)MmBCxZ&o_e0T#-`u zWg|BMIk;;pmd#m~r@gOU-vtAH9YbwXWuzvuRlz??LJW-M@bmV?hyi_JVO0!EHf;xc zhfIts8UgvQgX<)&!&H%galeknsY5puXZ}98V}JYhFN=V@)e9CkEZ*MUxN_wx;uNHS zR|D_av#0QA#CY`R5l)}Jf*w7-qJ}9`tOLUCdF#}vg9{ff;KmKf16AwRbzo*{ipTW4 z$mlp!s!jAanlRA6o^0XDWyLMcm0 z;bD0;f6=1r^(bEY&{GBjeg?^ep@CRegBNf!HZ`Veb&1?$ib;)<>`98yKLyS!eh;tc zF4vL6#m*ECuBD)@Cx=rBD^#pj3gs#nNBJrxP_~jQ%2aShnToC`Ro;ox+5yGO*r8F& zwiq<{dsHb|0xJ5(2nkE3bX3VxZdmsCn6ZgA0{ug9{`l)FzH7*V@zW<^aPOXQs#Xy$ zC0r?=t)Q(<1d-bHL~7s@lXH+w`SZ-@f9;(IU=_vI#}AMSA))u)5fG%P6a}&OXZP8A zM@0q2E|yR1`YhOc?;;iu5e1Q=ph%Y@Nbfx%0lxD)vy*Ht2`$MD!u=<6XLfdWc6Q2{ zbEce`DFZ$n5ImV19lN%dlg>QHW(3*Wpl^3KLLhCF&4vw|WbHa<)_NBtBlQ_4f*Cf zIqcZOwLR3*coNi2Y(DdR`Yk!CIHYdfhe%~~~;x((_peb^uq$1RdS#}C(M zs>{A@_fguR3|EyKc~o@{T`CK4I3&=D`kC%f4?hBXw4?sq|9QOvX!*1ER<;z z|CECcJ<<-P3?JC$pV<);!`=ZeltvnZ_6rOSO_?xWM*loEm*%~Be=nErM|6;b+ccHU z$!O?frd^G<%LI1FFG&pw6}&&!xxxg-;tIJLz^SY>l5`Cj^qtYu?nj?s%LLu>z!?7R zh>t6&1)L$@eKkmCPAmAHOl2|Tq?7(*hjs5QU>(ag;WgZ3H}C+F403+=!yN-1k*(QR zCft}DW&BugzZ|ubN;q2Wrwmk!=5owQXUNTcAC#N#y;^$py;5$t>vFm7_Dke?HH>U` z?R=mdddNX?*r8ptVV9H@%Qx8j^Xi1~A|)Bx(+11Sx57`#kbe2)P+6&+GMix+FG|-q z(`D7lbWLBnP|s#8SuLYS{i1%sLlLOo5T>u0?P1uY%>1@Mn({NoY!m}1513m9g`AMY zL1iUnU3!8tex;OXs?eeL*c1zcz=_iA8~Ee5vGU6g-zk&MNwY^tt-6&oY`i_s(hNpQ z5voeXmzBoN_m$Jmy~GZ@`|yo-WY%AQN=oSxN~{yK97RTt7%uns=_$`X@{$tqWVz(J zOQrXH*UFifTp}x1E|Vwj?JsxTaJ7v8b*z*tUs8pHk`kX-Ld)-4`R3DKl))}1$DeVo zG;Y>d5)+ec)OGDD_VQ%vbs5>GRSP-gtaGJPx5HJK*&^e{{;cJ>RNv+6_!e8jw{)qR zCF!!no5ks}*c+`Im_-ZIHI8)6Fa0*HAXau!0O@4(Y=hRzne)>nJu6wRxZyJC`%quG z>%qI_ZnZIeAGuHNd;I^*Jn-a0((jo^<&o!}l#8yuROT#5mkDatX#HkW=9u<*6KC+@9`>Mv4T{s$et6J zilQBn+>^onr$zJskp=&(vwc=+Y2{4~b)L)6s6$#n&`isB&Gykh4V7h!SK4X$@4ou3 zJo$fj$@(=SN1b$lTy)J%a`&Up$o)?~Cigt{nB4Z@6LRVGXIoV7yz-n39{8;a6dPsL z+6-B`Xt8$8DCMXt$w^5z8of1mKL;spk{0{6(018IX8*Oqlzk9BHaZ+be$bjDrBjlm zQk5jBs2qOz3Q1C-l5?-BDbl4&7a2NqsEiurWoQma-i(__z6X#yr8PLj)r z4EXSKdH%5{CBHL0TI|=*rRO>+psn@uv)T~`c5|c7y@*k6B!nl$8{uF7{sGd|viI-14`rP(? zT-p0->D;}WtXp3~g&w3$eW9g!i!Eu(%5rB@l!{AG0dtP2{cN>g8>vyds;pbf*(z=% zb!SX*fp@!lzeT@ei+-~+>(#wM4K^k{otXptuvw<)gnyI}Y%Beyp-lV9iQ^{7i0|{B zUjE~^ak6IpN;&$l&XQFs$(BDcAV9oH2_+>pF;m`q`(x?b>+W19)rYa)0WGBaAqUIK zwR=XJDK4axDJ4U{87$+*OqFvlyGYW?m6I%`jn)S8LD`fznLKg24Ekb-GHhF<>ybyv z#NU6HJFdG+>G(Ri_SQaf*;N-yxhl1+-9V>l$0@1hq;VtBl$Tx!|fRB{4Zc*n^cHpxreq#>teaGqwHyByIO^DYfb~)VhZjwwN#) zLk^5IIC3YM85?E8dKAQD3WxrsZ`i1|8|b3%-Lko)O!;%7j2t#%t397{X8$e|CQgwF zzx^h^{xVWV4<9bSj{MnX=0^`7A!C15_lV&#O8v1J6dU#9Pj)>@@Bi}SF!|*tz5Z#q zx_^|Bm|;K3h+)Ij?ficJVVFJh(})o=`0KA^+^ESaRA)%NhE1eS{f4IHkHNX(>_1{C zI5^nYWdR%#bCEH_8Gv^A~5TooO~^qY|Gu4rU9?_Fl#PrK`6{hfW9CnF9zDd13ZnYo+%! z*U9wXM@z|!rOHGvl`WaeB}?67M*Jq@4luAVsIzBGvxCMC z?0SgQs8e0mt=oDZ4rRc|W>(f_sZljqnzd|ZOFu>rA02+60n+|Pli4#aoNmJpjtMtD69=YJk9xCuGmDiqqLjIXEPv*{BB-5u%l48Kk~3-Zex=?WgJ_OP;jVxE!At)mHG|K$nU?7l9ek~NMb@>vs*c^R;p#qa=H!& z9U@h#RgyWgW}2{g$u&LXn3GPDG!BW;I>y;X>(*`*)Qi)O%cP{paVH!m2XyHwYgda* znfQk!C6$&cRjX-Ra~s0ZV6`nEKW|i;iMBzITE2p&+0BN<5JMPj>MmJ=!+i$yA0Q`QCLF)eYi|^&z0mIZDCf|HMRKEV~2Nk}5 zkgv=hre>%N_~-{2@cs|-`MclCXYUS@6-!szlGyeKc9Dvet7-~ZNw60&3VSlNqcnv) zFcpOW=%!Pyv-e=TUrUBWW(uR6VJ0(DK;hco4+|ss!3b{A=#W3Sm48>`;-G-TW@o|s zGd66LifN^!S&J4*1XNJS2lHoV%FQ?Rmdh@=N^ZR5YUz3Tb#mRs*GS)9*UB%$wmv!A zTiF0I?P6V6NA!DPjd4=Ag;4H`+UdJW{mH(roM3+Abi;Pwnf!su!VmQ}KG zf29eCt=k=-WnMzt!)mEkyM%N(>_{nHIzbjMQ=v6D#L?HEP5Ls=y6zMmEYkSr&7EV)MXJ}XBc)Rk^jZ|cO~O|AFnpZ=1sKN+EY^HlkL^j!II&;%6%M#|^!e=om}nHM~{HCT$hdO2qp zi7C55fX1xDtZ{~Yp5CC!H(gD}dKH+NMb`F$VHqkjESuCIwA(Cyh!?G1BTlYRe&Vi& zpOW*h>?v(J9H`$ACnzh~Q98V*!OBsY0AHSDLtf_J0Fs#xtFcQUE_jr^3ELGwd_@Th zd0dA(l}I-Ni_ggLJ?E$KZPB8OVkc9w#AaE&ezTOXSV_*k^fE~)7u?7LGbXQ*F-q7* z51%e0zMm+gewr$?rf>UT2oAwI_@MoiVP>BT2jK-b_Fzz|6elMdmrf}qOBOGYwd=I( zSpdEbQ0h#Tr&bVYe_&^2W-?{PvSqSQtJ>1E#l8}s9B&E**re)&P8Dv|PETh~%4SI_ zT}BS*(oGsQt1th|nJsaN$MaA zvOQm}d<7XaV1Ru0)#uW<**@k+`7vO?Gr6GGB}jpP_ZKWSXky2ykjrN zrYxm(NpVuSQoK~ElAtCrPgA98qEuJI{s(5^b9&o76Q+GIKEKhBVn#&WtyH<1G-}dN z8aJ-0eN7EGAJ=K_g`n-z{26p8S1wNZ1~qAMl9m>48uwDeCN07IyeU_ny*-I~PwTkS zj=Tm{iVtp}yf6TnWh=togzX9-9+3h_WT!+Kg#BEF%Uw8Op~Sg&`1J(>9q`H(8IqWk zEZ1ChiClKwRZ^yGaI=6wttp3btyr($se)BRw(PNB1_K6#1K+CFsA0^;+SO|$o}KA= zwns9igs2=Lt5&Tx4NJ}UZEM;}Mhzb-6{=Ph&JAJfhO#PKAmBV57@qbAbQZPbt54sTkKP?1 zYgVn5loXiQBxQnHe;xcL9slE-)Oc*ytW=zpG%o#)~3~Y}) zGlrC`gp@WoZQ@EVj@1Q77aOVn{C&Lq@8M_U#iw4BH(z+m%sVf?Bk#WQ zuDti^d-CyHpU9gpz9r8+^@0opmDQV?wwFoN_Svr=P znV~IZ>%MJo0DUie@8`^%Ekgzlm0^R1%TM2rkl{c4VrK{a^5bY3J$$T;8S$(9`pY=^ zZS?PE#*LXEzyCVX%#=T;%ZimNY+vqf0WC-R$iiBJg;vkK4cnCfn9U%QBltP<^T3Tf zk=JsqFc3QYefEHCBWR(627orCnM*dwMLjN)ORm3ECFv9&JQp>sY=-6;^UOzS!sv1F?u^w8K;lmep{9= zTP-!KCfX<&Rn(9CQtwjBl@xu2625O`aQqa2$y-$!n` z^L9C~Tl3(~t^sXn7hiLw9DLXj){(4UwNc9^miYw*WyAnb+l~jx?GHUJGpEm$dvCr& z-g)I!nKo&fES$GQ7A;sN)2GbR&i`w<_Tr0W1C13vgjR<7D$G$AQD zK?R$5voWas95?niQ`<{@W=(Ed`6`mJVJ|7TT>xdhenXZlU6v^w4`?gb-g2ij-p8H) zv$Np2t8Tnfjz8^e?U*-dzEj?@ye}L;qqC$;nG{>1c;*G?7_;`wgD=aCmz^UQo_xHV zcl^g(h_kE^6k{RSq$bn14nv})TyCXSzBanUHZuv|6*Mn|>% zmn|(aeey*4=@k#mZG|8BoV=2g>C)^wGHXkvX##$p>$~D3A8-BYk`Kk_Y3Dw*bwcu^0)wCf7PbU3}G^HZwJN4 zVZWQUwJvu%V871#^#$9rNjgxVQy8Wc_Lj|(ncNT?V;e!L7C^ov}4@#&^<=l9=#H#NKmAAGPKL^yi%R14R= zdt0efyS7Z8JVh2PS|**lA0cJa(zLUSUZ(>gLz_$03T32D<5otX_T9I(tXaR%PGH{_ zDpljGiw<(=F^9<6ms~6RcW5rlS8}LVmY|VqZvy)>7}cp*xxBP$(@u$OhJ5+qmok6O zUsAVWV<}so5Df8#9mGiGWORl)#TB)J}$mY%Q^7qW?vTWHB z>CmyGRIO3Pmi^>)7C?LgCn%SYuRs4x#ta{(4AhCzrhO-=-?*kSF!lA_lVrfh-^-#! zbEHwz=2E?8IY}v9Qj+u;mR5fA*_ZO@y|-)PH_OG>TrCG3dX#qZW%JaU6+;dnh#VBS zYVBst*J{e(9w{S!_}Eln(xLAN&seQi33=du&&wI794D*RGoy;YzW0puL<VBkf=FeKC$(jhG&wD!pry2K-(2?Z+*(?+X`*GaQWh_8>Yh4uZX@jv++WK- zPU+pAwHJ}WP3rZA_3Pxvlq-7SNVWN?(37mH7yL zhaJ~O^XFh`*u1WmNh6p4m{#O}eJvl{^^~_*FH07>eYjl@?m8m^ zi3T#2Kqn?9YC20w6}^7t2gSSWrTQ#$dIqTmHYeLti(#Bd7H}8pkY(t5^>15wglq?me0!NmX&q^hFTja0FQ*8O&h#`}M5IJDv@xK=y zCl~d&R+cYWBUNhDkTPXpP`6gq977>O>oR*dO2xs1X4!`3f95Wd#DqktSS3|ZXG(q7 zR%M%deOXkj7%yLZ^p!lOLi&1TsIKVQL;iE>v67rxO@)6(4n^srXg{!7)~r}yC#b*h z#N)!A;Ah|cT&h(=f4!SAFQMp);66goclvN z-{z?HUIqlc`qh)<$tRzaNAG^#{Q5j_gPeTUS(^8#*3Q)ONR*894f5gZFUkv#zinZz z?sJJ;c*Vu~e1a+M*po<_t0!Az#j+(@=laPP@BI+maj020PHwuppR_x$jn+SA=#?p> zUR%}9*^6pk-fh?R>#jB5&31vD+g}H^ceCQ5Z0R^Vxc2qu`^zV9e`o$-9N4v)-23>W zQloZF6Y}@grKV(AN?FeK$&h|`^py`@|4J%URhseq^KxX@17xv=VKT~t9EKVw8zD+| z>?sD?|Yn_YaE^EC{ z-kE1+_TDq2xPjv0f$jK~&~zc)!@UMiFmk$&>KTh?loUqu7(n z!wNAh6tU;krbzxI4FiF zl^sE?#fUVM&AWbFzx6+O+=@0ki)fw@8%qgTmQ`!qqKoH9L(z1!kZh{Nr>OJ_^}ft! z2dBQ3`(NrFfMjiyR9$xtE#?YKfdr*=34k6zbHkwBJ6dmjo1* zs&%R5q%i+%&f%#@A!4Q-Eirq%ez;s=R~~DfHZ7i|AceFhDh(?F?hvCKlC9iNE>g3{y+3SQ zp-}Vf!sVGdS^2JGi>ifcL*||rHaR1|OO%Iy6Uyd2n2aTNg8og4+^oR^%xxvEjJm&5 zQkaryAdPt%HF}~p^Va04q$$>Woz4LEq+X4jca0f(aZ{E0V&9cqF>mrHA-sL8hvw)mVIPYERl;{QERdw ztaYBgYu~no`46_-SrhzP^nuNK-rqKMCv5DVJ1<@-dT@ywMXe}O z6;bImz& z&HEttvggeo2wryuOU_j5Yd@S9#hYE<%eqMSywMKm4QLelSl980lttUfr5!C1ss4I^ zG{khWkFw;_n#>$=`3)r?@I|$HaVT29T1jSdng-`48Fh<&vtBRA)%dNUNBGg)hwIx2 zRcZ~PsF)KFvBIo^;owu1zNEC`>7}rxgE1dbJr*w9}bRJx)oeSu<%+{9_l#6jO@$AtVA< z+d@eMPK%^KtUy3rJ=t#G<~oYiWj>IZ^8*GF$=t~MN3T;e)zCJlSA&PATDRpgMclT- z8l+;^mfLza6geK39mKp+q_iew3qC&{BT`#m{Q+>0!0XcN<$V`(=H`0*Ce<77?q_|> z^a=$ey+Hy2@3$NLy+Ev17VYbH6{fCRwvu4q6?EhmxsZtzM&o*&yuck%STqNO`eM2h zQOQEPvE)}@_-$X?8j5~=98W7wQ%;+&To|EO7Nmf7KmS2J@0);Ik6Tf8fZhdZR2vzl zF|UIxMbthu895}pb(}Ii>{W}Z)fA3|f(59g$(9XY^LlRNKIX}4Sn#n{q;y`**j`SN zDrdY^V;Rw>8wDheua6R9!wIr&Q?}kBkEmn5!-D1?clVTWg~AaM+V0IC8(0)*BcmT0fdSc5S4x$NC6X00pylUTrpyp#HS6%xV|nx& zoVieILwA+xh*R)CV8azib6ldy)EmyEeaGu~=OpA^G8k%ZlM14O=~)pKFPUJo$X6v> z9Y;qskc9Hy!FP)nB=-rg^*K$GsjRO7tgdm3Q!^*`|$_R+1fU;+H03j>KJMVRcNQXPF9(wsus)3cXj^X5(HIz+M3= zyd1V%ib4{l5|5li`;$;5_Y1&VyhaF$+V;5S3b}kUV!+S!h%@lMZMuX+3d@z9okDUz zwVDNmrKs5Y8uv~`WdhQ}F~xsW$c+?rSGw6 zi&>h)CE{h6F82AAO)t$!Gv=VNc6VE|?arQ5shR{mcjB>EB+j&B#}4h4Mn_oU>}q0V z){-Z_7>(bsY|&0Q;jx$&L2&tgy}}p)Q(zzo%}2O1er!zVG^gxV;ve^c`r_J*n0B@Q zI=x;I^R0P`w5A8pBV%xd9=r6@Du@`QHesY51s~$Fu36{YsUX%_ERj*4NHv`~*INvn z+l=YaQZI;!pwDD#po&QjEUikSEqYBGEwTXpO=Qn~@Gey#c-1y31wn&z zd}Z&!$ffD=e=Ca_AY)TW;$lelvA$5F=M+6klTYFcuFz*%u3^1-*WvJxbNon$p0123 z1&3iJRp~E&+zmsP%}|vl9izIYU9_912~?JrPIRw7g2z{@C7RO9cy}B`7W4 z1h-C-CaAd{1b7PnPQLW{r@a@U5vfpfwwW^y94AdT)ww!U@QaHEpT@;2CrEIRrfTuC z_SH-S9T7c8mKwGXCc-xG=LEGng)aI zu+SyzOe5m#@MGj!f!vljb=`q4J`1##*1XjJx{{J=`q$gti8X`7@!Q!b9+jjX#>=xU zxy%P;k8g8Jv^S-ThpW>;hX?r-irL)BW130ko6Qq2^HNI9^E6^SFy2tNS*)&&Ih9(@ z*uMRU9j~XQyjTljiSWAEaT}fT0%`yLih?5BjOck$==Ou1TSBJsjnxXebM0ix7;#Unt~OAuejxc1 z5W%S$=JqORsL84$VuSVYHisJ5Zm;+8R1F*YJoWQ!>>1iwf@#2uh$T2LUr#;il2CBT z7))qSX>?dL~Z<;s^yjH3xO24}~)q zzs*eb)0m1}Tq zUzJ`(3=HjV`yQSJ@vy?R7@R2?Gx*(QS5c+Yt&qlO_~q)Lj>II5A%h#-Uvp^zaZwLF zz^MAks>c=ReZH7qv}z4MNPypYU-Rxwyavu*NR5UQn?Wg zjAxdk{a@^kbXrOYF1Yd)aM;wiyiMtK^9HRyNPd)_+05q}$_}K-($Z@FrUubclhXP7 z7}9dDPfI(ry|K1E{W*Y4O6MnZkhK~*oOoBboy>{NlGRf6br0;^M0m~D6qf!Tk|!D~ z{jo18dr%v&B=q9PZoRF0w(Q?kqe446hYY**lQ@{gO9hU?lR3ciDXyhvEYW<~l zakQa->WlqciO1G5z0?7A9$QMN=(9692{F#>WZyPNi$RSOZT#H?!%Z9K9Nm*F~Nk5S+S+A>im^!M#U72w)M71vnu; zou-U(ZYAW8(lhcRQY9qcfBN`|^31yZlC9Vi2}9oAg;)u}!=Zb1H4%ZS_#5je;o7~f zbbkKybyi=sc|nT8F_~LQj7F7)(h+ynw+VgD#CDtX+Kf_rYQ;@r%WFaHwn+3Bk>cfz z7kk1PGpdt~P@FS(s=4kdFN%S@Mku9luk9Wy!pFI? zf8w)6?_`u@A-#xX^OMILMjwph=f7`ZCNR@H$}V<-G=x~#DJi$wa)5_TtAHV!4=rsG zmcNK4QPf)45ra$X{$Y3iYBtetZ)`D%ybCh$hJ^N|%3ST2K&o3dlG@#m^(^Om0s{|c z%X$=Y`DD^6g3ib2Yh`R~exJg(LA#&!rlp1J58{LajF&C*{r3)Vgh6YPKOt-KzA|!h zS!Na`+1I18J6w`w4#cW>biYhb6e)2PgdH#jfSy)b53XyDa#08JjEeHJ`%ijEN53Q9 zQH^S2epA}850istuCCsSOCKy8vKr#w+mwKv^(_emOxbzyCfk5J3l%I4CT9kx3|h3w z`kFQi6}I5kiM(P%gbrzrRBZKbu&-4+qtIEaJoeiBi7I~TtV1~k>7J%X6nWKSx=NtY zV6Y$YEW6o7;RD@CwQ5AiZ;f&tT@WL6J_-AlG$Dy8N{lMcu3RwwBrJ^sxY8yaGS*IX)cS{5ew?^dPX}1+AJ0FS|B0oA6etwKc&r*2Ms%gY z9oT0dx}2tq$;*V@-k*8Q_N*YmgSF;|#^nwYkj-zu7A|v7E`+-!og5RLlyq8cd$xPrq{VGsNgT?bZS&nUX`vEBgjk!?AX(*~swnSG*D-LAFnb=+4sQGugJc>E+`# z?$q@1o5A^60%V?B6!Crt;dPoB)qo$@1*hsQ=VeCi&^UDSCZ>bzFOI}60uMC?z{@Bw zOV3pe&$0%7t^P3Fh7U2iPN!2aI`MT0j4n(JZ@X`A*!yiH zm=Y|{@_|^3YgO#uU}6Qm+Q~JjStbYd;RIf{*{b_G@Fd`2zd^N6Fw#eHOa|HkNLx6? zazY5z+olv2?pbtT&TbA7s?$9*YC|2ZcNwJfzPONvye#%i2?@0Vwx&$^N9?gSYW*E> zbrXll5>C^=m=s@%*(63ZKa{>ngOEfzW z%no-3hot$4Fsq%zKv<11NoA(cRnc@DtTR`Zsr5X^a0MZWxB#~8dyVQ|1M#zV^*xMh zyS90-*KjC7?g)v%*xh@5f~JdO^8W4ib?n7NA%}Ke#ToeDi1($IW2+8vWl5uwf1(cf zCZEQ@+SF;4B7(t8cr<@bmrpAz`^9$AMJ7jP)x-UpDtnd?lP_U%L<5d`wP8%nj3BT6 zr{fonL91$=5{1|F{8&w?G~2{UL%l2uCO$h`G@{Jos?eVa*<)zp@mS~0>vd=WIgYo2 z;jE$=a2taojE8U1;jms<>Ls8r1~K($-+H_CK=kZTdIj)ieW3seJyl5B#)ZV@5F=2Q zpk1)T1K%TeqVqvG5Nvlg9nCkNX1AAjvxrVuf??L+ac@5M<7Bb9`(xN;QgsNs37bF; z`^mv2h@zzj%zOX|sQ#Qg3rX*>Rmylt(nDGpInu0DV6>Ez`+dx@^vh;5R7FHkM2E(@ zUmwpJLWy7jPO8pDmqqeJ8hX!MFS0pceEToOC>#6Oj}a?6-}hLnmK7M~soFE;7c%sj z0KSl0Q~~2AT+a5aYq!yTO*LiOW{31h< zn{!2e8V2_%>1`F_p6`fGta{H7iZW{H8m;(Poc5*B&%tk?XIXI%T^lb(nuC3R9{~3j z{&whWMCNbi*miU5;-7xk*66Dn|FGVeFgCzzqF$U@TDRos6rT5loVHpu2^fdO#f={e z=3J~0$5rWVtv#74)0u8;vL!@v(YtYlUy*|VWMSK+q68uY_#=Wq_Y{^hYghJ;&hLlc zb$d1r6s=|Hjb(Rsajv72&iw#*#-WN2nFDrj_DpvFRyxGFZWcwb@%6D61ReYCr_*aS zcY1*9df831+BG35X1&PP?^~6};}#Q6sp32J?O*4Y?o{$`z}>?4>^k*M9eyZ&7y_ov zul6fB1>O-J&1xS3>BYdNGi=Lq5f7iadeJmHY^o^f&D0mfrtygq&)sWlmcRp##bxEJ zY`gNxm%W#GVfy%ur$X;xT46DOv=%MY*1Ux^bO3bHynUq4l&J4(M3IT&-0vU>uncG( zZmw}gDzQbDvx&t1Y}vgfba8+``D8i}M{&ob+bv7h+0f$mc#G{|UbNhu3fZ83lF#PC zFfWSDLgN0iZG42&X;#T`?}WoWt{+GfdMW3kRkcE+EPNT&dDD-yGTgyJHk{*AcYW%a zuThmi2TDCa`TZkQNZCNNVY2&nB%tXIYkk}UG0tF7$_qgPQ6q!?^IvQ^{FW0oa1hxx z7D_^-HWx?MT>VMII=SbjU$)=H#@)Ul)%^TnY?fmJcE0e^S$o)DYvD$}WvUXw6~vE{ zXWn~wZRa`c=C^DsZW&bXqZFjEty?i2!$&MV;2Q5P$KUTaC{>g zu)tN!^Z7v4)+kBuCW-r=5E0Wf0i*N?C+(wSOk_Ww|4nlu!t>2a{1>OG?H>^Oy&~nn zhGU5m6~lIpx`9)#kqpH`S7E#%spb&R4BJZE7gn0g2@n3a91w|i!uJN?%#wki?LI^1 z`2mpw{Wi|wLUk@HJOd2Np>w-_^e=h0nxXtEM`6HQ8qJa?ioxDwA$DgVaF#cS>w>`d z^GNgeNd714u`6&ORnD$jSNn)8H7R|Q%{*H~Qs=>w-TvrS2C3t7N=1hU(B(}3Uyfzy z`D^!2ki+|n)>aeD>9l6Ai|-X06@@6V%V3jh;%NMqtJz3{Kau?^)Eq`)ADLvRH{M$q zwqwL0-7&`AMxn{)&5Tsk4g?TTgS1z6Bcw3oWO)_UeIjnpMZMnhxmRSrs4yupuVv_C z;9FE&VsjpxZ>Jo|N3gUan$v z%%0ghKok=hJZLHGVJ#-v%s-sZVl?7(MvflML0vJm`OAJ=ng46gVvU~l4U1&>i(G1@ zoP}0t_62%>dwJCGJU;;cdSs&{a1PKR-A>E%t~@`rtZiODkRitVHvnv{Q|XHrzw-EO zF%kLj_RMIzP^Fsn(X#O)?mWZbW#fX{ueZHOA;?Csqsgi#(xM*{)XBT-4Q~VsyUq6C zpr4Q1TJupt;464%^~-Ty#Tkj2aIG8$=;STJb z5utsnPqSPNAR|G;?n{R43uk<;?5el9V8Yo_oA%eV;+avk9#Kk8PrD{KIAJtd2~iDN z<3IIm&(3%YuN*NA(Mf=+t<`Fwq^lYum+U&NH9cXk^m%sQjrEpQ4Uce$GTcx3mxqYG z8RyGWeB+S}oHnerRlIhxWj##Z&TKRL8JNz~e#H%b z3Pa6<%XmCbz&S;z8nDnpF3%v z+$Xo~(Lz?u!@OHB(Vjz1#%t?zJqLf^T&{gm9`mgYs1d8`IB@2fh(Y}U_poC^~>6I$b>bAMnta;7fumMj5I<&FLgRW0k7vCo=q01n{>WCTxcg>zH zxngrree?Kl(NM%8j@|Byp|ZUtQ++)oZvRKOY?cc|}${u@1U8Sd7(bw~Y#6 zO|$VGS{Y1T&FCST1=cdr(c2hmSFd~pr7hdrer~e8>LgD5b5!M!H!vlO9kF=j-Hr31 zmh*k>nACmN)~mNw^TVP06qc2qghTrw!{Jmx==I66`s=Iy-jq18Ecm!KeJGZA^^Uh7 z#>;i}$i>=S_?C@YqV-Ns=za70aO|JIuJI~;O?-?p*qCNcqGhQSzbm z<`m_FTkMk66nDFJRdnKMHlL7t?GUS zJ$_uX%5t~_2k0)bpF_aPhTK|R7Bko#!N=yxgHIy50@{D$q7 zQLvMz+)y&GXoz-@_U9s|MEPxA+mYhy1K-KcfUxbSMG3Qb{TE8z1^BHpyauy>C|e=E zVXMDF61eEwn!u9v0qcC;TYY!mRQW?|)`{fr&elsx<(e9SmCBtWvmh7Q_bywrV%}Q= zoVo2-(3Ln}+P}GOIvuEEdAElH=cF6?FS>_%QU=u2ynJFh%JhEscHDqZt^Qr{*YR#0 z^(y@5o)`SwfJToAy@#W0XDSAtxoXO!tgP=1dA%8iGZP3$m`SxP0QsK5@{5(0Lt*H- zcOt0)5ZX-63tq~<;uK^gx<=#6P?I#$$I#e5 zEFGcWqurQxXq92F5E{9sCn;#|2tg+V8l!7KYo&`C#^|$@bU-78C z@|O*exEmVvYITm*63eyJi}O$uIGbk8rBWUz061+~WFjwypk2(wgGSCX-U5S{6G&E> zjaB*r7o)3JX&8)pv-6dcMkoE!@P>*L1UG6fsn=v*7-CPT=vgYLyoPSjO32kUR2_KI zan;a#Tb7F0uH21{SZ9zq|2b%m9S+Vu7>PYNt#Q?rNnrF&Pukya4<)2b5X60ihHTm> zvfF2Wtvj%@&p(PZvwii~qQ2U0F8SN69?q`=saejzHF61+I@Fn?v=zsc7GpoXp?K$U zpW(BKV&JaD0@wjVgSi2~s5BJ&pi33E+bWj$mg8Se;(AG#l~2r=FTl8{y~@r-Zc4H4 zTa8(c^a@w7_K5U+o#p5be=STh6os=f8P9TEQp3FQMLwM&Nj5MhS+*xWk(b>i3={$f zznABGmNA)u!&RIS8)nS?w__l5J1#V}gF` zV@Qw~6O}xOkE4(oeA@&NntSfm6oF}gXR(=Zq_={Y*6 z6nLb;du=Z`!FWL2@-<>#-3~8zujI*`OsI%s9y(H+k zeRv)mJ{ZsD;{2{(1&`*DfXysQA+K|i;8`kGeNP4VGbokbQA~JKB&T-~Yiz~8^3l5U z-dpN#Ab;KY91hb6+F1nvII!)UER`Ng_iSNbPY8xhNE+RA_0rjUzQWYv)9Ab9^rFaw znBImB0ms7!i()Ld_T9@NZVs4X5JM#$37)-7#Usay3IO!x?v(6Z@#}@a8vm*75lk;+ z7CNVqD2FS*f*#O}{rgp^T(jkZp6M;-!nykvgxu;we67{YzhyhloZd53QtRn(%6w7A za}h~atwr&-$OX351f3|(O~-4Ei28@pGkIh!wNP%2l4|_9`whx&4Tr#KdfgoL7*=2x zcx!6ro4ozjSWzk4gJz{honr(LgsW|GWwcc*s+5uQl4yCTX}4@r)5Vh*U?Mwx%~st z>pSjRut#=J2jVwQ_{OFZc|1@t%9Sf)Far${=Z_ZGD_B1yvaPQ#f`=^Jvganp>Rq4I z)zN(AD$Univ;H9)fj_@Pwhk=p>_Nb z{h}Qnse8XGYmy#sj`fkyE-v2>aI@LfRI}1|67!!>kwowW-QAr#0P+J7sZgZSUc`{a zaOpHg;s%Ccf>5k{kAzPV*R3op1oG)jsaQhyA{)MrLG2SAQ@zJxvMl$u`QztJ+~@E5 z$QQMo?+^Tz>Q=Lzy!eVoI#CYL&dy(CxbF^m@EG+hNQHJWsune0wLs`4AJ_N7J}D(c zU=aU)8!`Ytcy;n$8YTkk1`xwuu29AO`!|W>>pIFsiI}>s)gJCmJ&8DfJ!d4A$l0<@ zBz%R&U88LlJx^e;mt(%2ZY(t+&X9X3>R$q#OfAjLM^Bc2Hu<-;R%$`cm)iRe!C5Bq zltBOc^9GhZ=Z)$MHgy8b&_3b22Dh;SOBBOrpKd~^zguMRCt3o;MvQ2`yt)zO!x~a zpGM-_yqP&z+tcyN%R2|f5A8+ZzRVqsW+x>+=aRMrO6 zwHK$mTu(pAuQuDCcC*H!zE$xx{{Ww;kcC5412!`WIshiFt9P3(yM`oLtqU#E-EZHQp@)UkM(OsSwR^e=xw=;u${cl|QHRQX;D zwcsf}u!%(6l#F`E<=Ctpp--EOH5a`sN%!Psrz`x+eBhms+LnoR1KiPg(1+=Q{ywa&&0JH8w{pSDEid+q&y}$_Xa)2T{J0GAKw5-Y*qU*80eduBX(Ud(bm=;pM4%I|s{dYX`1PW=+S zTv#1AZJ!OEhx|`>Tjh+kVGBjwI6h7!^bIlQHZcKeuv~30`E6-|a{NM!cpUF0_KLbk z`_t%D$5I&o_({PDhf$~SpoqOTgCYtA>c2HiEm*4{a8#slz@ClUzd~D z$;lW2tcr*ON8Y^(<=n+z4=7Rx#Zm}>XTn~Ov zwTotPR4{S!ObgsQ^?#h~xMJ&#ytsfyU2Mb0AdxPm(5mmXY+8VbTI`2Ku)7y2z2+|0 zI|QFOJz!1!xI!O=(7C7#B0W5N6Xt63ZBFC(&aN`Jwyy|Vz=3N)z8ir1r`MHGmO0|B zeE9oqi(TIv88Fb;Q^W|^553*owLb$cRO?gc``t}K1)&7LKs8ypvHlCjGXYoHFUr>L5)Yd)B)9{hbWKY8HGnMFhe3sQ>@+ zz(Ch)C<#tw_XT~dG7<1tHL+GEka^vU=SH?A=+Ov+%x$nF9Z8`yb9u)y{KXb`{!-hn zKss4THjFI}3~HBnDXe+$!7nXJykVB&Hl?w-$9dH;r04nWO)wBgPDu&6EvfG}ckIKQ z2)YkN6m1PH28Q!XDA!%Gd9Py)Jn$;pK@nkB0rnv@oeAjMa(9O;{OQ(`Fd4}KfVJ_8 z10Y#N8jigHPL1`s5S50|YdCH0HVU*lRZ;wPij9pqShvzVzrdq1v54dQok{`|v8rVw z$bAlokA9MBvB2}(drfl681eOf@a0DQ#R3;ghk*DD^cH*B?);3|B=GN7sNGv!JoB?% zG4Z|AefauAc=Wa9I+LD7fA(H%3JVmyGA-atdp*gGr!Nqw_KH>pa7z8zxr%nV=KsWyF-8S52oEX~N`0H&p zzf+m(fnKviny-)%K>40jsM~36_3CQzFGBy_=o@5Zs^`fe>v8$iK7{Q$Drz*@XQ{hFGG#3&q&ivsf`uY84GZ6H=Dr^5e!nFCffXH-if( z-45>&0RD)VoSyAOqeCbh5FQ>WrB$srZ)L_4!|gq|`!WFhGH`%Dv`paJ#R!2I)UT7~ zVfyMR7)P$=pK7ISG30mq`;O>Z=9>Ff+##MMz+KKN3y&7X3)$cj*sFIJAz|Yw=X@dL z-dZQfyO3Z!i6m{~?$2hyxduLW)vZRN4MT(Tv357{;}$ouBH=f%cKcqO1jt%1Oi#(U z^m<_!lckLXFm5b`HhF?4VtW%}A4Du}^k}!S5P z_)8aP)MoQDE6Z!Vz-5%c&D_Dzb3rKwXH(-`mF_G@=RG@|j3)u?`rBLt?8H?OZwv{e zKTmIPSkHVlHwjFNz_692<|w7vz5uJIt2oB0!DFu5ZFc)N4<$Hxn?Bt=whlC7?G8lZ zV1AOiC*0t)U0|q|-pn?s9!*PDI->hua}t-{lI2*~Y*IQghG>rY)q=k8vU|ReUDUHU%YkFK>TT^U~OW7MyfMuI(!k^J(WZ0(@<&0QCZ z-7%E;S5JNA)OJ7C0^g{b@zD#y&V?}hrH6334{#3gF^@6MFPuo@KHalypZ7+75c1=R zedyb~13!8_H!SUSwD=QxWgQDjl z>{ji7HQZA7>DImw)3M@K79+Y$4A5V-IeqDOBc>jUpm&^5gIpkk$jmmj9 z&hTsZ@Qw(8xI17LhxM1TT#qbTm0v=q7)uoJVbh9phW)J%=vTj-1e)EMW9oXC&9DMb z2Ve(87Dnm^OKl(|UigHqckcvu_M05sF*q=PjU{9sx}9WsoUYVnR{taixq~G(95DBM zUI%iYFD?mWYwJAsyxi)yZAYvs#`C`$@jf7B#5eZ)!`6v$L|sw5gQd9?wTR&lJS%al?8C*{d~{;2)n^rujCbKA z?@9)*YblA(ztJr1LhJU4BP?$zAs>Wh^8*MXu!Y&t4l59lCH`Wb5aqI?q7%02l9MMB1v?g@sw0`rtK^oC>yFIYoKlB8_pX_LZ4ulOv40yMb+zwzy-Z>xA5!i7+-1ClG5b!-?P$jW}>^n`Mb?`#|8!fY%=G zpLHHCTL(g@} zET-x1JIU;7CMNPA7@E-dJy^+d5xKrg_9c3(%UsSv)EFPnf zvz`c8eT@m2f~^u?&32}t>+QTf^N%NO93Ht@wgfQ3Jfd56b-Liql_VyKTIhNrTyc)-d^|!^#V;1*`4o;I#cLc1v1UD4 zUeblNHg9k4W}ftmHO>H}jK*!gUZOQnf2c_TY!dS~9^i71tUJ9;q(|fM$q=IZC97tI9t`?sc*t zK<_N1;VF-{t;L<;__m(Vl0@IMa>(CA1H3;@9y@u5f#S_& z8R*NfwmPeJwkrD@*t)A^*+Vmga<{KdpFIcbIAKX64m?Wc5aO(1P8jlid#!!J64AT& zrk8u8eYnRwt4m2mumsy)fk(ld1D*mt4@l1>20uH7IP^SsCOSnRTErgR?DQG&L4qt? zmE_^WwB_apUsWBo5!kLrtH&;CVQJ|Pq-%Q7MYXCRqXq+% zsU{W?)tn%%8BLK&w0CJVIQR%IgYe9L61U;3Cq&=dbiz!kUpu{j{&Yutk2u|e>*!m` zpQTf063iBT6+$naphN6CLJ>*8O33eFrxE=XN=^KarEo&RmxYegbSUQ31_{VKQg43P z0YR5(yozhyvmDpa6IsvXb__%pdEXpOJWLk<_msX^|LAqp z(D%njlb}6s8@If8_V&cDG(WHgNWT*<(J z2y^8~DdKHJ=!Zlr_VsbQy2ZlpgCCR9_McTs#?aw@!^={#!%v4%lL5bcv=0dxlL}*L z)aSHc;W%F>qG7RGZ*PmeY#9C1ip}e<)P~zAzD%fM9041zWjgd+`k<=hb7v7+CKF3E zuYfQC3xpYrITA2PkWmPT2OqFEl1LYpn*1NVa2^Y@fjg!~Bp7 zx~kAfc)HwRnY~|_O5Z}mT1D@E)M_p{9%AC!J)S~4d(xR{6>lQV&)hE($ODSji5Nl- z2-x!bI0sdW92wrp_<-`su!_X<8kyDm1_m41cH!_|j!;4}Oyd$??i{V`W2Wn1L@U$L z>A1U0pCoJWi)M^dVJf=dB`d64x*%7;`cdf!^qxsK4zRWvRlSHClAck^k>_|(a29<+ z%X6GAlx!Z`wF>+M9cCfWHh^?cQ&0tcrr-ethn`Bs=ULk}{w(Te+u2$b2$A6+l!}l3 zL`@fZosCLv)nh}wXtX*Y#bQE0_$Q*xV(SssMai*4h{2+#=nO+PqAebJS=f&UC<1c6 zb~FA`jTL{xp49oRMUp)&xcy;J(sSC4)9oLJ`ew|d@dASD8KM{irC)ouTrImh5Xq?*oT=wOY z$`m1Xp7cC#KQ2PrG@i&a12=@|lL%^D2Ata8ptikdj7c<_IK}!nXE%qHZfdw`I{}5% zN99PMgficIGZ@520}y?l5OhaiB%{}a*Yl5y`9o$hw!38t2&Dj zV#?^~j4iyG`S`eZq~*q^(>UtfN}ViBo$D4h!Blu*4a;sCFg^Q1zRmm+t;gSg}r% zVJlh$n*7RKUc#BL_$ML^t4$SjfNhG-R(~&VqE3EzEBY$s_x>M%6;X1e2 zdb^FzKcs($(UC*!8@E=}omA09URd0t2`SR3V73Rluvi40{1x1y5gJIw5nHTh$8NRX zrJdKCrS^4C7fIuTei3^YyoKL7Xr<598V}$9wu0J6@At0e{qKF1YuDzvoh+#eJz6zZ z>&7(0y_@|<{L@qVC(UIy%$Ri}u=43Kh`wefY^O(&2UY1c>E;DIS`%j;!UA3Hdm*zC zrw5q36s0L+OTmzRnqZaNd2L|}$8uAY>D%6NEOtq|zX6a`?ZSX_BO?iJ=AOdd=Z7l@ zthF2Wn#b*It=B?W0NVm*tW+u2A%xWa6qb*qDGR@FAgeYyDIms3Z{bMR<%DE5UhJkX zBU3k+{mO z=b3@`adpcN4IN6Xkq9Rv32|&7s$Xvq{7iv3ZZ_VgZjMtw%1T>G8Z5V^Iw}i{yc&)_ z!*$P7#Ye;>u_9Hh)Y61G`DELBiXJ~`3_IUw$On2x!B@M?*O#YNs#7a+R7E=cUlaiU z>qG|KdeO7atB|GrD}wJ!7+aPSq8vzHz3>sdPdHCEx^fv`FhgBSeQr-G{Ht^}`>I?x zL?8drq0%e=Lzp7-{)?k%Pfn!=a*!1+c72B@lquhz zOYE%cZsTMi1(i51p%ruBQ*z-XK1V=-l;=PMdK)B7-)?z)GNkDhh6*IW78mMEf2^L} zrRC38?j{(3=zca~huF8Q<1uX0f8$P{Yjlivhe>8#M_ZWh5UhILlgo;@le*!+kQs>H2>&Egv&wEFjn);1o>`x+vQS4v= zbyzV6YdZkMu3RRp#hAJgVIBnhM>o=0Mdt(tz`A5|@wbC@jGX#DaPeKuYa1^sAh+&k z*``!{_I|kmXkb5#Kcf-{JaTl#RFq$ZXJT%yczhGZU}&Nz;ZQgTV8w#W&wQ^I>Igrii!L4ZKtB_5&!U?j?{ftv6eM5i9YInIx;{H`*t?oOR#~MM;@@%jm#eNL0`eW3uDDJl-Tz zh`%Or*^hzD(+!*FPoxQu0b#(~-KIsO26OGOp4Ug)FwJiHv)=*A!2?FrkFI#Tf1Vra} zeJ4KVX=&2UZ;$s$h5E__4T?5Rv2Mo)T8O=LB>Ehj3o4a7WPRx z)X$xtzx{)b7{mUF*;hdvR`{VK~U}&@l`!Ur1~JV_aI!pESa!uHha9foJZzPD0VDqLY*V zl>J~b=in>C!VfDnPjfy?-Dlv65|pZc=LH~r$K!H2Qg#c&>4q=pR4>!wx{OTv3B#{} zcjBs;R^C%(EF!~sb+EK?ZEiN=>AAC4WWu^E*M=RDVK;U`sI3t00krRvvc_Q8uJ(9) zYRkSQ`9XR2XOi(!_J4Md?&fOje=~o11-{yYp0&62u_*1z(|y;s>4!%_Y(4;Jw0 z2p}qTpL*(ZJM+Vx>#^T}jW+ro^+B^y+n=31+BPWi+QxpFXyCf+byrx!fq6 z2R@BOQ4R>0EWLX4(GQG4M%8d(tk;L}y!`UZO{neH?{yhIe0bD^S>LBpw+gd^MU5`A z6{wb7wrqo--o0D5Hm2=lN9qw_n38A7-zT5^Vs!`i{rBH*Q}Z|7bdyY(G9?IIxQIqy zgpPj%Drg4+dO-!*7-EQ_@DVM(ls=5Xhz~ya%my}@5#14>uKSczPLWlsHp=a{-*3ye zigKSEC<>m#gFXo1>%)86lFd9@WZCE z7#wxfQPR72Z=3yi=%I&9y=q}F+L3ucz7!@i4H#Ks=7!lWqGsxwb^C<{G#@dVMc)CF z%~X6*3n4`XR4HC@#TB+pjaiV58(A)pVA|8r`M#qdPk5$n+iLRi%U|0}2s0=MBM2dv zUV5p`uoTveQMeuzWrxJRDmIx88Z=e9bg69$4Dws&9YYK;6c3;Qo(wp5(a;3?D+c5~ z{`h05P$9(zBv{V8qd=Ye>8Bqrix<287EMw`NxvN5QFMX`>e#Qn_FCmbPM0sf7$Ofm z@IaAh8});3n4-+Dy#+A=q!<8`ghrq1uRqz=ro&*fk*p{XUJpv6Da_G+m|aeuzVE*K zq zdN9}X=Wn$4?7x2#YZsAfcee+^q6O>DJMWYZ9crpj{FLdvXM_5!x8ADtb&cG8_tUm) z4MC@%9iq=`s#8&QNNliVL;m2wLzL0zXn7S=yBk9cyB|EG4R(fZ?F^W$pl?J26e|Vp zy6Y}e^}jPf0SwDhd-gn8>EL>!hn(A0luUIIMs475yzxex_5>GR zc&HIYmYMAe@r5X|ALRDiZ@2gv#qfs=F%xplHJ6)^bH^Re*q#aq=B_f3{y9%jyt^SpDZe|FJr;vml);+hRR1%MGYUyoYtdUwrXD6-?^O{r5j_OR@^{ zES18}b3g}*5cSnpU#k#xlnGV{STV#9!|sPj0i+=PY+j&0q2J|959lPclVzscQqZw2 zKm#wiTlT_5EDR(2~=QC zDrMS`B_prC`k85gLd9lbR&3tmiJ%t>3K~B`0gMoW!uauv^gBc@zZ?PK8WXGvLUfre zU~@IX8G6bYwPxcj`$QPsc0?#alnZ|;oI}AVb!QK_p2r(?I zxbp*hOE}n(4S39iFf&!y46*+PEZhb8CNw#rz2v_89yY zDtsI*S6+Fg3TV}XyD`KN!|n**y%zQi2q&F0kixQUG(|$&pl9@ry9%^Op;3`OYUId~ zwvThxtXYNLclh|AmxUd77|>w)5cr2P&NxE`4*bamqS#kh82em&zgO6_es4voTW-1H z?!X;GF@O!pXs#$*HeMcj=xt>n$J$;22t#3j5e@bsEL@l__3D)~28NBg*gH!gCr_Si z%q<6?ArwrVnl21bUwrXN#!T`Zg#j8jX=HjCtynPh%pR~$gpIe1_&~^DvRS*z=3GXA zA`hwC7SOUZd-e)Vb0s^piTwdA8{@sZI+}zYc9>i`2-cr6Gr{t)Xb>yPlDr|GI8%j< z{7lP3jCb{W!ax{Ab@bS=(@i^7lO}a6-zam+X-7c*Jo)64wzO*S;K9@#HA zv}v}MxmmL&whyGBovH_Ug7CrAJaw1Nmdv~mKU&wghrmxgLLizmXO8V#+8HLFy&3Pn z|BWeLIPSPZY=2ilK?luE%^*Y!F~qPt0($WI=il1Cyn_#JZ8Ncj zL4VOO35`TRfW|Wb2>mP!K)>6zZELFzI9rODX_k00dmLUhQ4la_Ib_HvP4m9Cf32{E zvq(V4S&6Y}(|URBwV}!beX0F>odVNm`V0C&l)s?zokMVA*mcANklg@OW;WVRojOJd zz!YW9J~F?;SZaZmEl%Hd0!VpduFwU(qXGy76(NAL70|N{v&K@NsZ-qsuL~|X(v}x- z%6nll+N6!y6d33aKm1A=-;w6Wk{r^G8d``Z%hta9@+%oLX0$QM?1g~IWb}MnOe`}e zvuCf=cT}*^B=!TqutT7Bw!`4P5N&2X{_p?Zku_`5wS&0PmJmgAq=e1_q6?Ay_~Wr! z?q91Qn_z+&c~KCe&mJZAD~%a5%>uvjh3PbqtAWtY?>L)_a2Oo^my0O;UR*M!bOjR#oKK}Si zP3L(1&ZYLP2m$Qxpd;JXObnxi@4x?TAb@l)a0kaI9l{5D#5e)IOPA(y_uY4!5EVlV zG3?%e9(V!dpo3Z!SO8(54K?B@)9Bs%8L3t+$(C!={}m>na}4Zp2Gff#4wCP_`%*e| z*w5%rVF)2($BxxF$C&zX1dzfKY_|E&;zLteOux0OgE{1n7eLVR zS)oFO;7$y?f|vlZ8vrI1#u{d>WXaV=a2SpCDnnr)ca@PP9vHv{3pUtjKcl{!sQ_Wg zD^8e3n0iK~X=se3!#sZY;ZPMimTQBqVnnfI$>t37u^kcxN}9?Hz(|r7O=tsgx$>qt<>+EVRguF#6y_d zRpy@jq!Sr6YHA>W)U*6&7KHplkid|S)L+VL%$PBzXP#N1@4ow4^JBRr#zjFV=_g^TH*H#`w0W8g8Z=P*%uMUw zVde`mfW@kbAw$Nf@Uc&kr9Uq)yF;H2Z^hsad=1O7=o8@~c2=1O&oL0^XN_V4NWl;j zKz0+r95dy4$RUT=`ghjyzxUqP%5YDTw6rucjKuEjx_FpD1c(I-)+@7J(U?#eZQcbz z@k}}U63x7^3_+vlu%?@dYU$^Ewg7&QYLbZ9DD4Ma_g-(+uD5?(4qw2 z3jtxox^m_6wxNvCAZ)$^0fqZ4KdN8f5fn}chj6nLi4hNGY!Is0zy~7=+!CynD!|mR z=V6@v609A`W7gv`GsIagjI48g=9y;%+Lt;Mi}2yWv@kOXtbygb-+%v0`SZ`;jA(ix zWM?}71P}->0tgcxjT_f7;f`4X@)tps{6H9c=%E+nl~)Furk3i}E134L-o1O;(kqq? zuz%;Cd-}=Bl}k0hZnmXryE5~%GoY>`xH8JurcFH)kkFxzkj>IQ>KDthm_cgYy19m} zY_npN?Q_pPXZ3||q&*>|uv~#zk_i(gsE{>M(=OUBc6|vJb^3q*`=8a@R;^mvejfIx zRH{@d2oXaJG3@T}0tjlvIm3v)U}xwWgM0K-ELTNcINI;%qt8G8RMRdA{VYm4iJ(DW zTDNYR()JCu#F>F7(!_w1AHdq#0Z00dp+kSw^tX(<3UO#Zbd*^mcm{YJc$=9sr)IB~ z;CuM??R^)6M0`tZ2BdIMV#SK_v90{O8DMNsPs-@^%P+qy0|$;)f>7EvG^6i(XP8H% z{X6csLy5=|C5Bb3!N7zwI{q}Z7)d`m!iWxL zXU=9QOu*#2VE_?3oF#hlPn_84Fr4U^F3~>FJr8=K9(xbTcCQzyI~u?-yy& zB1IX_*0xj)MwtT7)~F@50XP9f$_#%oz1Su!PzE;)@?u zz^WowU3Hc1gWx;2x5UT;0gZDg9)J83L77+8s`1)MX6iS`o8X3UL*1fGSO$ln!zOS9 zI%eBo*irS!J`6y4aXts5NGM~7Ca4c|B9tFX#K;FaCWJP$umQe-d_$ch0z5Mve49UM zm^y@@$MfHRKf_LJf9k2eHuJTkpw6+EiuKV5I&_BAKiW8X$$MgmA%=esnAJW1{GQq` zh}?PS`KCAm#&$+~rpjE3><9DF{?CaPTpw;Zdp?^bDV{!38 zdkSI#$ZiY-5f~Ikm0y1OQ=8Up+&IP7t)sq|L+G}LumEzz5lwBT1BQ!bIxsj0GcZ=z zEGJ@(Bb(eHd=MZ;vY|7lopz{=sKc!LQIO&QBkp_yOd-ove*b-$66cmCgz!x)SAjr6 z9AUl@vLNVeu7mO9+nGk4JbAsvhb-5yVWRmn>dfiuVaAUoX$WZK1$o0r^|#-S(rZy> zv$gGiVbpwg9|>X9o_u)jxtEmyi|oIDb(;-95TH|`%=vCiUZX(d0r?HlKJ2i@#%MDe zfB?hH0y9t8bWG$0^@*7%2sZnMVC07mov8vzqNzzFpAk%oi^)d7pdKNJpfq6AsD;v? zK`C2Oh>*dzV5mpo!SvAvlC2Cwe8;{_EyPO<%M%pepe7*@Q3=&I_ zAOwuQ!_YAj9bW#!h&@Db{P<-W$9=ZJ7DJ=*VPUdh$Y3&APQ$ViY#61bOE)T0c7X{W zNd3{AI^7l^)(B@zr?OlPMsmZ33~ASHKN~G#nir;+ZzTU1^*|uuJDFW#E$yU9>r_}N zVazc3hd}2E3bO|=oy5l@KGe|5MgVE)?sXx>sUzfLTKv<)*LhztNMfiY0pE`BA`irz_Q_VUqro!_RbfOLNfsW_R zH{Z17dI$*%7G$VUSp;?zhCwYN+b}RnMoWtaG=#y z@`!pwePbUABXF_39x=r5?*@Ivx##xOK33$Rhpx6!^6(%Fw1fT^+QFa}GsE=j(1uyF z{;^qk25C6wirM|$1*DTSvLtNAjD@xgw`R>6)@P#W5oVo1r~GI->csE7^F`^|^HiGw zp8n`LfPt4_Aa=%##o9Nf*j`2WExwCB5rKvBLP%l2a(61DerY8QqaX3;Gn z`Cgf@Ogqn`Wy^ZTATl!U_ldwLF+#pO0>%y@i_r{(CYH+ZZ3s^YO9*KQBQST&^!Vjx zj5agsec*xBZA2bo1XD=I00AOz80{v{iHA`rmgz9l0#mvt0Opz5wV^|QQGrgRLx)DT z%nt2PbSNw_;=3`7{xkKAhLkI>JjOIL0XkCzS7t-pM#CX0tj*Vaqb^mj837o1KPyFE zhCAfl1$3}2wc=7@(O19_1C{rKbJ2ECCV#nT_|H6%-?@6QKnjK zc|d~()wL5{U`q`uRxD|q(6VLeDr7K4f0WfFIwA6#x`y!aZvkxr2Ei{MV=oa?^mL?j zNYo>QG6a1(W7Oq>gAcB2`=b!Z=*VcN%&yFwxm4=ZDQDVWP%^=iH}Zt`wL8oL#SlXb zg#!k4&Og7m(att)${T~qz!nTHOgD6P#*F1EWTY6QPQS~bk3W~_-vs(g1TL00fB*gO z))%m%fPEAUs=!|$gs>NonfG_!{aJ3h=``ulqsML~fJB0_Lb!r{L!;>@q33?}1pbsA zeF1|>G3+{G0?5A{GzLag5JX`3Xe1Ckm`a2c8V_qsX+Vs+GQt8;U^V~(!L%Zc2tvrn z%fB6dT9wfYM(r^O6wGEYvq9cKTwpHQK%SOX)}~p>8yHN4FP2x4M=;&w4es4>)V{F6 z^fR+-Axamp* zTwlu|4{aWr=x5X!h(O`Q&TLTMok8C)V88&I`Gt1U&q6bq1;#ylwqrB<^}9;WJ@?#y iHRJwo?$>rNi2Og@qJx+Pexz{#0000t3 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

    K_27g(GhK0it1gqLgx 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 U*Wxzh3-Bc=DkoAcq#yYI0NcEA8~^|S diff --git a/app/src/main/res/drawable/nucleus2.png b/app/src/main/res/drawable/nucleus2.png deleted file mode 100644 index 5c9584eba06e1b488f9e92892bb6698b870d835d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173104 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�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 diff --git a/app/src/main/res/drawable/nucleus3.png b/app/src/main/res/drawable/nucleus3.png deleted file mode 100644 index 4df9e09ba5293af263fbb307d04afec28a0ec534..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134987 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%0Dc7@nJ?4$#@z*mz#4XB+%AICodH&Or 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 diff --git a/app/src/main/res/drawable/nucleusg.png b/app/src/main/res/drawable/nucleusg.png deleted file mode 100644 index 6454a1f7960dfdfe4527ba7bb626d309c92a87a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243607 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

    r6|682Y`1cqGbm0|yO4BjvsWtXX_d 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 z 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νTZ~6yDv440%p&uF{g)rDz3Z0wD?gQ|ovv zcfts@Zy8Az#7C?9qTvJq1Tc)A@klc-${#_lB~a0cObot?Z{wJS)vjve78SK$J-MYi3_x0a1T}t38Ex@+iKLoWOJ;K$S;A3B z%|$fY%y3ExL((R69Of}HL#UgMcxF5b{e}*BUn|zAj}b=Xm}8*nUCT+&3JhIbyDhOO z<5(S5MWjnrTE$Ls=TuoZ5b4!fVOG{ggoi}$97lUB#s3SVJb}7v7?uhpRVV%Varx=U ztgO~?IEDKgQsQv-4XtT`Gveb`KbMT8>!I4p&b%%ZRH!{@H&LO`sZDpYObxFJpLg1ZW^#&WS6jq zwt4IIU4o>Bubo9J=SNb8mnyRF)gra8V$5(AxtMW18yw?8T zr}GO%V|&gL{qg;=i#vW}v0JJL(IolV{b(GvNBO_reZsb)buPpH_T20Xy-*hIcA!-B zQU2NCp_|QHiF&3Ql|&xCG^~SV-mT@UnWQ8(OYhPzXMjeK!zaGHpzDd&J2a@^)bZP> zDDoAcu3sL^;3y=qLxVoTvt0vKnbzddT{nRWs0NO^%8aZ3aykWmWvTbqwdFn|HIyQ+ zr9!3jXGu?Qfoav*HM>?xNXa*bd|Oh;LdU@E?{^;tH$Me#O17ze(n!#$>BPtRDeKT^ z$QI~33IKSbb@#thKavG}gxQ#KL6$zX1ptbRIe7P(ko=YQRAS6Cu9V3_VVV0Z=*`#Y;lacGm9+Dge2B0nd880w)jFPtXuX z!BBHH=>^9CY802Io3dec?8M-ahfzi>;l!%>0de#2Tj|^HrINOLPQv7)$I-TpjD3{> zE|EhSdVQ9SBKVopl#`n-3@t9UP@9p;nJB5$U8~{R&D%DOc>cq*XkTU7jhN__LE)Q~ zG^@SiSz$TGKIo*zrmc_>V}aV+b4#y)S%0embfU(boiAqoQpL%mbx2{pNiFXzCNjln zVZ6VlEz4N?Gvtwmsb9Z6=ctP?(Z7L-%%0yLppFi9$~8{w>3@LIcgrX&dG0jsoDRuS zchK?h=H|Dt-9cPcWn*nC6elWWyXLHkS7*mtK{Y_OP{ zkE5e|Ez3o^cuHX_96hgPln~+-=Ac6IoC0R)%$ zA@>y@l9SMJ@89pW$UNlW2c5d^plP=^fD)IYwAl9V@r1%@*k3ob^qv9>Qh+*=n{1g>R_n zEbbejq5Mxe-x@tBDdf3YFDKk?{9NuSaTlCy^j_N{6+AQPoYPe@4fhZ4%-qo(5JO=% zqkJR#dYEU2az{44-!Qxk#=LX!X*mT(es|=`FvILzhYg{6oI~gw9HM6ARCqf9yMO(e z`tIoMvmYgm8UhDsiNXho%#ir!?ytycIPToLdBhKNFJ8TuMQCIESLUXOGDO!-5t4V_ zpTR{gbvVD>;DP`CIvm=A55^ZbKZE~_UyBBB29FVgTp#eIu5?vHeD1Q zw)HxLj(x{xn9z=uxGTJNn9lWF)d;a2KIRKY@@$QXY3{8!j!=f(7UiDZGR&isx)*OL zqOGm46uSn-CN7c<-Dl5D%4=V?2J-n9wtJD@G%TGsw;y+hl?jb6JHl2(ndunUb`Z76 zB}6T`NXz4_@EHCPp7L*hih6^0z~ElM$XZF!kv;-)xi}ll4Kc4+ms8rZhCfc#UtSD| zd41L1t`AomR>ET)a_U*pYva>vbrtAUM`(ZP1({Wqam>cVrZaEMHngf(@pL^%sHS@N8pHfpF=RY3MG%jO-cbE z>gU%B4&SGR;&F~W?L(r+cGrK3YouzR6UtLgcX=Rwob|+(lK>n-2TT(Mi3X%sAzomz zuxEdcqzBH?%fTx@H+c((Wnm+CA=d*Ft#o`@WH(#)D_8^%&YFXBr+Tq#Y$b)$ebxq` zV;RurkPY|c6H!aj8{U0yt(%>ue{L$4vcDjU?O{PO$-%7lZ+s@d|T`B+As+G$}x=*)7|Br490V z06!0Xjh-w!`v>CY)azCWvC;EEr?(q{v`{8BCOG3RG%smLW=yZx+Ztv`kd#85AZV!H z7A%$ue4PGQYFkTotDAP3;A;NB8i`uA**Ovh*$kBbG6)W(iehyvz0og>pyasbD8xux zh{8Z;dsVPDuolYkC76+_z4?9Mac{weyB?NWu#JLup+CWrWqEDh@PZS~ny7p4#_@@A zS(Nh=Ze zVbb}v_l3Kp$y_dOgn@Sx(HkW^zp`nHlROE-7F3vrUK!=|e!6F)}UI@g^eY!*^RRtX=co>yR$wV#-vkKux z=qcJkN_H$I?3w2}##}AeerZd98>yN`nUJlo>Muz5 zwy(|SLD6R|@bY^4t8zVy5YsT|yN#x7UT~^kv)y{kAW@4RHct@jt5&0%n>^te2QrurQVzEGNlUn z1&LAq>@K?{E7>cAhS`;YbDZDl(2=+`+tr_KWBVgF?rl}))xn&zG*u6Ty;3c$wc@Jx ziE+%U{ffmI{8OSAxWd_T1QnHHBc9ia41EG3&E{Ycnf5~XBe*1by2AFG(332`gfEu) z_f$@%6?auOQ@$v?%TrAwQ!T673S;o=s?b)M)3feds7}n}xOag$3pb-E+05uUT~iBF zEbr}L_T{DznLK`qxe)iNnK^81ZojB^J@&oU5j|f*^TpUFh+bgM&iP|PdTsBROuVs; z=!;!%!ba_WwmtR^*6|J~1IqkmOorE@DN{Oxq<>xzhBH-E28;Fm18&B{qO8*d$1*)c zl`MJ-0m?M~J=vOyMFzD!Ir((j!YJJr5;^_Z)S^|YD)vLVh!5d&ykFc+xbN|xF(*06hu_+?exZa-Z{!fVeu(VV*C2r%VpO^47|(H)j@|JN zBvU(|MXzT~3vQB~lEen;SA3gwDD%Z2^oW7OVO$dMotkU{wqhtxobFMCC>witnUujG zQ8@_~5o_t{t4xmi(%&kDbjPCg5Tf?!{x8kh(@79L^ht7E3TT;aJeV8-_p!By;oV%y4U`j`me@K7IH3fKFot zAM)sQ`@-vc<0WU9Fonzf!ozEq6q$i(X1x?U8^ZL?>JHI&>p<7xq3SzP`8)H1(u$om zm5_d?zhXR4?BI#`x$CX^PxWMWM7D8PL-z1ixt_f=K2HR19{)dvYi7rw(hh!YIFnT_ zVB)K$8LIZa`#1X=TP)l!4O3oNlm=!l1ZsVjzjT;u;dVaFo@B2`kK+}=)LE1xVF|Uu zb#KmuTrA-JlN5pXyEw#V={1jKxOXcby1?g@?mU&bJSB|F&!2d(ga%QtX%T~Y1d~1v z_XL6e*QB@*^8YMRG8t%{XF-=4s$l4zPK)h?Aj#hK(XgST@pPBS{u}0Dva3~RGPKYgR}RYmR899 z{k>+CX1d>#9I6nT`A+rjhpLOXc6q`k8=*k}7&8(Q66k`$52*Rz73m0e4Np=U8I{+7 z+LoG1zM+g*$LW|WX=i?_uWee$rzs3xMHLVa1fSpmThC@|!Hn;LzlvTG12IP&hRra( z_ZL6EXNbtiKcNT4rxzDCuy6D8y3UyB=o8-WSVW&Cg|dKBzA%bzCSiEpm#gmiYuFv_ zQPBTtOddKqI=$La;o-c!B{I6YK)>QBB`fM^5y4pUo z<~Sblq^b~pu$kFC879rBzqGx1NN-QSsY4Ei#&m@xmDLirF@7#+%*lZ-)+&EvZOwXr za}onO+86;N^<-h!pN)m|NXOFF4s45)V;K;SS8uD@+uQNk01s?yKNyPwmy$BFBLHRN z38YTuG3B;|QEG)&lN>^K>gVbmXtqbbTW%&wj%zY7G8&Jh3MBKIqXYW%$cZydNOmYr za!mp#ccx4ALV&1b4Il+wfEN|X;R+a)H4AkIyzucE8TJX=C7?@?DDbxN8YTS#xGQD2 znQI!D!vqHIFE!I4b3Pm$ODp8%-pBxk1V;H|^RB&n45oot2Y)d;?`tnJV5iEbWT5Lq zTCb9ahtT!$QpDLtpDD=Ip2R+mm%D0;$=n^?@87?7O&ec+_vg3*)CWiJN_9O^zH3@i zf|B~q#o}GFz$ulKlvGqF8Ml$d_hU5{7z2ye43KsJeGDV5Jvb(JQQ6^AL_K)r<>eI- zSSe&{DOm|KJMd$>LU2sa)_Z0foeR%Sh!Gj+=@EcK1ZQs)MabS{A%&!*ETjvMpSv{9 z`or*FH}Xuojy=p1#oP<=jD=%X%ic5=d+@|6+Vz?;eXs90mS*BJFXT?spktLNfp!Kes&WCmIFj95;b;z9LE`#kB?jDmJSKpA zp+9-iL9!m-3QK}^-tmI;OyuzD+Sl)EHvO4ySADJ#r851ZnDPUb@^vZu;Unzya>GFw zHo6uU`E3Vr)b1ppHAeP+&Z{)j>prbw#_p5Xv2P3?CdlSG3kJkm2>!USTc!=g$Hp3Y zt}c6DC|xLP8G7W?>7oZQcVTy!;PeAKI3?ib8q4(OmDdiO(R=9QziOXv`6MzD?0&5? zvnD5?vlp3qWTni%UMod*9`dir-S#F^vm(TVhefj#p)R<%vC9wF*O{X&?n!Is%hUA^ zB#;jfuaoa0?(^wRurxkCCO^_tg#D4zwXW8&FUXq<4(*9PH%l`!xw{Q!+_oitA0$;X z1#FTio%-q8MqGBsIxa4>`2>)x2_$d@aV6eFlCA~C0?C$sliSfgnG|Wa*|4b(sz|6b z-|7{e8p>C8jwmHl{=<7;W`w^Q&(K!h_I{G>`n|JXriG=BB=P5mM0TgKn_JyK!+~?^ zD7HT%K2SEBuWl7=OO0vS7AFg|B8vNFS^7dTFWWwYz`tX)1lmIryD zGotCh!RNzgX0H!%!yhi)NjbYuPIXBxh0OEkLvh1=*}hn%NaOj?1fH;Uu8dnw@vM`H zdDgt-k@AuAN#ijMru5v+26H_xs`1RYH*AE?D0x?^^8L!JF??vY(67AB6w8b=yU43A zwg~~&oL}>h1B|hNNRAbl9<~3;+?(Hxp5BNi6Ai+UZiBvKegO9cj**Hi^+Q?mVz2#Pv0*r35SS6Y_oxECeB*lvs|xrKw3^=zlRL#6V%MaYhE z3tmo2!aor+c-oKGSrY~8fUV@19PT@u5%&=^40kvany&3XEl`K_!Q~UpMe@@1F$Y@)2Os{g!l65d}ZLf=BW$ezz42BS51*qUJ5! z3vW`)(je7cD}?~eJrieSWn%LKeese-B$!>cw9zdFCuj*hfslWZiN zR?pg3aU?exVqSxwwNUG?U*cD4>xy4vXR{^491~C}I&o}dgkASHH+I;m#lD4v!Rg^l z)EP&{cf{)MdP0b#=O=EBxNC?4MH6y_Hq>-y{IqigN$~?(cXTlSf~wFxTWYwH;GA?c zWF1xLYD&EocOq97XYY6MH`}^7iwwaf7j>2K6*0ikX-IhHp=Zr(B{t&Hq+tkp@H-ocMH=&;@3YoBpbCsi_$^DOj)m=gOyOX(!94bUfTIjMZhk&fcqnmBgKgaEc974d(!P>^F@O z+h*o?xVFncHJ(gImZI?EO|X*G&WyvxW#%I*darabew_`EvN8nThHbpCz8vTUb{4mF z*bj(}+=}mmT?)6c|6%LR@iv_tXA_bLIJJ0t&%nm9 z*9Hv%P)P>J!R`yIvkS=P8N1IV;L(i146gkW1|i5Rq3UV*PXA21a1c9PDM-nSTu_*W z042A)K&}*R!e57QUrFHW^C<2#{#%x{W&H`bZxA}-M7lqx!((oEAAd%^)uqs+277Ug z*T|VN5Ld9mn2PoLwBNR3a>4s&Y6X2paxaU#bpIJu=|}{f!fmX~t7e-HCb0e$jRgX; zL0}T~$hs94N>#l79Cogn%46EAdn50>1H0OZ2ppZOo8hMe5!V#KC*#TsS;}cld^LOa zo+djWU7*p@=3l|{Ef6hCY=(pD5bZ>VY568&nBanGdMO6lY9$tdy6mzrqq-rY`jy2< z>efm7{XW}gd5;9g@`zbYE!Gqf=JJi;3Iw0qwU9PZ+Bx#3V17jiy}bc@Ivt!k1c=JIBg|;$IZ#g$^wt??b^)w zw4Oul;4g&gS5BL9fJ)x+S2P+prj30Ns-@)PF^I(;AG;D~uz23-C8yMsFl7+tNVmQt zB-w9Wn9ihU-dSL~=n**blnu#rC_&3jwAK*;uTz$3& zuT3F=RSH+?KL1H@sU~2CyoUI~Ut+A$nb~@!t<{0T$}||0Z2bfeyVDIJXD^RF6#wqs zgnQzrXbOzcIpvc89P!hIy&o3Rk7V=2ohLA{Jl8qgfW#0wqOrC~BW{M^bD}H|`H#qB z9ccwfC(y_-x3##hxtC0PBjW(?$?*R;x(Y|Q|39o94yU`vX{RT~X*N0Abocc1)Nyip zOiahdz6{gdWBQEg>29X;_wn-woV(BG{eH#sJg?`aDRZ@Et9Gn`-PM=lf4~LJatk%X z3_S`t#~kObA$9VqACY+Px*MqVJdoNDJSWurJrC~z3WWH?W@o9_Wu_e z5ik2~iR|})*UV68el5H(|G?tEo^rxH%0I)1^ zKOEMX$iKxa8!LlVxR~{5`cPyuxDZlG^`iV{{{>Cg}Tt{{}AbihHld;LH=7b?_zIWm!6QaMo%Ldy%88 z^!z(GVgga8C~Hq9fTQp}=^c8Q!Z08y5&%ZSPkQ=CUZnA#9n4pwQjt>-X$I;9b9L{zTAx?9WJKM>ETG-uQMCT3V#5N0zc3Xo_YFNo7?WLn9xoat5YPZ1X!us9C;>CXG*~@K2YNY9RjXIOC#oo4LAkCSt*x%)K zCeqgs5A`_kaFQ(M7euJ4{ey|MiR=LBWs)gY^@fX&FHY9MZwsxAV95(6R>N?lA#X9$remq!_;^kS5%(0P;n`AS zh)NH;Oj5Xr1%e06G)sg449vR242KUt#?|20?BQnsA(4rQ#0e^^@c(llWbb4pKOB75FZ6yp8VE1zFhI!31A&_{t} z|1u>SclRFw zcV|;Mk)d|~PXz#9oI2;y{N4Lvq_^NF7R0-8#jTb_Awo5hh+(Y*llXK)A9!DA8=9g7 zC18tkmKu)|aw9TsfJ_#fu}(Hb#|kO>0`~*PXW+slzm=X9EP`>w(Nq=R&|FF3O?V2B80c_)fCkEm;YTi%u0spx!?Qbs;IBYI|8TO(;A+{Q&!^6B&@ zFW~8=5f^XU26_nfTJ5q)9c-&%Pd))Alu>5njnws)ym!FgWmp!kAy65lr+RHAEuLL)-`#`x${9B>%Qxv>!}>I z=9X4SX73`TBp7==q2s4d!739V{GT#r@Se7)x;bd>3v_OQmndL%y*V5*uCG)3VsVE- zy9tP=-V=iEm}nuwokG-;IAotrtFvDB7OnDBw5&kMTw9KnM-Rmxn|oO2TeVDYq(vY$ z1}KgOJ4%e>eSPik%o2mAl> zRjJ5thv)?BgdOOFaM9X|#2)!j^M)_&$dbU9pxW?&qwo9}o)m z5uLAa#9Le)I@T<|hJ7RRf3Njfq`z;tV-Co)?MoR37uG$YXNmglq%Q#seUi0C>N!Xv zIx3#`NzK=ORgI23#jj?Gp98+l=$-lq>B6E+ic{pPVKoZR^YQfUPrh)N>(n=4LGI2W z7_p?>F1Fbah`}b@5Rb>?tjByBC1+IN%ndZNUitf2TThHUW?#fO!u7-An|ei+GNQ7ZNa`}9#0V)fk1>6VO9_A zT&>RWSn3GLF>3_k*ln1(t~o8xp%9`+R7(is$6;4f!+M5Fgku(|HyXan4f2zGqbv|4 ze+xTplff5djRt*J^Arp;Df&z)84#v8f0{`H25Rj@7ZGn(J{sT#QybE-6lU>Cz!~7cd;A^dunFu-@-X5{Y%#@X{KL3#JmBrnVN~ODfT>AY_VzUF zMW|n5&Zg8tk@+t6HwYCukO45a`Rdgxkhcvn)Q>BTn%c=KlZxo%Y<+Z8cthnt1i5 zxBS>2k3;(He4vI>c)Rj)ZlezfivJK>xq}H@y&jrqpFg)(C*5gg0|i{VMgOt5(|yE1 z$KvMXEV&z=dF5<~Hl|1ij_An?+$t!aOz;15?jRiOOlBy1Dm8OqNR<-(u@gnDZKqyH zt#JI2U1)zb!KRC+;#bj>X|h^HJ3pCekO4=_^?$tCV#7BE(heVE{qFrTE{4Tll4Q}n zer?JxEPJEQK}551_eP2Z`xPZce~V6`bpe6vp2ukagwNt93XhE*tWRiRqMN%FHY<5@ zLgRRZUwHI-b0^|R(>5f!BL|;Q9b!@S?UAq*wG{ObXjmCH5hR1X`6$al9tsAv(7Oic={;zI*UQZZjig;-t9V+&1DSO8nfKW3*v36x_KJA<2aIbx02pVjds zW)tl~e;Zi;M&(xpY^dW)-`A0mW>vy$PFXW{51_$jT;q#=Dg*S$OmMnKT+lK$&FzJq z&1@{~cC|wO=|WpJZ@LNFV(UfD=!?yA6C1M4daGj1j~Tg4{$r>o%mJ@nzwX}}D`c0F zG9r>bf?old+!~Wlxl+{>+GD;MJFoVJ>pI)qdatUZz~AcVBkOh)Ii2=#Bf(jK1CAUzN^xrY98DDXxo2K zAQGH3xDcQlbhe~X^$!oK`spSf#1f^k-|Q1f^695;@%w+}Hsi$=Ru~&T-l6&T*N#`q zF#^^L>4J`UaGTOM{h@ed)@KDuG8*X_!=6ED4X{EB=O|7O3|nAy;t>yi_me_TRs14O zCGIoJr(u1g$H*yWUS8r17(8ayYX5x9FgMddH~Tgn2=t)Tko|pd1Oz$q+x{rIDnPV6NEu1bYQ*TBPVTu)`fn}W^*N8BrCVSdZ(}bu*-&M};2}!x z`J3|7QUAm0guVOV2dK&QS@P$n6;W{50g|`~8FPWC4tkQ^^dUg@Z3gcy!o} z?w0%V@3HcjvMNunHN^YLHcg*sWw}R7Z(@}TFb3&=m~TewT>n{Gkva-&Im)=b-WA%q zXitkAZCAxH@&8Vx|M8250(vM;K!4qw3y;)cOSOOpG+Fe8QTjWefK{+_wfHZQTd(Ou z{f87gx75={@;jucHv=N#ajvRkY?QOlnVV3oaKF*yPWPC zhKDv-E*V`?4)PH|^kf`|YKSGdjEqk#6Rhvc-l_GrT^5w(M53oz$(R^J%!~gs5Pn;9 z$RgE$AADPQDq}AmvY-1bpdkfn5StU;`^Dd9v?u8P6nfJ6y?&r>~#quG`y{45c zV7Bo_up)@Z)i|(1{oeZPkRiuO{>|OG0|qb*~FHn(a2*0TLgKZUfnsP(prD{V9?28lR*Zdv}_5~_4fSIJyDfbHwY zp+*8I|4Jq3o&s&V0pQ#|k1i5^K+$2dH~qsj+zJNNeR1g#t-#Fa zY{bIvsFB-@Z`N~>LAjoPNC2q&7;RXoFMcLeXW0M2Pk~Y90jKfsWBZ_#_#!XQMwMhY zi&}f(EOEz*M-BcRk(9c(L;%9);kNYZq^IJ6`>?rkBlut3t3K$=(ZyXKlfQ-S?%jEE zeBjMMYV#iJ-gl9|csM-8T6T!jAcdOUF$HhQWvuObn+U2mra|`ve%E$s{o)DItn4vV zFNiXm*4F#qUVsIyij%!R#T;A*zuOs`^Xv7QpJRG4R-hF0VmaxkIQhBt&9EYW(7Eip zpD3U8qFhE^x6<5(qYv5b@tH0=8sm`eCZ`NG+2*^KjhCN=Z9JfrakS095AT)Q#66h< z;77c}pXy)oBLY^rDeLx7yPEG!srAePk2-NravyG0Og%}DfT`TpXBhzgfs)`is8ZY* z%{{Co0QG@-V7JcLfbev>*O>OB+^+H~Ul9P!-C*rL<9Z$cBTSHYYl(VahSj7wnq1P> ztd_zp`<}m_I-KXL#=48se$%knyP^I1!DT9X);k6dVuc4_dDz;%?7a?U;6?VuXj2SL zysLG#f0_)xe58!j{u2|)4?_&?hN+`D*+)YpD~kt1!s|ut4<yqh9K&L8VM^@>fOt0>Z^^7InqXfQ-e{+1n1tx{$Zbp9_CGfm1@*HI;l_?ftbok%tpm@xcmV zlXd{+D`Nh(#?q#CN`~I!j{V&+kHEm|QJE)wi=N4z@=x;~zLlNQ#_iqS)>7u%t*=d- ztHrWPe)RnN-ce%tpn3fk_b{0)es(fbG4A$#i2BtM=AtcCgL|XBpVLt0Z7-cr?{VaK z1kooa==YB43bz(ZlSt6H?6tkbMKp9R)QCU1wSMGeHhx(X%>WkA@WQ&Tk~!~1h3Q8M zGg|F~6VOQ(B6$}p#fJYjTsJKyxw>exZf^2(LcYZ|iY+za!$(rr+1D!vQqG^C**6y# zLGWU}`qQ9+tlYS7#LtyXb!9?-JPqG(Bmz2q*YP%BHMw8DH559QDF{PDO)8ApPJwL%rBm>p48M+o^VNe^y}G%4ZG94H$36Yg z=}`t@W$vtr4u7VW%i7xuz2GFD2k}?FpDJKJ6D74HbUK%ntI1w|*^>R`K>nup`s?+3 zj@@Iy=Znx;H}RMG^@mQOTjIG>h=y}GQbyf4=IrC;at>Ukq$x^%jvcN=~PtaF(in5sDm#g$hRfPTVo zKE)4$?x4www-QUm+COFa=*4-~I`v9%)zO81>~=ET+VA-r9F~H^okLhqD{(hLE{_|* z-9)5f(5}Diwe)r7X{8{BtscOGeD^$l?t=D?O4* zi!Lx?DS)pty4CJ_BpmE=13BiLs^b=4x?dhG2T_#+EQ-`YH;NL@kR#^&`9a3Wx%N{< zH$V`T=dM|F*;%Q4v*K^NTp`GKsoOidFZ*Z^bWAwlD?hRuyit8$L za!S9yzd5-K*L%_XJc%IZq1b8rn!1JMt$vePT)++MB{FYt(~%PioaP^E`jmo@?}S)mV{CpWAn?A>tVGM zE2_yCX~wKp5gN%sRPwcR+b`EhyW>i%qMy?@X(v5GV)xm?od4Zqi*}KV3_<8QNMuNp>7bQK)F_CD2XAB~HZ!YVUX1#$M~VT7yD; z%`&TDY%kq59$Zqgjb%_DZVxY4*Ll)%bw_8+;_o(P*`ZxGE}Z5j~! zEc!9t(my3Pb^B)I{SKGJ15j3HZRVyST^l;_aQSmGSgW%VOPY{i$mR;bsGV_&db5p<6Ph)}( z{;G>)I;g+@iz2Cu+aOZlnnJ*;!DQGTD)JV4784n-8~R>br*}Pgd=wP+87LCN2KRn& zgPAtFSsvssS}(O8{cS>N2Y+a~{ii;jF=Vy{Ros#Vv+4MSP1);TgMGq4SZr;XP5+)* zg!+}c;0Hyzj8)Ph?e#U3M8FjBuePir>i`AWjdOvP#5%bET0I9O(bPMepH^;m0Kk5^ zZhp{3k(H4s?r^7F5Aa-P9V*Nz!g2r|z*HT5@a=IM7@(ZUD$p(7b)dXE#I3x|M48n~ zD*JJ(Ynu0}Ud&JR5@30a0}7oF0CIQTuQORz#i1?A-0FW3e>3fiz_CW1O%3iHK5yM7 z4MpE&oc?dUPsJ4qop+D)^jtrQBYV0KyhM^AtJNY4{%C+wIlZmM z$45qsyTA75tGKWg-=9@Des4`b#7dmXG8f({q?-g zxU7eL6J~1B5|iCxzMB7XW|B5}PR-#7G1w>~8^As|L3x~~6}q&(K572((YhNem9{K9 zJWcWsUP9S^+s#1;z*#2z$|(l}s4M|<1z>eqUtN4MmS|C~3Tw8=$L^dDw}XX(a0V(P zVtEc)Fy(Q$X97*s1?~&Fo=>z#P?#3po6k=0fwdM{THh0Q`72GtRf_QEjf&pFg2J!I ze0Gr$6m7-J5m#up%AD2_#v1M@`hY!JC{j9>c(f2S{zBTqSUM(Xu<18LAY~x*vui6f z-abfviFie->V69-l9C@aRuyWY+pZd@%3S{gi5aKr;k7>5`yVZL=W}f>V*w6+k$yx; zLnir)l30fj{@Fyny6LXWlc5Y@6`AWTHd#S)4t-~W0EP5j5|<7oG&zqLv@TjH0M>oP zP{S}l9QtJ>^ZM9{pVFTZ(sA(o^u@Br7x-OK3ygBk0ov@;K| zjM4c!-%9m&s}>3S^=T$q+T%3U4dz2eGG7112H$yQY_^$&$Hb6L*FW2! z-ah=@k8$;l|2F!-uj1KxqRFWAxTBP9b4|eA z(!vgYYe^~tfU=WYpzRXa-1>X<5mNpcC`!avfXd2f1mak242&+ z+TIHGy(RE&12F^qeGAoy!!+o~K0D9eXvq|tFEF*Ft;8q_6?ei)KY$)V=?oIyYd&al zOx~9u|XbNQ^FPez0bU%-=_LW??HQ zLxT^gCp1m}dOwcAB(p2*gctzeAo6yWgZ2sl!*=Epgfc;_+{TL7M4S`wKiGeikJ~;M zU~Q``hWhYrWDXSyhmTVIcyh4 z@2Mn$=r24Bnyp3qnP5`44U){2=nqhy~ z-it9lA#L{R=s+t}P;hY;rc&q*;lADh@Q20QjhBspZQy#W@Ca#Hj`=9@_#KrihY-Cda52pq2pllf4zU#7ptZPnOMtwj|;Xl_B-cU04dpe49My!P#^c8W`E!{aW(+$A<+r=t5Al zEKQIVvW_qXAJW_tx>1t>1V@(G3_*a(CZuM;l7}p1(T91Da5->6poYXz-v4Ftx-Dh_ zB7u`iS8G5bR0F*>b=I4#14k#WQXk0RGVuacZS(o7vpBpOVzg1j#}K^1`T33GD?V-j z_>PEBz?BI@r}grn^;XEAeO^u*EV&{o!q`jwhq$ykqE|kg=#j#`1Kmt-h&_H4N2tp_ zpDy7et81i#vF#*f(GpQdNI@BAVMz5Rk}xj3j%_EtmJ7)uSYV~eJ^SGiG=38ywwGv# z$q`l)SQGvppdwT&gGSBmpB6ZOk#O#N6lukwMSScXinrPe#jYif!fm!2YDIJR(3%&c zt~Z&k7o>g}Qv!E&9x_)YnvJYW+YqAwq@=*d;$s@md`MF=MGHX)!>6x_Rt$7isWKIA zIn)tc#236At3g*M>-WYGB6({TY24^{Z&U-rWQnNQ<04YAy%cGlv;wfySEP4MME-|b z0Y@X8?k1FX!NsuB05PleCL^tYkw3pl)2l~ox9zdQNWcUXKs4RWaFBAH+b6DVS6>$= z<8{Z{@6L?`5-S(QBFQKzD6V?rjcUdsG1)J!rFY8PNkpdQ6RMSgbSL$w43rgLOVQQ* zztEhi=jUX*y*%VilrW8m@yK1LfYHsnr;NDkG%s=6xE8}P#{n%IUGUf6z$EheF76zs z>mIyv5($!k$9IbmMnqTwElZogT2>L4?$^uv)b~B9TL9ID<4Z==Vbet#6oLt23iM0_ z)0`A7F0^yO2%|bt18~kI5l<}45wwu2$mM|htIhR)qp}yXQ3lnv-xY-IM$}d5`9YnD zT<#ymdi>3Tu56sAv#zRuH3RrGkaGoC?tvB0)hDAf}p;a?!Gp)xiE zEHh;B2-TgK?zK699(^gh97eWQl&pCokMAH>1CEt=PGrSMIE?KT`MzkQ5}<)?EFMX= zPa%|{kkT^)d zUI3QRvp=pS`^lm^q8|_{>}zzuE?D@CRpRNlqy2{{8knTK%fJkhuS^4ul`;TX05R@& zJVW|NHVe30P39PnPyN^M@R?ZOX10&%_czOB)gvE)hi(RlLS$VTMF9b)fJok-sE=w!?W4IS{L@GLij6A64Gvnk!p5JqE)Vm)!QMGDWG~HrD z-?6cXCSf{^S()P>BYkMaj7!9l#BgYctzb_g>&Q?WSc#Btszrc=*T}r1cW4)|Ba1Wk z98(H1JJQv9_NPKmum)^?yR9-)V?JBsaMJ#8rv;R6g*A+5{eA*Y%16NQ9$36T7xx1I zN1Kzi{{M^oaE+cPrviR{0C8ke1c-@_i*XdX;h8UgF9IS(=P>!mf<}#>u~9&zOh#iH z`b)x1*%nX|TlJ{RUO3I&0^;Etlm6e>SWMLS0HXOP_bQY!!esI{VVIz| zr9Yt3utw#{nNnN$I{+O9ZH!{13_&crt%%N|hs0>-~m04N+LU@q&+i+h*&Boyzi;w=^}CWQ;y@pkLm%DH;i z!yDJ%aKlH;N&?v3<5(-8{sv`MNk<#vB|Lbhd?aKmM>T=K%X4>4x`1qN4e>CG#etbl+mX7f5+H_pj#GNz;Mv_4w%d_!2wf4F8%;44`%4FU}#^FT5?ND zSU=hht)^-aU>Lg&{H`-3^koVlPzcFIr{7oshMQ7^ffh^nsfOS#kT<>|h1MX+nCdHe zt#Ic2z;~lPT0;1>jM1DEDO;^?U!MkgcgVAaMzG@7JOMpPmuI1uyPdpAJSq%RqnY?_ zRB!luF_une#Q^YDyYr|KDsliM%KwttVF@@2R&f89AqFIO&M>Dv?R_z6nXeV6wWo{2 za+6+DCIKF|GVJicggWFti-qw_p^05dV(N4=L&us>qP~KwQC=vQ2l_v>YV_`oiyBdB z9EDwk(v%c-}TS}t^fpcQcbK+j}AoKG()U&*i+JiXw6E>3+ zEN+05f*R(32c&Fiv#6JHQ|vk3vkpO)B>+B%N4ayMSiKH@4-COwAgKtAFI>dG*6oLU z5OtYNmEgt*mh0oZ|0<-BHv^w$lYEj zvlO%^hxl^gmM6B^-6iKsfOZr9umdU>d$Smv&v?*lU-2Fh0sxMygi2v1jHGj=TbO&t zp0P|*K3w+6o)Z|TWB#t|$cx9p(j`bI9}>7UjbwaZVrLI19^a!Y^f<}R;)*bzeg`}Q z+j67j+2g5*-hEh%xcEu6n98Csn}`z@g8M=Kub1}kkYUt$p1MMmA~+0q<-|1_Zy%!J9X)8D z30f^bQ}Cnd;Zp^Or^4()A>JUSui) z6{f8Lm$6*5P>0|9zJw9Ii0e|TtT->AO91sTE5Wct@Eqo5Rmq6cJ71o)4S0}7eV_j8zEV>;YtTldIQRKw=tl!fxzkDPmav7{F)68s5!i)qQ+N#*4#=gFfWd)rr9VK<`!zy{Hm? z11z3g)gpAp*D+BQis4@R+Cdh1`AsugW?%@ch{5cqI~@09Gl4suhXKH4t90ffJ0= z5Os`Y1T&z~VFu#jcM}DRi>c=wim(6W6yX(3S~VIY(d8c!vE1pPg>W;1H3Qw>`buV! zexw?g259hvR*T9k1dz>1JE^|^m zIi!g;1ny}C&WT`hGjR4vK&s!O+6hp-6V< zln_Et)dh&bK@lM{ykY3))plqWbV@j{a0*f}su?7;fA=S9W=nu^O*N3FfA|6>wH0x# z2vrU#2np*2x3xFe!rF@UsL|T6gNn6s4>V{?UV)E5asCI5#b$2*eI>$gCH|*O-C)Jt z=@Ti3aDN`@<^XfD&vX8U)}^+1`rWntuC86k0M#BGJPH%^D2)w>s?1$74OaO}D)-mo z8lAvfBJfs4_Btu+{m!>qJNBgnbo`JgPkW|3cZBuvQZWk#Xek5VaL5?ITwDvlTbYk7 z!gv`SE%uH`7q7fDt!VGJ!g$GniVz`cuwV&VS3|c1^CKDsroVhMM+#Scf=n1ea8dH= zFKNj=0J@`FP5z;m7PvzQavqP=_XA!o{p|Dji6K0`8(&VTQvP{9W!78it%8zgr)zR7OB3NnImO0k>DMXE1LQjO%&z@vnb8Q06xrrv3!f zzuUC}r^EmV_I{sV|9i-zCY``CmPXw^5YV{>6%+yuDKMw1aA)o_;#_W21sK9!++nAJ<0=GG$e zxy)lH+ztC)1EsoH%7gW9g8c00op^>R#$?(UKsya{wA4n(73)|D+yYgLFAh1~3!E48 z>0jjEuB_=$zI;cVJXpqf!6$ly;D`uMflZd|WT-u9-D4PC8hDncU5J@U>Iz_*oy3k||JG7^M1?w_vaLcC}(oc!B{m?pgbGp5XP1%>rxX+HmMc^rC%dlm?OIl?C>Y(B5f6~Q@o0X4Vkfop8UB4<}Q?v|yfr$Y+2=J#S<>syf?AX9`ME2Da6d+|X zWoljOwt5z?JU$i#%5^Lrf?BpyXQ$C^xnzV|`sMB>abt#f$HA~|w=kr6YT-hoXy6g@6_XDu!*Wa*6FiGo-a_zijvjU-SSmMdZxa<6 zlJxVSD5*1(C?X_z#&4n`-_R`j6h6O;_|{>9tC|xY=C2An99zuK6nX%#I2Ih^)(A!H zsE?oh!`llL+ZuN~xQVj`Y&2V7g1j8;n!kH3rJtCl<1Y{nkGqX8vXJn9=8wAW*dxVS zg$FJfQXTUhsYo`EGCDZ$mtgY7P8~j%hPVs)m$e&xC{eMHE(#GcTZGG)qcH_tTFCNr z5%~=Dda#Om^(Pvlh_*(}s~i@c97lT47W09rui9o=xl=pi?cn^aK-S+#+(KNc9oJd@ z#ZMuTheJdWIu^;^&)-8n_^RA|QVfF^cIlqVcoN__6ZG7iJ}W}@^J75<5Z*l$?Lei8 zp3tTEh)WSdNPA&W0ZQa8 zJ*^nZt?N=jJkR~8m6JdWpPBHnk)m3H%%a{1UXJTHK4k{$qO;|Nvd{9?FvIXYcR->k z9{T0X>cognWNYn^m@lc@?(>6ujQCS&=jLmnigqCoN8m~kbTcSrR>rvj5?5mB(@jZv8m*5@JyLA4lug;ZZ6rq?LZ0ZMj zarWSke?~bca_gkTihO|`JT2eGwSb1PHa&2b$6j^%QYYA}HVv|q0KCvp0V$p;b{N@{ zSU!O4DW!@B;B$;*`CjPkpBDnHYv0B14{*K>|O~kFNrR63h2#S&@aGi zkAU`+EzD7kk(2I;=|Dn!`X$PG$t-&Fxjp46WALjt3koQtj(k)n@p0r~ejKP``I(I% z&}Bi>+m@+gzXxP9J8Ph?$6SHpaK3|u&(`o*qB|q66>=aiA*O1wew&6=%Vuhex;{Z3 zaZMz-Z!Ie=?8NAL9RfeQug+=PPUvzFRCYtPYMgiCfgpA8(luQ=--*kE18=K3eJEe+ zi;OtV?373fc@4wle!hdbJXcxuj^0hhbyOWV{K6~gdi8m`T652VjU*CVjj^bX*k`9Gg&^Zy;q!aWdryG-@`%}9|z0OeN$lHuIz5KhdMe1^PUMNs?3XU70K zZEYWONl^`2&2;{9z;ZFO1tKFaeb({?-ulI)Fu$O+E3t}?do~M`SQ;f8S+E_)>Pc|u zr?u;BqDpRS0=kP_EXiLkkzF8M!~-O1gvp05TFZIbVY6k~3fk<(b%bA>m*bfcI0l18 zNt}Uk;Tw@MaZTa9%YcE%8ImYa8x0p&XN3MKp7MGg1t5LlOWN~;(qR3kSb z2UO$m8{z}Co}HyI-2`7WFN$VNJ<@k**#GcX2hhD?da&Oj zF1Cjg{L~RCXUwn`UV3^F`^3d@23asC%nEi2vt*{9mV1iAz*oG3!N&8MPhr~m$9V`C znH(hK2eQ#tImxalTtvvN6ReGb6~R!`@MIz^t`&rXVjgoqRKqV~q^zUS5vH*6H7K|9 zBP=S{7nDgOiQ^K8D;L#3UE^-WyctMsoqZfDL}`eJ*pTAI#CF*!KP+Lg;ihi5vW0Ef ze=zr~JdBL~(xO_5A9wu>5%E(L|CUtDMv+Ea6A@r<2)}gk)tdDs{z@s_3e1zgdGt>> zoFs=ZeQp5yfxhAphDKD&7$RLFa3jMmfX1Ao_o9<{n>b(nQxJiMYr!p9?lo?U!r$N5 z;jp0#oAb};5MepZOuhC!88P1@bF=yqDOxCKP;+(ivP3p4VM!x>qVy;eePIj+r`9y- zAogMckkk=nDLGhA&&R(9_Rt~5lh)URh0Dn@C!L~0NY)m;;ArhBsSno+?DzJx1yhQk zMdG{ggAevkZ;2LHpBohi%OOMDv!(I=hRw?VM=Z5>S-4Vu$A3{>ws92MX zKso<{(u49`W@X1*3;a|)NhRO7){)Q5Xv{+JRc#>UOg4% zN&{3J9Qu-)W5qg=kaA}#UI2i8g{IRX+}RA+ZG3W8L1Re*=fRj^OOJ?V>+oGTmFZSE zA?W~GmpVHa9v@Dma8Gm*?#2=5GFa=9$1-=+N#N0OTQu6k5vP9Up? zVVkg;%_-6^f(tV|8rJcQfpmxoNeiZTS&KRCq9?=g`(lNnh7fDa1T$6NEoKi7%vj>FndP-DXxc`Erc{OYZXOa ze$y{0h-Q+7Ne;bD)=ZDNh8urYX8(=ua83FJ8YV;o`c@Rzq|hjeTg1Q;mhE9~Ol_`j zgu#Zy2^H!khuB7(hWoM0LQpjxe*%DRNiUrH)jg;$<$^uUc;z2H+k4=ETnn)>?1^<= znq%Q5LiszZ48eW*gcHN~z{2m=2eTW$n{QK3gPiNo`AQHA5^(OnoCIDKuhC=|UBQ zuHFRrw6W8wg|S?-6QNCnK*`~d=k8O$Pf{4C_?|XvI?b3>7h5^JMiQFN-}{KkUSjsz zTx)SOmng)FPY5GBA()STTipTegq;fArS)9siZq1S7}#+)_3d~2lHLPOn?HFgW@p)o zILT6T7%LnZ*;0M>T2av_9*C%AIseWgYJ#QzwME$$D`1=P-m zvFfsUtV`Ot{RC&~*!sCU%=?U=1#&fmtKXO^FoOl$&;GrD+A}x2>w0GUsfgghK(n&& zd!jd%d-|&rP1;FrCRWyRUlE#~{qp0jJ1N1Qa>t+wK5)-%U(RxT`*iK>GlG-6!$`k4 zGpn@Ae`vI+7y@AgBISw~z(*VUOay+gu^-Ho^qelwnd#*8`q)FHq^$RcL{Tem>QYUlD}waLU&i*X&%Kw4yPV}bPQ;3 zyZ*1V{3Ll(Lv8>YG8AhrVy;OY>(aE%A!`)w*11GOAgrU7?So-VM+un>s6K~k`2JF4^bAjnqaFJi2dh?3)@CtFsh=SwjS(crg^OLUz} zR`0Qqu@dB)+}d{Eig~?V)$+KS0lq!^=q}@S-?jZ8CZjymA!MwOzq6y;t$+ocCo9oZ zhsLOw99ha%9{+Ra1DntAaR2!s;M}$;mc znH+4u|N7)0E@Wnb`FtXml#eVdGtlH_wuT3%Xs!r{LlHp{GQKwvDGFQ*yRl5-nbhjQ z6KJ$zS%xDH42t2Xz>~=msKMaS%5?08z>)N~>)S`#55(8 z#{?~-2!W;1^QDY+PZv1C{oN2hkhvT6q{<%`X`y)99=u>8YWljDz*f8XmBr-%&ine~ z_28l}%W&yY4W396mMraC~~wKySKZFD{^;h|d^Hp&Bi@F+1e9o`1qoz+p}yP{;ainJMmAlLcUkupUqc&ZnyOuM-#P-ZV;Vo?4%~C!Y6IgC*&l@Y|9zw(|<;@Wt^xg zaUN1$dX^tp4y}tDGG&V&w6$d7{}Q17dms~p(3qa{rx9zZ!xcuM=fHefT2rC)z;aQ# zrW3TnKwZE)?%M0Rd6g4uYmv}6F+Tx9Uta_?5})jvbbpjqfGm# z`%xu?65m)b%`|aSXgMgVs6|`{&hg7+t&!jo-fvE3^L%e*uCVodYpSfC{uL*@?I~DB z=pfEa%d=o-PBb0a7X|CA9_I&aGmBYa!C3|=;(nD@E8T2?!NKAn$rLQCHhqkFz)J01 zmLyEYm@3cilJn9hWUd0zX;;4HTWx(Yk6#@~*TwI2EOtQj3zwp8dzoY26_1YC113*X3b# z&QEXOpk3c%M}uJBwG9dHE6kesf4nMl@RIiuLPwm=A4A#IUXa-5LuGhid!?Cyx$uy% zkEC_JDujX)*x~l-g~Z1GiDUCHQBTG0B(8B|Yakfv|6BV)$YP@DFjRrKmIqX+#!nB%$*fyv-hvzB6gRb|Iq|8fDxPIJoa7sgD^mJBww zC!dZ4?G4;vke2aH`lDeY*+jrhvGDISfsdWB{4f;$1#U{xBI_wPRnq^)02o+>3sMU! zrn|*n6+*r<$nu$Qxn^Av8*1bZJzoBS!)fZ&tGWibr|_CniI}@u0)fw zjc5>#W|DUEyU05qwkqBxk_Y^dFHJe*5jUxG6Q0I1nlJ}M> z|HhhmOa6`O%{*IwiB6+8Kk3qO*%bAen1j7yCiZ=4?|NQ?qdni&o%Y?=8B zv%^D2$B-;V3OPga?nw4E-hh&so7u8QGLY$CowZryuc^1%9@%)fBs9l z?C;w~n(acR6%}G^Tdl6m6i3V-wM|{}vYO0kTd&`lsEOP|<+FqqKn8jab6VfpdZ5@D zUV!1#m#M|II^v}cT**a)Gi!`C(R&4Jr>r(nCo8lte}(2@xO#bAmNBt_1Y@y{sPOV$ zPW^%%<}dEZ10?bbFCh`8y@s!Cg3yEbiu--buBY3UKR^(b~M>PK%-r^>Q z&St2NQ3skJwR}GnfU{XZE_MgVHWVljkw64EF348I?JJxg%NYkikil6dSqz*VArCyi z8rFqMEK^i$Z3A-w@JZC1ePUoHTo*uGsXX6LIs>eK&y0eX4+q8pMzIAY?8baU&GOb5 zMFDKh2|7_3vR|If(hDdFoR)MNlZMiu4`Qm8(V55h^AUE?FUEO@zW-4_6#jfps5B!# z9L7JJ599$q$iU_UKY-54+A)adJF(X3uG6KfScRt_R^k<2{5^nLBTQzA>+B^X6YEW!ikZS~^A=Q$}BcFyodS_PCNF zugbR9tKZ4q>Briyd@9iPr(;%=>_NrGC&k{j4o?DMpD8?Pw>8XP$K6AN-Xs54sq2d| zRG+N@>LtopwjdByES-D@i&eDX?Z^9)iV18I+ObV6{bx^u#N$b8lrP(luE~ir%1#2e zHjD#v9`M0#vAlPm`m4N)3gKWC3(B9UZW!Rp()dD1`DIT#x=&DbFf78TF&oET-E zHPAgYM!|3Xn>gifA9lPSf!(DP?0P+){y**4iz8MD)U+}gM18&tq$08C0aKY_JhcTU z>?*gA#^QgibHfE=-(077f?56>s}{lx0;z3MR$Vc$C`7+jQDYQL1s=gY5E!{A?BY zS?&Vs=jhKOQlF|ZI_T@^kq2G-C5$C;%AF>8R?OWcbT%t~%F;5@CGDlzr*!GcMr+B) z%+VcVb<#cW3`wds`G!^LhCeHYrKW4PSsf~hgwvU7fjS2b3RRCabyZ0vryXzTKpTSe zuId#tdk0&xo9x&`Vp4PCUv#=ROD&dMKDSTP(o_wP*iw@&RIAVMj7!YKw7hNFtF#%I z43<=zOrv}}C1dq}wb-t?=rk8CK9{GC-^!LdX(?@vz=N90={y)KQ|XRdE2_rT)@(D< zOX+=aG1}|kd#x?bd#uCc&Y~@tw%K%=7Y~cAo8`*US98q!ekR=}tLj{ge}8D815LAi z8rGvD`tdNu4OPm%>*D$zNY*`-Ez7kdDC#M@9PA zF%{+hP2g!i&i;1Ba9OctEdz0&wosZ{Mfe|3sPGx?^{@JUGcC3V8k?#+BBFV?D19y* z0%{@`jYrn`-9jRFokGWjq_bC0eTz*T#(Dj0OC4yY z)gAjp&ytHxnwzHu@{W8O7op)xtivA7oqUBQZKFw^u1zj!=s23Z+<8Nrrt-C}F~Xp$ zo38ZD*UG}Bc+!OD${GgH_YzINy`Ro7w#jW3p{a@0t3@szS8FTYgH2Nd9zT!r;5wWV>Ig0*JRK;*)z)aec5Es|CSMv#>8l!+huyfM(x#p zhIW}T;o@mSzbhFnG4TuXo9;C!R{Smw70_PQbLb;aY;Fof^QoK?XQ8^07X4CQb zPt28%5mAs7%qrz!*kN?O=)!Ki%va5{bE(&nU3QGqZow^x3$4$4%3}8WlDd&#{LwZ^ z5A#Og=k8mjB*&`ZPB%_A#$)9#@l|O^3SaaOz*dCO`*ti{W~QFSXe7R8HQ%_=oRZV! zE8LiO*wwgA&M$1_;^UV5mPbh0D&CnHfQ>h^j6}X*$H~@cV7#pv{iOf$PI!1Sz61

    XJRIj6{@Kaj3C@e}}3C2`q557+OV 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�%VHp9$8vG%p$}sq-9M^tk%q6@sc?NSn9)g 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

    }}>4UOs9 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 diff --git a/app/src/main/res/layout/fragment_correction.xml b/app/src/main/res/layout/fragment_correction.xml index ce536570..3bb89916 100644 --- a/app/src/main/res/layout/fragment_correction.xml +++ b/app/src/main/res/layout/fragment_correction.xml @@ -122,9 +122,56 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="@string/path_drawing_descritpion" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.0" /> + + + app:strokeColor="@android:color/transparent"> + + + + + + + + + \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 52f5917c..d8d6dc6e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,5 +15,5 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # Android operating system, and which are packaged with your app"s APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true \ No newline at end of file +# Do not automatically convert third-party libraries to use AndroidX +android.enableJetifier=false \ No newline at end of file diff --git a/secrets.properties b/secrets.properties index f0dc54fd..585fc423 100644 --- a/secrets.properties +++ b/secrets.properties @@ -3,4 +3,4 @@ # MAPS_API_KEY= OPENPOSITIONING_API_KEY= -OPENPOSITIONING_MASTER_KEY= +OPENPOSITIONING_MASTER_KEY= \ No newline at end of file From 40b463f4345939115f7287da0e36dcf3f7642ebf Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Wed, 11 Feb 2026 23:25:21 +0000 Subject: [PATCH 23/65] [Feat] Dynamically Set Ground Floor Index (#36) --- .../fragment/CorrectionFragment.java | 2 +- .../fragment/TrajectoryMapFragment.java | 8 +-- .../PositionMe/utils/Building.java | 49 ++++++++++++++++--- .../PositionMe/utils/IndoorMapManager.java | 14 ++++-- 4 files changed, 53 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java index f667840f..a967717c 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java @@ -198,7 +198,7 @@ private void initCampaignSelect() { // Initialize campaigns only if the building is "outside" String[] campaigns = new String[]{ "Murchison House", - "Nucleus" + "Nucleus Building" }; ArrayAdapter adapter = new ArrayAdapter<>( requireContext(), diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java index 9a5ea1c5..b2b6d780 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java @@ -193,7 +193,6 @@ public void onMapReady(@NonNull GoogleMap googleMap) { if (building != null) { building.setCurrentFloor( building.getFloorNumber()+1, - false, gMap ); } else { @@ -209,7 +208,6 @@ public void onMapReady(@NonNull GoogleMap googleMap) { if (building != null) { building.setCurrentFloor( building.getFloorNumber()-1, - false, gMap ); } else { @@ -400,9 +398,7 @@ public void onPolygonClick(@NonNull Polygon polygon) { polygon.setFillColor(COLOUR_FLOOR_PLAN_FILL_TRANSPARENT); } // Display floor plan of ground floor - int groundFloorIndex = building.getName().equals(BUILDING_NAME_NUCLEUS) - ? 1 - : 0; + int groundFloorIndex = building.getGroundFloorIndex(); List elements = building.getFloorPlanElements( building.getFloorNames().get(groundFloorIndex) ); @@ -426,7 +422,7 @@ public void onPolygonClick(@NonNull Polygon polygon) { if (building != null){ float elevationVal = sensorFusion.getElevation(); int newFloor = (int)(elevationVal/building.getFloorHeight()); - building.setCurrentFloor(newFloor, true, gMap); + building.setCurrentFloor(newFloor, gMap); } } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java b/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java index 36679d8a..8efcae70 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java @@ -30,12 +30,18 @@ public class Building { private static final int BUILDING_NO_FLOOR = -1; + private static final String BUILDING_GROUND_PREFIX = "G"; + private static final String[] BUILDING_FLOOR_PREFIX_ORDER = new String[] { + "B", "L", BUILDING_GROUND_PREFIX, "U", "F" + }; + private List outlinePoints; private String name; private Map> floorPlans; private List floorNames; private float floorHeight; private int floorNumber = BUILDING_NO_FLOOR; + private int groundFloorIndex = 0; private boolean isInsideBuilding = false; private boolean isPreviewingFloorPlan = false; private Map> floorPlanElementOptions; @@ -50,7 +56,6 @@ public Building( ){ this.name = name; this.floorPlans = floorPlans; - this.floorNames = new ArrayList<>(this.floorPlans.keySet()); this.outlinePoints = outlinePoints; this.floorPlanElements = new HashMap<>(); @@ -63,6 +68,16 @@ public Building( this.outlinePolygonOptions = buildOutlinePolygon(); this.floorPlanElementOptions = buildFloorPlanElements(); + /* + * Sort the floor names in the order: + * - Basement + * - Lower ground + * - Ground + * - Upper ground + * - (Upper) Floors + * */ + this.floorNames = defineFloorNameOrder(new ArrayList<>(this.floorPlans.keySet())); + // Define the floor height if (name.equals(BUILDING_NAME_NUCLEUS)){ floorHeight = FLOOR_HEIGHT_NUCLEUS; @@ -93,6 +108,7 @@ private PolygonOptions buildOutlinePolygon(){ */ private Map> buildFloorPlanElements(){ Map> floorPlanElementOptions = new HashMap<>(); + List floorNames = new ArrayList<>(this.floorPlans.keySet()); for(String floorName : floorNames){ List plan = floorPlans.get(floorName); List floorElements = new ArrayList<>(); @@ -129,8 +145,29 @@ private Map> buildFloorPlanElements(){ return floorPlanElementOptions; } + // Sort elements based on B -> L -> G -> U -> F order for floors + private List defineFloorNameOrder(List names){ + List orderedNames = new ArrayList<>(); + for (String floorPrefix : BUILDING_FLOOR_PREFIX_ORDER){ + for (String name : names){ + if (name.toUpperCase().startsWith(floorPrefix)){ + orderedNames.add(name); + } + } + } + // Set the index of the ground floor, for future reference + for (String name : orderedNames){ + if (name.toUpperCase().startsWith(BUILDING_GROUND_PREFIX)){ + this.groundFloorIndex = orderedNames.indexOf(name); + } + } + return orderedNames; + } + public String getName(){return name;} public float getFloorHeight(){return floorHeight;} + public int getGroundFloorIndex(){return groundFloorIndex;} + /** * Getter to obtain if currently an indoor floor map is being displayed * @return true if an indoor map is visible to the user, false otherwise @@ -179,10 +216,9 @@ public void setFillColour(int colour){ * Draw the floor plan elements of the desired floor on a map object * * @param newFloor The number of the floor being drawn - * @param autoFloor Flag for whether autoFloor is enabled * @param gMap The GoogleMap object where floor plans are being drawn * */ - public void setCurrentFloor(int newFloor, boolean autoFloor, GoogleMap gMap) { + public void setCurrentFloor(int newFloor, GoogleMap gMap) { if (newFloor < 0 || newFloor >= floorNames.size()) { Log.w( "Building", @@ -194,11 +230,8 @@ public void setCurrentFloor(int newFloor, boolean autoFloor, GoogleMap gMap) { Log.w("Building", name + ": Already on floor " + newFloor); } else { // Floor number initialises to -1, so reinitialise if required - // Nucleus building (autoFloor) has ground floor indexed at 1 - if (floorNumber == BUILDING_NO_FLOOR && name.equals(BUILDING_NAME_NUCLEUS)){ - floorNumber = 1; - } else if (floorNumber == BUILDING_NO_FLOOR) { - floorNumber = 0; + if (floorNumber == BUILDING_NO_FLOOR){ + floorNumber = groundFloorIndex; } else { // Remove old floor plan before continuing editFloorPlan(gMap, floorNumber, false); diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java index dbc3e7f0..8148631d 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java @@ -56,11 +56,7 @@ private void drawBuildingPolygons(){ for (Building building : buildings){ if (building.equals(getCurrentBuilding(currentLocation))){ building.setFillColour(COLOUR_FLOOR_PLAN_FILL_INSIDE); - building.setCurrentFloor( - Math.max(building.getFloorNumber(), 0), - building.getName().equals(BUILDING_NAME_NUCLEUS), - gMap - ); + building.setCurrentFloor(Math.max(building.getFloorNumber(), 0), gMap); // Disable preview if present building.setIsPreviewingFloorPlan(false); } else if (building.getIsPreviowingFloorPlan()){ @@ -72,6 +68,14 @@ private void drawBuildingPolygons(){ } } + /** + * Get the building the user is currently inside of, + * based on a given position. + * + * @param position The position being queried + * @return The building, if position is inside one, + * or null if no building contains position + * */ public Building getCurrentBuilding(LatLng position){ for (Building building : buildings){ if (building.isPointInBuilding(position)){ From c4883d08ccadd3a7a9387864fd8cd34fda753748 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Wed, 11 Feb 2026 23:59:18 +0000 Subject: [PATCH 24/65] [Maint] Code Refactor (#37) --- README.md | 7 --- .../data/remote/ServerCommunications.java | 56 ++++++++++++++----- .../fragment/CorrectionFragment.java | 13 ++++- .../presentation/fragment/FilesFragment.java | 13 +---- .../PositionMe/utils/Building.java | 46 ++++++++++----- app/src/main/res/values/strings.xml | 2 +- 6 files changed, 85 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index ac35411c..5f985bbf 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,5 @@ # Embedded Mobile and Wireless Systems (EWireless) 5 2025/26 ## Coursework 1 - Group 13 -### Contributors -- Vlad Stratulat (vlad118) -- Stewart Alexander (sa-fx) -- Keegan McGowan (keeegannn) -- Alex Mackenzie (alexmac3002) - -# [![Android 11](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml) [![Android 16](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml) diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java index fbfb35a5..b53936a7 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java @@ -380,6 +380,7 @@ public void uploadLocalTrajectory( .build(); // Enqueue the request to be executed asynchronously and handle the response + Toast.makeText(context, "Local trajectory sent for upload", Toast.LENGTH_SHORT).show(); client.newCall(request).enqueue(new okhttp3.Callback() { @Override public void onFailure(Call call, IOException e) { @@ -389,13 +390,15 @@ public void onFailure(Call call, IOException e) { "ServerCommunications", "[" + e.getMessage() + "] UPLOAD: Failure to get response" ); - notifyObservers(OBSERVER_INDEX_MAIN); - - // Show error message to users - infoResponse = "Upload failed: " + e.getMessage(); // Store error message + // Notify users new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show() + Toast.makeText( + context, + "Upload failed\nServer unresponsive or unreachable", + Toast.LENGTH_SHORT + ).show() ); + notifyObservers(OBSERVER_INDEX_MAIN); } @Override @@ -407,7 +410,7 @@ public void onResponse(Call call, Response response) throws IOException { assert responseBody != null; String errorBody = responseBody.string(); Log.e("ServerCommunications", "UPLOAD unsuccessful: " + errorBody); - infoResponse = "Upload failed: " + errorBody; + infoResponse = "Upload failed (Error code " + response.code() + ")"; new Handler(Looper.getMainLooper()).post(() -> Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show()); throw new IOException("UPLOAD failed with code " + response); @@ -428,7 +431,13 @@ public void onResponse(Call call, Response response) throws IOException { "ServerCommunications", "UPLOAD SUCCESSFUL: " + responseBody.string() ); - + new Handler(Looper.getMainLooper()).post(() -> + Toast.makeText( + context, + "Upload successful\nRemoving local copy...", + Toast.LENGTH_SHORT + ).show() + ); // Delete local file, set success to true and notify observers success = localTrajectory.delete(); notifyObservers(OBSERVER_INDEX_MAIN); @@ -592,6 +601,7 @@ public void downloadTrajectory(int position, String id, String dateSubmitted) { .build(); // Enqueue the GET request for asynchronous execution + Toast.makeText(context, "Request sent for recording " + id, Toast.LENGTH_SHORT).show(); client.newCall(request).enqueue(new okhttp3.Callback() { @Override public void onFailure(Call call, IOException e) { @@ -606,6 +616,14 @@ public void onResponse(Call call, Response response) throws IOException { ); Log.d("ServerCommunications", "Trajectories received.\n" + "Now parsing for ID " + id + " (Position " + position + ")"); + new Handler(Looper.getMainLooper()).post(() -> + Toast.makeText( + context, + "Downloaded trajectory " + id + "\n" + +"Now parsing...", + Toast.LENGTH_SHORT + ).show() + ); // Extract the nth entry from the zip InputStream inputStream = responseBody.byteStream(); @@ -669,10 +687,25 @@ public void onResponse(Call call, Response response) throws IOException { // Save the download record saveDownloadRecord(startTimestamp, fileName, id, dateSubmitted); + new Handler(Looper.getMainLooper()).post(() -> + Toast.makeText( + context, + "Trajectory " + id + " is ready for replay!", + Toast.LENGTH_SHORT + ).show() + ); } catch (IOException ee) { Log.e( "ServerCommunications", "Trajectory download failed: " + ee.getMessage()); + new Handler(Looper.getMainLooper()).post(() -> + Toast.makeText( + context, + "There was a problem parsing trajectory " + id + "\n" + + "Please try again later", + Toast.LENGTH_SHORT + ).show() + ); } finally { // Close all streams and entries to release resources zipInputStream.closeEntry(); @@ -704,7 +737,6 @@ public void sendInfoRequest(String requestURL) { .build(); // Enqueue the GET request for asynchronous execution - Toast.makeText(context, "Request sent", Toast.LENGTH_SHORT).show(); client.newCall(request).enqueue(new okhttp3.Callback() { @Override public void onFailure(Call call, IOException e) { Log.e("ServerCommunications", "Error: " + e.getMessage()); @@ -722,13 +754,6 @@ public void sendInfoRequest(String requestURL) { // Print a message in the console and notify observers Log.i("ServerCommunications", "Response received; URL " + requestURL); Log.i("ServerCommunications", infoResponse); - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText( - context, - "Response Received (Code " + response.code() + ")", - Toast.LENGTH_SHORT) - .show() - ); notifyObservers(OBSERVER_INDEX_FILES); } } @@ -926,6 +951,7 @@ public void notifyObservers(int index) { o.update(new String[] {infoResponse}); } else if (index == OBSERVER_INDEX_MAIN && o instanceof MainActivity) { + Log.d("ServerCommunications", "Telling home!"); o.update(new Boolean[] {success}); } else if (index == OBSERVER_INDEX_RECORDING && o instanceof RecordingFragment) { diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java index a967717c..edaa060e 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java @@ -173,7 +173,8 @@ public void afterTextChanged(Editable s) { public void onClick(View view) { // Set campaign, and wait until upload is complete sensorFusion.setCurrentBuilding(selectedCampaign); - while(!sensorFusion.sendTrajectoryToCloud()){} + boolean result = sensorFusion.sendTrajectoryToCloud(); + while(!result){} sensorFusion.setCurrentBuilding(BUILDING_NAME_OUTSIDE); // Now, simply tell the Activity we are done: @@ -211,7 +212,12 @@ private void initCampaignSelect() { // Set item selected listener campaignSelect.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { + public void onItemSelected( + AdapterView parent, + View view, + int position, + long id + ) { switch (position) { case 0: selectedCampaign = BUILDING_NAME_M_HOUSE; @@ -220,7 +226,8 @@ public void onItemSelected(AdapterView parent, View view, int position, long selectedCampaign = BUILDING_NAME_NUCLEUS; break; } - Log.d("CorrectionFragment", "Selected campaign: " + selectedCampaign); // Log selection + // Log selection + Log.d("CorrectionFragment", "Selected campaign: " + selectedCampaign); } @Override diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java index 2cdd6368..afbd2e91 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java @@ -190,8 +190,7 @@ private List> processInfoResponse(String infoString) { * Update the RecyclerView in the FilesFragment with new data. * Must be called from a UI thread. Initialises a new Layout Manager, and passes it to the * RecyclerView. Initialises a {@link TrajDownloadListAdapter} with the input array and setting - * up a listener so that trajectories are downloaded when clicked, and a pop-up message is - * displayed to notify the user. + * up a listener so that trajectories are downloaded when clicked. * * @param entryList List of Maps of String to String containing metadata about the uploaded * trajectories (ID, owner ID, date). @@ -208,16 +207,6 @@ private void updateView(List> entryList) { // Pass ID and date_submitted serverCommunications.downloadTrajectory(position, id, dateSubmitted); - -// new AlertDialog.Builder(getContext()) -// .setTitle("File downloaded") -// .setMessage("Trajectory downloaded to local storage") -// .setPositiveButton(R.string.ok, null) -// .setNegativeButton(R.string.show_storage, (dialogInterface, i) -> { -// startActivity(new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS)); -// }) -// .setIcon(R.drawable.ic_baseline_download_24) -// .show(); }); filesList.setAdapter(listAdapter); // Force refresh RecyclerView to ensure downloadRecords changes are detected diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java b/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java index 8efcae70..3cf868aa 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java @@ -31,6 +31,15 @@ public class Building { private static final int BUILDING_NO_FLOOR = -1; private static final String BUILDING_GROUND_PREFIX = "G"; + + /* + * Sort the floor names in the order: + * - Basement + * - Lower ground + * - Ground + * - Upper ground + * - (Upper) Floors + * */ private static final String[] BUILDING_FLOOR_PREFIX_ORDER = new String[] { "B", "L", BUILDING_GROUND_PREFIX, "U", "F" }; @@ -67,15 +76,6 @@ public Building( */ this.outlinePolygonOptions = buildOutlinePolygon(); this.floorPlanElementOptions = buildFloorPlanElements(); - - /* - * Sort the floor names in the order: - * - Basement - * - Lower ground - * - Ground - * - Upper ground - * - (Upper) Floors - * */ this.floorNames = defineFloorNameOrder(new ArrayList<>(this.floorPlans.keySet())); // Define the floor height @@ -145,7 +145,14 @@ private Map> buildFloorPlanElements(){ return floorPlanElementOptions; } - // Sort elements based on B -> L -> G -> U -> F order for floors + /** + * Sort the floor plan names such that the lowest index + * is the lowest floor. Also sets the ground floor index + * for future reference + * + * @param names The unsorted list of floor plan names + * @return The sorted floor plan names + * */ private List defineFloorNameOrder(List names){ List orderedNames = new ArrayList<>(); for (String floorPrefix : BUILDING_FLOOR_PREFIX_ORDER){ @@ -173,17 +180,16 @@ private List defineFloorNameOrder(List names){ * @return true if an indoor map is visible to the user, false otherwise */ public boolean getIsInsideBuilding(){return isInsideBuilding;} - public void setIsPreviewingFloorPlan(boolean set){ - isPreviewingFloorPlan = set; - } public boolean getIsPreviowingFloorPlan(){return isPreviewingFloorPlan;} - public int getFloorNumber(){return floorNumber;} public List getFloorNames(){return floorNames;} public Polygon getBuildingOutline(){return outlinePolygon;} public List getFloorPlanElements(String floorName){ return floorPlanElements.get(floorName); } + public void setIsPreviewingFloorPlan(boolean set){ + isPreviewingFloorPlan = set; + } /** * Draw an outline of the building on the map. @@ -204,6 +210,11 @@ public void drawBuildingOutline(GoogleMap map){ } } + /** + * Set the fill colour of the building polygon + * + * @param colour The desired colour of the polygon + * */ public void setFillColour(int colour){ if (outlinePolygon == null){ Log.w("Building", name + ": Outline polygon is null!"); @@ -244,6 +255,9 @@ public void setCurrentFloor(int newFloor, GoogleMap gMap) { /** * Hide all available floor plans for the building + * + * @param map The GoogleMap object showing the floor plans + * of the building * */ public void hideFloorPlans(GoogleMap map){ for (int i = 0; i < floorNames.size(); i++) { @@ -260,6 +274,10 @@ public void hideFloorPlans(GoogleMap map){ *

    * Either add the polylines required if they have never been * drawn before, or toggle their visibility + * @param map The GoogleMap object drawing the floor plans + * @param floorNumber The floor being displayed or hidden + * @param showFloor True if the floor plan should be visible; + * false otherwise, to hide the floorplan * */ public void editFloorPlan(GoogleMap map, int floorNumber, boolean showFloor){ String floorName = floorNames.get(floorNumber); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9ee94a59..c3b1d012 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -139,7 +139,7 @@ Play End Exit - Indoor Positioning (Coming Soon) + Indoor Positioning (In Development) Map Type Drop Marker From dd1d4dca5d1f1258d977ee86cb847567493ec19a Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Mon, 9 Mar 2026 15:22:37 +0000 Subject: [PATCH 25/65] [Infra] CW2 Start (#61) --- .gitignore | 9 ++------- secrets.properties | 6 ------ 2 files changed, 2 insertions(+), 13 deletions(-) delete mode 100644 secrets.properties diff --git a/.gitignore b/.gitignore index 9f36f93c..8bf9f68c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,12 @@ *.iml .gradle /local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml .DS_Store /build /captures .externalNativeBuild .cxx -local.properties /.idea/ **/.vscode/ +# TODO - Re-include before final submission +secrets.properties diff --git a/secrets.properties b/secrets.properties deleted file mode 100644 index 585fc423..00000000 --- a/secrets.properties +++ /dev/null @@ -1,6 +0,0 @@ -# -# Modify the variables to set your keys -# -MAPS_API_KEY= -OPENPOSITIONING_API_KEY= -OPENPOSITIONING_MASTER_KEY= \ No newline at end of file From fb1c3e5ddd827953e6807960fd1906eaa91e3f70 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Mon, 9 Mar 2026 18:51:14 +0000 Subject: [PATCH 26/65] [Maint] Static Code Analysis (#67) --- README.md | 12 +- app/build.gradle | 37 +- app/lint-baseline.xml | 35 +- .../PositionMe/ExampleInstrumentedTest.java | 26 - .../PositionMe/TrajectoryMetadataTest.java | 35 +- .../sensors/BleDataProcessorTest.java | 15 +- .../PositionMe/data/local/TrajParser.java | 403 +++--- .../data/remote/ServerCommunications.java | 1123 +++++++++-------- .../presentation/activity/MainActivity.java | 304 +++-- .../activity/RecordingActivity.java | 61 +- .../presentation/activity/ReplayActivity.java | 77 +- .../fragment/CorrectionFragment.java | 254 ++-- .../presentation/fragment/FilesFragment.java | 151 ++- .../presentation/fragment/HomeFragment.java | 137 +- .../presentation/fragment/InfoFragment.java | 32 +- .../fragment/MeasurementsFragment.java | 200 ++- .../fragment/RecordingFragment.java | 383 +++--- .../presentation/fragment/ReplayFragment.java | 314 +++-- .../fragment/SettingsFragment.java | 44 +- .../fragment/StartLocationFragment.java | 199 ++- .../fragment/TrajectoryMapFragment.java | 581 +++++---- .../presentation/fragment/UploadFragment.java | 105 +- .../viewitems/BleListAdapter.java | 22 +- .../presentation/viewitems/BleViewHolder.java | 6 +- .../viewitems/DownloadClickListener.java | 3 +- .../viewitems/SensorInfoListAdapter.java | 39 +- .../viewitems/SensorInfoViewHolder.java | 6 +- .../viewitems/TrajDownloadListAdapter.java | 205 +-- .../viewitems/TrajDownloadViewHolder.java | 22 +- .../viewitems/UploadListAdapter.java | 45 +- .../viewitems/UploadViewHolder.java | 18 +- .../viewitems/WifiListAdapter.java | 20 +- .../viewitems/WifiViewHolder.java | 6 +- .../PositionMe/sensors/BleDataProcessor.java | 136 +- .../PositionMe/sensors/BleDevice.java | 68 +- .../PositionMe/sensors/GNSSDataProcessor.java | 76 +- .../PositionMe/sensors/MovementSensor.java | 45 +- .../PositionMe/sensors/Observable.java | 10 +- .../PositionMe/sensors/Observer.java | 6 +- .../PositionMe/sensors/SensorFusion.java | 692 +++++----- .../PositionMe/sensors/SensorInfo.java | 60 +- .../PositionMe/sensors/SensorTypes.java | 6 +- .../PositionMe/sensors/WiFiPositioning.java | 235 ++-- .../PositionMe/sensors/Wifi.java | 69 +- .../PositionMe/sensors/WifiDataProcessor.java | 324 ++--- .../PositionMe/utils/Building.java | 701 +++++----- .../PositionMe/utils/CircularFloatBuffer.java | 32 +- .../PositionMe/utils/IndoorMapManager.java | 61 +- .../PositionMe/utils/PathView.java | 98 +- .../PositionMe/utils/PdrProcessing.java | 220 ++-- .../PositionMe/utils/PermissionManager.java | 113 +- .../PositionMe/utils/UtilConstants.java | 95 +- .../PositionMe/utils/UtilFunctions.java | 67 +- .../PositionMe/ExampleUnitTest.java | 17 - .../PositionMe/TestPointUnitTest.java | 71 +- .../PositionMe/WifiDeduplicationTest.java | 10 +- build.gradle | 8 +- 57 files changed, 4162 insertions(+), 3978 deletions(-) delete mode 100644 app/src/androidTest/java/com/openpositioning/PositionMe/ExampleInstrumentedTest.java delete mode 100644 app/src/test/java/com/openpositioning/PositionMe/ExampleUnitTest.java diff --git a/README.md b/README.md index 5f985bbf..c8c48bc6 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Android 11](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml) [![Android 16](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml) -**PositionMe** is an indoor positioning data collection application initially developed for the University of Edinburgh's Embedded Wireless course. The application now includes enhanced features, including **trajectory playback**, improved UI design, and comprehensive location tracking. +**PositionMe** is an indoor positioning data collection application initially developed for the [University of Edinburgh's Embedded Wireless course](https://www.drps.ed.ac.uk/25-26/dpt/cxelee11083.htm). The application now includes enhanced features, including **trajectory playback**, improved UI design, and comprehensive location tracking. ## Features @@ -23,11 +23,19 @@ - **Android Studio 4.2** or later - **Android SDK 30** or later +For developers, the latest commits have been tested using the following configuration: +- [Android Studio 2024.2.1 Patch 1 ('Ladybird')](https://developer.android.com/studio/archive) + - Android Gradle Plugin 8.7.3 + - Gradle 8.10.2 + - Google Services 4.4.2 + - [Spotless](https://github.com/diffplug/spotless) 8.3.0 +- Android SDK 34 ('Android 14') + ## Installation 1. **Clone the repository.** 2. **Open the project in Android Studio**. -3. Add your own API key for Google Maps in AndroidManifest.xml +3. Add your own API key for Google Maps in `AndroidManifest.xml` 4. Set the website where you want to send your data. The application was built for use with [openpositioning.org](http://openpositioning.org/). 5. **Build and run the project on your Android device**. diff --git a/app/build.gradle b/app/build.gradle index d991de38..f0c1a125 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,15 +3,43 @@ plugins { id 'com.google.gms.google-services' id 'androidx.navigation.safeargs' id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' + id 'com.diffplug.spotless' version "8.3.0" } -// (Optional) load local secrets file: +// Load local secrets file: def localProperties = new Properties() def localPropertiesFile = rootProject.file('secrets.properties') if (localPropertiesFile.exists()) { localProperties.load(new FileInputStream(localPropertiesFile)) } +spotless { + format 'misc', { + // Define the files to apply `misc` to + target '*.gradle', '.gitattributes', '.gitignore' + + // Define the steps to apply to those files + trimTrailingWhitespace() + leadingTabsToSpaces(2) + endWithNewline() + } + java { + // All Java files, except autogenerated Traj.java + target "**/*.java" + targetExclude "**/Traj.java" + + // Checks to be applied (on top of Google's Java style guide) + endWithNewline() + forbidWildcardImports() + formatAnnotations() + leadingTabsToSpaces(2) + removeUnusedImports() + trimTrailingWhitespace() + + googleJavaFormat('1.35.0').aosp().reflowLongStrings() + } +} + android { namespace "com.openpositioning.PositionMe" compileSdk 34 @@ -59,9 +87,10 @@ android { targetCompatibility JavaVersion.VERSION_17 } - // Add lint support - lint { - baseline = file("lint-baseline.xml") + // Add lint support (Android linting) + lintOptions { + abortOnError true + baseline file("lint-baseline.xml") } } diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml index 27c1fbd9..2429dfc0 100644 --- a/app/lint-baseline.xml +++ b/app/lint-baseline.xml @@ -1,21 +1,18 @@ - - - + file="build/intermediates/lint-cache/lintReportDebug/migrated-jars/androidx.navigation.common.lint.NavigationCommonIssueRegistry-5daa12651be0734e..jar"/> + file="build/intermediates/lint-cache/lintReportDebug/migrated-jars/androidx.navigation.runtime.lint.NavigationRuntimeIssueRegistry-a8fea42aedb9bdb3..jar"/> @@ -245,7 +242,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -256,7 +253,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -267,7 +264,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -278,7 +275,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -289,7 +286,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -300,7 +297,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -311,7 +308,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -322,7 +319,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -333,7 +330,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -344,7 +341,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -355,7 +352,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -366,7 +363,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -377,7 +374,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> diff --git a/app/src/androidTest/java/com/openpositioning/PositionMe/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/openpositioning/PositionMe/ExampleInstrumentedTest.java deleted file mode 100644 index ace7cabb..00000000 --- a/app/src/androidTest/java/com/openpositioning/PositionMe/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.openpositioning.PositionMe; - -import android.content.Context; - -import androidx.test.platform.app.InstrumentationRegistry; -import androidx.test.ext.junit.runners.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); - assertEquals("com.openpositioning.PositionMe", appContext.getPackageName()); - } -} \ No newline at end of file diff --git a/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java b/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java index b0675569..bd7f6235 100644 --- a/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java +++ b/app/src/androidTest/java/com/openpositioning/PositionMe/TrajectoryMetadataTest.java @@ -1,7 +1,11 @@ package com.openpositioning.PositionMe; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import org.junit.Test; -import static org.junit.Assert.*; public class TrajectoryMetadataTest { @@ -10,31 +14,36 @@ public void testTrajectoryIdGeneration() { String trajectoryId = generateTrajectoryId(); assertNotNull("Trajectory ID should not be null", trajectoryId); - assertTrue("Trajectory ID should start with 'android_'", - trajectoryId.startsWith("android_")); - assertTrue("Trajectory ID should contain device model", + assertTrue( + "Trajectory ID should start with 'android_'", trajectoryId.startsWith("android_")); + assertTrue( + "Trajectory ID should contain device model", trajectoryId.contains(android.os.Build.MODEL.replaceAll("\\s+", "_"))); - assertTrue("Trajectory ID should contain timestamp", - trajectoryId.length() > 20); + assertTrue("Trajectory ID should contain timestamp", trajectoryId.length() > 20); } @Test public void testTrajectoryVersionIsCorrect() { - Traj.Trajectory.Builder builder = Traj.Trajectory.newBuilder() - .setTrajectoryVersion(2.0f) - .setTrajectoryId("test_id"); + Traj.Trajectory.Builder builder = + Traj.Trajectory.newBuilder().setTrajectoryVersion(2.0f).setTrajectoryId("test_id"); Traj.Trajectory trajectory = builder.build(); - assertEquals("Trajectory version should be 2.0", - 2.0f, trajectory.getTrajectoryVersion(), 0.001f); + assertEquals( + "Trajectory version should be 2.0", + 2.0f, + trajectory.getTrajectoryVersion(), + 0.001f); } @Test public void testTrajectoryIdUniqueness() { String id1 = generateTrajectoryId(); // Small delay to ensure different timestamp - try { Thread.sleep(10); } catch (InterruptedException e) {} + try { + Thread.sleep(10); + } catch (InterruptedException e) { + } String id2 = generateTrajectoryId(); assertNotEquals("Two trajectory IDs should be different", id1, id2); @@ -45,4 +54,4 @@ private String generateTrajectoryId() { long timestamp = System.currentTimeMillis(); return String.format("android_%s_%d", deviceModel, timestamp); } -} \ No newline at end of file +} diff --git a/app/src/androidTest/java/com/openpositioning/PositionMe/sensors/BleDataProcessorTest.java b/app/src/androidTest/java/com/openpositioning/PositionMe/sensors/BleDataProcessorTest.java index 2aedf63d..ffede20c 100644 --- a/app/src/androidTest/java/com/openpositioning/PositionMe/sensors/BleDataProcessorTest.java +++ b/app/src/androidTest/java/com/openpositioning/PositionMe/sensors/BleDataProcessorTest.java @@ -1,11 +1,13 @@ package com.openpositioning.PositionMe.sensors; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import android.content.Context; -import androidx.test.platform.app.InstrumentationRegistry; import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.platform.app.InstrumentationRegistry; import org.junit.Test; import org.junit.runner.RunWith; -import static org.junit.Assert.*; @RunWith(AndroidJUnit4.class) public class BleDataProcessorTest { @@ -22,12 +24,13 @@ public void testObserverRegistration() { Context context = InstrumentationRegistry.getInstrumentation().getTargetContext(); BleDataProcessor processor = new BleDataProcessor(context); - Observer testObserver = objList -> { - // Test observer - }; + Observer testObserver = + objList -> { + // Test observer + }; processor.registerObserver(testObserver); // If no exception, test passes assertTrue(true); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java b/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java index 4a6e48a6..2ed0790c 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/local/TrajParser.java @@ -3,16 +3,13 @@ import android.content.Context; import android.hardware.SensorManager; import android.util.Log; - import com.google.android.gms.maps.model.LatLng; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.openpositioning.PositionMe.presentation.fragment.ReplayFragment; -import com.openpositioning.PositionMe.sensors.GNSSDataProcessor; import com.openpositioning.PositionMe.sensors.SensorFusion; - import java.io.BufferedReader; import java.io.File; import java.io.FileReader; @@ -22,33 +19,32 @@ import java.util.List; /** - * Handles parsing of trajectory data stored in JSON files, combining IMU, PDR, and GNSS data - * to reconstruct motion paths. + * Handles parsing of trajectory data stored in JSON files, combining IMU, PDR, and GNSS data to + * reconstruct motion paths. + * + *

    The **TrajParser** is primarily responsible for processing recorded trajectory data and + * reconstructing motion information, including estimated positions, GNSS coordinates, speed, and + * orientation. It does this by reading a JSON file containing: * - *

    - * The **TrajParser** is primarily responsible for processing recorded trajectory data and - * reconstructing motion information, including estimated positions, GNSS coordinates, speed, and orientation. - * It does this by reading a JSON file containing: - *

    *
      - *
    • IMU (Inertial Measurement Unit) data
    • - *
    • PDR (Pedestrian Dead Reckoning) position data
    • - *
    • GNSS (Global Navigation Satellite System) location data
    • + *
    • IMU (Inertial Measurement Unit) data + *
    • PDR (Pedestrian Dead Reckoning) position data + *
    • GNSS (Global Navigation Satellite System) location data *
    * - *

    - * **Usage in Module 'PositionMe.app.main':** - *

    + *

    **Usage in Module 'PositionMe.app.main':** + * *

      - *
    • **ReplayFragment** - Calls `parseTrajectoryData()` to read recorded trajectory files and process movement.
    • - *
    • Stores parsed trajectory data as `ReplayPoint` objects.
    • - *
    • Provides data for updating map visualizations in `ReplayFragment`.
    • + *
    • **ReplayFragment** - Calls `parseTrajectoryData()` to read recorded trajectory files and + * process movement. + *
    • Stores parsed trajectory data as `ReplayPoint` objects. + *
    • Provides data for updating map visualizations in `ReplayFragment`. *
    * * @see ReplayFragment which uses parsed trajectory data for visualization. * @see SensorFusion for motion processing and sensor integration. - * @see com.openpositioning.PositionMe.presentation.fragment.ReplayFragment for implementation details. - * + * @see com.openpositioning.PositionMe.presentation.fragment.ReplayFragment for implementation + * details. * @author Shu Gu * @author Lin Cheng */ @@ -61,25 +57,30 @@ public class TrajParser { * orientation, speed, and timestamp. */ public static class ReplayPoint { - public LatLng pdrLocation; // PDR-derived location estimate + public LatLng pdrLocation; // PDR-derived location estimate public LatLng gnssLocation; // GNSS location (may be null if unavailable) - public float orientation; // Orientation in degrees - public float speed; // Speed in meters per second - public long timestamp; // Relative timestamp - public LatLng testPoint; // Test point location (null if not a test point) + public float orientation; // Orientation in degrees + public float speed; // Speed in meters per second + public long timestamp; // Relative timestamp + public LatLng testPoint; // Test point location (null if not a test point) public int testPointNumber; // Test point number (0 if not a test point) public String testPointTime; // Formatted time for test point /** * Constructs a ReplayPoint. * - * @param pdrLocation The pedestrian dead reckoning (PDR) location. + * @param pdrLocation The pedestrian dead reckoning (PDR) location. * @param gnssLocation The GNSS location, or null if unavailable. - * @param orientation The orientation angle in degrees. - * @param speed The speed in meters per second. - * @param timestamp The timestamp associated with this point. + * @param orientation The orientation angle in degrees. + * @param speed The speed in meters per second. + * @param timestamp The timestamp associated with this point. */ - public ReplayPoint(LatLng pdrLocation, LatLng gnssLocation, float orientation, float speed, long timestamp) { + public ReplayPoint( + LatLng pdrLocation, + LatLng gnssLocation, + float orientation, + float speed, + long timestamp) { this.pdrLocation = pdrLocation; this.gnssLocation = gnssLocation; this.orientation = orientation; @@ -91,21 +92,30 @@ public ReplayPoint(LatLng pdrLocation, LatLng gnssLocation, float orientation, f } } - /** Represents an IMU (Inertial Measurement Unit) data record used for orientation calculations. */ + /** + * Represents an IMU (Inertial Measurement Unit) data record used for orientation calculations. + */ private static class ImuRecord { public long relativeTimestamp; public float accX, accY, accZ; // Accelerometer values public float gyrX, gyrY, gyrZ; // Gyroscope values - public float rotationVectorX, rotationVectorY, rotationVectorZ, rotationVectorW; // Rotation quaternion + public float rotationVectorX, + rotationVectorY, + rotationVectorZ, + rotationVectorW; // Rotation quaternion } - /** Represents a Pedestrian Dead Reckoning (PDR) data record storing position shifts over time. */ + /** + * Represents a Pedestrian Dead Reckoning (PDR) data record storing position shifts over time. + */ private static class PdrRecord { public long relativeTimestamp; public float x, y; // Position relative to the starting point } - /** Represents a GNSS (Global Navigation Satellite System) data record with latitude/longitude. */ + /** + * Represents a GNSS (Global Navigation Satellite System) data record with latitude/longitude. + */ private static class GnssRecord { public long relativeTimestamp; public double latitude, longitude; // GNSS coordinates @@ -120,25 +130,24 @@ private static class TestPointRecord { /** * Parses trajectory data from a JSON file and reconstructs a list of replay points. * - *

    - * This method processes a trajectory log file, extracting IMU, PDR, and GNSS records, - * and uses them to generate **ReplayPoint** objects. Each point contains: - *

    + *

    This method processes a trajectory log file, extracting IMU, PDR, and GNSS records, and + * uses them to generate **ReplayPoint** objects. Each point contains: + * *

      - *
    • Estimated PDR-based position.
    • - *
    • GNSS location (if available).
    • - *
    • Computed orientation using rotation vectors.
    • - *
    • Speed estimation based on movement data.
    • + *
    • Estimated PDR-based position. + *
    • GNSS location (if available). + *
    • Computed orientation using rotation vectors. + *
    • Speed estimation based on movement data. *
    * - * @param filePath Path to the JSON file containing trajectory data. - * @param context Android application context (used for sensor processing). + * @param filePath Path to the JSON file containing trajectory data. + * @param context Android application context (used for sensor processing). * @param originLat Latitude of the reference origin. * @param originLng Longitude of the reference origin. * @return A list of parsed {@link ReplayPoint} objects. */ - public static List parseTrajectoryData(String filePath, Context context, - double originLat, double originLng) { + public static List parseTrajectoryData( + String filePath, Context context, double originLat, double originLng) { List result = new ArrayList<>(); try { @@ -158,27 +167,38 @@ public static List parseTrajectoryData(String filePath, Context con Log.i(TAG, "Successfully read trajectory file: " + filePath); - long startTimestamp = root.has("startTimestamp") ? root.get("startTimestamp").getAsLong() : 0; + long startTimestamp = + root.has("startTimestamp") ? root.get("startTimestamp").getAsLong() : 0; List imuList = parseImuData(root.getAsJsonArray("imuData")); List pdrList = parsePdrData(root.getAsJsonArray("pdrData")); List gnssList = parseGnssData(root.getAsJsonArray("gnssData")); - List testPointList = parseTestPoints(root.getAsJsonArray("testPoints")); - - Log.i(TAG, "Parsed data - IMU: " + imuList.size() + " records, PDR: " - + pdrList.size() + " records, GNSS: " + gnssList.size() + " records"); + List testPointList = + parseTestPoints(root.getAsJsonArray("testPoints")); + + Log.i( + TAG, + "Parsed data - IMU: " + + imuList.size() + + " records, PDR: " + + pdrList.size() + + " records, GNSS: " + + gnssList.size() + + " records"); for (int i = 0; i < pdrList.size(); i++) { PdrRecord pdr = pdrList.get(i); ImuRecord closestImu = findClosestImuRecord(imuList, pdr.relativeTimestamp); - float orientationDeg = closestImu != null ? computeOrientationFromRotationVector( - closestImu.rotationVectorX, - closestImu.rotationVectorY, - closestImu.rotationVectorZ, - closestImu.rotationVectorW, - context - ) : 0f; + float orientationDeg = + closestImu != null + ? computeOrientationFromRotationVector( + closestImu.rotationVectorX, + closestImu.rotationVectorY, + closestImu.rotationVectorZ, + closestImu.rotationVectorW, + context) + : 0f; float speed = 0f; if (i > 0) { @@ -190,26 +210,38 @@ public static List parseTrajectoryData(String filePath, Context con if (dt > 0) speed = (float) (distance / dt); } - double lat = originLat + pdr.y * 1E-5; double lng = originLng + pdr.x * 1E-5; LatLng pdrLocation = new LatLng(lat, lng); GnssRecord closestGnss = findClosestGnssRecord(gnssList, pdr.relativeTimestamp); - LatLng gnssLocation = closestGnss != null ? - new LatLng(closestGnss.latitude, closestGnss.longitude) : null; - - result.add(new ReplayPoint(pdrLocation, gnssLocation, orientationDeg, - 0f, pdr.relativeTimestamp)); + LatLng gnssLocation = + closestGnss != null + ? new LatLng(closestGnss.latitude, closestGnss.longitude) + : null; + + result.add( + new ReplayPoint( + pdrLocation, + gnssLocation, + orientationDeg, + 0f, + pdr.relativeTimestamp)); } // Match test points to ReplayPoints by finding closest timestamp for (int i = 0; i < testPointList.size(); i++) { TestPointRecord testPt = testPointList.get(i); - ReplayPoint closest = result.stream() - .min(Comparator.comparingLong(rp -> Math.abs(rp.timestamp - testPt.relativeTimestamp))) - .orElse(null); + ReplayPoint closest = + result.stream() + .min( + Comparator.comparingLong( + rp -> + Math.abs( + rp.timestamp + - testPt.relativeTimestamp))) + .orElse(null); if (closest != null) { closest.testPoint = new LatLng(testPt.latitude, testPt.longitude); @@ -228,96 +260,111 @@ public static List parseTrajectoryData(String filePath, Context con return result; } -/** Parses IMU data from JSON. */ -private static List parseImuData(JsonArray imuArray) { - List imuList = new ArrayList<>(); - if (imuArray == null) return imuList; - for (int i = 0; i < imuArray.size(); i++) { - try { - JsonObject imuObj = imuArray.get(i).getAsJsonObject(); - ImuRecord record = new ImuRecord(); - - record.relativeTimestamp = imuObj.has("relativeTimestamp") - ? imuObj.get("relativeTimestamp").getAsLong() : 0; - - // Parse acc (nested) - if (imuObj.has("acc")) { - JsonObject acc = imuObj.getAsJsonObject("acc"); - record.accX = acc.has("x") ? acc.get("x").getAsFloat() : 0f; - record.accY = acc.has("y") ? acc.get("y").getAsFloat() : 0f; - record.accZ = acc.has("z") ? acc.get("z").getAsFloat() : 0f; - } + /** Parses IMU data from JSON. */ + private static List parseImuData(JsonArray imuArray) { + List imuList = new ArrayList<>(); + if (imuArray == null) return imuList; + + for (int i = 0; i < imuArray.size(); i++) { + try { + JsonObject imuObj = imuArray.get(i).getAsJsonObject(); + ImuRecord record = new ImuRecord(); + + record.relativeTimestamp = + imuObj.has("relativeTimestamp") + ? imuObj.get("relativeTimestamp").getAsLong() + : 0; + + // Parse acc (nested) + if (imuObj.has("acc")) { + JsonObject acc = imuObj.getAsJsonObject("acc"); + record.accX = acc.has("x") ? acc.get("x").getAsFloat() : 0f; + record.accY = acc.has("y") ? acc.get("y").getAsFloat() : 0f; + record.accZ = acc.has("z") ? acc.get("z").getAsFloat() : 0f; + } - // Parse gyr (nested) - if (imuObj.has("gyr")) { - JsonObject gyr = imuObj.getAsJsonObject("gyr"); - record.gyrX = gyr.has("x") ? gyr.get("x").getAsFloat() : 0f; - record.gyrY = gyr.has("y") ? gyr.get("y").getAsFloat() : 0f; - record.gyrZ = gyr.has("z") ? gyr.get("z").getAsFloat() : 0f; - } + // Parse gyr (nested) + if (imuObj.has("gyr")) { + JsonObject gyr = imuObj.getAsJsonObject("gyr"); + record.gyrX = gyr.has("x") ? gyr.get("x").getAsFloat() : 0f; + record.gyrY = gyr.has("y") ? gyr.get("y").getAsFloat() : 0f; + record.gyrZ = gyr.has("z") ? gyr.get("z").getAsFloat() : 0f; + } - // Parse rotationVector (nested) - if (imuObj.has("rotationVector")) { - JsonObject rot = imuObj.getAsJsonObject("rotationVector"); - record.rotationVectorX = rot.has("x") ? rot.get("x").getAsFloat() : 0f; - record.rotationVectorY = rot.has("y") ? rot.get("y").getAsFloat() : 0f; - record.rotationVectorZ = rot.has("z") ? rot.get("z").getAsFloat() : 0f; - record.rotationVectorW = rot.has("w") ? rot.get("w").getAsFloat() : 1f; - } + // Parse rotationVector (nested) + if (imuObj.has("rotationVector")) { + JsonObject rot = imuObj.getAsJsonObject("rotationVector"); + record.rotationVectorX = rot.has("x") ? rot.get("x").getAsFloat() : 0f; + record.rotationVectorY = rot.has("y") ? rot.get("y").getAsFloat() : 0f; + record.rotationVectorZ = rot.has("z") ? rot.get("z").getAsFloat() : 0f; + record.rotationVectorW = rot.has("w") ? rot.get("w").getAsFloat() : 1f; + } - imuList.add(record); - } catch (Exception e) { - Log.e(TAG, "Error parsing IMU record: " + e.getMessage()); + imuList.add(record); + } catch (Exception e) { + Log.e(TAG, "Error parsing IMU record: " + e.getMessage()); + } } + return imuList; } - return imuList; -}/** Parses PDR data from JSON. */ -private static List parsePdrData(JsonArray pdrArray) { - List pdrList = new ArrayList<>(); - if (pdrArray == null) return pdrList; - Gson gson = new Gson(); - for (int i = 0; i < pdrArray.size(); i++) { - PdrRecord record = gson.fromJson(pdrArray.get(i), PdrRecord.class); - pdrList.add(record); + + /** Parses PDR data from JSON. */ + private static List parsePdrData(JsonArray pdrArray) { + List pdrList = new ArrayList<>(); + if (pdrArray == null) return pdrList; + Gson gson = new Gson(); + for (int i = 0; i < pdrArray.size(); i++) { + PdrRecord record = gson.fromJson(pdrArray.get(i), PdrRecord.class); + pdrList.add(record); + } + return pdrList; } - return pdrList; -}/** Parses GNSS data from JSON. */ -private static List parseGnssData(JsonArray gnssArray) { - List gnssList = new ArrayList<>(); - if (gnssArray == null) return gnssList; - for (int i = 0; i < gnssArray.size(); i++) { - try { - JsonObject gnssObj = gnssArray.get(i).getAsJsonObject(); - GnssRecord record = new GnssRecord(); - - // Check if position object exists (nested structure) - if (gnssObj.has("position")) { - JsonObject position = gnssObj.getAsJsonObject("position"); - record.relativeTimestamp = position.has("relativeTimestamp") - ? position.get("relativeTimestamp").getAsLong() : 0; - record.latitude = position.has("latitude") - ? position.get("latitude").getAsDouble() : 0.0; - record.longitude = position.has("longitude") - ? position.get("longitude").getAsDouble() : 0.0; - } else { - // Flat structure (fallback) - record.relativeTimestamp = gnssObj.has("relativeTimestamp") - ? gnssObj.get("relativeTimestamp").getAsLong() : 0; - record.latitude = gnssObj.has("latitude") - ? gnssObj.get("latitude").getAsDouble() : 0.0; - record.longitude = gnssObj.has("longitude") - ? gnssObj.get("longitude").getAsDouble() : 0.0; + /** Parses GNSS data from JSON. */ + private static List parseGnssData(JsonArray gnssArray) { + List gnssList = new ArrayList<>(); + if (gnssArray == null) return gnssList; + + for (int i = 0; i < gnssArray.size(); i++) { + try { + JsonObject gnssObj = gnssArray.get(i).getAsJsonObject(); + GnssRecord record = new GnssRecord(); + + // Check if position object exists (nested structure) + if (gnssObj.has("position")) { + JsonObject position = gnssObj.getAsJsonObject("position"); + record.relativeTimestamp = + position.has("relativeTimestamp") + ? position.get("relativeTimestamp").getAsLong() + : 0; + record.latitude = + position.has("latitude") ? position.get("latitude").getAsDouble() : 0.0; + record.longitude = + position.has("longitude") + ? position.get("longitude").getAsDouble() + : 0.0; + } else { + // Flat structure (fallback) + record.relativeTimestamp = + gnssObj.has("relativeTimestamp") + ? gnssObj.get("relativeTimestamp").getAsLong() + : 0; + record.latitude = + gnssObj.has("latitude") ? gnssObj.get("latitude").getAsDouble() : 0.0; + record.longitude = + gnssObj.has("longitude") ? gnssObj.get("longitude").getAsDouble() : 0.0; + } + gnssList.add(record); + } catch (Exception e) { + Log.e(TAG, "Error parsing GNSS record: " + e.getMessage()); } - gnssList.add(record); - } catch (Exception e) { - Log.e(TAG, "Error parsing GNSS record: " + e.getMessage()); } + return gnssList; } - return gnssList; -}/** Parses Test Points data from JSON. */ -private static List parseTestPoints(JsonArray testPointsArray) { + + /** Parses Test Points data from JSON. */ + private static List parseTestPoints(JsonArray testPointsArray) { List testPointsList = new ArrayList<>(); if (testPointsArray == null) return testPointsList; Gson gson = new Gson(); @@ -326,29 +373,42 @@ private static List parseTestPoints(JsonArray testPointsArray) testPointsList.add(record); } return testPointsList; -}/** Finds the closest IMU record to the given timestamp. */ -private static ImuRecord findClosestImuRecord(List imuList, long targetTimestamp) { - return imuList.stream().min(Comparator.comparingLong(imu -> Math.abs(imu.relativeTimestamp - targetTimestamp))) - .orElse(null); - -}/** Finds the closest GNSS record to the given timestamp. */ -private static GnssRecord findClosestGnssRecord(List gnssList, long targetTimestamp) { - return gnssList.stream().min(Comparator.comparingLong(gnss -> Math.abs(gnss.relativeTimestamp - targetTimestamp))) - .orElse(null); - -}/** Computes the orientation from a rotation vector. */ -private static float computeOrientationFromRotationVector(float rx, float ry, float rz, float rw, Context context) { - float[] rotationVector = new float[]{rx, ry, rz, rw}; - float[] rotationMatrix = new float[9]; - float[] orientationAngles = new float[3]; - - SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); - SensorManager.getRotationMatrixFromVector(rotationMatrix, rotationVector); - SensorManager.getOrientation(rotationMatrix, orientationAngles); - - float azimuthDeg = (float) Math.toDegrees(orientationAngles[0]); - return azimuthDeg < 0 ? azimuthDeg + 360.0f : azimuthDeg; -} + } + + /** Finds the closest IMU record to the given timestamp. */ + private static ImuRecord findClosestImuRecord(List imuList, long targetTimestamp) { + return imuList.stream() + .min( + Comparator.comparingLong( + imu -> Math.abs(imu.relativeTimestamp - targetTimestamp))) + .orElse(null); + } + + /** Finds the closest GNSS record to the given timestamp. */ + private static GnssRecord findClosestGnssRecord( + List gnssList, long targetTimestamp) { + return gnssList.stream() + .min( + Comparator.comparingLong( + gnss -> Math.abs(gnss.relativeTimestamp - targetTimestamp))) + .orElse(null); + } + + /** Computes the orientation from a rotation vector. */ + private static float computeOrientationFromRotationVector( + float rx, float ry, float rz, float rw, Context context) { + float[] rotationVector = new float[] {rx, ry, rz, rw}; + float[] rotationMatrix = new float[9]; + float[] orientationAngles = new float[3]; + + SensorManager sensorManager = + (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); + SensorManager.getRotationMatrixFromVector(rotationMatrix, rotationVector); + SensorManager.getOrientation(rotationMatrix, orientationAngles); + + float azimuthDeg = (float) Math.toDegrees(orientationAngles[0]); + return azimuthDeg < 0 ? azimuthDeg + 360.0f : azimuthDeg; + } /** Formats a relative timestamp into MM:SS format */ private static String formatTimestamp(long relativeTimestamp) { @@ -357,5 +417,4 @@ private static String formatTimestamp(long relativeTimestamp) { seconds = seconds % 60; return String.format("%02d:%02d", minutes, seconds); } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java index b53936a7..47a82631 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java @@ -22,20 +22,17 @@ import android.os.Looper; import android.util.Log; import android.widget.Toast; - import androidx.annotation.NonNull; import androidx.preference.PreferenceManager; - import com.google.android.gms.maps.model.LatLng; import com.google.protobuf.util.JsonFormat; import com.openpositioning.PositionMe.Traj; -import com.openpositioning.PositionMe.presentation.fragment.FilesFragment; import com.openpositioning.PositionMe.presentation.activity.MainActivity; +import com.openpositioning.PositionMe.presentation.fragment.FilesFragment; import com.openpositioning.PositionMe.presentation.fragment.RecordingFragment; import com.openpositioning.PositionMe.sensors.Observable; import com.openpositioning.PositionMe.sensors.Observer; import com.openpositioning.PositionMe.sensors.Wifi; - import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; @@ -51,12 +48,11 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Date; -import java.util.Map; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.zip.ZipInputStream; - import okhttp3.Call; import okhttp3.Callback; import okhttp3.Headers; @@ -68,16 +64,15 @@ import okhttp3.RequestBody; import okhttp3.Response; import okhttp3.ResponseBody; - import org.json.JSONObject; /** - * This class handles communications with the server through HTTPs. The class uses an - * {@link OkHttpClient} for making requests to the server. The class includes methods for sending - * a recorded trajectory, uploading locally-stored trajectories, downloading trajectories from the + * This class handles communications with the server through HTTPs. The class uses an {@link + * OkHttpClient} for making requests to the server. The class includes methods for sending a + * recorded trajectory, uploading locally-stored trajectories, downloading trajectories from the * server and requesting information about the uploaded trajectories. * - * Keys and URLs are hardcoded strings, given the simple and academic nature of the project. + *

    Keys and URLs are hardcoded strings, given the simple and academic nature of the project. * * @author Michal Dvorak * @author Mate Stodulka @@ -109,7 +104,7 @@ public class ServerCommunications implements Observable { * initialises a {@link ConnectivityManager}, {@link Observer} and gets the user preferences. * Boolean variables storing WiFi and Mobile Data connection status are initialised to false. * - * @param context application context for handling permissions and devices. + * @param context application context for handling permissions and devices. */ public ServerCommunications(Context context) { this.context = context; @@ -123,22 +118,18 @@ public ServerCommunications(Context context) { } /** - * Outgoing communication request with a {@link Traj trajectory} object. The recorded - * trajectory is passed to the method. It is processed into the right format for sending - * to the API server. + * Outgoing communication request with a {@link Traj trajectory} object. The recorded trajectory + * is passed to the method. It is processed into the right format for sending to the API server. * * @param trajectory Traj object matching all the timing and formal restrictions. - * @param campaign The building associated with the route + * @param campaign The building associated with the route */ - public void sendTrajectory( - Traj.Trajectory trajectory, - String campaign - ){ + public void sendTrajectory(Traj.Trajectory trajectory, String campaign) { Toast.makeText( - context, - "Now uploading '" + campaign + "' trajectory...", - Toast.LENGTH_SHORT - ).show(); + context, + "Now uploading '" + campaign + "' trajectory...", + Toast.LENGTH_SHORT) + .show(); logDataSize(trajectory); // Convert the trajectory to byte array @@ -161,7 +152,7 @@ public void sendTrajectory( // Format the file name according to date SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yy-HH-mm-ss"); Date date = new Date(); - File file = new File(path, "trajectory_" + dateFormat.format(date) + ".txt"); + File file = new File(path, "trajectory_" + dateFormat.format(date) + ".txt"); try { // Write the binary data to the file @@ -169,20 +160,18 @@ public void sendTrajectory( stream.write(binaryTrajectory); stream.close(); Log.i( - "ServerCommunications", - "Recorded binary trajectory for debugging stored in: " + path - ); + "ServerCommunications", + "Recorded binary trajectory for debugging stored in: " + path); } catch (IOException e) { // Catch and print if writing to the file fails Log.e( - "ServerCommunications", - "Storing of recorded binary trajectory failed: " + e.getMessage() - ); + "ServerCommunications", + "Storing of recorded binary trajectory failed: " + e.getMessage()); } // Only proceed if campaign is valid - if (campaign.isBlank() || campaign.equals(BUILDING_NAME_OUTSIDE)){ - String message = "Invalid campaign ('"+ campaign + "') - Cancelling upload"; + if (campaign.isBlank() || campaign.equals(BUILDING_NAME_OUTSIDE)) { + String message = "Invalid campaign ('" + campaign + "') - Cancelling upload"; Log.w("ServerCommunications", message); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); return; @@ -200,138 +189,152 @@ public void sendTrajectory( OkHttpClient client = new OkHttpClient(); // Create a request body with a file to upload in multipart/form-data format - RequestBody requestBody = new MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart("file", file.getName(), - RequestBody.create(MediaType.parse("text/plain"), file)) - .build(); + RequestBody requestBody = + new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart( + "file", + file.getName(), + RequestBody.create(MediaType.parse("text/plain"), file)) + .build(); // Create a POST request with the required headers String uploadURL = createUploadURL(campaign); - Request request = new Request.Builder() - .url(uploadURL) - .post(requestBody) - .addHeader("accept", PROTOCOL_APP_JSON) - .addHeader("Content-Type", PROTOCOL_MULTIPART) - .build(); + Request request = + new Request.Builder() + .url(uploadURL) + .post(requestBody) + .addHeader("accept", PROTOCOL_APP_JSON) + .addHeader("Content-Type", PROTOCOL_MULTIPART) + .build(); // Enqueue the request to be executed asynchronously and handle the response - client.newCall(request).enqueue(new Callback() { - - // Handle failure to get response from the server - @Override public void onFailure(Call call, IOException e) { - Log.e( - "ServerCommunications", - "Failure to get response: " + e.getMessage() - ); - success = false; - notifyObservers(OBSERVER_INDEX_MAIN); - } - - private void copyFile(File src, File dst) throws IOException { - try (InputStream in = new FileInputStream(src); - OutputStream out = new FileOutputStream(dst)) { - byte[] buf = new byte[1024]; - int len; - while ((len = in.read(buf)) > 0) { - out.write(buf, 0, len); - } - } - } - - // Process the server's response - @Override public void onResponse(Call call, Response response) throws IOException { - try (ResponseBody responseBody = response.body()) { - // If the response is unsuccessful, throw an exception - if (!response.isSuccessful()) { - // Show error message to users - String errorBody = responseBody.string(); - infoResponse = "Upload failed: " + errorBody; - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show() - ); - - Log.e( - "ServerCommunications", - "POST error (Code " + response.code() + ")\n" - + errorBody - ); - success = false; - notifyObservers(OBSERVER_INDEX_MAIN); - throw new IOException("Unexpected code " + response); - } - - // Print the response headers - Headers responseHeaders = response.headers(); - for (int i = 0, size = responseHeaders.size(); i < size; i++) { - Log.i( - "ServerCommunications", - responseHeaders.name(i) + ": " + responseHeaders.value(i) - ); - } - // Print a confirmation of a successful POST to API - Log.i("ServerCommunications", "Successful post response"); - - Log.i("ServerCommunications", "Get file: " + file.getName()); - String originalPath = file.getAbsolutePath(); - Log.i( - "ServerCommunications", - "Original trajectory file saved at: " + originalPath - ); - - // Copy the file to the Downloads folder - File downloadsDir = Environment.getExternalStoragePublicDirectory( - Environment.DIRECTORY_DOWNLOADS - ); - File downloadFile = new File(downloadsDir, file.getName()); - try { - copyFile(file, downloadFile); - Log.i( - "ServerCommunications", - "Trajectory file copied to Downloads: " - + downloadFile.getAbsolutePath() - ); - } catch (IOException e) { - Log.e( - "ServerCommunications", - "Failed to copy file to Downloads: " + e.getMessage() - ); - } - - // Delete local file and set success to true - success = file.delete(); - notifyObservers(OBSERVER_INDEX_MAIN); - } - } - }); - } - else { + client.newCall(request) + .enqueue( + new Callback() { + + // Handle failure to get response from the server + @Override + public void onFailure(Call call, IOException e) { + Log.e( + "ServerCommunications", + "Failure to get response: " + e.getMessage()); + success = false; + notifyObservers(OBSERVER_INDEX_MAIN); + } + + private void copyFile(File src, File dst) throws IOException { + try (InputStream in = new FileInputStream(src); + OutputStream out = new FileOutputStream(dst)) { + byte[] buf = new byte[1024]; + int len; + while ((len = in.read(buf)) > 0) { + out.write(buf, 0, len); + } + } + } + + // Process the server's response + @Override + public void onResponse(Call call, Response response) + throws IOException { + try (ResponseBody responseBody = response.body()) { + // If the response is unsuccessful, throw an exception + if (!response.isSuccessful()) { + // Show error message to users + String errorBody = responseBody.string(); + infoResponse = "Upload failed: " + errorBody; + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + infoResponse, + Toast + .LENGTH_SHORT) + .show()); + + Log.e( + "ServerCommunications", + "POST error (Code " + + response.code() + + ")\n" + + errorBody); + success = false; + notifyObservers(OBSERVER_INDEX_MAIN); + throw new IOException("Unexpected code " + response); + } + + // Print the response headers + Headers responseHeaders = response.headers(); + for (int i = 0, size = responseHeaders.size(); + i < size; + i++) { + Log.i( + "ServerCommunications", + responseHeaders.name(i) + + ": " + + responseHeaders.value(i)); + } + // Print a confirmation of a successful POST to API + Log.i("ServerCommunications", "Successful post response"); + + Log.i( + "ServerCommunications", + "Get file: " + file.getName()); + String originalPath = file.getAbsolutePath(); + Log.i( + "ServerCommunications", + "Original trajectory file saved at: " + + originalPath); + + // Copy the file to the Downloads folder + File downloadsDir = + Environment.getExternalStoragePublicDirectory( + Environment.DIRECTORY_DOWNLOADS); + File downloadFile = new File(downloadsDir, file.getName()); + try { + copyFile(file, downloadFile); + Log.i( + "ServerCommunications", + "Trajectory file copied to Downloads: " + + downloadFile.getAbsolutePath()); + } catch (IOException e) { + Log.e( + "ServerCommunications", + "Failed to copy file to Downloads: " + + e.getMessage()); + } + + // Delete local file and set success to true + success = file.delete(); + notifyObservers(OBSERVER_INDEX_MAIN); + } + } + }); + } else { // If the device is not connected to network or allowed to send, // do not send trajectory and notify observers and user String message = "No uploading allowed right now!"; Log.e("ServerCommunications", message); - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText(context, message, Toast.LENGTH_SHORT).show() - ); + new Handler(Looper.getMainLooper()) + .post(() -> Toast.makeText(context, message, Toast.LENGTH_SHORT).show()); success = false; notifyObservers(OBSERVER_INDEX_MAIN); } } /** - * Uploads a local trajectory file to the API server in the specified format. - * {@link OkHttp} library is used for the asynchronous POST request. + * Uploads a local trajectory file to the API server in the specified format. {@link OkHttp} + * library is used for the asynchronous POST request. * * @param localTrajectory the File object of the local trajectory to be uploaded * @param campaign The building associated with the route */ - public void uploadLocalTrajectory( - File localTrajectory, - String campaign - ) { + public void uploadLocalTrajectory(File localTrajectory, String campaign) { // Only proceed if campaign is valid - if (campaign.isBlank() || campaign.equals(BUILDING_NAME_OUTSIDE)){ - String message = "Invalid campaign ('"+ campaign + "') - Cancelling upload"; + if (campaign.isBlank() || campaign.equals(BUILDING_NAME_OUTSIDE)) { + String message = "Invalid campaign ('" + campaign + "') - Cancelling upload"; Log.w("ServerCommunications", message); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); return; @@ -345,110 +348,124 @@ public void uploadLocalTrajectory( if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { try { byte[] fileBytes = Files.readAllBytes(localTrajectory.toPath()); - fileRequestBody = RequestBody.create( - MediaType.parse("text/plain"), - fileBytes - ); + fileRequestBody = RequestBody.create(MediaType.parse("text/plain"), fileBytes); } catch (IOException e) { Log.e("ServerCommunications", "Error: " + e.getMessage()); // if failed, use File object to construct RequestBody - fileRequestBody = RequestBody.create( - MediaType.parse("text/plain"), - localTrajectory - ); + fileRequestBody = + RequestBody.create(MediaType.parse("text/plain"), localTrajectory); } } else { - fileRequestBody = RequestBody.create( - MediaType.parse("text/plain"), - localTrajectory - ); + fileRequestBody = RequestBody.create(MediaType.parse("text/plain"), localTrajectory); } // Create request body with a file to upload in multipart/form-data format - RequestBody requestBody = new MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart("file", localTrajectory.getName(), fileRequestBody) - .build(); + RequestBody requestBody = + new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("file", localTrajectory.getName(), fileRequestBody) + .build(); // Create a POST request with the required headers String uploadURL = createUploadURL(campaign); - okhttp3.Request request = new okhttp3.Request.Builder() - .url(uploadURL) - .post(requestBody) - .addHeader("accept", PROTOCOL_APP_JSON) - .addHeader("Content-Type", PROTOCOL_MULTIPART) - .build(); + okhttp3.Request request = + new okhttp3.Request.Builder() + .url(uploadURL) + .post(requestBody) + .addHeader("accept", PROTOCOL_APP_JSON) + .addHeader("Content-Type", PROTOCOL_MULTIPART) + .build(); // Enqueue the request to be executed asynchronously and handle the response Toast.makeText(context, "Local trajectory sent for upload", Toast.LENGTH_SHORT).show(); - client.newCall(request).enqueue(new okhttp3.Callback() { - @Override - public void onFailure(Call call, IOException e) { - // Set success to false and notify observers - success = false; - Log.e( - "ServerCommunications", - "[" + e.getMessage() + "] UPLOAD: Failure to get response" - ); - // Notify users - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText( - context, - "Upload failed\nServer unresponsive or unreachable", - Toast.LENGTH_SHORT - ).show() - ); - notifyObservers(OBSERVER_INDEX_MAIN); - } - - @Override - public void onResponse(Call call, Response response) throws IOException { - try (ResponseBody responseBody = response.body()) { - if (!response.isSuccessful()) { - success = false; - notifyObservers(OBSERVER_INDEX_MAIN); - assert responseBody != null; - String errorBody = responseBody.string(); - Log.e("ServerCommunications", "UPLOAD unsuccessful: " + errorBody); - infoResponse = "Upload failed (Error code " + response.code() + ")"; - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show()); - throw new IOException("UPLOAD failed with code " + response); - } - - // Print the response headers - Headers responseHeaders = response.headers(); - for (int i = 0, size = responseHeaders.size(); i < size; i++) { - Log.i( - "ServerCommunications", - responseHeaders.name(i) + ": " + responseHeaders.value(i) - ); - } - - // Print a confirmation of a successful POST to API - assert responseBody != null; - Log.i( - "ServerCommunications", - "UPLOAD SUCCESSFUL: " + responseBody.string() - ); - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText( - context, - "Upload successful\nRemoving local copy...", - Toast.LENGTH_SHORT - ).show() - ); - // Delete local file, set success to true and notify observers - success = localTrajectory.delete(); - notifyObservers(OBSERVER_INDEX_MAIN); - } - } - }); + client.newCall(request) + .enqueue( + new okhttp3.Callback() { + @Override + public void onFailure(Call call, IOException e) { + // Set success to false and notify observers + success = false; + Log.e( + "ServerCommunications", + "[" + e.getMessage() + "] UPLOAD: Failure to get response"); + // Notify users + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + "Upload failed\n" + + "Server unresponsive" + + " or unreachable", + Toast.LENGTH_SHORT) + .show()); + notifyObservers(OBSERVER_INDEX_MAIN); + } + + @Override + public void onResponse(Call call, Response response) + throws IOException { + try (ResponseBody responseBody = response.body()) { + if (!response.isSuccessful()) { + success = false; + notifyObservers(OBSERVER_INDEX_MAIN); + assert responseBody != null; + String errorBody = responseBody.string(); + Log.e( + "ServerCommunications", + "UPLOAD unsuccessful: " + errorBody); + infoResponse = + "Upload failed (Error code " + + response.code() + + ")"; + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + infoResponse, + Toast.LENGTH_SHORT) + .show()); + throw new IOException( + "UPLOAD failed with code " + response); + } + + // Print the response headers + Headers responseHeaders = response.headers(); + for (int i = 0, size = responseHeaders.size(); i < size; i++) { + Log.i( + "ServerCommunications", + responseHeaders.name(i) + + ": " + + responseHeaders.value(i)); + } + + // Print a confirmation of a successful POST to API + assert responseBody != null; + Log.i( + "ServerCommunications", + "UPLOAD SUCCESSFUL: " + responseBody.string()); + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + "Upload successful\n" + + "Removing local" + + " copy...", + Toast.LENGTH_SHORT) + .show()); + // Delete local file, set success to true and notify observers + success = localTrajectory.delete(); + notifyObservers(OBSERVER_INDEX_MAIN); + } + } + }); } /** - * Loads download records from a JSON file and updates the downloadRecords map. - * If the file exists, it reads the JSON content and populates the map. + * Loads download records from a JSON file and updates the downloadRecords map. If the file + * exists, it reads the JSON content and populates the map. */ private void loadDownloadRecords() { // Point to the app-specific Downloads folder @@ -471,31 +488,27 @@ private void loadDownloadRecords() { String id = record.getString("id"); downloadRecords.put(id, record); } catch (Exception e) { - Log.e("ServerCommunications", - "[" + e.getMessage() + "] Error loading record with key: " + key - ); + Log.e( + "ServerCommunications", + "[" + e.getMessage() + "] Error loading record with key: " + key); } } - Log.i( - "ServerCommunications", - "Loaded downloadRecords: " + downloadRecords - ); + Log.i("ServerCommunications", "Loaded downloadRecords: " + downloadRecords); } catch (Exception e) { Log.e("ServerCommunications", "Error: " + e.getMessage()); } } else { Log.i( - "ServerCommunications", - "Download_records.json not found in app-specific directory." - ); + "ServerCommunications", + "Download_records.json not found in app-specific directory."); } } /** - * Saves a download record to a JSON file. - * The method creates or updates the JSON file with the provided details. + * Saves a download record to a JSON file. The method creates or updates the JSON file with the + * provided details. * * @param startTimestamp the start timestamp of the trajectory * @param fileName the name of the file @@ -503,11 +516,7 @@ private void loadDownloadRecords() { * @param dateSubmitted the date the trajectory was submitted */ private void saveDownloadRecord( - long startTimestamp, - String fileName, - String id, - String dateSubmitted - ) { + long startTimestamp, String fileName, String id, String dateSubmitted) { File recordsDir = context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS); File recordsFile = new File(recordsDir, "download_records.json"); JSONObject jsonObject; @@ -524,9 +533,8 @@ private void saveDownloadRecord( jsonObject = new JSONObject(); } else { Log.e( - "ServerCommunications", - "Failed to create file: " + recordsFile.getAbsolutePath() - ); + "ServerCommunications", + "Failed to create file: " + recordsFile.getAbsolutePath()); return; } } else { @@ -539,9 +547,10 @@ private void saveDownloadRecord( } } // If file is empty or invalid JSON, use a fresh JSONObject - jsonObject = jsonBuilder.length() > 0 - ? new JSONObject(jsonBuilder.toString()) - : new JSONObject(); + jsonObject = + jsonBuilder.length() > 0 + ? new JSONObject(jsonBuilder.toString()) + : new JSONObject(); } // Create the new record details @@ -561,203 +570,246 @@ private void saveDownloadRecord( } Log.i( - "ServerCommunications", - "Download record saved successfully at: " + recordsFile.getAbsolutePath() - ); + "ServerCommunications", + "Download record saved successfully at: " + recordsFile.getAbsolutePath()); } catch (Exception e) { - Log.e( - "ServerCommunications", - "Error saving download record: " + e.getMessage() - ); + Log.e("ServerCommunications", "Error saving download record: " + e.getMessage()); } } /** * Perform API request for downloading a Trajectory uploaded to the server. The trajectory is * retrieved from a zip file, with the method accepting a position argument specifying the - * trajectory to be downloaded. The trajectory is then converted to a protobuf object and - * then to a JSON string to be downloaded to the device's Downloads folder. + * trajectory to be downloaded. The trajectory is then converted to a protobuf object and then + * to a JSON string to be downloaded to the device's Downloads folder. * * @param position The position of the trajectory in the zip file to retrieve * @param id The ID of the trajectory * @param dateSubmitted The date the trajectory was submitted */ public void downloadTrajectory(int position, String id, String dateSubmitted) { - loadDownloadRecords(); // Load existing records from app-specific directory + loadDownloadRecords(); // Load existing records from app-specific directory - String url = URL_GET_TRAJECTORIES_HEAD - + (position + TRAJECTORY_REQUEST_BUFFER) - + URL_GET_TRAJECTORIES_TAIL; + String url = + URL_GET_TRAJECTORIES_HEAD + + (position + TRAJECTORY_REQUEST_BUFFER) + + URL_GET_TRAJECTORIES_TAIL; // Initialise OkHttp client OkHttpClient client = new OkHttpClient(); // Create GET request with required header - okhttp3.Request request = new okhttp3.Request.Builder() - .url(url) - .addHeader("accept", PROTOCOL_APP_JSON) - .get() - .build(); + okhttp3.Request request = + new okhttp3.Request.Builder() + .url(url) + .addHeader("accept", PROTOCOL_APP_JSON) + .get() + .build(); // Enqueue the GET request for asynchronous execution Toast.makeText(context, "Request sent for recording " + id, Toast.LENGTH_SHORT).show(); - client.newCall(request).enqueue(new okhttp3.Callback() { - @Override - public void onFailure(Call call, IOException e) { - Log.e("ServerCommunications", "GET request error: " + e.getMessage()); - } - - @Override - public void onResponse(Call call, Response response) throws IOException { - try (ResponseBody responseBody = response.body()) { - if (!response.isSuccessful()) throw new IOException( - "Upload Error (Error Code " + response.code() + ")" - ); - Log.d("ServerCommunications", "Trajectories received.\n" - + "Now parsing for ID " + id + " (Position " + position + ")"); - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText( - context, - "Downloaded trajectory " + id + "\n" - +"Now parsing...", - Toast.LENGTH_SHORT - ).show() - ); - - // Extract the nth entry from the zip - InputStream inputStream = responseBody.byteStream(); - ZipInputStream zipInputStream = new ZipInputStream(inputStream); - - java.util.zip.ZipEntry zipEntry; - int zipCount = 0; - while ((zipEntry = zipInputStream.getNextEntry()) != null) { - if (zipCount == position) { - // break if zip entry position matches the desired position - break; - } - zipCount++; - } - - // Initialise a byte array output stream - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - - // Read the zipped data and write it to the byte array output stream - byte[] buffer = new byte[1024]; - int bytesRead; - while ((bytesRead = zipInputStream.read(buffer)) != -1) { - byteArrayOutputStream.write(buffer, 0, bytesRead); - } - - // Convert the byte array to protobuf - byte[] byteArray = byteArrayOutputStream.toByteArray(); - Log.d( - "ServerCommunications", - "byteArray = " + Arrays.toString(byteArray) - ); - Traj.Trajectory receivedTrajectory = Traj.Trajectory.parseFrom(byteArray); - - // Print a message in the console - long startTimestamp = receivedTrajectory.getStartTimestamp(); - String fileName = "trajectory_" + dateSubmitted + ".txt"; - Log.i("ServerCommunications", fileName + " received"); - - // Inspect the size of the received trajectory - logDataSize(receivedTrajectory); - - // Place the file in your app-specific "Downloads" folder - File appSpecificDownloads = context.getExternalFilesDir( - Environment.DIRECTORY_DOWNLOADS - ); - if (appSpecificDownloads != null && !appSpecificDownloads.exists()) { - Log.d("ServerCommunications", "Creating downloads directory..."); - appSpecificDownloads.mkdirs(); - } - - File file = new File(appSpecificDownloads, fileName); - try (FileWriter fileWriter = new FileWriter(file)) { - String receivedTrajectoryString = JsonFormat.printer() - .print(receivedTrajectory); - fileWriter.write(receivedTrajectoryString); - fileWriter.flush(); - Log.i( - "ServerCommunications", - "Received trajectory stored in: " + file.getAbsolutePath() - ); - - // Save the download record - saveDownloadRecord(startTimestamp, fileName, id, dateSubmitted); - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText( - context, - "Trajectory " + id + " is ready for replay!", - Toast.LENGTH_SHORT - ).show() - ); - } catch (IOException ee) { - Log.e( - "ServerCommunications", - "Trajectory download failed: " + ee.getMessage()); - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText( - context, - "There was a problem parsing trajectory " + id + "\n" - + "Please try again later", - Toast.LENGTH_SHORT - ).show() - ); - } finally { - // Close all streams and entries to release resources - zipInputStream.closeEntry(); - byteArrayOutputStream.close(); - zipInputStream.close(); - inputStream.close(); - } - } - // Refresh the list of download options - loadDownloadRecords(); - } - }); + client.newCall(request) + .enqueue( + new okhttp3.Callback() { + @Override + public void onFailure(Call call, IOException e) { + Log.e( + "ServerCommunications", + "GET request error: " + e.getMessage()); + } + + @Override + public void onResponse(Call call, Response response) + throws IOException { + try (ResponseBody responseBody = response.body()) { + if (!response.isSuccessful()) + throw new IOException( + "Upload Error (Error Code " + + response.code() + + ")"); + Log.d( + "ServerCommunications", + "Trajectories received.\n" + + "Now parsing for ID " + + id + + " (Position " + + position + + ")"); + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + "Downloaded trajectory " + + id + + "\n" + + "Now parsing...", + Toast.LENGTH_SHORT) + .show()); + + // Extract the nth entry from the zip + InputStream inputStream = responseBody.byteStream(); + ZipInputStream zipInputStream = new ZipInputStream(inputStream); + + java.util.zip.ZipEntry zipEntry; + int zipCount = 0; + while ((zipEntry = zipInputStream.getNextEntry()) != null) { + if (zipCount == position) { + // break if zip entry position matches the desired + // position + break; + } + zipCount++; + } + + // Initialise a byte array output stream + ByteArrayOutputStream byteArrayOutputStream = + new ByteArrayOutputStream(); + + // Read the zipped data and write it to the byte array output + // stream + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = zipInputStream.read(buffer)) != -1) { + byteArrayOutputStream.write(buffer, 0, bytesRead); + } + + // Convert the byte array to protobuf + byte[] byteArray = byteArrayOutputStream.toByteArray(); + Log.d( + "ServerCommunications", + "byteArray = " + Arrays.toString(byteArray)); + Traj.Trajectory receivedTrajectory = + Traj.Trajectory.parseFrom(byteArray); + + // Print a message in the console + long startTimestamp = receivedTrajectory.getStartTimestamp(); + String fileName = "trajectory_" + dateSubmitted + ".txt"; + Log.i("ServerCommunications", fileName + " received"); + + // Inspect the size of the received trajectory + logDataSize(receivedTrajectory); + + // Place the file in your app-specific "Downloads" folder + File appSpecificDownloads = + context.getExternalFilesDir( + Environment.DIRECTORY_DOWNLOADS); + if (appSpecificDownloads != null + && !appSpecificDownloads.exists()) { + Log.d( + "ServerCommunications", + "Creating downloads directory..."); + appSpecificDownloads.mkdirs(); + } + + File file = new File(appSpecificDownloads, fileName); + try (FileWriter fileWriter = new FileWriter(file)) { + String receivedTrajectoryString = + JsonFormat.printer().print(receivedTrajectory); + fileWriter.write(receivedTrajectoryString); + fileWriter.flush(); + Log.i( + "ServerCommunications", + "Received trajectory stored in: " + + file.getAbsolutePath()); + + // Save the download record + saveDownloadRecord( + startTimestamp, fileName, id, dateSubmitted); + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + "Trajectory " + + id + + " is ready" + + " for replay!", + Toast.LENGTH_SHORT) + .show()); + } catch (IOException ee) { + Log.e( + "ServerCommunications", + "Trajectory download failed: " + ee.getMessage()); + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + "There was a" + + " problem" + + " parsing" + + " trajectory " + + id + + "\n" + + "Please" + + " try again" + + " later", + Toast.LENGTH_SHORT) + .show()); + } finally { + // Close all streams and entries to release resources + zipInputStream.closeEntry(); + byteArrayOutputStream.close(); + zipInputStream.close(); + inputStream.close(); + } + } + // Refresh the list of download options + loadDownloadRecords(); + } + }); } /** - * API request for information about submitted trajectories. If the response is successful, - * the {@link ServerCommunications#infoResponse} field is updated and observes notified. - * + * API request for information about submitted trajectories. If the response is successful, the + * {@link ServerCommunications#infoResponse} field is updated and observes notified. */ public void sendInfoRequest(String requestURL) { // Create a new OkHttpclient OkHttpClient client = new OkHttpClient(); // Create GET info request with appropriate URL and header - okhttp3.Request request = new okhttp3.Request.Builder() - .url(requestURL) - .addHeader("accept", PROTOCOL_APP_JSON) - .get() - .build(); + okhttp3.Request request = + new okhttp3.Request.Builder() + .url(requestURL) + .addHeader("accept", PROTOCOL_APP_JSON) + .get() + .build(); // Enqueue the GET request for asynchronous execution - client.newCall(request).enqueue(new okhttp3.Callback() { - @Override public void onFailure(Call call, IOException e) { - Log.e("ServerCommunications", "Error: " + e.getMessage()); - } - - @Override public void onResponse(Call call, Response response) throws IOException { - try (ResponseBody responseBody = response.body()) { - // Check if the response is successful - if (!response.isSuccessful()) throw new IOException( - "Upload Error (Error Code " + response.code() + ")" - ); - - // Get the requested information from the response body and save it in a string - infoResponse = responseBody.string(); - // Print a message in the console and notify observers - Log.i("ServerCommunications", "Response received; URL " + requestURL); - Log.i("ServerCommunications", infoResponse); - notifyObservers(OBSERVER_INDEX_FILES); - } - } - }); + client.newCall(request) + .enqueue( + new okhttp3.Callback() { + @Override + public void onFailure(Call call, IOException e) { + Log.e("ServerCommunications", "Error: " + e.getMessage()); + } + + @Override + public void onResponse(Call call, Response response) + throws IOException { + try (ResponseBody responseBody = response.body()) { + // Check if the response is successful + if (!response.isSuccessful()) + throw new IOException( + "Upload Error (Error Code " + + response.code() + + ")"); + + // Get the requested information from the response body and save + // it in a string + infoResponse = responseBody.string(); + // Print a message in the console and notify observers + Log.i( + "ServerCommunications", + "Response received; URL " + requestURL); + Log.i("ServerCommunications", infoResponse); + notifyObservers(OBSERVER_INDEX_FILES); + } + } + }); } /** @@ -765,14 +817,11 @@ public void sendInfoRequest(String requestURL) { * * @param position Current position during recording * @param wifiAPs List of nearby wireless access points - * */ - public void requestFloorplans( - @NonNull LatLng position, - @NonNull List wifiAPs - ){ + */ + public void requestFloorplans(@NonNull LatLng position, @NonNull List wifiAPs) { // Simple delay window between floor plan API calls long currentTime = System.currentTimeMillis(); - if (currentTime - lastTime < FLOOR_PLAN_POLL_TIME_MS){ + if (currentTime - lastTime < FLOOR_PLAN_POLL_TIME_MS) { return; } else { lastTime = currentTime; @@ -783,83 +832,103 @@ public void requestFloorplans( // Generate list of AP MAC addresses List aps = new ArrayList<>(); - if (wifiAPs != null){ - for (Wifi ap : wifiAPs){ + if (wifiAPs != null) { + for (Wifi ap : wifiAPs) { aps.add(String.valueOf(ap.getBssid())); } } // Construct payload for request MediaType JSON = MediaType.get(PROTOCOL_APP_JSON + "; charset=utf-8"); - String payload = "{" - + "\"lat\": " + position.latitude + ", " - + "\"lon\": " + position.longitude + ", " - + "\"macs\": " + aps - + "}"; + String payload = + "{" + + "\"lat\": " + + position.latitude + + ", " + + "\"lon\": " + + position.longitude + + ", " + + "\"macs\": " + + aps + + "}"; RequestBody requestBody = RequestBody.create(payload, JSON); - okhttp3.Request request = new okhttp3.Request.Builder() - .url(URL_POST_FLOORPLANS) - .post(requestBody) - .addHeader("accept", PROTOCOL_APP_JSON) - .addHeader("Content-Type", PROTOCOL_APP_JSON) - .build(); - - client.newCall(request).enqueue(new okhttp3.Callback() { - - @Override - public void onResponse( - @NonNull Call call, - @NonNull Response response - ) throws IOException { - try (ResponseBody responseBody = response.body()) { - if (!response.isSuccessful()) { - assert responseBody != null; - String errorBody = responseBody.string(); - Log.e("ServerCommunications", "UPLOAD unsuccessful: " + errorBody); - infoResponse = "Upload Error (Error Code " + response.code() + ")"; - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show()); - throw new IOException(infoResponse); - } - - // Print the response headers - Headers responseHeaders = response.headers(); - for (int i = 0, size = responseHeaders.size(); i < size; i++) { - Log.d("ServerCommunications", - responseHeaders.name(i) + ": " + responseHeaders.value(i) - ); - } - - assert responseBody != null; - infoResponse = responseBody.string(); - Log.i("ServerCommunications", "Floor plans received!"); - notifyObservers(OBSERVER_INDEX_RECORDING); - } - } - - @Override - public void onFailure( - @NonNull Call call, - @NonNull IOException e - ) { - Log.e("ServerCommunications", - "[" + e.getMessage() + "] UPLOAD: Failure to get response" - ); - - // Show error message to users - infoResponse = "Upload failed: " + e.getMessage(); - new Handler(Looper.getMainLooper()).post(() -> - Toast.makeText(context, infoResponse, Toast.LENGTH_SHORT).show() - ); - notifyObservers(OBSERVER_INDEX_RECORDING); - } - }); + okhttp3.Request request = + new okhttp3.Request.Builder() + .url(URL_POST_FLOORPLANS) + .post(requestBody) + .addHeader("accept", PROTOCOL_APP_JSON) + .addHeader("Content-Type", PROTOCOL_APP_JSON) + .build(); + + client.newCall(request) + .enqueue( + new okhttp3.Callback() { + + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) + throws IOException { + try (ResponseBody responseBody = response.body()) { + if (!response.isSuccessful()) { + assert responseBody != null; + String errorBody = responseBody.string(); + Log.e( + "ServerCommunications", + "UPLOAD unsuccessful: " + errorBody); + infoResponse = + "Upload Error (Error Code " + response.code() + ")"; + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + infoResponse, + Toast.LENGTH_SHORT) + .show()); + throw new IOException(infoResponse); + } + + // Print the response headers + Headers responseHeaders = response.headers(); + for (int i = 0, size = responseHeaders.size(); i < size; i++) { + Log.d( + "ServerCommunications", + responseHeaders.name(i) + + ": " + + responseHeaders.value(i)); + } + + assert responseBody != null; + infoResponse = responseBody.string(); + Log.i("ServerCommunications", "Floor plans received!"); + notifyObservers(OBSERVER_INDEX_RECORDING); + } + } + + @Override + public void onFailure(@NonNull Call call, @NonNull IOException e) { + Log.e( + "ServerCommunications", + "[" + e.getMessage() + "] UPLOAD: Failure to get response"); + + // Show error message to users + infoResponse = "Upload failed: " + e.getMessage(); + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + infoResponse, + Toast.LENGTH_SHORT) + .show()); + notifyObservers(OBSERVER_INDEX_RECORDING); + } + }); } /** - * This method checks the device's connection status. It sets boolean variables depending on - * the type of active network connection. + * This method checks the device's connection status. It sets boolean variables depending on the + * type of active network connection. */ private void checkNetworkStatus() { // Get active network information @@ -876,56 +945,38 @@ private void checkNetworkStatus() { } /** - * Create the trajectory upload URL by inserting the building - * the route is related to + * Create the trajectory upload URL by inserting the building the route is related to * * @param campaign The name of the building - * */ - private String createUploadURL(String campaign){ - return URL_API + API_POST_TRAJECTORIES + "/" - + campaign + "/" + API_KEY_USER - + "/?key=" + API_KEY_MASTER; + */ + private String createUploadURL(String campaign) { + return URL_API + + API_POST_TRAJECTORIES + + "/" + + campaign + + "/" + + API_KEY_USER + + "/?key=" + + API_KEY_MASTER; } private void logDataSize(Traj.Trajectory trajectory) { + Log.i("ServerCommunications", "IMU Data size: " + trajectory.getImuDataCount()); Log.i( - "ServerCommunications", - "IMU Data size: " + trajectory.getImuDataCount() - ); - Log.i( - "ServerCommunications", - "Position Data size: " + trajectory.getMagnetometerDataCount() - ); - Log.i( - "ServerCommunications", - "Pressure Data size: " + trajectory.getPressureDataCount() - ); - Log.i( - "ServerCommunications", - "Light Data size: " + trajectory.getLightDataCount() - ); - Log.i( - "ServerCommunications", - "GNSS Data size: " + trajectory.getGnssDataCount() - ); - Log.i( - "ServerCommunications", - "WiFi Data size: " + trajectory.getWifiFingerprintsCount() - ); - Log.i( - "ServerCommunications", - "APS Data size: " + trajectory.getApsDataCount() - ); - Log.i( - "ServerCommunications", - "PDR Data size: " + trajectory.getPdrDataCount() - ); + "ServerCommunications", + "Position Data size: " + trajectory.getMagnetometerDataCount()); + Log.i("ServerCommunications", "Pressure Data size: " + trajectory.getPressureDataCount()); + Log.i("ServerCommunications", "Light Data size: " + trajectory.getLightDataCount()); + Log.i("ServerCommunications", "GNSS Data size: " + trajectory.getGnssDataCount()); + Log.i("ServerCommunications", "WiFi Data size: " + trajectory.getWifiFingerprintsCount()); + Log.i("ServerCommunications", "APS Data size: " + trajectory.getApsDataCount()); + Log.i("ServerCommunications", "PDR Data size: " + trajectory.getPdrDataCount()); } /** * {@inheritDoc} * - * Implement default method from Observable Interface to add new observers to the list of + *

    Implement default method from Observable Interface to add new observers to the list of * registered observers. * * @param o Classes which implement the Observer interface to receive updates from the class. @@ -939,26 +990,24 @@ public void registerObserver(Observer o) { /** * {@inheritDoc} * - * Method for notifying all registered observers. The observer is notified based on the index + *

    Method for notifying all registered observers. The observer is notified based on the index * passed to the method. * * @param index Index for identifying the observer to be notified. */ @Override public void notifyObservers(int index) { - for(Observer o : observers) { - if(index == OBSERVER_INDEX_FILES && o instanceof FilesFragment) { + for (Observer o : observers) { + if (index == OBSERVER_INDEX_FILES && o instanceof FilesFragment) { o.update(new String[] {infoResponse}); - } - else if (index == OBSERVER_INDEX_MAIN && o instanceof MainActivity) { + } else if (index == OBSERVER_INDEX_MAIN && o instanceof MainActivity) { Log.d("ServerCommunications", "Telling home!"); o.update(new Boolean[] {success}); - } - else if (index == OBSERVER_INDEX_RECORDING && o instanceof RecordingFragment) { + } else if (index == OBSERVER_INDEX_RECORDING && o instanceof RecordingFragment) { o.update(new String[] {infoResponse}); } else { Log.w("ServerCommunications", "No observer with index " + index); } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java index 995f010d..6ad59eb6 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java @@ -1,15 +1,13 @@ package com.openpositioning.PositionMe.presentation.activity; + import android.Manifest; import android.content.SharedPreferences; - import android.content.pm.PackageManager; -import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; - import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; @@ -17,7 +15,6 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.widget.Toolbar; - import androidx.core.content.ContextCompat; import androidx.navigation.NavController; import androidx.navigation.NavOptions; @@ -25,7 +22,6 @@ import androidx.navigation.ui.AppBarConfiguration; import androidx.navigation.ui.NavigationUI; import androidx.preference.PreferenceManager; - import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.data.remote.ServerCommunications; import com.openpositioning.PositionMe.presentation.fragment.HomeFragment; @@ -33,37 +29,33 @@ import com.openpositioning.PositionMe.sensors.Observer; import com.openpositioning.PositionMe.sensors.SensorFusion; import com.openpositioning.PositionMe.utils.PermissionManager; - - import java.util.Objects; /** - * The Main Activity of the application, handling setup, permissions and starting all other fragments - * and processes. - * The Main Activity takes care of most essential tasks before the app can run. Such as setting up - * the views, and enforcing light mode so the colour scheme is consistent. It initialises the - * various fragments and the navigation between them, getting the Navigation controller. It also - * loads the custom action bar with the set theme and icons, and enables back-navigation. The shared - * preferences are also loaded. - *

    - * The most important task of the main activity is check and asking for the necessary permissions to - * enable the application to use the required hardware devices. This is done through a number of - * functions that call the OS, as well as pop-up messages warning the user if permissions are denied. - *

    - * Once all permissions are granted, the Main Activity obtains the Sensor Fusion instance and sets - * the context, enabling the Fragments to interact with the class without setting it up again. + * The Main Activity of the application, handling setup, permissions and starting all other + * fragments and processes. The Main Activity takes care of most essential tasks before the app can + * run. Such as setting up the views, and enforcing light mode so the colour scheme is consistent. + * It initialises the various fragments and the navigation between them, getting the Navigation + * controller. It also loads the custom action bar with the set theme and icons, and enables + * back-navigation. The shared preferences are also loaded. + * + *

    The most important task of the main activity is check and asking for the necessary permissions + * to enable the application to use the required hardware devices. This is done through a number of + * functions that call the OS, as well as pop-up messages warning the user if permissions are + * denied. + * + *

    Once all permissions are granted, the Main Activity obtains the Sensor Fusion instance and + * sets the context, enabling the Fragments to interact with the class without setting it up again. * * @see HomeFragment the initial fragment displayed. * @see com.openpositioning.PositionMe.R.navigation the navigation graph. * @see SensorFusion the singletion data processing class. - * * @author Mate Stodulka * @author Virginia Cangelosi */ public class MainActivity extends AppCompatActivity implements Observer { - - //region Instance variables + // region Instance variables private NavController navController; private ActivityResultLauncher locationPermissionLauncher; private ActivityResultLauncher multiplePermissionsLauncher; @@ -76,15 +68,14 @@ public class MainActivity extends AppCompatActivity implements Observer { private static final int PERMISSION_REQUEST_CODE = 100; - //endregion + // endregion - //region Activity Lifecycle + // region Activity Lifecycle /** - * {@inheritDoc} - * Forces light mode, sets up the navigation graph, initialises the toolbar with back action on - * the nav controller, loads the shared preferences and checks for all permissions necessary. - * Sets up a Handler for displaying messages from other classes. + * {@inheritDoc} Forces light mode, sets up the navigation graph, initialises the toolbar with + * back action on the nav controller, loads the shared preferences and checks for all + * permissions necessary. Sets up a Handler for displaying messages from other classes. */ @Override protected void onCreate(Bundle savedInstanceState) { @@ -93,20 +84,23 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); // Set up navigation and fragments - NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager() - .findFragmentById(R.id.nav_host_fragment); + NavHostFragment navHostFragment = + (NavHostFragment) + getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment); navController = Objects.requireNonNull(navHostFragment).getNavController(); // Set action bar Toolbar toolbar = findViewById(R.id.main_toolbar); setSupportActionBar(toolbar); toolbar.showOverflowMenu(); - toolbar.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.md_theme_light_surface)); + toolbar.setBackgroundColor( + ContextCompat.getColor(getApplicationContext(), R.color.md_theme_light_surface)); toolbar.setTitleTextColor(ContextCompat.getColor(getApplicationContext(), R.color.black)); toolbar.setNavigationIcon(R.drawable.ic_baseline_back_arrow); // Set up back action with NavigationUI - AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph()).build(); + AppBarConfiguration appBarConfiguration = + new AppBarConfiguration.Builder(navController.getGraph()).build(); NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration); // Get handle for settings @@ -118,49 +112,50 @@ protected void onCreate(Bundle savedInstanceState) { this.sensorFusion.setContext(getApplicationContext()); // Register multiple permissions launcher - multiplePermissionsLauncher = registerForActivityResult( - new ActivityResultContracts.RequestMultiplePermissions(), - result -> { - boolean locationGranted = result.getOrDefault(Manifest.permission.ACCESS_FINE_LOCATION, false); - boolean activityGranted = result.getOrDefault(Manifest.permission.ACTIVITY_RECOGNITION, false); - - if (locationGranted && activityGranted) { - // Both permissions granted - allPermissionsObtained(); - } else { - // Permission denied - Toast.makeText(this, - "Location or Physical Activity permission denied. Some features may not work.", - Toast.LENGTH_LONG).show(); - } - } - ); + multiplePermissionsLauncher = + registerForActivityResult( + new ActivityResultContracts.RequestMultiplePermissions(), + result -> { + boolean locationGranted = + result.getOrDefault( + Manifest.permission.ACCESS_FINE_LOCATION, false); + boolean activityGranted = + result.getOrDefault( + Manifest.permission.ACTIVITY_RECOGNITION, false); + + if (locationGranted && activityGranted) { + // Both permissions granted + allPermissionsObtained(); + } else { + // Permission denied + Toast.makeText( + this, + "Location or Physical Activity permission denied." + + " Some features may not work.", + Toast.LENGTH_LONG) + .show(); + } + }); // Handler for global toasts and popups from other classes this.httpResponseHandler = new Handler(); } - - - - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ @Override public void onPause() { super.onPause(); - //Ensure sensorFusion has been initialised before unregistering listeners - if(sensorFusion != null) { -// sensorFusion.stopListening(); + // Ensure sensorFusion has been initialised before unregistering listeners + if (sensorFusion != null) { + // sensorFusion.stopListening(); } } /** - * {@inheritDoc} - * Checks for activities in case the app was closed without granting them, or if they were - * granted through the settings page. Repeats the startup checks done in - * {@link MainActivity#onCreate(Bundle)}. Starts listening in the SensorFusion class. + * {@inheritDoc} Checks for activities in case the app was closed without granting them, or if + * they were granted through the settings page. Repeats the startup checks done in {@link + * MainActivity#onCreate(Bundle)}. Starts listening in the SensorFusion class. * * @see SensorFusion the main data processing class. */ @@ -173,31 +168,41 @@ public void onResume() { } // Delay permission check slightly to ensure the Activity is in the foreground - new Handler().postDelayed(() -> { - if (isActivityVisible()) { - // Check if both permissions are granted - boolean locationGranted = ContextCompat.checkSelfPermission( - this, Manifest.permission.ACCESS_FINE_LOCATION - ) == PackageManager.PERMISSION_GRANTED; - - boolean activityGranted = ContextCompat.checkSelfPermission( - this, Manifest.permission.ACTIVITY_RECOGNITION - ) == PackageManager.PERMISSION_GRANTED; - - if (!locationGranted || !activityGranted) { - // Request both permissions using ActivityResultLauncher - multiplePermissionsLauncher.launch(new String[]{ - Manifest.permission.ACCESS_FINE_LOCATION - }); - multiplePermissionsLauncher.launch(new String[]{ - Manifest.permission.ACTIVITY_RECOGNITION - }); - } else { - // Both permissions are already granted - allPermissionsObtained(); - } - } - }, 300); // Delay ensures activity is fully visible before requesting permissions + new Handler() + .postDelayed( + () -> { + if (isActivityVisible()) { + // Check if both permissions are granted + boolean locationGranted = + ContextCompat.checkSelfPermission( + this, + Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED; + + boolean activityGranted = + ContextCompat.checkSelfPermission( + this, + Manifest.permission.ACTIVITY_RECOGNITION) + == PackageManager.PERMISSION_GRANTED; + + if (!locationGranted || !activityGranted) { + // Request both permissions using ActivityResultLauncher + multiplePermissionsLauncher.launch( + new String[] { + Manifest.permission.ACCESS_FINE_LOCATION + }); + multiplePermissionsLauncher.launch( + new String[] { + Manifest.permission.ACTIVITY_RECOGNITION + }); + } else { + // Both permissions are already granted + allPermissionsObtained(); + } + } + }, + 300); // Delay ensures activity is fully visible before requesting + // permissions if (sensorFusion != null) { sensorFusion.resumeListening(); @@ -208,8 +213,6 @@ private boolean isActivityVisible() { return !isFinishing() && !isDestroyed(); } - - /** * Unregisters sensor listeners when the app closes. Not in {@link MainActivity#onPause()} to * enable recording data with a locked screen. @@ -219,22 +222,22 @@ private boolean isActivityVisible() { @Override protected void onDestroy() { if (sensorFusion != null) { -// sensorFusion.stopListening(); // suspended due to the need to record data with -// a locked screen or cross activity + // sensorFusion.stopListening(); // suspended due to the need to record data + // with + // a locked screen or cross activity } super.onDestroy(); } + // endregion - //endregion - - //region Permissions + // region Permissions /** - * Prepares global resources when all permissions are granted. - * Resets the permissions tracking boolean in shared preferences, and initialises the - * {@link SensorFusion} class with the application context, and registers the main activity to - * listen for server responses that SensorFusion receives. + * Prepares global resources when all permissions are granted. Resets the permissions tracking + * boolean in shared preferences, and initialises the {@link SensorFusion} class with the + * application context, and registers the main activity to listen for server responses that + * SensorFusion receives. * * @see SensorFusion the main data processing class. * @see ServerCommunications the communication class sending and recieving data from the server. @@ -251,46 +254,40 @@ private void allPermissionsObtained() { sensorFusion.registerForServerUpdate(this); } + // endregion - - - //endregion - - //region Navigation + // region Navigation /** - * {@inheritDoc} - * Sets desired animations and navigates to {@link SettingsFragment} - * when the settings wheel in the action bar is clicked. + * {@inheritDoc} Sets desired animations and navigates to {@link SettingsFragment} when the + * settings wheel in the action bar is clicked. */ @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { - if(Objects.requireNonNull(navController.getCurrentDestination()).getId() == item.getItemId()) - return super.onOptionsItemSelected(item); + if (Objects.requireNonNull(navController.getCurrentDestination()).getId() + == item.getItemId()) return super.onOptionsItemSelected(item); else { - NavOptions options = new NavOptions.Builder() - .setLaunchSingleTop(true) - .setEnterAnim(R.anim.slide_in_bottom) - .setExitAnim(R.anim.slide_out_top) - .setPopEnterAnim(R.anim.slide_in_top) - .setPopExitAnim(R.anim.slide_out_bottom).build(); + NavOptions options = + new NavOptions.Builder() + .setLaunchSingleTop(true) + .setEnterAnim(R.anim.slide_in_bottom) + .setExitAnim(R.anim.slide_out_top) + .setPopEnterAnim(R.anim.slide_in_top) + .setPopExitAnim(R.anim.slide_out_bottom) + .build(); navController.navigate(R.id.action_global_settingsFragment, null, options); return true; } } - /** - * {@inheritDoc} - * Enables navigating back between fragments. - */ + /** {@inheritDoc} Enables navigating back between fragments. */ @Override public boolean onSupportNavigateUp() { return navController.navigateUp() || super.onSupportNavigateUp(); } /** - * {@inheritDoc} - * Inflate the designed menu view. + * {@inheritDoc} Inflate the designed menu view. * * @see com.openpositioning.PositionMe.R.menu for the xml file. */ @@ -301,22 +298,23 @@ public boolean onCreateOptionsMenu(Menu menu) { } /** - * {@inheritDoc} - * Handles the back button press. If the current fragment is the HomeFragment, a dialog is - * displayed to confirm the exit. If not, the default back navigation is performed. + * {@inheritDoc} Handles the back button press. If the current fragment is the HomeFragment, a + * dialog is displayed to confirm the exit. If not, the default back navigation is performed. */ @Override public void onBackPressed() { // Check if the current destination is HomeFragment (assumed to be the root) - if (navController.getCurrentDestination() != null && - navController.getCurrentDestination().getId() == R.id.homeFragment) { + if (navController.getCurrentDestination() != null + && navController.getCurrentDestination().getId() == R.id.homeFragment) { new AlertDialog.Builder(this) .setTitle("Confirm Exit") .setMessage("Are you sure you want to exit the app?") - .setPositiveButton("Yes", (dialog, which) -> { - dialog.dismiss(); - finish(); // Close the activity (exit the app) - }) + .setPositiveButton( + "Yes", + (dialog, which) -> { + dialog.dismiss(); + finish(); // Close the activity (exit the app) + }) .setNegativeButton("No", (dialog, which) -> dialog.dismiss()) .create() .show(); @@ -326,41 +324,39 @@ public void onBackPressed() { } } + // endregion + // region Global toasts - //endregion - - //region Global toasts - - /** - * {@inheritDoc} - * Calls the corresponding handler that runs a toast on the Main UI thread. - */ + /** {@inheritDoc} Calls the corresponding handler that runs a toast on the Main UI thread. */ @Override public void update(Object[] objList) { assert objList[0] instanceof Boolean; - if((Boolean) objList[0]) { + if ((Boolean) objList[0]) { this.httpResponseHandler.post(displayToastTaskSuccess); - } - else { + } else { this.httpResponseHandler.post(displayToastTaskFailure); } } /** - * Task that displays positive toast on the main UI thread. - * Called when {@link ServerCommunications} successfully uploads a trajectory. + * Task that displays positive toast on the main UI thread. Called when {@link + * ServerCommunications} successfully uploads a trajectory. */ - private final Runnable displayToastTaskSuccess = () -> Toast.makeText(MainActivity.this, - "Trajectory uploaded", Toast.LENGTH_SHORT).show(); + private final Runnable displayToastTaskSuccess = + () -> + Toast.makeText(MainActivity.this, "Trajectory uploaded", Toast.LENGTH_SHORT) + .show(); /** - * Task that displays negative toast on the main UI thread. - * Called when {@link ServerCommunications} fails to upload a trajectory. + * Task that displays negative toast on the main UI thread. Called when {@link + * ServerCommunications} fails to upload a trajectory. */ - private final Runnable displayToastTaskFailure = () -> { -// Toast.makeText(MainActivity.this, "Failed to complete trajectory upload", Toast.LENGTH_SHORT).show(); - }; - - //endregion -} \ No newline at end of file + private final Runnable displayToastTaskFailure = + () -> { + // Toast.makeText(MainActivity.this, "Failed to complete trajectory + // upload", Toast.LENGTH_SHORT).show(); + }; + + // endregion +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/RecordingActivity.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/RecordingActivity.java index c0d82ae2..56f7203e 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/RecordingActivity.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/RecordingActivity.java @@ -2,42 +2,43 @@ import android.os.Bundle; import android.view.WindowManager; - import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.FragmentTransaction; - import com.openpositioning.PositionMe.R; -import com.openpositioning.PositionMe.presentation.fragment.StartLocationFragment; -import com.openpositioning.PositionMe.presentation.fragment.RecordingFragment; import com.openpositioning.PositionMe.presentation.fragment.CorrectionFragment; - +import com.openpositioning.PositionMe.presentation.fragment.RecordingFragment; +import com.openpositioning.PositionMe.presentation.fragment.StartLocationFragment; /** - * The RecordingActivity manages the recording flow of the application, guiding the user through a sequence - * of screens for location selection, recording, and correction before finalizing the process. - *

    - * This activity follows a structured workflow: + * The RecordingActivity manages the recording flow of the application, guiding the user through a + * sequence of screens for location selection, recording, and correction before finalizing the + * process. + * + *

    This activity follows a structured workflow: + * *

      - *
    1. StartLocationFragment - Allows users to select their starting location.
    2. - *
    3. RecordingFragment - Handles the recording process and contains a TrajectoryMapFragment.
    4. - *
    5. CorrectionFragment - Enables users to review and correct recorded data before completion.
    6. + *
    7. StartLocationFragment - Allows users to select their starting location. + *
    8. RecordingFragment - Handles the recording process and contains a TrajectoryMapFragment. + *
    9. CorrectionFragment - Enables users to review and correct recorded data before completion. *
    - *

    - * The activity ensures that the screen remains on during the recording process to prevent interruptions. - * It also provides fragment transactions for seamless navigation between different stages of the workflow. - *

    - * This class is referenced in various fragments such as HomeFragment, StartLocationFragment, + * + *

    The activity ensures that the screen remains on during the recording process to prevent + * interruptions. It also provides fragment transactions for seamless navigation between different + * stages of the workflow. + * + *

    This class is referenced in various fragments such as HomeFragment, StartLocationFragment, * RecordingFragment, and CorrectionFragment to control navigation through the recording flow. * - * @see StartLocationFragment The first step in the recording process where users select their starting location. + * @see StartLocationFragment The first step in the recording process where users select their + * starting location. * @see RecordingFragment Handles data recording and map visualization. - * @see CorrectionFragment Allows users to review and make corrections before finalizing the process. - * @see com.openpositioning.PositionMe.R.layout#activity_recording The associated layout for this activity. - * + * @see CorrectionFragment Allows users to review and make corrections before finalizing the + * process. + * @see com.openpositioning.PositionMe.R.layout#activity_recording The associated layout for this + * activity. * @author ShuGu */ - public class RecordingActivity extends AppCompatActivity { @Override @@ -53,18 +54,14 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } - /** - * Show the StartLocationFragment (beginning of flow). - */ + /** Show the StartLocationFragment (beginning of flow). */ public void showStartLocationScreen() { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.mainFragmentContainer, new StartLocationFragment()); ft.commit(); } - /** - * Show the RecordingFragment, which contains the TrajectoryMapFragment internally. - */ + /** Show the RecordingFragment, which contains the TrajectoryMapFragment internally. */ public void showRecordingScreen() { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.mainFragmentContainer, new RecordingFragment()); @@ -72,9 +69,7 @@ public void showRecordingScreen() { ft.commit(); } - /** - * Show the CorrectionFragment after the user stops recording. - */ + /** Show the CorrectionFragment after the user stops recording. */ public void showCorrectionScreen() { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.mainFragmentContainer, new CorrectionFragment()); @@ -82,9 +77,7 @@ public void showCorrectionScreen() { ft.commit(); } - /** - * Finish the Activity (or do any final steps) once corrections are done. - */ + /** Finish the Activity (or do any final steps) once corrections are done. */ public void finishFlow() { getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); finish(); diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/ReplayActivity.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/ReplayActivity.java index 37f93bd7..1b8239b0 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/ReplayActivity.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/ReplayActivity.java @@ -3,44 +3,42 @@ import android.os.Bundle; import android.util.Log; import android.view.WindowManager; - -import java.io.File; - import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; - import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.presentation.fragment.ReplayFragment; import com.openpositioning.PositionMe.presentation.fragment.StartLocationFragment; - +import java.io.File; /** - * The ReplayActivity is responsible for managing the replay session of a user's trajectory. - * It handles the process of retrieving the trajectory data, displaying relevant fragments, and + * The ReplayActivity is responsible for managing the replay session of a user's trajectory. It + * handles the process of retrieving the trajectory data, displaying relevant fragments, and * facilitating the interaction with the user to choose the starting location before displaying the * replay of the trajectory. - *

    - * The activity starts by extracting the trajectory file path from the intent that launched it. If - * the file path is not provided or is empty, it uses a default file path. It ensures that the trajectory - * file exists before proceeding. Once the file is verified, it shows the StartLocationFragment, which allows - * the user to select their starting location (latitude and longitude). After the user has selected the - * starting point, the activity switches to the ReplayFragment to display the replay of the user's trajectory. - *

    - * The activity also provides functionality to finish the replay session and exit the activity once the replay - * process has completed. - *

    - * This activity makes use of a few key constants for passing data between fragments, including the trajectory file - * path and the initial latitude and longitude. These constants are defined at the beginning of the class. - *

    - * The ReplayActivity manages the interaction between fragments by facilitating communication from the - * StartLocationFragment to the ReplayFragment, where the replay of the trajectory is displayed. * - * @see StartLocationFragment The fragment where the user selects their start location for the trajectory replay. - * @see ReplayFragment The fragment responsible for showing the trajectory replay. + *

    The activity starts by extracting the trajectory file path from the intent that launched it. + * If the file path is not provided or is empty, it uses a default file path. It ensures that the + * trajectory file exists before proceeding. Once the file is verified, it shows the + * StartLocationFragment, which allows the user to select their starting location (latitude and + * longitude). After the user has selected the starting point, the activity switches to the + * ReplayFragment to display the replay of the user's trajectory. + * + *

    The activity also provides functionality to finish the replay session and exit the activity + * once the replay process has completed. + * + *

    This activity makes use of a few key constants for passing data between fragments, including + * the trajectory file path and the initial latitude and longitude. These constants are defined at + * the beginning of the class. * + *

    The ReplayActivity manages the interaction between fragments by facilitating communication + * from the StartLocationFragment to the ReplayFragment, where the replay of the trajectory is + * displayed. + * + * @see StartLocationFragment The fragment where the user selects their start location for the + * trajectory replay. + * @see ReplayFragment The fragment responsible for showing the trajectory replay. * @author Shu Gu */ - public class ReplayActivity extends AppCompatActivity { public static final String TAG = "ReplayActivity"; @@ -81,8 +79,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { } /** - * Display a StartLocationFragment to let user set their start location. - * Displays the ReplayFragment and passes the trajectory file path as an argument. + * Display a StartLocationFragment to let user set their start location. Displays the + * ReplayFragment and passes the trajectory file path as an argument. */ private void showStartLocationFragment() { Log.d(TAG, "Showing StartLocationFragment..."); @@ -93,20 +91,22 @@ private void showStartLocationFragment() { .commit(); } - /** - * Called by StartLocationFragment when user picks their start location. - */ + /** Called by StartLocationFragment when user picks their start location. */ public void onStartLocationChosen(float lat, float lon) { Log.i(TAG, "User selected start location: Lat=" + lat + ", Lon=" + lon); showReplayFragment(filePath, lat, lon); } - /** - * Display ReplayFragment, passing file path and starting lat/lon as arguments. - */ + /** Display ReplayFragment, passing file path and starting lat/lon as arguments. */ public void showReplayFragment(String filePath, float initialLat, float initialLon) { - Log.d(TAG, "Switching to ReplayFragment with file: " + filePath + - ", Initial Lat: " + initialLat + ", Initial Lon: " + initialLon); + Log.d( + TAG, + "Switching to ReplayFragment with file: " + + filePath + + ", Initial Lat: " + + initialLat + + ", Initial Lon: " + + initialLon); ReplayFragment replayFragment = new ReplayFragment(); // Pass the file path through a Bundle @@ -122,12 +122,9 @@ public void showReplayFragment(String filePath, float initialLat, float initialL .commit(); } - /** - * Finish replay session - * Called when the replay process is completed. - */ + /** Finish replay session Called when the replay process is completed. */ public void finishFlow() { Log.d(TAG, "Replay session finished."); finish(); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java index edaa060e..44019762 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/CorrectionFragment.java @@ -1,47 +1,38 @@ package com.openpositioning.PositionMe.presentation.fragment; -import android.content.SharedPreferences; +import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_M_HOUSE; +import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_NUCLEUS; +import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_OUTSIDE; + import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; +import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; - -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.util.Log; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.cardview.widget.CardView; -import androidx.constraintlayout.widget.ConstraintLayout; import androidx.fragment.app.Fragment; - -import com.openpositioning.PositionMe.R; -import com.openpositioning.PositionMe.presentation.activity.RecordingActivity; -import com.openpositioning.PositionMe.sensors.SensorFusion; -import com.openpositioning.PositionMe.utils.PathView; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; - -import androidx.preference.PreferenceManager; - -import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_OUTSIDE; -import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_M_HOUSE; -import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_NUCLEUS; - -import org.w3c.dom.Text; +import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.presentation.activity.RecordingActivity; +import com.openpositioning.PositionMe.sensors.SensorFusion; +import com.openpositioning.PositionMe.utils.PathView; /** * A simple {@link Fragment} subclass. Corrections Fragment is displayed after a recording session @@ -49,11 +40,11 @@ */ public class CorrectionFragment extends Fragment { - //Map variable + // Map variable public GoogleMap mMap; - //Button to go to next + // Button to go to next private Button button; - //Singleton SensorFusion class + // Singleton SensorFusion class private SensorFusion sensorFusion = SensorFusion.getInstance(); private TextView averageStepLengthText; private EditText stepLengthInput; @@ -70,7 +61,6 @@ public class CorrectionFragment extends Fragment { private TextView campaignText; - private CardView cardView; public CorrectionFragment() { @@ -78,41 +68,46 @@ public CorrectionFragment() { } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { AppCompatActivity activity = (AppCompatActivity) getActivity(); if (activity != null && activity.getSupportActionBar() != null) { activity.getSupportActionBar().hide(); } View rootView = inflater.inflate(R.layout.fragment_correction, container, false); - //Obtain start position + // Obtain start position float[] startPosition = sensorFusion.getGNSSLatitude(true); // Initialize map fragment - SupportMapFragment supportMapFragment=(SupportMapFragment) - getChildFragmentManager().findFragmentById(R.id.map); - - supportMapFragment.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(GoogleMap map) { - mMap = map; - mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); - mMap.getUiSettings().setCompassEnabled(true); - mMap.getUiSettings().setTiltGesturesEnabled(true); - mMap.getUiSettings().setRotateGesturesEnabled(true); - mMap.getUiSettings().setScrollGesturesEnabled(true); - - // Add a marker at the start position - start = new LatLng(startPosition[0], startPosition[1]); - mMap.addMarker(new MarkerOptions().position(start).title("Start Position")); - - // Calculate zoom for demonstration - double zoom = Math.log(156543.03392f * Math.cos(startPosition[0] * Math.PI / 180) - * scalingRatio) / Math.log(2); - mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(start, (float) zoom)); - } - }); + SupportMapFragment supportMapFragment = + (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map); + + supportMapFragment.getMapAsync( + new OnMapReadyCallback() { + @Override + public void onMapReady(GoogleMap map) { + mMap = map; + mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); + mMap.getUiSettings().setCompassEnabled(true); + mMap.getUiSettings().setTiltGesturesEnabled(true); + mMap.getUiSettings().setRotateGesturesEnabled(true); + mMap.getUiSettings().setScrollGesturesEnabled(true); + + // Add a marker at the start position + start = new LatLng(startPosition[0], startPosition[1]); + mMap.addMarker(new MarkerOptions().position(start).title("Start Position")); + + // Calculate zoom for demonstration + double zoom = + Math.log( + 156543.03392f + * Math.cos(startPosition[0] * Math.PI / 180) + * scalingRatio) + / Math.log(2); + mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(start, (float) zoom)); + } + }); return rootView; } @@ -133,54 +128,64 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat initCampaignSelect(); averageStepLength = sensorFusion.passAverageStepLength(); - averageStepLengthText.setText(getString(R.string.averageStepLgn) + ": " - + String.format("%.2f", averageStepLength)); + averageStepLengthText.setText( + getString(R.string.averageStepLgn) + + ": " + + String.format("%.2f", averageStepLength)); // Listen for ENTER key - this.stepLengthInput.setOnKeyListener((v, keyCode, event) -> { - if (keyCode == KeyEvent.KEYCODE_ENTER) { - newStepLength = Float.parseFloat(changedText.toString()); - // Rescale path - sensorFusion.redrawPath(newStepLength / averageStepLength); - averageStepLengthText.setText(getString(R.string.averageStepLgn) - + ": " + String.format("%.2f", newStepLength)); - pathView.invalidate(); - - secondPass++; - if (secondPass == 2) { - averageStepLength = newStepLength; - secondPass = 0; - } - } - return false; - }); - - this.stepLengthInput.addTextChangedListener(new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count,int after) {} - @Override - public void onTextChanged(CharSequence s, int start, int before,int count) {} - @Override - public void afterTextChanged(Editable s) { - changedText = s; - } - }); + this.stepLengthInput.setOnKeyListener( + (v, keyCode, event) -> { + if (keyCode == KeyEvent.KEYCODE_ENTER) { + newStepLength = Float.parseFloat(changedText.toString()); + // Rescale path + sensorFusion.redrawPath(newStepLength / averageStepLength); + averageStepLengthText.setText( + getString(R.string.averageStepLgn) + + ": " + + String.format("%.2f", newStepLength)); + pathView.invalidate(); + + secondPass++; + if (secondPass == 2) { + averageStepLength = newStepLength; + secondPass = 0; + } + } + return false; + }); + + this.stepLengthInput.addTextChangedListener( + new TextWatcher() { + @Override + public void beforeTextChanged( + CharSequence s, int start, int count, int after) {} + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) {} + + @Override + public void afterTextChanged(Editable s) { + changedText = s; + } + }); // Button to finalize corrections this.button = view.findViewById(R.id.correction_done); - this.button.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - // Set campaign, and wait until upload is complete - sensorFusion.setCurrentBuilding(selectedCampaign); - boolean result = sensorFusion.sendTrajectoryToCloud(); - while(!result){} - sensorFusion.setCurrentBuilding(BUILDING_NAME_OUTSIDE); - - // Now, simply tell the Activity we are done: - ((RecordingActivity) requireActivity()).finishFlow(); - } - }); + this.button.setOnClickListener( + new View.OnClickListener() { + @Override + public void onClick(View view) { + // Set campaign, and wait until upload is complete + sensorFusion.setCurrentBuilding(selectedCampaign); + boolean result = sensorFusion.sendTrajectoryToCloud(); + while (!result) {} + sensorFusion.setCurrentBuilding(BUILDING_NAME_OUTSIDE); + + // Now, simply tell the Activity we are done: + ((RecordingActivity) requireActivity()).finishFlow(); + } + }); } public void setScalingRatio(float scalingRatio) { @@ -197,44 +202,38 @@ private void initCampaignSelect() { if ("outside".equalsIgnoreCase(currentBuilding)) { // Initialize campaigns only if the building is "outside" - String[] campaigns = new String[]{ - "Murchison House", - "Nucleus Building" - }; - ArrayAdapter adapter = new ArrayAdapter<>( - requireContext(), - android.R.layout.simple_spinner_dropdown_item, - campaigns - ); + String[] campaigns = new String[] {"Murchison House", "Nucleus Building"}; + ArrayAdapter adapter = + new ArrayAdapter<>( + requireContext(), + android.R.layout.simple_spinner_dropdown_item, + campaigns); campaignSelect.setAdapter(adapter); campaignSelect.setSelection(0); // Set item selected listener - campaignSelect.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected( - AdapterView parent, - View view, - int position, - long id - ) { - switch (position) { - case 0: - selectedCampaign = BUILDING_NAME_M_HOUSE; - break; - case 1: - selectedCampaign = BUILDING_NAME_NUCLEUS; - break; - } - // Log selection - Log.d("CorrectionFragment", "Selected campaign: " + selectedCampaign); - } - - @Override - public void onNothingSelected(AdapterView parent) { - selectedCampaign = BUILDING_NAME_OUTSIDE; - } - }); + campaignSelect.setOnItemSelectedListener( + new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected( + AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + selectedCampaign = BUILDING_NAME_M_HOUSE; + break; + case 1: + selectedCampaign = BUILDING_NAME_NUCLEUS; + break; + } + // Log selection + Log.d("CorrectionFragment", "Selected campaign: " + selectedCampaign); + } + + @Override + public void onNothingSelected(AdapterView parent) { + selectedCampaign = BUILDING_NAME_OUTSIDE; + } + }); } else { selectedCampaign = currentBuilding; // Hide the Spinner if not "outside" @@ -243,5 +242,4 @@ public void onNothingSelected(AdapterView parent) { campaignText.setVisibility(View.GONE); } } - } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java index afbd2e91..75a70373 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java @@ -9,7 +9,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.cardview.widget.CardView; @@ -18,22 +17,19 @@ import androidx.navigation.Navigation; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.data.remote.ServerCommunications; +import com.openpositioning.PositionMe.presentation.viewitems.TrajDownloadListAdapter; import com.openpositioning.PositionMe.presentation.viewitems.TrajDownloadViewHolder; import com.openpositioning.PositionMe.sensors.Observer; -import com.openpositioning.PositionMe.presentation.viewitems.TrajDownloadListAdapter; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; /** * A simple {@link Fragment} subclass. The files fragments displays a list of trajectories already @@ -43,7 +39,6 @@ * @see UploadFragment sub-menu for uploading recordings that failed during recording. * @see com.openpositioning.PositionMe.Traj the data structure sent and received. * @see ServerCommunications the class handling communication with the server. - * * @author Mate Stodulka */ public class FilesFragment extends Fragment implements Observer { @@ -56,17 +51,14 @@ public class FilesFragment extends Fragment implements Observer { // Class handling HTTP communication private ServerCommunications serverCommunications; - /** - * Default public constructor, empty. - */ + /** Default public constructor, empty. */ public FilesFragment() { // Required empty public constructor } /** - * {@inheritDoc} - * Initialise the server communication class and register the FilesFragment as an Observer to - * receive the async http responses. + * {@inheritDoc} Initialise the server communication class and register the FilesFragment as an + * Observer to receive the async http responses. */ @Override public void onCreate(Bundle savedInstanceState) { @@ -75,13 +67,10 @@ public void onCreate(Bundle savedInstanceState) { serverCommunications.registerObserver(this); } - /** - * {@inheritDoc} - * Sets the title in the action bar. - */ + /** {@inheritDoc} Sets the title in the action bar. */ @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View rootView = inflater.inflate(R.layout.fragment_files, container, false); getActivity().setTitle("Trajectory recordings"); @@ -89,13 +78,13 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, } /** - * {@inheritDoc} - * Initialises UI elements, including a navigation card to the {@link UploadFragment} and a - * RecyclerView displaying online trajectories. + * {@inheritDoc} Initialises UI elements, including a navigation card to the {@link + * UploadFragment} and a RecyclerView displaying online trajectories. * * @see TrajDownloadViewHolder the View Holder for the list. * @see TrajDownloadListAdapter the list adapter for displaying the recycler view. - * @see com.openpositioning.PositionMe.R.layout#item_trajectorycard_view the elements in the list. + * @see com.openpositioning.PositionMe.R.layout#item_trajectorycard_view the elements in the + * list. */ @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { @@ -104,61 +93,65 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat filesList = view.findViewById(R.id.filesList); // Get clickable card view uploadCard = view.findViewById(R.id.uploadCard); - uploadCard.setOnClickListener(new View.OnClickListener() { - /** - * {@inheritDoc} - * Navigates to {@link UploadFragment}. - */ - @Override - public void onClick(View view) { - NavDirections action = FilesFragmentDirections.actionFilesFragmentToUploadFragment(); - Navigation.findNavController(view).navigate(action); - } - }); + uploadCard.setOnClickListener( + new View.OnClickListener() { + /** {@inheritDoc} Navigates to {@link UploadFragment}. */ + @Override + public void onClick(View view) { + NavDirections action = + FilesFragmentDirections.actionFilesFragmentToUploadFragment(); + Navigation.findNavController(view).navigate(action); + } + }); // Request list of uploaded trajectories from the server. serverCommunications.sendInfoRequest(URL_GET_USER_TRAJECTORIES); // Force RecyclerView refresh to ensure icon states are correct - new Handler(Looper.getMainLooper()).postDelayed(() -> { - if (filesList.getAdapter() != null) { - filesList.getAdapter().notifyDataSetChanged(); - Log.i("FilesFragment", "RecyclerView refreshed after page load."); - } - }, 500); + new Handler(Looper.getMainLooper()) + .postDelayed( + () -> { + if (filesList.getAdapter() != null) { + filesList.getAdapter().notifyDataSetChanged(); + Log.i("FilesFragment", "RecyclerView refreshed after page load."); + } + }, + 500); } /** - * {@inheritDoc} - * Called by {@link ServerCommunications} when the response to the HTTP info request is received. + * {@inheritDoc} Called by {@link ServerCommunications} when the response to the HTTP info + * request is received. * - * @param singletonStringList a single string wrapped in an object array containing the http - * response from the server. + * @param singletonStringList a single string wrapped in an object array containing the http + * response from the server. */ @Override public void update(Object[] singletonStringList) { // Cast input as a string String infoString = (String) singletonStringList[0]; // Check if the string is non-null and non-empty before processing - if(infoString != null && !infoString.isEmpty()) { + if (infoString != null && !infoString.isEmpty()) { // Process string List> entryList = processInfoResponse(infoString); // Start a handler to be able to modify UI elements - new Handler(Looper.getMainLooper()).post(new Runnable() { - @Override - public void run() { - // Update the RecyclerView with data from the server - updateView(entryList); - } - }); + new Handler(Looper.getMainLooper()) + .post( + new Runnable() { + @Override + public void run() { + // Update the RecyclerView with data from the server + updateView(entryList); + } + }); } } /** - * Parses the info response string from the HTTP communication. - * Process the data using the Json library and return the matching Java data structure as a - * List of Maps of \. Throws a JSONException if the data is not valid. + * Parses the info response string from the HTTP communication. Process the data using the Json + * library and return the matching Java data structure as a List of Maps of \. + * Throws a JSONException if the data is not valid. * - * @param infoString HTTP info request response as a single string - * @return List of Maps of String to String containing ID, owner ID, and date. + * @param infoString HTTP info request response as a single string + * @return List of Maps of String to String containing ID, owner ID, and date. */ private List> processInfoResponse(String infoString) { // Initialise empty list @@ -179,37 +172,41 @@ private List> processInfoResponse(String infoString) { Log.e("FilesFragment", "JSON reading failed: " + e.getMessage()); } // Sort the list by the ID fields of the maps - entryList.sort(Comparator.comparing( - m -> Integer.parseInt(m.get("id")), - Comparator.nullsLast(Comparator.naturalOrder())) - ); + entryList.sort( + Comparator.comparing( + m -> Integer.parseInt(m.get("id")), + Comparator.nullsLast(Comparator.naturalOrder()))); return entryList; } /** - * Update the RecyclerView in the FilesFragment with new data. - * Must be called from a UI thread. Initialises a new Layout Manager, and passes it to the - * RecyclerView. Initialises a {@link TrajDownloadListAdapter} with the input array and setting - * up a listener so that trajectories are downloaded when clicked. + * Update the RecyclerView in the FilesFragment with new data. Must be called from a UI thread. + * Initialises a new Layout Manager, and passes it to the RecyclerView. Initialises a {@link + * TrajDownloadListAdapter} with the input array and setting up a listener so that trajectories + * are downloaded when clicked. * * @param entryList List of Maps of String to String containing metadata about the uploaded - * trajectories (ID, owner ID, date). + * trajectories (ID, owner ID, date). */ private void updateView(List> entryList) { // Initialise RecyclerView with Manager and Adapter LinearLayoutManager manager = new LinearLayoutManager(getActivity()); filesList.setLayoutManager(manager); filesList.setHasFixedSize(true); - listAdapter = new TrajDownloadListAdapter(getActivity(), entryList, position -> { - Map selectedItem = entryList.get(position); - String id = selectedItem.get("id"); - String dateSubmitted = selectedItem.get("date_submitted"); - - // Pass ID and date_submitted - serverCommunications.downloadTrajectory(position, id, dateSubmitted); - }); + listAdapter = + new TrajDownloadListAdapter( + getActivity(), + entryList, + position -> { + Map selectedItem = entryList.get(position); + String id = selectedItem.get("id"); + String dateSubmitted = selectedItem.get("date_submitted"); + + // Pass ID and date_submitted + serverCommunications.downloadTrajectory(position, id, dateSubmitted); + }); filesList.setAdapter(listAdapter); // Force refresh RecyclerView to ensure downloadRecords changes are detected listAdapter.notifyDataSetChanged(); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java index 3172d55a..8f41c197 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java @@ -12,7 +12,6 @@ import android.widget.Button; import android.widget.TextView; import android.widget.Toast; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; @@ -21,8 +20,6 @@ import androidx.navigation.NavDirections; import androidx.navigation.Navigation; import androidx.preference.PreferenceManager; - -import com.google.android.material.button.MaterialButton; import com.google.android.gms.location.FusedLocationProviderClient; import com.google.android.gms.location.LocationServices; import com.google.android.gms.maps.CameraUpdateFactory; @@ -31,19 +28,19 @@ import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; +import com.google.android.material.button.MaterialButton; import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.presentation.activity.RecordingActivity; /** - * A simple {@link Fragment} subclass. The home fragment is the start screen of the application. - * The home fragment acts as a hub for all other fragments, with buttons and icons for navigation. - * The default screen when opening the application + * A simple {@link Fragment} subclass. The home fragment is the start screen of the application. The + * home fragment acts as a hub for all other fragments, with buttons and icons for navigation. The + * default screen when opening the application * * @see RecordingFragment * @see FilesFragment * @see MeasurementsFragment * @see SettingsFragment - * * @author Mate Stodulka */ public class HomeFragment extends Fragment implements OnMapReadyCallback { @@ -70,78 +67,84 @@ public void onCreate(Bundle savedInstanceState) { } /** - * {@inheritDoc} - * Ensure the action bar is shown at the top of the screen. Set the title visible to Home. + * {@inheritDoc} Ensure the action bar is shown at the top of the screen. Set the title visible + * to Home. */ @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ((AppCompatActivity) getActivity()).getSupportActionBar().show(); View rootView = inflater.inflate(R.layout.fragment_home, container, false); getActivity().setTitle("Home"); return rootView; } - /** - * Initialise UI elements and set onClick actions for the buttons. - */ + /** Initialise UI elements and set onClick actions for the buttons. */ @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // Sensor Info button goToInfo = view.findViewById(R.id.sensorInfoButton); - goToInfo.setOnClickListener(v -> { - NavDirections action = HomeFragmentDirections.actionHomeFragmentToInfoFragment(); - Navigation.findNavController(v).navigate(action); - }); + goToInfo.setOnClickListener( + v -> { + NavDirections action = + HomeFragmentDirections.actionHomeFragmentToInfoFragment(); + Navigation.findNavController(v).navigate(action); + }); // Start/Stop Recording button start = view.findViewById(R.id.startStopButton); - start.setEnabled(!PreferenceManager.getDefaultSharedPreferences(getContext()) - .getBoolean("permanentDeny", false)); - start.setOnClickListener(v -> { - Intent intent = new Intent(requireContext(), RecordingActivity.class); - startActivity(intent); - ((AppCompatActivity) getActivity()).getSupportActionBar().hide(); - }); + start.setEnabled( + !PreferenceManager.getDefaultSharedPreferences(getContext()) + .getBoolean("permanentDeny", false)); + start.setOnClickListener( + v -> { + Intent intent = new Intent(requireContext(), RecordingActivity.class); + startActivity(intent); + ((AppCompatActivity) getActivity()).getSupportActionBar().hide(); + }); // Measurements button measurements = view.findViewById(R.id.measurementButton); - measurements.setOnClickListener(v -> { - NavDirections action = HomeFragmentDirections.actionHomeFragmentToMeasurementsFragment(); - Navigation.findNavController(v).navigate(action); - }); + measurements.setOnClickListener( + v -> { + NavDirections action = + HomeFragmentDirections.actionHomeFragmentToMeasurementsFragment(); + Navigation.findNavController(v).navigate(action); + }); // Files button files = view.findViewById(R.id.filesButton); - files.setOnClickListener(v -> { - NavDirections action = HomeFragmentDirections.actionHomeFragmentToFilesFragment(); - Navigation.findNavController(v).navigate(action); - }); + files.setOnClickListener( + v -> { + NavDirections action = + HomeFragmentDirections.actionHomeFragmentToFilesFragment(); + Navigation.findNavController(v).navigate(action); + }); // Indoor Positioning button // TODO - Implement new view and functionality indoorPositioning = view.findViewById(R.id.indoorButton); - indoorPositioning.setOnClickListener(v -> { - Toast.makeText(getContext(), "Coming soon!", Toast.LENGTH_SHORT).show(); - }); + indoorPositioning.setOnClickListener( + v -> { + Toast.makeText(getContext(), "Coming soon!", Toast.LENGTH_SHORT).show(); + }); // TextView to display GNSS disabled message gnssStatusTextView = view.findViewById(R.id.gnssStatusTextView); // Locate the MapFragment nested in this fragment - mapFragment = (SupportMapFragment) - getChildFragmentManager().findFragmentById(R.id.mapFragmentContainer); + mapFragment = + (SupportMapFragment) + getChildFragmentManager().findFragmentById(R.id.mapFragmentContainer); if (mapFragment != null) { // Asynchronously initialize the map mapFragment.getMapAsync(this); } } - /** - * Callback triggered when the Google Map is ready to be used. - */ + /** Callback triggered when the Google Map is ready to be used. */ @Override public void onMapReady(@NonNull GoogleMap googleMap) { mMap = googleMap; @@ -154,30 +157,26 @@ public void onResume() { checkAndUpdatePermissions(); } - /** - * Checks if GNSS/Location is enabled on the device. - */ + /** Checks if GNSS/Location is enabled on the device. */ private boolean isGnssEnabled() { LocationManager locationManager = (LocationManager) requireContext().getSystemService(Context.LOCATION_SERVICE); // Checks both GPS and network provider. Adjust as needed. boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); - boolean networkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); + boolean networkEnabled = + locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); return (gpsEnabled || networkEnabled); } - /** - * Move the map to the University of Edinburgh and display a message. - */ + /** Move the map to the University of Edinburgh and display a message. */ private void showEdinburghAndMessage(String message) { gnssStatusTextView.setText(message); gnssStatusTextView.setVisibility(View.VISIBLE); LatLng edinburghLatLng = new LatLng(55.944425, -3.188396); mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(edinburghLatLng, 15f)); - mMap.addMarker(new MarkerOptions() - .position(edinburghLatLng) - .title("University of Edinburgh")); + mMap.addMarker( + new MarkerOptions().position(edinburghLatLng).title("University of Edinburgh")); } private void checkAndUpdatePermissions() { @@ -193,13 +192,15 @@ private void checkAndUpdatePermissions() { gnssStatusTextView.setVisibility(View.GONE); // Check runtime permissions for location - boolean permissionGrantedLocationFine = ActivityCompat.checkSelfPermission( - requireContext(), Manifest.permission.ACCESS_FINE_LOCATION - ) == PackageManager.PERMISSION_GRANTED; + boolean permissionGrantedLocationFine = + ActivityCompat.checkSelfPermission( + requireContext(), Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED; - boolean permissionGrantedLocationCoarse = ActivityCompat.checkSelfPermission( - requireContext(), Manifest.permission.ACCESS_COARSE_LOCATION - ) == PackageManager.PERMISSION_GRANTED; + boolean permissionGrantedLocationCoarse = + ActivityCompat.checkSelfPermission( + requireContext(), Manifest.permission.ACCESS_COARSE_LOCATION) + == PackageManager.PERMISSION_GRANTED; if (permissionGrantedLocationFine || permissionGrantedLocationCoarse) { // Enable the MyLocation layer of Google Map @@ -207,13 +208,21 @@ private void checkAndUpdatePermissions() { // Zoom to the user upon map load FusedLocationProviderClient fusedLocationClient = - LocationServices.getFusedLocationProviderClient(requireContext()); - fusedLocationClient.getLastLocation().addOnSuccessListener(location -> { - if (location != null) { - LatLng currentLatLng = new LatLng(location.getLatitude(), location.getLongitude()); - mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentLatLng, 15f)); - } - }); + LocationServices.getFusedLocationProviderClient(requireContext()); + fusedLocationClient + .getLastLocation() + .addOnSuccessListener( + location -> { + if (location != null) { + LatLng currentLatLng = + new LatLng( + location.getLatitude(), + location.getLongitude()); + mMap.moveCamera( + CameraUpdateFactory.newLatLngZoom( + currentLatLng, 15f)); + } + }); } else { // If no permission, simply show a default location or prompt for permissions showEdinburghAndMessage("Permission not granted. Please enable in settings."); diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/InfoFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/InfoFragment.java index f0cc78de..32865463 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/InfoFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/InfoFragment.java @@ -4,19 +4,16 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.presentation.viewitems.SensorInfoListAdapter; import com.openpositioning.PositionMe.presentation.viewitems.SensorInfoViewHolder; import com.openpositioning.PositionMe.sensors.SensorFusion; import com.openpositioning.PositionMe.sensors.SensorInfo; -import com.openpositioning.PositionMe.presentation.viewitems.SensorInfoListAdapter; - import java.util.List; /** @@ -26,7 +23,6 @@ * @see HomeFragment the previous fragment in the nav graph. * @see com.openpositioning.PositionMe.sensors.SensorFusion the class containing all sensors. * @see SensorInfo the class used for each sensor instance's metadata - * * @author Mate Stodulka */ public class InfoFragment extends Fragment { @@ -36,28 +32,21 @@ public class InfoFragment extends Fragment { // UI element recyclerview to display sensor information private RecyclerView sensorInfoView; - /** - * Public default constructor, empty. - */ + /** Public default constructor, empty. */ public InfoFragment() { // Required empty public constructor } - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } - /** - * {@inheritDoc} - * Set title in the action bar to Sensor Information. - */ + /** {@inheritDoc} Set title in the action bar to Sensor Information. */ @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View rootView = inflater.inflate(R.layout.fragment_info, container, false); getActivity().setTitle("Sensor Information"); @@ -65,10 +54,9 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, } /** - * {@inheritDoc} - * Initialise the RecyclerView by creating and registering a Layout Manager, getting the - * {@link SensorFusion} instance and obtaining the Sensor Info data, and passing it to the - * {@link SensorInfoListAdapter}. + * {@inheritDoc} Initialise the RecyclerView by creating and registering a Layout Manager, + * getting the {@link SensorFusion} instance and obtaining the Sensor Info data, and passing it + * to the {@link SensorInfoListAdapter}. * * @see SensorInfoListAdapter List adapter for the Sensor Info Recycler View. * @see SensorInfoViewHolder View holder for the Sensor Infor RV. @@ -87,4 +75,4 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat // Set adapter for the recycler view. sensorInfoView.setAdapter(new SensorInfoListAdapter(getActivity(), sensorInfoList)); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java index 4a8a8acb..dd9539d2 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/MeasurementsFragment.java @@ -5,9 +5,8 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import android.widget.ImageView; - +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.cardview.widget.CardView; @@ -15,26 +14,23 @@ import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.presentation.viewitems.BleListAdapter; +import com.openpositioning.PositionMe.presentation.viewitems.WifiListAdapter; import com.openpositioning.PositionMe.sensors.BleDevice; import com.openpositioning.PositionMe.sensors.SensorFusion; import com.openpositioning.PositionMe.sensors.SensorTypes; import com.openpositioning.PositionMe.sensors.Wifi; -import com.openpositioning.PositionMe.presentation.viewitems.WifiListAdapter; -import com.openpositioning.PositionMe.presentation.viewitems.BleListAdapter; - import java.util.List; import java.util.Map; /** * A simple {@link Fragment} subclass. The measurement fragment displays the set of current sensor - * readings. The values are refreshed periodically, but slower than their internal refresh rate. - * The refresh time is set by a static constant. + * readings. The values are refreshed periodically, but slower than their internal refresh rate. The + * refresh time is set by a static constant. * * @see HomeFragment the previous fragment in the nav graph. * @see SensorFusion the source of all sensor readings. - * * @author Mate Stodulka */ public class MeasurementsFragment extends Fragment { @@ -60,17 +56,14 @@ public class MeasurementsFragment extends Fragment { private ImageView wifiExpandIcon; private ImageView bleExpandIcon; - /** - * Public default constructor, empty. - */ + /** Public default constructor, empty. */ public MeasurementsFragment() { // Required empty public constructor } /** - * {@inheritDoc} - * Obtains the singleton Sensor Fusion instance and initialises the string prefaces for display. - * Creates a new handler to periodically refresh data. + * {@inheritDoc} Obtains the singleton Sensor Fusion instance and initialises the string + * prefaces for display. Creates a new handler to periodically refresh data. * * @see SensorFusion handles all sensor data. */ @@ -80,21 +73,20 @@ public void onCreate(Bundle savedInstanceState) { // Get sensor fusion instance sensorFusion = SensorFusion.getInstance(); // Initialise string prefaces for display - prefaces = new int[]{R.string.x, R.string.y, R.string.z}; - gnssPrefaces = new int[]{R.string.lati, R.string.longi}; + prefaces = new int[] {R.string.x, R.string.y, R.string.z}; + gnssPrefaces = new int[] {R.string.lati, R.string.longi}; // Create new handler to refresh the UI. this.refreshDataHandler = new Handler(); } /** - * {@inheritDoc} - * Sets title in the action bar to Sensor Measurements. - * Posts the {@link MeasurementsFragment#refreshTableTask} using the Handler. + * {@inheritDoc} Sets title in the action bar to Sensor Measurements. Posts the {@link + * MeasurementsFragment#refreshTableTask} using the Handler. */ @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View rootView = inflater.inflate(R.layout.fragment_measurements, container, false); getActivity().setTitle("Sensor Measurements"); @@ -102,20 +94,14 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, return rootView; } - /** - * {@inheritDoc} - * Pauses the data refreshing when the fragment is not in focus. - */ + /** {@inheritDoc} Pauses the data refreshing when the fragment is not in focus. */ @Override public void onPause() { refreshDataHandler.removeCallbacks(refreshTableTask); super.onPause(); } - /** - * {@inheritDoc} - * Restarts the data refresh when the fragment returns to focus. - */ + /** {@inheritDoc} Restarts the data refresh when the fragment returns to focus. */ @Override public void onResume() { refreshDataHandler.postDelayed(refreshTableTask, REFRESH_TIME); @@ -123,14 +109,14 @@ public void onResume() { } /** - * {@inheritDoc} - * Obtains the constraint layout holding the sensor measurement values. Initialises the Recycler - * View for holding WiFi data and registers its Layout Manager. + * {@inheritDoc} Obtains the constraint layout holding the sensor measurement values. + * Initialises the Recycler View for holding WiFi data and registers its Layout Manager. */ @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - sensorMeasurementList = (ConstraintLayout) getView().findViewById(R.id.sensorMeasurementList); + sensorMeasurementList = + (ConstraintLayout) getView().findViewById(R.id.sensorMeasurementList); wifiListView = (RecyclerView) getView().findViewById(R.id.wifiList); wifiListView.setLayoutManager(new LinearLayoutManager(getActivity())); wifiAdapter = new WifiListAdapter(getActivity(), new java.util.ArrayList<>()); @@ -153,85 +139,95 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat wifiListView.setVisibility(View.GONE); bleListView.setVisibility(View.GONE); - wifiTitleCard.setOnClickListener(v -> { - if (wifiListView.getVisibility() == View.VISIBLE) { - wifiListView.setVisibility(View.GONE); - wifiExpandIcon.setRotation(0); - } else { - wifiListView.setVisibility(View.VISIBLE); - bleListView.setVisibility(View.GONE); - wifiExpandIcon.setRotation(180); - bleExpandIcon.setRotation(0); - } - }); - - bleTitleCard.setOnClickListener(v -> { - if (bleListView.getVisibility() == View.VISIBLE) { - bleListView.setVisibility(View.GONE); - bleExpandIcon.setRotation(0); - } else { - bleListView.setVisibility(View.VISIBLE); - wifiListView.setVisibility(View.GONE); - bleExpandIcon.setRotation(180); - wifiExpandIcon.setRotation(0); - } - }); + wifiTitleCard.setOnClickListener( + v -> { + if (wifiListView.getVisibility() == View.VISIBLE) { + wifiListView.setVisibility(View.GONE); + wifiExpandIcon.setRotation(0); + } else { + wifiListView.setVisibility(View.VISIBLE); + bleListView.setVisibility(View.GONE); + wifiExpandIcon.setRotation(180); + bleExpandIcon.setRotation(0); + } + }); + + bleTitleCard.setOnClickListener( + v -> { + if (bleListView.getVisibility() == View.VISIBLE) { + bleListView.setVisibility(View.GONE); + bleExpandIcon.setRotation(0); + } else { + bleListView.setVisibility(View.VISIBLE); + wifiListView.setVisibility(View.GONE); + bleExpandIcon.setRotation(180); + wifiExpandIcon.setRotation(0); + } + }); wifiTitleText.setOnClickListener(v -> wifiTitleCard.performClick()); bleTitleText.setOnClickListener(v -> bleTitleCard.performClick()); } /** - * Runnable task containing functionality to update the UI with the relevant sensor data. - * Must be run on the UI thread via a Handler. Obtains movement sensor values and the current - * WiFi networks from the {@link SensorFusion} instance and updates the UI with the new data - * and the string wrappers provided. + * Runnable task containing functionality to update the UI with the relevant sensor data. Must + * be run on the UI thread via a Handler. Obtains movement sensor values and the current WiFi + * networks from the {@link SensorFusion} instance and updates the UI with the new data and the + * string wrappers provided. * * @see SensorFusion class handling all sensors and data processing. * @see Wifi class holding network data. */ - private final Runnable refreshTableTask = new Runnable() { - @Override - public void run() { - // Get all the values from SensorFusion - Map sensorValueMap = sensorFusion.getSensorValueMap(); - // Loop through UI elements and update the values - for(SensorTypes st : SensorTypes.values()) { - CardView cardView = (CardView) sensorMeasurementList.getChildAt(st.ordinal()); - ConstraintLayout currentRow = (ConstraintLayout) cardView.getChildAt(0); - float[] values = sensorValueMap.get(st); - for (int i = 0; i < values.length; i++) { - String valueString; - // Set string wrapper based on data type. - if(values.length == 1) { - valueString = getString(R.string.level, String.format("%.2f", values[0])); + private final Runnable refreshTableTask = + new Runnable() { + @Override + public void run() { + // Get all the values from SensorFusion + Map sensorValueMap = sensorFusion.getSensorValueMap(); + // Loop through UI elements and update the values + for (SensorTypes st : SensorTypes.values()) { + CardView cardView = + (CardView) sensorMeasurementList.getChildAt(st.ordinal()); + ConstraintLayout currentRow = (ConstraintLayout) cardView.getChildAt(0); + float[] values = sensorValueMap.get(st); + for (int i = 0; i < values.length; i++) { + String valueString; + // Set string wrapper based on data type. + if (values.length == 1) { + valueString = + getString(R.string.level, String.format("%.2f", values[0])); + } else if (values.length == 2) { + if (st == SensorTypes.GNSSLATLONG) + valueString = + getString( + gnssPrefaces[i], + String.format("%.2f", values[i])); + else + valueString = + getString( + prefaces[i], String.format("%.2f", values[i])); + } else { + valueString = + getString(prefaces[i], String.format("%.2f", values[i])); + } + ((TextView) currentRow.getChildAt(i + 1)).setText(valueString); + } } - else if(values.length == 2){ - if(st == SensorTypes.GNSSLATLONG) - valueString = getString(gnssPrefaces[i], String.format("%.2f", values[i])); - else - valueString = getString(prefaces[i], String.format("%.2f", values[i])); + // Get all WiFi values - convert to list of strings + List wifiObjects = sensorFusion.getWifiList(); + // If there are WiFi networks visible, update the recycler view with the data. + if (wifiObjects != null) { + wifiAdapter.updateData(wifiObjects); } - else{ - valueString = getString(prefaces[i], String.format("%.2f", values[i])); + // Get all Bluetooth values - convert to list of strings + List bleObjects = sensorFusion.getBleList(); + // If there are Bluetooth devices visible, update the recycler view with the + // data. + if (bleObjects != null && !bleObjects.isEmpty()) { + bleAdapter.updateData(bleObjects); } - ((TextView) currentRow.getChildAt(i + 1)).setText(valueString); + // Restart the data updater task in REFRESH_TIME milliseconds. + refreshDataHandler.postDelayed(refreshTableTask, REFRESH_TIME); } - } - // Get all WiFi values - convert to list of strings - List wifiObjects = sensorFusion.getWifiList(); - // If there are WiFi networks visible, update the recycler view with the data. - if(wifiObjects != null) { - wifiAdapter.updateData(wifiObjects); - } - // Get all Bluetooth values - convert to list of strings - List bleObjects = sensorFusion.getBleList(); - // If there are Bluetooth devices visible, update the recycler view with the data. - if(bleObjects != null && !bleObjects.isEmpty()) { - bleAdapter.updateData(bleObjects); - } - // Restart the data updater task in REFRESH_TIME milliseconds. - refreshDataHandler.postDelayed(refreshTableTask, REFRESH_TIME); - } - }; -} \ No newline at end of file + }; +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java index 6a3430aa..c9b7b560 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java @@ -8,25 +8,22 @@ import android.os.CountDownTimer; import android.os.Handler; import android.util.Log; -import android.view.animation.AlphaAnimation; -import android.view.animation.Animation; -import android.view.animation.LinearInterpolator; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; +import android.view.animation.LinearInterpolator; import android.widget.Button; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.preference.PreferenceManager; - import com.google.android.gms.maps.model.LatLng; import com.google.android.material.button.MaterialButton; - import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.data.remote.ServerCommunications; @@ -35,50 +32,42 @@ import com.openpositioning.PositionMe.sensors.SensorFusion; import com.openpositioning.PositionMe.sensors.SensorTypes; import com.openpositioning.PositionMe.utils.UtilFunctions; - -import org.geojson.MultiLineString; -import org.geojson.MultiPolygon; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.geojson.Feature; import org.geojson.FeatureCollection; import org.geojson.GeoJsonObject; import org.geojson.LngLatAlt; - -import tools.jackson.databind.ObjectMapper; +import org.geojson.MultiLineString; +import org.geojson.MultiPolygon; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; import tools.jackson.core.type.TypeReference; +import tools.jackson.databind.ObjectMapper; /** * Fragment responsible for managing the recording process of trajectory data. - *

    - * The RecordingFragment serves as the interface for users to initiate, monitor, and - * complete trajectory recording. It integrates sensor fusion data to track user movement - * and updates a map view in real time. Additionally, it provides UI controls to cancel, - * stop, and monitor recording progress. - *

    - * Features: - * - Starts and stops trajectory recording. - * - Displays real-time sensor data such as elevation and distance traveled. - * - Provides UI controls to cancel or complete recording. - * - Uses {@link TrajectoryMapFragment} to visualize recorded paths. - * - Manages GNSS tracking and error display. + * + *

    The RecordingFragment serves as the interface for users to initiate, monitor, and complete + * trajectory recording. It integrates sensor fusion data to track user movement and updates a map + * view in real time. Additionally, it provides UI controls to cancel, stop, and monitor recording + * progress. + * + *

    Features: - Starts and stops trajectory recording. - Displays real-time sensor data such as + * elevation and distance traveled. - Provides UI controls to cancel or complete recording. - Uses + * {@link TrajectoryMapFragment} to visualize recorded paths. - Manages GNSS tracking and error + * display. * * @see TrajectoryMapFragment The map fragment displaying the recorded trajectory. * @see RecordingActivity The activity managing the recording workflow. * @see SensorFusion Handles sensor data collection. * @see SensorTypes Enumeration of available sensor types. * @see Observer Interface for handling server responses - * * @author Shu Gu */ - public class RecordingFragment extends Fragment implements Observer { // UI elements @@ -105,14 +94,15 @@ public class RecordingFragment extends Fragment implements Observer { private TrajectoryMapFragment trajectoryMapFragment; private int timed_marker_counter = 1; - private final Runnable refreshDataTask = new Runnable() { - @Override - public void run() { - updateUIandPosition(); - // Loop again - refreshDataHandler.postDelayed(refreshDataTask, 200); - } - }; + private final Runnable refreshDataTask = + new Runnable() { + @Override + public void run() { + updateUIandPosition(); + // Loop again + refreshDataHandler.postDelayed(refreshDataTask, 200); + } + }; public RecordingFragment() { // Required empty public constructor @@ -130,30 +120,32 @@ public void onCreate(Bundle savedInstanceState) { @Nullable @Override - public View onCreateView(@NonNull LayoutInflater inflater, - @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { + public View onCreateView( + @NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { // Inflate only the "recording" UI parts (no map) return inflater.inflate(R.layout.fragment_recording, container, false); } @Override - public void onViewCreated(@NonNull View view, - @Nullable Bundle savedInstanceState) { + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // Child Fragment: the container in fragment_recording.xml // where TrajectoryMapFragment is placed - trajectoryMapFragment = (TrajectoryMapFragment) - getChildFragmentManager().findFragmentById(R.id.trajectoryMapFragmentContainer); + trajectoryMapFragment = + (TrajectoryMapFragment) + getChildFragmentManager() + .findFragmentById(R.id.trajectoryMapFragmentContainer); // If not present, create it if (trajectoryMapFragment == null) { trajectoryMapFragment = new TrajectoryMapFragment(); getChildFragmentManager() - .beginTransaction() - .replace(R.id.trajectoryMapFragmentContainer, trajectoryMapFragment) - .commit(); + .beginTransaction() + .replace(R.id.trajectoryMapFragmentContainer, trajectoryMapFragment) + .commit(); } // Initialize UI references @@ -173,60 +165,66 @@ public void onViewCreated(@NonNull View view, distanceTravelled.setText(getString(R.string.meter, "0")); // Buttons - completeButton.setOnClickListener(v -> { - // Stop recording & go to correction - if (autoStop != null) autoStop.cancel(); - sensorFusion.stopRecording(); - ((RecordingActivity) requireActivity()).showCorrectionScreen(); - }); + completeButton.setOnClickListener( + v -> { + // Stop recording & go to correction + if (autoStop != null) autoStop.cancel(); + sensorFusion.stopRecording(); + ((RecordingActivity) requireActivity()).showCorrectionScreen(); + }); // Cancel button with confirmation dialog - cancelButton.setOnClickListener(v -> { - AlertDialog dialog = new AlertDialog.Builder(requireActivity()) - .setTitle("Confirm Cancel") - .setMessage( - "Are you sure you want to cancel the recording? " - + "Your progress will be lost permanently!" - ) - .setNegativeButton("Yes", (dialogInterface, which) -> { - // User confirmed cancellation - sensorFusion.stopRecording(); - if (autoStop != null) autoStop.cancel(); - requireActivity().onBackPressed(); - }) - .setPositiveButton("No", (dialogInterface, which) -> { - // User cancelled the dialog. Do nothing. - dialogInterface.dismiss(); - }) - .create(); // Create the dialog but do not show it yet - - // Show the dialog and change the button color - dialog.setOnShowListener(dialogInterface -> { - Button negativeButton = dialog.getButton(AlertDialog.BUTTON_NEGATIVE); - negativeButton.setTextColor(Color.RED); // Set "Yes" button color to red - }); - - dialog.show(); // Finally, show the dialog - }); - - timedMarker.setOnClickListener(v -> { - if (trajectoryMapFragment == null) return; - LatLng marker_location = trajectoryMapFragment.getCurrentLocation(); - if (marker_location == null) return; - long tMs = sensorFusion.getRecordingElapsedMs(); - String timeLabel = android.text.format.DateFormat.format( - "HH:mm:ss", - tMs - ).toString(); - trajectoryMapFragment.addTimeMarker(marker_location, timeLabel, timed_marker_counter); - double GNNSAltitude = sensorFusion.getGNSSAltitude(); - sensorFusion.addTestPoint( - marker_location.latitude, - marker_location.longitude, - GNNSAltitude - ); - timed_marker_counter++; - }); + cancelButton.setOnClickListener( + v -> { + AlertDialog dialog = + new AlertDialog.Builder(requireActivity()) + .setTitle("Confirm Cancel") + .setMessage( + "Are you sure you want to cancel the recording? " + + "Your progress will be lost permanently!") + .setNegativeButton( + "Yes", + (dialogInterface, which) -> { + // User confirmed cancellation + sensorFusion.stopRecording(); + if (autoStop != null) autoStop.cancel(); + requireActivity().onBackPressed(); + }) + .setPositiveButton( + "No", + (dialogInterface, which) -> { + // User cancelled the dialog. Do nothing. + dialogInterface.dismiss(); + }) + .create(); // Create the dialog but do not show it yet + + // Show the dialog and change the button color + dialog.setOnShowListener( + dialogInterface -> { + Button negativeButton = + dialog.getButton(AlertDialog.BUTTON_NEGATIVE); + negativeButton.setTextColor( + Color.RED); // Set "Yes" button color to red + }); + + dialog.show(); // Finally, show the dialog + }); + + timedMarker.setOnClickListener( + v -> { + if (trajectoryMapFragment == null) return; + LatLng marker_location = trajectoryMapFragment.getCurrentLocation(); + if (marker_location == null) return; + long tMs = sensorFusion.getRecordingElapsedMs(); + String timeLabel = + android.text.format.DateFormat.format("HH:mm:ss", tMs).toString(); + trajectoryMapFragment.addTimeMarker( + marker_location, timeLabel, timed_marker_counter); + double GNNSAltitude = sensorFusion.getGNSSAltitude(); + sensorFusion.addTestPoint( + marker_location.latitude, marker_location.longitude, GNNSAltitude); + timed_marker_counter++; + }); // The blinking effect for recIcon blinkingRecordingIcon(); @@ -239,39 +237,38 @@ public void onViewCreated(@NonNull View view, timeRemaining.setProgress(0); timeRemaining.setScaleY(3f); - autoStop = new CountDownTimer(limit, 1000) { - @Override - public void onTick(long millisUntilFinished) { - timeRemaining.incrementProgressBy(1); - updateUIandPosition(); - } + autoStop = + new CountDownTimer(limit, 1000) { + @Override + public void onTick(long millisUntilFinished) { + timeRemaining.incrementProgressBy(1); + updateUIandPosition(); + } - @Override - public void onFinish() { - sensorFusion.stopRecording(); - ((RecordingActivity) requireActivity()).showCorrectionScreen(); - } - }.start(); - Log.i( - "RecordingFragment", - "Timer started for " + (int) (limit / 1000) + " minutes" - ); + @Override + public void onFinish() { + sensorFusion.stopRecording(); + ((RecordingActivity) requireActivity()).showCorrectionScreen(); + } + }.start(); + Log.i("RecordingFragment", "Timer started for " + (int) (limit / 1000) + " minutes"); } else { // No set time limit, just keep refreshing refreshDataHandler.post(refreshDataTask); } } - - /** - * Update the UI with sensor data and pass map updates to TrajectoryMapFragment. - */ + + /** Update the UI with sensor data and pass map updates to TrajectoryMapFragment. */ private void updateUIandPosition() { float[] pdrValues = sensorFusion.getSensorValueMap().get(SensorTypes.PDR); if (pdrValues == null) return; // Distance - distance += (float) Math.sqrt(Math.pow(pdrValues[0] - previousPosX, 2) - + Math.pow(pdrValues[1] - previousPosY, 2)); + distance += + (float) + Math.sqrt( + Math.pow(pdrValues[0] - previousPosX, 2) + + Math.pow(pdrValues[1] - previousPosY, 2)); distanceTravelled.setText(getString(R.string.meter, String.format("%.2f", distance))); // Elevation @@ -285,17 +282,17 @@ private void updateUIandPosition() { float[] latLngArray = sensorFusion.getGNSSLatitude(true); if (latLngArray != null) { LatLng oldLocation = trajectoryMapFragment.getCurrentLocation(); // or store locally - LatLng newLocation = UtilFunctions.calculateNewPos( - oldLocation == null ? new LatLng(latLngArray[0], latLngArray[1]) : oldLocation, - new float[]{ pdrValues[0] - previousPosX, pdrValues[1] - previousPosY } - ); + LatLng newLocation = + UtilFunctions.calculateNewPos( + oldLocation == null + ? new LatLng(latLngArray[0], latLngArray[1]) + : oldLocation, + new float[] {pdrValues[0] - previousPosX, pdrValues[1] - previousPosY}); // Pass the location + orientation to the map if (trajectoryMapFragment != null) { trajectoryMapFragment.updateUserLocation( - newLocation, - (float) Math.toDegrees(sensorFusion.passOrientation()) - ); + newLocation, (float) Math.toDegrees(sensorFusion.passOrientation())); } // Retrieve floorplans for nearby buildings @@ -310,17 +307,11 @@ private void updateUIandPosition() { LatLng gnssLocation = new LatLng(gnss[0], gnss[1]); LatLng currentLoc = trajectoryMapFragment.getCurrentLocation(); if (currentLoc != null) { - double errorDist = UtilFunctions.distanceBetweenPoints( - currentLoc, - gnssLocation - ); + double errorDist = + UtilFunctions.distanceBetweenPoints(currentLoc, gnssLocation); gnssError.setVisibility(View.VISIBLE); gnssError.setText( - String.format(getString( - R.string.gnss_error) + "%.2fm", - errorDist - ) - ); + String.format(getString(R.string.gnss_error) + "%.2fm", errorDist)); } trajectoryMapFragment.updateGNSS(gnssLocation); } else { @@ -334,9 +325,7 @@ private void updateUIandPosition() { previousPosY = pdrValues[1]; } - /** - * Start the blinking effect for the recording icon. - */ + /** Start the blinking effect for the recording icon. */ private void blinkingRecordingIcon() { Animation blinking = new AlphaAnimation(1, 0); blinking.setDuration(800); @@ -355,45 +344,39 @@ public void onPause() { @Override public void onResume() { super.onResume(); - if(!this.settings.getBoolean("split_trajectory", false)) { + if (!this.settings.getBoolean("split_trajectory", false)) { refreshDataHandler.postDelayed(refreshDataTask, 500); } } /** - * {@inheritDoc} - * Called by {@link ServerCommunications} when the response - * to the HTTP info request is received. + * {@inheritDoc} Called by {@link ServerCommunications} when the response to the HTTP info + * request is received. * - * @param singletonStringList A single string wrapped in - * an object array containing - * the HTTP response from the - * server. + * @param singletonStringList A single string wrapped in an object array containing the HTTP + * response from the server. */ @Override public void update(Object[] singletonStringList) { - if (singletonStringList != null && singletonStringList.length > 0){ + if (singletonStringList != null && singletonStringList.length > 0) { String response = singletonStringList[0].toString(); Log.d("RecordingFragment", "Received response: " + response); - try{ + try { // Parse the JSON, and draw all possible buildings List> entryList = processPOSTResponse(response); - for (Map building : entryList){ + for (Map building : entryList) { String name = (String) building.get("name"); @SuppressWarnings("unchecked") List outline = (List) building.get("outline"); @SuppressWarnings("unchecked") Map> mapShapes = - (Map>) building.get("map_shapes"); + (Map>) building.get("map_shapes"); trajectoryMapFragment.addBuilding(name, outline, mapShapes); } - } catch (RuntimeException e){ - Log.e( - "RecordingFragment", - "Error processing server response: " + e.getMessage() - ); + } catch (RuntimeException e) { + Log.e("RecordingFragment", "Error processing server response: " + e.getMessage()); } } } @@ -402,12 +385,10 @@ public void update(Object[] singletonStringList) { * Parses the GeoJSON response for floor plans * * @param response The raw JSON string response from the server - * @return A list of maps containing the data associated with every - * building contained with the response - * */ - private List> processPOSTResponse( - String response - ) throws RuntimeException { + * @return A list of maps containing the data associated with every building contained with the + * response + */ + private List> processPOSTResponse(String response) throws RuntimeException { List> entryList = new ArrayList<>(); try { @@ -421,67 +402,59 @@ private List> processPOSTResponse( String name = buildingEntry.getString("name"); // Part 2 - Building Outline - FeatureCollection featureCollection = new ObjectMapper() - .readValue(buildingEntry.getString("outline"), FeatureCollection.class); + FeatureCollection featureCollection = + new ObjectMapper() + .readValue( + buildingEntry.getString("outline"), + FeatureCollection.class); /* - * For every feature in the collection, extract the geometry, - * extract the coordinates, and reconstruct the outline as - * a list of LatLng points (ie, without the Alt, which is - * always NaN) - * */ + * For every feature in the collection, extract the geometry, + * extract the coordinates, and reconstruct the outline as + * a list of LatLng points (ie, without the Alt, which is + * always NaN) + * */ List featuresOutline = featureCollection.getFeatures(); List coordinates = new ArrayList<>(); - for (Feature feature : featuresOutline){ + for (Feature feature : featuresOutline) { GeoJsonObject geometry = feature.getGeometry(); - if (geometry instanceof MultiPolygon multiPolygon){ + if (geometry instanceof MultiPolygon multiPolygon) { List>> coordinatesLngLatAlt = - multiPolygon.getCoordinates(); - for (LngLatAlt point : coordinatesLngLatAlt.get(0).get(0)){ - coordinates.add( - new LatLng(point.getLatitude(), point.getLongitude()) - ); + multiPolygon.getCoordinates(); + for (LngLatAlt point : coordinatesLngLatAlt.get(0).get(0)) { + coordinates.add(new LatLng(point.getLatitude(), point.getLongitude())); } } } // Part 3 - Floor plans - Map floorplansJSON = new ObjectMapper() - .readValue( - buildingEntry.getString("map_shapes"), - new TypeReference<>() {} - ); + Map floorplansJSON = + new ObjectMapper() + .readValue( + buildingEntry.getString("map_shapes"), + new TypeReference<>() {}); // Map to index floor plans by floor name Map> floorplans = new HashMap<>(); - for (String floorname : floorplansJSON.keySet()){ + for (String floorname : floorplansJSON.keySet()) { Object floor = floorplansJSON.get(floorname); - FeatureCollection fc = new ObjectMapper() - .convertValue(floor, FeatureCollection.class); + FeatureCollection fc = + new ObjectMapper().convertValue(floor, FeatureCollection.class); List feats = fc.getFeatures(); List floorPolys = new ArrayList<>(); - for (Feature feat : feats){ + for (Feature feat : feats) { GeoJsonObject geometry = feat.getGeometry(); // Check for MultiLineString is for Nucleus only - if (geometry instanceof MultiPolygon multiPolygon){ + if (geometry instanceof MultiPolygon multiPolygon) { floorPolys.add(multiPolygon); - Log.d( - "RecordingFragment", - name + ": geometry MultiPolygon" - ); - } else if (geometry instanceof MultiLineString multiLineString){ + Log.d("RecordingFragment", name + ": geometry MultiPolygon"); + } else if (geometry instanceof MultiLineString multiLineString) { floorPolys.add(multiLineString); - Log.d( - "RecordingFragment", - name + ": geometry MultiLineString" - ); + Log.d("RecordingFragment", name + ": geometry MultiLineString"); } else { - Log.w( - "RecordingFragment", - name + " has no floorplans!" - ); + Log.w("RecordingFragment", name + " has no floorplans!"); } } floorplans.put(floorname, floorPolys); @@ -494,10 +467,10 @@ private List> processPOSTResponse( entryList.add(entryMap); Log.d("RecordingFragment", "Building '" + name + "' parsed"); } - Log.d("RecordingFragment", entryList.size() + " buildings parsed"); - } catch (JSONException e) { - Log.e("RecordingFragment", "JSON Parse Failed: " + e.getMessage()); - } + Log.d("RecordingFragment", entryList.size() + " buildings parsed"); + } catch (JSONException e) { + Log.e("RecordingFragment", "JSON Parse Failed: " + e.getMessage()); + } return entryList; } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java index 0a8b1666..f1572564 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/ReplayFragment.java @@ -8,39 +8,33 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.SeekBar; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; - import com.google.android.gms.maps.model.LatLng; import com.openpositioning.PositionMe.R; -import com.openpositioning.PositionMe.presentation.activity.ReplayActivity; import com.openpositioning.PositionMe.data.local.TrajParser; - +import com.openpositioning.PositionMe.presentation.activity.ReplayActivity; import java.io.File; import java.util.ArrayList; import java.util.List; /** * Sub fragment of Replay Activity. Fragment that replays trajectory data on a map. - *

    - * The ReplayFragment is responsible for visualizing and replaying trajectory data captured during - * previous recordings. It loads trajectory data from a JSON file, updates the map with user movement, - * and provides UI controls for playback, pause, and seek functionalities. - *

    - * Features: - * - Loads trajectory data from a file and displays it on a map. - * - Provides playback controls including play, pause, restart, and go to end. - * - Updates the trajectory dynamically as playback progresses. - * - Allows users to manually seek through the recorded trajectory. - * - Integrates with {@link TrajectoryMapFragment} for map visualization. + * + *

    The ReplayFragment is responsible for visualizing and replaying trajectory data captured + * during previous recordings. It loads trajectory data from a JSON file, updates the map with user + * movement, and provides UI controls for playback, pause, and seek functionalities. + * + *

    Features: - Loads trajectory data from a file and displays it on a map. - Provides playback + * controls including play, pause, restart, and go to end. - Updates the trajectory dynamically as + * playback progresses. - Allows users to manually seek through the recorded trajectory. - + * Integrates with {@link TrajectoryMapFragment} for map visualization. * * @see TrajectoryMapFragment The map fragment displaying the trajectory. * @see ReplayActivity The activity managing the replay workflow. * @see TrajParser Utility class for parsing trajectory data. - * * @author Shu Gu */ public class ReplayFragment extends Fragment { @@ -71,15 +65,9 @@ public void onCreate(@Nullable Bundle savedInstanceState) { // Retrieve transferred data from ReplayActivity if (getArguments() != null) { - filePath = getArguments().getString( - ReplayActivity.EXTRA_TRAJECTORY_FILE_PATH,"" - ); - initialLat = getArguments().getFloat( - ReplayActivity.EXTRA_INITIAL_LAT, 0f - ); - initialLon = getArguments().getFloat( - ReplayActivity.EXTRA_INITIAL_LON, 0f - ); + filePath = getArguments().getString(ReplayActivity.EXTRA_TRAJECTORY_FILE_PATH, ""); + initialLat = getArguments().getFloat(ReplayActivity.EXTRA_INITIAL_LAT, 0f); + initialLon = getArguments().getFloat(ReplayActivity.EXTRA_INITIAL_LON, 0f); } // Log the received data @@ -102,12 +90,8 @@ public void onCreate(@Nullable Bundle savedInstanceState) { Log.i(TAG, "Trajectory file confirmed to exist and is readable."); // Parse the JSON file and prepare replayData using TrajParser - replayData = TrajParser.parseTrajectoryData( - filePath, - requireContext(), - initialLat, - initialLon - ); + replayData = + TrajParser.parseTrajectoryData(filePath, requireContext(), initialLat, initialLon); // Log the number of parsed points if (replayData != null && !replayData.isEmpty()) { @@ -117,23 +101,23 @@ public void onCreate(@Nullable Bundle savedInstanceState) { } } - @Nullable @Override - public View onCreateView(@NonNull LayoutInflater inflater, - @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { + public View onCreateView( + @NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_replay, container, false); } @Override - public void onViewCreated(@NonNull View view, - @Nullable Bundle savedInstanceState) { + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // Initialize map fragment - trajectoryMapFragment = (TrajectoryMapFragment) - getChildFragmentManager().findFragmentById(R.id.replayMapFragmentContainer); + trajectoryMapFragment = + (TrajectoryMapFragment) + getChildFragmentManager().findFragmentById(R.id.replayMapFragmentContainer); if (trajectoryMapFragment == null) { trajectoryMapFragment = new TrajectoryMapFragment(); getChildFragmentManager() @@ -142,12 +126,11 @@ public void onViewCreated(@NonNull View view, .commit(); } - // Initialize UI controls playPauseButton = view.findViewById(R.id.playPauseButton); - restartButton = view.findViewById(R.id.restartButton); - exitButton = view.findViewById(R.id.exitButton); - goEndButton = view.findViewById(R.id.goEndButton); + restartButton = view.findViewById(R.id.restartButton); + exitButton = view.findViewById(R.id.exitButton); + goEndButton = view.findViewById(R.id.goEndButton); playbackSeekBar = view.findViewById(R.id.playbackSeekBar); // 1) Check if the file contains any GNSS data @@ -165,81 +148,86 @@ public void onViewCreated(@NonNull View view, } // Button Listeners - playPauseButton.setOnClickListener(v -> { - if (replayData.isEmpty()) { - Log.w(TAG, "Play/Pause button pressed but replayData is empty."); - return; - } - if (isPlaying) { - isPlaying = false; - playPauseButton.setText("Play"); - Log.i(TAG, "Playback paused at index: " + currentIndex); - } else { - isPlaying = true; - playPauseButton.setText("Pause"); - Log.i(TAG, "Playback started from index: " + currentIndex); - if (currentIndex >= replayData.size()) { - currentIndex = 0; - } - playbackHandler.post(playbackRunnable); - } - }); + playPauseButton.setOnClickListener( + v -> { + if (replayData.isEmpty()) { + Log.w(TAG, "Play/Pause button pressed but replayData is empty."); + return; + } + if (isPlaying) { + isPlaying = false; + playPauseButton.setText("Play"); + Log.i(TAG, "Playback paused at index: " + currentIndex); + } else { + isPlaying = true; + playPauseButton.setText("Pause"); + Log.i(TAG, "Playback started from index: " + currentIndex); + if (currentIndex >= replayData.size()) { + currentIndex = 0; + } + playbackHandler.post(playbackRunnable); + } + }); // Restart button listener - restartButton.setOnClickListener(v -> { - if (replayData.isEmpty()) return; - currentIndex = 0; - playbackSeekBar.setProgress(0); - Log.i(TAG, "Restart button pressed. Resetting playback to index 0."); - trajectoryMapFragment.removeAllMarkers(); - updateMapForIndex(0); - }); + restartButton.setOnClickListener( + v -> { + if (replayData.isEmpty()) return; + currentIndex = 0; + playbackSeekBar.setProgress(0); + Log.i(TAG, "Restart button pressed. Resetting playback to index 0."); + trajectoryMapFragment.removeAllMarkers(); + updateMapForIndex(0); + }); // Go to End button listener - goEndButton.setOnClickListener(v -> { - if (replayData.isEmpty()) return; - currentIndex = replayData.size() - 1; - playbackSeekBar.setProgress(currentIndex); - Log.i(TAG, "Go to End button pressed. Moving to last index: " + currentIndex); - updateMapForIndex(currentIndex); - isPlaying = false; - playPauseButton.setText("Play"); - }); + goEndButton.setOnClickListener( + v -> { + if (replayData.isEmpty()) return; + currentIndex = replayData.size() - 1; + playbackSeekBar.setProgress(currentIndex); + Log.i(TAG, "Go to End button pressed. Moving to last index: " + currentIndex); + updateMapForIndex(currentIndex); + isPlaying = false; + playPauseButton.setText("Play"); + }); // Exit button listener - exitButton.setOnClickListener(v -> { - Log.i(TAG, "Exit button pressed. Exiting replay."); - if (getActivity() instanceof ReplayActivity) { - ((ReplayActivity) getActivity()).finishFlow(); - } else { - requireActivity().onBackPressed(); - } - }); + exitButton.setOnClickListener( + v -> { + Log.i(TAG, "Exit button pressed. Exiting replay."); + if (getActivity() instanceof ReplayActivity) { + ((ReplayActivity) getActivity()).finishFlow(); + } else { + requireActivity().onBackPressed(); + } + }); // SeekBar listener - playbackSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - if (fromUser) { - Log.i(TAG, "SeekBar moved by user. New index: " + progress); - currentIndex = progress; - updateMapForIndex(currentIndex); - } - } - @Override public void onStartTrackingTouch(SeekBar seekBar) {} - @Override public void onStopTrackingTouch(SeekBar seekBar) {} - }); + playbackSeekBar.setOnSeekBarChangeListener( + new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + if (fromUser) { + Log.i(TAG, "SeekBar moved by user. New index: " + progress); + currentIndex = progress; + updateMapForIndex(currentIndex); + } + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) {} + + @Override + public void onStopTrackingTouch(SeekBar seekBar) {} + }); if (!replayData.isEmpty()) { updateMapForIndex(0); } } - - - /** - * Checks if any ReplayPoint contains a non-null gnssLocation. - */ + /** Checks if any ReplayPoint contains a non-null gnssLocation. */ private boolean hasAnyGnssData(List data) { for (TrajParser.ReplayPoint point : data) { if (point.gnssLocation != null) { @@ -249,11 +237,9 @@ private boolean hasAnyGnssData(List data) { return false; } - /** - * Show a simple dialog asking user to pick: - * 1) GNSS from file - * 2) Lat/Lon from ReplayActivity arguments + * Show a simple dialog asking user to pick: 1) GNSS from file 2) Lat/Lon from ReplayActivity + * arguments */ private void showGnssChoiceDialog() { LatLng firstGnss = getFirstGnssLocation(replayData); @@ -261,29 +247,39 @@ private void showGnssChoiceDialog() { new AlertDialog.Builder(requireContext()) .setTitle("Choose Starting Location") .setMessage("GNSS data found. Use file's GNSS or your manual position?") - .setPositiveButton("Use File's GNSS", (dialog, which) -> { - if (firstGnss != null) { - // Re-parse with file's GNSS coords - replayData = TrajParser.parseTrajectoryData(filePath, requireContext(), - firstGnss.latitude, firstGnss.longitude); - setupInitialMapPosition((float) firstGnss.latitude, (float) firstGnss.longitude); - } else { - // Fallback if no valid GNSS found - setupInitialMapPosition(initialLat, initialLon); - } - playbackSeekBar.setMax(replayData.size() - 1); - updateMapForIndex(0); - dialog.dismiss(); - }) - .setNegativeButton("Use Manual Set", (dialog, which) -> { - // Re-parse with manual coords (or just use existing) - replayData = TrajParser.parseTrajectoryData(filePath, requireContext(), - initialLat, initialLon); - setupInitialMapPosition(initialLat, initialLon); - playbackSeekBar.setMax(replayData.size() - 1); - updateMapForIndex(0); - dialog.dismiss(); - }) + .setPositiveButton( + "Use File's GNSS", + (dialog, which) -> { + if (firstGnss != null) { + // Re-parse with file's GNSS coords + replayData = + TrajParser.parseTrajectoryData( + filePath, + requireContext(), + firstGnss.latitude, + firstGnss.longitude); + setupInitialMapPosition( + (float) firstGnss.latitude, (float) firstGnss.longitude); + } else { + // Fallback if no valid GNSS found + setupInitialMapPosition(initialLat, initialLon); + } + playbackSeekBar.setMax(replayData.size() - 1); + updateMapForIndex(0); + dialog.dismiss(); + }) + .setNegativeButton( + "Use Manual Set", + (dialog, which) -> { + // Re-parse with manual coords (or just use existing) + replayData = + TrajParser.parseTrajectoryData( + filePath, requireContext(), initialLat, initialLon); + setupInitialMapPosition(initialLat, initialLon); + playbackSeekBar.setMax(replayData.size() - 1); + updateMapForIndex(0); + dialog.dismiss(); + }) .setCancelable(false) .show(); } @@ -301,43 +297,42 @@ private void setupInitialMapPosition(float latitude, float longitude) { } } - /** - * Retrieve the first available GNSS location from the replay data. - */ + /** Retrieve the first available GNSS location from the replay data. */ private LatLng getFirstGnssLocation(List data) { for (TrajParser.ReplayPoint point : data) { if (point.gnssLocation != null) { - return new LatLng(replayData.get(0).gnssLocation.latitude, replayData.get(0).gnssLocation.longitude); + return new LatLng( + replayData.get(0).gnssLocation.latitude, + replayData.get(0).gnssLocation.longitude); } } return null; // None found } - /** - * Runnable for playback of trajectory data. - * This runnable is called repeatedly to update the map with the next point in the replayData list. + * Runnable for playback of trajectory data. This runnable is called repeatedly to update the + * map with the next point in the replayData list. */ - private final Runnable playbackRunnable = new Runnable() { - @Override - public void run() { - if (!isPlaying || replayData.isEmpty()) return; - - Log.i(TAG, "Playing index: " + currentIndex); - updateMapForIndex(currentIndex); - currentIndex++; - playbackSeekBar.setProgress(currentIndex); - - if (currentIndex < replayData.size()) { - playbackHandler.postDelayed(this, PLAYBACK_INTERVAL_MS); - } else { - Log.i(TAG, "Playback completed. Reached end of data."); - isPlaying = false; - playPauseButton.setText("Play"); - } - } - }; + private final Runnable playbackRunnable = + new Runnable() { + @Override + public void run() { + if (!isPlaying || replayData.isEmpty()) return; + + Log.i(TAG, "Playing index: " + currentIndex); + updateMapForIndex(currentIndex); + currentIndex++; + playbackSeekBar.setProgress(currentIndex); + if (currentIndex < replayData.size()) { + playbackHandler.postDelayed(this, PLAYBACK_INTERVAL_MS); + } else { + Log.i(TAG, "Playback completed. Reached end of data."); + isPlaying = false; + playPauseButton.setText("Play"); + } + } + }; /** * Update the map with the user location and GNSS location (if available) for the given index. @@ -369,8 +364,9 @@ private void updateMapForIndex(int newIndex) { if (p.gnssLocation != null) { trajectoryMapFragment.updateGNSS(p.gnssLocation); } - if (p.testPoint != null){ - trajectoryMapFragment.addTimeMarker(p.testPoint, p.testPointTime, p.testPointNumber); + if (p.testPoint != null) { + trajectoryMapFragment.addTimeMarker( + p.testPoint, p.testPointTime, p.testPointNumber); } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/SettingsFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/SettingsFragment.java index c1f6501c..c4021918 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/SettingsFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/SettingsFragment.java @@ -2,18 +2,15 @@ import android.os.Bundle; import android.text.InputType; - import androidx.preference.EditTextPreference; import androidx.preference.PreferenceFragmentCompat; - import com.openpositioning.PositionMe.R; /** - * SettingsFragment that inflates and displays the preferences (settings). - * Sets type for numeric only fields. + * SettingsFragment that inflates and displays the preferences (settings). Sets type for numeric + * only fields. * * @see HomeFragment the return fragment when leaving the settings. - * * @author Mate Stodulka */ public class SettingsFragment extends PreferenceFragmentCompat { @@ -27,31 +24,36 @@ public class SettingsFragment extends PreferenceFragmentCompat { private EditTextPreference wifiInterval; /** - * {@inheritDoc} - * Sets the relevant numeric type for the preferences that should not take string values. + * {@inheritDoc} Sets the relevant numeric type for the preferences that should not take string + * values. */ @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.root_preferences, rootKey); getActivity().setTitle("Settings"); weibergK = findPreference("weiberg_k"); - weibergK.setOnBindEditTextListener(editText -> editText.setInputType( - InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL)); + weibergK.setOnBindEditTextListener( + editText -> + editText.setInputType( + InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL)); elevationSeconds = findPreference("elevation_seconds"); - elevationSeconds.setOnBindEditTextListener(editText -> editText.setInputType( - InputType.TYPE_CLASS_NUMBER)); + elevationSeconds.setOnBindEditTextListener( + editText -> editText.setInputType(InputType.TYPE_CLASS_NUMBER)); accelSamples = findPreference("accel_samples"); - accelSamples.setOnBindEditTextListener(editText -> editText.setInputType( - InputType.TYPE_CLASS_NUMBER)); + accelSamples.setOnBindEditTextListener( + editText -> editText.setInputType(InputType.TYPE_CLASS_NUMBER)); epsilon = findPreference("epsilon"); - epsilon.setOnBindEditTextListener(editText -> editText.setInputType( - InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL)); + epsilon.setOnBindEditTextListener( + editText -> + editText.setInputType( + InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL)); accelFilter = findPreference("accel_filter"); - accelFilter.setOnBindEditTextListener(editText -> editText.setInputType( - InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL)); + accelFilter.setOnBindEditTextListener( + editText -> + editText.setInputType( + InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL)); wifiInterval = findPreference("wifi_interval"); - wifiInterval.setOnBindEditTextListener(editText -> editText.setInputType( - InputType.TYPE_CLASS_NUMBER)); - + wifiInterval.setOnBindEditTextListener( + editText -> editText.setInputType(InputType.TYPE_CLASS_NUMBER)); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java index 8391e289..0a6c191c 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/StartLocationFragment.java @@ -8,12 +8,10 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; - import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; @@ -51,33 +49,23 @@ public class StartLocationFragment extends Fragment { // Dummy variable for floor index private int FloorNK; - /** - * Public Constructor for the class. - * Left empty as not required - */ + /** Public Constructor for the class. Left empty as not required */ public StartLocationFragment() { // Required empty public constructor } /** - * {@inheritDoc} - * The map is loaded and configured so that it displays a draggable marker for the start location + * {@inheritDoc} The map is loaded and configured so that it displays a draggable marker for the + * start location */ @Override public View onCreateView( - @NonNull LayoutInflater inflater, - ViewGroup container, - Bundle savedInstanceState - ) { + @NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { AppCompatActivity activity = (AppCompatActivity) getActivity(); if (activity != null && activity.getSupportActionBar() != null) { activity.getSupportActionBar().hide(); } - View rootView = inflater.inflate( - R.layout.fragment_startlocation, - container, - false - ); + View rootView = inflater.inflate(R.layout.fragment_startlocation, container, false); // Get current GPS location to display as default marker position startPosition = sensorFusion.getGNSSLatitude(false); @@ -89,111 +77,110 @@ public View onCreateView( } // Initialize map fragment - SupportMapFragment supportMapFragment = (SupportMapFragment) - getChildFragmentManager().findFragmentById(R.id.startMap); - - supportMapFragment.getMapAsync(new OnMapReadyCallback() { - /** - * {@inheritDoc} - * Controls to allow scrolling, tilting, rotating and - * a compass view of the map are enabled. - *

    - * A marker is added to the map with the start position, and - * a marker drag listener is generated to detect - * when the marker has moved to obtain the new location. - */ - @Override - public void onMapReady(GoogleMap mMap) { - // Set map type and UI settings - mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); - mMap.getUiSettings().setCompassEnabled(true); - mMap.getUiSettings().setTiltGesturesEnabled(true); - mMap.getUiSettings().setRotateGesturesEnabled(true); - mMap.getUiSettings().setScrollGesturesEnabled(true); - - // *** FIX: Clear any existing markers so the start marker isn’t duplicated *** - mMap.clear(); - - // Add a marker at the current GPS location and move the camera - position = new LatLng(startPosition[0], startPosition[1]); - mMap.addMarker(new MarkerOptions() - .position(position) - .title("Start Position") - .draggable(true)); - mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(position, zoom)); - - // Drag listener for the marker to update the start position when dragged - mMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() { - /** - * {@inheritDoc} - */ - @Override - public void onMarkerDragStart(Marker marker) {} + SupportMapFragment supportMapFragment = + (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.startMap); + supportMapFragment.getMapAsync( + new OnMapReadyCallback() { /** - * {@inheritDoc} - * Updates the start position of the user. + * {@inheritDoc} Controls to allow scrolling, tilting, rotating and a compass + * view of the map are enabled. + * + *

    A marker is added to the map with the start position, and a marker drag + * listener is generated to detect when the marker has moved to obtain the new + * location. */ @Override - public void onMarkerDragEnd(Marker marker) { - startPosition[0] = (float) marker.getPosition().latitude; - startPosition[1] = (float) marker.getPosition().longitude; + public void onMapReady(GoogleMap mMap) { + // Set map type and UI settings + mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); + mMap.getUiSettings().setCompassEnabled(true); + mMap.getUiSettings().setTiltGesturesEnabled(true); + mMap.getUiSettings().setRotateGesturesEnabled(true); + mMap.getUiSettings().setScrollGesturesEnabled(true); + + // *** FIX: Clear any existing markers so the start marker isn’t duplicated + // *** + mMap.clear(); + + // Add a marker at the current GPS location and move the camera + position = new LatLng(startPosition[0], startPosition[1]); + mMap.addMarker( + new MarkerOptions() + .position(position) + .title("Start Position") + .draggable(true)); + mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(position, zoom)); + + // Drag listener for the marker to update the start position when dragged + mMap.setOnMarkerDragListener( + new GoogleMap.OnMarkerDragListener() { + /** {@inheritDoc} */ + @Override + public void onMarkerDragStart(Marker marker) {} + + /** {@inheritDoc} Updates the start position of the user. */ + @Override + public void onMarkerDragEnd(Marker marker) { + startPosition[0] = (float) marker.getPosition().latitude; + startPosition[1] = (float) marker.getPosition().longitude; + } + + /** {@inheritDoc} */ + @Override + public void onMarkerDrag(Marker marker) {} + }); } - - /** - * {@inheritDoc} - */ - @Override - public void onMarkerDrag(Marker marker) {} }); - } - }); return rootView; } /** - * {@inheritDoc} - * Button onClick listener enabled to detect when to go - * to next fragment and start PDR recording. + * {@inheritDoc} Button onClick listener enabled to detect when to go to next fragment and start + * PDR recording. */ @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); this.button = view.findViewById(R.id.startLocationDone); - this.button.setOnClickListener(new View.OnClickListener() { - /** - * {@inheritDoc} - * When button clicked the PDR recording can start and the start position is stored for - * the {@link CorrectionFragment} to display. The {@link RecordingFragment} is loaded. - */ - @Override - public void onClick(View view) { - float chosenLat = startPosition[0]; - float chosenLon = startPosition[1]; - - // If the Activity is RecordingActivity - if (requireActivity() instanceof RecordingActivity) { - // Start sensor recording + set the start location - sensorFusion.setStartGNSSLatitude(startPosition); - sensorFusion.startRecording(); - - // Now switch to the recording screen - ((RecordingActivity) requireActivity()).showRecordingScreen(); - - // If the Activity is ReplayActivity - } else if (requireActivity() instanceof ReplayActivity) { - // *Do not* cast to RecordingActivity here - // Just call the Replay method - ((ReplayActivity) requireActivity()).onStartLocationChosen(chosenLat, chosenLon); - - // Otherwise (unexpected host) - } else { - // Optional: log or handle error - Log.e("StartLocationFragment", "Unknown host Activity: " + requireActivity()); - } - } - }); + this.button.setOnClickListener( + new View.OnClickListener() { + /** + * {@inheritDoc} When button clicked the PDR recording can start and the start + * position is stored for the {@link CorrectionFragment} to display. The {@link + * RecordingFragment} is loaded. + */ + @Override + public void onClick(View view) { + float chosenLat = startPosition[0]; + float chosenLon = startPosition[1]; + + // If the Activity is RecordingActivity + if (requireActivity() instanceof RecordingActivity) { + // Start sensor recording + set the start location + sensorFusion.setStartGNSSLatitude(startPosition); + sensorFusion.startRecording(); + + // Now switch to the recording screen + ((RecordingActivity) requireActivity()).showRecordingScreen(); + + // If the Activity is ReplayActivity + } else if (requireActivity() instanceof ReplayActivity) { + // *Do not* cast to RecordingActivity here + // Just call the Replay method + ((ReplayActivity) requireActivity()) + .onStartLocationChosen(chosenLat, chosenLon); + + // Otherwise (unexpected host) + } else { + // Optional: log or handle error + Log.e( + "StartLocationFragment", + "Unknown host Activity: " + requireActivity()); + } + } + }); } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java index b2b6d780..df6f4df8 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java @@ -1,13 +1,10 @@ package com.openpositioning.PositionMe.presentation.fragment; -import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_NUCLEUS; -import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_BUILDING_WITHOUT_FLOOR_MAPS; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_FLOOR_PLAN_FILL_PREVIEW; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_FLOOR_PLAN_FILL_TRANSPARENT; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_PATH_COLOUR; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_PATH_GNSS; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_PATH_MONOCHROME; -import static com.openpositioning.PositionMe.utils.UtilConstants.LINE_WEIGHT_OUTLINE; import static com.openpositioning.PositionMe.utils.UtilConstants.LINE_WEIGHT_PATH; import static com.openpositioning.PositionMe.utils.UtilConstants.MAP_DRAWING_PRIORITY_MAX; import static com.openpositioning.PositionMe.utils.UtilConstants.ZOOM_LEVEL_DEFAULT; @@ -21,51 +18,50 @@ import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Spinner; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; - import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; -import com.google.android.gms.maps.model.*; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.Marker; +import com.google.android.gms.maps.model.MarkerOptions; +import com.google.android.gms.maps.model.Polygon; +import com.google.android.gms.maps.model.Polyline; +import com.google.android.gms.maps.model.PolylineOptions; import com.google.android.material.switchmaterial.SwitchMaterial; - import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.sensors.SensorFusion; import com.openpositioning.PositionMe.utils.Building; import com.openpositioning.PositionMe.utils.IndoorMapManager; import com.openpositioning.PositionMe.utils.UtilFunctions; - -import org.geojson.MultiPolygon; - import java.util.ArrayList; import java.util.List; import java.util.Map; /** * A fragment responsible for displaying a trajectory map using Google Maps. - *

    - * The TrajectoryMapFragment provides a map interface for visualizing movement trajectories, - * GNSS tracking, and indoor mapping. It manages map settings, user interactions, and real-time - * updates to user location and GNSS markers. - *

    - * Key Features: - * - Displays a Google Map with support for different map types (Hybrid, Normal, Satellite). - * - Tracks and visualizes user movement using polylines. - * - Supports GNSS position updates and visual representation. - * - Includes indoor mapping with floor selection and auto-floor adjustments. - * - Allows user interaction through map controls and UI elements. * - * @see com.openpositioning.PositionMe.presentation.activity.RecordingActivity The activity hosting this fragment. - * @see com.openpositioning.PositionMe.utils.IndoorMapManager Utility for managing indoor map overlays. - * @see com.openpositioning.PositionMe.utils.UtilFunctions Utility functions for UI and graphics handling. + *

    The TrajectoryMapFragment provides a map interface for visualizing movement trajectories, GNSS + * tracking, and indoor mapping. It manages map settings, user interactions, and real-time updates + * to user location and GNSS markers. * + *

    Key Features: - Displays a Google Map with support for different map types (Hybrid, Normal, + * Satellite). - Tracks and visualizes user movement using polylines. - Supports GNSS position + * updates and visual representation. - Includes indoor mapping with floor selection and auto-floor + * adjustments. - Allows user interaction through map controls and UI elements. + * + * @see com.openpositioning.PositionMe.presentation.activity.RecordingActivity The activity hosting + * this fragment. + * @see com.openpositioning.PositionMe.utils.IndoorMapManager Utility for managing indoor map + * overlays. + * @see com.openpositioning.PositionMe.utils.UtilFunctions Utility functions for UI and graphics + * handling. * @author Mate Stodulka */ - public class TrajectoryMapFragment extends Fragment { private GoogleMap gMap; // Google Maps instance @@ -90,7 +86,8 @@ public class TrajectoryMapFragment extends Fragment { private SwitchMaterial gnssSwitch; private SwitchMaterial autoFloorSwitch; - private com.google.android.material.floatingactionbutton.FloatingActionButton floorUpButton, floorDownButton; + private com.google.android.material.floatingactionbutton.FloatingActionButton floorUpButton, + floorDownButton; private Button switchColorButton; private List markers = new ArrayList<>(); @@ -106,24 +103,24 @@ public void onCreate(@Nullable Bundle savedInstanceState) { @Nullable @Override - public View onCreateView(@NonNull LayoutInflater inflater, - @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { + public View onCreateView( + @NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { // Inflate the separate layout containing map + map-related UI return inflater.inflate(R.layout.fragment_trajectory_map, container, false); } @Override - public void onViewCreated(@NonNull View view, - @Nullable Bundle savedInstanceState) { + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // Grab references to UI controls - switchMapSpinner = view.findViewById(R.id.mapSwitchSpinner); - gnssSwitch = view.findViewById(R.id.gnssSwitch); - autoFloorSwitch = view.findViewById(R.id.autoFloor); - floorUpButton = view.findViewById(R.id.floorUpButton); - floorDownButton = view.findViewById(R.id.floorDownButton); + switchMapSpinner = view.findViewById(R.id.mapSwitchSpinner); + gnssSwitch = view.findViewById(R.id.gnssSwitch); + autoFloorSwitch = view.findViewById(R.id.autoFloor); + floorUpButton = view.findViewById(R.id.floorUpButton); + floorDownButton = view.findViewById(R.id.floorDownButton); switchColorButton = view.findViewById(R.id.lineColorButton); sensorFusion = SensorFusion.getInstance(); @@ -132,102 +129,99 @@ public void onViewCreated(@NonNull View view, setFloorControlsVisibility(View.GONE); // Initialize the map asynchronously - SupportMapFragment mapFragment = (SupportMapFragment) - getChildFragmentManager().findFragmentById(R.id.trajectoryMap); + SupportMapFragment mapFragment = + (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.trajectoryMap); if (mapFragment != null) { - mapFragment.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull GoogleMap googleMap) { - // Assign the provided googleMap to your field variable - gMap = googleMap; - // Initialize map settings with the now non-null gMap - initMapSettings(gMap); - - // If we had a pending camera move, apply it now - if (hasPendingCameraMove && pendingCameraPosition != null) { - gMap.moveCamera(CameraUpdateFactory.newLatLngZoom( - pendingCameraPosition, - ZOOM_LEVEL_DEFAULT) - ); - hasPendingCameraMove = false; - pendingCameraPosition = null; - } + mapFragment.getMapAsync( + new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull GoogleMap googleMap) { + // Assign the provided googleMap to your field variable + gMap = googleMap; + // Initialize map settings with the now non-null gMap + initMapSettings(gMap); + + // If we had a pending camera move, apply it now + if (hasPendingCameraMove && pendingCameraPosition != null) { + gMap.moveCamera( + CameraUpdateFactory.newLatLngZoom( + pendingCameraPosition, ZOOM_LEVEL_DEFAULT)); + hasPendingCameraMove = false; + pendingCameraPosition = null; + } - Log.d("TrajectoryMapFragment", "onMapReady: Map is ready!"); - } - }); + Log.d("TrajectoryMapFragment", "onMapReady: Map is ready!"); + } + }); } // Map type spinner setup initMapTypeSpinner(); // GNSS Switch - gnssSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> { - isGnssOn = isChecked; - if (!isChecked && gnssMarker != null) { - gnssMarker.remove(); - gnssMarker = null; - } - }); + gnssSwitch.setOnCheckedChangeListener( + (buttonView, isChecked) -> { + isGnssOn = isChecked; + if (!isChecked && gnssMarker != null) { + gnssMarker.remove(); + gnssMarker = null; + } + }); // Color switch - switchColorButton.setOnClickListener(v -> { - if (polyline != null) { - if (isColourEnabled) { - switchColorButton.setBackgroundColor(COLOUR_PATH_MONOCHROME); - polyline.setColor(COLOUR_PATH_MONOCHROME); - isColourEnabled = false; - } else { - switchColorButton.setBackgroundColor(COLOUR_PATH_COLOUR); - polyline.setColor(COLOUR_PATH_COLOUR); - isColourEnabled = true; - } - } - }); - - floorUpButton.setOnClickListener(v -> { - // If user manually changes floor, turn off auto floor - autoFloorSwitch.setChecked(false); - if (indoorMapManager != null) { - Building building = indoorMapManager.getCurrentBuilding(currentLocation); - if (building != null) { - building.setCurrentFloor( - building.getFloorNumber()+1, - gMap - ); - } else { - Log.w("TrajectoryMapFragment", "Floor Up Button: No building!"); - } - } - }); - - floorDownButton.setOnClickListener(v -> { - autoFloorSwitch.setChecked(false); - if (indoorMapManager != null) { - Building building = indoorMapManager.getCurrentBuilding(currentLocation); - if (building != null) { - building.setCurrentFloor( - building.getFloorNumber()-1, - gMap - ); - } else { - Log.w("TrajectoryMapFragment", "Floor Down Button: No building!"); - } - } - }); + switchColorButton.setOnClickListener( + v -> { + if (polyline != null) { + if (isColourEnabled) { + switchColorButton.setBackgroundColor(COLOUR_PATH_MONOCHROME); + polyline.setColor(COLOUR_PATH_MONOCHROME); + isColourEnabled = false; + } else { + switchColorButton.setBackgroundColor(COLOUR_PATH_COLOUR); + polyline.setColor(COLOUR_PATH_COLOUR); + isColourEnabled = true; + } + } + }); + + floorUpButton.setOnClickListener( + v -> { + // If user manually changes floor, turn off auto floor + autoFloorSwitch.setChecked(false); + if (indoorMapManager != null) { + Building building = indoorMapManager.getCurrentBuilding(currentLocation); + if (building != null) { + building.setCurrentFloor(building.getFloorNumber() + 1, gMap); + } else { + Log.w("TrajectoryMapFragment", "Floor Up Button: No building!"); + } + } + }); + + floorDownButton.setOnClickListener( + v -> { + autoFloorSwitch.setChecked(false); + if (indoorMapManager != null) { + Building building = indoorMapManager.getCurrentBuilding(currentLocation); + if (building != null) { + building.setCurrentFloor(building.getFloorNumber() - 1, gMap); + } else { + Log.w("TrajectoryMapFragment", "Floor Down Button: No building!"); + } + } + }); } /** * Initialize the map settings with the provided GoogleMap instance. - *

    - * The method sets basic map settings, initializes the indoor map manager, - * and creates an empty polyline for user movement tracking. - * The method also initializes the GNSS polyline for tracking GNSS path. - * The method sets the map type to Hybrid and initializes the map with these settings. + * + *

    The method sets basic map settings, initializes the indoor map manager, and creates an + * empty polyline for user movement tracking. The method also initializes the GNSS polyline for + * tracking GNSS path. The method sets the map type to Hybrid and initializes the map with these + * settings. * * @param map Google Map object */ - private void initMapSettings(GoogleMap map) { // Basic map settings map.getUiSettings().setCompassEnabled(true); @@ -240,77 +234,79 @@ private void initMapSettings(GoogleMap map) { indoorMapManager = new IndoorMapManager(map); // Initialize an empty polyline - polyline = map.addPolyline(new PolylineOptions() - .color(COLOUR_PATH_COLOUR) - .width(LINE_WEIGHT_PATH) - .zIndex(MAP_DRAWING_PRIORITY_MAX) - .add() // start empty - ); + polyline = + map.addPolyline( + new PolylineOptions() + .color(COLOUR_PATH_COLOUR) + .width(LINE_WEIGHT_PATH) + .zIndex(MAP_DRAWING_PRIORITY_MAX) + .add() // start empty + ); // GNSS path - gnssPolyline = map.addPolyline(new PolylineOptions() - .color(COLOUR_PATH_GNSS) - .width(LINE_WEIGHT_PATH) - .zIndex(MAP_DRAWING_PRIORITY_MAX) - .add() // start empty - ); + gnssPolyline = + map.addPolyline( + new PolylineOptions() + .color(COLOUR_PATH_GNSS) + .width(LINE_WEIGHT_PATH) + .zIndex(MAP_DRAWING_PRIORITY_MAX) + .add() // start empty + ); } /** * Initialize the map type spinner with the available map types. - *

    - * The spinner allows the user to switch between different map types - * (e.g. Hybrid, Normal, Satellite) to customize their map view. - * The spinner is populated with the available map types and listens - * for user selection to update the map accordingly. - * The map type is updated directly on the GoogleMap instance. - *

    - * Note: The spinner is initialized with the default map type (Hybrid). - * The map type is updated on user selection. - *

    - *

    - * @see com.google.android.gms.maps.GoogleMap The GoogleMap instance to update map type. + * + *

    The spinner allows the user to switch between different map types (e.g. Hybrid, Normal, + * Satellite) to customize their map view. The spinner is populated with the available map types + * and listens for user selection to update the map accordingly. The map type is updated + * directly on the GoogleMap instance. + * + *

    Note: The spinner is initialized with the default map type (Hybrid). The map type is + * updated on user selection. + * + * @see com.google.android.gms.maps.GoogleMap The GoogleMap instance to update map type. */ private void initMapTypeSpinner() { if (switchMapSpinner == null) return; - String[] maps = new String[]{ - getString(R.string.hybrid), - getString(R.string.normal), - getString(R.string.satellite) - }; - ArrayAdapter adapter = new ArrayAdapter<>( - requireContext(), - android.R.layout.simple_spinner_dropdown_item, - maps - ); + String[] maps = + new String[] { + getString(R.string.hybrid), + getString(R.string.normal), + getString(R.string.satellite) + }; + ArrayAdapter adapter = + new ArrayAdapter<>( + requireContext(), android.R.layout.simple_spinner_dropdown_item, maps); switchMapSpinner.setAdapter(adapter); - switchMapSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, - int position, long id) { - if (gMap == null) return; - switch (position){ - case 0: - gMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); - break; - case 1: - gMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); - break; - case 2: - gMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); - break; - } - } - @Override - public void onNothingSelected(AdapterView parent) {} - }); + switchMapSpinner.setOnItemSelectedListener( + new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected( + AdapterView parent, View view, int position, long id) { + if (gMap == null) return; + switch (position) { + case 0: + gMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); + break; + case 1: + gMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); + break; + case 2: + gMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); + break; + } + } + + @Override + public void onNothingSelected(AdapterView parent) {} + }); } /** - * Update the user's current location on the map, - * create or move orientation marker, and - * append to polyline if the user actually moved. + * Update the user's current location on the map, create or move orientation marker, and append + * to polyline if the user actually moved. * * @param newLocation The new location to plot. * @param orientation The user’s heading (e.g. from sensor fusion). @@ -324,32 +320,30 @@ public void updateUserLocation(@NonNull LatLng newLocation, float orientation) { // If no marker, create it if (orientationMarker == null) { - orientationMarker = gMap.addMarker(new MarkerOptions() - .position(newLocation) - .flat(true) - .title("Current Position") - .icon(BitmapDescriptorFactory.fromBitmap( - UtilFunctions.getBitmapFromVector( - requireContext(), - R.drawable.ic_baseline_navigation_24) - ) - ) - ); + orientationMarker = + gMap.addMarker( + new MarkerOptions() + .position(newLocation) + .flat(true) + .title("Current Position") + .icon( + BitmapDescriptorFactory.fromBitmap( + UtilFunctions.getBitmapFromVector( + requireContext(), + R.drawable + .ic_baseline_navigation_24)))); // Refocus the camera to current position // (Currently runs once at start of recording) // TODO - Implement UI toggle for this feature - if (oldLocation == null){ - gMap.moveCamera(CameraUpdateFactory.newLatLngZoom( - newLocation, - ZOOM_LEVEL_DEFAULT) - ); + if (oldLocation == null) { + gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(newLocation, ZOOM_LEVEL_DEFAULT)); } } else { // Update marker position + orientation orientationMarker.setPosition(newLocation); orientationMarker.setRotation(orientation); // Move camera a bit -// gMap.moveCamera(CameraUpdateFactory.newLatLng(newLocation)); + // gMap.moveCamera(CameraUpdateFactory.newLatLng(newLocation)); } // Extend polyline if movement occurred @@ -362,66 +356,68 @@ public void updateUserLocation(@NonNull LatLng newLocation, float orientation) { // Update indoor map overlay to draw all possible building outlines if (indoorMapManager != null) { indoorMapManager.setCurrentLocation(newLocation); - for (Building building : indoorMapManager.getAllBuildings()){ + for (Building building : indoorMapManager.getAllBuildings()) { building.drawBuildingOutline(gMap); - if (building.getIsInsideBuilding()){ + if (building.getIsInsideBuilding()) { setFloorControlsVisibility(View.VISIBLE); } else { setFloorControlsVisibility(View.GONE); } // Preview floor plan by clicking on building, and associate route - gMap.setOnPolygonClickListener(new GoogleMap.OnPolygonClickListener() { - @Override - public void onPolygonClick(@NonNull Polygon polygon) { - sensorFusion.setCurrentBuilding(building.getName()); - - // Only show a preview of the building if not inside - if (building.getIsInsideBuilding()){ - return; - } - // Only show preview if floor plans are available - if (building.getFloorNames().isEmpty()){ - Log.w( - "TrajectoryMapFragment", - "Cannot show preview of " - + building.getName() - + " as there are no floor plans." - ); - return; - } - polygon = building.getBuildingOutline(); - int currentColour = polygon.getFillColor(); - switch (currentColour) { - case COLOUR_FLOOR_PLAN_FILL_TRANSPARENT -> - polygon.setFillColor(COLOUR_FLOOR_PLAN_FILL_PREVIEW); - case COLOUR_FLOOR_PLAN_FILL_PREVIEW -> - polygon.setFillColor(COLOUR_FLOOR_PLAN_FILL_TRANSPARENT); - } - // Display floor plan of ground floor - int groundFloorIndex = building.getGroundFloorIndex(); - List elements = building.getFloorPlanElements( - building.getFloorNames().get(groundFloorIndex) - ); - if (elements == null) { - building.editFloorPlan(gMap, groundFloorIndex, true); - } else { - for (Polyline element : elements) { - element.setVisible(!element.isVisible()); + gMap.setOnPolygonClickListener( + new GoogleMap.OnPolygonClickListener() { + @Override + public void onPolygonClick(@NonNull Polygon polygon) { + sensorFusion.setCurrentBuilding(building.getName()); + + // Only show a preview of the building if not inside + if (building.getIsInsideBuilding()) { + return; + } + // Only show preview if floor plans are available + if (building.getFloorNames().isEmpty()) { + Log.w( + "TrajectoryMapFragment", + "Cannot show preview of " + + building.getName() + + " as there are no floor plans."); + return; + } + polygon = building.getBuildingOutline(); + int currentColour = polygon.getFillColor(); + switch (currentColour) { + case COLOUR_FLOOR_PLAN_FILL_TRANSPARENT -> + polygon.setFillColor(COLOUR_FLOOR_PLAN_FILL_PREVIEW); + case COLOUR_FLOOR_PLAN_FILL_PREVIEW -> + polygon.setFillColor( + COLOUR_FLOOR_PLAN_FILL_TRANSPARENT); + } + // Display floor plan of ground floor + int groundFloorIndex = building.getGroundFloorIndex(); + List elements = + building.getFloorPlanElements( + building.getFloorNames().get(groundFloorIndex)); + if (elements == null) { + building.editFloorPlan(gMap, groundFloorIndex, true); + } else { + for (Polyline element : elements) { + element.setVisible(!element.isVisible()); + } + } + // Flag to not overwrite preview + building.setIsPreviewingFloorPlan( + !building.getIsPreviowingFloorPlan()); } - } - // Flag to not overwrite preview - building.setIsPreviewingFloorPlan(!building.getIsPreviowingFloorPlan()); - } - }); + }); } } // AutoFloor elevation check - if (autoFloorSwitch.isChecked()){ + if (autoFloorSwitch.isChecked()) { Building building = indoorMapManager.getCurrentBuilding(currentLocation); - if (building != null){ + if (building != null) { float elevationVal = sensorFusion.getElevation(); - int newFloor = (int)(elevationVal/building.getFloorHeight()); + int newFloor = (int) (elevationVal / building.getFloorHeight()); building.setCurrentFloor(newFloor, gMap); } } @@ -429,12 +425,12 @@ public void onPolygonClick(@NonNull Polygon polygon) { /** * Set the initial camera position for the map. - *

    - * The method sets the initial camera position for the map when it is first loaded. - * If the map is already ready, the camera is moved immediately. - * If the map is not ready, the camera position is stored until the map is ready. - * The method also tracks if there is a pending camera move. - *

    + * + *

    The method sets the initial camera position for the map when it is first loaded. If the + * map is already ready, the camera is moved immediately. If the map is not ready, the camera + * position is stored until the map is ready. The method also tracks if there is a pending + * camera move. + * * @param startLocation The initial camera position to set. */ public void setInitialCameraPosition(@NonNull LatLng startLocation) { @@ -448,24 +444,23 @@ public void setInitialCameraPosition(@NonNull LatLng startLocation) { } } - /** - * Adds a Timed marker to the map - */ + /** Adds a Timed marker to the map */ public void addTimeMarker(LatLng pos, String timeLabel, int number) { if (gMap == null || pos == null) return; - Marker marker = gMap.addMarker(new MarkerOptions() - .position(pos) - .title("Test Point #" + number) - .snippet("Time: " + timeLabel) - .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)) - ); + Marker marker = + gMap.addMarker( + new MarkerOptions() + .position(pos) + .title("Test Point #" + number) + .snippet("Time: " + timeLabel) + .icon( + BitmapDescriptorFactory.defaultMarker( + BitmapDescriptorFactory.HUE_GREEN))); markers.add(marker); } - /** - * Clears Markers From Maps - */ + /** Clears Markers From Maps */ public void removeAllMarkers() { for (Marker marker : markers) { if (marker != null) { @@ -477,28 +472,28 @@ public void removeAllMarkers() { /** * Get the current user location on the map. + * * @return The current user location as a LatLng object. */ public LatLng getCurrentLocation() { return currentLocation; } - /** - * Called when we want to set or update the GNSS marker position - */ + /** Called when we want to set or update the GNSS marker position */ public void updateGNSS(@NonNull LatLng gnssLocation) { if (gMap == null) return; if (!isGnssOn) return; if (gnssMarker == null) { // Create the GNSS marker for the first time - gnssMarker = gMap.addMarker(new MarkerOptions() - .position(gnssLocation) - .title("GNSS Position") - .icon(BitmapDescriptorFactory.defaultMarker( - BitmapDescriptorFactory.HUE_AZURE) - ) - ); + gnssMarker = + gMap.addMarker( + new MarkerOptions() + .position(gnssLocation) + .title("GNSS Position") + .icon( + BitmapDescriptorFactory.defaultMarker( + BitmapDescriptorFactory.HUE_AZURE))); lastGnssLocation = gnssLocation; } else { // Move existing GNSS marker @@ -514,10 +509,7 @@ public void updateGNSS(@NonNull LatLng gnssLocation) { } } - - /** - * Remove GNSS marker if user toggles it off - */ + /** Remove GNSS marker if user toggles it off */ public void clearGNSS() { if (gnssMarker != null) { gnssMarker.remove(); @@ -525,9 +517,7 @@ public void clearGNSS() { } } - /** - * Whether user is currently showing GNSS or not - */ + /** Whether user is currently showing GNSS or not */ public boolean isGnssEnabled() { return isGnssOn; } @@ -537,7 +527,7 @@ private void setFloorControlsVisibility(int visibility) { floorDownButton.setVisibility(visibility); // When entering building for first time, default to auto floor enabled - if (autoFloorSwitch.getVisibility() == View.GONE){ + if (autoFloorSwitch.getVisibility() == View.GONE) { autoFloorSwitch.setChecked(true); } autoFloorSwitch.setVisibility(visibility); @@ -561,46 +551,43 @@ public void clearMapAndReset() { gnssMarker = null; } lastGnssLocation = null; - currentLocation = null; + currentLocation = null; // Re-create empty polylines with your chosen colors if (gMap != null) { - polyline = gMap.addPolyline(new PolylineOptions() - .color(COLOUR_PATH_COLOUR) - .width(LINE_WEIGHT_PATH) - .zIndex(MAP_DRAWING_PRIORITY_MAX) - .add() - ); - gnssPolyline = gMap.addPolyline(new PolylineOptions() - .color(COLOUR_PATH_GNSS) - .width(LINE_WEIGHT_PATH) - .zIndex(MAP_DRAWING_PRIORITY_MAX) - .add() - ); + polyline = + gMap.addPolyline( + new PolylineOptions() + .color(COLOUR_PATH_COLOUR) + .width(LINE_WEIGHT_PATH) + .zIndex(MAP_DRAWING_PRIORITY_MAX) + .add()); + gnssPolyline = + gMap.addPolyline( + new PolylineOptions() + .color(COLOUR_PATH_GNSS) + .width(LINE_WEIGHT_PATH) + .zIndex(MAP_DRAWING_PRIORITY_MAX) + .add()); } } /** - * Add building from the server to reference list, and - * set building as campaign source for recording + * Add building from the server to reference list, and set building as campaign source for + * recording * * @param name The name of the building * @param outline Points representing outline of building - * @param floorPlans MultiPolygons (or MultiLineString) - * of overlays for floor plans - * */ + * @param floorPlans MultiPolygons (or MultiLineString) of overlays for floor plans + */ public void addBuilding( - String name, - List outline, - Map> floorPlans - ) { + String name, List outline, Map> floorPlans) { if (!indoorMapManager.getAllBuildingNames().contains(name)) { indoorMapManager.addBuilding(new Building(name, outline, floorPlans)); } else { Log.w( - "TrajectoryMapFragment", - "Building " + name + " already exists. Skipping creation." - ); + "TrajectoryMapFragment", + "Building " + name + " already exists. Skipping creation."); } sensorFusion.setCurrentBuilding(name); } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/UploadFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/UploadFragment.java index a056d46e..56bb2526 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/UploadFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/UploadFragment.java @@ -2,32 +2,28 @@ import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_M_HOUSE; +import android.os.Build; import android.os.Bundle; +import android.os.Environment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import android.os.Environment; -import android.os.Build; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.data.remote.ServerCommunications; -import com.openpositioning.PositionMe.presentation.viewitems.UploadViewHolder; import com.openpositioning.PositionMe.presentation.viewitems.DownloadClickListener; import com.openpositioning.PositionMe.presentation.viewitems.UploadListAdapter; - +import com.openpositioning.PositionMe.presentation.viewitems.UploadViewHolder; import java.io.File; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; - /** * A simple {@link Fragment} subclass. Displays trajectories that were saved locally because no * acceptable network was available to upload it when the recording finished. Trajectories can be @@ -48,20 +44,15 @@ public class UploadFragment extends Fragment { // List of files saved locally private List localTrajectories; - /** - * Public default constructor, empty. - */ + /** Public default constructor, empty. */ public UploadFragment() { // Required empty public constructor } - /** - * {@inheritDoc} - * Initialises new Server Communication instance with the context, and finds all the files that - * match the trajectory naming scheme in local storage. + * {@inheritDoc} Initialises new Server Communication instance with the context, and finds all + * the files that match the trajectory naming scheme in local storage. */ - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -81,36 +72,37 @@ public void onCreate(Bundle savedInstanceState) { trajectoriesDir = getActivity().getFilesDir(); } - localTrajectories = Stream.of(trajectoriesDir.listFiles((file, name) -> - name.contains("trajectory_") && name.endsWith(".txt"))) - .filter(file -> !file.isDirectory()) - .collect(Collectors.toList()); + localTrajectories = + Stream.of( + trajectoriesDir.listFiles( + (file, name) -> + name.contains("trajectory_") + && name.endsWith(".txt"))) + .filter(file -> !file.isDirectory()) + .collect(Collectors.toList()); } - /** - * {@inheritDoc} - * Sets the title in the action bar to "Upload" - */ + /** {@inheritDoc} Sets the title in the action bar to "Upload" */ @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getActivity().setTitle("Upload"); // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_upload, container, false); } /** - * {@inheritDoc} - * Checks if there are locally saved trajectories. If there are none, it displays a text message - * notifying the user. If there are local files, the text is hidden, and instead a Recycler View - * is displayed showing all the trajectories. - *

    - * A Layout Manager is registered, and the adapter and list of files passed. An onClick listener - * is set up to upload the file when clicked and remove it from local storage. + * {@inheritDoc} Checks if there are locally saved trajectories. If there are none, it displays + * a text message notifying the user. If there are local files, the text is hidden, and instead + * a Recycler View is displayed showing all the trajectories. + * + *

    A Layout Manager is registered, and the adapter and list of files passed. An onClick + * listener is set up to upload the file when clicked and remove it from local storage. * * @see UploadListAdapter list adapter for the recycler view. * @see UploadViewHolder view holder for the recycler view. - * @see com.openpositioning.PositionMe.R.layout#item_upload_card_view xml view for list elements. + * @see com.openpositioning.PositionMe.R.layout#item_upload_card_view xml view for list + * elements. */ @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { @@ -119,11 +111,10 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat this.emptyNotice = view.findViewById(R.id.emptyUpload); this.uploadList = view.findViewById(R.id.uploadTrajectories); // Check if there are locally saved trajectories - if(localTrajectories.isEmpty()) { + if (localTrajectories.isEmpty()) { uploadList.setVisibility(View.GONE); emptyNotice.setVisibility(View.VISIBLE); - } - else { + } else { uploadList.setVisibility(View.VISIBLE); emptyNotice.setVisibility(View.GONE); @@ -131,27 +122,27 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat LinearLayoutManager manager = new LinearLayoutManager(getActivity()); uploadList.setLayoutManager(manager); uploadList.setHasFixedSize(true); - listAdapter = new UploadListAdapter( - getActivity(), - localTrajectories, - new DownloadClickListener() - { - /** - * {@inheritDoc} - * Upload the trajectory at the clicked position, remove it from the recycler view - * and the local list. - */ - @Override - public void onPositionClicked(int position) { - File trajectory = localTrajectories.get(position); - - // TODO - Replace static test value with dynamic building name - serverCommunications.uploadLocalTrajectory(trajectory, BUILDING_NAME_M_HOUSE); -// localTrajectories.remove(position); -// listAdapter.notifyItemRemoved(position); - } - }); + listAdapter = + new UploadListAdapter( + getActivity(), + localTrajectories, + new DownloadClickListener() { + /** + * {@inheritDoc} Upload the trajectory at the clicked position, + * remove it from the recycler view and the local list. + */ + @Override + public void onPositionClicked(int position) { + File trajectory = localTrajectories.get(position); + + // TODO - Replace static test value with dynamic building name + serverCommunications.uploadLocalTrajectory( + trajectory, BUILDING_NAME_M_HOUSE); + // localTrajectories.remove(position); + // listAdapter.notifyItemRemoved(position); + } + }); uploadList.setAdapter(listAdapter); } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java index f4700231..0066a637 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleListAdapter.java @@ -3,13 +3,10 @@ import android.content.Context; import android.view.LayoutInflater; import android.view.ViewGroup; - import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.sensors.BleDevice; - import java.util.List; /** @@ -17,7 +14,6 @@ * * @see BleViewHolder corresponding View Holder class * @see com.openpositioning.PositionMe.R.layout#item_ble_card_view xml layout file - * * @author Vlad Stratulat */ public class BleListAdapter extends RecyclerView.Adapter { @@ -28,9 +24,8 @@ public class BleListAdapter extends RecyclerView.Adapter { /** * Default public constructor with context for inflating views and list to be displayed. * - * @param context application context to enable inflating views used in the list. - * @param items list of BleDevice objects to be displayed in the list. - * + * @param context application context to enable inflating views used in the list. + * @param items list of BleDevice objects to be displayed in the list. * @see BleDevice the data class. */ public BleListAdapter(Context context, List items) { @@ -40,17 +35,19 @@ public BleListAdapter(Context context, List items) { /** * {@inheritDoc} + * * @see com.openpositioning.PositionMe.R.layout#item_ble_card_view xml layout file */ @NonNull @Override public BleViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new BleViewHolder(LayoutInflater.from(context).inflate(R.layout.item_ble_card_view, parent, false)); + return new BleViewHolder( + LayoutInflater.from(context).inflate(R.layout.item_ble_card_view, parent, false)); } /** - * {@inheritDoc} - * Formats and assigns the data fields from the BleDevice object to the TextView fields. + * {@inheritDoc} Formats and assigns the data fields from the BleDevice object to the TextView + * fields. * * @see BleDevice data class * @see com.openpositioning.PositionMe.R.string formatting for strings. @@ -78,10 +75,9 @@ public void onBindViewHolder(@NonNull BleViewHolder holder, int position) { } /** - * {@inheritDoc} - * Number of BleDevice objects. + * {@inheritDoc} Number of BleDevice objects. * - * @return number of items in the list. + * @return number of items in the list. */ @Override public int getItemCount() { diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleViewHolder.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleViewHolder.java index e83b0584..9d722d62 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleViewHolder.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/BleViewHolder.java @@ -2,10 +2,8 @@ import android.view.View; import android.widget.TextView; - import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; /** @@ -13,7 +11,6 @@ * * @see BleListAdapter the corresponding list adapter. * @see com.openpositioning.PositionMe.R.layout#item_ble_card_view xml layout file - * * @author Vlad Stratulat */ public class BleViewHolder extends RecyclerView.ViewHolder { @@ -23,8 +20,7 @@ public class BleViewHolder extends RecyclerView.ViewHolder { TextView rssi; /** - * {@inheritDoc} - * Assign TextView fields corresponding to BleDevice attributes. + * {@inheritDoc} Assign TextView fields corresponding to BleDevice attributes. * * @see com.openpositioning.PositionMe.sensors.BleDevice the data class */ diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/DownloadClickListener.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/DownloadClickListener.java index 202f4a43..74ae1484 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/DownloadClickListener.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/DownloadClickListener.java @@ -10,8 +10,7 @@ public interface DownloadClickListener { /** * Function executed when the item is clicked. * - * @param position integer position of the item in the list. + * @param position integer position of the item in the list. */ void onPositionClicked(int position); - } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/SensorInfoListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/SensorInfoListAdapter.java index 4315328d..35c1676f 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/SensorInfoListAdapter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/SensorInfoListAdapter.java @@ -3,13 +3,10 @@ import android.content.Context; import android.view.LayoutInflater; import android.view.ViewGroup; - import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.sensors.SensorInfo; - import java.util.List; import java.util.Objects; @@ -18,7 +15,6 @@ * * @see SensorInfoViewHolder corresponding View Holder class * @see com.openpositioning.PositionMe.R.layout#item_sensorinfo_card_view xml layout file - * * @author Mate Stodulka */ public class SensorInfoListAdapter extends RecyclerView.Adapter { @@ -29,9 +25,8 @@ public class SensorInfoListAdapter extends RecyclerView.Adapter sensorInfoList) { @@ -41,17 +36,20 @@ public SensorInfoListAdapter(Context context, List sensorInfoList) { /** * {@inheritDoc} + * * @see com.openpositioning.PositionMe.R.layout#item_sensorinfo_card_view xml layout file */ @NonNull @Override public SensorInfoViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new SensorInfoViewHolder(LayoutInflater.from(context).inflate(R.layout.item_sensorinfo_card_view, parent, false)); + return new SensorInfoViewHolder( + LayoutInflater.from(context) + .inflate(R.layout.item_sensorinfo_card_view, parent, false)); } /** - * {@inheritDoc} - * Formats and assigns the data fields from the SensorInfo object to the TextView fields. + * {@inheritDoc} Formats and assigns the data fields from the SensorInfo object to the TextView + * fields. * * @see SensorInfo data class * @see com.openpositioning.PositionMe.R.string formatting for strings. @@ -61,20 +59,29 @@ public SensorInfoViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int vi public void onBindViewHolder(@NonNull SensorInfoViewHolder holder, int position) { holder.name.setText(sensorInfoList.get(position).getName()); - String vendorString = context.getString(R.string.vendor, sensorInfoList.get(position).getVendor()); + String vendorString = + context.getString(R.string.vendor, sensorInfoList.get(position).getVendor()); holder.vendor.setText(vendorString); - String resolutionString = context.getString(R.string.resolution, String.format("%.03g", sensorInfoList.get(position).getResolution())); + String resolutionString = + context.getString( + R.string.resolution, + String.format("%.03g", sensorInfoList.get(position).getResolution())); holder.resolution.setText(resolutionString); - String powerString = context.getString(R.string.power, Objects.toString(sensorInfoList.get(position).getPower(), "N/A")); + String powerString = + context.getString( + R.string.power, + Objects.toString(sensorInfoList.get(position).getPower(), "N/A")); holder.power.setText(powerString); - String versionString = context.getString(R.string.version, Objects.toString(sensorInfoList.get(position).getVersion(), "N/A")); + String versionString = + context.getString( + R.string.version, + Objects.toString(sensorInfoList.get(position).getVersion(), "N/A")); holder.version.setText(versionString); } /** - * {@inheritDoc} - * Number of SensorInfo objects. + * {@inheritDoc} Number of SensorInfo objects. * * @see SensorInfo */ diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/SensorInfoViewHolder.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/SensorInfoViewHolder.java index 469ec16e..f3d64182 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/SensorInfoViewHolder.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/SensorInfoViewHolder.java @@ -2,10 +2,8 @@ import android.view.View; import android.widget.TextView; - import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; /** @@ -13,7 +11,6 @@ * * @see SensorInfoListAdapter the corresponding list adapter. * @see com.openpositioning.PositionMe.R.layout#item_sensorinfo_card_view xml layout file - * * @author Mate Stodulka */ public class SensorInfoViewHolder extends RecyclerView.ViewHolder { @@ -22,8 +19,7 @@ public class SensorInfoViewHolder extends RecyclerView.ViewHolder { TextView name, vendor, resolution, power, version; /** - * {@inheritDoc} - * Assign TextView fields corresponding to SensorInfo attributes. + * {@inheritDoc} Assign TextView fields corresponding to SensorInfo attributes. * * @see com.openpositioning.PositionMe.sensors.SensorInfo the data class */ diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadListAdapter.java index 7de29c8a..27716f7a 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadListAdapter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadListAdapter.java @@ -1,46 +1,42 @@ package com.openpositioning.PositionMe.presentation.viewitems; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Set; -import java.util.Iterator; -import java.io.File; -import java.io.FileReader; -import java.io.BufferedReader; - +import android.content.Context; import android.content.Intent; -import android.os.Handler; -import android.os.Looper; import android.os.Environment; import android.os.FileObserver; -import android.content.Context; +import android.os.Handler; +import android.os.Looper; import android.util.Log; import android.view.LayoutInflater; import android.view.ViewGroup; - import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; - import com.google.android.material.button.MaterialButton; import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.data.remote.ServerCommunications; import com.openpositioning.PositionMe.presentation.activity.ReplayActivity; import com.openpositioning.PositionMe.presentation.fragment.FilesFragment; - -import org.json.JSONObject; - +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; +import org.json.JSONObject; /** - * Adapter used for displaying trajectory metadata in a RecyclerView list. - * This adapter binds trajectory metadata from the server to individual view items. - * The download status is indicated via a button with different icons. - * The adapter also listens for file changes using FileObserver to update the download records in real time. - * A local set of "downloading" trajectory IDs is maintained to support simultaneous downloads. + * Adapter used for displaying trajectory metadata in a RecyclerView list. This adapter binds + * trajectory metadata from the server to individual view items. The download status is indicated + * via a button with different icons. The adapter also listens for file changes using FileObserver + * to update the download records in real time. A local set of "downloading" trajectory IDs is + * maintained to support simultaneous downloads. + * * @see TrajDownloadViewHolder for the corresponding view holder. * @see FilesFragment for details on how the data is generated. * @see ServerCommunications for where the response items are received. @@ -48,7 +44,8 @@ public class TrajDownloadListAdapter extends RecyclerView.Adapter { // Date-time formatter used to format date and time. - private static final DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + private static final DateTimeFormatter dateFormat = + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); private final Context context; private final List> responseItems; @@ -63,11 +60,14 @@ public class TrajDownloadListAdapter extends RecyclerView.Adapter> responseItems, DownloadClickListener listener) { + public TrajDownloadListAdapter( + Context context, + List> responseItems, + DownloadClickListener listener) { this.context = context; this.responseItems = responseItems; this.listener = listener; @@ -78,18 +78,21 @@ public TrajDownloadListAdapter(Context context, List> respon } /** - * Loads the local download records from storage. - * The records are stored in a JSON file located in the app-specific Downloads directory. - * After loading, any trajectory IDs that have now finished downloading are removed - * from the downloading set. + * Loads the local download records from storage. The records are stored in a JSON file located + * in the app-specific Downloads directory. After loading, any trajectory IDs that have now + * finished downloading are removed from the downloading set. */ private void loadDownloadRecords() { try { - File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "download_records.json"); + File file = + new File( + context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), + "download_records.json"); if (file.exists()) { // Read the file line by line to reduce memory usage. StringBuilder jsonBuilder = new StringBuilder(); - try (BufferedReader reader = new BufferedReader(new FileReader(file), 8192)) { // Increase buffer size + try (BufferedReader reader = + new BufferedReader(new FileReader(file), 8192)) { // Increase buffer size String line; while ((line = reader.readLine()) != null) { jsonBuilder.append(line); @@ -113,17 +116,23 @@ private void loadDownloadRecords() { ServerCommunications.downloadRecords.put(id, recordDetails); } - System.out.println("Download records loaded: " + ServerCommunications.downloadRecords); + System.out.println( + "Download records loaded: " + ServerCommunications.downloadRecords); - // Remove any IDs from the downloading set that are now present in the download records. + // Remove any IDs from the downloading set that are now present in the download + // records. // This ensures the "downloading" state is removed when the download completes. - downloadingTrajIds.removeIf(id -> ServerCommunications.downloadRecords.containsKey(id)); + downloadingTrajIds.removeIf( + id -> ServerCommunications.downloadRecords.containsKey(id)); // Refresh the RecyclerView UI on the main thread. - new Handler(Looper.getMainLooper()).post(() -> { - notifyDataSetChanged(); - System.out.println("RecyclerView fully refreshed after loading records."); - }); + new Handler(Looper.getMainLooper()) + .post( + () -> { + notifyDataSetChanged(); + System.out.println( + "RecyclerView fully refreshed after loading records."); + }); } else { System.out.println("Download records file not found."); } @@ -142,44 +151,49 @@ private void initFileObserver() { return; } // Create a FileObserver for the directory where the file is located. - fileObserver = new FileObserver(downloadsFolder.getAbsolutePath(), FileObserver.MODIFY) { - @Override - public void onEvent(int event, String path) { - // Only act if the modified file is "download_records.json". - if (path != null && path.equals("download_records.json")) { - Log.i("FileObserver", "download_records.json has been modified."); - // On file modification, load the records and update the UI on the main thread. - new Handler(Looper.getMainLooper()).post(() -> { - loadDownloadRecords(); - }); - } - } - }; + fileObserver = + new FileObserver(downloadsFolder.getAbsolutePath(), FileObserver.MODIFY) { + @Override + public void onEvent(int event, String path) { + // Only act if the modified file is "download_records.json". + if (path != null && path.equals("download_records.json")) { + Log.i("FileObserver", "download_records.json has been modified."); + // On file modification, load the records and update the UI on the main + // thread. + new Handler(Looper.getMainLooper()) + .post( + () -> { + loadDownloadRecords(); + }); + } + } + }; fileObserver.startWatching(); } /** * Creates a new view holder for a trajectory item. * - * @param parent The parent view group. + * @param parent The parent view group. * @param viewType The view type. * @return A new instance of TrajDownloadViewHolder. */ @NonNull @Override public TrajDownloadViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new TrajDownloadViewHolder(LayoutInflater.from(context) - .inflate(R.layout.item_trajectorycard_view, parent, false), listener); + return new TrajDownloadViewHolder( + LayoutInflater.from(context) + .inflate(R.layout.item_trajectorycard_view, parent, false), + listener); } /** - * Binds data to the view holder. - * Formats and assigns trajectory metadata fields to the corresponding views. - * The button state is determined as follows: - * - If the trajectory is present in the download records, it is set as "downloaded". - * - Else if the trajectory is in the downloading set, it is set as "downloading". - * - Otherwise, it is set as "not downloaded". - * @param holder The view holder to bind data to. + * Binds data to the view holder. Formats and assigns trajectory metadata fields to the + * corresponding views. The button state is determined as follows: - If the trajectory is + * present in the download records, it is set as "downloaded". - Else if the trajectory is in + * the downloading set, it is set as "downloading". - Otherwise, it is set as "not downloaded". + * + * @param holder The view holder to bind data to. * @param position The position of the item in the list. */ @Override @@ -198,11 +212,8 @@ public void onBindViewHolder(@NonNull TrajDownloadViewHolder holder, int positio // Parse and format the submission date. String dateSubmittedStr = responseItems.get(position).get("date_submitted"); assert dateSubmittedStr != null; - holder.getTrajDate().setText( - dateFormat.format( - LocalDateTime.parse(dateSubmittedStr.split("\\.")[0]) - ) - ); + holder.getTrajDate() + .setText(dateFormat.format(LocalDateTime.parse(dateSubmittedStr.split("\\.")[0]))); // Determine if the trajectory is already downloaded by checking the records. JSONObject recordDetails = ServerCommunications.downloadRecords.get(id); @@ -213,7 +224,10 @@ public void onBindViewHolder(@NonNull TrajDownloadViewHolder holder, int positio try { String fileName = recordDetails.optString("file_name", null); if (fileName != null) { - File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), fileName); + File file = + new File( + context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), + fileName); filePath = file.getAbsolutePath(); } // Set the button state to "downloaded". @@ -234,26 +248,29 @@ public void onBindViewHolder(@NonNull TrajDownloadViewHolder holder, int positio final String finalFilePath = filePath; // Set the click listener for the download button. - holder.downloadButton.setOnClickListener(v -> { - String trajId = responseItems.get(position).get("id"); - - if (finalMatched) { - // If the item is already downloaded, start ReplayActivity to display the trajectory. - if (finalFilePath != null) { - Intent intent = new Intent(context, ReplayActivity.class); - intent.putExtra(ReplayActivity.EXTRA_TRAJECTORY_FILE_PATH, finalFilePath); - context.startActivity(intent); - } - } else { - // If the item is not downloaded, trigger the download action. - listener.onPositionClicked(position); - // Mark the trajectory as downloading. - downloadingTrajIds.add(trajId); - // Immediately update the button state to "downloading". - setButtonState(holder.downloadButton, 2); - // The FileObserver will update the UI when the file changes. - } - }); + holder.downloadButton.setOnClickListener( + v -> { + String trajId = responseItems.get(position).get("id"); + + if (finalMatched) { + // If the item is already downloaded, start ReplayActivity to display the + // trajectory. + if (finalFilePath != null) { + Intent intent = new Intent(context, ReplayActivity.class); + intent.putExtra( + ReplayActivity.EXTRA_TRAJECTORY_FILE_PATH, finalFilePath); + context.startActivity(intent); + } + } else { + // If the item is not downloaded, trigger the download action. + listener.onPositionClicked(position); + // Mark the trajectory as downloading. + downloadingTrajIds.add(trajId); + // Immediately update the button state to "downloading". + setButtonState(holder.downloadButton, 2); + // The FileObserver will update the UI when the file changes. + } + }); holder.downloadButton.invalidate(); } @@ -272,24 +289,24 @@ public int getItemCount() { * Sets the appearance of the button based on its state. * * @param button The MaterialButton to update. - * @param state The state of the button: - * 0 - Not downloaded, - * 1 - Downloaded, - * 2 - Downloading. + * @param state The state of the button: 0 - Not downloaded, 1 - Downloaded, 2 - Downloading. */ private void setButtonState(MaterialButton button, int state) { if (state == 1) { button.setIconResource(R.drawable.ic_baseline_play_circle_filled_24); button.setIconTintResource(R.color.md_theme_onPrimary); - button.setBackgroundTintList(ContextCompat.getColorStateList(context, R.color.md_theme_primary)); + button.setBackgroundTintList( + ContextCompat.getColorStateList(context, R.color.md_theme_primary)); } else if (state == 2) { button.setIconResource(R.drawable.baseline_data_usage_24); button.setIconTintResource(R.color.md_theme_onPrimary); - button.setBackgroundTintList(ContextCompat.getColorStateList(context, R.color.goldYellow)); + button.setBackgroundTintList( + ContextCompat.getColorStateList(context, R.color.goldYellow)); } else { button.setIconResource(R.drawable.ic_baseline_download_24); button.setIconTintResource(R.color.md_theme_onSecondary); - button.setBackgroundTintList(ContextCompat.getColorStateList(context, R.color.md_theme_light_primary)); + button.setBackgroundTintList( + ContextCompat.getColorStateList(context, R.color.md_theme_light_primary)); } } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadViewHolder.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadViewHolder.java index af14249f..5427e3a0 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadViewHolder.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadViewHolder.java @@ -2,14 +2,11 @@ import android.view.View; import android.widget.TextView; - import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; - import com.google.android.material.button.MaterialButton; import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.presentation.fragment.FilesFragment; - import java.lang.ref.WeakReference; /** @@ -17,10 +14,10 @@ * * @see TrajDownloadListAdapter the corresponding list adapter. * @see com.openpositioning.PositionMe.R.layout#item_trajectorycard_view xml layout file - * * @author Mate Stodulka */ -public class TrajDownloadViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { +public class TrajDownloadViewHolder extends RecyclerView.ViewHolder + implements View.OnClickListener { private final TextView trajId; private final TextView trajDate; @@ -28,8 +25,7 @@ public class TrajDownloadViewHolder extends RecyclerView.ViewHolder implements V private final WeakReference listenerReference; /** - * {@inheritDoc} - * Assign TextView fields corresponding to Trajectory metadata. + * {@inheritDoc} Assign TextView fields corresponding to Trajectory metadata. * * @param listener DownloadClickListener to enable acting on clicks on items. * @see FilesFragment generating the data and implementing the listener. @@ -44,23 +40,17 @@ public TrajDownloadViewHolder(@NonNull View itemView, DownloadClickListener list this.downloadButton.setOnClickListener(this); } - /** - * Public getter for trajId. - */ + /** Public getter for trajId. */ public TextView getTrajId() { return trajId; } - /** - * Public getter for trajDate. - */ + /** Public getter for trajDate. */ public TextView getTrajDate() { return trajDate; } - /** - * Calls the onPositionClick function on the listenerReference object. - */ + /** Calls the onPositionClick function on the listenerReference object. */ @Override public void onClick(View view) { listenerReference.get().onPositionClicked(getAdapterPosition()); diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadListAdapter.java index b2d28a94..a4dbeb80 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadListAdapter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadListAdapter.java @@ -4,13 +4,10 @@ import android.view.LayoutInflater; import android.view.ViewGroup; import android.widget.Toast; - import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.presentation.fragment.UploadFragment; - import java.io.File; import java.util.List; import java.util.regex.Matcher; @@ -21,7 +18,6 @@ * * @see UploadViewHolder corresponding View Holder class * @see com.openpositioning.PositionMe.R.layout#item_upload_card_view xml layout file - * * @author Mate Stodulka */ public class UploadListAdapter extends RecyclerView.Adapter { @@ -33,17 +29,13 @@ public class UploadListAdapter extends RecyclerView.Adapter { /** * Default public constructor with context for inflating views and list to be displayed. * - * @param context application context to enable inflating views used in the list. - * @param uploadItems List of trajectory Files found locally on the device. - * @param listener clickListener to download trajectories when clicked. - * + * @param context application context to enable inflating views used in the list. + * @param uploadItems List of trajectory Files found locally on the device. + * @param listener clickListener to download trajectories when clicked. * @see com.openpositioning.PositionMe.Traj protobuf objects exchanged with the server. */ public UploadListAdapter( - Context context, - List uploadItems, - DownloadClickListener listener - ) { + Context context, List uploadItems, DownloadClickListener listener) { this.context = context; this.uploadItems = uploadItems; this.listener = listener; @@ -58,15 +50,13 @@ public UploadListAdapter( @Override public UploadViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new UploadViewHolder( - LayoutInflater.from(context).inflate( - R.layout.item_upload_card_view, parent, false - ), listener - ); + LayoutInflater.from(context).inflate(R.layout.item_upload_card_view, parent, false), + listener); } /** - * {@inheritDoc} - * Formats and assigns the data fields from the local Trajectory Files object to the TextView fields. + * {@inheritDoc} Formats and assigns the data fields from the local Trajectory Files object to + * the TextView fields. * * @see UploadFragment finding the data from on local storage. * @see com.openpositioning.PositionMe.R.layout#item_upload_card_view xml layout file. @@ -82,33 +72,24 @@ public void onBindViewHolder(@NonNull UploadViewHolder holder, int position) { // Set click listener for the delete button holder.deletebutton.setOnClickListener(v -> deleteFileAtPosition(position)); - } - /** - * {@inheritDoc} - * Number of local files. - */ + /** {@inheritDoc} Number of local files. */ @Override public int getItemCount() { return uploadItems.size(); } - private void deleteFileAtPosition(int position) - { - if (position >= 0 && position < uploadItems.size()) - { + private void deleteFileAtPosition(int position) { + if (position >= 0 && position < uploadItems.size()) { File fileToDelete = uploadItems.get(position); - if (fileToDelete.exists() && fileToDelete.delete()) - { + if (fileToDelete.exists() && fileToDelete.delete()) { uploadItems.remove(position); notifyItemRemoved(position); notifyItemRangeChanged(position, uploadItems.size()); // Update subsequent items Toast.makeText(context, "File deleted successfully", Toast.LENGTH_SHORT).show(); - } - else - { + } else { Toast.makeText(context, "Failed to delete file", Toast.LENGTH_SHORT).show(); } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadViewHolder.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadViewHolder.java index e6068969..c43fff09 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadViewHolder.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadViewHolder.java @@ -3,14 +3,11 @@ import android.view.View; import android.widget.Button; import android.widget.TextView; - import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; - import com.google.android.material.button.MaterialButton; import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.presentation.fragment.UploadFragment; - import java.lang.ref.WeakReference; /** @@ -18,26 +15,22 @@ * * @see UploadListAdapter the corresponding list adapter. * @see com.openpositioning.PositionMe.R.layout#item_upload_card_view xml layout file - * * @author Mate Stodulka */ public class UploadViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { TextView trajId; TextView trajDate; - MaterialButton uploadButton; // Correct reference to MaterialButton + MaterialButton uploadButton; // Correct reference to MaterialButton // Weak reference to the click listener to enable garbage collection on recyclerview items private WeakReference listenerReference; public Button deletebutton; /** - * {@inheritDoc} - * Assign TextView fields corresponding to Trajectory file metadata. + * {@inheritDoc} Assign TextView fields corresponding to Trajectory file metadata. * * @param listener DownloadClickListener to enable acting on clicks on items. - * - * @see UploadFragment locating the data and implementing the - * listener. + * @see UploadFragment locating the data and implementing the listener. */ public UploadViewHolder(@NonNull View itemView, DownloadClickListener listener) { super(itemView); @@ -51,10 +44,7 @@ public UploadViewHolder(@NonNull View itemView, DownloadClickListener listener) this.deletebutton = itemView.findViewById(R.id.deletebutton); } - /** - * {@inheritDoc} - * Calls the onPositionClick function on the listenerReference object. - */ + /** {@inheritDoc} Calls the onPositionClick function on the listenerReference object. */ @Override public void onClick(View view) { listenerReference.get().onPositionClicked(getAdapterPosition()); diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java index 50f64c3d..92bf80f6 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiListAdapter.java @@ -3,13 +3,10 @@ import android.content.Context; import android.view.LayoutInflater; import android.view.ViewGroup; - import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.sensors.Wifi; - import java.util.List; /** @@ -17,7 +14,6 @@ * * @see WifiViewHolder corresponding View Holder class * @see com.openpositioning.PositionMe.R.layout#item_wifi_card_view xml layout file - * * @author Mate Stodulka */ public class WifiListAdapter extends RecyclerView.Adapter { @@ -28,9 +24,8 @@ public class WifiListAdapter extends RecyclerView.Adapter { /** * Default public constructor with context for inflating views and list to be displayed. * - * @param context application context to enable inflating views used in the list. - * @param items list of Wifi objects to be displayed in the list. - * + * @param context application context to enable inflating views used in the list. + * @param items list of Wifi objects to be displayed in the list. * @see Wifi the data class. */ public WifiListAdapter(Context context, List items) { @@ -40,17 +35,19 @@ public WifiListAdapter(Context context, List items) { /** * {@inheritDoc} + * * @see com.openpositioning.PositionMe.R.layout#item_wifi_card_view xml layout file */ @NonNull @Override public WifiViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new WifiViewHolder(LayoutInflater.from(context).inflate(R.layout.item_wifi_card_view,parent,false)); + return new WifiViewHolder( + LayoutInflater.from(context).inflate(R.layout.item_wifi_card_view, parent, false)); } /** - * {@inheritDoc} - * Formats and assigns the data fields from the Wifi object to the TextView fields. + * {@inheritDoc} Formats and assigns the data fields from the Wifi object to the TextView + * fields. * * @see Wifi data class * @see com.openpositioning.PositionMe.R.string formatting for strings. @@ -78,8 +75,7 @@ public void onBindViewHolder(@NonNull WifiViewHolder holder, int position) { } /** - * {@inheritDoc} - * Number of Wifi objects. + * {@inheritDoc} Number of Wifi objects. * * @see Wifi */ diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiViewHolder.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiViewHolder.java index 2a96903a..a5d7ef42 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiViewHolder.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/WifiViewHolder.java @@ -2,10 +2,8 @@ import android.view.View; import android.widget.TextView; - import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; - import com.openpositioning.PositionMe.R; /** @@ -13,7 +11,6 @@ * * @see WifiListAdapter the corresponding list adapter. * @see com.openpositioning.PositionMe.R.layout#item_wifi_card_view xml layout file - * * @author Mate Stodulka */ public class WifiViewHolder extends RecyclerView.ViewHolder { @@ -23,8 +20,7 @@ public class WifiViewHolder extends RecyclerView.ViewHolder { TextView level; /** - * {@inheritDoc} - * Assign TextView fields corresponding to Wifi attributes. + * {@inheritDoc} Assign TextView fields corresponding to Wifi attributes. * * @see com.openpositioning.PositionMe.sensors.Wifi the data class */ diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java index 16f29146..8b835a79 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java @@ -12,7 +12,6 @@ import android.content.pm.PackageManager; import android.os.ParcelUuid; import android.widget.Toast; - import java.util.ArrayList; import java.util.List; import java.util.Timer; @@ -21,23 +20,23 @@ /** * BLE data gathering and processing for fingerprinting. * - * Scans for nearby Bluetooth Low Energy beacons and devices, collecting MAC addresses, - * signal strength, and advertised data for positioning. + *

    Scans for nearby Bluetooth Low Energy beacons and devices, collecting MAC addresses, signal + * strength, and advertised data for positioning. * * @author Vlad Stratulat */ public class BleDataProcessor implements Observable { - //Time over which a new scan will be initiated (same as WiFi) + // Time over which a new scan will be initiated (same as WiFi) private static final long SCAN_INTERVAL = 5000; // Application context for handling permissions and BluetoothLeScanner instances private final Context context; // Bluetooth scanner for scanning devices via the android system private BluetoothLeScanner bleScanner; - //List of observers to be notified when changes are detected + // List of observers to be notified when changes are detected private ArrayList observers; - //List of nearby devices + // List of nearby devices private BleDevice[] bleData; // Timer object private Timer bleScanTimer; @@ -47,7 +46,11 @@ public BleDataProcessor(Context context) { this.observers = new ArrayList<>(); if (!hasPermission()) { - Toast.makeText(context, "Enable Nearby Devices / Location Permission", Toast.LENGTH_LONG).show(); + Toast.makeText( + context, + "Enable Nearby Devices / Location Permission", + Toast.LENGTH_LONG) + .show(); return; } @@ -70,70 +73,76 @@ public BleDataProcessor(Context context) { private boolean hasPermission() { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) { - return (context.checkSelfPermission(Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_GRANTED && - context.checkSelfPermission(Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED); + return (context.checkSelfPermission(Manifest.permission.BLUETOOTH_SCAN) + == PackageManager.PERMISSION_GRANTED + && context.checkSelfPermission(Manifest.permission.BLUETOOTH_CONNECT) + == PackageManager.PERMISSION_GRANTED); } else { - return (context.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED); + return (context.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED); } } - private final ScanCallback scanCallback = new ScanCallback() { - @Override - public void onBatchScanResults(List results) { - if (results.isEmpty() || !hasPermission()) { - return; - } + private final ScanCallback scanCallback = + new ScanCallback() { + @Override + public void onBatchScanResults(List results) { + if (results.isEmpty() || !hasPermission()) { + return; + } - // Process results - bleData = new BleDevice[results.size()]; - for (int i = 0; i < results.size(); i++) { - ScanResult scanResult = results.get(i); - bleData[i] = new BleDevice(); - bleData[i].setMacAddress(scanResult.getDevice().getAddress()); - bleData[i].setRssi(scanResult.getRssi()); - - if (hasPermission()) { - @SuppressLint("MissingPermission") - String name = scanResult.getDevice().getName(); - bleData[i].setName(name != null ? name : ""); - } - bleData[i].setTxPowerLevel(scanResult.getTxPower()); - - if (scanResult.getScanRecord() != null) { - List serviceUuids = scanResult.getScanRecord().getServiceUuids(); - if (serviceUuids != null && !serviceUuids.isEmpty()) { - String[] uuids = new String[serviceUuids.size()]; - for (int j = 0; j < serviceUuids.size(); j++) { - uuids[j] = serviceUuids.get(j).toString(); + // Process results + bleData = new BleDevice[results.size()]; + for (int i = 0; i < results.size(); i++) { + ScanResult scanResult = results.get(i); + bleData[i] = new BleDevice(); + bleData[i].setMacAddress(scanResult.getDevice().getAddress()); + bleData[i].setRssi(scanResult.getRssi()); + + if (hasPermission()) { + @SuppressLint("MissingPermission") + String name = scanResult.getDevice().getName(); + bleData[i].setName(name != null ? name : ""); + } + bleData[i].setTxPowerLevel(scanResult.getTxPower()); + + if (scanResult.getScanRecord() != null) { + List serviceUuids = + scanResult.getScanRecord().getServiceUuids(); + if (serviceUuids != null && !serviceUuids.isEmpty()) { + String[] uuids = new String[serviceUuids.size()]; + for (int j = 0; j < serviceUuids.size(); j++) { + uuids[j] = serviceUuids.get(j).toString(); + } + bleData[i].setServiceUuids(uuids); + } + + bleData[i].setManufacturerData( + scanResult.getScanRecord().getManufacturerSpecificData()); + bleData[i].setAdvertiseFlags( + scanResult.getScanRecord().getAdvertiseFlags()); } - bleData[i].setServiceUuids(uuids); } - bleData[i].setManufacturerData( - scanResult.getScanRecord().getManufacturerSpecificData()); - bleData[i].setAdvertiseFlags( - scanResult.getScanRecord().getAdvertiseFlags()); + notifyObservers(0); } - } - notifyObservers(0); - } - - @Override - public void onScanFailed(int errorCode) { - // Silent failure - } - }; + @Override + public void onScanFailed(int errorCode) { + // Silent failure + } + }; private void startBleScan() { if (!hasPermission() || bleScanner == null) { return; } - ScanSettings settings = new ScanSettings.Builder() - .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) - .setReportDelay(SCAN_INTERVAL) - .build(); + ScanSettings settings = + new ScanSettings.Builder() + .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) + .setReportDelay(SCAN_INTERVAL) + .build(); try { bleScanner.startScan(null, settings, scanCallback); @@ -144,12 +153,15 @@ private void startBleScan() { public void startListening() { this.bleScanTimer = new Timer(); - this.bleScanTimer.schedule(new TimerTask() { - @Override - public void run() { - startBleScan(); - } - }, 0, SCAN_INTERVAL); + this.bleScanTimer.schedule( + new TimerTask() { + @Override + public void run() { + startBleScan(); + } + }, + 0, + SCAN_INTERVAL); } public void stopListening() { @@ -176,4 +188,4 @@ public void notifyObservers(int idx) { o.update(bleData); } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDevice.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDevice.java index b95aaad2..05df51ec 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDevice.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDevice.java @@ -18,21 +18,59 @@ public class BleDevice { public BleDevice() {} - public String getMacAddress() { return macAddress; } - public int getRssi() { return rssi; } - public String getName() { return name; } - public int getTxPowerLevel() { return txPowerLevel; } - public int getAdvertiseFlags() { return advertiseFlags; } - public String[] getServiceUuids() { return serviceUuids; } - public SparseArray getManufacturerData() { return manufacturerData; } - - public void setMacAddress(String macAddress) { this.macAddress = macAddress; } - public void setRssi(int rssi) { this.rssi = rssi; } - public void setName(String name) { this.name = name; } - public void setTxPowerLevel(int txPowerLevel) { this.txPowerLevel = txPowerLevel; } - public void setAdvertiseFlags(int advertiseFlags) { this.advertiseFlags = advertiseFlags; } - public void setServiceUuids(String[] serviceUuids) { this.serviceUuids = serviceUuids; } + public String getMacAddress() { + return macAddress; + } + + public int getRssi() { + return rssi; + } + + public String getName() { + return name; + } + + public int getTxPowerLevel() { + return txPowerLevel; + } + + public int getAdvertiseFlags() { + return advertiseFlags; + } + + public String[] getServiceUuids() { + return serviceUuids; + } + + public SparseArray getManufacturerData() { + return manufacturerData; + } + + public void setMacAddress(String macAddress) { + this.macAddress = macAddress; + } + + public void setRssi(int rssi) { + this.rssi = rssi; + } + + public void setName(String name) { + this.name = name; + } + + public void setTxPowerLevel(int txPowerLevel) { + this.txPowerLevel = txPowerLevel; + } + + public void setAdvertiseFlags(int advertiseFlags) { + this.advertiseFlags = advertiseFlags; + } + + public void setServiceUuids(String[] serviceUuids) { + this.serviceUuids = serviceUuids; + } + public void setManufacturerData(SparseArray manufacturerData) { this.manufacturerData = manufacturerData; } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java index e5371a33..b0af8d0f 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java @@ -7,13 +7,12 @@ import android.location.LocationListener; import android.location.LocationManager; import android.widget.Toast; - import androidx.core.app.ActivityCompat; /** * Class for handling and recording location data. * - * The class is responsibly for handling location data from GNSS and cellular sources using the + *

    The class is responsibly for handling location data from GNSS and cellular sources using the * Android LocationManager class. * * @author Virginia Cangelosi @@ -27,21 +26,19 @@ public class GNSSDataProcessor { // Location listener to receive the location data broadcast by the system private LocationListener locationListener; - /** * Public default constructor of the GNSSDataProcessor class. * - * The constructor saves the context, checks for permissions to use the location services, + *

    The constructor saves the context, checks for permissions to use the location services, * creates an instance of the shared preferences to access settings using the context, * initialises the location manager, and the location listener that will receive the data in the * class the called the constructor. It checks if GPS and cellular networks are available and * notifies the user via toasts if they need to be turned on. If permissions are granted it * starts the location information gathering process. * - * @param context Application Context to be used for permissions and device accesses. - * @param locationListener Location listener that will receive the location information from - * the device broadcasts. - * + * @param context Application Context to be used for permissions and device accesses. + * @param locationListener Location listener that will receive the location information from the + * device broadcasts. * @see SensorFusion the intended parent class. */ public GNSSDataProcessor(Context context, LocationListener locationListener) { @@ -50,7 +47,7 @@ public GNSSDataProcessor(Context context, LocationListener locationListener) { // Check for permissions boolean permissionsGranted = checkLocationPermissions(); - //Location manager and listener + // Location manager and listener this.locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); this.locationListener = locationListener; @@ -70,69 +67,72 @@ public GNSSDataProcessor(Context context, LocationListener locationListener) { /** * Checks if the user authorised all permissions necessary for accessing location data. * - * Explicit user permissions must be granted for android sdk version 23 and above. This + *

    Explicit user permissions must be granted for android sdk version 23 and above. This * function checks which permissions are granted, and returns their conjunction. * - * @return boolean true if all permissions are granted for location access, false otherwise. + * @return boolean true if all permissions are granted for location access, false otherwise. */ private boolean checkLocationPermissions() { - int coarseLocationPermission = ActivityCompat.checkSelfPermission(this.context, - Manifest.permission.ACCESS_COARSE_LOCATION); - int fineLocationPermission = ActivityCompat.checkSelfPermission(this.context, - Manifest.permission.ACCESS_FINE_LOCATION); - int internetPermission = ActivityCompat.checkSelfPermission(this.context, - Manifest.permission.INTERNET); + int coarseLocationPermission = + ActivityCompat.checkSelfPermission( + this.context, Manifest.permission.ACCESS_COARSE_LOCATION); + int fineLocationPermission = + ActivityCompat.checkSelfPermission( + this.context, Manifest.permission.ACCESS_FINE_LOCATION); + int internetPermission = + ActivityCompat.checkSelfPermission(this.context, Manifest.permission.INTERNET); // Return missing permissions - return coarseLocationPermission == PackageManager.PERMISSION_GRANTED && - fineLocationPermission == PackageManager.PERMISSION_GRANTED && - internetPermission == PackageManager.PERMISSION_GRANTED; + return coarseLocationPermission == PackageManager.PERMISSION_GRANTED + && fineLocationPermission == PackageManager.PERMISSION_GRANTED + && internetPermission == PackageManager.PERMISSION_GRANTED; } /** * Request location updates via the GNSS and Cellular networks. * - * The function checks for permissions again, and then requests updates via the location + *

    The function checks for permissions again, and then requests updates via the location * manager to the location listener. If permissions are granted but the GPS and cellular * networks are disabled it reminds the user via toasts to turn them on. */ @SuppressLint("MissingPermission") public void startLocationUpdates() { - //if (sharedPreferences.getBoolean("location", true)) { + // if (sharedPreferences.getBoolean("location", true)) { boolean permissionGranted = checkLocationPermissions(); - if (permissionGranted && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) && - locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){ + if (permissionGranted + && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) + && locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { - locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); - locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); - } - else if(permissionGranted && !locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ + locationManager.requestLocationUpdates( + LocationManager.GPS_PROVIDER, 0, 0, locationListener); + locationManager.requestLocationUpdates( + LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); + } else if (permissionGranted + && !locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { Toast.makeText(context, "Open GPS", Toast.LENGTH_LONG).show(); - } - else if(permissionGranted && !locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){ + } else if (permissionGranted + && !locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { Toast.makeText(context, "Turn on WiFi", Toast.LENGTH_LONG).show(); } } - /** - * Stops updates to the location listener via the location manager. - */ + /** Stops updates to the location listener via the location manager. */ public void stopUpdating() { locationManager.removeUpdates(locationListener); } /** * Get the last known location from the location manager. + * * @return Last known location, or null if unavailable */ @SuppressLint("MissingPermission") public android.location.Location getLastLocation() { if (checkLocationPermissions()) { - android.location.Location gpsLoc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); - if (gpsLoc != null) - return gpsLoc; - else - return locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); + android.location.Location gpsLoc = + locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + if (gpsLoc != null) return gpsLoc; + else return locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); } return null; } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/MovementSensor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/MovementSensor.java index c8b33264..d19f0dd0 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/MovementSensor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/MovementSensor.java @@ -7,12 +7,11 @@ /** * Movement sensor class representing all Sensor Manager based devices. * - * The class is initialised with the application context to be used for permissions and hardware + *

    The class is initialised with the application context to be used for permissions and hardware * access. Using the context, it adds a Sensor Manager, as well as a Sensor and {@link SensorInfo} * instance, with the type of the sensor determined upon initialisation of the class. * * @see SensorFusion where instances of this class are intended to be used. - * * @author Mate Stodulka */ public class MovementSensor { @@ -25,15 +24,13 @@ public class MovementSensor { // Information about the sensor stored in a SensorInfo object protected SensorInfo sensorInfo; - /** * Public default constructor for the Movement Sensor class. * - * It calls the superclass constructor with context, and then initialises local properties. - * - * @param context Application context used to check permissions and access devices. - * @param sensorType Type of the sensor to be created, using Sensor.TYPE constants. + *

    It calls the superclass constructor with context, and then initialises local properties. * + * @param context Application context used to check permissions and access devices. + * @param sensorType Type of the sensor to be created, using Sensor.TYPE constants. * @see SensorInfo objects holding physical sensors properties. */ public MovementSensor(Context context, int sensorType) { @@ -43,30 +40,20 @@ public MovementSensor(Context context, int sensorType) { this.sensor = sensorManager.getDefaultSensor(sensorType); if (sensor != null) { - this.sensorInfo = new SensorInfo( - sensor.getName(), - sensor.getVendor(), - sensor.getResolution(), - sensor.getPower(), - sensor.getVersion(), - sensor.getType(), - sensor.getMaximumRange(), - 0.0f // frequency set later - ); + this.sensorInfo = + new SensorInfo( + sensor.getName(), + sensor.getVendor(), + sensor.getResolution(), + sensor.getPower(), + sensor.getVersion(), + sensor.getType(), + sensor.getMaximumRange(), + 0.0f // frequency set later + ); System.err.println(sensorInfo); } else { - this.sensorInfo = new SensorInfo( - "Not available", - "-", - -1.0f, - 0.0f, - 0, - 0, - 0.0f, - 0.0f - ); - + this.sensorInfo = new SensorInfo("Not available", "-", -1.0f, 0.0f, 0, 0, 0.0f, 0.0f); } } - } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/Observable.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/Observable.java index dc7e0c73..6292584a 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/Observable.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/Observable.java @@ -1,8 +1,9 @@ package com.openpositioning.PositionMe.sensors; + /** * Interface for observable class. * - * Simplified version of default Observable interface, with only the resgisterObserver and + *

    Simplified version of default Observable interface, with only the resgisterObserver and * notifyObservers methods included see {@link java.util.Observable}. * * @author Virginia Cangelosi @@ -17,11 +18,10 @@ public interface Observable { public void registerObserver(com.openpositioning.PositionMe.sensors.Observer o); /** - * Notify observers of changes to relevant data structures. If there are multiple data structures - * and not all are relevant to all observers, use the input to differentiate. + * Notify observers of changes to relevant data structures. If there are multiple data + * structures and not all are relevant to all observers, use the input to differentiate. * - * @param idx int index signaling which data-structure was updated. + * @param idx int index signaling which data-structure was updated. */ public void notifyObservers(int idx); } - diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/Observer.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/Observer.java index 765b1a0b..381ea9ee 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/Observer.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/Observer.java @@ -3,8 +3,8 @@ /** * Interface for observers of an observable class. * - * Simplified version of default Observer interface, with only the update method included - * see {@link java.util.Observer}. + *

    Simplified version of default Observer interface, with only the update method included see + * {@link java.util.Observer}. * * @author Virginia Cangelosi * @author Mate Stodulka @@ -15,7 +15,7 @@ public interface Observer { * Updates from the class implementing the {@link Observable} interface, where this instance is * registered as an observer. * - * @param objList an array of objects that were updated in the Observable + * @param objList an array of objects that were updated in the Observable */ public void update(Object[] objList); } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java index 82d78f91..d9d21dee 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java @@ -15,21 +15,15 @@ import android.os.PowerManager; import android.os.SystemClock; import android.util.Log; - import androidx.annotation.NonNull; import androidx.preference.PreferenceManager; - import com.google.android.gms.maps.model.LatLng; +import com.openpositioning.PositionMe.Traj; +import com.openpositioning.PositionMe.data.remote.ServerCommunications; import com.openpositioning.PositionMe.presentation.activity.MainActivity; +import com.openpositioning.PositionMe.presentation.fragment.SettingsFragment; import com.openpositioning.PositionMe.utils.PathView; import com.openpositioning.PositionMe.utils.PdrProcessing; -import com.openpositioning.PositionMe.data.remote.ServerCommunications; -import com.openpositioning.PositionMe.Traj; -import com.openpositioning.PositionMe.presentation.fragment.SettingsFragment; - -import org.json.JSONException; -import org.json.JSONObject; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -38,22 +32,24 @@ import java.util.TimerTask; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.json.JSONException; +import org.json.JSONObject; /** * The SensorFusion class is the main data gathering and processing class of the application. * - * It follows the singleton design pattern to ensure that every fragment and process has access to - * the same date and sensor instances. Hence it has a private constructor, and must be initialised - * with the application context after creation. - *

    - * The class implements {@link SensorEventListener} and has instances of {@link MovementSensor} for - * every device type necessary for data collection. As such, it implements the - * {@link SensorFusion#onSensorChanged(SensorEvent)} function, and process and records the data - * provided by the sensor hardware, which are stored in a {@link Traj} object. Data is read - * continuously but is only saved to the trajectory when recording is enabled. - *

    - * The class provides a number of setters and getters so that other classes can have access to the - * sensor data and influence the behaviour of data collection. + *

    It follows the singleton design pattern to ensure that every fragment and process has access + * to the same date and sensor instances. Hence it has a private constructor, and must be + * initialised with the application context after creation. + * + *

    The class implements {@link SensorEventListener} and has instances of {@link MovementSensor} + * for every device type necessary for data collection. As such, it implements the {@link + * SensorFusion#onSensorChanged(SensorEvent)} function, and process and records the data provided by + * the sensor hardware, which are stored in a {@link Traj} object. Data is read continuously but is + * only saved to the trajectory when recording is enabled. + * + *

    The class provides a number of setters and getters so that other classes can have access to + * the sensor data and influence the behaviour of data collection. * * @author Michal Dvorak * @author Mate Stodulka @@ -65,10 +61,10 @@ public class SensorFusion implements SensorEventListener, Observer { private HashMap lastEventTimestamps = new HashMap<>(); private HashMap eventCounts = new HashMap<>(); - long maxReportLatencyNs = 0; // Disable batching to deliver events immediately + long maxReportLatencyNs = 0; // Disable batching to deliver events immediately // Define a threshold for large time gaps (in milliseconds) - private static final long LARGE_GAP_THRESHOLD_MS = 500; // Adjust this if needed + private static final long LARGE_GAP_THRESHOLD_MS = 500; // Adjust this if needed // Singleton Class private static final SensorFusion sensorFusion = new SensorFusion(); @@ -76,10 +72,10 @@ public class SensorFusion implements SensorEventListener, Observer { private static final long TIME_CONST = 10; // Coefficient for fusing gyro-based and magnetometer-based orientation public static final float FILTER_COEFFICIENT = 0.96f; - //Tuning value for low pass filter + // Tuning value for low pass filter private static final float ALPHA = 0.8f; // String for creating WiFi fingerprint JSON object - private static final String WIFI_FINGERPRINT= "wf"; + private static final String WIFI_FINGERPRINT = "wf"; // Keep device awake while recording private PowerManager.WakeLock wakeLock; @@ -139,7 +135,7 @@ public class SensorFusion implements SensorEventListener, Observer { private float light; private float proximity; private float[] R; - private int stepCounter ; + private int stepCounter; // Derived values private float elevation; private boolean elevator; @@ -172,12 +168,12 @@ public class SensorFusion implements SensorEventListener, Observer { private WiFiPositioning wiFiPositioning; /** - * Private constructor for implementing singleton design pattern for SensorFusion. - * Initialises empty arrays and new objects that do not depends on outside information. + * Private constructor for implementing singleton design pattern for SensorFusion. Initialises + * empty arrays and new objects that do not depends on outside information. */ private SensorFusion() { // Location listener to be used by the GNSS class - this.locationListener= new myLocationListener(); + this.locationListener = new myLocationListener(); // Timer to store sensor values in the trajectory object this.storeTrajectoryTimer = new Timer(); // Counters to track elements with slower frequency @@ -204,11 +200,10 @@ private SensorFusion() { this.startLocation = new float[2]; } - /** * Static function to access singleton instance of SensorFusion. * - * @return singleton instance of SensorFusion class. + * @return singleton instance of SensorFusion class. */ public static SensorFusion getInstance() { return sensorFusion; @@ -217,12 +212,11 @@ public static SensorFusion getInstance() { /** * Initialisation function for the SensorFusion instance. * - * Initialise all Movement sensor instances from context and predetermined types. Creates a + *

    Initialise all Movement sensor instances from context and predetermined types. Creates a * server communication instance for sending trajectories. Saves current absolute and relative * time, and initialises saving the recording to false. * - * @param context application context for permissions and device access. - * + * @param context application context for permissions and device access. * @see MovementSensor handling all SensorManager based data collection devices. * @see ServerCommunications handling communication with the server. * @see GNSSDataProcessor for location data processing. @@ -241,7 +235,8 @@ public void setContext(Context context) { this.stepDetectionSensor = new MovementSensor(context, Sensor.TYPE_STEP_DETECTOR); this.rotationSensor = new MovementSensor(context, Sensor.TYPE_ROTATION_VECTOR); this.gravitySensor = new MovementSensor(context, Sensor.TYPE_GRAVITY); - this.linearAccelerationSensor = new MovementSensor(context, Sensor.TYPE_LINEAR_ACCELERATION); + this.linearAccelerationSensor = + new MovementSensor(context, Sensor.TYPE_LINEAR_ACCELERATION); // Listener based devices this.wifiProcessor = new WifiDataProcessor(context); wifiProcessor.registerObserver(this); @@ -264,29 +259,30 @@ public void setContext(Context context) { this.pathView = new PathView(context, null); this.wiFiPositioning = new WiFiPositioning(context); - if(settings.getBoolean("overwrite_constants", false)) { + if (settings.getBoolean("overwrite_constants", false)) { this.filter_coefficient = Float.parseFloat(settings.getString("accel_filter", "0.96")); } else { this.filter_coefficient = FILTER_COEFFICIENT; } // Keep app awake during the recording (using stored appContext) - PowerManager powerManager = (PowerManager) this.appContext.getSystemService(Context.POWER_SERVICE); + PowerManager powerManager = + (PowerManager) this.appContext.getSystemService(Context.POWER_SERVICE); wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag"); } /** * {@inheritDoc} * - * Called every time a Sensor value is updated. + *

    Called every time a Sensor value is updated. * - * Checks originating sensor type, if the data is meaningful save it to a local variable. + *

    Checks originating sensor type, if the data is meaningful save it to a local variable. * - * @param sensorEvent SensorEvent of sensor with values changed, includes types and values. + * @param sensorEvent SensorEvent of sensor with values changed, includes types and values. */ @Override public void onSensorChanged(SensorEvent sensorEvent) { - long currentTime = System.currentTimeMillis(); // Current time in milliseconds + long currentTime = System.currentTimeMillis(); // Current time in milliseconds int sensorType = sensorEvent.sensor.getType(); // Update timestamp and frequency counter for this sensor @@ -303,9 +299,10 @@ public void onSensorChanged(SensorEvent sensorEvent) { case Sensor.TYPE_PRESSURE: pressure = (1 - ALPHA) * pressure + ALPHA * sensorEvent.values[0]; if (saveRecording) { - this.elevation = pdrProcessing.updateElevation( - SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, pressure) - ); + this.elevation = + pdrProcessing.updateElevation( + SensorManager.getAltitude( + SensorManager.PRESSURE_STANDARD_ATMOSPHERE, pressure)); } break; @@ -320,11 +317,11 @@ public void onSensorChanged(SensorEvent sensorEvent) { filteredAcc[2] = sensorEvent.values[2]; // Compute magnitude & add to accelMagnitude - double accelMagFiltered = Math.sqrt( - Math.pow(filteredAcc[0], 2) + - Math.pow(filteredAcc[1], 2) + - Math.pow(filteredAcc[2], 2) - ); + double accelMagFiltered = + Math.sqrt( + Math.pow(filteredAcc[0], 2) + + Math.pow(filteredAcc[1], 2) + + Math.pow(filteredAcc[2], 2)); // TODO - This grows without bound! Would limiting it break functionality? this.accelMagnitude.add(accelMagFiltered); @@ -338,7 +335,7 @@ public void onSensorChanged(SensorEvent sensorEvent) { gravity[2] = sensorEvent.values[2]; // Possibly log gravity values if needed - //Log.v("SensorFusion", "Gravity: " + Arrays.toString(gravity)); + // Log.v("SensorFusion", "Gravity: " + Arrays.toString(gravity)); elevator = pdrProcessing.estimateElevator(gravity, filteredAcc); break; @@ -367,72 +364,75 @@ public void onSensorChanged(SensorEvent sensorEvent) { case Sensor.TYPE_STEP_DETECTOR: long stepTime = SystemClock.uptimeMillis() - bootTime; - if (currentTime - lastStepTime < SENSOR_POLL_TIME_MS) { - Log.e("SensorFusion", "Ignoring step event, too soon after last step event:" + (currentTime - lastStepTime) + " ms"); + Log.e( + "SensorFusion", + "Ignoring step event, too soon after last step event:" + + (currentTime - lastStepTime) + + " ms"); // Ignore rapid successive step events break; - } - - else { + } else { lastStepTime = currentTime; // Log if accelMagnitude is empty if (accelMagnitude.isEmpty()) { - Log.e("SensorFusion", - "stepDetection triggered, but accelMagnitude is empty! " + - "This can cause updatePdr(...) to fail or return bad results."); + Log.e( + "SensorFusion", + "stepDetection triggered, but accelMagnitude is empty! This can" + + " cause updatePdr(...) to fail or return bad results."); } else { - Log.d("SensorFusion", - "stepDetection triggered, accelMagnitude size = " + accelMagnitude.size()); + Log.d( + "SensorFusion", + "stepDetection triggered, accelMagnitude size = " + + accelMagnitude.size()); } - float[] newCords = this.pdrProcessing.updatePdr( - stepTime, - this.accelMagnitude, - this.orientation[0] - ); + float[] newCords = + this.pdrProcessing.updatePdr( + stepTime, this.accelMagnitude, this.orientation[0]); // Clear the accelMagnitude after using it // CAUTION - This line never runs! this.accelMagnitude.clear(); - if (saveRecording) { this.pathView.drawTrajectory(newCords); stepCounter++; - trajectory.addPdrData(Traj.RelativePosition.newBuilder() - .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - .setX(newCords[0]) - .setY(newCords[1])); + trajectory.addPdrData( + Traj.RelativePosition.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setX(newCords[0]) + .setY(newCords[1])); } break; } - } } /** - * Utility function to log the event frequency of each sensor. - * Call this periodically for debugging purposes. + * Utility function to log the event frequency of each sensor. Call this periodically for + * debugging purposes. */ public void logSensorFrequencies() { for (int sensorType : eventCounts.keySet()) { - Log.d("SensorFusion", "Sensor " + sensorType + " | Event Count: " + eventCounts.get(sensorType)); + Log.d( + "SensorFusion", + "Sensor " + sensorType + " | Event Count: " + eventCounts.get(sensorType)); } } /** * {@inheritDoc} * - * Location listener class to receive updates from the location manager. + *

    Location listener class to receive updates from the location manager. * - * Passed to the {@link GNSSDataProcessor} to receive the location data in this class. Save the - * values in instance variables. + *

    Passed to the {@link GNSSDataProcessor} to receive the location data in this class. Save + * the values in instance variables. */ - class myLocationListener implements LocationListener{ + class myLocationListener implements LocationListener { @Override public void onLocationChanged(@NonNull Location location) { - //Toast.makeText(context, "Location Changed", Toast.LENGTH_SHORT).show(); + // Toast.makeText(context, "Location Changed", Toast.LENGTH_SHORT).show(); latitude = (float) location.getLatitude(); longitude = (float) location.getLongitude(); float altitude = (float) location.getAltitude(); @@ -440,17 +440,21 @@ public void onLocationChanged(@NonNull Location location) { float speed = (float) location.getSpeed(); float bearing = (float) location.getBearing(); String provider = location.getProvider(); - if(saveRecording) { - trajectory.addGnssData(Traj.GNSSReading.newBuilder() - .setPosition(Traj.GNSSPosition.newBuilder() - .setRelativeTimestamp(System.currentTimeMillis() - absoluteStartTime) - .setLatitude(latitude) - .setLongitude(longitude) - .setAltitude(altitude)) - .setAccuracy(accuracy) - .setSpeed(speed) - .setBearing(bearing) - .setProvider(provider)); + if (saveRecording) { + trajectory.addGnssData( + Traj.GNSSReading.newBuilder() + .setPosition( + Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp( + System.currentTimeMillis() + - absoluteStartTime) + .setLatitude(latitude) + .setLongitude(longitude) + .setAltitude(altitude)) + .setAccuracy(accuracy) + .setSpeed(speed) + .setBearing(bearing) + .setProvider(provider)); } } } @@ -467,7 +471,7 @@ public void update(Object[] objList) { /** * {@inheritDoc} * - * Receives updates from {@link WifiDataProcessor}. + *

    Receives updates from {@link WifiDataProcessor}. * * @see WifiDataProcessor object for wifi scanning. */ @@ -475,18 +479,19 @@ private void updateWifi(Object[] wifiList) { // Save newest wifi values to local variable this.wifiList = Stream.of(wifiList).map(o -> (Wifi) o).collect(Collectors.toList()); - if(this.saveRecording) { + if (this.saveRecording) { // Check for repeated fingerprints using 32 bit hash, using MAC and signal strength int fingerprintHash = 0; for (Wifi data : this.wifiList) { - fingerprintHash = 31 * fingerprintHash + (int)(data.getBssid() ^ (data.getBssid() >>> 32)); + fingerprintHash = + 31 * fingerprintHash + (int) (data.getBssid() ^ (data.getBssid() >>> 32)); fingerprintHash = 31 * fingerprintHash + data.getLevel(); } // Skip if duplicate fingerprint within 1 second long currentTime = System.currentTimeMillis(); - if (fingerprintHash == lastWifiFingerprintHash && - (currentTime - lastWifiFingerprintTime) < 1000) { + if (fingerprintHash == lastWifiFingerprintHash + && (currentTime - lastWifiFingerprintTime) < 1000) { return; } @@ -494,23 +499,26 @@ private void updateWifi(Object[] wifiList) { lastWifiFingerprintTime = currentTime; // Create Fingerprint for WiFi - Traj.Fingerprint.Builder wifiFingerprint = Traj.Fingerprint.newBuilder() - .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime); + Traj.Fingerprint.Builder wifiFingerprint = + Traj.Fingerprint.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime); for (Wifi data : this.wifiList) { // Create RFScan for each WiFi - wifiFingerprint.addRfScans(Traj.RFScan.newBuilder() - .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - .setMac(data.getBssid()) - .setRssi(data.getLevel())); + wifiFingerprint.addRfScans( + Traj.RFScan.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setMac(data.getBssid()) + .setRssi(data.getLevel())); // Add AP data only if not seen before if (!seenAPs.containsKey(data.getBssid())) { - trajectory.addApsData(Traj.WiFiAPData.newBuilder() - .setMac(data.getBssid()) - .setSsid(data.getSsid()) - .setFrequency(data.getFrequency()) - .setRttEnabled(data.isRttEnabled())); + trajectory.addApsData( + Traj.WiFiAPData.newBuilder() + .setMac(data.getBssid()) + .setSsid(data.getSsid()) + .setFrequency(data.getFrequency()) + .setRttEnabled(data.isRttEnabled())); seenAPs.put(data.getBssid(), true); } } @@ -536,14 +544,14 @@ private void updateBle(BleDevice[] bleDevices) { int fingerprintHash = 0; for (BleDevice device : bleDevices) { long macLong = convertMacToLong(device.getMacAddress()); - fingerprintHash = 31 * fingerprintHash + (int)(macLong ^ (macLong >>> 32)); + fingerprintHash = 31 * fingerprintHash + (int) (macLong ^ (macLong >>> 32)); fingerprintHash = 31 * fingerprintHash + device.getRssi(); } // Skip if duplicate fingerprint within 1 second long currentTime = System.currentTimeMillis(); - if (fingerprintHash == lastBleFingerprintHash && - (currentTime - lastBleFingerprintTime) < 1000) { + if (fingerprintHash == lastBleFingerprintHash + && (currentTime - lastBleFingerprintTime) < 1000) { return; } @@ -551,20 +559,24 @@ private void updateBle(BleDevice[] bleDevices) { lastBleFingerprintTime = currentTime; // Build BLE fingerprint - Traj.Fingerprint.Builder bleFingerprint = Traj.Fingerprint.newBuilder().setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime); + Traj.Fingerprint.Builder bleFingerprint = + Traj.Fingerprint.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime); for (BleDevice device : bleDevices) { - bleFingerprint.addRfScans(Traj.RFScan.newBuilder() - .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - .setMac(convertMacToLong(device.getMacAddress())) - .setRssi(device.getRssi())); + bleFingerprint.addRfScans( + Traj.RFScan.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setMac(convertMacToLong(device.getMacAddress())) + .setRssi(device.getRssi())); // Add BLE data - Traj.BleData.Builder bleData = Traj.BleData.newBuilder() - .setMacAddress(device.getMacAddress()) - .setName(device.getName()) - .setTxPowerLevel(device.getTxPowerLevel()) - .setAdvertiseFlags(device.getAdvertiseFlags()); + Traj.BleData.Builder bleData = + Traj.BleData.newBuilder() + .setMacAddress(device.getMacAddress()) + .setName(device.getName()) + .setTxPowerLevel(device.getTxPowerLevel()) + .setAdvertiseFlags(device.getAdvertiseFlags()); if (device.getServiceUuids() != null) { for (String uuid : device.getServiceUuids()) { @@ -590,17 +602,13 @@ private long convertMacToLong(String macAddress) { return Long.parseLong(cleanMac, 16); } - - /** - * Function to create a request to obtain a wifi location for the obtained wifi fingerprint - * - */ - private void createWifiPositioningRequest(){ + /** Function to create a request to obtain a wifi location for the obtained wifi fingerprint */ + private void createWifiPositioningRequest() { // Try catch block to catch any errors and prevent app crashing try { // Creating a JSON object to store the WiFi access points JSONObject wifiAccessPoints = new JSONObject(); - for (Wifi data : this.wifiList){ + for (Wifi data : this.wifiList) { wifiAccessPoints.put(String.valueOf(data.getBssid()), data.getLevel()); } // Creating POST Request @@ -613,19 +621,20 @@ private void createWifiPositioningRequest(){ } catch (JSONException e) { // Catching error while making JSON object, to prevent crashes // Error log to keep record of errors (for secure programming and maintainability) - Log.e("jsonErrors","Error creating json object"+e.toString()); + Log.e("jsonErrors", "Error creating json object" + e.toString()); } } + // Callback Example Function /** * Function to create a request to obtain a wifi location for the obtained wifi fingerprint * using Volley Callback */ - private void createWifiPositionRequestCallback(){ + private void createWifiPositionRequestCallback() { try { // Creating a JSON object to store the WiFi access points JSONObject wifiAccessPoints = new JSONObject(); - for (Wifi data : this.wifiList){ + for (Wifi data : this.wifiList) { wifiAccessPoints.put(String.valueOf(data.getBssid()), data.getLevel()); } // Creating POST Request @@ -634,21 +643,23 @@ private void createWifiPositionRequestCallback(){ Log.d("WiFiPositioning", "Sending: " + wifiFingerPrint.toString()); - this.wiFiPositioning.request(wifiFingerPrint, new WiFiPositioning.VolleyCallback() { - @Override - public void onSuccess(LatLng wifiLocation, int floor) { - // Handle the success response - } - - @Override - public void onError(String message) { - // Handle the error response - } - }); + this.wiFiPositioning.request( + wifiFingerPrint, + new WiFiPositioning.VolleyCallback() { + @Override + public void onSuccess(LatLng wifiLocation, int floor) { + // Handle the success response + } + + @Override + public void onError(String message) { + // Handle the error response + } + }); } catch (JSONException e) { // Catching error while making JSON object, to prevent crashes // Error log to keep record of errors (for secure programming and maintainability) - Log.e("jsonErrors","Error creating json object"+e.toString()); + Log.e("jsonErrors", "Error creating json object" + e.toString()); } } @@ -657,14 +668,17 @@ public void onError(String message) { * * @return {@link LatLng} corresponding to user's position. */ - public LatLng getLatLngWifiPositioning(){return this.wiFiPositioning.getWifiLocation();} + public LatLng getLatLngWifiPositioning() { + return this.wiFiPositioning.getWifiLocation(); + } /** * Method to get current floor the user is at, obtained using WiFiPositioning + * * @see WiFiPositioning for WiFi positioning * @return Current floor user is at using WiFiPositioning */ - public int getWifiFloor(){ + public int getWifiFloor() { return this.wiFiPositioning.getFloor(); } @@ -679,27 +693,45 @@ private float[] getRotationMatrixFromOrientation(float[] o) { float[] yM = new float[9]; float[] zM = new float[9]; - float sinX = (float)Math.sin(o[1]); - float cosX = (float)Math.cos(o[1]); - float sinY = (float)Math.sin(o[2]); - float cosY = (float)Math.cos(o[2]); - float sinZ = (float)Math.sin(o[0]); - float cosZ = (float)Math.cos(o[0]); + float sinX = (float) Math.sin(o[1]); + float cosX = (float) Math.cos(o[1]); + float sinY = (float) Math.sin(o[2]); + float cosY = (float) Math.cos(o[2]); + float sinZ = (float) Math.sin(o[0]); + float cosZ = (float) Math.cos(o[0]); // rotation about x-axis (pitch) - xM[0] = 1.0f; xM[1] = 0.0f; xM[2] = 0.0f; - xM[3] = 0.0f; xM[4] = cosX; xM[5] = sinX; - xM[6] = 0.0f; xM[7] = -sinX; xM[8] = cosX; + xM[0] = 1.0f; + xM[1] = 0.0f; + xM[2] = 0.0f; + xM[3] = 0.0f; + xM[4] = cosX; + xM[5] = sinX; + xM[6] = 0.0f; + xM[7] = -sinX; + xM[8] = cosX; // rotation about y-axis (roll) - yM[0] = cosY; yM[1] = 0.0f; yM[2] = sinY; - yM[3] = 0.0f; yM[4] = 1.0f; yM[5] = 0.0f; - yM[6] = -sinY; yM[7] = 0.0f; yM[8] = cosY; + yM[0] = cosY; + yM[1] = 0.0f; + yM[2] = sinY; + yM[3] = 0.0f; + yM[4] = 1.0f; + yM[5] = 0.0f; + yM[6] = -sinY; + yM[7] = 0.0f; + yM[8] = cosY; // rotation about z-axis (azimuth) - zM[0] = cosZ; zM[1] = sinZ; zM[2] = 0.0f; - zM[3] = -sinZ; zM[4] = cosZ; zM[5] = 0.0f; - zM[6] = 0.0f; zM[7] = 0.0f; zM[8] = 1.0f; + zM[0] = cosZ; + zM[1] = sinZ; + zM[2] = 0.0f; + zM[3] = -sinZ; + zM[4] = cosZ; + zM[5] = 0.0f; + zM[6] = 0.0f; + zM[7] = 0.0f; + zM[8] = 1.0f; // rotation order is y, x, z (roll, pitch, azimuth) float[] resultMatrix = matrixMultiplication(xM, yM); @@ -732,9 +764,7 @@ private float[] matrixMultiplication(float[] A, float[] B) { return result; } - /** - * {@inheritDoc} - */ + /** {@inheritDoc} */ @Override public void onAccuracyChanged(Sensor sensor, int i) {} @@ -745,12 +775,11 @@ public void onAccuracyChanged(Sensor sensor, int i) {} * @return longitude and latitude data in a float[2]. */ public float[] getGNSSLatitude(boolean start) { - float [] latLong = new float[2]; - if(!start) { + float[] latLong = new float[2]; + if (!start) { latLong[0] = latitude; latLong[1] = longitude; - } - else{ + } else { latLong = startLocation; } return latLong; @@ -761,47 +790,45 @@ public float[] getGNSSLatitude(boolean start) { * * @param startPosition contains the initial location set by the user */ - public void setStartGNSSLatitude(float[] startPosition){ + public void setStartGNSSLatitude(float[] startPosition) { startLocation = startPosition; } - /** * Function to redraw path in corrections fragment. * * @param scalingRatio new size of path due to updated step length */ - public void redrawPath(float scalingRatio){ + public void redrawPath(float scalingRatio) { pathView.redraw(scalingRatio); } /** - * Getter function for average step count. - * Calls the average step count function in pdrProcessing class + * Getter function for average step count. Calls the average step count function in + * pdrProcessing class * * @return average step count of total PDR. */ - public float passAverageStepLength(){ + public float passAverageStepLength() { return pdrProcessing.getAverageStepLength(); } /** - * Getter function for device orientation. - * Passes the orientation variable + * Getter function for device orientation. Passes the orientation variable * * @return orientation of device. */ - public float passOrientation(){ + public float passOrientation() { return orientation[0]; } /** * Return most recent sensor readings. * - * Collects all most recent readings from movement and location sensors, packages them in a map - * that is indexed by {@link SensorTypes} and makes it accessible for other classes. + *

    Collects all most recent readings from movement and location sensors, packages them in a + * map that is indexed by {@link SensorTypes} and makes it accessible for other classes. * - * @return Map of SensorTypes to float array of most recent values. + * @return Map of SensorTypes to float array of most recent values. */ public Map getSensorValueMap() { Map sensorValueMap = new HashMap<>(); @@ -809,27 +836,27 @@ public Map getSensorValueMap() { sensorValueMap.put(SensorTypes.GRAVITY, gravity); sensorValueMap.put(SensorTypes.MAGNETICFIELD, magneticField); sensorValueMap.put(SensorTypes.GYRO, angularVelocity); - sensorValueMap.put(SensorTypes.LIGHT, new float[]{light}); - sensorValueMap.put(SensorTypes.PRESSURE, new float[]{pressure}); - sensorValueMap.put(SensorTypes.PROXIMITY, new float[]{proximity}); + sensorValueMap.put(SensorTypes.LIGHT, new float[] {light}); + sensorValueMap.put(SensorTypes.PRESSURE, new float[] {pressure}); + sensorValueMap.put(SensorTypes.PROXIMITY, new float[] {proximity}); sensorValueMap.put(SensorTypes.GNSSLATLONG, getGNSSLatitude(false)); sensorValueMap.put(SensorTypes.PDR, pdrProcessing.getPDRMovement()); return sensorValueMap; } /** - * Return the most recent list of WiFi names and levels. - * Each Wifi object contains a BSSID and a level value. + * Return the most recent list of WiFi names and levels. Each Wifi object contains a BSSID and a + * level value. * - * @return list of Wifi objects. + * @return list of Wifi objects. */ public List getWifiList() { return this.wifiList; } /** - * Return the most recent list of BLE devices. - * Each BleDevice object contains a MAC address, RSSI, name, and other BLE data. + * Return the most recent list of BLE devices. Each BleDevice object contains a MAC address, + * RSSI, name, and other BLE data. * * @return list of BleDevice objects. */ @@ -840,7 +867,7 @@ public List getBleList() { /** * Get information about all the sensors registered in SensorFusion. * - * @return List of SensorInfo objects containing name, resolution, power, etc. + * @return List of SensorInfo objects containing name, resolution, power, etc. */ public List getSensorInfos() { List sensorInfoList = new ArrayList<>(); @@ -854,32 +881,33 @@ public List getSensorInfos() { } /** - * Registers the caller observer to receive updates from the server instance. - * Necessary when classes want to act on a trajectory being successfully or unsuccessfully send - * to the server. This grants access to observing the {@link ServerCommunications} instance - * used by the SensorFusion class. + * Registers the caller observer to receive updates from the server instance. Necessary when + * classes want to act on a trajectory being successfully or unsuccessfully send to the server. + * This grants access to observing the {@link ServerCommunications} instance used by the + * SensorFusion class. * - * @param observer Instance implementing {@link Observer} class who wants to be notified of - * events relating to sending and receiving trajectories. + * @param observer Instance implementing {@link Observer} class who wants to be notified of + * events relating to sending and receiving trajectories. */ public void registerForServerUpdate(Observer observer) { serverCommunications.registerObserver(observer); } /** - * Get the estimated elevation value in meters calculated by the PDR class. - * Elevation is relative to the starting position. + * Get the estimated elevation value in meters calculated by the PDR class. Elevation is + * relative to the starting position. * - * @return float of the estimated elevation in meters. + * @return float of the estimated elevation in meters. */ public float getElevation() { return this.elevation; } /** - * Get an estimate by the PDR class whether it estimates the user is currently taking an elevator. + * Get an estimate by the PDR class whether it estimates the user is currently taking an + * elevator. * - * @return true if the PDR estimates the user is in an elevator, false otherwise. + * @return true if the PDR estimates the user is in an elevator, false otherwise. */ public boolean getElevator() { return this.elevator; @@ -890,12 +918,11 @@ public boolean getElevator() { * * @return int 1 if the phone is by the ear, int 0 otherwise. */ - public int getHoldMode(){ - int proximityThreshold = 1, lightThreshold = 100; //holdMode: by ear=1, not by ear =0 - if(proximitylightThreshold) { //unit cm + public int getHoldMode() { + int proximityThreshold = 1, lightThreshold = 100; // holdMode: by ear=1, not by ear =0 + if (proximity < proximityThreshold && light > lightThreshold) { // unit cm return 1; - } - else{ + } else { return 0; } } @@ -903,23 +930,29 @@ public int getHoldMode(){ /** * Registers all device listeners and enables updates with the specified sampling rate. * - * Should be called from {@link MainActivity} when resuming the application. Sampling rate is in - * microseconds, IMU needs 100Hz, rest 1Hz + *

    Should be called from {@link MainActivity} when resuming the application. Sampling rate is + * in microseconds, IMU needs 100Hz, rest 1Hz * * @see MovementSensor handles SensorManager based devices. * @see WifiDataProcessor handles wifi data. * @see GNSSDataProcessor handles location data. */ public void resumeListening() { - accelerometerSensor.sensorManager.registerListener(this, accelerometerSensor.sensor, 10000, (int) maxReportLatencyNs); - accelerometerSensor.sensorManager.registerListener(this, linearAccelerationSensor.sensor, 10000, (int) maxReportLatencyNs); - accelerometerSensor.sensorManager.registerListener(this, gravitySensor.sensor, 10000, (int) maxReportLatencyNs); + accelerometerSensor.sensorManager.registerListener( + this, accelerometerSensor.sensor, 10000, (int) maxReportLatencyNs); + accelerometerSensor.sensorManager.registerListener( + this, linearAccelerationSensor.sensor, 10000, (int) maxReportLatencyNs); + accelerometerSensor.sensorManager.registerListener( + this, gravitySensor.sensor, 10000, (int) maxReportLatencyNs); barometerSensor.sensorManager.registerListener(this, barometerSensor.sensor, (int) 1e6); - gyroscopeSensor.sensorManager.registerListener(this, gyroscopeSensor.sensor, 10000, (int) maxReportLatencyNs); + gyroscopeSensor.sensorManager.registerListener( + this, gyroscopeSensor.sensor, 10000, (int) maxReportLatencyNs); lightSensor.sensorManager.registerListener(this, lightSensor.sensor, (int) 1e6); proximitySensor.sensorManager.registerListener(this, proximitySensor.sensor, (int) 1e6); - magnetometerSensor.sensorManager.registerListener(this, magnetometerSensor.sensor, 10000, (int) maxReportLatencyNs); - stepDetectionSensor.sensorManager.registerListener(this, stepDetectionSensor.sensor, SensorManager.SENSOR_DELAY_NORMAL); + magnetometerSensor.sensorManager.registerListener( + this, magnetometerSensor.sensor, 10000, (int) maxReportLatencyNs); + stepDetectionSensor.sensorManager.registerListener( + this, stepDetectionSensor.sensor, SensorManager.SENSOR_DELAY_NORMAL); rotationSensor.sensorManager.registerListener(this, rotationSensor.sensor, (int) 1e6); wifiProcessor.startListening(); gnssProcessor.startLocationUpdates(); @@ -929,14 +962,14 @@ public void resumeListening() { /** * Un-registers all device listeners and pauses data collection. * - * Should be called from {@link MainActivity} when pausing the application. + *

    Should be called from {@link MainActivity} when pausing the application. * * @see MovementSensor handles SensorManager based devices. * @see WifiDataProcessor handles wifi data. * @see GNSSDataProcessor handles location data. */ public void stopListening() { - if(!saveRecording) { + if (!saveRecording) { // Unregister sensor-manager based devices accelerometerSensor.sensorManager.unregisterListener(this); barometerSensor.sensorManager.unregisterListener(this); @@ -948,10 +981,11 @@ public void stopListening() { rotationSensor.sensorManager.unregisterListener(this); linearAccelerationSensor.sensorManager.unregisterListener(this); gravitySensor.sensorManager.unregisterListener(this); - //The app often crashes here because the scan receiver stops after it has found the list. + // The app often crashes here because the scan receiver stops after it has found the + // list. // It will only unregister one if there is to unregister try { - this.wifiProcessor.stopListening(); //error here? + this.wifiProcessor.stopListening(); // error here? } catch (Exception e) { System.err.println("Wifi resumed before existing"); } @@ -967,8 +1001,8 @@ public void stopListening() { } /** - * Generate unique trajectory ID based on timestamp and device info - * Format: android_{device}_{timestamp} + * Generate unique trajectory ID based on timestamp and device info Format: + * android_{device}_{timestamp} */ private String generateTrajectoryId() { String deviceModel = Build.MODEL.replaceAll("\\s+", "_"); @@ -979,16 +1013,19 @@ private String generateTrajectoryId() { /** * Enables saving sensor values to the trajectory object. * - * Sets save recording to true, resets the absolute start time and create new timer object for - * periodically writing data to trajectory. + *

    Sets save recording to true, resets the absolute start time and create new timer object + * for periodically writing data to trajectory. * * @see Traj object for storing data. */ public void startRecording() { // If wakeLock is null (e.g. not initialized or was cleared), reinitialize it. if (wakeLock == null) { - PowerManager powerManager = (PowerManager) this.appContext.getSystemService(Context.POWER_SERVICE); - wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag"); + PowerManager powerManager = + (PowerManager) this.appContext.getSystemService(Context.POWER_SERVICE); + wakeLock = + powerManager.newWakeLock( + PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag"); } wakeLock.acquire(31 * 60 * 1000L /*31 minutes*/); @@ -998,50 +1035,56 @@ public void startRecording() { this.absoluteStartTime = System.currentTimeMillis(); this.bootTime = SystemClock.uptimeMillis(); // Protobuf trajectory class for sending sensor data to restful API - this.trajectory = Traj.Trajectory.newBuilder() - .setAndroidVersion(Build.VERSION.RELEASE) - .setStartTimestamp(absoluteStartTime) - .setAccelerometerInfo(createInfoBuilder(accelerometerSensor)) - .setGyroscopeInfo(createInfoBuilder(gyroscopeSensor)) - .setMagnetometerInfo(createInfoBuilder(magnetometerSensor)) - .setBarometerInfo(createInfoBuilder(barometerSensor)) - .setLightSensorInfo(createInfoBuilder(lightSensor)) - .setRotationVectorInfo(createInfoBuilder(rotationSensor)) - .setProximityInfo(createInfoBuilder(proximitySensor)) - .setTrajectoryVersion(2.0f) - .setTrajectoryId(generateTrajectoryId()); + this.trajectory = + Traj.Trajectory.newBuilder() + .setAndroidVersion(Build.VERSION.RELEASE) + .setStartTimestamp(absoluteStartTime) + .setAccelerometerInfo(createInfoBuilder(accelerometerSensor)) + .setGyroscopeInfo(createInfoBuilder(gyroscopeSensor)) + .setMagnetometerInfo(createInfoBuilder(magnetometerSensor)) + .setBarometerInfo(createInfoBuilder(barometerSensor)) + .setLightSensorInfo(createInfoBuilder(lightSensor)) + .setRotationVectorInfo(createInfoBuilder(rotationSensor)) + .setProximityInfo(createInfoBuilder(proximitySensor)) + .setTrajectoryVersion(2.0f) + .setTrajectoryId(generateTrajectoryId()); // Set initial position from user-selected start location if (startLocation != null && (startLocation[0] != 0 || startLocation[1] != 0)) { - trajectory.setInitialPosition(Traj.GNSSPosition.newBuilder() - .setRelativeTimestamp(0) - .setLatitude(startLocation[0]) - .setLongitude(startLocation[1]) - .setAltitude(0)); + trajectory.setInitialPosition( + Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(0) + .setLatitude(startLocation[0]) + .setLongitude(startLocation[1]) + .setAltitude(0)); // Save initial orientation - trajectory.addImuData(Traj.IMUReading.newBuilder() - .setRelativeTimestamp(0) - .setAcc(Traj.Vector3.newBuilder() - .setX(acceleration[0]) - .setY(acceleration[1]) - .setZ(acceleration[2])) - .setGyr(Traj.Vector3.newBuilder() - .setX(angularVelocity[0]) - .setY(angularVelocity[1]) - .setZ(angularVelocity[2])) - .setRotationVector(Traj.Quaternion.newBuilder() - .setX(rotation[0]) - .setY(rotation[1]) - .setZ(rotation[2]) - .setW(rotation[3])) - .setStepCount(0)); + trajectory.addImuData( + Traj.IMUReading.newBuilder() + .setRelativeTimestamp(0) + .setAcc( + Traj.Vector3.newBuilder() + .setX(acceleration[0]) + .setY(acceleration[1]) + .setZ(acceleration[2])) + .setGyr( + Traj.Vector3.newBuilder() + .setX(angularVelocity[0]) + .setY(angularVelocity[1]) + .setZ(angularVelocity[2])) + .setRotationVector( + Traj.Quaternion.newBuilder() + .setX(rotation[0]) + .setY(rotation[1]) + .setZ(rotation[2]) + .setW(rotation[3])) + .setStepCount(0)); } this.storeTrajectoryTimer = new Timer(); this.storeTrajectoryTimer.schedule(new storeDataInTrajectory(), 0, TIME_CONST); this.pdrProcessing.resetPDR(); - if(settings.getBoolean("overwrite_constants", false)) { + if (settings.getBoolean("overwrite_constants", false)) { this.filter_coefficient = Float.parseFloat(settings.getString("accel_filter", "0.96")); } else { this.filter_coefficient = FILTER_COEFFICIENT; @@ -1050,20 +1093,20 @@ public void startRecording() { /** * Disables saving sensor values to the trajectory object. - *

    - * Check if a recording is in progress. If it is, it sets - * save recording to false, and cancels the timer objects. + * + *

    Check if a recording is in progress. If it is, it sets save recording to false, and + * cancels the timer objects. * * @see Traj object for storing data. * @see SettingsFragment navigation that might cancel recording. */ public void stopRecording() { // Only cancel if we are running - if(this.saveRecording) { + if (this.saveRecording) { this.saveRecording = false; storeTrajectoryTimer.cancel(); } - if(wakeLock.isHeld()) { + if (wakeLock.isHeld()) { this.wakeLock.release(); } } @@ -1085,11 +1128,10 @@ public boolean sendTrajectoryToCloud() { /** * Creates a {@link Traj.SensorInfo} objects from the specified sensor's data. * - * @param sensor MovementSensor objects with populated sensorInfo fields - * @return Traj.SensorInfo object to be used in building the trajectory - * - * @see Traj Trajectory object used for communication with the server - * @see MovementSensor class abstracting SensorManager based sensors + * @param sensor MovementSensor objects with populated sensorInfo fields + * @return Traj.SensorInfo object to be used in building the trajectory + * @see Traj Trajectory object used for communication with the server + * @see MovementSensor class abstracting SensorManager based sensors */ private Traj.SensorInfo.Builder createInfoBuilder(MovementSensor sensor) { return Traj.SensorInfo.newBuilder() @@ -1106,78 +1148,84 @@ private Traj.SensorInfo.Builder createInfoBuilder(MovementSensor sensor) { /** * Timer task to record data with the desired frequency in the trajectory class. * - * Inherently threaded, runnables are created in {@link SensorFusion#startRecording()} and + *

    Inherently threaded, runnables are created in {@link SensorFusion#startRecording()} and * destroyed in {@link SensorFusion#stopRecording()}. */ private class storeDataInTrajectory extends TimerTask { public void run() { // Store IMU data in Trajectory class - trajectory.addImuData(Traj.IMUReading.newBuilder() - .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - .setAcc(Traj.Vector3.newBuilder() - .setX(acceleration[0]) - .setY(acceleration[1]) - .setZ(acceleration[2])) - .setGyr(Traj.Vector3.newBuilder() - .setX(angularVelocity[0]) - .setY(angularVelocity[1]) - .setZ(angularVelocity[2])) - .setRotationVector(Traj.Quaternion.newBuilder() - .setX(rotation[0]) - .setY(rotation[1]) - .setZ(rotation[2]) - .setW(rotation[3])) - .setStepCount(stepCounter)); + trajectory.addImuData( + Traj.IMUReading.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setAcc( + Traj.Vector3.newBuilder() + .setX(acceleration[0]) + .setY(acceleration[1]) + .setZ(acceleration[2])) + .setGyr( + Traj.Vector3.newBuilder() + .setX(angularVelocity[0]) + .setY(angularVelocity[1]) + .setZ(angularVelocity[2])) + .setRotationVector( + Traj.Quaternion.newBuilder() + .setX(rotation[0]) + .setY(rotation[1]) + .setZ(rotation[2]) + .setW(rotation[3])) + .setStepCount(stepCounter)); // Store magnetometer data in Trajectory class - trajectory.addMagnetometerData(Traj.MagnetometerReading.newBuilder() - .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - .setMag(Traj.Vector3.newBuilder() - .setX(magneticField[0]) - .setY(magneticField[1]) - .setZ(magneticField[2]) - ) - ); + trajectory.addMagnetometerData( + Traj.MagnetometerReading.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setMag( + Traj.Vector3.newBuilder() + .setX(magneticField[0]) + .setY(magneticField[1]) + .setZ(magneticField[2]))); // Divide timer with a counter for storing data every 1 second if (counter == 99) { counter = 0; // Store pressure and light data if (barometerSensor.sensor != null) { - trajectory.addPressureData(Traj.BarometerReading.newBuilder() - .setPressure(pressure) - .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - ) - .addLightData(Traj.LightReading.newBuilder() - .setLight(light) - .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - ) - .addProximityData(Traj.ProximityReading.newBuilder() - .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - .setDistance(proximity) - ); + trajectory + .addPressureData( + Traj.BarometerReading.newBuilder() + .setPressure(pressure) + .setRelativeTimestamp( + SystemClock.uptimeMillis() - bootTime)) + .addLightData( + Traj.LightReading.newBuilder() + .setLight(light) + .setRelativeTimestamp( + SystemClock.uptimeMillis() - bootTime)) + .addProximityData( + Traj.ProximityReading.newBuilder() + .setRelativeTimestamp( + SystemClock.uptimeMillis() - bootTime) + .setDistance(proximity)); } // Divide the timer for storing AP data every 5 seconds if (secondCounter == 4) { secondCounter = 0; - //Current Wifi Object + // Current Wifi Object Wifi currentWifi = wifiProcessor.getCurrentWifiData(); - trajectory.addApsData(Traj.WiFiAPData.newBuilder() - .setMac(currentWifi.getBssid()) - .setSsid(currentWifi.getSsid()) - .setFrequency(currentWifi.getFrequency()) - .setRttEnabled(currentWifi.isRttEnabled())); + trajectory.addApsData( + Traj.WiFiAPData.newBuilder() + .setMac(currentWifi.getBssid()) + .setSsid(currentWifi.getSsid()) + .setFrequency(currentWifi.getFrequency()) + .setRttEnabled(currentWifi.isRttEnabled())); seenAPs.put(currentWifi.getBssid(), true); - } - else { + } else { secondCounter++; } - } - else { + } else { counter++; } - } } @@ -1190,11 +1238,12 @@ public double getGNSSAltitude() { public void addTestPoint(double latitude, double longitude, double altitude) { if (saveRecording && trajectory != null) { - trajectory.addTestPoints(Traj.GNSSPosition.newBuilder() - .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) - .setLatitude(latitude) - .setLongitude(longitude) - .setAltitude(altitude)); + trajectory.addTestPoints( + Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setLatitude(latitude) + .setLongitude(longitude) + .setAltitude(altitude)); } } @@ -1202,19 +1251,16 @@ public long getRecordingElapsedMs() { return SystemClock.uptimeMillis() - bootTime; } - public void requestFloorplans(LatLng position){ + public void requestFloorplans(LatLng position) { this.serverCommunications.requestFloorplans(position, this.wifiList); } public void setCurrentBuilding(String currentBuilding) { this.currentBuilding = currentBuilding; - Log.i("SensorFusion", - "Route now associated with " + this.currentBuilding - ); + Log.i("SensorFusion", "Route now associated with " + this.currentBuilding); } - public String getCurrentBuilding(){ + public String getCurrentBuilding() { return currentBuilding; } - } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorInfo.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorInfo.java index 9563c9ae..6bd1b1cb 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorInfo.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorInfo.java @@ -5,7 +5,7 @@ /** * The Sensor Info object holds physical properties of a sensor in the device. * - * It contains it's name, vendor, resolution, power, version and type, which vary across devices. + *

    It contains it's name, vendor, resolution, power, version and type, which vary across devices. * * @author Virginia Cangelosi * @author Mate Stodulka @@ -23,16 +23,24 @@ public class SensorInfo { /** * Public default constructor of the Sensor Info object. * - * Should be initialised with all its parameters, typically from {@link MovementSensor}. + *

    Should be initialised with all its parameters, typically from {@link MovementSensor}. * - * @param name name string of the sensor. Unique for a particular sensor type. - * @param vendor vendor string of this sensor. - * @param resolution resolution of the sensor in the sensor's unit. - * @param power the power in mA used by this sensor while in use. - * @param version version of the sensor's module. - * @param type generic type of this sensor. + * @param name name string of the sensor. Unique for a particular sensor type. + * @param vendor vendor string of this sensor. + * @param resolution resolution of the sensor in the sensor's unit. + * @param power the power in mA used by this sensor while in use. + * @param version version of the sensor's module. + * @param type generic type of this sensor. */ - public SensorInfo(String name, String vendor, float resolution, float power, int version, int type, float maxRange, float frequency) { + public SensorInfo( + String name, + String vendor, + float resolution, + float power, + int version, + int type, + float maxRange, + float frequency) { this.name = name; this.vendor = vendor; this.resolution = resolution; @@ -43,8 +51,7 @@ public SensorInfo(String name, String vendor, float resolution, float power, int this.frequency = frequency; } - - //region Getters + // region Getters public String getName() { return name; @@ -78,22 +85,27 @@ public float getFrequency() { return frequency; } - //endregion + // endregion - /** - * {@inheritDoc} - * Basic string representation for debug - */ + /** {@inheritDoc} Basic string representation for debug */ @NonNull @Override public String toString() { - return "SensorInfo{" + - "name='" + name + '\'' + - ", vendor='" + vendor + '\'' + - ", resolution=" + resolution + - ", power=" + power + - ", version=" + version + - ", type=" + type + - '}'; + return "SensorInfo{" + + "name='" + + name + + '\'' + + ", vendor='" + + vendor + + '\'' + + ", resolution=" + + resolution + + ", power=" + + power + + ", version=" + + version + + ", type=" + + type + + '}'; } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorTypes.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorTypes.java index ee3bbcc1..f77afe74 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorTypes.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorTypes.java @@ -5,9 +5,9 @@ /** * Enum of the sensor types. * - * Simplified version of default Android Sensor.TYPE, with the order matching the table layout for - * the {@link MeasurementsFragment}. Includes virtual sensors and other - * data providing devices as well as derived data. + *

    Simplified version of default Android Sensor.TYPE, with the order matching the table layout + * for the {@link MeasurementsFragment}. Includes virtual sensors and other data providing devices + * as well as derived data. * * @author Mate Stodulka */ diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java index 9b73a141..500e85d1 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java @@ -4,30 +4,29 @@ import android.content.Context; import android.util.Log; - import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.Volley; import com.google.android.gms.maps.model.LatLng; - import org.json.JSONException; import org.json.JSONObject; + /** - * Class for creating and handling POST requests for obtaining the current position using - * WiFi positioning API from https://openpositioning.org/api/position/fine + * Class for creating and handling POST requests for obtaining the current position using WiFi + * positioning API from https://openpositioning.org/api/position/fine * - * The class creates POST requests based on WiFi fingerprints and obtains the user's location + *

    The class creates POST requests based on WiFi fingerprints and obtains the user's location * - * The request are handled asynchronously, The WiFi position coordinates and floor are updated + *

    The request are handled asynchronously, The WiFi position coordinates and floor are updated * when the response of the POST request is obtained. * - * One can create a POST request using the function provided in the class (createPostRequest()) with - * the WiFi fingerprint - * Its then added to the RequestQueue to be handled asynchronously (not blocking the main thread) - * When the response to the request is obtained the wifiLocation and floor are updated. - * Calling the getters for wifiLocation and the floor allows obtaining the WiFi location and floor - * from the POST request response. + *

    One can create a POST request using the function provided in the class (createPostRequest()) + * with the WiFi fingerprint Its then added to the RequestQueue to be handled asynchronously (not + * blocking the main thread) When the response to the request is obtained the wifiLocation and floor + * are updated. Calling the getters for wifiLocation and the floor allows obtaining the WiFi + * location and floor from the POST request response. + * * @author Arun Gopalakrishnan */ public class WiFiPositioning { @@ -38,6 +37,7 @@ public class WiFiPositioning { /** * Getter for the WiFi positioning coordinates obtained using openpositioning API + * * @return the user's coordinates based on openpositioning API */ public LatLng getWifiLocation() { @@ -46,8 +46,10 @@ public LatLng getWifiLocation() { // Store user's location obtained using WiFi positioning private LatLng wifiLocation; + /** - * Getter for the WiFi positioning floor obtained using openpositioning API + * Getter for the WiFi positioning floor obtained using openpositioning API + * * @return the user's location based on openpositioning API */ public int getFloor() { @@ -55,130 +57,165 @@ public int getFloor() { } // Store current floor of user, default value 0 (ground floor) - private int floor=0; - + private int floor = 0; /** * Constructor to create the WiFi positioning object * - * Initialising a request queue to handle the POST requests asynchronously + *

    Initialising a request queue to handle the POST requests asynchronously * * @param context Context of object calling */ - public WiFiPositioning(Context context){ + public WiFiPositioning(Context context) { // Initialising the Request queue this.requestQueue = Volley.newRequestQueue(context.getApplicationContext()); } /** - * Creates a POST request using the WiFi fingerprint to obtain user's location - * The POST request is issued to https://openpositioning.org/api/position/fine - * (the openpositioning API) with the WiFI fingerprint passed as the parameter. + * Creates a POST request using the WiFi fingerprint to obtain user's location The POST request + * is issued to https://openpositioning.org/api/position/fine (the openpositioning API) with the + * WiFI fingerprint passed as the parameter. * - * The response of the post request returns the coordinates of the WiFi position - * along with the floor of the building the user is at. + *

    The response of the post request returns the coordinates of the WiFi position along with + * the floor of the building the user is at. * - * A try and catch block along with error Logs have been added to keep a record of error's + *

    A try and catch block along with error Logs have been added to keep a record of error's * obtained while handling POST requests (for better maintainability and secure programming) * * @param jsonWifiFeatures WiFi Fingerprint from device */ public void request(JSONObject jsonWifiFeatures) { // Creating the POST request using WiFi fingerprint (a JSON object) - JsonObjectRequest jsonObjectRequest = new JsonObjectRequest( - Request.Method.POST, url, jsonWifiFeatures, - // Parses the response to obtain the WiFi location and WiFi floor - response -> { - try { - wifiLocation = new LatLng(response.getDouble("lat"),response.getDouble("lon")); - floor = response.getInt("floor"); - } catch (JSONException e) { - // Error log to keep record of errors (for secure programming and maintainability) - Log.e("jsonErrors","Error parsing response: "+e.getMessage()+" "+ response); - } - }, - // Handles the errors obtained from the POST request - error -> { - // Validation Error - if (error.networkResponse!=null && error.networkResponse.statusCode==422){ - Log.e("WiFiPositioning", "Validation Error "+ error.getMessage()); - } - // Other Errors - else{ - // When Response code is available - if (error.networkResponse!=null) { - Log.e("WiFiPositioning","Response Code: " + error.networkResponse.statusCode + ", " + error.getMessage()); - } - else{ - Log.e("WiFiPositioning","Error message: " + error.getMessage()); - } - } - } - ); + JsonObjectRequest jsonObjectRequest = + new JsonObjectRequest( + Request.Method.POST, + url, + jsonWifiFeatures, + // Parses the response to obtain the WiFi location and WiFi floor + response -> { + try { + wifiLocation = + new LatLng( + response.getDouble("lat"), + response.getDouble("lon")); + floor = response.getInt("floor"); + } catch (JSONException e) { + // Error log to keep record of errors (for secure programming and + // maintainability) + Log.e( + "jsonErrors", + "Error parsing response: " + + e.getMessage() + + " " + + response); + } + }, + // Handles the errors obtained from the POST request + error -> { + // Validation Error + if (error.networkResponse != null + && error.networkResponse.statusCode == 422) { + Log.e("WiFiPositioning", "Validation Error " + error.getMessage()); + } + // Other Errors + else { + // When Response code is available + if (error.networkResponse != null) { + Log.e( + "WiFiPositioning", + "Response Code: " + + error.networkResponse.statusCode + + ", " + + error.getMessage()); + } else { + Log.e( + "WiFiPositioning", + "Error message: " + error.getMessage()); + } + } + }); // Adds the request to the request queue requestQueue.add(jsonObjectRequest); } - /** - * Creates a POST request using the WiFi fingerprint to obtain user's location - * The POST request is issued to https://openpositioning.org/api/position/fine - * (the openpositioning API) with the WiFI fingerprint passed as the parameter. + * Creates a POST request using the WiFi fingerprint to obtain user's location The POST request + * is issued to https://openpositioning.org/api/position/fine (the openpositioning API) with the + * WiFI fingerprint passed as the parameter. * - * The response of the post request returns the coordinates of the WiFi position - * along with the floor of the building the user is at though a callback. + *

    The response of the post request returns the coordinates of the WiFi position along with + * the floor of the building the user is at though a callback. * - * A try and catch block along with error Logs have been added to keep a record of error's + *

    A try and catch block along with error Logs have been added to keep a record of error's * obtained while handling POST requests (for better maintainability and secure programming) * * @param jsonWifiFeatures WiFi Fingerprint from device * @param callback callback function to allow user to use location when ready */ - public void request( JSONObject jsonWifiFeatures, final VolleyCallback callback) { + public void request(JSONObject jsonWifiFeatures, final VolleyCallback callback) { // Creating the POST request using WiFi fingerprint (a JSON object) - JsonObjectRequest jsonObjectRequest = new JsonObjectRequest( - Request.Method.POST, url, jsonWifiFeatures, - response -> { - try { - Log.d("jsonObject",response.toString()); - wifiLocation = new LatLng(response.getDouble("lat"),response.getDouble("lon")); - floor = response.getInt("floor"); - callback.onSuccess(wifiLocation,floor); - } catch (JSONException e) { - Log.e("jsonErrors","Error parsing response: "+e.getMessage()+" "+ response); - callback.onError("Error parsing response: " + e.getMessage()); - } - }, - error -> { - // Validation Error - if (error.networkResponse!=null && error.networkResponse.statusCode==422){ - Log.e("WiFiPositioning", "Validation Error "+ error.getMessage()); - callback.onError( "Validation Error (422): "+ error.getMessage()); - } - // Other Errors - else{ - // When Response code is available - if (error.networkResponse!=null) { - Log.e("WiFiPositioning","Response Code: " + error.networkResponse.statusCode + ", " + error.getMessage()); - callback.onError("Response Code: " + error.networkResponse.statusCode + ", " + error.getMessage()); - } - else{ - Log.e("WiFiPositioning","Error message: " + error.getMessage()); - callback.onError("Error message: " + error.getMessage()); - } - } - } - ); + JsonObjectRequest jsonObjectRequest = + new JsonObjectRequest( + Request.Method.POST, + url, + jsonWifiFeatures, + response -> { + try { + Log.d("jsonObject", response.toString()); + wifiLocation = + new LatLng( + response.getDouble("lat"), + response.getDouble("lon")); + floor = response.getInt("floor"); + callback.onSuccess(wifiLocation, floor); + } catch (JSONException e) { + Log.e( + "jsonErrors", + "Error parsing response: " + + e.getMessage() + + " " + + response); + callback.onError("Error parsing response: " + e.getMessage()); + } + }, + error -> { + // Validation Error + if (error.networkResponse != null + && error.networkResponse.statusCode == 422) { + Log.e("WiFiPositioning", "Validation Error " + error.getMessage()); + callback.onError("Validation Error (422): " + error.getMessage()); + } + // Other Errors + else { + // When Response code is available + if (error.networkResponse != null) { + Log.e( + "WiFiPositioning", + "Response Code: " + + error.networkResponse.statusCode + + ", " + + error.getMessage()); + callback.onError( + "Response Code: " + + error.networkResponse.statusCode + + ", " + + error.getMessage()); + } else { + Log.e( + "WiFiPositioning", + "Error message: " + error.getMessage()); + callback.onError("Error message: " + error.getMessage()); + } + } + }); // Adds the request to the request queue requestQueue.add(jsonObjectRequest); } - /** - * Interface defined for the callback to access response obtained after POST request - */ + /** Interface defined for the callback to access response obtained after POST request */ public interface VolleyCallback { void onSuccess(LatLng location, int floor); + void onError(String message); } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/Wifi.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/Wifi.java index c117b81b..c54f5a6f 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/Wifi.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/Wifi.java @@ -5,7 +5,7 @@ /** * The Wifi object holds the Wifi parameters listed below. * - * It contains the ssid (the identifier of the wifi), bssid (the mac address of the wifi), level + *

    It contains the ssid (the identifier of the wifi), bssid (the mac address of the wifi), level * (the strength of the wifi in dB) and frequency (the frequency of the wifi network (2.4GHz or * 5GHz). For most objects only the bssid and the level are set. * @@ -19,37 +19,58 @@ public class Wifi { private long frequency; private boolean rttEnabled; - /** - * Empty public default constructor of the Wifi object. - */ - public Wifi(){} + /** Empty public default constructor of the Wifi object. */ + public Wifi() {} - /** - * Getters for each property - */ - public String getSsid() { return ssid; } - public long getBssid() { return bssid; } - public int getLevel() { return level; } - public long getFrequency() { return frequency; } - public boolean isRttEnabled() { return rttEnabled; } + /** Getters for each property */ + public String getSsid() { + return ssid; + } - /** - * Setters for each property - */ - public void setSsid(String ssid) { this.ssid = ssid; } - public void setBssid(long bssid) { this.bssid = bssid; } - public void setLevel(int level) { this.level = level; } - public void setFrequency(long frequency) { this.frequency = frequency; } - public void setRttEnabled(boolean rttEnabled) { this.rttEnabled = rttEnabled; } + public long getBssid() { + return bssid; + } + + public int getLevel() { + return level; + } + + public long getFrequency() { + return frequency; + } + + public boolean isRttEnabled() { + return rttEnabled; + } + + /** Setters for each property */ + public void setSsid(String ssid) { + this.ssid = ssid; + } + + public void setBssid(long bssid) { + this.bssid = bssid; + } + + public void setLevel(int level) { + this.level = level; + } + + public void setFrequency(long frequency) { + this.frequency = frequency; + } + + public void setRttEnabled(boolean rttEnabled) { + this.rttEnabled = rttEnabled; + } /** * Generates a string containing mac address and rssi of Wifi. * - * Concatenates mac address and rssi to display in the - * {@link MeasurementsFragment} fragment + *

    Concatenates mac address and rssi to display in the {@link MeasurementsFragment} fragment */ @Override public String toString() { - return "bssid: " + bssid +", level: " + level; + return "bssid: " + bssid + ", level: " + level; } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java index 50354ec8..e8ceeae2 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java @@ -12,35 +12,34 @@ import android.net.wifi.WifiManager; import android.provider.Settings; import android.widget.Toast; - import androidx.core.app.ActivityCompat; - import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; + /** * The WifiDataProcessor class is the Wi-Fi data gathering and processing class of the application. * It implements the wifi scanning and broadcasting design to identify a list of nearby Wi-Fis as * well as collecting information about the current Wi-Fi connection. - *

    - * The class implements {@link Observable} for informing {@link Observer} classes of updated - * variables. As such, it implements the {@link WifiDataProcessor#notifyObservers(int idx)} function and - * the {@link WifiDataProcessor#registerObserver(Observer o)} function to add new users which will - * be notified of new changes. - *

    - * The class ensures all required permissions are granted before enabling the Wi-Fi. The class will - * periodically start a wifi scan as determined by {@link SensorFusion}. When a broadcast is - * received it will collect a list of users and notify users. The - * {@link WifiDataProcessor#getCurrentWifiData()} function will return information about the current - * Wi-Fi when called by {@link SensorFusion}. + * + *

    The class implements {@link Observable} for informing {@link Observer} classes of updated + * variables. As such, it implements the {@link WifiDataProcessor#notifyObservers(int idx)} function + * and the {@link WifiDataProcessor#registerObserver(Observer o)} function to add new users which + * will be notified of new changes. + * + *

    The class ensures all required permissions are granted before enabling the Wi-Fi. The class + * will periodically start a wifi scan as determined by {@link SensorFusion}. When a broadcast is + * received it will collect a list of users and notify users. The {@link + * WifiDataProcessor#getCurrentWifiData()} function will return information about the current Wi-Fi + * when called by {@link SensorFusion}. * * @author Mate Stodulka * @author Virginia Cangelosi */ public class WifiDataProcessor implements Observable { - //Time over which a new scan will be initiated + // Time over which a new scan will be initiated private static final long scanInterval = 5000; // Application context for handling permissions and WifiManager instances @@ -48,27 +47,24 @@ public class WifiDataProcessor implements Observable { // Locations manager to enable access to Wifi data via the android system private final WifiManager wifiManager; - //List of nearby networks + // List of nearby networks private Wifi[] wifiData; - //List of observers to be notified when changes are detected + // List of observers to be notified when changes are detected private ArrayList observers; // Timer object private Timer scanWifiDataTimer; /** - * Public default constructor of the WifiDataProcessor class. - * The constructor saves the context, checks for permissions to use the location services, - * creates an instance of the shared preferences to access settings using the context, - * initialises the wifi manager, and creates a timer object and list of observers. It checks if - * wifi is enabled and enables wifi scans every 5seconds. It also informs the user to disable - * wifi throttling if the device implements it. - * - * @param context Application Context to be used for permissions and device accesses. + * Public default constructor of the WifiDataProcessor class. The constructor saves the context, + * checks for permissions to use the location services, creates an instance of the shared + * preferences to access settings using the context, initialises the wifi manager, and creates a + * timer object and list of observers. It checks if wifi is enabled and enables wifi scans every + * 5seconds. It also informs the user to disable wifi throttling if the device implements it. * + * @param context Application Context to be used for permissions and device accesses. * @see SensorFusion the intended parent class. - * * @author Virginia Cangelosi * @author Mate Stodulka */ @@ -83,149 +79,160 @@ public WifiDataProcessor(Context context) { // Decreapted method after API 29 // Turn on wifi if it is currently disabled // TODO - turn it to a notification toward user -// // if(permissionsGranted && wifiManager.getWifiState()== WifiManager.WIFI_STATE_DISABLED) { -// // wifiManager.setWifiEnabled(true); -// // } + // // if(permissionsGranted && wifiManager.getWifiState()== + // WifiManager.WIFI_STATE_DISABLED) { + // // wifiManager.setWifiEnabled(true); + // // } // Start wifi scan and return results via broadcast - if(permissionsGranted) { + if (permissionsGranted) { this.scanWifiDataTimer.schedule(new scheduledWifiScan(), 0, scanInterval); } - //Inform the user if wifi throttling is enabled on their device + // Inform the user if wifi throttling is enabled on their device checkWifiThrottling(); } /** - * Broadcast receiver to receive updates from the wifi manager. - * Receives updates when a wifi scan is complete. Observers are notified when the broadcast is - * received to update the list of wifis + * Broadcast receiver to receive updates from the wifi manager. Receives updates when a wifi + * scan is complete. Observers are notified when the broadcast is received to update the list of + * wifis */ - BroadcastReceiver wifiScanReceiver = new BroadcastReceiver() { - /** - * Updates the list of nearby wifis when the broadcast is received. - * Ensures wifi scans are not enabled if permissions are not granted. The list of wifis is - * then passed to store the Mac Address and strength and observers of the WifiDataProcessor - * class are notified of the updated wifi list. - * - * - * @param context Application Context to be used for permissions and device accesses. - * @param intent ???. - */ - @Override - public void onReceive(Context context, Intent intent) { - - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - // Unregister this listener - stopListening(); - return; - } - - //Collect the list of nearby wifis - List wifiScanList = wifiManager.getScanResults(); - //Stop receiver as scan is complete - context.unregisterReceiver(this); - - //Loop though each item in wifi list - wifiData = new Wifi[wifiScanList.size()]; - for(int i = 0; i < wifiScanList.size(); i++) { - wifiData[i] = new Wifi(); - //Convert String mac address to an integer - String wifiMacAddress = wifiScanList.get(i).BSSID; - long intMacAddress = convertBssidToLong(wifiMacAddress); - //store mac address and rssi of wifi - wifiData[i].setBssid(intMacAddress); - wifiData[i].setLevel(wifiScanList.get(i).level); - wifiData[i].setSsid(wifiScanList.get(i).SSID); - wifiData[i].setFrequency(wifiScanList.get(i).frequency); - wifiData[i].setRttEnabled(wifiScanList.get(i).is80211mcResponder()); - } - - //Notify observers of change in wifiData variable - notifyObservers(0); - } - }; + BroadcastReceiver wifiScanReceiver = + new BroadcastReceiver() { + /** + * Updates the list of nearby wifis when the broadcast is received. Ensures wifi + * scans are not enabled if permissions are not granted. The list of wifis is then + * passed to store the Mac Address and strength and observers of the + * WifiDataProcessor class are notified of the updated wifi list. + * + * @param context Application Context to be used for permissions and device + * accesses. + * @param intent ???. + */ + @Override + public void onReceive(Context context, Intent intent) { + + if (ActivityCompat.checkSelfPermission( + context, Manifest.permission.ACCESS_FINE_LOCATION) + != PackageManager.PERMISSION_GRANTED) { + // Unregister this listener + stopListening(); + return; + } + + // Collect the list of nearby wifis + List wifiScanList = wifiManager.getScanResults(); + // Stop receiver as scan is complete + context.unregisterReceiver(this); + + // Loop though each item in wifi list + wifiData = new Wifi[wifiScanList.size()]; + for (int i = 0; i < wifiScanList.size(); i++) { + wifiData[i] = new Wifi(); + // Convert String mac address to an integer + String wifiMacAddress = wifiScanList.get(i).BSSID; + long intMacAddress = convertBssidToLong(wifiMacAddress); + // store mac address and rssi of wifi + wifiData[i].setBssid(intMacAddress); + wifiData[i].setLevel(wifiScanList.get(i).level); + wifiData[i].setSsid(wifiScanList.get(i).SSID); + wifiData[i].setFrequency(wifiScanList.get(i).frequency); + wifiData[i].setRttEnabled(wifiScanList.get(i).is80211mcResponder()); + } + + // Notify observers of change in wifiData variable + notifyObservers(0); + } + }; /** - * Converts mac address from string to integer. - * Removes semicolons from mac address and converts each hex byte to a hex integer. + * Converts mac address from string to integer. Removes semicolons from mac address and converts + * each hex byte to a hex integer. * - * - * @param wifiMacAddress String Mac Address received from WifiManager containing colons - * - * @return Long variable with decimal conversion of the mac address + * @param wifiMacAddress String Mac Address received from WifiManager containing colons + * @return Long variable with decimal conversion of the mac address */ - private long convertBssidToLong(String wifiMacAddress){ - long intMacAddress =0; - int colonCount =5; - //Loop through each character - for(int j =0; j<17; j++){ - //Identify character + private long convertBssidToLong(String wifiMacAddress) { + long intMacAddress = 0; + int colonCount = 5; + // Loop through each character + for (int j = 0; j < 17; j++) { + // Identify character char macByte = wifiMacAddress.charAt(j); - //convert string hex mac address with colons to decimal long integer - if(macByte != ':'){ - //For characters 0-9 subtract 48 from ASCII code and multiply by 16^position - if((int) macByte >= 48 && (int) macByte <= 57){ - intMacAddress = intMacAddress + (((int)macByte-48)*((long)Math.pow(16,16-j-colonCount))); + // convert string hex mac address with colons to decimal long integer + if (macByte != ':') { + // For characters 0-9 subtract 48 from ASCII code and multiply by 16^position + if ((int) macByte >= 48 && (int) macByte <= 57) { + intMacAddress = + intMacAddress + + (((int) macByte - 48) + * ((long) Math.pow(16, 16 - j - colonCount))); } - //For characters a-f subtract 87 (=97-10) from ASCII code and multiply by 16^index - else if ((int) macByte >= 97 && (int) macByte <= 102){ - intMacAddress = intMacAddress + (((int)macByte-87)*((long)Math.pow(16,16-j-colonCount))); + // For characters a-f subtract 87 (=97-10) from ASCII code and multiply by 16^index + else if ((int) macByte >= 97 && (int) macByte <= 102) { + intMacAddress = + intMacAddress + + (((int) macByte - 87) + * ((long) Math.pow(16, 16 - j - colonCount))); } - } - else - //coloncount is used to obtain the index of each character - colonCount --; + } else + // coloncount is used to obtain the index of each character + colonCount--; } return intMacAddress; } /** - * Checks if the user authorised all permissions necessary for accessing wifi data. - * Explicit user permissions must be granted for android sdk version 23 and above. This - * function checks which permissions are granted, and returns their conjunction. + * Checks if the user authorised all permissions necessary for accessing wifi data. Explicit + * user permissions must be granted for android sdk version 23 and above. This function checks + * which permissions are granted, and returns their conjunction. * - * @return boolean true if all permissions are granted for wifi access, false otherwise. + * @return boolean true if all permissions are granted for wifi access, false otherwise. */ private boolean checkWifiPermissions() { - int wifiAccessPermission = ActivityCompat.checkSelfPermission(this.context, - Manifest.permission.ACCESS_WIFI_STATE); - int wifiChangePermission = ActivityCompat.checkSelfPermission(this.context, - Manifest.permission.CHANGE_WIFI_STATE); - int coarseLocationPermission = ActivityCompat.checkSelfPermission(this.context, - Manifest.permission.ACCESS_COARSE_LOCATION); - int fineLocationPermission = ActivityCompat.checkSelfPermission(this.context, - Manifest.permission.ACCESS_FINE_LOCATION); + int wifiAccessPermission = + ActivityCompat.checkSelfPermission( + this.context, Manifest.permission.ACCESS_WIFI_STATE); + int wifiChangePermission = + ActivityCompat.checkSelfPermission( + this.context, Manifest.permission.CHANGE_WIFI_STATE); + int coarseLocationPermission = + ActivityCompat.checkSelfPermission( + this.context, Manifest.permission.ACCESS_COARSE_LOCATION); + int fineLocationPermission = + ActivityCompat.checkSelfPermission( + this.context, Manifest.permission.ACCESS_FINE_LOCATION); // Return missing permissions - return wifiAccessPermission == PackageManager.PERMISSION_GRANTED && - wifiChangePermission == PackageManager.PERMISSION_GRANTED && - coarseLocationPermission == PackageManager.PERMISSION_GRANTED && - fineLocationPermission == PackageManager.PERMISSION_GRANTED; + return wifiAccessPermission == PackageManager.PERMISSION_GRANTED + && wifiChangePermission == PackageManager.PERMISSION_GRANTED + && coarseLocationPermission == PackageManager.PERMISSION_GRANTED + && fineLocationPermission == PackageManager.PERMISSION_GRANTED; } /** - * Scan for nearby networks. - * The method checks for permissions again, and then requests a scan of nearby wifis. A - * broadcast receiver is registered to be called when the scan is complete. + * Scan for nearby networks. The method checks for permissions again, and then requests a scan + * of nearby wifis. A broadcast receiver is registered to be called when the scan is complete. */ private void startWifiScan() { - //Check settings for wifi permissions - if(checkWifiPermissions()) { - //if(sharedPreferences.getBoolean("wifi", false)) { - //Register broadcast receiver for wifi scans - context.registerReceiver(wifiScanReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); + // Check settings for wifi permissions + if (checkWifiPermissions()) { + // if(sharedPreferences.getBoolean("wifi", false)) { + // Register broadcast receiver for wifi scans + context.registerReceiver( + wifiScanReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); wifiManager.startScan(); - //} + // } } } /** - * Initiate scans for nearby networks every 5 seconds. - * The method declares a new timer instance to schedule a scan for nearby wifis every 5 seconds. + * Initiate scans for nearby networks every 5 seconds. The method declares a new timer instance + * to schedule a scan for nearby wifis every 5 seconds. */ public void startListening() { this.scanWifiDataTimer = new Timer(); @@ -233,9 +240,8 @@ public void startListening() { } /** - * Cancel wifi scans. - * The method unregisters the broadcast receiver associated with the wifi scans and cancels the - * timer so that new scans are not initiated. + * Cancel wifi scans. The method unregisters the broadcast receiver associated with the wifi + * scans and cancels the timer so that new scans are not initiated. */ public void stopListening() { context.unregisterReceiver(wifiScanReceiver); @@ -243,26 +249,28 @@ public void stopListening() { } /** - * Inform user if throttling is resent on their device. - * If the device supports wifi throttling check if it is enabled and instruct the user to - * disable it. + * Inform user if throttling is resent on their device. If the device supports wifi throttling + * check if it is enabled and instruct the user to disable it. */ - public void checkWifiThrottling(){ + public void checkWifiThrottling() { if (!checkWifiPermissions()) { return; } - //If the device does not support wifi throttling an exception is thrown + // If the device does not support wifi throttling an exception is thrown try { boolean isThrottled = false; // For Android 11+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) { isThrottled = wifiManager.isScanThrottleEnabled(); } else { - isThrottled = Settings.Global.getInt(context.getContentResolver(), "wifi_scan_throttle_enabled") == 1; + isThrottled = + Settings.Global.getInt( + context.getContentResolver(), "wifi_scan_throttle_enabled") + == 1; } if (isThrottled) { - //Inform user to disable wifi throttling + // Inform user to disable wifi throttling Toast.makeText(context, "Disable Wi-Fi Throttling", Toast.LENGTH_SHORT).show(); } } catch (Settings.SettingNotFoundException e) { @@ -273,7 +281,7 @@ public void checkWifiThrottling(){ /** * Implement default method from Observable Interface to add new observers to the class. * - * @param o Classes which implement the Observer interface to receive updates from the class. + * @param o Classes which implement the Observer interface to receive updates from the class. */ @Override public void registerObserver(Observer o) { @@ -283,11 +291,12 @@ public void registerObserver(Observer o) { /** * Implement default method from Observable Interface to add notify observers to the class. * Changes to the wifiData variable are passed to observers of the class. - * @param idx Unused. + * + * @param idx Unused. */ @Override public void notifyObservers(int idx) { - for(Observer o : observers) { + for (Observer o : observers) { o.update(wifiData); } } @@ -295,8 +304,8 @@ public void notifyObservers(int idx) { /** * Class to schedule wifi scans. * - * Implements default method in {@link TimerTask} class which it implements. It begins to start - * calling wifi scans every 5 seconds. + *

    Implements default method in {@link TimerTask} class which it implements. It begins to + * start calling wifi scans every 5 seconds. */ private class scheduledWifiScan extends TimerTask { @@ -309,32 +318,31 @@ public void run() { /** * Obtains required information about wifi in which the device is currently connected. * - * A connectivity manager is used to obtain information about the current network. If the device - * is connected to a network its ssid, mac address and frequency is stored to a Wifi object so - * that it can be accessed by the caller of the method + *

    A connectivity manager is used to obtain information about the current network. If the + * device is connected to a network its ssid, mac address and frequency is stored to a Wifi + * object so that it can be accessed by the caller of the method * * @return wifi object containing the currently connected wifi's ssid, mac address and frequency */ - public Wifi getCurrentWifiData(){ - //Set up a connectivity manager to get information about the wifi - ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService - (Context.CONNECTIVITY_SERVICE); - //Set up a network info object to store information about the current network + public Wifi getCurrentWifiData() { + // Set up a connectivity manager to get information about the wifi + ConnectivityManager connectivityManager = + (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + // Set up a network info object to store information about the current network NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); - //Only obtain wifi data if the device is connected - //Wifi in which the device is currently connected to + // Only obtain wifi data if the device is connected + // Wifi in which the device is currently connected to Wifi currentWifi = new Wifi(); - if(networkInfo.isConnected()) { - //Store the ssid, mac address and frequency of the current wifi + if (networkInfo.isConnected()) { + // Store the ssid, mac address and frequency of the current wifi currentWifi.setSsid(wifiManager.getConnectionInfo().getSSID()); String wifiMacAddress = wifiManager.getConnectionInfo().getBSSID(); long intMacAddress = convertBssidToLong(wifiMacAddress); currentWifi.setBssid(intMacAddress); currentWifi.setFrequency(wifiManager.getConnectionInfo().getFrequency()); - } - else{ - //Store standard information if not connected + } else { + // Store standard information if not connected currentWifi.setSsid("Not connected"); currentWifi.setBssid(0); currentWifi.setFrequency(0); diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java b/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java index 3cf868aa..061fe481 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java @@ -3,382 +3,411 @@ import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_NUCLEUS; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_BUILDING_WITHOUT_FLOOR_MAPS; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_BUILDING_WITH_FLOOR_MAPS; -import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_FLOOR_PLAN_FILL_TRANSPARENT; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_FLOOR_PLAN_ELEMENTS; +import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_FLOOR_PLAN_FILL_TRANSPARENT; import static com.openpositioning.PositionMe.utils.UtilConstants.FLOOR_HEIGHT_DEFAULT; import static com.openpositioning.PositionMe.utils.UtilConstants.FLOOR_HEIGHT_NUCLEUS; import static com.openpositioning.PositionMe.utils.UtilConstants.LINE_WEIGHT_FLOOR_PLAN; import static com.openpositioning.PositionMe.utils.UtilConstants.LINE_WEIGHT_OUTLINE; import android.util.Log; - import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Polygon; import com.google.android.gms.maps.model.PolygonOptions; import com.google.android.gms.maps.model.Polyline; import com.google.android.gms.maps.model.PolylineOptions; - -import org.geojson.LngLatAlt; -import org.geojson.MultiLineString; -import org.geojson.MultiPolygon; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.geojson.LngLatAlt; +import org.geojson.MultiLineString; +import org.geojson.MultiPolygon; public class Building { - private static final int BUILDING_NO_FLOOR = -1; - private static final String BUILDING_GROUND_PREFIX = "G"; - - /* - * Sort the floor names in the order: - * - Basement - * - Lower ground - * - Ground - * - Upper ground - * - (Upper) Floors - * */ - private static final String[] BUILDING_FLOOR_PREFIX_ORDER = new String[] { - "B", "L", BUILDING_GROUND_PREFIX, "U", "F" - }; - - private List outlinePoints; - private String name; - private Map> floorPlans; - private List floorNames; - private float floorHeight; - private int floorNumber = BUILDING_NO_FLOOR; - private int groundFloorIndex = 0; - private boolean isInsideBuilding = false; - private boolean isPreviewingFloorPlan = false; - private Map> floorPlanElementOptions; - private Map> floorPlanElements; - private PolygonOptions outlinePolygonOptions; - private Polygon outlinePolygon; - - public Building( - String name, - List outlinePoints, - Map> floorPlans - ){ - this.name = name; - this.floorPlans = floorPlans; - this.outlinePoints = outlinePoints; - this.floorPlanElements = new HashMap<>(); + private static final int BUILDING_NO_FLOOR = -1; + private static final String BUILDING_GROUND_PREFIX = "G"; /* - Build the building outline, and all floor plan elements. - These Option objects will then be applied to a GoogleMap - object from TrajectoryMapManager to create a Polygon and - List of Polyline objects respectively - */ - this.outlinePolygonOptions = buildOutlinePolygon(); - this.floorPlanElementOptions = buildFloorPlanElements(); - this.floorNames = defineFloorNameOrder(new ArrayList<>(this.floorPlans.keySet())); - - // Define the floor height - if (name.equals(BUILDING_NAME_NUCLEUS)){ - floorHeight = FLOOR_HEIGHT_NUCLEUS; - } else { - floorHeight = FLOOR_HEIGHT_DEFAULT; - } - Log.d("Building", "Created new building: " + this.name); - } - - /** - * Prepare polygon of building outline - * @return PolygonOption representing the building outline - */ - private PolygonOptions buildOutlinePolygon(){ - return new PolygonOptions() - .strokeWidth(LINE_WEIGHT_OUTLINE) - .strokeColor(COLOUR_BUILDING_WITH_FLOOR_MAPS) - .fillColor(COLOUR_FLOOR_PLAN_FILL_TRANSPARENT) - .zIndex(0) - .clickable(true) - .addAll(this.outlinePoints); - } - - /** - * Generate a map of possible floor plans with their - * associated elements, indexed by floor plan name - * @return Map of floor plan elements indexed by name - */ - private Map> buildFloorPlanElements(){ - Map> floorPlanElementOptions = new HashMap<>(); - List floorNames = new ArrayList<>(this.floorPlans.keySet()); - for(String floorName : floorNames){ - List plan = floorPlans.get(floorName); - List floorElements = new ArrayList<>(); - - // Most building floor plans will be MultiPolygon - // Nucleus will use MultiLineString - for (Object multipolygon : plan){ - List> allCoordinates; - if (multipolygon instanceof MultiPolygon){ - allCoordinates = ((MultiPolygon) multipolygon).getCoordinates().get(0); - } else if (multipolygon instanceof MultiLineString){ - allCoordinates = ((MultiLineString) multipolygon).getCoordinates(); + * Sort the floor names in the order: + * - Basement + * - Lower ground + * - Ground + * - Upper ground + * - (Upper) Floors + * */ + private static final String[] BUILDING_FLOOR_PREFIX_ORDER = + new String[] {"B", "L", BUILDING_GROUND_PREFIX, "U", "F"}; + + private List outlinePoints; + private String name; + private Map> floorPlans; + private List floorNames; + private float floorHeight; + private int floorNumber = BUILDING_NO_FLOOR; + private int groundFloorIndex = 0; + private boolean isInsideBuilding = false; + private boolean isPreviewingFloorPlan = false; + private Map> floorPlanElementOptions; + private Map> floorPlanElements; + private PolygonOptions outlinePolygonOptions; + private Polygon outlinePolygon; + + public Building(String name, List outlinePoints, Map> floorPlans) { + this.name = name; + this.floorPlans = floorPlans; + this.outlinePoints = outlinePoints; + this.floorPlanElements = new HashMap<>(); + + /* + Build the building outline, and all floor plan elements. + These Option objects will then be applied to a GoogleMap + object from TrajectoryMapManager to create a Polygon and + List of Polyline objects respectively + */ + this.outlinePolygonOptions = buildOutlinePolygon(); + this.floorPlanElementOptions = buildFloorPlanElements(); + this.floorNames = defineFloorNameOrder(new ArrayList<>(this.floorPlans.keySet())); + + // Define the floor height + if (name.equals(BUILDING_NAME_NUCLEUS)) { + floorHeight = FLOOR_HEIGHT_NUCLEUS; } else { - // Initialise as empty if no valid plans available - allCoordinates = new ArrayList<>(); - allCoordinates.add(new ArrayList<>()); - Log.w("Building", name + ": Invalid floorplan during construction!"); + floorHeight = FLOOR_HEIGHT_DEFAULT; } - for (List elementCoordinates : allCoordinates){ - List floorElement = new ArrayList<>(); - for (LngLatAlt point : elementCoordinates){ - floorElement.add(new LatLng(point.getLatitude(), point.getLongitude())); - } - floorElements.add(new PolylineOptions() - .width(LINE_WEIGHT_FLOOR_PLAN) - .color(COLOUR_FLOOR_PLAN_ELEMENTS) - .zIndex(1) - .addAll(floorElement) - ); + Log.d("Building", "Created new building: " + this.name); + } + + /** + * Prepare polygon of building outline + * + * @return PolygonOption representing the building outline + */ + private PolygonOptions buildOutlinePolygon() { + return new PolygonOptions() + .strokeWidth(LINE_WEIGHT_OUTLINE) + .strokeColor(COLOUR_BUILDING_WITH_FLOOR_MAPS) + .fillColor(COLOUR_FLOOR_PLAN_FILL_TRANSPARENT) + .zIndex(0) + .clickable(true) + .addAll(this.outlinePoints); + } + + /** + * Generate a map of possible floor plans with their associated elements, indexed by floor plan + * name + * + * @return Map of floor plan elements indexed by name + */ + private Map> buildFloorPlanElements() { + Map> floorPlanElementOptions = new HashMap<>(); + List floorNames = new ArrayList<>(this.floorPlans.keySet()); + for (String floorName : floorNames) { + List plan = floorPlans.get(floorName); + List floorElements = new ArrayList<>(); + + // Most building floor plans will be MultiPolygon + // Nucleus will use MultiLineString + for (Object multipolygon : plan) { + List> allCoordinates; + if (multipolygon instanceof MultiPolygon) { + allCoordinates = ((MultiPolygon) multipolygon).getCoordinates().get(0); + } else if (multipolygon instanceof MultiLineString) { + allCoordinates = ((MultiLineString) multipolygon).getCoordinates(); + } else { + // Initialise as empty if no valid plans available + allCoordinates = new ArrayList<>(); + allCoordinates.add(new ArrayList<>()); + Log.w("Building", name + ": Invalid floorplan during construction!"); + } + for (List elementCoordinates : allCoordinates) { + List floorElement = new ArrayList<>(); + for (LngLatAlt point : elementCoordinates) { + floorElement.add(new LatLng(point.getLatitude(), point.getLongitude())); + } + floorElements.add( + new PolylineOptions() + .width(LINE_WEIGHT_FLOOR_PLAN) + .color(COLOUR_FLOOR_PLAN_ELEMENTS) + .zIndex(1) + .addAll(floorElement)); + } + } + floorPlanElementOptions.put(floorName, floorElements); } - } - floorPlanElementOptions.put(floorName, floorElements); + return floorPlanElementOptions; } - return floorPlanElementOptions; - } - - /** - * Sort the floor plan names such that the lowest index - * is the lowest floor. Also sets the ground floor index - * for future reference - * - * @param names The unsorted list of floor plan names - * @return The sorted floor plan names - * */ - private List defineFloorNameOrder(List names){ - List orderedNames = new ArrayList<>(); - for (String floorPrefix : BUILDING_FLOOR_PREFIX_ORDER){ - for (String name : names){ - if (name.toUpperCase().startsWith(floorPrefix)){ - orderedNames.add(name); + + /** + * Sort the floor plan names such that the lowest index is the lowest floor. Also sets the + * ground floor index for future reference + * + * @param names The unsorted list of floor plan names + * @return The sorted floor plan names + */ + private List defineFloorNameOrder(List names) { + List orderedNames = new ArrayList<>(); + for (String floorPrefix : BUILDING_FLOOR_PREFIX_ORDER) { + for (String name : names) { + if (name.toUpperCase().startsWith(floorPrefix)) { + orderedNames.add(name); + } + } } - } + // Set the index of the ground floor, for future reference + for (String name : orderedNames) { + if (name.toUpperCase().startsWith(BUILDING_GROUND_PREFIX)) { + this.groundFloorIndex = orderedNames.indexOf(name); + } + } + return orderedNames; } - // Set the index of the ground floor, for future reference - for (String name : orderedNames){ - if (name.toUpperCase().startsWith(BUILDING_GROUND_PREFIX)){ - this.groundFloorIndex = orderedNames.indexOf(name); - } + + public String getName() { + return name; } - return orderedNames; - } - - public String getName(){return name;} - public float getFloorHeight(){return floorHeight;} - public int getGroundFloorIndex(){return groundFloorIndex;} - - /** - * Getter to obtain if currently an indoor floor map is being displayed - * @return true if an indoor map is visible to the user, false otherwise - */ - public boolean getIsInsideBuilding(){return isInsideBuilding;} - public boolean getIsPreviowingFloorPlan(){return isPreviewingFloorPlan;} - public int getFloorNumber(){return floorNumber;} - public List getFloorNames(){return floorNames;} - public Polygon getBuildingOutline(){return outlinePolygon;} - public List getFloorPlanElements(String floorName){ - return floorPlanElements.get(floorName); - } - public void setIsPreviewingFloorPlan(boolean set){ - isPreviewingFloorPlan = set; - } - - /** - * Draw an outline of the building on the map. - * - * @param map The GoogleMap object where the outline is being drawn - * */ - public void drawBuildingOutline(GoogleMap map){ - if (outlinePolygon == null){ - // Set stroke colour depending on presence of floor plans - int strokeColour = - !floorPlans.isEmpty() - ? COLOUR_BUILDING_WITH_FLOOR_MAPS - : COLOUR_BUILDING_WITHOUT_FLOOR_MAPS; - this.outlinePolygon = map.addPolygon(outlinePolygonOptions.strokeColor(strokeColour)); - Log.i("Building", name + ": Building outline drawn"); - } else { - Log.i("Building", name + ": Outline already visible"); + + public float getFloorHeight() { + return floorHeight; } - } - - /** - * Set the fill colour of the building polygon - * - * @param colour The desired colour of the polygon - * */ - public void setFillColour(int colour){ - if (outlinePolygon == null){ - Log.w("Building", name + ": Outline polygon is null!"); - } else { - outlinePolygon.setFillColor(colour); + + public int getGroundFloorIndex() { + return groundFloorIndex; } - } - - /** - * Draw the floor plan elements of the desired floor on a map object - * - * @param newFloor The number of the floor being drawn - * @param gMap The GoogleMap object where floor plans are being drawn - * */ - public void setCurrentFloor(int newFloor, GoogleMap gMap) { - if (newFloor < 0 || newFloor >= floorNames.size()) { - Log.w( - "Building", - name + ": Suggested floor " + newFloor + " outside of range {0," + floorNames.size() + "}" - ); - } else if (newFloor == floorNumber){ - // Redraw the floor plan elements - editFloorPlan(gMap, floorNumber, true); - Log.w("Building", name + ": Already on floor " + newFloor); - } else { - // Floor number initialises to -1, so reinitialise if required - if (floorNumber == BUILDING_NO_FLOOR){ - floorNumber = groundFloorIndex; - } else { - // Remove old floor plan before continuing - editFloorPlan(gMap, floorNumber, false); - floorNumber = newFloor; - } - editFloorPlan(gMap, floorNumber, true); - Log.i("Building", name + ": Floor set to " + floorNumber); + + /** + * Getter to obtain if currently an indoor floor map is being displayed + * + * @return true if an indoor map is visible to the user, false otherwise + */ + public boolean getIsInsideBuilding() { + return isInsideBuilding; } - } - - /** - * Hide all available floor plans for the building - * - * @param map The GoogleMap object showing the floor plans - * of the building - * */ - public void hideFloorPlans(GoogleMap map){ - for (int i = 0; i < floorNames.size(); i++) { - editFloorPlan(map, i, false); + + public boolean getIsPreviowingFloorPlan() { + return isPreviewingFloorPlan; } - // Reset floor number upon leaving building - if (!isInsideBuilding){ - floorNumber = BUILDING_NO_FLOOR; + + public int getFloorNumber() { + return floorNumber; } - } - - /** - * Draw the desired floor number's floor plan on the map. - *

    - * Either add the polylines required if they have never been - * drawn before, or toggle their visibility - * @param map The GoogleMap object drawing the floor plans - * @param floorNumber The floor being displayed or hidden - * @param showFloor True if the floor plan should be visible; - * false otherwise, to hide the floorplan - * */ - public void editFloorPlan(GoogleMap map, int floorNumber, boolean showFloor){ - String floorName = floorNames.get(floorNumber); - List elements; - - // Use pre-existing floor plan elements if possible - if (floorPlanElements.containsKey(floorName)){ - elements = floorPlanElements.get(floorName); - } else { - // Continue only if floor plan elements can be created - if (!floorPlanElementOptions.containsKey(floorName)) { - Log.w("Building", name + ": Floor " + floorNumber + " has no floor plan!"); - return; - } - // Create the PolyLine objects for the first time - elements = new ArrayList<>(); - for (PolylineOptions options : floorPlanElementOptions.get(floorName)){ - Polyline floorElement = map.addPolyline(options); - elements.add(floorElement); - } - floorPlanElements.put(floorName, elements); - Log.i("Building", name + " floor " + floorNumber + " added to list"); + + public List getFloorNames() { + return floorNames; } - // With all elements gathered, set their visibility as required - for (Polyline element : elements){ - element.setVisible(showFloor); + public Polygon getBuildingOutline() { + return outlinePolygon; } - Log.i("Building", name + " floor " + floorNumber + " visibility set to " + showFloor); - } - - /** - * Function to check if point in polygon (approximates earth to be flat) - * Ray casting algorithm https://en.wikipedia.org/wiki/Point_in_polygon - * @param point point to be checked if in polygon - * @return True if point in polygon - * False otherwise - */ - public boolean isPointInBuilding(LatLng point) { - int numCrossings = 0; - // For each edge - for (int i=0; i < outlinePoints.size(); i++) { - LatLng a = outlinePoints.get(i); - int j = i + 1; - // Last edge (includes first point of Polygon) - if (j >= outlinePoints.size()) { - j = 0; - } - LatLng b = outlinePoints.get(j); - if (crossingSegment(point, a, b)) { - numCrossings++; - } + + public List getFloorPlanElements(String floorName) { + return floorPlanElements.get(floorName); } - // If odd number of numCrossings, return true (point is in polygon) - isInsideBuilding = (numCrossings % 2 == 1); - return isInsideBuilding; - } - - /** - * Ray Casting algorithm for a segment joining ab - * @param point the point we check - * @param a the line segment's starting point - * @param b the line segment's ending point - * @return True if the point is - * 1) To the left of the segment ab - * 2) Not above nor below the segment ab - * Otherwise False - */ - private static boolean crossingSegment(LatLng point, LatLng a,LatLng b) { - double pointLng = point.longitude, - pointLat = point.latitude, - aLng = a.longitude, - aLat = a.latitude, - bLng = b.longitude, - bLat = b.latitude; - if (aLat > bLat) { - aLng = b.longitude; - aLat = b.latitude; - bLng = a.longitude; - bLat = a.latitude; + public void setIsPreviewingFloorPlan(boolean set) { + isPreviewingFloorPlan = set; } - // Alter longitude to correct for 180 degree crossings - if (pointLng < 0 || aLng <0 || bLng <0) { pointLng += 360; aLng+=360; bLng+=360; } - // If point has same latitude as a or b, increase slightly pointLat - if (pointLat == aLat || pointLat == bLat) pointLat += 0.00000001; - - //If the point is above, below or to the right of the segment,return false - if ((pointLat > bLat || pointLat < aLat) || (pointLng > Math.max(aLng, bLng))){ - return false; + + /** + * Draw an outline of the building on the map. + * + * @param map The GoogleMap object where the outline is being drawn + */ + public void drawBuildingOutline(GoogleMap map) { + if (outlinePolygon == null) { + // Set stroke colour depending on presence of floor plans + int strokeColour = + !floorPlans.isEmpty() + ? COLOUR_BUILDING_WITH_FLOOR_MAPS + : COLOUR_BUILDING_WITHOUT_FLOOR_MAPS; + this.outlinePolygon = map.addPolygon(outlinePolygonOptions.strokeColor(strokeColour)); + Log.i("Building", name + ": Building outline drawn"); + } else { + Log.i("Building", name + ": Outline already visible"); + } + } + + /** + * Set the fill colour of the building polygon + * + * @param colour The desired colour of the polygon + */ + public void setFillColour(int colour) { + if (outlinePolygon == null) { + Log.w("Building", name + ": Outline polygon is null!"); + } else { + outlinePolygon.setFillColor(colour); + } + } + + /** + * Draw the floor plan elements of the desired floor on a map object + * + * @param newFloor The number of the floor being drawn + * @param gMap The GoogleMap object where floor plans are being drawn + */ + public void setCurrentFloor(int newFloor, GoogleMap gMap) { + if (newFloor < 0 || newFloor >= floorNames.size()) { + Log.w( + "Building", + name + + ": Suggested floor " + + newFloor + + " outside of range {0," + + floorNames.size() + + "}"); + } else if (newFloor == floorNumber) { + // Redraw the floor plan elements + editFloorPlan(gMap, floorNumber, true); + Log.w("Building", name + ": Already on floor " + newFloor); + } else { + // Floor number initialises to -1, so reinitialise if required + if (floorNumber == BUILDING_NO_FLOOR) { + floorNumber = groundFloorIndex; + } else { + // Remove old floor plan before continuing + editFloorPlan(gMap, floorNumber, false); + floorNumber = newFloor; + } + editFloorPlan(gMap, floorNumber, true); + Log.i("Building", name + ": Floor set to " + floorNumber); + } } - // If the point is not above, below or to the right and is to the left, return true - else if (pointLng < Math.min(aLng, bLng)){ - return true; + + /** + * Hide all available floor plans for the building + * + * @param map The GoogleMap object showing the floor plans of the building + */ + public void hideFloorPlans(GoogleMap map) { + for (int i = 0; i < floorNames.size(); i++) { + editFloorPlan(map, i, false); + } + // Reset floor number upon leaving building + if (!isInsideBuilding) { + floorNumber = BUILDING_NO_FLOOR; + } } - // Comparing the slope of segment [a,b] (slope1) - // and segment [a,point] (slope2) to check if to the left of segment [a,b] or not - else { - double slope1 = (aLng != bLng) ? ((bLat - aLat) / (bLng - aLng)) : Double.POSITIVE_INFINITY; - double slope2 = (aLng != pointLng) ? ((pointLat - aLat) / (pointLng - aLng)) : Double.POSITIVE_INFINITY; - return (slope2 >= slope1); + + /** + * Draw the desired floor number's floor plan on the map. + * + *

    Either add the polylines required if they have never been drawn before, or toggle their + * visibility + * + * @param map The GoogleMap object drawing the floor plans + * @param floorNumber The floor being displayed or hidden + * @param showFloor True if the floor plan should be visible; false otherwise, to hide the + * floorplan + */ + public void editFloorPlan(GoogleMap map, int floorNumber, boolean showFloor) { + String floorName = floorNames.get(floorNumber); + List elements; + + // Use pre-existing floor plan elements if possible + if (floorPlanElements.containsKey(floorName)) { + elements = floorPlanElements.get(floorName); + } else { + // Continue only if floor plan elements can be created + if (!floorPlanElementOptions.containsKey(floorName)) { + Log.w("Building", name + ": Floor " + floorNumber + " has no floor plan!"); + return; + } + // Create the PolyLine objects for the first time + elements = new ArrayList<>(); + for (PolylineOptions options : floorPlanElementOptions.get(floorName)) { + Polyline floorElement = map.addPolyline(options); + elements.add(floorElement); + } + floorPlanElements.put(floorName, elements); + Log.i("Building", name + " floor " + floorNumber + " added to list"); + } + + // With all elements gathered, set their visibility as required + for (Polyline element : elements) { + element.setVisible(showFloor); + } + Log.i("Building", name + " floor " + floorNumber + " visibility set to " + showFloor); + } + + /** + * Function to check if point in polygon (approximates earth to be flat) Ray casting algorithm + * https://en.wikipedia.org/wiki/Point_in_polygon + * + * @param point point to be checked if in polygon + * @return True if point in polygon False otherwise + */ + public boolean isPointInBuilding(LatLng point) { + int numCrossings = 0; + // For each edge + for (int i = 0; i < outlinePoints.size(); i++) { + LatLng a = outlinePoints.get(i); + int j = i + 1; + // Last edge (includes first point of Polygon) + if (j >= outlinePoints.size()) { + j = 0; + } + LatLng b = outlinePoints.get(j); + if (crossingSegment(point, a, b)) { + numCrossings++; + } + } + + // If odd number of numCrossings, return true (point is in polygon) + isInsideBuilding = (numCrossings % 2 == 1); + return isInsideBuilding; + } + + /** + * Ray Casting algorithm for a segment joining ab + * + * @param point the point we check + * @param a the line segment's starting point + * @param b the line segment's ending point + * @return True if the point is 1) To the left of the segment ab 2) Not above nor below the + * segment ab Otherwise False + */ + private static boolean crossingSegment(LatLng point, LatLng a, LatLng b) { + double pointLng = point.longitude, + pointLat = point.latitude, + aLng = a.longitude, + aLat = a.latitude, + bLng = b.longitude, + bLat = b.latitude; + if (aLat > bLat) { + aLng = b.longitude; + aLat = b.latitude; + bLng = a.longitude; + bLat = a.latitude; + } + // Alter longitude to correct for 180 degree crossings + if (pointLng < 0 || aLng < 0 || bLng < 0) { + pointLng += 360; + aLng += 360; + bLng += 360; + } + // If point has same latitude as a or b, increase slightly pointLat + if (pointLat == aLat || pointLat == bLat) pointLat += 0.00000001; + + // If the point is above, below or to the right of the segment,return false + if ((pointLat > bLat || pointLat < aLat) || (pointLng > Math.max(aLng, bLng))) { + return false; + } + // If the point is not above, below or to the right and is to the left, return true + else if (pointLng < Math.min(aLng, bLng)) { + return true; + } + // Comparing the slope of segment [a,b] (slope1) + // and segment [a,point] (slope2) to check if to the left of segment [a,b] or not + else { + double slope1 = + (aLng != bLng) ? ((bLat - aLat) / (bLng - aLng)) : Double.POSITIVE_INFINITY; + double slope2 = + (aLng != pointLng) + ? ((pointLat - aLat) / (pointLng - aLng)) + : Double.POSITIVE_INFINITY; + return (slope2 >= slope1); + } } - } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/CircularFloatBuffer.java b/app/src/main/java/com/openpositioning/PositionMe/utils/CircularFloatBuffer.java index 73abb674..9979dbd3 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/CircularFloatBuffer.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/CircularFloatBuffer.java @@ -22,7 +22,7 @@ public class CircularFloatBuffer { /** * Default constructor for a Circular Float Buffer with a given capacity. * - * @param capacity size of the array. + * @param capacity size of the array. */ public CircularFloatBuffer(int capacity) { this.capacity = (capacity < 1) ? DEFAULT_CAPACITY : capacity; @@ -32,11 +32,11 @@ public CircularFloatBuffer(int capacity) { } /** - * Put in a new element to the array. - * Overwrites the existing values if present already and moves the write head forward. + * Put in a new element to the array. Overwrites the existing values if present already and + * moves the write head forward. * - * @param element float value to be added to the array. - * @return true if adding to the element was successful. + * @param element float value to be added to the array. + * @return true if adding to the element was successful. */ public boolean putNewest(float element) { int nextWriteSeq = writeSequence + 1; @@ -46,11 +46,10 @@ public boolean putNewest(float element) { } /** - * Get the oldest element in the array. - * If empty, return an empty Optional. Moves the read head forward. - * - * @return Optional float of the oldest element. + * Get the oldest element in the array. If empty, return an empty Optional. Moves the read head + * forward. * + * @return Optional float of the oldest element. * @see Optional */ public Optional getOldest() { @@ -65,7 +64,7 @@ public Optional getOldest() { /** * Get the capacity of the buffer. * - * @return int capacity, size of the underlying array. + * @return int capacity, size of the underlying array. */ public int getCapacity() { return capacity; @@ -74,7 +73,7 @@ public int getCapacity() { /** * Get the number of elements currently in the buffer. * - * @return int number of floats in the buffer. + * @return int number of floats in the buffer. */ public int getCurrentSize() { return (writeSequence - readSequence) + 1; @@ -83,7 +82,7 @@ public int getCurrentSize() { /** * Checks if the buffer is empty. * - * @return true if there are no elements in the buffer, false otherwise + * @return true if there are no elements in the buffer, false otherwise */ public boolean isEmpty() { return writeSequence < readSequence; @@ -92,23 +91,22 @@ public boolean isEmpty() { /** * Check if the buffer is full. * - * @return true if the number of elements in the buffer matches the capacity, false otherwise. + * @return true if the number of elements in the buffer matches the capacity, false otherwise. */ public boolean isFull() { return getCurrentSize() >= capacity; } /** - * Get a copy of the buffer as a list starting with the oldest element. - * If the list is not full return null. + * Get a copy of the buffer as a list starting with the oldest element. If the list is not full + * return null. * * @return List of Floats contained in the buffer from oldest to newest. */ public List getListCopy() { - if(!isFull()) return null; + if (!isFull()) return null; return IntStream.range(readSequence, readSequence + capacity) .mapToObj(i -> this.data[i % capacity]) .collect(Collectors.toList()); } - } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java index 8148631d..fd099e75 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java @@ -1,20 +1,18 @@ package com.openpositioning.PositionMe.utils; -import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_NUCLEUS; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_FLOOR_PLAN_FILL_INSIDE; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_FLOOR_PLAN_FILL_TRANSPARENT; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.model.LatLng; - import java.util.ArrayList; import java.util.List; /** - * Class used to manage indoor floor map overlays - * Currently used by RecordingFragment - * @see Building Describes the bounds of buildings and the methods to check if point is - * in the building + * Class used to manage indoor floor map overlays Currently used by RecordingFragment + * + * @see Building Describes the bounds of buildings and the methods to check if point is in the + * building * @author Arun Gopalakrishnan */ public class IndoorMapManager { @@ -27,20 +25,30 @@ public class IndoorMapManager { /** * Constructor to set the map instance + * * @param map The map on which the indoor floor map overlays are set */ - public IndoorMapManager(GoogleMap map){this.gMap=map;} - public List getAllBuildings(){return buildings;} - public List getAllBuildingNames(){return buildingNames;} - public void addBuilding(Building building){ + public IndoorMapManager(GoogleMap map) { + this.gMap = map; + } + + public List getAllBuildings() { + return buildings; + } + + public List getAllBuildingNames() { + return buildingNames; + } + + public void addBuilding(Building building) { buildings.add(building); buildingNames.add(building.getName()); } /** - * Function to update the current location of user - * and display the indoor map if user in building - * with indoor map available + * Function to update the current location of user and display the indoor map if user in + * building with indoor map available + * * @param currentLocation Location of user */ public void setCurrentLocation(LatLng currentLocation) { @@ -48,18 +56,15 @@ public void setCurrentLocation(LatLng currentLocation) { drawBuildingPolygons(); } - /** - * Handle polygon drawing if inside the building, - * and hide all elements otherwise - * */ - private void drawBuildingPolygons(){ - for (Building building : buildings){ - if (building.equals(getCurrentBuilding(currentLocation))){ + /** Handle polygon drawing if inside the building, and hide all elements otherwise */ + private void drawBuildingPolygons() { + for (Building building : buildings) { + if (building.equals(getCurrentBuilding(currentLocation))) { building.setFillColour(COLOUR_FLOOR_PLAN_FILL_INSIDE); building.setCurrentFloor(Math.max(building.getFloorNumber(), 0), gMap); // Disable preview if present building.setIsPreviewingFloorPlan(false); - } else if (building.getIsPreviowingFloorPlan()){ + } else if (building.getIsPreviowingFloorPlan()) { return; } else { building.setFillColour(COLOUR_FLOOR_PLAN_FILL_TRANSPARENT); @@ -69,16 +74,14 @@ private void drawBuildingPolygons(){ } /** - * Get the building the user is currently inside of, - * based on a given position. + * Get the building the user is currently inside of, based on a given position. * * @param position The position being queried - * @return The building, if position is inside one, - * or null if no building contains position - * */ - public Building getCurrentBuilding(LatLng position){ - for (Building building : buildings){ - if (building.isPointInBuilding(position)){ + * @return The building, if position is inside one, or null if no building contains position + */ + public Building getCurrentBuilding(LatLng position) { + for (Building building : buildings) { + if (building.isPointInBuilding(position)) { return building; } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/PathView.java b/app/src/main/java/com/openpositioning/PositionMe/utils/PathView.java index 5a5efa8d..6627329f 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/PathView.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/PathView.java @@ -7,20 +7,17 @@ import android.graphics.Path; import android.util.AttributeSet; import android.view.View; - import com.openpositioning.PositionMe.presentation.fragment.CorrectionFragment; import com.openpositioning.PositionMe.sensors.SensorFusion; - import java.util.ArrayList; import java.util.Collections; /** - * This View class displays the path taken in the UI. - * A path of straight lines is drawn based on PDR coordinates. The coordinates are passed to - * PathView by calling method {@link PathView#drawTrajectory(float[])} in {@link SensorFusion}. - * The coordinates are scaled and centered in {@link PathView#scaleTrajectory()} to fill the - * device's screen. The scaling ratio is passed to the {@link CorrectionFragment} for calculating - * the Google Maps zoom ratio. + * This View class displays the path taken in the UI. A path of straight lines is drawn based on PDR + * coordinates. The coordinates are passed to PathView by calling method {@link + * PathView#drawTrajectory(float[])} in {@link SensorFusion}. The coordinates are scaled and + * centered in {@link PathView#scaleTrajectory()} to fill the device's screen. The scaling ratio is + * passed to the {@link CorrectionFragment} for calculating the Google Maps zoom ratio. * * @author Michal Dvorak * @author Virginia Cangelosi @@ -41,18 +38,18 @@ public class PathView extends View { private CorrectionFragment correctionFragment = new CorrectionFragment(); // Boolean flag to avoid rescaling trajectory when view is redrawn private static boolean firstTimeOnDraw = true; - //Variable to only draw when the variable is true + // Variable to only draw when the variable is true private static boolean draw = true; - //Variable to only draw when the variable is true + // Variable to only draw when the variable is true private static boolean reDraw = false; /** * Public default constructor for PathView. The constructor initialises the view with a context - * and attribute set, sets the view as focusable and focusable in touch mode and calls - * {@link PathView#setupPaint()} to initialise the paint object with colour and style. + * and attribute set, sets the view as focusable and focusable in touch mode and calls {@link + * PathView#setupPaint()} to initialise the paint object with colour and style. * - * @param context Application Context to be used for permissions and device accesses. - * @param attrs The attribute set of the view. + * @param context Application Context to be used for permissions and device accesses. + * @param attrs The attribute set of the view. */ public PathView(Context context, AttributeSet attrs) { super(context, attrs); @@ -83,56 +80,56 @@ private void setupPaint() { /** * {@inheritDoc} * - * Method drawing the created path with our paint. + *

    Method drawing the created path with our paint. * * @param canvas The canvas on which the path will be drawn */ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); - //If drawing for first time scale trajectory to fit screen - if(this.draw){ + // If drawing for first time scale trajectory to fit screen + if (this.draw) { // If there are no coordinates, don't draw anything - if (xCoords.size() == 0) - return; + if (xCoords.size() == 0) return; - //Scale trajectory to fit screen + // Scale trajectory to fit screen scaleTrajectory(); // Start a new path at the center of the view - path.moveTo(getWidth()/2, getHeight()/2); + path.moveTo(getWidth() / 2, getHeight() / 2); // Draw line between last point and this point for (int i = 1; i < xCoords.size(); i++) { path.lineTo(xCoords.get(i), yCoords.get(i)); } - //Draw path + // Draw path canvas.drawPath(path, drawPaint); - //Ensure path not redrawn + // Ensure path not redrawn draw = false; } - //If redrawing due to scaling of the average step length - else if(reDraw){ + // If redrawing due to scaling of the average step length + else if (reDraw) { // If there are no coordinates, don't draw anything - if (xCoords.size() == 0) - return; + if (xCoords.size() == 0) return; - //Clear old path + // Clear old path path.reset(); - // Iterate over all coordinates, shifting to the center and scaling then returning to original location + // Iterate over all coordinates, shifting to the center and scaling then returning to + // original location for (int i = 0; i < xCoords.size(); i++) { - float newXCoord = (xCoords.get(i) - getWidth()/2) * scalingRatio + getWidth()/2; + float newXCoord = (xCoords.get(i) - getWidth() / 2) * scalingRatio + getWidth() / 2; xCoords.set(i, newXCoord); - float newYCoord = (yCoords.get(i) - getHeight()/2) * scalingRatio + getHeight()/2; + float newYCoord = + (yCoords.get(i) - getHeight() / 2) * scalingRatio + getHeight() / 2; yCoords.set(i, newYCoord); } // Start a new path at the center of the view - path.moveTo(getWidth()/2, getHeight()/2); + path.moveTo(getWidth() / 2, getHeight() / 2); // Draw line between last point and this point for (int i = 1; i < xCoords.size(); i++) { @@ -141,17 +138,15 @@ else if(reDraw){ canvas.drawPath(path, drawPaint); - //Ensure path not redrawn when screen is resized + // Ensure path not redrawn when screen is resized reDraw = false; - } - else{ + } else { // If there are no coordinates, don't draw anything - if (xCoords.size() == 0) - return; + if (xCoords.size() == 0) return; // Start a new path at the center of the view - path.moveTo(getWidth()/2, getHeight()/2); + path.moveTo(getWidth() / 2, getHeight() / 2); // Draw line between last point and this point for (int i = 1; i < xCoords.size(); i++) { @@ -177,9 +172,8 @@ public void drawTrajectory(float[] newCords) { } /** - * Method used for scaling PDR coordinates to fill the screen. - * Center of the view is used as the origin, scaling ratio is calculated for the path to fit - * the screen with margins included. + * Method used for scaling PDR coordinates to fill the screen. Center of the view is used as the + * origin, scaling ratio is calculated for the path to fit the screen with margins included. */ private void scaleTrajectory() { // Get the center coordinates of the view @@ -193,7 +187,8 @@ private void scaleTrajectory() { float yBottomRange = (getHeight() / 2) / (Math.abs(Collections.min(yCoords))); // Take the minimum scaling ratio to ensure all points fit within the view - float minRatio = Math.min(Math.min(xRightRange, xLeftRange), Math.min(yTopRange, yBottomRange)); + float minRatio = + Math.min(Math.min(xRightRange, xLeftRange), Math.min(yTopRange, yBottomRange)); // Add margins to the scaling ratio scalingRatio = 0.9f * minRatio; @@ -217,8 +212,8 @@ private void scaleTrajectory() { } /** - * Method called when PathView is detached from its window. {@link PathView#xCoords} and - * {@link PathView#yCoords} are cleared so that path can start from 0 for next recording. + * Method called when PathView is detached from its window. {@link PathView#xCoords} and {@link + * PathView#yCoords} are cleared so that path can start from 0 for next recording. */ @Override protected void onDetachedFromWindow() { @@ -226,22 +221,21 @@ protected void onDetachedFromWindow() { // Reset trajectory xCoords.clear(); yCoords.clear(); - //New recording so must scale trajectory + // New recording so must scale trajectory draw = true; } /** - * Redraw trajectory to rescale the path. - * Called by {@link CorrectionFragment} through {@link SensorFusion} to reset the scaling ratio - * which will resize the path. It enables the redraw flag so new path is drawn. + * Redraw trajectory to rescale the path. Called by {@link CorrectionFragment} through {@link + * SensorFusion} to reset the scaling ratio which will resize the path. It enables the redraw + * flag so new path is drawn. * * @param newScale */ - public void redraw(float newScale){ - //Set scaling ratio based on user input + public void redraw(float newScale) { + // Set scaling ratio based on user input scalingRatio = newScale; - //Enable redrawing of path + // Enable redrawing of path reDraw = true; } - } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/PdrProcessing.java b/app/src/main/java/com/openpositioning/PositionMe/utils/PdrProcessing.java index 9765b044..d1039a4e 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/PdrProcessing.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/PdrProcessing.java @@ -3,21 +3,18 @@ import android.content.Context; import android.content.SharedPreferences; import android.hardware.SensorManager; - import androidx.preference.PreferenceManager; - import com.openpositioning.PositionMe.sensors.SensorFusion; - import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.OptionalDouble; import java.util.Objects; +import java.util.OptionalDouble; import java.util.stream.Collectors; /** - * Processes data recorded in the {@link SensorFusion} class and calculates live PDR estimates. - * It calculates the position from the steps and directions detected, using either estimated values + * Processes data recorded in the {@link SensorFusion} class and calculates live PDR estimates. It + * calculates the position from the steps and directions detected, using either estimated values * (eg. stride length from the Weiberg algorithm) or provided constants, calculates the elevation * and attempts to estimate the current floor as well as elevators. * @@ -26,7 +23,7 @@ */ public class PdrProcessing { - //region Static variables + // region Static variables // Weiberg algorithm coefficient for stride calculations private static final float K = 0.364f; // Number of samples (seconds) to keep as memory for elevation calculation @@ -38,9 +35,9 @@ public class PdrProcessing { // Threshold under which movement is considered non-existent private static final float epsilon = 0.18f; private static final int MIN_REQUIRED_SAMPLES = 2; - //endregion + // endregion - //region Instance variables + // region Instance variables // Settings for accessing shared variables private SharedPreferences settings; @@ -71,20 +68,21 @@ public class PdrProcessing { // Step sum and length aggregation variables private float sumStepLength = 0; private int stepCount = 0; - //endregion + + // endregion /** - * Public constructor for the PDR class. - * Takes context for variable access. Sets initial values based on settings. + * Public constructor for the PDR class. Takes context for variable access. Sets initial values + * based on settings. * - * @param context Application context for variable access. + * @param context Application context for variable access. */ public PdrProcessing(Context context) { // Initialise settings this.settings = PreferenceManager.getDefaultSharedPreferences(context); // Check if estimate or manual values should be used this.useManualStep = this.settings.getBoolean("manual_step_values", false); - if(useManualStep) { + if (useManualStep) { try { // Retrieve manual step length this.stepLength = this.settings.getInt("user_step_length", 75) / 100f; @@ -93,8 +91,7 @@ public PdrProcessing(Context context) { this.stepLength = 0.75f; this.settings.edit().putInt("user_step_length", 75).apply(); } - } - else { + } else { // Using estimated step length - set to zero this.stepLength = 0; } @@ -104,16 +101,20 @@ public PdrProcessing(Context context) { this.positionY = 0f; this.elevation = 0f; - - if(this.settings.getBoolean("overwrite_constants", false)) { + if (this.settings.getBoolean("overwrite_constants", false)) { // Capacity - pressure is read with 1Hz - store values of past 10 seconds - this.elevationList = new CircularFloatBuffer(Integer.parseInt(settings.getString("elevation_seconds", "4"))); + this.elevationList = + new CircularFloatBuffer( + Integer.parseInt(settings.getString("elevation_seconds", "4"))); // Buffer for most recent acceleration values - this.verticalAccel = new CircularFloatBuffer(Integer.parseInt(settings.getString("accel_samples", "4"))); - this.horizontalAccel = new CircularFloatBuffer(Integer.parseInt(settings.getString("accel_samples", "4"))); - } - else { + this.verticalAccel = + new CircularFloatBuffer( + Integer.parseInt(settings.getString("accel_samples", "4"))); + this.horizontalAccel = + new CircularFloatBuffer( + Integer.parseInt(settings.getString("accel_samples", "4"))); + } else { // Capacity - pressure is read with 1Hz - store values of past 10 seconds this.elevationList = new CircularFloatBuffer(elevationSeconds); @@ -131,32 +132,35 @@ public PdrProcessing(Context context) { } /** - * Function to calculate PDR coordinates from sensor values. - * Should be called from the step detector sensor's event with the sensor values since the last - * step. + * Function to calculate PDR coordinates from sensor values. Should be called from the step + * detector sensor's event with the sensor values since the last step. * - * @param currentStepEnd relative time in milliseconds since the start of the recording. - * @param accelMagnitudeOvertime recorded acceleration magnitudes since the last step. - * @param headingRad heading relative to magnetic north in radians. + * @param currentStepEnd relative time in milliseconds since the start of the recording. + * @param accelMagnitudeOvertime recorded acceleration magnitudes since the last step. + * @param headingRad heading relative to magnetic north in radians. */ - public float[] updatePdr(long currentStepEnd, List accelMagnitudeOvertime, float headingRad) { - if (accelMagnitudeOvertime == null || accelMagnitudeOvertime.size() < MIN_REQUIRED_SAMPLES) { - return new float[]{this.positionX, this.positionY}; // Return current position without update - // - TODO - temporary solution of the empty list issue + public float[] updatePdr( + long currentStepEnd, List accelMagnitudeOvertime, float headingRad) { + if (accelMagnitudeOvertime == null + || accelMagnitudeOvertime.size() < MIN_REQUIRED_SAMPLES) { + return new float[] { + this.positionX, this.positionY + }; // Return current position without update + // - TODO - temporary solution of the empty list issue } // Change angle so zero rad is east - float adaptedHeading = (float) (Math.PI/2 - headingRad); + float adaptedHeading = (float) (Math.PI / 2 - headingRad); // check if accelMagnitudeOvertime is empty if (accelMagnitudeOvertime == null || accelMagnitudeOvertime.isEmpty()) { // return current position, do not update - return new float[]{this.positionX, this.positionY}; + return new float[] {this.positionX, this.positionY}; } - + // Calculate step length - if(!useManualStep) { - //ArrayList accelMagnitudeFiltered = filter(accelMagnitudeOvertime); + if (!useManualStep) { + // ArrayList accelMagnitudeFiltered = filter(accelMagnitudeOvertime); // Estimate stride this.stepLength = weibergMinMax(accelMagnitudeOvertime); // System.err.println("Step Length" + stepLength); @@ -175,31 +179,29 @@ public float[] updatePdr(long currentStepEnd, List accelMagnitudeOvertim this.positionY += y; // return current position - return new float[]{this.positionX, this.positionY}; + return new float[] {this.positionX, this.positionY}; } /** - * Calculates the relative elevation compared to the start position. - * The start elevation is the median of the first three seconds of data to give the sensor time - * to settle. The sea level is irrelevant as only values relative to the initial position are - * reported. + * Calculates the relative elevation compared to the start position. The start elevation is the + * median of the first three seconds of data to give the sensor time to settle. The sea level is + * irrelevant as only values relative to the initial position are reported. * * @param absoluteElevation absolute elevation in meters compared to sea level. - * @return current elevation in meters relative to the start position. + * @return current elevation in meters relative to the start position. */ public float updateElevation(float absoluteElevation) { // Set start to median of first three values - if(setupIndex < 3) { + if (setupIndex < 3) { // Add values to buffer until it's full this.startElevationBuffer[setupIndex] = absoluteElevation; // When buffer is full, find median, assign as startElevation - if(setupIndex == 2) { + if (setupIndex == 2) { Arrays.sort(startElevationBuffer); startElevation = startElevationBuffer[1]; } this.setupIndex++; - } - else { + } else { // Get relative elevation in meters this.elevation = absoluteElevation - startElevation; // Add to buffer @@ -207,16 +209,16 @@ public float updateElevation(float absoluteElevation) { // Check if there was floor movement // Check if there is enough data to evaluate - if(this.elevationList.isFull()) { + if (this.elevationList.isFull()) { // Check average of elevation array List elevationMemory = this.elevationList.getListCopy(); OptionalDouble currentAvg = elevationMemory.stream().mapToDouble(f -> f).average(); float finishAvg = currentAvg.isPresent() ? (float) currentAvg.getAsDouble() : 0; // Check if we moved floor by comparing with start position - if(Math.abs(finishAvg - startElevation) > this.floorHeight) { + if (Math.abs(finishAvg - startElevation) > this.floorHeight) { // Change floors - 'floor' division - this.currentFloor += (finishAvg - startElevation)/this.floorHeight; + this.currentFloor += (finishAvg - startElevation) / this.floorHeight; } } // Return current elevation @@ -229,8 +231,8 @@ public float updateElevation(float absoluteElevation) { /** * Uses the Weiberg Stride Length formula to calculate step length from accelerometer values. * - * @param accelMagnitude magnitude of acceleration values between the last and current step. - * @return float stride length in meters. + * @param accelMagnitude magnitude of acceleration values between the last and current step. + * @return float stride length in meters. */ private float weibergMinMax(List accelMagnitude) { // if the list itself is null or empty, return 0 (or return other default values as needed) @@ -239,9 +241,8 @@ private float weibergMinMax(List accelMagnitude) { } // filter out null values from the list - List validAccel = accelMagnitude.stream() - .filter(Objects::nonNull) - .collect(Collectors.toList()); + List validAccel = + accelMagnitude.stream().filter(Objects::nonNull).collect(Collectors.toList()); if (validAccel.isEmpty()) { return 0f; } @@ -262,21 +263,20 @@ private float weibergMinMax(List accelMagnitude) { } /** - * Get the current X and Y coordinates from the PDR processing class. - * The coordinates are in meters, the start of the recording is the (0,0) + * Get the current X and Y coordinates from the PDR processing class. The coordinates are in + * meters, the start of the recording is the (0,0) * - * @return float array of size 2, with the X and Y coordinates respectively. + * @return float array of size 2, with the X and Y coordinates respectively. */ public float[] getPDRMovement() { - float [] pdrPosition= new float[] {positionX,positionY}; + float[] pdrPosition = new float[] {positionX, positionY}; return pdrPosition; - } /** * Get the current elevation as calculated by the PDR class. * - * @return current elevation in meters, relative to the start position. + * @return current elevation in meters, relative to the start position. */ public float getCurrentElevation() { return this.elevation; @@ -292,49 +292,55 @@ public int getCurrentFloor() { } /** - * Estimates if the user is currently taking an elevator. - * From the gravity and gravity-removed acceleration values the magnitude of horizontal and - * vertical acceleration is calculated and stored over time. Averaging these values and - * comparing with the thresholds set for this class, it estimates if the current movement - * matches what is expected from an elevator ride. + * Estimates if the user is currently taking an elevator. From the gravity and gravity-removed + * acceleration values the magnitude of horizontal and vertical acceleration is calculated and + * stored over time. Averaging these values and comparing with the thresholds set for this + * class, it estimates if the current movement matches what is expected from an elevator ride. * - * @param gravity array of size three, strength of gravity along the phone's x-y-z axis. - * @param acc array of size three, acceleration other than gravity detected by the phone. - * @return boolean true if currently in an elevator, false otherwise. + * @param gravity array of size three, strength of gravity along the phone's x-y-z axis. + * @param acc array of size three, acceleration other than gravity detected by the phone. + * @return boolean true if currently in an elevator, false otherwise. */ public boolean estimateElevator(float[] gravity, float[] acc) { // Standard gravity float g = SensorManager.STANDARD_GRAVITY; // get horizontal and vertical acceleration magnitude - float verticalAcc = (float) Math.sqrt( - Math.pow((acc[0] * gravity[0]/g),2) + - Math.pow((acc[1] * gravity[1]/g), 2) + - Math.pow((acc[2] * gravity[2]/g), 2)); - float horizontalAcc = (float) Math.sqrt( - Math.pow((acc[0] * (1 - gravity[0]/g)), 2) + - Math.pow((acc[1] * (1 - gravity[1]/g)), 2) + - Math.pow((acc[2] * (1 - gravity[2]/g)), 2)); + float verticalAcc = + (float) + Math.sqrt( + Math.pow((acc[0] * gravity[0] / g), 2) + + Math.pow((acc[1] * gravity[1] / g), 2) + + Math.pow((acc[2] * gravity[2] / g), 2)); + float horizontalAcc = + (float) + Math.sqrt( + Math.pow((acc[0] * (1 - gravity[0] / g)), 2) + + Math.pow((acc[1] * (1 - gravity[1] / g)), 2) + + Math.pow((acc[2] * (1 - gravity[2] / g)), 2)); // Save into buffer to compare with past values this.verticalAccel.putNewest(verticalAcc); this.horizontalAccel.putNewest(horizontalAcc); // Once buffer is full, evaluate data - if(this.verticalAccel.isFull() && this.horizontalAccel.isFull()) { + if (this.verticalAccel.isFull() && this.horizontalAccel.isFull()) { // calculate average vertical accel List verticalMemory = this.verticalAccel.getListCopy(); - OptionalDouble optVerticalAvg = verticalMemory.stream().mapToDouble(Math::abs).average(); - float verticalAvg = optVerticalAvg.isPresent() ? (float) optVerticalAvg.getAsDouble() : 0; - + OptionalDouble optVerticalAvg = + verticalMemory.stream().mapToDouble(Math::abs).average(); + float verticalAvg = + optVerticalAvg.isPresent() ? (float) optVerticalAvg.getAsDouble() : 0; // calculate average horizontal accel List horizontalMemory = this.horizontalAccel.getListCopy(); - OptionalDouble optHorizontalAvg = horizontalMemory.stream().mapToDouble(Math::abs).average(); - float horizontalAvg = optHorizontalAvg.isPresent() ? (float) optHorizontalAvg.getAsDouble() : 0; + OptionalDouble optHorizontalAvg = + horizontalMemory.stream().mapToDouble(Math::abs).average(); + float horizontalAvg = + optHorizontalAvg.isPresent() ? (float) optHorizontalAvg.getAsDouble() : 0; - //System.err.println("LIFT: Vertical: " + verticalAvg); - //System.err.println("LIFT: Horizontal: " + horizontalAvg); + // System.err.println("LIFT: Vertical: " + verticalAvg); + // System.err.println("LIFT: Horizontal: " + horizontalAvg); - if(this.settings.getBoolean("overwrite_constants", false)) { + if (this.settings.getBoolean("overwrite_constants", false)) { float eps = Float.parseFloat(settings.getString("epsilon", "0.18")); return horizontalAvg < eps && verticalAvg > movementThreshold; } @@ -342,17 +348,16 @@ public boolean estimateElevator(float[] gravity, float[] acc) { return horizontalAvg < epsilon && verticalAvg > movementThreshold; } return false; - } /** - * Resets all values stored in the PDR function and re-initialises all buffers. - * Used to reset to zero position and remove existing history. + * Resets all values stored in the PDR function and re-initialises all buffers. Used to reset to + * zero position and remove existing history. */ public void resetPDR() { // Check if estimate or manual values should be used this.useManualStep = this.settings.getBoolean("manual_step_values", false); - if(useManualStep) { + if (useManualStep) { try { // Retrieve manual step length this.stepLength = this.settings.getInt("user_step_length", 75) / 100f; @@ -361,8 +366,7 @@ public void resetPDR() { this.stepLength = 0.75f; this.settings.edit().putInt("user_step_length", 75).apply(); } - } - else { + } else { // Using estimated step length - set to zero this.stepLength = 0; } @@ -372,15 +376,20 @@ public void resetPDR() { this.positionY = 0f; this.elevation = 0f; - if(this.settings.getBoolean("overwrite_constants", false)) { + if (this.settings.getBoolean("overwrite_constants", false)) { // Capacity - pressure is read with 1Hz - store values of past 10 seconds - this.elevationList = new CircularFloatBuffer(Integer.parseInt(settings.getString("elevation_seconds", "4"))); + this.elevationList = + new CircularFloatBuffer( + Integer.parseInt(settings.getString("elevation_seconds", "4"))); // Buffer for most recent acceleration values - this.verticalAccel = new CircularFloatBuffer(Integer.parseInt(settings.getString("accel_samples", "4"))); - this.horizontalAccel = new CircularFloatBuffer(Integer.parseInt(settings.getString("accel_samples", "4"))); - } - else { + this.verticalAccel = + new CircularFloatBuffer( + Integer.parseInt(settings.getString("accel_samples", "4"))); + this.horizontalAccel = + new CircularFloatBuffer( + Integer.parseInt(settings.getString("accel_samples", "4"))); + } else { // Capacity - pressure is read with 1Hz - store values of past 10 seconds this.elevationList = new CircularFloatBuffer(elevationSeconds); @@ -400,18 +409,17 @@ public void resetPDR() { /** * Getter for the average step length calculated from the aggregated distance and step count. * - * @return average step length in meters. + * @return average step length in meters. */ - public float getAverageStepLength(){ - //Calculate average step length - float averageStepLength = sumStepLength/(float) stepCount; + public float getAverageStepLength() { + // Calculate average step length + float averageStepLength = sumStepLength / (float) stepCount; - //Reset sum and number of steps + // Reset sum and number of steps stepCount = 0; sumStepLength = 0; - //Return average step length + // Return average step length return averageStepLength; } - } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java b/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java index 8e8acbac..76487542 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java @@ -9,33 +9,23 @@ import android.os.Build; import android.provider.Settings; import android.widget.Toast; - import androidx.annotation.RequiresApi; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; - import java.util.ArrayList; import java.util.List; /** - * A helper class responsible for checking and requesting all dangerous permissions - * that the application needs in order to function. + * A helper class responsible for checking and requesting all dangerous permissions that the + * application needs in order to function. * - * This class: - * - Manages the permissions list. - * - Checks if all permissions are granted. - * - Requests missing permissions. - * - Handles both the first-time and permanent denial scenarios. + *

    This class: - Manages the permissions list. - Checks if all permissions are granted. - + * Requests missing permissions. - Handles both the first-time and permanent denial scenarios. * - * Usage from MainActivity: - * PermissionManager permissionManager = new PermissionManager(MainActivity.this, new PermissionManager.PermissionCallback() { - * @Override - * public void onAllPermissionsGranted() { - * // e.g. call allPermissionsObtained() in MainActivity - * allPermissionsObtained(); - * } - * }); - * permissionManager.checkAndRequestPermissions(); + *

    Usage from MainActivity: PermissionManager permissionManager = new + * PermissionManager(MainActivity.this, new PermissionManager.PermissionCallback() { @Override + * public void onAllPermissionsGranted() { // e.g. call allPermissionsObtained() in MainActivity + * allPermissionsObtained(); } }); permissionManager.checkAndRequestPermissions(); */ public class PermissionManager { @@ -64,16 +54,11 @@ public PermissionManager(Activity activity, PermissionCallback callback) { requiredPermissions.add(Manifest.permission.ACTIVITY_RECOGNITION); } - /** - * Checks if all required permissions are already granted; if not, requests them. - */ + /** Checks if all required permissions are already granted; if not, requests them. */ public void checkAndRequestPermissions() { if (!hasAllPermissions()) { ActivityCompat.requestPermissions( - activity, - requiredPermissions.toArray(new String[0]), - ALL_PERMISSIONS_REQUEST - ); + activity, requiredPermissions.toArray(new String[0]), ALL_PERMISSIONS_REQUEST); } else { // Already granted callback.onAllPermissionsGranted(); @@ -81,19 +66,13 @@ public void checkAndRequestPermissions() { } /** - * Must be called from the Activity's onRequestPermissionsResult: - * - * @Override - * public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { - * super.onRequestPermissionsResult(requestCode, permissions, grantResults); - * permissionManager.handleRequestPermissionsResult(requestCode, permissions, grantResults); - * } + * Must be called from the Activity's onRequestPermissionsResult: @Override public void + * onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + * super.onRequestPermissionsResult(requestCode, permissions, grantResults); + * permissionManager.handleRequestPermissionsResult(requestCode, permissions, grantResults); } */ public void handleRequestPermissionsResult( - int requestCode, - String[] permissions, - int[] grantResults - ) { + int requestCode, String[] permissions, int[] grantResults) { if (requestCode == ALL_PERMISSIONS_REQUEST) { boolean allGranted = true; List deniedPermissions = new ArrayList<>(); @@ -127,58 +106,56 @@ public void handleRequestPermissionsResult( } } - /** - * Checks if the app has all the required permissions granted. - */ + /** Checks if the app has all the required permissions granted. */ private boolean hasAllPermissions() { for (String perm : requiredPermissions) { - if (ContextCompat.checkSelfPermission(activity, perm) != PackageManager.PERMISSION_GRANTED) { + if (ContextCompat.checkSelfPermission(activity, perm) + != PackageManager.PERMISSION_GRANTED) { return false; } } return true; } - /** - * Shows an AlertDialog if the user has denied permissions for the first time. - */ + /** Shows an AlertDialog if the user has denied permissions for the first time. */ private void showFirstDenialDialog() { if (!activity.isFinishing()) { new AlertDialog.Builder(activity) - .setTitle("Permissions Denied") - .setMessage("Certain permissions are essential for this app to function.\n" + - "Tap GRANT to try again or EXIT to close the app.") - .setCancelable(false) - .setPositiveButton("Grant", (dialog, which) -> checkAndRequestPermissions()) - .setNegativeButton("Exit", (dialog, which) -> activity.finish()) - .show(); + .setTitle("Permissions Denied") + .setMessage( + "Certain permissions are essential for this app to function.\n" + + "Tap GRANT to try again or EXIT to close the app.") + .setCancelable(false) + .setPositiveButton("Grant", (dialog, which) -> checkAndRequestPermissions()) + .setNegativeButton("Exit", (dialog, which) -> activity.finish()) + .show(); } } - /** - * Shows an AlertDialog if the user has permanently denied the permissions. - */ + /** Shows an AlertDialog if the user has permanently denied the permissions. */ private void showPermanentDenialDialog() { if (!activity.isFinishing()) { new AlertDialog.Builder(activity) - .setTitle("Permission Permanently Denied") - .setMessage("Some permissions have been permanently denied. " + - "Please go to Settings to enable them manually.") - .setCancelable(false) - .setPositiveButton("Settings", (dialog, which) -> { - Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); - Uri uri = Uri.fromParts("package", activity.getPackageName(), null); - intent.setData(uri); - activity.startActivity(intent); - }) - .setNegativeButton("Exit", (dialog, which) -> activity.finish()) - .show(); + .setTitle("Permission Permanently Denied") + .setMessage( + "Some permissions have been permanently denied. " + + "Please go to Settings to enable them manually.") + .setCancelable(false) + .setPositiveButton( + "Settings", + (dialog, which) -> { + Intent intent = + new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + Uri uri = Uri.fromParts("package", activity.getPackageName(), null); + intent.setData(uri); + activity.startActivity(intent); + }) + .setNegativeButton("Exit", (dialog, which) -> activity.finish()) + .show(); } } - /** - * Callback to notify the calling Activity when all permissions have been granted. - */ + /** Callback to notify the calling Activity when all permissions have been granted. */ public interface PermissionCallback { void onAllPermissionsGranted(); } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java b/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java index 6b559a28..0ac98357 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java @@ -1,67 +1,66 @@ package com.openpositioning.PositionMe.utils; import android.graphics.Color; - import com.openpositioning.PositionMe.BuildConfig; public class UtilConstants { - // Building outlines - public static final int COLOUR_BUILDING_WITHOUT_FLOOR_MAPS = Color.YELLOW; - public static final int COLOUR_BUILDING_WITH_FLOOR_MAPS = Color.GREEN; + // Building outlines + public static final int COLOUR_BUILDING_WITHOUT_FLOOR_MAPS = Color.YELLOW; + public static final int COLOUR_BUILDING_WITH_FLOOR_MAPS = Color.GREEN; - // Paths - public static final int COLOUR_PATH_COLOUR = Color.RED; - public static final int COLOUR_PATH_MONOCHROME = Color.BLACK; - public static final int COLOUR_PATH_GNSS = Color.BLUE; + // Paths + public static final int COLOUR_PATH_COLOUR = Color.RED; + public static final int COLOUR_PATH_MONOCHROME = Color.BLACK; + public static final int COLOUR_PATH_GNSS = Color.BLUE; - // Floor plans - public static final int COLOUR_FLOOR_PLAN_FILL_TRANSPARENT = Color.TRANSPARENT; - public static final int COLOUR_FLOOR_PLAN_FILL_PREVIEW = Color.LTGRAY; - public static final int COLOUR_FLOOR_PLAN_FILL_INSIDE = Color.WHITE; - public static final int COLOUR_FLOOR_PLAN_ELEMENTS = Color.BLACK; + // Floor plans + public static final int COLOUR_FLOOR_PLAN_FILL_TRANSPARENT = Color.TRANSPARENT; + public static final int COLOUR_FLOOR_PLAN_FILL_PREVIEW = Color.LTGRAY; + public static final int COLOUR_FLOOR_PLAN_FILL_INSIDE = Color.WHITE; + public static final int COLOUR_FLOOR_PLAN_ELEMENTS = Color.BLACK; - // Set priority level for drawing elements on top of one another on the map - public static final int MAP_DRAWING_PRIORITY_MAX = 1000; + // Set priority level for drawing elements on top of one another on the map + public static final int MAP_DRAWING_PRIORITY_MAX = 1000; - public static final float LINE_WEIGHT_PATH = 5f; - public static final float LINE_WEIGHT_FLOOR_PLAN = 5f; - public static final float LINE_WEIGHT_OUTLINE = 10f; + public static final float LINE_WEIGHT_PATH = 5f; + public static final float LINE_WEIGHT_FLOOR_PLAN = 5f; + public static final float LINE_WEIGHT_OUTLINE = 10f; - public static final float ZOOM_LEVEL_DEFAULT = 19f; + public static final float ZOOM_LEVEL_DEFAULT = 19f; - // Source: https://openpositioning.org/docs - public static final String API_KEY_USER = BuildConfig.OPENPOSITIONING_API_KEY; - public static final String API_KEY_MASTER = BuildConfig.OPENPOSITIONING_MASTER_KEY; - public static final String URL_API = "https://openpositioning.org/api"; - public static final String API_GET_USER_TRAJECTORIES = "/live/users/trajectories"; - public static final String API_GET_TRAJECTORIES = "/live/trajectory/download"; - public static final String API_POST_TRAJECTORIES = "/live/trajectory/upload"; - public static final String API_POST_FLOORPLANS = "/live/floorplan/request"; + // Source: https://openpositioning.org/docs + public static final String API_KEY_USER = BuildConfig.OPENPOSITIONING_API_KEY; + public static final String API_KEY_MASTER = BuildConfig.OPENPOSITIONING_MASTER_KEY; + public static final String URL_API = "https://openpositioning.org/api"; + public static final String API_GET_USER_TRAJECTORIES = "/live/users/trajectories"; + public static final String API_GET_TRAJECTORIES = "/live/trajectory/download"; + public static final String API_POST_TRAJECTORIES = "/live/trajectory/upload"; + public static final String API_POST_FLOORPLANS = "/live/floorplan/request"; - public static final String URL_GET_USER_TRAJECTORIES = - URL_API + API_GET_USER_TRAJECTORIES + "/" + API_KEY_USER + "?key=" + API_KEY_MASTER; + public static final String URL_GET_USER_TRAJECTORIES = + URL_API + API_GET_USER_TRAJECTORIES + "/" + API_KEY_USER + "?key=" + API_KEY_MASTER; - // URL is in two parts as user variable is inserted for number of entries to retrieve - public static final String URL_GET_TRAJECTORIES_HEAD = - URL_API + API_GET_TRAJECTORIES + "/" + API_KEY_USER + "?skip=0&limit="; - public static final String URL_GET_TRAJECTORIES_TAIL = "&key=" + API_KEY_MASTER; - public static final String URL_POST_FLOORPLANS = - URL_API + API_POST_FLOORPLANS + "/" + API_KEY_USER + "?key=" + API_KEY_MASTER; - public static final String PROTOCOL_MULTIPART = "multipart/form-data"; - public static final String PROTOCOL_APP_JSON = "application/json"; + // URL is in two parts as user variable is inserted for number of entries to retrieve + public static final String URL_GET_TRAJECTORIES_HEAD = + URL_API + API_GET_TRAJECTORIES + "/" + API_KEY_USER + "?skip=0&limit="; + public static final String URL_GET_TRAJECTORIES_TAIL = "&key=" + API_KEY_MASTER; + public static final String URL_POST_FLOORPLANS = + URL_API + API_POST_FLOORPLANS + "/" + API_KEY_USER + "?key=" + API_KEY_MASTER; + public static final String PROTOCOL_MULTIPART = "multipart/form-data"; + public static final String PROTOCOL_APP_JSON = "application/json"; - // Expected performances from floorplans API requesr - public static final String BUILDING_NAME_NUCLEUS = "nucleus_building"; - public static final String BUILDING_NAME_M_HOUSE = "murchison_house"; - public static final String BUILDING_NAME_OUTSIDE = "outside"; + // Expected performances from floorplans API requesr + public static final String BUILDING_NAME_NUCLEUS = "nucleus_building"; + public static final String BUILDING_NAME_M_HOUSE = "murchison_house"; + public static final String BUILDING_NAME_OUTSIDE = "outside"; - public static final float FLOOR_HEIGHT_DEFAULT = 3.6F; - public static final float FLOOR_HEIGHT_NKM_LIBRARY = 3.6F; - public static final float FLOOR_HEIGHT_NUCLEUS = 4.2F; + public static final float FLOOR_HEIGHT_DEFAULT = 3.6F; + public static final float FLOOR_HEIGHT_NKM_LIBRARY = 3.6F; + public static final float FLOOR_HEIGHT_NUCLEUS = 4.2F; - // The minimum time between sensor readings in milliseconds - public static final int SENSOR_POLL_TIME_MS = 20; - public static final int FLOOR_PLAN_POLL_TIME_MS = 1000; - public static final int ACCELERATION_MAGNITUDE_MAXIMUM_SIZE = 20000; + // The minimum time between sensor readings in milliseconds + public static final int SENSOR_POLL_TIME_MS = 20; + public static final int FLOOR_PLAN_POLL_TIME_MS = 1000; + public static final int ACCELERATION_MAGNITUDE_MAXIMUM_SIZE = 20000; } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/UtilFunctions.java b/app/src/main/java/com/openpositioning/PositionMe/utils/UtilFunctions.java index 56a88aa3..064ae645 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/UtilFunctions.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/UtilFunctions.java @@ -4,80 +4,94 @@ import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.drawable.Drawable; - import androidx.core.content.ContextCompat; - import com.google.android.gms.maps.model.LatLng; import com.openpositioning.PositionMe.presentation.fragment.RecordingFragment; /** * Class containing utility functions which can used by other classes. + * * @see RecordingFragment Currently used by RecordingFragment */ public class UtilFunctions { // Constant 1degree of latitiude/longitude (in m) - private static final int DEGREE_IN_M=111111; + private static final int DEGREE_IN_M = 111111; + /** * Simple function to calculate the angle between two close points + * * @param pointA Starting point * @param pointB Ending point * @return Angle between the points */ public static double calculateAngleSimple(LatLng pointA, LatLng pointB) { // Simple formula for close-by points - return Math.toDegrees( Math.atan2(pointB.latitude-pointA.latitude, - (pointB.longitude- pointA.longitude)*Math.cos(Math.toRadians(pointA.latitude)))); + return Math.toDegrees( + Math.atan2( + pointB.latitude - pointA.latitude, + (pointB.longitude - pointA.longitude) + * Math.cos(Math.toRadians(pointA.latitude)))); } /** - * Calculate new coordinates based on net distance moved in PDR - * (as per WGS84 datum) + * Calculate new coordinates based on net distance moved in PDR (as per WGS84 datum) + * * @param initialLocation Current Location of user * @param pdrMoved Amount of movement along X and Y * @return new Coordinates based on the movement */ - public static LatLng calculateNewPos(LatLng initialLocation,float[] pdrMoved){ + public static LatLng calculateNewPos(LatLng initialLocation, float[] pdrMoved) { // Changes Euclidean movement into maps latitude and longitude as per WGS84 datum - double newLatitude=initialLocation.latitude+(pdrMoved[1]/(DEGREE_IN_M)); - double newLongitude = initialLocation.longitude + ( - pdrMoved[0] / (DEGREE_IN_M * Math.cos(Math.toRadians(initialLocation.latitude))) - ); + double newLatitude = initialLocation.latitude + (pdrMoved[1] / (DEGREE_IN_M)); + double newLongitude = + initialLocation.longitude + + (pdrMoved[0] + / (DEGREE_IN_M + * Math.cos(Math.toRadians(initialLocation.latitude)))); return new LatLng(newLatitude, newLongitude); } + /** - * Converts a degree value of Latitude into meters - * (as per WGS84 datum) + * Converts a degree value of Latitude into meters (as per WGS84 datum) + * * @param degreeVal Value in degrees to convert to meters * @return double corresponding to the value in meters. */ public static double degreesToMetersLat(double degreeVal) { - return degreeVal*DEGREE_IN_M; + return degreeVal * DEGREE_IN_M; } + /** - * Converts a degree value of Longitude into meters - * (as per WGS84 datum) + * Converts a degree value of Longitude into meters (as per WGS84 datum) + * * @param degreeVal Value in degrees to convert to meters * @param latitude the latitude of the current position * @return double corresponding to the value in meters. */ public static double degreesToMetersLng(double degreeVal, double latitude) { - return degreeVal*DEGREE_IN_M/Math.cos(Math.toRadians(latitude)); + return degreeVal * DEGREE_IN_M / Math.cos(Math.toRadians(latitude)); } /** - * Calculates the distance between two LatLng points A and B (in meters) - * (Note: approximation: for short distances) + * Calculates the distance between two LatLng points A and B (in meters) (Note: approximation: + * for short distances) + * * @param pointA initial point * @param pointB final point * @return the distance between the two points */ - public static double distanceBetweenPoints(LatLng pointA, LatLng pointB){ - return Math.sqrt(Math.pow(degreesToMetersLat(pointA.latitude-pointB.latitude),2) + - Math.pow(degreesToMetersLng(pointA.longitude-pointB.longitude,pointA.latitude),2)); + public static double distanceBetweenPoints(LatLng pointA, LatLng pointB) { + return Math.sqrt( + Math.pow(degreesToMetersLat(pointA.latitude - pointB.latitude), 2) + + Math.pow( + degreesToMetersLng( + pointA.longitude - pointB.longitude, pointA.latitude), + 2)); } /** * Creates a bitmap from a vector + * * @param context Context of activity being used * @param vectorResourceID Resource id whose vector get converted to a Bitmap * @return Bitmap of the resource vector @@ -86,7 +100,11 @@ public static Bitmap getBitmapFromVector(Context context, int vectorResourceID) // Get drawable vector Drawable vectorDrawable = ContextCompat.getDrawable(context, vectorResourceID); // Bitmap created to draw the vector in - Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(), vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); + Bitmap bitmap = + Bitmap.createBitmap( + vectorDrawable.getIntrinsicWidth(), + vectorDrawable.getIntrinsicHeight(), + Bitmap.Config.ARGB_8888); // Canvas to draw the bitmap on Canvas canvas = new Canvas(bitmap); // Drawing on canvas @@ -94,5 +112,4 @@ public static Bitmap getBitmapFromVector(Context context, int vectorResourceID) vectorDrawable.draw(canvas); return bitmap; } - } diff --git a/app/src/test/java/com/openpositioning/PositionMe/ExampleUnitTest.java b/app/src/test/java/com/openpositioning/PositionMe/ExampleUnitTest.java deleted file mode 100644 index 7c21aa3a..00000000 --- a/app/src/test/java/com/openpositioning/PositionMe/ExampleUnitTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.openpositioning.PositionMe; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file diff --git a/app/src/test/java/com/openpositioning/PositionMe/TestPointUnitTest.java b/app/src/test/java/com/openpositioning/PositionMe/TestPointUnitTest.java index 71fe13a4..efa0a90d 100644 --- a/app/src/test/java/com/openpositioning/PositionMe/TestPointUnitTest.java +++ b/app/src/test/java/com/openpositioning/PositionMe/TestPointUnitTest.java @@ -1,12 +1,11 @@ package com.openpositioning.PositionMe; -import org.junit.Test; +import static org.junit.Assert.assertEquals; + import org.junit.Before; -import static org.junit.Assert.*; +import org.junit.Test; -/** - * Unit tests for Test Point functionality in trajectory recording. - */ +/** Unit tests for Test Point functionality in trajectory recording. */ public class TestPointUnitTest { private Traj.Trajectory.Builder trajectoryBuilder; @@ -26,11 +25,12 @@ public void testAddSingleTestPoint() { long timestamp = 1000L; // Act - trajectoryBuilder.addTestPoints(Traj.GNSSPosition.newBuilder() - .setRelativeTimestamp(timestamp) - .setLatitude(lat) - .setLongitude(lon) - .setAltitude(alt)); + trajectoryBuilder.addTestPoints( + Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(timestamp) + .setLatitude(lat) + .setLongitude(lon) + .setAltitude(alt)); Traj.Trajectory trajectory = trajectoryBuilder.build(); @@ -46,11 +46,12 @@ public void testAddSingleTestPoint() { public void testAddMultipleTestPoints() { // Arrange & Act - Add 3 test points for (int i = 0; i < 3; i++) { - trajectoryBuilder.addTestPoints(Traj.GNSSPosition.newBuilder() - .setRelativeTimestamp(i * 1000L) - .setLatitude(55.9445 + i * 0.001) - .setLongitude(-3.1892 + i * 0.001) - .setAltitude(50.0 + i)); + trajectoryBuilder.addTestPoints( + Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(i * 1000L) + .setLatitude(55.9445 + i * 0.001) + .setLongitude(-3.1892 + i * 0.001) + .setAltitude(50.0 + i)); } Traj.Trajectory trajectory = trajectoryBuilder.build(); @@ -62,17 +63,19 @@ public void testAddMultipleTestPoints() { @Test public void testTestPointTimestampOrder() { // Arrange - Add test points with different timestamps - trajectoryBuilder.addTestPoints(Traj.GNSSPosition.newBuilder() - .setRelativeTimestamp(5000L) - .setLatitude(55.9445) - .setLongitude(-3.1892) - .setAltitude(50.0)); - - trajectoryBuilder.addTestPoints(Traj.GNSSPosition.newBuilder() - .setRelativeTimestamp(10000L) - .setLatitude(55.9446) - .setLongitude(-3.1893) - .setAltitude(51.0)); + trajectoryBuilder.addTestPoints( + Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(5000L) + .setLatitude(55.9445) + .setLongitude(-3.1892) + .setAltitude(50.0)); + + trajectoryBuilder.addTestPoints( + Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(10000L) + .setLatitude(55.9446) + .setLongitude(-3.1893) + .setAltitude(51.0)); Traj.Trajectory trajectory = trajectoryBuilder.build(); @@ -87,7 +90,8 @@ public void testEmptyTrajectoryHasNoTestPoints() { Traj.Trajectory trajectory = trajectoryBuilder.build(); // Assert - assertEquals("Empty trajectory should have 0 test points", 0, trajectory.getTestPointsCount()); + assertEquals( + "Empty trajectory should have 0 test points", 0, trajectory.getTestPointsCount()); } @Test @@ -97,11 +101,12 @@ public void testTestPointCoordinatesAccuracy() { double preciseLon = -3.189208; // Act - trajectoryBuilder.addTestPoints(Traj.GNSSPosition.newBuilder() - .setRelativeTimestamp(0L) - .setLatitude(preciseLat) - .setLongitude(preciseLon) - .setAltitude(0.0)); + trajectoryBuilder.addTestPoints( + Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(0L) + .setLatitude(preciseLat) + .setLongitude(preciseLon) + .setAltitude(0.0)); Traj.Trajectory trajectory = trajectoryBuilder.build(); @@ -109,4 +114,4 @@ public void testTestPointCoordinatesAccuracy() { assertEquals(preciseLat, trajectory.getTestPoints(0).getLatitude(), 0.000001); assertEquals(preciseLon, trajectory.getTestPoints(0).getLongitude(), 0.000001); } -} \ No newline at end of file +} diff --git a/app/src/test/java/com/openpositioning/PositionMe/WifiDeduplicationTest.java b/app/src/test/java/com/openpositioning/PositionMe/WifiDeduplicationTest.java index 0e97a3d8..ba77ed24 100644 --- a/app/src/test/java/com/openpositioning/PositionMe/WifiDeduplicationTest.java +++ b/app/src/test/java/com/openpositioning/PositionMe/WifiDeduplicationTest.java @@ -1,7 +1,9 @@ package com.openpositioning.PositionMe; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + import org.junit.Test; -import static org.junit.Assert.*; public class WifiDeduplicationTest { @@ -26,7 +28,7 @@ public void testDifferentScansHaveDifferentHashes() { int[] rssis1 = {-50}; long[] macs2 = {123456789L}; - int[] rssis2 = {-55}; // Different RSSI + int[] rssis2 = {-55}; // Different RSSI int hash1 = calculateHash(macs1, rssis1); int hash2 = calculateHash(macs2, rssis2); @@ -37,9 +39,9 @@ public void testDifferentScansHaveDifferentHashes() { private int calculateHash(long[] macs, int[] rssis) { int hash = 0; for (int i = 0; i < macs.length; i++) { - hash = 31 * hash + (int)(macs[i] ^ (macs[i] >>> 32)); + hash = 31 * hash + (int) (macs[i] ^ (macs[i] >>> 32)); hash = 31 * hash + rssis[i]; } return hash; } -} \ No newline at end of file +} diff --git a/build.gradle b/build.gradle index 9022d40c..6667d06a 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,6 @@ buildscript { dependencies { // NOTE: Only classpath deps (plugins) go here // Compatibility change for AS 2024.2.1 Patch 1 -// classpath 'com.android.tools.build:gradle:8.8.0' classpath 'com.android.tools.build:gradle:8.7.3' classpath 'com.google.gms:google-services:4.4.2' def nav_version = "2.5.3" @@ -21,3 +20,10 @@ buildscript { task clean(type: Delete) { delete rootProject.buildDir } + +// Automate running of Spotless +subprojects { + afterEvaluate{ + preBuild.dependsOn("spotlessCheck") + } +} \ No newline at end of file From 43812d8250cc7dcc14e297a0826792543d9950b2 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Tue, 10 Mar 2026 12:16:01 +0000 Subject: [PATCH 27/65] [Maint] GeoJSON Handling Refactor (#68) --- README.md | 2 +- .../data/remote/ServerCommunications.java | 147 ++++++++---------- .../fragment/RecordingFragment.java | 146 +---------------- .../fragment/TrajectoryMapFragment.java | 36 ++--- .../PositionMe/sensors/SensorFusion.java | 20 +-- .../PositionMe/utils/Building.java | 55 ++++--- .../PositionMe/utils/IndoorMapManager.java | 146 ++++++++++++++++- 7 files changed, 260 insertions(+), 292 deletions(-) diff --git a/README.md b/README.md index c8c48bc6..2dcfeb10 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Embedded Mobile and Wireless Systems (EWireless) 5 2025/26 -## Coursework 1 - Group 13 +## Coursework 2 - Group 13 [![Android 11](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml) [![Android 16](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml) diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java index 47a82631..d5c080e5 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java @@ -29,10 +29,10 @@ import com.openpositioning.PositionMe.Traj; import com.openpositioning.PositionMe.presentation.activity.MainActivity; import com.openpositioning.PositionMe.presentation.fragment.FilesFragment; -import com.openpositioning.PositionMe.presentation.fragment.RecordingFragment; import com.openpositioning.PositionMe.sensors.Observable; import com.openpositioning.PositionMe.sensors.Observer; import com.openpositioning.PositionMe.sensors.Wifi; +import com.openpositioning.PositionMe.utils.IndoorMapManager; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; @@ -78,12 +78,13 @@ * @author Mate Stodulka */ public class ServerCommunications implements Observable { + private static final String TAG = "ServerCommunications"; public static Map downloadRecords = new HashMap<>(); // Application context for handling permissions and devices private static final int OBSERVER_INDEX_FILES = 0; private static final int OBSERVER_INDEX_MAIN = 1; - private static final int OBSERVER_INDEX_RECORDING = 2; + private static final int OBSERVER_INDEX_INDOOR_MAPS = 2; private static final int TRAJECTORY_REQUEST_BUFFER = 10; private final Context context; @@ -147,7 +148,7 @@ public void sendTrajectory(Traj.Trajectory trajectory, String campaign) { path = context.getFilesDir(); } - Log.i("ServerCommunications", path.toString()); + Log.i(TAG, path.toString()); // Format the file name according to date SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yy-HH-mm-ss"); @@ -159,20 +160,16 @@ public void sendTrajectory(Traj.Trajectory trajectory, String campaign) { FileOutputStream stream = new FileOutputStream(file); stream.write(binaryTrajectory); stream.close(); - Log.i( - "ServerCommunications", - "Recorded binary trajectory for debugging stored in: " + path); + Log.i(TAG, "Recorded binary trajectory for debugging stored in: " + path); } catch (IOException e) { // Catch and print if writing to the file fails - Log.e( - "ServerCommunications", - "Storing of recorded binary trajectory failed: " + e.getMessage()); + Log.e(TAG, "Storing of recorded binary trajectory failed: " + e.getMessage()); } // Only proceed if campaign is valid if (campaign.isBlank() || campaign.equals(BUILDING_NAME_OUTSIDE)) { String message = "Invalid campaign ('" + campaign + "') - Cancelling upload"; - Log.w("ServerCommunications", message); + Log.w(TAG, message); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); return; } @@ -216,9 +213,7 @@ public void sendTrajectory(Traj.Trajectory trajectory, String campaign) { // Handle failure to get response from the server @Override public void onFailure(Call call, IOException e) { - Log.e( - "ServerCommunications", - "Failure to get response: " + e.getMessage()); + Log.e(TAG, "Failure to get response: " + e.getMessage()); success = false; notifyObservers(OBSERVER_INDEX_MAIN); } @@ -255,7 +250,7 @@ public void onResponse(Call call, Response response) .show()); Log.e( - "ServerCommunications", + TAG, "POST error (Code " + response.code() + ")\n" @@ -271,20 +266,18 @@ public void onResponse(Call call, Response response) i < size; i++) { Log.i( - "ServerCommunications", + TAG, responseHeaders.name(i) + ": " + responseHeaders.value(i)); } // Print a confirmation of a successful POST to API - Log.i("ServerCommunications", "Successful post response"); + Log.i(TAG, "Successful post response"); - Log.i( - "ServerCommunications", - "Get file: " + file.getName()); + Log.i(TAG, "Get file: " + file.getName()); String originalPath = file.getAbsolutePath(); Log.i( - "ServerCommunications", + TAG, "Original trajectory file saved at: " + originalPath); @@ -296,12 +289,12 @@ public void onResponse(Call call, Response response) try { copyFile(file, downloadFile); Log.i( - "ServerCommunications", + TAG, "Trajectory file copied to Downloads: " + downloadFile.getAbsolutePath()); } catch (IOException e) { Log.e( - "ServerCommunications", + TAG, "Failed to copy file to Downloads: " + e.getMessage()); } @@ -316,7 +309,7 @@ public void onResponse(Call call, Response response) // If the device is not connected to network or allowed to send, // do not send trajectory and notify observers and user String message = "No uploading allowed right now!"; - Log.e("ServerCommunications", message); + Log.e(TAG, message); new Handler(Looper.getMainLooper()) .post(() -> Toast.makeText(context, message, Toast.LENGTH_SHORT).show()); success = false; @@ -335,7 +328,7 @@ public void uploadLocalTrajectory(File localTrajectory, String campaign) { // Only proceed if campaign is valid if (campaign.isBlank() || campaign.equals(BUILDING_NAME_OUTSIDE)) { String message = "Invalid campaign ('" + campaign + "') - Cancelling upload"; - Log.w("ServerCommunications", message); + Log.w(TAG, message); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); return; } @@ -350,7 +343,7 @@ public void uploadLocalTrajectory(File localTrajectory, String campaign) { byte[] fileBytes = Files.readAllBytes(localTrajectory.toPath()); fileRequestBody = RequestBody.create(MediaType.parse("text/plain"), fileBytes); } catch (IOException e) { - Log.e("ServerCommunications", "Error: " + e.getMessage()); + Log.e(TAG, "Error: " + e.getMessage()); // if failed, use File object to construct RequestBody fileRequestBody = RequestBody.create(MediaType.parse("text/plain"), localTrajectory); @@ -386,7 +379,7 @@ public void onFailure(Call call, IOException e) { // Set success to false and notify observers success = false; Log.e( - "ServerCommunications", + TAG, "[" + e.getMessage() + "] UPLOAD: Failure to get response"); // Notify users new Handler(Looper.getMainLooper()) @@ -411,9 +404,7 @@ public void onResponse(Call call, Response response) notifyObservers(OBSERVER_INDEX_MAIN); assert responseBody != null; String errorBody = responseBody.string(); - Log.e( - "ServerCommunications", - "UPLOAD unsuccessful: " + errorBody); + Log.e(TAG, "UPLOAD unsuccessful: " + errorBody); infoResponse = "Upload failed (Error code " + response.code() @@ -434,7 +425,7 @@ public void onResponse(Call call, Response response) Headers responseHeaders = response.headers(); for (int i = 0, size = responseHeaders.size(); i < size; i++) { Log.i( - "ServerCommunications", + TAG, responseHeaders.name(i) + ": " + responseHeaders.value(i)); @@ -442,9 +433,7 @@ public void onResponse(Call call, Response response) // Print a confirmation of a successful POST to API assert responseBody != null; - Log.i( - "ServerCommunications", - "UPLOAD SUCCESSFUL: " + responseBody.string()); + Log.i(TAG, "UPLOAD SUCCESSFUL: " + responseBody.string()); new Handler(Looper.getMainLooper()) .post( () -> @@ -489,20 +478,18 @@ private void loadDownloadRecords() { downloadRecords.put(id, record); } catch (Exception e) { Log.e( - "ServerCommunications", + TAG, "[" + e.getMessage() + "] Error loading record with key: " + key); } } - Log.i("ServerCommunications", "Loaded downloadRecords: " + downloadRecords); + Log.i(TAG, "Loaded downloadRecords: " + downloadRecords); } catch (Exception e) { - Log.e("ServerCommunications", "Error: " + e.getMessage()); + Log.e(TAG, "Error: " + e.getMessage()); } } else { - Log.i( - "ServerCommunications", - "Download_records.json not found in app-specific directory."); + Log.i(TAG, "Download_records.json not found in app-specific directory."); } } @@ -532,9 +519,7 @@ private void saveDownloadRecord( if (recordsFile.createNewFile()) { jsonObject = new JSONObject(); } else { - Log.e( - "ServerCommunications", - "Failed to create file: " + recordsFile.getAbsolutePath()); + Log.e(TAG, "Failed to create file: " + recordsFile.getAbsolutePath()); return; } } else { @@ -569,12 +554,10 @@ private void saveDownloadRecord( writer.flush(); } - Log.i( - "ServerCommunications", - "Download record saved successfully at: " + recordsFile.getAbsolutePath()); + Log.i(TAG, "Download record saved successfully at: " + recordsFile.getAbsolutePath()); } catch (Exception e) { - Log.e("ServerCommunications", "Error saving download record: " + e.getMessage()); + Log.e(TAG, "Error saving download record: " + e.getMessage()); } } @@ -614,9 +597,7 @@ public void downloadTrajectory(int position, String id, String dateSubmitted) { new okhttp3.Callback() { @Override public void onFailure(Call call, IOException e) { - Log.e( - "ServerCommunications", - "GET request error: " + e.getMessage()); + Log.e(TAG, "GET request error: " + e.getMessage()); } @Override @@ -629,7 +610,7 @@ public void onResponse(Call call, Response response) + response.code() + ")"); Log.d( - "ServerCommunications", + TAG, "Trajectories received.\n" + "Now parsing for ID " + id @@ -677,16 +658,14 @@ public void onResponse(Call call, Response response) // Convert the byte array to protobuf byte[] byteArray = byteArrayOutputStream.toByteArray(); - Log.d( - "ServerCommunications", - "byteArray = " + Arrays.toString(byteArray)); + Log.d(TAG, "byteArray = " + Arrays.toString(byteArray)); Traj.Trajectory receivedTrajectory = Traj.Trajectory.parseFrom(byteArray); // Print a message in the console long startTimestamp = receivedTrajectory.getStartTimestamp(); String fileName = "trajectory_" + dateSubmitted + ".txt"; - Log.i("ServerCommunications", fileName + " received"); + Log.i(TAG, fileName + " received"); // Inspect the size of the received trajectory logDataSize(receivedTrajectory); @@ -697,9 +676,7 @@ public void onResponse(Call call, Response response) Environment.DIRECTORY_DOWNLOADS); if (appSpecificDownloads != null && !appSpecificDownloads.exists()) { - Log.d( - "ServerCommunications", - "Creating downloads directory..."); + Log.d(TAG, "Creating downloads directory..."); appSpecificDownloads.mkdirs(); } @@ -710,7 +687,7 @@ public void onResponse(Call call, Response response) fileWriter.write(receivedTrajectoryString); fileWriter.flush(); Log.i( - "ServerCommunications", + TAG, "Received trajectory stored in: " + file.getAbsolutePath()); @@ -730,7 +707,7 @@ public void onResponse(Call call, Response response) .show()); } catch (IOException ee) { Log.e( - "ServerCommunications", + TAG, "Trajectory download failed: " + ee.getMessage()); new Handler(Looper.getMainLooper()) .post( @@ -784,7 +761,7 @@ public void sendInfoRequest(String requestURL) { new okhttp3.Callback() { @Override public void onFailure(Call call, IOException e) { - Log.e("ServerCommunications", "Error: " + e.getMessage()); + Log.e(TAG, "Error: " + e.getMessage()); } @Override @@ -802,10 +779,8 @@ public void onResponse(Call call, Response response) // it in a string infoResponse = responseBody.string(); // Print a message in the console and notify observers - Log.i( - "ServerCommunications", - "Response received; URL " + requestURL); - Log.i("ServerCommunications", infoResponse); + Log.i(TAG, "Response received; URL " + requestURL); + Log.i(TAG, infoResponse); notifyObservers(OBSERVER_INDEX_FILES); } } @@ -872,9 +847,7 @@ public void onResponse(@NonNull Call call, @NonNull Response response) if (!response.isSuccessful()) { assert responseBody != null; String errorBody = responseBody.string(); - Log.e( - "ServerCommunications", - "UPLOAD unsuccessful: " + errorBody); + Log.e(TAG, "UPLOAD unsuccessful: " + errorBody); infoResponse = "Upload Error (Error Code " + response.code() + ")"; new Handler(Looper.getMainLooper()) @@ -892,7 +865,7 @@ public void onResponse(@NonNull Call call, @NonNull Response response) Headers responseHeaders = response.headers(); for (int i = 0, size = responseHeaders.size(); i < size; i++) { Log.d( - "ServerCommunications", + TAG, responseHeaders.name(i) + ": " + responseHeaders.value(i)); @@ -900,15 +873,15 @@ public void onResponse(@NonNull Call call, @NonNull Response response) assert responseBody != null; infoResponse = responseBody.string(); - Log.i("ServerCommunications", "Floor plans received!"); - notifyObservers(OBSERVER_INDEX_RECORDING); + Log.i(TAG, "Floor plans received!"); + notifyObservers(OBSERVER_INDEX_INDOOR_MAPS); } } @Override public void onFailure(@NonNull Call call, @NonNull IOException e) { Log.e( - "ServerCommunications", + TAG, "[" + e.getMessage() + "] UPLOAD: Failure to get response"); // Show error message to users @@ -921,7 +894,7 @@ public void onFailure(@NonNull Call call, @NonNull IOException e) { infoResponse, Toast.LENGTH_SHORT) .show()); - notifyObservers(OBSERVER_INDEX_RECORDING); + notifyObservers(OBSERVER_INDEX_INDOOR_MAPS); } }); } @@ -961,16 +934,14 @@ private String createUploadURL(String campaign) { } private void logDataSize(Traj.Trajectory trajectory) { - Log.i("ServerCommunications", "IMU Data size: " + trajectory.getImuDataCount()); - Log.i( - "ServerCommunications", - "Position Data size: " + trajectory.getMagnetometerDataCount()); - Log.i("ServerCommunications", "Pressure Data size: " + trajectory.getPressureDataCount()); - Log.i("ServerCommunications", "Light Data size: " + trajectory.getLightDataCount()); - Log.i("ServerCommunications", "GNSS Data size: " + trajectory.getGnssDataCount()); - Log.i("ServerCommunications", "WiFi Data size: " + trajectory.getWifiFingerprintsCount()); - Log.i("ServerCommunications", "APS Data size: " + trajectory.getApsDataCount()); - Log.i("ServerCommunications", "PDR Data size: " + trajectory.getPdrDataCount()); + Log.i(TAG, "IMU Data size: " + trajectory.getImuDataCount()); + Log.i(TAG, "Position Data size: " + trajectory.getMagnetometerDataCount()); + Log.i(TAG, "Pressure Data size: " + trajectory.getPressureDataCount()); + Log.i(TAG, "Light Data size: " + trajectory.getLightDataCount()); + Log.i(TAG, "GNSS Data size: " + trajectory.getGnssDataCount()); + Log.i(TAG, "WiFi Data size: " + trajectory.getWifiFingerprintsCount()); + Log.i(TAG, "APS Data size: " + trajectory.getApsDataCount()); + Log.i(TAG, "PDR Data size: " + trajectory.getPdrDataCount()); } /** @@ -984,7 +955,7 @@ private void logDataSize(Traj.Trajectory trajectory) { @Override public void registerObserver(Observer o) { this.observers.add(o); - Log.i("ServerCommunications", "Added observer of type " + o.getClass()); + Log.i(TAG, "Added observer of type " + o.getClass()); } /** @@ -1001,12 +972,16 @@ public void notifyObservers(int index) { if (index == OBSERVER_INDEX_FILES && o instanceof FilesFragment) { o.update(new String[] {infoResponse}); } else if (index == OBSERVER_INDEX_MAIN && o instanceof MainActivity) { - Log.d("ServerCommunications", "Telling home!"); o.update(new Boolean[] {success}); - } else if (index == OBSERVER_INDEX_RECORDING && o instanceof RecordingFragment) { + } else if (index == OBSERVER_INDEX_INDOOR_MAPS && o instanceof IndoorMapManager) { o.update(new String[] {infoResponse}); } else { - Log.w("ServerCommunications", "No observer with index " + index); + Log.w( + TAG, + "Observer type " + + o.getClass().getSimpleName() + + " does not match observer index " + + index); } } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java index c9b7b560..9cdc4014 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java @@ -26,27 +26,10 @@ import com.google.android.material.button.MaterialButton; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.openpositioning.PositionMe.R; -import com.openpositioning.PositionMe.data.remote.ServerCommunications; import com.openpositioning.PositionMe.presentation.activity.RecordingActivity; -import com.openpositioning.PositionMe.sensors.Observer; import com.openpositioning.PositionMe.sensors.SensorFusion; import com.openpositioning.PositionMe.sensors.SensorTypes; import com.openpositioning.PositionMe.utils.UtilFunctions; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.geojson.Feature; -import org.geojson.FeatureCollection; -import org.geojson.GeoJsonObject; -import org.geojson.LngLatAlt; -import org.geojson.MultiLineString; -import org.geojson.MultiPolygon; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; -import tools.jackson.core.type.TypeReference; -import tools.jackson.databind.ObjectMapper; /** * Fragment responsible for managing the recording process of trajectory data. @@ -65,10 +48,9 @@ * @see RecordingActivity The activity managing the recording workflow. * @see SensorFusion Handles sensor data collection. * @see SensorTypes Enumeration of available sensor types. - * @see Observer Interface for handling server responses * @author Shu Gu */ -public class RecordingFragment extends Fragment implements Observer { +public class RecordingFragment extends Fragment { // UI elements private MaterialButton completeButton, cancelButton; @@ -112,7 +94,6 @@ public RecordingFragment() { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.sensorFusion = SensorFusion.getInstance(); - this.sensorFusion.registerForServerUpdate(this); Context context = requireActivity(); this.settings = PreferenceManager.getDefaultSharedPreferences(context); this.refreshDataHandler = new Handler(); @@ -348,129 +329,4 @@ public void onResume() { refreshDataHandler.postDelayed(refreshDataTask, 500); } } - - /** - * {@inheritDoc} Called by {@link ServerCommunications} when the response to the HTTP info - * request is received. - * - * @param singletonStringList A single string wrapped in an object array containing the HTTP - * response from the server. - */ - @Override - public void update(Object[] singletonStringList) { - if (singletonStringList != null && singletonStringList.length > 0) { - String response = singletonStringList[0].toString(); - Log.d("RecordingFragment", "Received response: " + response); - try { - // Parse the JSON, and draw all possible buildings - List> entryList = processPOSTResponse(response); - for (Map building : entryList) { - - String name = (String) building.get("name"); - @SuppressWarnings("unchecked") - List outline = (List) building.get("outline"); - @SuppressWarnings("unchecked") - Map> mapShapes = - (Map>) building.get("map_shapes"); - - trajectoryMapFragment.addBuilding(name, outline, mapShapes); - } - } catch (RuntimeException e) { - Log.e("RecordingFragment", "Error processing server response: " + e.getMessage()); - } - } - } - - /** - * Parses the GeoJSON response for floor plans - * - * @param response The raw JSON string response from the server - * @return A list of maps containing the data associated with every building contained with the - * response - */ - private List> processPOSTResponse(String response) throws RuntimeException { - List> entryList = new ArrayList<>(); - - try { - JSONArray jsonArray = new JSONArray(response); - - for (int i = 0; i < jsonArray.length(); i++) { - JSONObject buildingEntry = jsonArray.getJSONObject(i); - Map entryMap = new HashMap<>(); - - // Part 1 - Building Name - String name = buildingEntry.getString("name"); - - // Part 2 - Building Outline - FeatureCollection featureCollection = - new ObjectMapper() - .readValue( - buildingEntry.getString("outline"), - FeatureCollection.class); - - /* - * For every feature in the collection, extract the geometry, - * extract the coordinates, and reconstruct the outline as - * a list of LatLng points (ie, without the Alt, which is - * always NaN) - * */ - List featuresOutline = featureCollection.getFeatures(); - List coordinates = new ArrayList<>(); - for (Feature feature : featuresOutline) { - GeoJsonObject geometry = feature.getGeometry(); - if (geometry instanceof MultiPolygon multiPolygon) { - List>> coordinatesLngLatAlt = - multiPolygon.getCoordinates(); - for (LngLatAlt point : coordinatesLngLatAlt.get(0).get(0)) { - coordinates.add(new LatLng(point.getLatitude(), point.getLongitude())); - } - } - } - - // Part 3 - Floor plans - Map floorplansJSON = - new ObjectMapper() - .readValue( - buildingEntry.getString("map_shapes"), - new TypeReference<>() {}); - - // Map to index floor plans by floor name - Map> floorplans = new HashMap<>(); - - for (String floorname : floorplansJSON.keySet()) { - Object floor = floorplansJSON.get(floorname); - FeatureCollection fc = - new ObjectMapper().convertValue(floor, FeatureCollection.class); - - List feats = fc.getFeatures(); - List floorPolys = new ArrayList<>(); - for (Feature feat : feats) { - GeoJsonObject geometry = feat.getGeometry(); - // Check for MultiLineString is for Nucleus only - if (geometry instanceof MultiPolygon multiPolygon) { - floorPolys.add(multiPolygon); - Log.d("RecordingFragment", name + ": geometry MultiPolygon"); - } else if (geometry instanceof MultiLineString multiLineString) { - floorPolys.add(multiLineString); - Log.d("RecordingFragment", name + ": geometry MultiLineString"); - } else { - Log.w("RecordingFragment", name + " has no floorplans!"); - } - } - floorplans.put(floorname, floorPolys); - } - - entryMap.put("name", name); - entryMap.put("outline", coordinates); - entryMap.put("map_shapes", floorplans); - - entryList.add(entryMap); - Log.d("RecordingFragment", "Building '" + name + "' parsed"); - } - Log.d("RecordingFragment", entryList.size() + " buildings parsed"); - } catch (JSONException e) { - Log.e("RecordingFragment", "JSON Parse Failed: " + e.getMessage()); - } - return entryList; - } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java index df6f4df8..ce9a03bf 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java @@ -40,7 +40,6 @@ import com.openpositioning.PositionMe.utils.UtilFunctions; import java.util.ArrayList; import java.util.List; -import java.util.Map; /** * A fragment responsible for displaying a trajectory map using Google Maps. @@ -63,6 +62,7 @@ * @author Mate Stodulka */ public class TrajectoryMapFragment extends Fragment { + private static final String TAG = "TrajectoryMapFragment"; private GoogleMap gMap; // Google Maps instance private LatLng currentLocation; // Stores the user's current location @@ -150,7 +150,7 @@ public void onMapReady(@NonNull GoogleMap googleMap) { pendingCameraPosition = null; } - Log.d("TrajectoryMapFragment", "onMapReady: Map is ready!"); + Log.d(TAG, "onMapReady: Map is ready!"); } }); } @@ -193,7 +193,7 @@ public void onMapReady(@NonNull GoogleMap googleMap) { if (building != null) { building.setCurrentFloor(building.getFloorNumber() + 1, gMap); } else { - Log.w("TrajectoryMapFragment", "Floor Up Button: No building!"); + Log.w(TAG, "Floor Up Button: No building!"); } } }); @@ -206,7 +206,7 @@ public void onMapReady(@NonNull GoogleMap googleMap) { if (building != null) { building.setCurrentFloor(building.getFloorNumber() - 1, gMap); } else { - Log.w("TrajectoryMapFragment", "Floor Down Button: No building!"); + Log.w(TAG, "Floor Down Button: No building!"); } } }); @@ -359,6 +359,7 @@ public void updateUserLocation(@NonNull LatLng newLocation, float orientation) { for (Building building : indoorMapManager.getAllBuildings()) { building.drawBuildingOutline(gMap); if (building.getIsInsideBuilding()) { + sensorFusion.setCurrentBuilding(building.getName()); setFloorControlsVisibility(View.VISIBLE); } else { setFloorControlsVisibility(View.GONE); @@ -377,7 +378,7 @@ public void onPolygonClick(@NonNull Polygon polygon) { // Only show preview if floor plans are available if (building.getFloorNames().isEmpty()) { Log.w( - "TrajectoryMapFragment", + TAG, "Cannot show preview of " + building.getName() + " as there are no floor plans."); @@ -417,7 +418,10 @@ public void onPolygonClick(@NonNull Polygon polygon) { Building building = indoorMapManager.getCurrentBuilding(currentLocation); if (building != null) { float elevationVal = sensorFusion.getElevation(); - int newFloor = (int) (elevationVal / building.getFloorHeight()); + int newFloor = + (int) + (building.getGroundFloorIndex() + + elevationVal / building.getFloorHeight()); building.setCurrentFloor(newFloor, gMap); } } @@ -571,24 +575,4 @@ public void clearMapAndReset() { .add()); } } - - /** - * Add building from the server to reference list, and set building as campaign source for - * recording - * - * @param name The name of the building - * @param outline Points representing outline of building - * @param floorPlans MultiPolygons (or MultiLineString) of overlays for floor plans - */ - public void addBuilding( - String name, List outline, Map> floorPlans) { - if (!indoorMapManager.getAllBuildingNames().contains(name)) { - indoorMapManager.addBuilding(new Building(name, outline, floorPlans)); - } else { - Log.w( - "TrajectoryMapFragment", - "Building " + name + " already exists. Skipping creation."); - } - sensorFusion.setCurrentBuilding(name); - } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java index d9d21dee..9c9816e6 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java @@ -28,6 +28,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Timer; import java.util.TimerTask; import java.util.stream.Collectors; @@ -56,6 +57,7 @@ * @author Virginia Cangelosi */ public class SensorFusion implements SensorEventListener, Observer { + private static final String TAG = "SensorFusion"; // Store the last event timestamps for each sensor type private HashMap lastEventTimestamps = new HashMap<>(); @@ -335,7 +337,7 @@ public void onSensorChanged(SensorEvent sensorEvent) { gravity[2] = sensorEvent.values[2]; // Possibly log gravity values if needed - // Log.v("SensorFusion", "Gravity: " + Arrays.toString(gravity)); + // Log.v(TAG, "Gravity: " + Arrays.toString(gravity)); elevator = pdrProcessing.estimateElevator(gravity, filteredAcc); break; @@ -366,7 +368,7 @@ public void onSensorChanged(SensorEvent sensorEvent) { if (currentTime - lastStepTime < SENSOR_POLL_TIME_MS) { Log.e( - "SensorFusion", + TAG, "Ignoring step event, too soon after last step event:" + (currentTime - lastStepTime) + " ms"); @@ -377,12 +379,12 @@ public void onSensorChanged(SensorEvent sensorEvent) { // Log if accelMagnitude is empty if (accelMagnitude.isEmpty()) { Log.e( - "SensorFusion", + TAG, "stepDetection triggered, but accelMagnitude is empty! This can" + " cause updatePdr(...) to fail or return bad results."); } else { Log.d( - "SensorFusion", + TAG, "stepDetection triggered, accelMagnitude size = " + accelMagnitude.size()); } @@ -415,9 +417,7 @@ public void onSensorChanged(SensorEvent sensorEvent) { */ public void logSensorFrequencies() { for (int sensorType : eventCounts.keySet()) { - Log.d( - "SensorFusion", - "Sensor " + sensorType + " | Event Count: " + eventCounts.get(sensorType)); + Log.d(TAG, "Sensor " + sensorType + " | Event Count: " + eventCounts.get(sensorType)); } } @@ -1256,8 +1256,10 @@ public void requestFloorplans(LatLng position) { } public void setCurrentBuilding(String currentBuilding) { - this.currentBuilding = currentBuilding; - Log.i("SensorFusion", "Route now associated with " + this.currentBuilding); + if (!Objects.equals(this.currentBuilding, currentBuilding)) { + this.currentBuilding = currentBuilding; + Log.i(TAG, "Route now associated with " + this.currentBuilding); + } } public String getCurrentBuilding() { diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java b/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java index 061fe481..4db76e5e 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java @@ -26,6 +26,7 @@ import org.geojson.MultiPolygon; public class Building { + private static final String TAG = "Building"; private static final int BUILDING_NO_FLOOR = -1; private static final String BUILDING_GROUND_PREFIX = "G"; @@ -76,7 +77,7 @@ public Building(String name, List outlinePoints, Map> buildFloorPlanElements() { Map> floorPlanElementOptions = new HashMap<>(); List floorNames = new ArrayList<>(this.floorPlans.keySet()); for (String floorName : floorNames) { - List plan = floorPlans.get(floorName); + List floorPlan = floorPlans.get(floorName); List floorElements = new ArrayList<>(); - // Most building floor plans will be MultiPolygon - // Nucleus will use MultiLineString - for (Object multipolygon : plan) { - List> allCoordinates; - if (multipolygon instanceof MultiPolygon) { - allCoordinates = ((MultiPolygon) multipolygon).getCoordinates().get(0); - } else if (multipolygon instanceof MultiLineString) { - allCoordinates = ((MultiLineString) multipolygon).getCoordinates(); + // Most building floor plans will be a list of MultiPolygon objects + // Nucleus will use a list of MultiLineString objects + for (Object element : floorPlan) { + // Initialise empty, for use when floor plan is invalid + List> allCoordinates = new ArrayList<>(); + if (element instanceof MultiPolygon multiPolygon) { + if (multiPolygon.getCoordinates().size() <= 0) { + continue; + } + allCoordinates = multiPolygon.getCoordinates().get(0); + } else if (element instanceof MultiLineString multiLineString) { + // TODO - Confirm with industry contact if MultiLineString can be removed + allCoordinates = multiLineString.getCoordinates(); } else { - // Initialise as empty if no valid plans available - allCoordinates = new ArrayList<>(); - allCoordinates.add(new ArrayList<>()); - Log.w("Building", name + ": Invalid floorplan during construction!"); + Log.w( + TAG, + name + + ": Invalid floorplan for floor " + + floorName + + " during construction!"); } for (List elementCoordinates : allCoordinates) { List floorElement = new ArrayList<>(); @@ -222,9 +231,9 @@ public void drawBuildingOutline(GoogleMap map) { ? COLOUR_BUILDING_WITH_FLOOR_MAPS : COLOUR_BUILDING_WITHOUT_FLOOR_MAPS; this.outlinePolygon = map.addPolygon(outlinePolygonOptions.strokeColor(strokeColour)); - Log.i("Building", name + ": Building outline drawn"); + Log.d(TAG, name + ": Building outline drawn"); } else { - Log.i("Building", name + ": Outline already visible"); + Log.d(TAG, name + ": Outline already visible"); } } @@ -235,7 +244,7 @@ public void drawBuildingOutline(GoogleMap map) { */ public void setFillColour(int colour) { if (outlinePolygon == null) { - Log.w("Building", name + ": Outline polygon is null!"); + Log.w(TAG, name + ": Outline polygon is null!"); } else { outlinePolygon.setFillColor(colour); } @@ -250,7 +259,7 @@ public void setFillColour(int colour) { public void setCurrentFloor(int newFloor, GoogleMap gMap) { if (newFloor < 0 || newFloor >= floorNames.size()) { Log.w( - "Building", + TAG, name + ": Suggested floor " + newFloor @@ -260,7 +269,7 @@ public void setCurrentFloor(int newFloor, GoogleMap gMap) { } else if (newFloor == floorNumber) { // Redraw the floor plan elements editFloorPlan(gMap, floorNumber, true); - Log.w("Building", name + ": Already on floor " + newFloor); + Log.d(TAG, name + ": Already on floor " + newFloor); } else { // Floor number initialises to -1, so reinitialise if required if (floorNumber == BUILDING_NO_FLOOR) { @@ -271,7 +280,7 @@ public void setCurrentFloor(int newFloor, GoogleMap gMap) { floorNumber = newFloor; } editFloorPlan(gMap, floorNumber, true); - Log.i("Building", name + ": Floor set to " + floorNumber); + Log.d(TAG, name + ": Floor set to " + floorNumber); } } @@ -311,7 +320,7 @@ public void editFloorPlan(GoogleMap map, int floorNumber, boolean showFloor) { } else { // Continue only if floor plan elements can be created if (!floorPlanElementOptions.containsKey(floorName)) { - Log.w("Building", name + ": Floor " + floorNumber + " has no floor plan!"); + Log.w(TAG, name + ": Floor " + floorNumber + " has no floor plan!"); return; } // Create the PolyLine objects for the first time @@ -321,14 +330,14 @@ public void editFloorPlan(GoogleMap map, int floorNumber, boolean showFloor) { elements.add(floorElement); } floorPlanElements.put(floorName, elements); - Log.i("Building", name + " floor " + floorNumber + " added to list"); + Log.d(TAG, name + " floor " + floorNumber + " added to list"); } // With all elements gathered, set their visibility as required for (Polyline element : elements) { element.setVisible(showFloor); } - Log.i("Building", name + " floor " + floorNumber + " visibility set to " + showFloor); + Log.d(TAG, name + " floor " + floorNumber + " visibility set to " + showFloor); } /** diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java index fd099e75..c2315db0 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java @@ -3,22 +3,41 @@ import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_FLOOR_PLAN_FILL_INSIDE; import static com.openpositioning.PositionMe.utils.UtilConstants.COLOUR_FLOOR_PLAN_FILL_TRANSPARENT; +import android.util.Log; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.model.LatLng; +import com.openpositioning.PositionMe.data.remote.ServerCommunications; +import com.openpositioning.PositionMe.sensors.Observer; +import com.openpositioning.PositionMe.sensors.SensorFusion; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import org.geojson.Feature; +import org.geojson.FeatureCollection; +import org.geojson.GeoJsonObject; +import org.geojson.LngLatAlt; +import org.geojson.MultiPolygon; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import tools.jackson.core.type.TypeReference; +import tools.jackson.databind.ObjectMapper; /** * Class used to manage indoor floor map overlays Currently used by RecordingFragment * * @see Building Describes the bounds of buildings and the methods to check if point is in the * building + * @see Observer Interface for handling server responses * @author Arun Gopalakrishnan */ -public class IndoorMapManager { +public class IndoorMapManager implements Observer { + private static final String TAG = "IndoorMapManager"; // To store the map instance private GoogleMap gMap; - // Stores the current Location of user + private SensorFusion sensorFusion; + // Stores the current location of the user private LatLng currentLocation; private List buildings = new ArrayList<>(); private List buildingNames = new ArrayList<>(); @@ -30,6 +49,8 @@ public class IndoorMapManager { */ public IndoorMapManager(GoogleMap map) { this.gMap = map; + this.sensorFusion = SensorFusion.getInstance(); + sensorFusion.registerForServerUpdate(this); } public List getAllBuildings() { @@ -87,4 +108,125 @@ public Building getCurrentBuilding(LatLng position) { } return null; } + + /** + * {@inheritDoc} Called by {@link ServerCommunications} when the response to the HTTP info + * request is received. + * + * @param singletonStringList A single string wrapped in an object array containing the HTTP + * response from the server. + */ + @Override + public void update(Object[] singletonStringList) { + if (singletonStringList != null && singletonStringList.length > 0) { + String response = singletonStringList[0].toString(); + Log.d(TAG, "Received response: " + response); + try { + // Parse the JSON, and draw all possible buildings + List> entryList = processPOSTResponse(response); + for (Map building : entryList) { + + String name = (String) building.get("name"); + @SuppressWarnings("unchecked") + List outline = (List) building.get("outline"); + @SuppressWarnings("unchecked") + Map> mapShapes = + (Map>) building.get("map_shapes"); + + // Add building to list of known buildings + if (!this.getAllBuildingNames().contains(name)) { + this.addBuilding(new Building(name, outline, mapShapes)); + } else { + Log.w(TAG, "Building " + name + " already exists. Skipping creation."); + } + } + } catch (RuntimeException e) { + Log.e(TAG, "Error processing server response: " + e.getMessage()); + } + } + } + + /** + * Parses the GeoJSON response for floor plans + * + * @param response The raw JSON string response from the server + * @return A list of maps containing the data associated with every building contained with the + * response + */ + private List> processPOSTResponse(String response) throws RuntimeException { + List> entryList = new ArrayList<>(); + + try { + JSONArray jsonArray = new JSONArray(response); + + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject buildingEntry = jsonArray.getJSONObject(i); + Map entryMap = new HashMap<>(); + + // Part 1 - Building Name + String name = buildingEntry.getString("name"); + + // Part 2 - Building Outline + FeatureCollection featureCollection = + new ObjectMapper() + .readValue( + buildingEntry.getString("outline"), + FeatureCollection.class); + + /* + * For every feature in the collection, extract the geometry, + * extract the coordinates, and reconstruct the outline as + * a list of LatLng points (ie, without the Alt, which is + * always NaN) + * */ + List featuresOutline = featureCollection.getFeatures(); + List coordinates = new ArrayList<>(); + for (Feature feature : featuresOutline) { + GeoJsonObject geometry = feature.getGeometry(); + if (geometry instanceof MultiPolygon multiPolygon) { + List>> coordinatesLngLatAlt = + multiPolygon.getCoordinates(); + for (LngLatAlt point : coordinatesLngLatAlt.get(0).get(0)) { + coordinates.add(new LatLng(point.getLatitude(), point.getLongitude())); + } + } + } + + // Part 3 - Floor plans + Map floorplansJSON = + new ObjectMapper() + .readValue( + buildingEntry.getString("map_shapes"), + new TypeReference<>() {}); + + // Map to index floor plans by floor name + Map> floorplans = new HashMap<>(); + + for (String floorname : floorplansJSON.keySet()) { + Object floor = floorplansJSON.get(floorname); + FeatureCollection fc = + new ObjectMapper().convertValue(floor, FeatureCollection.class); + + List features = fc.getFeatures(); + List floorElements = new ArrayList<>(); + for (Feature feature : features) { + GeoJsonObject floorElement = feature.getGeometry(); + floorElements.add(floorElement); + } + floorplans.put(floorname, floorElements); + } + + entryMap.put("name", name); + entryMap.put("outline", coordinates); + entryMap.put("map_shapes", floorplans); + + entryList.add(entryMap); + Log.d(TAG, "Building '" + name + "' parsed"); + } + Log.d(TAG, entryList.size() + " buildings parsed"); + } catch (JSONException e) { + Log.e(TAG, "JSON Parse Failed: " + e.getMessage()); + } + return entryList; + } } From 9521625e6faa64f8f30149325ac11cb65c268fe1 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Tue, 10 Mar 2026 12:30:29 +0000 Subject: [PATCH 28/65] [Infra] Revised README.md (#69) --- README.md | 58 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 2dcfeb10..33b857b6 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,23 @@ - **Progress bar for tracking playback status**. - **Redesigned UI**: Modern and user-friendly interface for enhanced usability. +## Usage + +1. **Install the application** using Android Studio. +2. **Launch the application** on your Android device. +3. **Grant necessary permissions** when prompted: + - Sensor access + - Location services + - Internet connectivity +4. **Collect real-time positioning data**: + - Follow on-screen instructions to record sensor data. +5. **Replay previously recorded trajectories**: + - Navigate to the **Files** section. + - Select a saved trajectory and press **Play**. + - The recorded trajectory will be simulated and displayed on the map. +6. **Control playback**: + - Pause, restart, or jump to the end using playback controls. + ## Requirements - **Android Studio 4.2** or later @@ -33,25 +50,26 @@ For developers, the latest commits have been tested using the following configur ## Installation -1. **Clone the repository.** -2. **Open the project in Android Studio**. -3. Add your own API key for Google Maps in `AndroidManifest.xml` -4. Set the website where you want to send your data. The application was built for use with [openpositioning.org](http://openpositioning.org/). -5. **Build and run the project on your Android device**. +1. Clone the repository (`git clone`). +2. Open the project in Android Studio. +3. Add your own API keys for Google Maps and OpenPositioning in `secrets.properties`. +4. Build and run the project on your Android device. -## Usage +## Build -1. **Install the application** using Android Studio. -2. **Launch the application** on your Android device. -3. **Grant necessary permissions** when prompted: - - Sensor access - - Location services - - Internet connectivity -4. **Collect real-time positioning data**: - - Follow on-screen instructions to record sensor data. -5. **Replay previously recorded trajectories**: - - Navigate to the **Files** section. - - Select a saved trajectory and press **Play**. - - The recorded trajectory will be simulated and displayed on the map. -6. **Control playback**: - - Pause, restart, or jump to the end using playback controls. +This project uses [Spotless](https://github.com/diffplug/spotless) for automatic linting against the [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html). To build the project with linting, run: + +```bash +$ chmod +x ./gradlew +$ ./gradlew clean build +``` + +This will run `spotlessCheck` as a pre-requisite for `build`. Any lint errors will cause the build to fail. + +If there are lint errors, you can either resolve these manually or run: + +```bash +$ ./gradlew spotlessApply +``` + +This will use Spotless to let you resolve the errors identified during `spotlessCheck`. From b5ed16f272a83b74ca4534656e987d3605f87e92 Mon Sep 17 00:00:00 2001 From: keeegannn <115988136+keeegannn@users.noreply.github.com> Date: Wed, 11 Mar 2026 17:39:50 +0000 Subject: [PATCH 29/65] Added general Fusion package containing general Fusion class for general location correction logic and initial ParticleFilter with the updateWeight() function still to be implemented. Added commented out code to add corrected points to the trajectory to be uploaded in SensorFusion. --- .../PositionMe/Fusion/Fusion.java | 78 +++++++ .../PositionMe/Fusion/FusionConstants.java | 24 +++ .../PositionMe/Fusion/ParticleFilter.java | 190 ++++++++++++++++++ .../PositionMe/sensors/SensorFusion.java | 26 ++- .../PositionMe/utils/PdrProcessing.java | 7 +- 5 files changed, 320 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java create mode 100644 app/src/main/java/com/openpositioning/PositionMe/Fusion/FusionConstants.java create mode 100644 app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java diff --git a/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java b/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java new file mode 100644 index 00000000..668e3d52 --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java @@ -0,0 +1,78 @@ +package com.openpositioning.PositionMe.Fusion; + +import com.google.android.gms.maps.model.LatLng; +import com.openpositioning.PositionMe.sensors.SensorFusion; +import com.openpositioning.PositionMe.utils.PdrProcessing; + +/** + * Top-level fusion class that manages corrected position estimation. + * + *

    Wraps a {@link ParticleFilter} and exposes a simplified interface for the rest of the + * application. PDR updates are forwarded to the particle filter, and the best position + * estimate is derived from the weighted particle population. + * + * @see ParticleFilter for the underlying sequential Monte Carlo implementation. + * @see SensorFusion for the caller that drives PDR and WiFi updates. + */ +public class Fusion { + // Current best position estimate in WGS84 + private LatLng BestEstimate; + // Estimated floor level + private int EstimatedFloor; + // Whether the fusion system is actively tracking + public boolean isActive; + // Underlying particle filter instance + private final ParticleFilter particleFilter; + private PdrProcessing pdrProcessing; + + public Fusion(){ + this.particleFilter = new ParticleFilter(); + } + + /** + * Forwards a PDR displacement to the particle filter for the prediction step. + * + * @param dx easting displacement in metres. + * @param dy northing displacement in metres. + */ + public void filterPDRUpdate(float dx, float dy){ + this.particleFilter.updateWithPDR(dx, dy); + } + + /** + * Stops the fusion system and releases the particle filter resources. + */ + public void stop(){ + this.particleFilter.stop(); + isActive = false; + } + + /** + * Initialises the fusion system and seeds the particle filter around the given position. + * + * @param initial_pos starting position in WGS84 coordinates. + */ + public void start(LatLng initial_pos, PdrProcessing pdrProcessing){ + isActive = true; + this.BestEstimate = initial_pos; + this.particleFilter.start(initial_pos); + } + + /** + * Returns the current fused position estimate from the particle filter. + * + * @return {@link LatLng} of the best estimated position. + */ + public LatLng getBestEstimate() { + LatLng particleFilterEstimate = particleFilter.getEstimated_position(); + return BestEstimate; + } + + public int getEstimatedFloor() { + return EstimatedFloor; + } + + public boolean isActive() { + return isActive; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/openpositioning/PositionMe/Fusion/FusionConstants.java b/app/src/main/java/com/openpositioning/PositionMe/Fusion/FusionConstants.java new file mode 100644 index 00000000..bea77e1d --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/Fusion/FusionConstants.java @@ -0,0 +1,24 @@ +package com.openpositioning.PositionMe.Fusion; + +public final class FusionConstants { + private FusionConstants() {} // prevent instantiation + + // Particle filter + public static final int PARTICLE_COUNT = 100; + public static final double INITIAL_UNCERTAINTY_M = 5.0; + + // Observation standard deviations (metres) + public static final double WIFI_STD_DEV = 8.0; + public static final double GNSS_STD_DEV_DEFAULT = 15.0; + + // Floor + public static final int DEFAULT_FLOOR = 0; + public static final double FLOOR_HEIGHT_M = 4.0; + + // Coordinate conversion (WGS84 approximations at Edinburgh ~55.9°N) + public static final double METRES_PER_DEG_LAT = 110574.0; + public static final double METRES_PER_DEG_LNG_AT_EQUATOR = 111319.5; + public static final double PDR_NOISE_STDDEV = 0.2; + public static final double PARTICLE_FILTER_THRESHOLD = 0.33; + public static final double RESAMPLE_JITTER = 0.05; +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java b/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java new file mode 100644 index 00000000..bb983a97 --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java @@ -0,0 +1,190 @@ +package com.openpositioning.PositionMe.Fusion; + +import com.google.android.gms.maps.model.LatLng; +import java.util.ArrayList; +import java.util.Random; +import static com.openpositioning.PositionMe.Fusion.FusionConstants.*; + +/** + * Particle filter for indoor position estimation. + * + *

    Maintains a population of weighted particles in a local East-North coordinate frame + * and uses sequential Monte Carlo methods to estimate the user's position. Particles are + * propagated using PDR displacement and resampled using systematic resampling when weight + * degeneracy is detected. + * + * @see Fusion for the parent fusion class that drives this filter. + * @see FusionConstants for tuning parameters. + */ +public class ParticleFilter { + // WGS84 reference point for local EN coordinate conversion + private double refLng, refLat; + // Particle population + private ArrayList particles; + private boolean active; + private Random rand; + // Current best position estimate + private LatLng estimated_position; + + /** + * Internal representation of a single particle with 2D position and weight. + */ + private class Particle { + double easting; + double northing; + double weight; + + public Particle(double easting, double northing, double weight) { + this.easting = easting; + this.northing = northing; + this.weight = weight; + } + } + + /** + * Initialises the particle filter with a cloud of particles around the given position. + * + *

    Sets the WGS84 reference point for coordinate conversion and distributes particles + * with Gaussian uncertainty around the initial position. + * + * @param initial_pos starting position in WGS84 coordinates. + */ + public void start(LatLng initial_pos){ + this.rand = new Random(); + this.refLat = initial_pos.latitude; + this.refLng = initial_pos.longitude; + this.active = true; + this.estimated_position = initial_pos; + double[] east_north = latLngToEN(initial_pos.latitude, initial_pos.longitude); + particles = new ArrayList<>(PARTICLE_COUNT); + for (int i = 0; i < PARTICLE_COUNT; i++) { + particles.add(new Particle( + east_north[0] + rand.nextGaussian() * INITIAL_UNCERTAINTY_M, + east_north[1] + rand.nextGaussian() * INITIAL_UNCERTAINTY_M, + 1.0 / PARTICLE_COUNT + )); + } + } + + /** + * Prediction step: propagates all particles using a PDR displacement with added process noise. + * + *

    After propagation, weights are updated and systematic resampling is triggered + * if weight degeneracy exceeds the threshold. The position estimate is updated each cycle. + * + * @param dx easting displacement in metres from the PDR step. + * @param dy northing displacement in metres from the PDR step. + */ + public void updateWithPDR(double dx, double dy){ + // Propagate each particle with PDR step + stochastic process noise + for (Particle particle : particles){ + particle.easting += dx + rand.nextGaussian() * PDR_NOISE_STDDEV; + particle.northing += dy + rand.nextGaussian() * PDR_NOISE_STDDEV; + } + double max_weight = updateWeights(); + if (max_weight > PARTICLE_FILTER_THRESHOLD){ + repopulate(); + } + updateEstimatedPosition(); + } + + /** + * Converts WGS84 coordinates to local East-North metres relative to the reference point. + * + * @param lat latitude in degrees. + * @param lng longitude in degrees. + * @return double array {easting, northing} in metres. + */ + public double[] latLngToEN(double lat, double lng) { + double e = (lng - refLng) * Math.cos(Math.toRadians(refLat)) * METRES_PER_DEG_LNG_AT_EQUATOR; + double n = (lat - refLat) * METRES_PER_DEG_LAT; + return new double[]{e, n}; + } + + /** + * Converts local East-North metres back to WGS84 coordinates. + * + * @param easting east displacement in metres from reference. + * @param northing north displacement in metres from reference. + * @return {@link LatLng} in WGS84 coordinates. + */ + public LatLng enToLatLng(double easting, double northing) { + double lat = refLat + northing / METRES_PER_DEG_LAT; + double lng = refLng + easting / (METRES_PER_DEG_LNG_AT_EQUATOR * Math.cos(Math.toRadians(refLat))); + return new LatLng(lat, lng); + } + + /** + * Stops the filter and releases the particle population. + */ + public void stop() { + this.active = false; + if (particles != null) particles.clear(); + } + + /** + * Update step: assigns weights to particles based on observation likelihood. + * + * @return the maximum particle weight after normalisation. + */ + public double updateWeights(){ + return 0; + } + + /** + * Computes the weighted mean of the particle population as the current position estimate. + */ + public void updateEstimatedPosition(){ + double sum_e = 0, sum_n = 0, sum_w = 0; + for (Particle particle: particles){ + sum_e += particle.easting * particle.weight; + sum_n += particle.northing * particle.weight; + sum_w += particle.weight; + } + this.estimated_position = enToLatLng(sum_e / sum_w, sum_n / sum_w); + } + + /** + * Systematic resampling of the particle population. + * + *

    Builds a cumulative weight distribution and selects particles at evenly spaced + * intervals with a single random offset. Selected particles are duplicated with a small + * Gaussian jitter to maintain diversity, and weights are reset to uniform. + * + * @see FusionConstants#RESAMPLE_JITTER for the regularisation noise parameter. + */ + public void repopulate() { + ArrayList newParticles = new ArrayList<>(PARTICLE_COUNT); + + // Build cumulative weight distribution + double[] cumulative = new double[particles.size()]; + cumulative[0] = particles.get(0).weight; + for (int i = 1; i < particles.size(); i++) { + cumulative[i] = cumulative[i - 1] + particles.get(i).weight; + } + + // Evenly spaced pointers with single random offset + double step = 1.0 / PARTICLE_COUNT; + double start = rand.nextDouble() * step; + int idx = 0; + + for (int i = 0; i < PARTICLE_COUNT; i++) { + double pointer = start + i * step; + while (cumulative[idx] < pointer) { + idx++; + } + Particle selected = particles.get(idx); + // Duplicate with jitter to prevent particle collapse + newParticles.add(new Particle( + selected.easting + rand.nextGaussian() * RESAMPLE_JITTER, + selected.northing + rand.nextGaussian() * RESAMPLE_JITTER, + 1.0 / PARTICLE_COUNT + )); + } + particles = newParticles; + } + + public LatLng getEstimated_position(){ + return this.estimated_position; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java index d9d21dee..93e60804 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java @@ -18,6 +18,7 @@ import androidx.annotation.NonNull; import androidx.preference.PreferenceManager; import com.google.android.gms.maps.model.LatLng; +import com.openpositioning.PositionMe.Fusion.Fusion; import com.openpositioning.PositionMe.Traj; import com.openpositioning.PositionMe.data.remote.ServerCommunications; import com.openpositioning.PositionMe.presentation.activity.MainActivity; @@ -166,6 +167,8 @@ public class SensorFusion implements SensorEventListener, Observer { private PathView pathView; // WiFi positioning object private WiFiPositioning wiFiPositioning; + // Fusion used for corrected positioning + public Fusion fusion = new Fusion(); /** * Private constructor for implementing singleton design pattern for SensorFusion. Initialises @@ -391,6 +394,8 @@ public void onSensorChanged(SensorEvent sensorEvent) { this.pdrProcessing.updatePdr( stepTime, this.accelMagnitude, this.orientation[0]); + this.fusion.filterPDRUpdate(newCords[2], newCords[3]); + // Clear the accelMagnitude after using it // CAUTION - This line never runs! this.accelMagnitude.clear(); @@ -1079,8 +1084,9 @@ public void startRecording() { .setZ(rotation[2]) .setW(rotation[3])) .setStepCount(0)); + // start fusion predictions + this.fusion.start(new LatLng(startLocation[0], startLocation[1]), pdrProcessing); //Start fusion predictions } - this.storeTrajectoryTimer = new Timer(); this.storeTrajectoryTimer.schedule(new storeDataInTrajectory(), 0, TIME_CONST); this.pdrProcessing.resetPDR(); @@ -1109,6 +1115,9 @@ public void stopRecording() { if (wakeLock.isHeld()) { this.wakeLock.release(); } + if (fusion.isActive()) { + this.fusion.stop(); + } } /** @@ -1188,6 +1197,21 @@ public void run() { // Divide timer with a counter for storing data every 1 second if (counter == 99) { counter = 0; + //store fusion corrected estimated point to the trajectory at 1 sec intervals + /* + if (this.fusion.isActive()){ + LatLng fused = this.fusion.getBestEstimate() + if (fused != null){ + trajectory.addCorrectedPositions( + Traj.GNSSPosition.newBuilder() + .setRelativeTimestamp(SystemClock.uptimeMillis() - bootTime) + .setLatitude(fused.latitude) + .setLongitude(fused.longitude) + .setAltitude(elevation) + .setFloor(fusion.getEstimatedFloor) + } + } + */ // Store pressure and light data if (barometerSensor.sensor != null) { trajectory diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/PdrProcessing.java b/app/src/main/java/com/openpositioning/PositionMe/utils/PdrProcessing.java index d1039a4e..d2f82fa2 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/PdrProcessing.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/PdrProcessing.java @@ -178,8 +178,8 @@ public float[] updatePdr( this.positionX += x; this.positionY += y; - // return current position - return new float[] {this.positionX, this.positionY}; + // return current position and delta values + return new float[] {this.positionX, this.positionY, x, y}; } /** @@ -269,8 +269,7 @@ private float weibergMinMax(List accelMagnitude) { * @return float array of size 2, with the X and Y coordinates respectively. */ public float[] getPDRMovement() { - float[] pdrPosition = new float[] {positionX, positionY}; - return pdrPosition; + return new float[] {positionX, positionY}; } /** From 267b795c1a252d99eb525b8e0c82178222a1369e Mon Sep 17 00:00:00 2001 From: keeegannn <115988136+keeegannn@users.noreply.github.com> Date: Wed, 11 Mar 2026 18:31:59 +0000 Subject: [PATCH 30/65] Added general Fusion package containing general Fusion class for general location correction logic and initial ParticleFilter with the updateWeight() function still to be implemented. Added commented out code to add corrected points to the trajectory to be uploaded in SensorFusion. now with fixed lint. --- .../PositionMe/Fusion/Fusion.java | 18 ++-- .../PositionMe/Fusion/ParticleFilter.java | 95 ++++++++++--------- .../PositionMe/sensors/SensorFusion.java | 6 +- 3 files changed, 62 insertions(+), 57 deletions(-) diff --git a/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java b/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java index 668e3d52..7e7a80b6 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java @@ -8,8 +8,8 @@ * Top-level fusion class that manages corrected position estimation. * *

    Wraps a {@link ParticleFilter} and exposes a simplified interface for the rest of the - * application. PDR updates are forwarded to the particle filter, and the best position - * estimate is derived from the weighted particle population. + * application. PDR updates are forwarded to the particle filter, and the best position estimate is + * derived from the weighted particle population. * * @see ParticleFilter for the underlying sequential Monte Carlo implementation. * @see SensorFusion for the caller that drives PDR and WiFi updates. @@ -25,7 +25,7 @@ public class Fusion { private final ParticleFilter particleFilter; private PdrProcessing pdrProcessing; - public Fusion(){ + public Fusion() { this.particleFilter = new ParticleFilter(); } @@ -35,14 +35,12 @@ public Fusion(){ * @param dx easting displacement in metres. * @param dy northing displacement in metres. */ - public void filterPDRUpdate(float dx, float dy){ + public void filterPDRUpdate(float dx, float dy) { this.particleFilter.updateWithPDR(dx, dy); } - /** - * Stops the fusion system and releases the particle filter resources. - */ - public void stop(){ + /** Stops the fusion system and releases the particle filter resources. */ + public void stop() { this.particleFilter.stop(); isActive = false; } @@ -52,7 +50,7 @@ public void stop(){ * * @param initial_pos starting position in WGS84 coordinates. */ - public void start(LatLng initial_pos, PdrProcessing pdrProcessing){ + public void start(LatLng initial_pos, PdrProcessing pdrProcessing) { isActive = true; this.BestEstimate = initial_pos; this.particleFilter.start(initial_pos); @@ -75,4 +73,4 @@ public int getEstimatedFloor() { public boolean isActive() { return isActive; } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java b/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java index bb983a97..da7bd731 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java @@ -1,17 +1,23 @@ package com.openpositioning.PositionMe.Fusion; +import static com.openpositioning.PositionMe.Fusion.FusionConstants.INITIAL_UNCERTAINTY_M; +import static com.openpositioning.PositionMe.Fusion.FusionConstants.METRES_PER_DEG_LAT; +import static com.openpositioning.PositionMe.Fusion.FusionConstants.METRES_PER_DEG_LNG_AT_EQUATOR; +import static com.openpositioning.PositionMe.Fusion.FusionConstants.PARTICLE_COUNT; +import static com.openpositioning.PositionMe.Fusion.FusionConstants.PARTICLE_FILTER_THRESHOLD; +import static com.openpositioning.PositionMe.Fusion.FusionConstants.PDR_NOISE_STDDEV; +import static com.openpositioning.PositionMe.Fusion.FusionConstants.RESAMPLE_JITTER; + import com.google.android.gms.maps.model.LatLng; import java.util.ArrayList; import java.util.Random; -import static com.openpositioning.PositionMe.Fusion.FusionConstants.*; /** * Particle filter for indoor position estimation. * - *

    Maintains a population of weighted particles in a local East-North coordinate frame - * and uses sequential Monte Carlo methods to estimate the user's position. Particles are - * propagated using PDR displacement and resampled using systematic resampling when weight - * degeneracy is detected. + *

    Maintains a population of weighted particles in a local East-North coordinate frame and uses + * sequential Monte Carlo methods to estimate the user's position. Particles are propagated using + * PDR displacement and resampled using systematic resampling when weight degeneracy is detected. * * @see Fusion for the parent fusion class that drives this filter. * @see FusionConstants for tuning parameters. @@ -26,9 +32,7 @@ public class ParticleFilter { // Current best position estimate private LatLng estimated_position; - /** - * Internal representation of a single particle with 2D position and weight. - */ + /** Internal representation of a single particle with 2D position and weight. */ private class Particle { double easting; double northing; @@ -44,12 +48,12 @@ public Particle(double easting, double northing, double weight) { /** * Initialises the particle filter with a cloud of particles around the given position. * - *

    Sets the WGS84 reference point for coordinate conversion and distributes particles - * with Gaussian uncertainty around the initial position. + *

    Sets the WGS84 reference point for coordinate conversion and distributes particles with + * Gaussian uncertainty around the initial position. * * @param initial_pos starting position in WGS84 coordinates. */ - public void start(LatLng initial_pos){ + public void start(LatLng initial_pos) { this.rand = new Random(); this.refLat = initial_pos.latitude; this.refLng = initial_pos.longitude; @@ -58,31 +62,31 @@ public void start(LatLng initial_pos){ double[] east_north = latLngToEN(initial_pos.latitude, initial_pos.longitude); particles = new ArrayList<>(PARTICLE_COUNT); for (int i = 0; i < PARTICLE_COUNT; i++) { - particles.add(new Particle( - east_north[0] + rand.nextGaussian() * INITIAL_UNCERTAINTY_M, - east_north[1] + rand.nextGaussian() * INITIAL_UNCERTAINTY_M, - 1.0 / PARTICLE_COUNT - )); + particles.add( + new Particle( + east_north[0] + rand.nextGaussian() * INITIAL_UNCERTAINTY_M, + east_north[1] + rand.nextGaussian() * INITIAL_UNCERTAINTY_M, + 1.0 / PARTICLE_COUNT)); } } /** * Prediction step: propagates all particles using a PDR displacement with added process noise. * - *

    After propagation, weights are updated and systematic resampling is triggered - * if weight degeneracy exceeds the threshold. The position estimate is updated each cycle. + *

    After propagation, weights are updated and systematic resampling is triggered if weight + * degeneracy exceeds the threshold. The position estimate is updated each cycle. * * @param dx easting displacement in metres from the PDR step. * @param dy northing displacement in metres from the PDR step. */ - public void updateWithPDR(double dx, double dy){ + public void updateWithPDR(double dx, double dy) { // Propagate each particle with PDR step + stochastic process noise - for (Particle particle : particles){ - particle.easting += dx + rand.nextGaussian() * PDR_NOISE_STDDEV; + for (Particle particle : particles) { + particle.easting += dx + rand.nextGaussian() * PDR_NOISE_STDDEV; particle.northing += dy + rand.nextGaussian() * PDR_NOISE_STDDEV; } double max_weight = updateWeights(); - if (max_weight > PARTICLE_FILTER_THRESHOLD){ + if (max_weight > PARTICLE_FILTER_THRESHOLD) { repopulate(); } updateEstimatedPosition(); @@ -96,27 +100,30 @@ public void updateWithPDR(double dx, double dy){ * @return double array {easting, northing} in metres. */ public double[] latLngToEN(double lat, double lng) { - double e = (lng - refLng) * Math.cos(Math.toRadians(refLat)) * METRES_PER_DEG_LNG_AT_EQUATOR; + double e = + (lng - refLng) * Math.cos(Math.toRadians(refLat)) * METRES_PER_DEG_LNG_AT_EQUATOR; double n = (lat - refLat) * METRES_PER_DEG_LAT; - return new double[]{e, n}; + return new double[] {e, n}; } /** * Converts local East-North metres back to WGS84 coordinates. * - * @param easting east displacement in metres from reference. + * @param easting east displacement in metres from reference. * @param northing north displacement in metres from reference. * @return {@link LatLng} in WGS84 coordinates. */ public LatLng enToLatLng(double easting, double northing) { double lat = refLat + northing / METRES_PER_DEG_LAT; - double lng = refLng + easting / (METRES_PER_DEG_LNG_AT_EQUATOR * Math.cos(Math.toRadians(refLat))); + double lng = + refLng + + easting + / (METRES_PER_DEG_LNG_AT_EQUATOR + * Math.cos(Math.toRadians(refLat))); return new LatLng(lat, lng); } - /** - * Stops the filter and releases the particle population. - */ + /** Stops the filter and releases the particle population. */ public void stop() { this.active = false; if (particles != null) particles.clear(); @@ -127,16 +134,14 @@ public void stop() { * * @return the maximum particle weight after normalisation. */ - public double updateWeights(){ + public double updateWeights() { return 0; } - /** - * Computes the weighted mean of the particle population as the current position estimate. - */ - public void updateEstimatedPosition(){ + /** Computes the weighted mean of the particle population as the current position estimate. */ + public void updateEstimatedPosition() { double sum_e = 0, sum_n = 0, sum_w = 0; - for (Particle particle: particles){ + for (Particle particle : particles) { sum_e += particle.easting * particle.weight; sum_n += particle.northing * particle.weight; sum_w += particle.weight; @@ -147,9 +152,9 @@ public void updateEstimatedPosition(){ /** * Systematic resampling of the particle population. * - *

    Builds a cumulative weight distribution and selects particles at evenly spaced - * intervals with a single random offset. Selected particles are duplicated with a small - * Gaussian jitter to maintain diversity, and weights are reset to uniform. + *

    Builds a cumulative weight distribution and selects particles at evenly spaced intervals + * with a single random offset. Selected particles are duplicated with a small Gaussian jitter + * to maintain diversity, and weights are reset to uniform. * * @see FusionConstants#RESAMPLE_JITTER for the regularisation noise parameter. */ @@ -175,16 +180,16 @@ public void repopulate() { } Particle selected = particles.get(idx); // Duplicate with jitter to prevent particle collapse - newParticles.add(new Particle( - selected.easting + rand.nextGaussian() * RESAMPLE_JITTER, - selected.northing + rand.nextGaussian() * RESAMPLE_JITTER, - 1.0 / PARTICLE_COUNT - )); + newParticles.add( + new Particle( + selected.easting + rand.nextGaussian() * RESAMPLE_JITTER, + selected.northing + rand.nextGaussian() * RESAMPLE_JITTER, + 1.0 / PARTICLE_COUNT)); } particles = newParticles; } - public LatLng getEstimated_position(){ + public LatLng getEstimated_position() { return this.estimated_position; } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java index 583b8a02..ff98a27d 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java @@ -1085,7 +1085,9 @@ public void startRecording() { .setW(rotation[3])) .setStepCount(0)); // start fusion predictions - this.fusion.start(new LatLng(startLocation[0], startLocation[1]), pdrProcessing); //Start fusion predictions + this.fusion.start( + new LatLng(startLocation[0], startLocation[1]), + pdrProcessing); // Start fusion predictions } this.storeTrajectoryTimer = new Timer(); this.storeTrajectoryTimer.schedule(new storeDataInTrajectory(), 0, TIME_CONST); @@ -1197,7 +1199,7 @@ public void run() { // Divide timer with a counter for storing data every 1 second if (counter == 99) { counter = 0; - //store fusion corrected estimated point to the trajectory at 1 sec intervals + // store fusion corrected estimated point to the trajectory at 1 sec intervals /* if (this.fusion.isActive()){ LatLng fused = this.fusion.getBestEstimate() From 364f750774f5d63c850bce2681d610a9d10fc5ec Mon Sep 17 00:00:00 2001 From: keeegannn <115988136+keeegannn@users.noreply.github.com> Date: Wed, 11 Mar 2026 18:55:40 +0000 Subject: [PATCH 31/65] added suggested TODO of our own initial position estimate to try improve accuracy. --- .../PositionMe/Fusion/Fusion.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java b/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java index 7e7a80b6..90c795b9 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java @@ -48,12 +48,14 @@ public void stop() { /** * Initialises the fusion system and seeds the particle filter around the given position. * - * @param initial_pos starting position in WGS84 coordinates. + * @param initial_estimate is a place holder for the starting position in WGS84 coordinates. + * - TODO we should probably use our own start location estimate as this could be crucial for accuracy of the remainder of the recording. */ - public void start(LatLng initial_pos, PdrProcessing pdrProcessing) { + public void start(LatLng initial_estimate, PdrProcessing pdrProcessing) { + isActive = true; - this.BestEstimate = initial_pos; - this.particleFilter.start(initial_pos); + this.BestEstimate = getStartLocation(initial_estimate); + this.particleFilter.start(this.BestEstimate); } /** @@ -65,6 +67,15 @@ public LatLng getBestEstimate() { LatLng particleFilterEstimate = particleFilter.getEstimated_position(); return BestEstimate; } + /** + * - TODO + * Returns a uniquely fused starting position estimate. + * + * @return {@link LatLng} of the best start position estimate. + */ + public LatLng getStartLocation(LatLng initial_estimate){ + return initial_estimate; + } public int getEstimatedFloor() { return EstimatedFloor; From 7a23c3615dff0cb4e63e9815abbb1bcc5a3a00ed Mon Sep 17 00:00:00 2001 From: keeegannn <115988136+keeegannn@users.noreply.github.com> Date: Thu, 12 Mar 2026 03:18:42 +0000 Subject: [PATCH 32/65] prevented possible null pointer exception and normaised weights as is required in repopulate --- .../PositionMe/Fusion/Fusion.java | 22 +++++++++-------- .../PositionMe/Fusion/ParticleFilter.java | 24 +++++++++++++------ 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java b/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java index 90c795b9..723d814a 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/Fusion/Fusion.java @@ -16,7 +16,7 @@ */ public class Fusion { // Current best position estimate in WGS84 - private LatLng BestEstimate; + private LatLng bestEstimate; // Estimated floor level private int EstimatedFloor; // Whether the fusion system is actively tracking @@ -48,14 +48,15 @@ public void stop() { /** * Initialises the fusion system and seeds the particle filter around the given position. * - * @param initial_estimate is a place holder for the starting position in WGS84 coordinates. - * - TODO we should probably use our own start location estimate as this could be crucial for accuracy of the remainder of the recording. + * @param initial_estimate is a place holder for the starting position in WGS84 coordinates. - + * TODO we should probably use our own start location estimate as this could be crucial for + * accuracy of the remainder of the recording. */ public void start(LatLng initial_estimate, PdrProcessing pdrProcessing) { - isActive = true; - this.BestEstimate = getStartLocation(initial_estimate); - this.particleFilter.start(this.BestEstimate); + this.pdrProcessing = pdrProcessing; + this.bestEstimate = getStartLocation(initial_estimate); + this.particleFilter.start(this.bestEstimate); } /** @@ -65,15 +66,16 @@ public void start(LatLng initial_estimate, PdrProcessing pdrProcessing) { */ public LatLng getBestEstimate() { LatLng particleFilterEstimate = particleFilter.getEstimated_position(); - return BestEstimate; + bestEstimate = particleFilterEstimate; + return bestEstimate; } + /** - * - TODO - * Returns a uniquely fused starting position estimate. + * - TODO Returns a uniquely fused starting position estimate. * * @return {@link LatLng} of the best start position estimate. */ - public LatLng getStartLocation(LatLng initial_estimate){ + public LatLng getStartLocation(LatLng initial_estimate) { return initial_estimate; } diff --git a/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java b/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java index da7bd731..c7990c30 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java @@ -54,11 +54,11 @@ public Particle(double easting, double northing, double weight) { * @param initial_pos starting position in WGS84 coordinates. */ public void start(LatLng initial_pos) { - this.rand = new Random(); - this.refLat = initial_pos.latitude; - this.refLng = initial_pos.longitude; - this.active = true; - this.estimated_position = initial_pos; + rand = new Random(); + refLat = initial_pos.latitude; + refLng = initial_pos.longitude; + active = true; + estimated_position = initial_pos; double[] east_north = latLngToEN(initial_pos.latitude, initial_pos.longitude); particles = new ArrayList<>(PARTICLE_COUNT); for (int i = 0; i < PARTICLE_COUNT; i++) { @@ -80,6 +80,7 @@ public void start(LatLng initial_pos) { * @param dy northing displacement in metres from the PDR step. */ public void updateWithPDR(double dx, double dy) { + if (!active || particles == null) return; // Propagate each particle with PDR step + stochastic process noise for (Particle particle : particles) { particle.easting += dx + rand.nextGaussian() * PDR_NOISE_STDDEV; @@ -146,7 +147,7 @@ public void updateEstimatedPosition() { sum_n += particle.northing * particle.weight; sum_w += particle.weight; } - this.estimated_position = enToLatLng(sum_e / sum_w, sum_n / sum_w); + estimated_position = enToLatLng(sum_e / sum_w, sum_n / sum_w); } /** @@ -161,6 +162,15 @@ public void updateEstimatedPosition() { public void repopulate() { ArrayList newParticles = new ArrayList<>(PARTICLE_COUNT); + // normalise weights + double totalWeight = 0; + for (Particle p : particles) { + totalWeight += p.weight; + } + for (Particle p : particles) { + p.weight /= totalWeight; + } + // Build cumulative weight distribution double[] cumulative = new double[particles.size()]; cumulative[0] = particles.get(0).weight; @@ -190,6 +200,6 @@ public void repopulate() { } public LatLng getEstimated_position() { - return this.estimated_position; + return estimated_position; } } From 6ad8c2e30cbd132ffb67eff11f28fec0e8f9233e Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Thu, 12 Mar 2026 17:59:42 +0000 Subject: [PATCH 33/65] [Feat] Building and Floor Number Display; Autopan Switch (#72) --- .../fragment/RecordingFragment.java | 18 +++ .../fragment/TrajectoryMapFragment.java | 39 +++--- .../PositionMe/utils/Building.java | 4 + .../main/res/layout/fragment_recording.xml | 116 +++++++++++++----- .../res/layout/fragment_trajectory_map.xml | 29 +++-- 5 files changed, 154 insertions(+), 52 deletions(-) diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java index 9cdc4014..65df772d 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RecordingFragment.java @@ -58,6 +58,7 @@ public class RecordingFragment extends Fragment { private ImageView recIcon; private ProgressBar timeRemaining; private TextView elevation, distanceTravelled, gnssError; + private TextView textCampaignName, textFloorNumberTitle, textFloorNumber; // App settings private SharedPreferences settings; @@ -120,6 +121,10 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat getChildFragmentManager() .findFragmentById(R.id.trajectoryMapFragmentContainer); + textCampaignName = view.findViewById(R.id.textViewCampaignField); + textFloorNumber = view.findViewById(R.id.textFloorNumber); + textFloorNumberTitle = view.findViewById(R.id.textViewFloorTitle); + // If not present, create it if (trajectoryMapFragment == null) { trajectoryMapFragment = new TrajectoryMapFragment(); @@ -142,6 +147,8 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat // Hide or initialize default values gnssError.setVisibility(View.GONE); + textFloorNumberTitle.setVisibility(View.GONE); + textFloorNumber.setVisibility(View.GONE); elevation.setText(getString(R.string.elevation, "0")); distanceTravelled.setText(getString(R.string.meter, "0")); @@ -304,6 +311,17 @@ private void updateUIandPosition() { // Update previous previousPosX = pdrValues[0]; previousPosY = pdrValues[1]; + + // Building UI + textCampaignName.setText(sensorFusion.getCurrentBuilding()); + if (trajectoryMapFragment != null && trajectoryMapFragment.getIsInsideBuilding()) { + textFloorNumberTitle.setVisibility(View.VISIBLE); + textFloorNumber.setVisibility(View.VISIBLE); + textFloorNumber.setText(trajectoryMapFragment.getFloorName()); + } else { + textFloorNumberTitle.setVisibility(View.GONE); + textFloorNumber.setVisibility(View.GONE); + } } /** Start the blinking effect for the recording icon. */ diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java index ce9a03bf..c0ed24ab 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java @@ -71,7 +71,6 @@ public class TrajectoryMapFragment extends Fragment { private Polyline polyline; // Polyline representing user's movement path private boolean isColourEnabled = true; // Tracks whether the polyline color is red private boolean isGnssOn = false; // Tracks if GNSS tracking is enabled - private Polyline gnssPolyline; // Polyline for GNSS path private LatLng lastGnssLocation = null; // Stores the last GNSS location @@ -85,6 +84,9 @@ public class TrajectoryMapFragment extends Fragment { private Spinner switchMapSpinner; private SwitchMaterial gnssSwitch; private SwitchMaterial autoFloorSwitch; + private SwitchMaterial autopanSwitch; + private boolean isInsideBuilding = false; + private String currentFloor = "no_floor"; private com.google.android.material.floatingactionbutton.FloatingActionButton floorUpButton, floorDownButton; @@ -117,6 +119,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat // Grab references to UI controls switchMapSpinner = view.findViewById(R.id.mapSwitchSpinner); + autopanSwitch = view.findViewById(R.id.switchAutopan); gnssSwitch = view.findViewById(R.id.gnssSwitch); autoFloorSwitch = view.findViewById(R.id.autoFloor); floorUpButton = view.findViewById(R.id.floorUpButton); @@ -126,7 +129,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat sensorFusion = SensorFusion.getInstance(); // Setup floor up/down UI hidden initially until we know there's an indoor map - setFloorControlsVisibility(View.GONE); + setFloorUIVisibility(View.GONE); // Initialize the map asynchronously SupportMapFragment mapFragment = @@ -175,12 +178,11 @@ public void onMapReady(@NonNull GoogleMap googleMap) { if (isColourEnabled) { switchColorButton.setBackgroundColor(COLOUR_PATH_MONOCHROME); polyline.setColor(COLOUR_PATH_MONOCHROME); - isColourEnabled = false; } else { switchColorButton.setBackgroundColor(COLOUR_PATH_COLOUR); polyline.setColor(COLOUR_PATH_COLOUR); - isColourEnabled = true; } + isColourEnabled = !isColourEnabled; } }); @@ -332,18 +334,11 @@ public void updateUserLocation(@NonNull LatLng newLocation, float orientation) { requireContext(), R.drawable .ic_baseline_navigation_24)))); - // Refocus the camera to current position - // (Currently runs once at start of recording) - // TODO - Implement UI toggle for this feature - if (oldLocation == null) { - gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(newLocation, ZOOM_LEVEL_DEFAULT)); - } + gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(newLocation, ZOOM_LEVEL_DEFAULT)); } else { // Update marker position + orientation orientationMarker.setPosition(newLocation); orientationMarker.setRotation(orientation); - // Move camera a bit - // gMap.moveCamera(CameraUpdateFactory.newLatLng(newLocation)); } // Extend polyline if movement occurred @@ -360,9 +355,11 @@ public void updateUserLocation(@NonNull LatLng newLocation, float orientation) { building.drawBuildingOutline(gMap); if (building.getIsInsideBuilding()) { sensorFusion.setCurrentBuilding(building.getName()); - setFloorControlsVisibility(View.VISIBLE); + setFloorUIVisibility(View.VISIBLE); + isInsideBuilding = true; + currentFloor = building.getFloorName(); } else { - setFloorControlsVisibility(View.GONE); + setFloorUIVisibility(View.GONE); } // Preview floor plan by clicking on building, and associate route gMap.setOnPolygonClickListener( @@ -425,6 +422,10 @@ public void onPolygonClick(@NonNull Polygon polygon) { building.setCurrentFloor(newFloor, gMap); } } + + if (autopanSwitch.isChecked()) { + gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(newLocation, ZOOM_LEVEL_DEFAULT)); + } } /** @@ -526,7 +527,15 @@ public boolean isGnssEnabled() { return isGnssOn; } - private void setFloorControlsVisibility(int visibility) { + public boolean getIsInsideBuilding() { + return isInsideBuilding; + } + + public String getFloorName() { + return currentFloor; + } + + private void setFloorUIVisibility(int visibility) { floorUpButton.setVisibility(visibility); floorDownButton.setVisibility(visibility); diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java b/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java index 4db76e5e..b2645760 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/Building.java @@ -202,6 +202,10 @@ public int getFloorNumber() { return floorNumber; } + public String getFloorName() { + return floorNames.get(floorNumber); + } + public List getFloorNames() { return floorNames; } diff --git a/app/src/main/res/layout/fragment_recording.xml b/app/src/main/res/layout/fragment_recording.xml index 59934a8e..f0a6fa28 100644 --- a/app/src/main/res/layout/fragment_recording.xml +++ b/app/src/main/res/layout/fragment_recording.xml @@ -86,43 +86,102 @@ android:id="@+id/controlLayout" android:layout_width="match_parent" android:layout_height="wrap_content" + android:gravity="center" android:orientation="vertical" android:padding="12dp" - android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintEnd_toEndOf="parent"> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> - - + + + + + + + + + + + + + + + + + + + + + + android:progress="0" /> + android:gravity="center" + android:orientation="horizontal"> + app:cornerRadius="16dp" + app:icon="@drawable/ic_unavailable" + app:iconGravity="textStart" + app:iconSize="24dp" + app:iconTint="@color/md_theme_onError" /> + app:cornerRadius="16dp" + app:icon="@drawable/ic_baseline_assignment_turned_in_24" + app:iconGravity="textStart" + app:iconSize="24dp" + app:iconTint="@color/md_theme_onPrimary" /> + diff --git a/app/src/main/res/layout/fragment_trajectory_map.xml b/app/src/main/res/layout/fragment_trajectory_map.xml index ada01e35..e6c77161 100644 --- a/app/src/main/res/layout/fragment_trajectory_map.xml +++ b/app/src/main/res/layout/fragment_trajectory_map.xml @@ -1,11 +1,13 @@ + + app:layout_anchorGravity="top|start" + app:shapeAppearanceOverlay="@style/ShapeAppearance.Material3.MediumComponent"> + android:padding="8dp"> + + @@ -48,9 +57,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:backgroundTint="@color/red" - android:textColor="@color/md_theme_onPrimary" android:text="@string/color" - app:elevation="5dp"/> + android:textColor="@color/md_theme_onPrimary" + app:elevation="5dp" /> + @@ -102,6 +112,7 @@ app:layout_constraintBottom_toTopOf="@id/floorDownButton" app:layout_constraintEnd_toEndOf="parent" android:contentDescription="@string/floor_up" /> + From c9e28412a8ab1edc84795d1b7f9b90eae1ed54ac Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Thu, 12 Mar 2026 18:38:50 +0000 Subject: [PATCH 34/65] [Bug] Hide Floor Name When Leaving Building (#75) --- .../PositionMe/presentation/fragment/TrajectoryMapFragment.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java index c0ed24ab..a9b25fda 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java @@ -360,6 +360,7 @@ public void updateUserLocation(@NonNull LatLng newLocation, float orientation) { currentFloor = building.getFloorName(); } else { setFloorUIVisibility(View.GONE); + isInsideBuilding = false; } // Preview floor plan by clicking on building, and associate route gMap.setOnPolygonClickListener( From 4465e9141e198353650923786d6aa65c15160b1f Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Fri, 13 Mar 2026 20:29:32 +0000 Subject: [PATCH 35/65] [Maint, Feat, Bug] New HTTP Functions; Better UI for Invalid Trajectories; Fix Double-Toast Bugs (#77) --- .../data/remote/ServerCommunications.java | 1072 ++++++++--------- .../presentation/activity/MainActivity.java | 61 +- .../presentation/fragment/FilesFragment.java | 14 +- .../viewitems/TrajDownloadListAdapter.java | 12 + .../PositionMe/sensors/SensorFusion.java | 2 +- .../PositionMe/utils/IndoorMapManager.java | 59 +- .../PositionMe/utils/UtilConstants.java | 2 +- .../main/res/layout/fragment_correction.xml | 6 +- 8 files changed, 635 insertions(+), 593 deletions(-) diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java index d5c080e5..6b6b188a 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java @@ -50,12 +50,13 @@ import java.util.Date; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.zip.ZipInputStream; import okhttp3.Call; import okhttp3.Callback; -import okhttp3.Headers; import okhttp3.MediaType; import okhttp3.MultipartBody; import okhttp3.OkHttp; @@ -64,15 +65,22 @@ import okhttp3.RequestBody; import okhttp3.Response; import okhttp3.ResponseBody; +import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; /** * This class handles communications with the server through HTTPs. The class uses an {@link - * OkHttpClient} for making requests to the server. The class includes methods for sending a - * recorded trajectory, uploading locally-stored trajectories, downloading trajectories from the - * server and requesting information about the uploaded trajectories. + * OkHttpClient} for making requests to the server. The class includes methods for interfacing with + * the OpenPosition REST API. * - *

    Keys and URLs are hardcoded strings, given the simple and academic nature of the project. + *

    The key methods {@link ServerCommunications#sendRequestGET(String, String, REQUEST, Object) + * sendRequestGET()} and {@link ServerCommunications#sendRequestPOST(String, RequestBody, String, + * String, REQUEST, Object) sendRequestPOST()} are used to sent HTTP GET and POST requests + * respectively, and are called by public methods which format the requests as required. + * + *

    As the OpenPosition API evolves, these two methods can be extended to support handling more + * requests to the server. * * @author Michal Dvorak * @author Mate Stodulka @@ -80,8 +88,8 @@ public class ServerCommunications implements Observable { private static final String TAG = "ServerCommunications"; public static Map downloadRecords = new HashMap<>(); - // Application context for handling permissions and devices + // Application context for handling permissions and devices private static final int OBSERVER_INDEX_FILES = 0; private static final int OBSERVER_INDEX_MAIN = 1; private static final int OBSERVER_INDEX_INDOOR_MAPS = 2; @@ -97,12 +105,23 @@ public class ServerCommunications implements Observable { private String infoResponse; private boolean success; - private List observers; + private Set observers; private long lastTime = 0; + // Enum to iterate through possible API requests + private enum REQUEST { + GET_TRAJECTORIES_LIST, + GET_TRAJECTORY_SINGLE, + POST_TRAJECTORY_RECORDED, + POST_TRAJECTORY_LOCAL, + POST_FLOOR_PLANS, + POST_SIGN_UP, + POST_LOG_IN + } + /** * Public default constructor of {@link ServerCommunications}. The constructor saves context, - * initialises a {@link ConnectivityManager}, {@link Observer} and gets the user preferences. + * initialises a {@link ConnectivityManager}, {@link Observer}, and gets the user preferences. * Boolean variables storing WiFi and Mobile Data connection status are initialised to false. * * @param context application context for handling permissions and devices. @@ -115,7 +134,269 @@ public ServerCommunications(Context context) { this.isMobileConn = false; checkNetworkStatus(); - this.observers = new ArrayList<>(); + this.observers = new LinkedHashSet<>(); + } + + ////////////////////////////////////////////////////////////////////////////// + + /** + * Sends an HTTP GET request to the provided URL, and handles responses. + * + * @param url The URL of the API + * @param headerAccept The header string defining the response data type expected + * @param requestType An encoded value used to determine how to process the server's response + * @param additionalData Additional data used in processing the server's response. Varies from + * request to request + * @see REQUEST + */ + private void sendRequestGET( + String url, String headerAccept, REQUEST requestType, Object additionalData) { + OkHttpClient client = new OkHttpClient(); + Request request = + new Request.Builder().url(url).addHeader("accept", headerAccept).get().build(); + client.newCall(request) + .enqueue( + new Callback() { + @Override + public void onFailure(@NonNull Call call, @NonNull IOException e) { + // Notify users + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + "Upload failed\n" + + "Server unresponsive" + + " or unreachable", + Toast.LENGTH_SHORT) + .show()); + } + + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) + throws IOException { + try (ResponseBody responseBody = response.body()) { + String responseCode = String.valueOf(response.code()); + Log.i(TAG, "GET response: Code " + responseCode); + + if (!response.isSuccessful()) { + String errorBody = responseBody.string(); + infoResponse = errorBody; + Log.w(TAG, "Error: " + errorBody); + success = false; + + switch (requestType) { + case GET_TRAJECTORIES_LIST: + notifyObservers(OBSERVER_INDEX_FILES); + return; + case GET_TRAJECTORY_SINGLE: + return; + default: + return; + } + } + + switch (requestType) { + case GET_TRAJECTORIES_LIST: + // Save the requested information from the response body + infoResponse = responseBody.string(); + notifyObservers(OBSERVER_INDEX_FILES); + return; + case GET_TRAJECTORY_SINGLE: + @SuppressWarnings("unchecked") + List data = (List) additionalData; + + String id = (String) data.get(0); + int position = (int) data.get(1); + String dateSubmitted = (String) data.get(2); + + processDownloadedTrajectory( + responseBody, id, position, dateSubmitted); + return; + default: + return; + } + } + } + }); + } + + /** + * Sends an HTTP POST request to the provided URL, and handles responses. + * + * @param url The URL of the API + * @param payload The data to be sent in the POST request + * @param headerAccept The header string defining the response data type expected + * @param headerContentType The header string defining the data type of the payload + * @param requestType An encoded value used to determine how to process the server's response + * @param additionalData Additional data used in processing the server's response. Varies from + * request to request + * @see REQUEST + */ + private void sendRequestPOST( + String url, + RequestBody payload, + String headerAccept, + String headerContentType, + REQUEST requestType, + Object additionalData) { + OkHttpClient client = new OkHttpClient(); + Request request = + new Request.Builder() + .url(url) + .post(payload) + .addHeader("accept", headerAccept) + .addHeader("Content-Type", headerContentType) + .build(); + client.newCall(request) + .enqueue( + new Callback() { + + /** When the attempt to send the request has failed, notify the user. */ + @Override + public void onFailure(@NonNull Call call, @NonNull IOException e) { + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + "Upload failed\n" + + "Server unresponsive" + + " or unreachable", + Toast.LENGTH_SHORT) + .show()); + success = false; + infoResponse = "000"; + switch (requestType) { + case POST_LOG_IN: + return; + case POST_SIGN_UP: + return; + case POST_TRAJECTORY_RECORDED: + case POST_TRAJECTORY_LOCAL: + notifyObservers(OBSERVER_INDEX_MAIN); + return; + case POST_FLOOR_PLANS: + notifyObservers(OBSERVER_INDEX_INDOOR_MAPS); + return; + default: + return; + } + } + + /** + * Process the response from the server, based on it's HTTP response + * code. + * + *

    For non-error codes (2XX-3XX), process the response. + * + *

    For error codes (4XX), send the code to the {@link Observer} + * instance to handle directly. + */ + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) + throws IOException { + try (ResponseBody responseBody = response.body()) { + String responseCode = String.valueOf(response.code()); + Log.i(TAG, "POST response: Code " + responseCode); + + if (!response.isSuccessful()) { + String errorBody = responseBody.string(); + infoResponse = errorBody; + Log.w(TAG, "Error: " + errorBody); + success = false; + + switch (requestType) { + case POST_LOG_IN: + return; + case POST_SIGN_UP: + return; + case POST_TRAJECTORY_RECORDED: + // Invalid trajectories should not be saved + File badTrajectory = (File) additionalData; + badTrajectory.delete(); + notifyObservers(OBSERVER_INDEX_MAIN); + return; + case POST_TRAJECTORY_LOCAL: + notifyObservers(OBSERVER_INDEX_MAIN); + return; + case POST_FLOOR_PLANS: + notifyObservers(OBSERVER_INDEX_INDOOR_MAPS); + return; + default: + return; + } + } + switch (requestType) { + case POST_LOG_IN: + return; + case POST_SIGN_UP: + return; + case POST_TRAJECTORY_RECORDED: + File originalFile = (File) additionalData; + success = processTrajectoryResponse(originalFile); + notifyObservers(OBSERVER_INDEX_MAIN); + return; + case POST_TRAJECTORY_LOCAL: + File localFile = (File) additionalData; + success = localFile.delete(); + notifyObservers(OBSERVER_INDEX_MAIN); + return; + case POST_FLOOR_PLANS: + infoResponse = responseBody.string(); + success = true; + notifyObservers(OBSERVER_INDEX_INDOOR_MAPS); + return; + default: + return; + } + } + } + }); + } + + ////////////////////////////////////////////////////////////////////////////// + + /** + * Handle the server response from uploading a newly recorded trajectory, and delete the + * trajectory file saved on disk during the recording. + * + *

    + * + * @param originalFile The trajectory file created during the recording + * @return True if the processing is completed successfully. False otherwise. + */ + private boolean processTrajectoryResponse(File originalFile) { + // Copy the file to the Downloads folder + File downloadsDir = + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); + File downloadFile = new File(downloadsDir, originalFile.getName()); + try { + copyFile(originalFile, downloadFile); + Log.i(TAG, "Trajectory file copied to Downloads: " + downloadFile.getAbsolutePath()); + } catch (IOException e) { + Log.e(TAG, "Failed to copy file to Downloads: " + e.getMessage()); + } + + return originalFile.delete(); + } + + /** + * Helper function to copy a {@link File file's} contents from one location to another. + * + * @param src The source file + * @param dst The destination file + * @see ServerCommunications#processTrajectoryResponse(File) + */ + private void copyFile(File src, File dst) throws IOException { + try (InputStream in = new FileInputStream(src); + OutputStream out = new FileOutputStream(dst)) { + byte[] buf = new byte[1024]; + int len; + while ((len = in.read(buf)) > 0) { + out.write(buf, 0, len); + } + } } /** @@ -133,6 +414,66 @@ public void sendTrajectory(Traj.Trajectory trajectory, String campaign) { .show(); logDataSize(trajectory); + File file = convertTrajectoryToFile(trajectory); + + // Only proceed if campaign is valid + if (campaign.isBlank() || campaign.equals(BUILDING_NAME_OUTSIDE)) { + String message = "Invalid campaign ('" + campaign + "') - Cancelling upload"; + Log.w(TAG, message); + Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); + return; + } + + // Check connections available before sending data + checkNetworkStatus(); + + // Check if user preference allows for syncing with mobile data + // TODO: add sync delay and enforce settings + boolean enableMobileData = this.settings.getBoolean("mobile_sync", false); + + // Check if device is connected to WiFi or to mobile data with enabled preference + if (!this.isWifiConn && !(enableMobileData && isMobileConn)) { + // If the device is not connected to network or allowed to send, + // do not send trajectory and notify observers and user + String message = "No uploading allowed right now!"; + Log.e(TAG, message); + new Handler(Looper.getMainLooper()) + .post(() -> Toast.makeText(context, message, Toast.LENGTH_SHORT).show()); + success = false; + notifyObservers(OBSERVER_INDEX_MAIN); + return; + } + // Create a request body with a file to upload in multipart/form-data format + RequestBody requestBody = + new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart( + "file", + file.getName(), + RequestBody.create(MediaType.parse("text/plain"), file)) + .build(); + + // Create a POST request with the required headers + String uploadURL = createTrajectoryUploadURL(campaign); + sendRequestPOST( + uploadURL, + requestBody, + PROTOCOL_APP_JSON, + PROTOCOL_MULTIPART, + REQUEST.POST_TRAJECTORY_RECORDED, + file); + } + + /** + * Helper function to convert the recorded {@link Traj trajectory} object into a {@link File} + * for uploading + * + *

    + * + * @param trajectory The recorded trajectory object. + * @return A {@link File} prepared for uploading. + */ + private File convertTrajectoryToFile(Traj.Trajectory trajectory) { // Convert the trajectory to byte array byte[] binaryTrajectory = trajectory.toByteArray(); @@ -166,155 +507,7 @@ public void sendTrajectory(Traj.Trajectory trajectory, String campaign) { Log.e(TAG, "Storing of recorded binary trajectory failed: " + e.getMessage()); } - // Only proceed if campaign is valid - if (campaign.isBlank() || campaign.equals(BUILDING_NAME_OUTSIDE)) { - String message = "Invalid campaign ('" + campaign + "') - Cancelling upload"; - Log.w(TAG, message); - Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); - return; - } - - // Check connections available before sending data - checkNetworkStatus(); - - // Check if user preference allows for syncing with mobile data - // TODO: add sync delay and enforce settings - boolean enableMobileData = this.settings.getBoolean("mobile_sync", false); - // Check if device is connected to WiFi or to mobile data with enabled preference - if (this.isWifiConn || (enableMobileData && isMobileConn)) { - // Instantiate client for HTTP requests - OkHttpClient client = new OkHttpClient(); - - // Create a request body with a file to upload in multipart/form-data format - RequestBody requestBody = - new MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart( - "file", - file.getName(), - RequestBody.create(MediaType.parse("text/plain"), file)) - .build(); - - // Create a POST request with the required headers - String uploadURL = createUploadURL(campaign); - Request request = - new Request.Builder() - .url(uploadURL) - .post(requestBody) - .addHeader("accept", PROTOCOL_APP_JSON) - .addHeader("Content-Type", PROTOCOL_MULTIPART) - .build(); - - // Enqueue the request to be executed asynchronously and handle the response - client.newCall(request) - .enqueue( - new Callback() { - - // Handle failure to get response from the server - @Override - public void onFailure(Call call, IOException e) { - Log.e(TAG, "Failure to get response: " + e.getMessage()); - success = false; - notifyObservers(OBSERVER_INDEX_MAIN); - } - - private void copyFile(File src, File dst) throws IOException { - try (InputStream in = new FileInputStream(src); - OutputStream out = new FileOutputStream(dst)) { - byte[] buf = new byte[1024]; - int len; - while ((len = in.read(buf)) > 0) { - out.write(buf, 0, len); - } - } - } - - // Process the server's response - @Override - public void onResponse(Call call, Response response) - throws IOException { - try (ResponseBody responseBody = response.body()) { - // If the response is unsuccessful, throw an exception - if (!response.isSuccessful()) { - // Show error message to users - String errorBody = responseBody.string(); - infoResponse = "Upload failed: " + errorBody; - new Handler(Looper.getMainLooper()) - .post( - () -> - Toast.makeText( - context, - infoResponse, - Toast - .LENGTH_SHORT) - .show()); - - Log.e( - TAG, - "POST error (Code " - + response.code() - + ")\n" - + errorBody); - success = false; - notifyObservers(OBSERVER_INDEX_MAIN); - throw new IOException("Unexpected code " + response); - } - - // Print the response headers - Headers responseHeaders = response.headers(); - for (int i = 0, size = responseHeaders.size(); - i < size; - i++) { - Log.i( - TAG, - responseHeaders.name(i) - + ": " - + responseHeaders.value(i)); - } - // Print a confirmation of a successful POST to API - Log.i(TAG, "Successful post response"); - - Log.i(TAG, "Get file: " + file.getName()); - String originalPath = file.getAbsolutePath(); - Log.i( - TAG, - "Original trajectory file saved at: " - + originalPath); - - // Copy the file to the Downloads folder - File downloadsDir = - Environment.getExternalStoragePublicDirectory( - Environment.DIRECTORY_DOWNLOADS); - File downloadFile = new File(downloadsDir, file.getName()); - try { - copyFile(file, downloadFile); - Log.i( - TAG, - "Trajectory file copied to Downloads: " - + downloadFile.getAbsolutePath()); - } catch (IOException e) { - Log.e( - TAG, - "Failed to copy file to Downloads: " - + e.getMessage()); - } - - // Delete local file and set success to true - success = file.delete(); - notifyObservers(OBSERVER_INDEX_MAIN); - } - } - }); - } else { - // If the device is not connected to network or allowed to send, - // do not send trajectory and notify observers and user - String message = "No uploading allowed right now!"; - Log.e(TAG, message); - new Handler(Looper.getMainLooper()) - .post(() -> Toast.makeText(context, message, Toast.LENGTH_SHORT).show()); - success = false; - notifyObservers(OBSERVER_INDEX_MAIN); - } + return file; } /** @@ -333,10 +526,7 @@ public void uploadLocalTrajectory(File localTrajectory, String campaign) { return; } - // Instantiate client for HTTP requests - OkHttpClient client = new OkHttpClient(); - - // robustness improvement + // Robustness improvement RequestBody fileRequestBody; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { try { @@ -360,96 +550,15 @@ public void uploadLocalTrajectory(File localTrajectory, String campaign) { .build(); // Create a POST request with the required headers - String uploadURL = createUploadURL(campaign); - okhttp3.Request request = - new okhttp3.Request.Builder() - .url(uploadURL) - .post(requestBody) - .addHeader("accept", PROTOCOL_APP_JSON) - .addHeader("Content-Type", PROTOCOL_MULTIPART) - .build(); - - // Enqueue the request to be executed asynchronously and handle the response - Toast.makeText(context, "Local trajectory sent for upload", Toast.LENGTH_SHORT).show(); - client.newCall(request) - .enqueue( - new okhttp3.Callback() { - @Override - public void onFailure(Call call, IOException e) { - // Set success to false and notify observers - success = false; - Log.e( - TAG, - "[" + e.getMessage() + "] UPLOAD: Failure to get response"); - // Notify users - new Handler(Looper.getMainLooper()) - .post( - () -> - Toast.makeText( - context, - "Upload failed\n" - + "Server unresponsive" - + " or unreachable", - Toast.LENGTH_SHORT) - .show()); - notifyObservers(OBSERVER_INDEX_MAIN); - } - - @Override - public void onResponse(Call call, Response response) - throws IOException { - try (ResponseBody responseBody = response.body()) { - if (!response.isSuccessful()) { - success = false; - notifyObservers(OBSERVER_INDEX_MAIN); - assert responseBody != null; - String errorBody = responseBody.string(); - Log.e(TAG, "UPLOAD unsuccessful: " + errorBody); - infoResponse = - "Upload failed (Error code " - + response.code() - + ")"; - new Handler(Looper.getMainLooper()) - .post( - () -> - Toast.makeText( - context, - infoResponse, - Toast.LENGTH_SHORT) - .show()); - throw new IOException( - "UPLOAD failed with code " + response); - } - - // Print the response headers - Headers responseHeaders = response.headers(); - for (int i = 0, size = responseHeaders.size(); i < size; i++) { - Log.i( - TAG, - responseHeaders.name(i) - + ": " - + responseHeaders.value(i)); - } - - // Print a confirmation of a successful POST to API - assert responseBody != null; - Log.i(TAG, "UPLOAD SUCCESSFUL: " + responseBody.string()); - new Handler(Looper.getMainLooper()) - .post( - () -> - Toast.makeText( - context, - "Upload successful\n" - + "Removing local" - + " copy...", - Toast.LENGTH_SHORT) - .show()); - // Delete local file, set success to true and notify observers - success = localTrajectory.delete(); - notifyObservers(OBSERVER_INDEX_MAIN); - } - } - }); + String uploadURL = createTrajectoryUploadURL(campaign); + + sendRequestPOST( + uploadURL, + requestBody, + PROTOCOL_APP_JSON, + PROTOCOL_MULTIPART, + REQUEST.POST_TRAJECTORY_RECORDED, + localTrajectory); } /** @@ -572,223 +681,153 @@ private void saveDownloadRecord( * @param dateSubmitted The date the trajectory was submitted */ public void downloadTrajectory(int position, String id, String dateSubmitted) { - loadDownloadRecords(); // Load existing records from app-specific directory + // Load existing records from app-specific directory + loadDownloadRecords(); String url = URL_GET_TRAJECTORIES_HEAD + (position + TRAJECTORY_REQUEST_BUFFER) + URL_GET_TRAJECTORIES_TAIL; - // Initialise OkHttp client - OkHttpClient client = new OkHttpClient(); - - // Create GET request with required header - okhttp3.Request request = - new okhttp3.Request.Builder() - .url(url) - .addHeader("accept", PROTOCOL_APP_JSON) - .get() - .build(); + List additionalData = new ArrayList<>(); + additionalData.add(id); + additionalData.add(position); + additionalData.add(dateSubmitted); // Enqueue the GET request for asynchronous execution - Toast.makeText(context, "Request sent for recording " + id, Toast.LENGTH_SHORT).show(); - client.newCall(request) - .enqueue( - new okhttp3.Callback() { - @Override - public void onFailure(Call call, IOException e) { - Log.e(TAG, "GET request error: " + e.getMessage()); - } + sendRequestGET(url, PROTOCOL_APP_JSON, REQUEST.GET_TRAJECTORY_SINGLE, additionalData); + Toast.makeText(context, "Request sent for Trajectory " + id, Toast.LENGTH_SHORT).show(); + } - @Override - public void onResponse(Call call, Response response) - throws IOException { - try (ResponseBody responseBody = response.body()) { - if (!response.isSuccessful()) - throw new IOException( - "Upload Error (Error Code " - + response.code() - + ")"); - Log.d( - TAG, - "Trajectories received.\n" - + "Now parsing for ID " - + id - + " (Position " - + position - + ")"); - new Handler(Looper.getMainLooper()) - .post( - () -> - Toast.makeText( - context, - "Downloaded trajectory " - + id - + "\n" - + "Now parsing...", - Toast.LENGTH_SHORT) - .show()); - - // Extract the nth entry from the zip - InputStream inputStream = responseBody.byteStream(); - ZipInputStream zipInputStream = new ZipInputStream(inputStream); - - java.util.zip.ZipEntry zipEntry; - int zipCount = 0; - while ((zipEntry = zipInputStream.getNextEntry()) != null) { - if (zipCount == position) { - // break if zip entry position matches the desired - // position - break; - } - zipCount++; - } + /** + * Processes the downloaded trajectory data such that it can be replayed + * + * @param responseBody The raw response from the server + * @param id The ID of the trajectory being processed + * @param position The position within the ZIP file's array of the trajectory requested + * @param dateSubmitted The date on which the trajectory was recorded + */ + private void processDownloadedTrajectory( + ResponseBody responseBody, String id, int position, String dateSubmitted) { + try { + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + "Trajectory " + + id + + " received!\n" + + "Now parsing trajectory...", + Toast.LENGTH_SHORT) + .show()); + + // Extract the nth entry from the zip + InputStream inputStream = responseBody.byteStream(); + ZipInputStream zipInputStream = new ZipInputStream(inputStream); + + int zipCount = 0; + while ((zipInputStream.getNextEntry()) != null) { + if (zipCount == position) { + // break if zip entry position matches the desired position + break; + } + zipCount++; + } - // Initialise a byte array output stream - ByteArrayOutputStream byteArrayOutputStream = - new ByteArrayOutputStream(); + // Initialise a byte array output stream + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - // Read the zipped data and write it to the byte array output - // stream - byte[] buffer = new byte[1024]; - int bytesRead; - while ((bytesRead = zipInputStream.read(buffer)) != -1) { - byteArrayOutputStream.write(buffer, 0, bytesRead); - } + // Read the zipped data and write it to the byte array output + // stream + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = zipInputStream.read(buffer)) != -1) { + byteArrayOutputStream.write(buffer, 0, bytesRead); + } - // Convert the byte array to protobuf - byte[] byteArray = byteArrayOutputStream.toByteArray(); - Log.d(TAG, "byteArray = " + Arrays.toString(byteArray)); - Traj.Trajectory receivedTrajectory = - Traj.Trajectory.parseFrom(byteArray); - - // Print a message in the console - long startTimestamp = receivedTrajectory.getStartTimestamp(); - String fileName = "trajectory_" + dateSubmitted + ".txt"; - Log.i(TAG, fileName + " received"); - - // Inspect the size of the received trajectory - logDataSize(receivedTrajectory); - - // Place the file in your app-specific "Downloads" folder - File appSpecificDownloads = - context.getExternalFilesDir( - Environment.DIRECTORY_DOWNLOADS); - if (appSpecificDownloads != null - && !appSpecificDownloads.exists()) { - Log.d(TAG, "Creating downloads directory..."); - appSpecificDownloads.mkdirs(); - } + // Convert the byte array to protobuf + byte[] byteArray = byteArrayOutputStream.toByteArray(); + Log.d(TAG, "byteArray = " + Arrays.toString(byteArray)); + Traj.Trajectory receivedTrajectory = Traj.Trajectory.parseFrom(byteArray); + + // Print a message in the console + long startTimestamp = receivedTrajectory.getStartTimestamp(); + String fileName = "trajectory_" + dateSubmitted + ".txt"; + Log.i(TAG, fileName + " received"); + + // Inspect the size of the received trajectory + logDataSize(receivedTrajectory); + + // Place the file in your app-specific "Downloads" folder + File appSpecificDownloads = + context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS); + if (appSpecificDownloads != null && !appSpecificDownloads.exists()) { + Log.d(TAG, "Creating downloads directory..."); + appSpecificDownloads.mkdirs(); + } - File file = new File(appSpecificDownloads, fileName); - try (FileWriter fileWriter = new FileWriter(file)) { - String receivedTrajectoryString = - JsonFormat.printer().print(receivedTrajectory); - fileWriter.write(receivedTrajectoryString); - fileWriter.flush(); - Log.i( - TAG, - "Received trajectory stored in: " - + file.getAbsolutePath()); - - // Save the download record - saveDownloadRecord( - startTimestamp, fileName, id, dateSubmitted); - new Handler(Looper.getMainLooper()) - .post( - () -> - Toast.makeText( - context, - "Trajectory " - + id - + " is ready" - + " for replay!", - Toast.LENGTH_SHORT) - .show()); - } catch (IOException ee) { - Log.e( - TAG, - "Trajectory download failed: " + ee.getMessage()); - new Handler(Looper.getMainLooper()) - .post( - () -> - Toast.makeText( - context, - "There was a" - + " problem" - + " parsing" - + " trajectory " - + id - + "\n" - + "Please" - + " try again" - + " later", - Toast.LENGTH_SHORT) - .show()); - } finally { - // Close all streams and entries to release resources - zipInputStream.closeEntry(); - byteArrayOutputStream.close(); - zipInputStream.close(); - inputStream.close(); - } - } - // Refresh the list of download options - loadDownloadRecords(); - } - }); + File file = new File(appSpecificDownloads, fileName); + + try (FileWriter fileWriter = new FileWriter(file)) { + String receivedTrajectoryString = JsonFormat.printer().print(receivedTrajectory); + fileWriter.write(receivedTrajectoryString); + fileWriter.flush(); + Log.i(TAG, "Received trajectory stored in: " + file.getAbsolutePath()); + + // Save the download record + saveDownloadRecord(startTimestamp, fileName, id, dateSubmitted); + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + "Trajectory " + + id + + " is ready for replay!", + Toast.LENGTH_SHORT) + .show()); + } finally { + // Close all streams and entries to release resources + zipInputStream.closeEntry(); + byteArrayOutputStream.close(); + zipInputStream.close(); + inputStream.close(); + Log.d(TAG, "Files cleaned up"); + } + + } catch (IOException e) { + Log.e(TAG, "Trajectory download failed: " + e.getMessage()); + new Handler(Looper.getMainLooper()) + .post( + () -> + Toast.makeText( + context, + "There was a problem" + + " parsing trajectory " + + id + + "\nPlease try again later", + Toast.LENGTH_SHORT) + .show()); + } + + // Refresh the list of download options + loadDownloadRecords(); } /** - * API request for information about submitted trajectories. If the response is successful, the - * {@link ServerCommunications#infoResponse} field is updated and observes notified. + * API request for information about submitted trajectories. + * + *

    + * + * @param requestURL The URL of the API GET request */ - public void sendInfoRequest(String requestURL) { - // Create a new OkHttpclient - OkHttpClient client = new OkHttpClient(); - - // Create GET info request with appropriate URL and header - okhttp3.Request request = - new okhttp3.Request.Builder() - .url(requestURL) - .addHeader("accept", PROTOCOL_APP_JSON) - .get() - .build(); - - // Enqueue the GET request for asynchronous execution - client.newCall(request) - .enqueue( - new okhttp3.Callback() { - @Override - public void onFailure(Call call, IOException e) { - Log.e(TAG, "Error: " + e.getMessage()); - } - - @Override - public void onResponse(Call call, Response response) - throws IOException { - try (ResponseBody responseBody = response.body()) { - // Check if the response is successful - if (!response.isSuccessful()) - throw new IOException( - "Upload Error (Error Code " - + response.code() - + ")"); - - // Get the requested information from the response body and save - // it in a string - infoResponse = responseBody.string(); - // Print a message in the console and notify observers - Log.i(TAG, "Response received; URL " + requestURL); - Log.i(TAG, infoResponse); - notifyObservers(OBSERVER_INDEX_FILES); - } - } - }); + public void requestPathsFromServer(String requestURL) { + sendRequestGET(requestURL, PROTOCOL_APP_JSON, REQUEST.GET_TRAJECTORIES_LIST, null); } /** - * Retrieve floor plans for nearby buildings from server + * Retrieve floor plans for nearby buildings from the server * * @param position Current position during recording * @param wifiAPs List of nearby wireless access points @@ -802,101 +841,31 @@ public void requestFloorplans(@NonNull LatLng position, @NonNull List wifi lastTime = currentTime; } - // Create a new OkHttpclient - OkHttpClient client = new OkHttpClient(); - // Generate list of AP MAC addresses List aps = new ArrayList<>(); - if (wifiAPs != null) { - for (Wifi ap : wifiAPs) { - aps.add(String.valueOf(ap.getBssid())); - } + for (Wifi ap : wifiAPs) { + aps.add(String.valueOf(ap.getBssid())); } // Construct payload for request MediaType JSON = MediaType.get(PROTOCOL_APP_JSON + "; charset=utf-8"); - String payload = - "{" - + "\"lat\": " - + position.latitude - + ", " - + "\"lon\": " - + position.longitude - + ", " - + "\"macs\": " - + aps - + "}"; - - RequestBody requestBody = RequestBody.create(payload, JSON); - okhttp3.Request request = - new okhttp3.Request.Builder() - .url(URL_POST_FLOORPLANS) - .post(requestBody) - .addHeader("accept", PROTOCOL_APP_JSON) - .addHeader("Content-Type", PROTOCOL_APP_JSON) - .build(); - - client.newCall(request) - .enqueue( - new okhttp3.Callback() { - - @Override - public void onResponse(@NonNull Call call, @NonNull Response response) - throws IOException { - try (ResponseBody responseBody = response.body()) { - if (!response.isSuccessful()) { - assert responseBody != null; - String errorBody = responseBody.string(); - Log.e(TAG, "UPLOAD unsuccessful: " + errorBody); - infoResponse = - "Upload Error (Error Code " + response.code() + ")"; - new Handler(Looper.getMainLooper()) - .post( - () -> - Toast.makeText( - context, - infoResponse, - Toast.LENGTH_SHORT) - .show()); - throw new IOException(infoResponse); - } - - // Print the response headers - Headers responseHeaders = response.headers(); - for (int i = 0, size = responseHeaders.size(); i < size; i++) { - Log.d( - TAG, - responseHeaders.name(i) - + ": " - + responseHeaders.value(i)); - } - - assert responseBody != null; - infoResponse = responseBody.string(); - Log.i(TAG, "Floor plans received!"); - notifyObservers(OBSERVER_INDEX_INDOOR_MAPS); - } - } - - @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - Log.e( - TAG, - "[" + e.getMessage() + "] UPLOAD: Failure to get response"); - - // Show error message to users - infoResponse = "Upload failed: " + e.getMessage(); - new Handler(Looper.getMainLooper()) - .post( - () -> - Toast.makeText( - context, - infoResponse, - Toast.LENGTH_SHORT) - .show()); - notifyObservers(OBSERVER_INDEX_INDOOR_MAPS); - } - }); + JSONObject payload = new JSONObject(); + try { + payload.put("lat", position.latitude); + payload.put("lon", position.longitude); + payload.put("macs", new JSONArray(aps)); + } catch (JSONException ignore) { + return; + } + RequestBody requestBody = RequestBody.create(payload.toString(), JSON); + + sendRequestPOST( + URL_POST_FLOORPLANS, + requestBody, + PROTOCOL_APP_JSON, + PROTOCOL_APP_JSON, + REQUEST.POST_FLOOR_PLANS, + null); } /** @@ -920,9 +889,10 @@ private void checkNetworkStatus() { /** * Create the trajectory upload URL by inserting the building the route is related to * - * @param campaign The name of the building + * @param campaign The name of the building which the recording is currently associated with + * @return The newly formed URL including the campaign field */ - private String createUploadURL(String campaign) { + private String createTrajectoryUploadURL(String campaign) { return URL_API + API_POST_TRAJECTORIES + "/" @@ -933,6 +903,11 @@ private String createUploadURL(String campaign) { + API_KEY_MASTER; } + /** + * Logs all the sensor information in the trajectory + * + * @param trajectory The trajectory being logged + */ private void logDataSize(Traj.Trajectory trajectory) { Log.i(TAG, "IMU Data size: " + trajectory.getImuDataCount()); Log.i(TAG, "Position Data size: " + trajectory.getMagnetometerDataCount()); @@ -944,18 +919,25 @@ private void logDataSize(Traj.Trajectory trajectory) { Log.i(TAG, "PDR Data size: " + trajectory.getPdrDataCount()); } + ////////////////////////////////////////////////////////////////////////////// + /** * {@inheritDoc} * *

    Implement default method from Observable Interface to add new observers to the list of * registered observers. * + *

    Note that only one type of each {@link Observer} class may be registered. + * * @param o Classes which implement the Observer interface to receive updates from the class. */ @Override public void registerObserver(Observer o) { - this.observers.add(o); - Log.i(TAG, "Added observer of type " + o.getClass()); + if (observers.add(o)) { + Log.i(TAG, "Added observer of type " + o.getClass().getSimpleName()); + } else { + Log.w(TAG, "Observer of type " + o.getClass().getSimpleName() + " already registered!"); + } } /** @@ -970,11 +952,11 @@ public void registerObserver(Observer o) { public void notifyObservers(int index) { for (Observer o : observers) { if (index == OBSERVER_INDEX_FILES && o instanceof FilesFragment) { - o.update(new String[] {infoResponse}); + o.update(new Object[] {success, infoResponse}); } else if (index == OBSERVER_INDEX_MAIN && o instanceof MainActivity) { - o.update(new Boolean[] {success}); + o.update(new Object[] {success, infoResponse}); } else if (index == OBSERVER_INDEX_INDOOR_MAPS && o instanceof IndoorMapManager) { - o.update(new String[] {infoResponse}); + o.update(new Object[] {success, infoResponse}); } else { Log.w( TAG, diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java index 6ad59eb6..4a99c8c7 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java @@ -5,6 +5,8 @@ import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; +import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; @@ -30,6 +32,8 @@ import com.openpositioning.PositionMe.sensors.SensorFusion; import com.openpositioning.PositionMe.utils.PermissionManager; import java.util.Objects; +import org.json.JSONException; +import org.json.JSONObject; /** * The Main Activity of the application, handling setup, permissions and starting all other @@ -54,6 +58,7 @@ * @author Virginia Cangelosi */ public class MainActivity extends AppCompatActivity implements Observer { + private static final String TAG = "MainActivity"; // region Instance variables private NavController navController; @@ -63,6 +68,7 @@ public class MainActivity extends AppCompatActivity implements Observer { private SharedPreferences settings; private SensorFusion sensorFusion; private Handler httpResponseHandler; + private String httpFailureMessage = ""; private PermissionManager permissionManager; @@ -324,18 +330,52 @@ public void onBackPressed() { } } - // endregion - - // region Global toasts - - /** {@inheritDoc} Calls the corresponding handler that runs a toast on the Main UI thread. */ + /** + * {@inheritDoc} + * + *

    Calls the corresponding handler that runs a toast on the Main UI thread. + */ @Override public void update(Object[] objList) { - assert objList[0] instanceof Boolean; - if ((Boolean) objList[0]) { + boolean success = (boolean) objList[0]; + String response = objList[1].toString(); + + if (success) { this.httpResponseHandler.post(displayToastTaskSuccess); } else { - this.httpResponseHandler.post(displayToastTaskFailure); + try { + JSONObject jsonObject = new JSONObject(response); + + Log.d(TAG, jsonObject.toString()); + String cause = jsonObject.getString("detail"); + String[] causeElements = cause.split(":"); + String causeSource = causeElements[0].strip(); + String causeMessage = causeElements[1].strip(); + + new Handler(Looper.getMainLooper()) + .post( + () -> + new AlertDialog.Builder(this) + .setTitle("Trajectory Upload Failed") + .setMessage( + "The server has declined the last recorded" + + " trajectory. The response is shown" + + " below:\n\n" + + causeSource + + "\n" + + causeMessage) + .setPositiveButton( + "Okay", + (dialog, which) -> { + dialog.dismiss(); + }) + .create() + .show()); + + } catch (JSONException e) { + httpFailureMessage = "Upload failed - Unknown error"; + this.httpResponseHandler.post(displayToastTaskFailure); + } } } @@ -354,9 +394,6 @@ public void update(Object[] objList) { */ private final Runnable displayToastTaskFailure = () -> { - // Toast.makeText(MainActivity.this, "Failed to complete trajectory - // upload", Toast.LENGTH_SHORT).show(); + Toast.makeText(MainActivity.this, httpFailureMessage, Toast.LENGTH_SHORT).show(); }; - - // endregion } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java index 75a70373..20589c8c 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java @@ -103,8 +103,10 @@ public void onClick(View view) { Navigation.findNavController(view).navigate(action); } }); + // Request list of uploaded trajectories from the server. - serverCommunications.sendInfoRequest(URL_GET_USER_TRAJECTORIES); + serverCommunications.requestPathsFromServer(URL_GET_USER_TRAJECTORIES); + // Force RecyclerView refresh to ensure icon states are correct new Handler(Looper.getMainLooper()) .postDelayed( @@ -121,13 +123,14 @@ public void onClick(View view) { * {@inheritDoc} Called by {@link ServerCommunications} when the response to the HTTP info * request is received. * - * @param singletonStringList a single string wrapped in an object array containing the http - * response from the server. + * @param objList The response from the server, including a {@link Boolean} value of success and + * the server's response as a string. */ @Override - public void update(Object[] singletonStringList) { + public void update(Object[] objList) { + Boolean result = (boolean) objList[0]; // Cast input as a string - String infoString = (String) singletonStringList[0]; + String infoString = (String) objList[1]; // Check if the string is non-null and non-empty before processing if (infoString != null && !infoString.isEmpty()) { // Process string @@ -206,6 +209,7 @@ private void updateView(List> entryList) { serverCommunications.downloadTrajectory(position, id, dateSubmitted); }); filesList.setAdapter(listAdapter); + // Force refresh RecyclerView to ensure downloadRecords changes are detected listAdapter.notifyDataSetChanged(); } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadListAdapter.java index 27716f7a..1da9076e 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadListAdapter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/TrajDownloadListAdapter.java @@ -9,6 +9,7 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.ViewGroup; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; @@ -261,6 +262,17 @@ public void onBindViewHolder(@NonNull TrajDownloadViewHolder holder, int positio ReplayActivity.EXTRA_TRAJECTORY_FILE_PATH, finalFilePath); context.startActivity(intent); } + } else if (downloadingTrajIds.contains(id)) { + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + context, + "This trajectory is already being" + + " processed", + Toast.LENGTH_SHORT) + .show(); + }); } else { // If the item is not downloaded, trigger the download action. listener.onPositionClicked(position); diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java index 9c9816e6..a8b9d481 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java @@ -146,7 +146,7 @@ public class SensorFusion implements SensorEventListener, Observer { private float longitude; private float[] startLocation; // Wifi values - private List wifiList; + private List wifiList = new ArrayList<>(); // BLE values private List bleList; // Track seen APs to avoid duplicates diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java index c2315db0..a5245788 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java @@ -110,39 +110,42 @@ public Building getCurrentBuilding(LatLng position) { } /** - * {@inheritDoc} Called by {@link ServerCommunications} when the response to the HTTP info - * request is received. + * {@inheritDoc} * - * @param singletonStringList A single string wrapped in an object array containing the HTTP - * response from the server. + *

    Called by {@link ServerCommunications} when the response to the HTTP info request is + * received. + * + * @param objList The response from the server, including a {@link Boolean} value of success and + * the server's response as a string. */ @Override - public void update(Object[] singletonStringList) { - if (singletonStringList != null && singletonStringList.length > 0) { - String response = singletonStringList[0].toString(); - Log.d(TAG, "Received response: " + response); - try { - // Parse the JSON, and draw all possible buildings - List> entryList = processPOSTResponse(response); - for (Map building : entryList) { - - String name = (String) building.get("name"); - @SuppressWarnings("unchecked") - List outline = (List) building.get("outline"); - @SuppressWarnings("unchecked") - Map> mapShapes = - (Map>) building.get("map_shapes"); - - // Add building to list of known buildings - if (!this.getAllBuildingNames().contains(name)) { - this.addBuilding(new Building(name, outline, mapShapes)); - } else { - Log.w(TAG, "Building " + name + " already exists. Skipping creation."); - } + public void update(Object[] objList) { + boolean success = (boolean) objList[0]; + String response = objList[1].toString(); + if (!success) return; + + Log.d(TAG, "Received response: " + response); + try { + // Parse the JSON, and draw all possible buildings + List> entryList = processPOSTResponse(response); + for (Map building : entryList) { + + String name = (String) building.get("name"); + @SuppressWarnings("unchecked") + List outline = (List) building.get("outline"); + @SuppressWarnings("unchecked") + Map> mapShapes = + (Map>) building.get("map_shapes"); + + // Add building to list of known buildings + if (!this.getAllBuildingNames().contains(name)) { + this.addBuilding(new Building(name, outline, mapShapes)); + } else { + Log.w(TAG, "Building " + name + " already exists. Skipping creation."); } - } catch (RuntimeException e) { - Log.e(TAG, "Error processing server response: " + e.getMessage()); } + } catch (RuntimeException e) { + Log.e(TAG, "Error processing server response: " + e.getMessage()); } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java b/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java index 0ac98357..c071b719 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java @@ -50,7 +50,7 @@ public class UtilConstants { public static final String PROTOCOL_MULTIPART = "multipart/form-data"; public static final String PROTOCOL_APP_JSON = "application/json"; - // Expected performances from floorplans API requesr + // Expected performances from floor plans API request public static final String BUILDING_NAME_NUCLEUS = "nucleus_building"; public static final String BUILDING_NAME_M_HOUSE = "murchison_house"; public static final String BUILDING_NAME_OUTSIDE = "outside"; diff --git a/app/src/main/res/layout/fragment_correction.xml b/app/src/main/res/layout/fragment_correction.xml index 3bb89916..21f3068c 100644 --- a/app/src/main/res/layout/fragment_correction.xml +++ b/app/src/main/res/layout/fragment_correction.xml @@ -133,12 +133,12 @@ android:id="@+id/cardView2" android:layout_width="380dp" android:layout_height="70dp" - android:layout_marginStart="16dp" android:layout_marginBottom="220dp" android:backgroundTint="@color/md_theme_light_primary" app:cardCornerRadius="12dp" app:cardElevation="4dp" app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:strokeColor="@android:color/transparent"> @@ -167,7 +167,11 @@ android:layout_height="38dp" android:layout_marginStart="228dp" android:layout_marginTop="8dp" + android:layout_marginEnd="2dp" + android:layout_marginBottom="16dp" android:background="@android:color/white" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> From 9e4310c352c8c07422e1a6426ed9b687c980196f Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Sun, 15 Mar 2026 17:54:21 +0000 Subject: [PATCH 36/65] [Maint, Feat] Permissions Management (#79) --- app/src/main/AndroidManifest.xml | 4 +- .../presentation/activity/MainActivity.java | 102 ++------ .../PositionMe/sensors/BleDataProcessor.java | 13 +- .../PositionMe/utils/PermissionConstants.java | 44 ++++ .../PositionMe/utils/PermissionManager.java | 222 +++++++++++------- 5 files changed, 214 insertions(+), 171 deletions(-) create mode 100644 app/src/main/java/com/openpositioning/PositionMe/utils/PermissionConstants.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5ec34b2e..e064e4d1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -27,10 +27,12 @@ - + + + diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java index 4a99c8c7..be308aba 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java @@ -1,8 +1,6 @@ package com.openpositioning.PositionMe.presentation.activity; -import android.Manifest; import android.content.SharedPreferences; -import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -10,8 +8,6 @@ import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; -import androidx.activity.result.ActivityResultLauncher; -import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; @@ -60,10 +56,7 @@ public class MainActivity extends AppCompatActivity implements Observer { private static final String TAG = "MainActivity"; - // region Instance variables private NavController navController; - private ActivityResultLauncher locationPermissionLauncher; - private ActivityResultLauncher multiplePermissionsLauncher; private SharedPreferences settings; private SensorFusion sensorFusion; @@ -72,12 +65,6 @@ public class MainActivity extends AppCompatActivity implements Observer { private PermissionManager permissionManager; - private static final int PERMISSION_REQUEST_CODE = 100; - - // endregion - - // region Activity Lifecycle - /** * {@inheritDoc} Forces light mode, sets up the navigation graph, initialises the toolbar with * back action on the nav controller, loads the shared preferences and checks for all @@ -86,7 +73,10 @@ public class MainActivity extends AppCompatActivity implements Observer { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + if (AppCompatDelegate.getDefaultNightMode() != AppCompatDelegate.MODE_NIGHT_NO) { + Log.d(TAG, "Forcing light mode"); + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + } setContentView(R.layout.activity_main); // Set up navigation and fragments @@ -117,31 +107,23 @@ protected void onCreate(Bundle savedInstanceState) { this.sensorFusion = SensorFusion.getInstance(); this.sensorFusion.setContext(getApplicationContext()); - // Register multiple permissions launcher - multiplePermissionsLauncher = - registerForActivityResult( - new ActivityResultContracts.RequestMultiplePermissions(), - result -> { - boolean locationGranted = - result.getOrDefault( - Manifest.permission.ACCESS_FINE_LOCATION, false); - boolean activityGranted = - result.getOrDefault( - Manifest.permission.ACTIVITY_RECOGNITION, false); - - if (locationGranted && activityGranted) { - // Both permissions granted - allPermissionsObtained(); + permissionManager = + new PermissionManager( + this, + this, + ((allPermissionsGranted, deniedPermissions) -> { + if (isActivityVisible()) { + if (allPermissionsGranted) { + allPermissionsObtained(); + } else { + Log.d(TAG, "Missing permissions!"); + permissionManager.confirmDeniedPermissions(deniedPermissions); + } } else { - // Permission denied - Toast.makeText( - this, - "Location or Physical Activity permission denied." - + " Some features may not work.", - Toast.LENGTH_LONG) - .show(); + Log.d(TAG, "Activity not visible; skipping permission check"); } - }); + })); + permissionManager.checkAndRequestPermissions(); // Handler for global toasts and popups from other classes this.httpResponseHandler = new Handler(); @@ -173,42 +155,7 @@ public void onResume() { getSupportActionBar().show(); } - // Delay permission check slightly to ensure the Activity is in the foreground - new Handler() - .postDelayed( - () -> { - if (isActivityVisible()) { - // Check if both permissions are granted - boolean locationGranted = - ContextCompat.checkSelfPermission( - this, - Manifest.permission.ACCESS_FINE_LOCATION) - == PackageManager.PERMISSION_GRANTED; - - boolean activityGranted = - ContextCompat.checkSelfPermission( - this, - Manifest.permission.ACTIVITY_RECOGNITION) - == PackageManager.PERMISSION_GRANTED; - - if (!locationGranted || !activityGranted) { - // Request both permissions using ActivityResultLauncher - multiplePermissionsLauncher.launch( - new String[] { - Manifest.permission.ACCESS_FINE_LOCATION - }); - multiplePermissionsLauncher.launch( - new String[] { - Manifest.permission.ACTIVITY_RECOGNITION - }); - } else { - // Both permissions are already granted - allPermissionsObtained(); - } - } - }, - 300); // Delay ensures activity is fully visible before requesting - // permissions + permissionManager.checkMissingPermissions(); if (sensorFusion != null) { sensorFusion.resumeListening(); @@ -232,13 +179,10 @@ protected void onDestroy() { // with // a locked screen or cross activity } + Log.d(TAG, "MainActivity being destroyed"); super.onDestroy(); } - // endregion - - // region Permissions - /** * Prepares global resources when all permissions are granted. Resets the permissions tracking * boolean in shared preferences, and initialises the {@link SensorFusion} class with the @@ -260,10 +204,6 @@ private void allPermissionsObtained() { sensorFusion.registerForServerUpdate(this); } - // endregion - - // region Navigation - /** * {@inheritDoc} Sets desired animations and navigates to {@link SettingsFragment} when the * settings wheel in the action bar is clicked. diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java index 8b835a79..2ab2d10c 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/BleDataProcessor.java @@ -11,7 +11,7 @@ import android.content.Context; import android.content.pm.PackageManager; import android.os.ParcelUuid; -import android.widget.Toast; +import android.util.Log; import java.util.ArrayList; import java.util.List; import java.util.Timer; @@ -26,6 +26,7 @@ * @author Vlad Stratulat */ public class BleDataProcessor implements Observable { + public static final String TAG = "BleDataProcessor"; // Time over which a new scan will be initiated (same as WiFi) private static final long SCAN_INTERVAL = 5000; @@ -46,11 +47,7 @@ public BleDataProcessor(Context context) { this.observers = new ArrayList<>(); if (!hasPermission()) { - Toast.makeText( - context, - "Enable Nearby Devices / Location Permission", - Toast.LENGTH_LONG) - .show(); + Log.w(TAG, "Bluetooth lacks required permissions to work!"); return; } @@ -72,7 +69,9 @@ public BleDataProcessor(Context context) { } private boolean hasPermission() { - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) { + int buildSDK = android.os.Build.VERSION.SDK_INT; + Log.d(TAG, "Checking permission for Android version " + buildSDK); + if (buildSDK >= android.os.Build.VERSION_CODES.S) { return (context.checkSelfPermission(Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_GRANTED && context.checkSelfPermission(Manifest.permission.BLUETOOTH_CONNECT) diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionConstants.java b/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionConstants.java new file mode 100644 index 00000000..63cdfddd --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionConstants.java @@ -0,0 +1,44 @@ +package com.openpositioning.PositionMe.utils; + +import android.Manifest; +import android.annotation.SuppressLint; + +/** + * Centralised definitions of 'dangerous' permissions required by PositionMe. + * + *

    Note that some permissions are unavailable in certain Android SDK versions. + * + * @see PermissionManager + */ +public class PermissionConstants { + public static final String[] PERMISSIONS_LOCATION = + new String[] { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION + }; + + @SuppressLint("InlinedApi") + public static final String[] PERMISSIONS_API_29 = + new String[] {Manifest.permission.ACTIVITY_RECOGNITION}; + + @SuppressLint("InlinedApi") + public static final String[] PERMISSIONS_API_33 = + new String[] {Manifest.permission.NEARBY_WIFI_DEVICES}; + + @SuppressLint("InlinedApi") + public static final String[] PERMISSIONS_API_34 = + new String[] {Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED}; + + @SuppressLint("InlinedApi") + public static final String[] PERMISSIONS_STORAGE_MODERN = + new String[] { + Manifest.permission.READ_MEDIA_AUDIO, + Manifest.permission.READ_MEDIA_IMAGES, + Manifest.permission.READ_MEDIA_VIDEO + }; + + public static final String[] PERMISSIONS_STORAGE_LEGACY = + new String[] { + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.READ_EXTERNAL_STORAGE + }; +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java b/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java index 76487542..45966320 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/PermissionManager.java @@ -1,6 +1,10 @@ package com.openpositioning.PositionMe.utils; -import android.Manifest; +import static com.openpositioning.PositionMe.utils.PermissionConstants.PERMISSIONS_API_29; +import static com.openpositioning.PositionMe.utils.PermissionConstants.PERMISSIONS_API_33; +import static com.openpositioning.PositionMe.utils.PermissionConstants.PERMISSIONS_LOCATION; +import static com.openpositioning.PositionMe.utils.PermissionConstants.PERMISSIONS_STORAGE_LEGACY; + import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; @@ -8,135 +12,183 @@ import android.net.Uri; import android.os.Build; import android.provider.Settings; -import android.widget.Toast; -import androidx.annotation.RequiresApi; +import android.util.Log; +import androidx.activity.result.ActivityResultCaller; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; +import com.openpositioning.PositionMe.presentation.activity.MainActivity; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.ListIterator; +import java.util.Set; /** * A helper class responsible for checking and requesting all dangerous permissions that the * application needs in order to function. * - *

    This class: - Manages the permissions list. - Checks if all permissions are granted. - - * Requests missing permissions. - Handles both the first-time and permanent denial scenarios. + *

    This class: + * + *

    - Manages the permissions list. + * + *

    - Checks if all permissions are granted. + * + *

    - Requests missing permissions. * - *

    Usage from MainActivity: PermissionManager permissionManager = new - * PermissionManager(MainActivity.this, new PermissionManager.PermissionCallback() { @Override - * public void onAllPermissionsGranted() { // e.g. call allPermissionsObtained() in MainActivity - * allPermissionsObtained(); } }); permissionManager.checkAndRequestPermissions(); + *

    - Handles both the first-time and permanent denial scenarios. + * + * @see MainActivity MainActivity */ public class PermissionManager { - - private static final int ALL_PERMISSIONS_REQUEST = 100; + private static final String TAG = "PermissionManager"; private final Activity activity; - private final PermissionCallback callback; + private ActivityResultLauncher multiplePermissionsLauncher; + + boolean allPermissionsGranted = false; + // Flag to prevent overlapping AlertBoxes + boolean boxShowing = false; // The list of dangerous permissions needed by this app. private final List requiredPermissions = new ArrayList<>(); + private List missingPermissions = new ArrayList<>(); - @RequiresApi(api = Build.VERSION_CODES.Q) - public PermissionManager(Activity activity, PermissionCallback callback) { + public PermissionManager( + Activity activity, ActivityResultCaller caller, PermissionCallback callback) { this.activity = activity; - this.callback = callback; - - // Populate required permissions - // For API < 29, also request broad storage permissions - // For API >= 29, also request ACTIVITY_RECOGNITION - requiredPermissions.add(Manifest.permission.ACCESS_FINE_LOCATION); - requiredPermissions.add(Manifest.permission.ACCESS_COARSE_LOCATION); - requiredPermissions.add(Manifest.permission.ACCESS_WIFI_STATE); - requiredPermissions.add(Manifest.permission.CHANGE_WIFI_STATE); - requiredPermissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); - requiredPermissions.add(Manifest.permission.READ_EXTERNAL_STORAGE); - requiredPermissions.add(Manifest.permission.ACTIVITY_RECOGNITION); + + int buildSDK = Build.VERSION.SDK_INT; + requiredPermissions.addAll(Arrays.asList(PERMISSIONS_LOCATION)); + if (buildSDK >= Build.VERSION_CODES.Q) { + requiredPermissions.addAll(Arrays.asList(PERMISSIONS_API_29)); + } else { + requiredPermissions.addAll(Arrays.asList(PERMISSIONS_STORAGE_LEGACY)); + } + if (buildSDK >= Build.VERSION_CODES.TIRAMISU) { + requiredPermissions.addAll(Arrays.asList(PERMISSIONS_API_33)); + } + + // Register multiple permissions launcher + multiplePermissionsLauncher = + caller.registerForActivityResult( + new ActivityResultContracts.RequestMultiplePermissions(), + results -> { + Log.d(TAG, "Now checking " + results.size() + " permissions"); + if (results.isEmpty()) { + allPermissionsGranted = false; + } else { + Set permissions = results.keySet(); + allPermissionsGranted = true; + for (String permission : permissions) { + boolean result = Boolean.TRUE.equals(results.get(permission)); + if (!result) { + Log.w(TAG, "Permission Denied: " + permission); + allPermissionsGranted = false; + if (!missingPermissions.contains(permission)) { + missingPermissions.add(permission); + } + } else if (missingPermissions.contains(permission)) { + missingPermissions.remove(permission); + } + } + } + callback.onAllPermissionsGranted( + allPermissionsGranted, missingPermissions); + }); } /** Checks if all required permissions are already granted; if not, requests them. */ public void checkAndRequestPermissions() { - if (!hasAllPermissions()) { - ActivityCompat.requestPermissions( - activity, requiredPermissions.toArray(new String[0]), ALL_PERMISSIONS_REQUEST); - } else { - // Already granted - callback.onAllPermissionsGranted(); + multiplePermissionsLauncher.launch(requiredPermissions.toArray(new String[0])); + } + + public void checkMissingPermissions() { + Log.d(TAG, "Checking " + missingPermissions.size() + " missing permissions"); + ListIterator iterator = missingPermissions.listIterator(); + while (iterator.hasNext()) { + String permission = iterator.next(); + if (ContextCompat.checkSelfPermission(activity, permission) + == PackageManager.PERMISSION_GRANTED) { + Log.d(TAG, "Permission " + permission + " now granted!"); + iterator.remove(); + } } + Log.d(TAG, "Now missing " + missingPermissions.size() + " permissions"); + confirmDeniedPermissions(missingPermissions); } /** - * Must be called from the Activity's onRequestPermissionsResult: @Override public void - * onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { - * super.onRequestPermissionsResult(requestCode, permissions, grantResults); - * permissionManager.handleRequestPermissionsResult(requestCode, permissions, grantResults); } + * Must be called from the Activity's onRequestPermissionsResult + * + *

    Override public void onRequestPermissionsResult( int requestCode, String[] permissions, + * int[] results) {super.onRequestPermissionsResult(requestCode, permissions, results); + * permissionManager.handleRequestPermissionsResult(requestCode, permissions, results); } */ - public void handleRequestPermissionsResult( - int requestCode, String[] permissions, int[] grantResults) { - if (requestCode == ALL_PERMISSIONS_REQUEST) { - boolean allGranted = true; - List deniedPermissions = new ArrayList<>(); - - for (int i = 0; i < permissions.length; i++) { - if (grantResults[i] != PackageManager.PERMISSION_GRANTED) { - allGranted = false; - deniedPermissions.add(permissions[i]); - } - } - - if (allGranted) { - Toast.makeText(activity, "All permissions granted!", Toast.LENGTH_SHORT).show(); - callback.onAllPermissionsGranted(); + public void confirmDeniedPermissions(List deniedPermissions) { + // Check if any denied permission is permanently denied. + ArrayList permanentlyDenied = new ArrayList<>(); + ArrayList tentativelyDenied = new ArrayList<>(); + for (String permission : deniedPermissions) { + // If shouldShowRequestPermissionRationale returns false => permanently denied + if (!ActivityCompat.shouldShowRequestPermissionRationale(activity, permission)) { + permanentlyDenied.add(permission); } else { - // Check if any denied permission is permanently denied. - boolean permanentlyDenied = false; - for (String perm : deniedPermissions) { - // If shouldShowRequestPermissionRationale returns false => permanently denied - if (!ActivityCompat.shouldShowRequestPermissionRationale(activity, perm)) { - permanentlyDenied = true; - break; - } - } - if (permanentlyDenied) { - showPermanentDenialDialog(); - } else { - showFirstDenialDialog(); - } + tentativelyDenied.add(permission); } } - } - /** Checks if the app has all the required permissions granted. */ - private boolean hasAllPermissions() { - for (String perm : requiredPermissions) { - if (ContextCompat.checkSelfPermission(activity, perm) - != PackageManager.PERMISSION_GRANTED) { - return false; - } + if (!permanentlyDenied.isEmpty()) { + showPermanentDenialDialog(); + } + if (!tentativelyDenied.isEmpty()) { + showFirstDenialDialog(); } - return true; } /** Shows an AlertDialog if the user has denied permissions for the first time. */ private void showFirstDenialDialog() { - if (!activity.isFinishing()) { + if (!activity.isFinishing() && !activity.isDestroyed()) { + if (boxShowing) { + Log.w(TAG, "Box already showing. Skipping new first denial box"); + return; + } + boxShowing = true; + Log.i(TAG, "Displaying the first denial box"); new AlertDialog.Builder(activity) .setTitle("Permissions Denied") .setMessage( "Certain permissions are essential for this app to function.\n" + "Tap GRANT to try again or EXIT to close the app.") .setCancelable(false) - .setPositiveButton("Grant", (dialog, which) -> checkAndRequestPermissions()) - .setNegativeButton("Exit", (dialog, which) -> activity.finish()) + .setPositiveButton( + "Grant", + (dialog, which) -> { + boxShowing = false; + checkAndRequestPermissions(); + }) + .setNegativeButton( + "Exit", + (dialog, which) -> { + boxShowing = false; + activity.finish(); + }) .show(); } } /** Shows an AlertDialog if the user has permanently denied the permissions. */ private void showPermanentDenialDialog() { - if (!activity.isFinishing()) { + if (!activity.isFinishing() && !activity.isDestroyed()) { + if (boxShowing) { + Log.w(TAG, "Box already showing. Skipping new permanent denial box"); + return; + } + boxShowing = true; + Log.i(TAG, "Displaying the permanent denial box"); new AlertDialog.Builder(activity) - .setTitle("Permission Permanently Denied") + .setTitle("Permissions Permanently Denied") .setMessage( "Some permissions have been permanently denied. " + "Please go to Settings to enable them manually.") @@ -144,19 +196,25 @@ private void showPermanentDenialDialog() { .setPositiveButton( "Settings", (dialog, which) -> { + boxShowing = false; Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", activity.getPackageName(), null); intent.setData(uri); activity.startActivity(intent); }) - .setNegativeButton("Exit", (dialog, which) -> activity.finish()) + .setNegativeButton( + "Exit", + (dialog, which) -> { + boxShowing = false; + activity.finish(); + }) .show(); } } /** Callback to notify the calling Activity when all permissions have been granted. */ public interface PermissionCallback { - void onAllPermissionsGranted(); + void onAllPermissionsGranted(boolean allPermissionsGranted, List deniedPermissions); } } From dfde13deabad0406f31cec29a58fc939759fa815 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Sun, 15 Mar 2026 20:16:35 +0000 Subject: [PATCH 37/65] [Bug] Toast Text Splitting (#82) --- .../PositionMe/presentation/activity/MainActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java index be308aba..982b9634 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java @@ -288,7 +288,7 @@ public void update(Object[] objList) { Log.d(TAG, jsonObject.toString()); String cause = jsonObject.getString("detail"); - String[] causeElements = cause.split(":"); + String[] causeElements = cause.split(":", 2); String causeSource = causeElements[0].strip(); String causeMessage = causeElements[1].strip(); From 66a0a994f6592e76da22c6d97cb6abc056109e8f Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Mon, 16 Mar 2026 20:28:16 +0000 Subject: [PATCH 38/65] [Infra] Minimum SDK Version (#85) --- .github/pull_request_template.md | 3 +++ .github/workflows/{android-11.yml => android-9.yml} | 6 +++--- README.md | 6 +++--- 3 files changed, 9 insertions(+), 6 deletions(-) rename .github/workflows/{android-11.yml => android-9.yml} (86%) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 5f787f53..3502bc99 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -11,6 +11,9 @@ If this closes an issue, include the phrase: Closes (hashtag-issue_number) ## Action Items +- [ ] Test + - [ ] Minimum SDK (Android 9) + - [ ] Latest SDK - [ ] If there are any other outstanding items to be completed before merging, put them here - Remember to request at least one code review! (You don't need to list this as an item here, as GitHub will already track code reviews for you) diff --git a/.github/workflows/android-11.yml b/.github/workflows/android-9.yml similarity index 86% rename from .github/workflows/android-11.yml rename to .github/workflows/android-9.yml index bd2c8449..2312fc09 100644 --- a/.github/workflows/android-11.yml +++ b/.github/workflows/android-9.yml @@ -1,4 +1,4 @@ -name: Android 11 Build +name: Android 9 Build on: push: @@ -27,10 +27,10 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew - - name: Setup Android 11.0 SDK + - name: Setup Android 9.0 SDK uses: android-actions/setup-android@v3.2.2 with: - cmdline-tools-version: 10406996 + cmdline-tools-version: 9477386 - name: gradle build run: ./gradlew --no-daemon --parallel build \ No newline at end of file diff --git a/README.md b/README.md index 33b857b6..dfb5bd54 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Embedded Mobile and Wireless Systems (EWireless) 5 2025/26 ## Coursework 2 - Group 13 -[![Android 11](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-11.yml) [![Android 16](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml) +[![Android 9](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-9.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-9.yml) [![Android 16](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml/badge.svg)](https://github.com/sa-fx/ENG-EMWSE5/actions/workflows/android-16.yml) **PositionMe** is an indoor positioning data collection application initially developed for the [University of Edinburgh's Embedded Wireless course](https://www.drps.ed.ac.uk/25-26/dpt/cxelee11083.htm). The application now includes enhanced features, including **trajectory playback**, improved UI design, and comprehensive location tracking. @@ -38,7 +38,7 @@ ## Requirements - **Android Studio 4.2** or later -- **Android SDK 30** or later +- **Android SDK 28** or later For developers, the latest commits have been tested using the following configuration: - [Android Studio 2024.2.1 Patch 1 ('Ladybird')](https://developer.android.com/studio/archive) @@ -46,7 +46,7 @@ For developers, the latest commits have been tested using the following configur - Gradle 8.10.2 - Google Services 4.4.2 - [Spotless](https://github.com/diffplug/spotless) 8.3.0 -- Android SDK 34 ('Android 14') +- Android SDK 28 ('Android 9') ## Installation From 045ee478a4a800df61d4cc97e55191e2fe731f59 Mon Sep 17 00:00:00 2001 From: keeegannn <115988136+keeegannn@users.noreply.github.com> Date: Wed, 18 Mar 2026 09:53:30 +0000 Subject: [PATCH 39/65] Added TODO to particle filter file --- .../com/openpositioning/PositionMe/Fusion/ParticleFilter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java b/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java index c7990c30..f42a82cd 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/Fusion/ParticleFilter.java @@ -132,7 +132,7 @@ public void stop() { /** * Update step: assigns weights to particles based on observation likelihood. - * + * -TODO * @return the maximum particle weight after normalisation. */ public double updateWeights() { From cf0a3cb0b15542d755482c1ad0254d1c183ac482 Mon Sep 17 00:00:00 2001 From: Stewart Alexander <66742157+sa-fx@users.noreply.github.com> Date: Wed, 18 Mar 2026 10:00:57 +0000 Subject: [PATCH 40/65] [Feat] Login Page (#71) --- app/build.gradle | 8 +- app/src/main/AndroidManifest.xml | 17 +- .../PositionMe/data/remote/LoginManager.java | 113 +++++++ .../data/remote/ServerCommunications.java | 303 +++++++++++++++--- .../presentation/activity/LoginActivity.java | 37 +++ .../presentation/activity/MainActivity.java | 82 +++-- .../activity/RecordingActivity.java | 2 +- .../presentation/fragment/FilesFragment.java | 28 +- .../presentation/fragment/HomeFragment.java | 12 +- .../presentation/fragment/LoginFragment.java | 218 +++++++++++++ .../fragment/RegisterFragment.java | 144 +++++++++ .../fragment/SettingsFragment.java | 5 +- .../fragment/TrajectoryMapFragment.java | 6 + .../presentation/fragment/UploadFragment.java | 12 +- .../viewitems/UploadListAdapter.java | 22 +- .../PositionMe/sensors/GNSSDataProcessor.java | 27 +- .../PositionMe/sensors/WifiDataProcessor.java | 12 +- .../PositionMe/utils/IndoorMapManager.java | 4 +- .../PositionMe/utils/UtilConstants.java | 19 +- app/src/main/res/layout/activity_login.xml | 24 ++ app/src/main/res/layout/activity_main.xml | 10 +- app/src/main/res/layout/fragment_login.xml | 137 ++++++++ .../main/res/layout/fragment_recording.xml | 2 +- app/src/main/res/layout/fragment_register.xml | 159 +++++++++ app/src/main/res/navigation/login_nav.xml | 32 ++ app/src/main/res/navigation/main_nav.xml | 12 +- app/src/main/res/values/strings.xml | 3 + 27 files changed, 1316 insertions(+), 134 deletions(-) create mode 100644 app/src/main/java/com/openpositioning/PositionMe/data/remote/LoginManager.java create mode 100644 app/src/main/java/com/openpositioning/PositionMe/presentation/activity/LoginActivity.java create mode 100644 app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/LoginFragment.java create mode 100644 app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RegisterFragment.java create mode 100644 app/src/main/res/layout/activity_login.xml create mode 100644 app/src/main/res/layout/fragment_login.xml create mode 100644 app/src/main/res/layout/fragment_register.xml create mode 100644 app/src/main/res/navigation/login_nav.xml diff --git a/app/build.gradle b/app/build.gradle index f0c1a125..e91b615a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -107,7 +107,6 @@ dependencies { // Material Components (Material 3 support is in 1.12.0+) implementation 'com.google.android.material:material:1.12.0' - implementation 'com.google.android.gms:play-services-maps:19.0.0' implementation 'com.google.android.gms:play-services-location:21.3.0' implementation "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" @@ -115,6 +114,10 @@ dependencies { implementation "com.google.protobuf:protobuf-java-util:3.20.1" implementation 'com.squareup.okhttp3:okhttp:4.10.0' + // Secure credential storage + implementation 'androidx.datastore:datastore-preferences-rxjava3:1.2.1' + implementation "androidx.security:security-crypto:1.1.0" + // Navigation components def nav_version = "2.8.6" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" @@ -130,9 +133,6 @@ dependencies { implementation 'com.fasterxml.jackson.core:jackson-databind:2.6.3' implementation("de.grundid.opendatalab:geojson-jackson:3.0") - // Memory leak testing - Include only when required -// debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.14' - // Testing testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e064e4d1..54f6a40b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -85,13 +85,13 @@ android:name=".presentation.activity.RecordingActivity" android:exported="false" /> - - - + + + + + + diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/remote/LoginManager.java b/app/src/main/java/com/openpositioning/PositionMe/data/remote/LoginManager.java new file mode 100644 index 00000000..e89828a5 --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/data/remote/LoginManager.java @@ -0,0 +1,113 @@ +package com.openpositioning.PositionMe.data.remote; + +import static com.openpositioning.PositionMe.utils.UtilConstants.CREDENTIALS_FILE_NAME; +import static com.openpositioning.PositionMe.utils.UtilConstants.CREDENTIALS_KEY_EMAIL; +import static com.openpositioning.PositionMe.utils.UtilConstants.CREDENTIALS_KEY_PASSWORD; + +import android.content.Context; +import android.content.SharedPreferences; +import android.util.Log; +import androidx.security.crypto.EncryptedSharedPreferences; +import androidx.security.crypto.MasterKey; +import java.util.Map; + +/** + * The LoginManager class handles the user's identity, both when signing in (email and password) and + * when other classes call upon the user's information as returned from the server (username and API + * key) + * + *

    The user's login credentials are securely stored on their device. + * + *

    Implements the Singleton design pattern such that only one instance of the LoginManager can + * exist. This allows the user's details to be stored in one object and accessed by any other class. + * + * @see EncryptedSharedPreferences + * @see ServerCommunications + */ +public class LoginManager { + private final String TAG = "LoginManager"; + + private String username; + private String userKey; + + // Secure persistent storage of credentials (save password box) + SharedPreferences credentialStore; + + // Singleton Class + private static final LoginManager loginManager = new LoginManager(); + + private LoginManager() {} + + public static LoginManager getInstance() { + return loginManager; + } + + /** Run once on startup to initialise the credential store */ + public void initialise(Context context) { + if (credentialStore == null) { + try { + MasterKey masterKey = + new MasterKey.Builder(context) + .setKeyScheme(MasterKey.KeyScheme.AES256_GCM) + .build(); + credentialStore = + EncryptedSharedPreferences.create( + context, + CREDENTIALS_FILE_NAME, + masterKey, + EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, + EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM); + Log.d(TAG, "Credential storage initialised"); + } catch (Exception e) { + Log.w(TAG, "Error initialising the login credentials store: " + e.getMessage()); + } + } + } + + /** + * Save the provided credentials to the persistent storage + * + * @param email The user's email address + * @param password The user's password + */ + public void saveLoginDetails(String email, String password) { + credentialStore + .edit() + .putString(CREDENTIALS_KEY_EMAIL, email) + .putString(CREDENTIALS_KEY_PASSWORD, password) + .apply(); + Log.i(TAG, "Credentials successfully saved on device"); + } + + /** + * Retrieves the user's credentials, if they exist on the device + * + * @return The user's email and password + */ + public Map getSavedLoginDetails() { + if (credentialStore.contains(CREDENTIALS_KEY_EMAIL) + && credentialStore.contains(CREDENTIALS_KEY_PASSWORD)) { + Log.i(TAG, "Credentials found"); + return (Map) credentialStore.getAll(); + } else { + Log.d(TAG, "No saved credentials found"); + return null; + } + } + + public void setUsername(String username) { + this.username = username; + } + + public void setUserKey(String key) { + userKey = key; + } + + public String getUsername() { + return username; + } + + public String getUserKey() { + return userKey; + } +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java index 6b6b188a..91e7f3b8 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java +++ b/app/src/main/java/com/openpositioning/PositionMe/data/remote/ServerCommunications.java @@ -1,7 +1,8 @@ package com.openpositioning.PositionMe.data.remote; import static com.openpositioning.PositionMe.utils.UtilConstants.API_KEY_MASTER; -import static com.openpositioning.PositionMe.utils.UtilConstants.API_KEY_USER; +import static com.openpositioning.PositionMe.utils.UtilConstants.API_POST_LOGIN; +import static com.openpositioning.PositionMe.utils.UtilConstants.API_POST_SIGN_UP; import static com.openpositioning.PositionMe.utils.UtilConstants.API_POST_TRAJECTORIES; import static com.openpositioning.PositionMe.utils.UtilConstants.BUILDING_NAME_OUTSIDE; import static com.openpositioning.PositionMe.utils.UtilConstants.FLOOR_PLAN_POLL_TIME_MS; @@ -26,9 +27,12 @@ import androidx.preference.PreferenceManager; import com.google.android.gms.maps.model.LatLng; import com.google.protobuf.util.JsonFormat; +import com.openpositioning.PositionMe.R; import com.openpositioning.PositionMe.Traj; import com.openpositioning.PositionMe.presentation.activity.MainActivity; import com.openpositioning.PositionMe.presentation.fragment.FilesFragment; +import com.openpositioning.PositionMe.presentation.fragment.LoginFragment; +import com.openpositioning.PositionMe.presentation.fragment.RegisterFragment; import com.openpositioning.PositionMe.sensors.Observable; import com.openpositioning.PositionMe.sensors.Observer; import com.openpositioning.PositionMe.sensors.Wifi; @@ -93,6 +97,8 @@ public class ServerCommunications implements Observable { private static final int OBSERVER_INDEX_FILES = 0; private static final int OBSERVER_INDEX_MAIN = 1; private static final int OBSERVER_INDEX_INDOOR_MAPS = 2; + private static final int OBSERVER_INDEX_LOGIN = 3; + private static final int OBSERVER_INDEX_REGISTER = 4; private static final int TRAJECTORY_REQUEST_BUFFER = 10; private final Context context; @@ -102,6 +108,7 @@ public class ServerCommunications implements Observable { private boolean isWifiConn; private boolean isMobileConn; private SharedPreferences settings; + private LoginManager loginManager; private String infoResponse; private boolean success; @@ -119,6 +126,9 @@ private enum REQUEST { POST_LOG_IN } + private String ERROR_CODE_NO_SERVER; + private String ERROR_MESSAGE_NO_SERVER; + /** * Public default constructor of {@link ServerCommunications}. The constructor saves context, * initialises a {@link ConnectivityManager}, {@link Observer}, and gets the user preferences. @@ -134,11 +144,16 @@ public ServerCommunications(Context context) { this.isMobileConn = false; checkNetworkStatus(); + ERROR_CODE_NO_SERVER = context.getString(R.string.errorCodeNoServerResponse); + ERROR_MESSAGE_NO_SERVER = context.getString(R.string.errorMessageNoServerResponse); this.observers = new LinkedHashSet<>(); + loginManager = LoginManager.getInstance(); } ////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////// + /** * Sends an HTTP GET request to the provided URL, and handles responses. * @@ -160,16 +175,29 @@ private void sendRequestGET( @Override public void onFailure(@NonNull Call call, @NonNull IOException e) { // Notify users + Log.w(TAG, "Error: " + e.getMessage()); + String errorMessage = ERROR_MESSAGE_NO_SERVER; + success = false; new Handler(Looper.getMainLooper()) .post( - () -> - Toast.makeText( - context, - "Upload failed\n" - + "Server unresponsive" - + " or unreachable", - Toast.LENGTH_SHORT) - .show()); + () -> { + Toast.makeText( + context, + errorMessage, + Toast.LENGTH_SHORT) + .show(); + }); + infoResponse = ERROR_CODE_NO_SERVER + ":" + errorMessage; + + switch (requestType) { + case GET_TRAJECTORIES_LIST: + notifyObservers(OBSERVER_INDEX_FILES); + return; + case GET_TRAJECTORY_SINGLE: + return; + default: + return; + } } @Override @@ -181,15 +209,17 @@ public void onResponse(@NonNull Call call, @NonNull Response response) if (!response.isSuccessful()) { String errorBody = responseBody.string(); - infoResponse = errorBody; Log.w(TAG, "Error: " + errorBody); + infoResponse = responseCode + ":" + errorBody; success = false; switch (requestType) { case GET_TRAJECTORIES_LIST: + parseErrorResponse(infoResponse); notifyObservers(OBSERVER_INDEX_FILES); return; case GET_TRAJECTORY_SINGLE: + parseErrorResponse(infoResponse); return; default: return; @@ -200,15 +230,16 @@ public void onResponse(@NonNull Call call, @NonNull Response response) case GET_TRAJECTORIES_LIST: // Save the requested information from the response body infoResponse = responseBody.string(); + success = true; notifyObservers(OBSERVER_INDEX_FILES); return; case GET_TRAJECTORY_SINGLE: @SuppressWarnings("unchecked") List data = (List) additionalData; - String id = (String) data.get(0); + String id = data.get(0).toString(); int position = (int) data.get(1); - String dateSubmitted = (String) data.get(2); + String dateSubmitted = data.get(2).toString(); processDownloadedTrajectory( responseBody, id, position, dateSubmitted); @@ -255,22 +286,26 @@ private void sendRequestPOST( /** When the attempt to send the request has failed, notify the user. */ @Override public void onFailure(@NonNull Call call, @NonNull IOException e) { + Log.w(TAG, "Error: " + e.getMessage()); + String errorMessage = ERROR_MESSAGE_NO_SERVER; + success = false; new Handler(Looper.getMainLooper()) .post( - () -> - Toast.makeText( - context, - "Upload failed\n" - + "Server unresponsive" - + " or unreachable", - Toast.LENGTH_SHORT) - .show()); - success = false; - infoResponse = "000"; + () -> { + Toast.makeText( + context, + errorMessage, + Toast.LENGTH_SHORT) + .show(); + }); + infoResponse = ERROR_CODE_NO_SERVER + ":" + errorMessage; + switch (requestType) { case POST_LOG_IN: + notifyObservers(OBSERVER_INDEX_LOGIN); return; case POST_SIGN_UP: + notifyObservers(OBSERVER_INDEX_REGISTER); return; case POST_TRAJECTORY_RECORDED: case POST_TRAJECTORY_LOCAL: @@ -302,25 +337,34 @@ public void onResponse(@NonNull Call call, @NonNull Response response) if (!response.isSuccessful()) { String errorBody = responseBody.string(); - infoResponse = errorBody; Log.w(TAG, "Error: " + errorBody); + infoResponse = responseCode + ":" + errorBody; success = false; switch (requestType) { case POST_LOG_IN: + parseErrorResponse(infoResponse); + notifyObservers(OBSERVER_INDEX_LOGIN); return; case POST_SIGN_UP: + parseErrorResponse(infoResponse); + notifyObservers(OBSERVER_INDEX_REGISTER); return; case POST_TRAJECTORY_RECORDED: - // Invalid trajectories should not be saved - File badTrajectory = (File) additionalData; - badTrajectory.delete(); - notifyObservers(OBSERVER_INDEX_MAIN); - return; case POST_TRAJECTORY_LOCAL: + // Invalid trajectories should not be saved + File badTrajectoryLocal = (File) additionalData; + badTrajectoryLocal.delete(); + Log.d( + TAG, + "Trajectory " + + badTrajectoryLocal.getName() + + " deleted"); + Log.d(TAG, "Sending " + errorBody); notifyObservers(OBSERVER_INDEX_MAIN); return; case POST_FLOOR_PLANS: + parseErrorResponse(infoResponse); notifyObservers(OBSERVER_INDEX_INDOOR_MAPS); return; default: @@ -329,16 +373,24 @@ public void onResponse(@NonNull Call call, @NonNull Response response) } switch (requestType) { case POST_LOG_IN: + infoResponse = responseBody.string(); + success = true; + notifyObservers(OBSERVER_INDEX_LOGIN); return; case POST_SIGN_UP: + infoResponse = responseBody.string(); + success = true; + notifyObservers(OBSERVER_INDEX_REGISTER); return; case POST_TRAJECTORY_RECORDED: File originalFile = (File) additionalData; + infoResponse = responseBody.string(); success = processTrajectoryResponse(originalFile); notifyObservers(OBSERVER_INDEX_MAIN); return; case POST_TRAJECTORY_LOCAL: File localFile = (File) additionalData; + infoResponse = responseBody.string(); success = localFile.delete(); notifyObservers(OBSERVER_INDEX_MAIN); return; @@ -355,6 +407,65 @@ public void onResponse(@NonNull Call call, @NonNull Response response) }); } + /** + * Error responses from the server share the same output format, so this function will parse + * that response and produce a user-friendly {@link Toast} explaining the problem. + * + * @param infoString String formatted as "errorCode:JSONResponse" + */ + private void parseErrorResponse(String infoString) { + String[] errorElements = infoString.split(":", 2); + String errorCode = errorElements[0]; + String errorCause = errorElements[1]; + + // Only perform JSON data extraction if response is in JSON format + if (!errorCause.contains("{")) { + Log.i(TAG, "\"" + errorCause + "\" is not a JSON response"); + } else { + try { + JSONObject jsonObject = new JSONObject(errorCause); + JSONArray detailArray = jsonObject.optJSONArray("detail"); + if (detailArray != null) { + for (int i = 0; i < detailArray.length(); i++) { + JSONObject problem = detailArray.getJSONObject(i); + String type = problem.getString("type"); + if (type.contains("value_error")) { + String badValue = type.split("\\.", 2)[1]; + if (badValue.equals("missing")) { + badValue = problem.getJSONArray("loc").getString(1); + badValue = + badValue.substring(0, 1).toUpperCase() + + badValue.substring(1); + errorCause = badValue + " " + problem.getString("msg"); + } else { + badValue = + badValue.substring(0, 1).toUpperCase() + + badValue.substring(1); + errorCause = + badValue + " " + problem.getString("msg").split(" ", 2)[1]; + } + } else { + errorCause = problem.getString("msg"); + } + } + } else { + // If error response is not JSON format, print as-is + errorCause = jsonObject.getString("detail"); + } + } catch (JSONException e) { + Log.w(TAG, e.getMessage()); + errorCause = "Unknown error"; + } + } + + String errorMessage = errorCause + " (HTTP Error " + errorCode + ")"; + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText(context, errorMessage, Toast.LENGTH_SHORT).show(); + }); + } + ////////////////////////////////////////////////////////////////////////////// /** @@ -407,11 +518,15 @@ private void copyFile(File src, File dst) throws IOException { * @param campaign The building associated with the route */ public void sendTrajectory(Traj.Trajectory trajectory, String campaign) { - Toast.makeText( - context, - "Now uploading '" + campaign + "' trajectory...", - Toast.LENGTH_SHORT) - .show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + context, + "Now uploading '" + campaign + "' trajectory...", + Toast.LENGTH_SHORT) + .show(); + }); logDataSize(trajectory); File file = convertTrajectoryToFile(trajectory); @@ -420,7 +535,11 @@ public void sendTrajectory(Traj.Trajectory trajectory, String campaign) { if (campaign.isBlank() || campaign.equals(BUILDING_NAME_OUTSIDE)) { String message = "Invalid campaign ('" + campaign + "') - Cancelling upload"; Log.w(TAG, message); - Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); + }); return; } @@ -435,11 +554,15 @@ public void sendTrajectory(Traj.Trajectory trajectory, String campaign) { if (!this.isWifiConn && !(enableMobileData && isMobileConn)) { // If the device is not connected to network or allowed to send, // do not send trajectory and notify observers and user - String message = "No uploading allowed right now!"; - Log.e(TAG, message); - new Handler(Looper.getMainLooper()) - .post(() -> Toast.makeText(context, message, Toast.LENGTH_SHORT).show()); + String errorMessage = "No uploading allowed right now!"; + infoResponse = ERROR_CODE_NO_SERVER + ":" + errorMessage; + Log.w(TAG, infoResponse); success = false; + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText(context, errorMessage, Toast.LENGTH_SHORT).show(); + }); notifyObservers(OBSERVER_INDEX_MAIN); return; } @@ -522,7 +645,26 @@ public void uploadLocalTrajectory(File localTrajectory, String campaign) { if (campaign.isBlank() || campaign.equals(BUILDING_NAME_OUTSIDE)) { String message = "Invalid campaign ('" + campaign + "') - Cancelling upload"; Log.w(TAG, message); - Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); + }); + return; + } + + if (!localTrajectory.exists()) { + Log.e(TAG, "Unable to use file!"); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + context, + "Trajectory has been deleted. Please refresh the" + + " view.", + Toast.LENGTH_SHORT) + .show(); + }); return; } @@ -557,7 +699,7 @@ public void uploadLocalTrajectory(File localTrajectory, String campaign) { requestBody, PROTOCOL_APP_JSON, PROTOCOL_MULTIPART, - REQUEST.POST_TRAJECTORY_RECORDED, + REQUEST.POST_TRAJECTORY_LOCAL, localTrajectory); } @@ -686,6 +828,9 @@ public void downloadTrajectory(int position, String id, String dateSubmitted) { String url = URL_GET_TRAJECTORIES_HEAD + + "/" + + loginManager.getUserKey() + + "?skip=0&limit=" + (position + TRAJECTORY_REQUEST_BUFFER) + URL_GET_TRAJECTORIES_TAIL; @@ -696,7 +841,15 @@ public void downloadTrajectory(int position, String id, String dateSubmitted) { // Enqueue the GET request for asynchronous execution sendRequestGET(url, PROTOCOL_APP_JSON, REQUEST.GET_TRAJECTORY_SINGLE, additionalData); - Toast.makeText(context, "Request sent for Trajectory " + id, Toast.LENGTH_SHORT).show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + context, + "Request sent for Trajectory " + id, + Toast.LENGTH_SHORT) + .show(); + }); } /** @@ -820,9 +973,10 @@ private void processDownloadedTrajectory( * *

    * - * @param requestURL The URL of the API GET request + * @param baseURL The URL of the API GET request */ - public void requestPathsFromServer(String requestURL) { + public void requestPathsFromServer(String baseURL) { + String requestURL = baseURL + "/" + loginManager.getUserKey() + "?key=" + API_KEY_MASTER; sendRequestGET(requestURL, PROTOCOL_APP_JSON, REQUEST.GET_TRAJECTORIES_LIST, null); } @@ -841,6 +995,9 @@ public void requestFloorplans(@NonNull LatLng position, @NonNull List wifi lastTime = currentTime; } + String url = + URL_POST_FLOORPLANS + "/" + loginManager.getUserKey() + "?key=" + API_KEY_MASTER; + // Generate list of AP MAC addresses List aps = new ArrayList<>(); for (Wifi ap : wifiAPs) { @@ -860,7 +1017,7 @@ public void requestFloorplans(@NonNull LatLng position, @NonNull List wifi RequestBody requestBody = RequestBody.create(payload.toString(), JSON); sendRequestPOST( - URL_POST_FLOORPLANS, + url, requestBody, PROTOCOL_APP_JSON, PROTOCOL_APP_JSON, @@ -868,6 +1025,44 @@ public void requestFloorplans(@NonNull LatLng position, @NonNull List wifi null); } + public void registerUserDetails(String username, String email, String password) { + String url = URL_API + API_POST_SIGN_UP; + + // Construct payload for request + MediaType JSON = MediaType.get(PROTOCOL_APP_JSON + "; charset=utf-8"); + JSONObject payload = new JSONObject(); + try { + payload.put("username", username); + payload.put("email", email); + payload.put("password", password); + } catch (JSONException ignore) { + return; + } + RequestBody requestBody = RequestBody.create(payload.toString(), JSON); + + sendRequestPOST( + url, requestBody, PROTOCOL_APP_JSON, PROTOCOL_APP_JSON, REQUEST.POST_SIGN_UP, null); + } + + public void logInUser(String email, String password) { + String url = URL_API + API_POST_LOGIN; + + // Construct payload for request + MediaType JSON = MediaType.get(PROTOCOL_APP_JSON + "; charset=utf-8"); + JSONObject payload = new JSONObject(); + try { + payload.put("email", email); + payload.put("password", password); + } catch (JSONException ignore) { + return; + } + + RequestBody requestBody = RequestBody.create(payload.toString(), JSON); + + sendRequestPOST( + url, requestBody, PROTOCOL_APP_JSON, PROTOCOL_APP_JSON, REQUEST.POST_LOG_IN, null); + } + /** * This method checks the device's connection status. It sets boolean variables depending on the * type of active network connection. @@ -898,7 +1093,7 @@ private String createTrajectoryUploadURL(String campaign) { + "/" + campaign + "/" - + API_KEY_USER + + loginManager.getUserKey() + "/?key=" + API_KEY_MASTER; } @@ -933,11 +1128,19 @@ private void logDataSize(Traj.Trajectory trajectory) { */ @Override public void registerObserver(Observer o) { + for (Observer obs : observers) { + if (obs.getClass().getSimpleName().equals(o.getClass().getSimpleName())) { + observers.remove(obs); + } + } + if (observers.add(o)) { Log.i(TAG, "Added observer of type " + o.getClass().getSimpleName()); } else { - Log.w(TAG, "Observer of type " + o.getClass().getSimpleName() + " already registered!"); + Log.w(TAG, "Failed to add Observer of type " + o.getClass().getSimpleName()); } + Log.d(TAG, "Observers currently in list:"); + observers.forEach(observer -> Log.d(TAG, " " + observer.getClass().getSimpleName())); } /** @@ -950,6 +1153,10 @@ public void registerObserver(Observer o) { */ @Override public void notifyObservers(int index) { + if (observers.isEmpty()) { + Log.w(TAG, "No observers registered! Update will be lost."); + return; + } for (Observer o : observers) { if (index == OBSERVER_INDEX_FILES && o instanceof FilesFragment) { o.update(new Object[] {success, infoResponse}); @@ -957,6 +1164,10 @@ public void notifyObservers(int index) { o.update(new Object[] {success, infoResponse}); } else if (index == OBSERVER_INDEX_INDOOR_MAPS && o instanceof IndoorMapManager) { o.update(new Object[] {success, infoResponse}); + } else if (index == OBSERVER_INDEX_LOGIN && o instanceof LoginFragment) { + o.update(new Object[] {success, infoResponse}); + } else if (index == OBSERVER_INDEX_REGISTER && o instanceof RegisterFragment) { + o.update(new Object[] {success, infoResponse}); } else { Log.w( TAG, diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/LoginActivity.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/LoginActivity.java new file mode 100644 index 00000000..ba754ab9 --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/LoginActivity.java @@ -0,0 +1,37 @@ +package com.openpositioning.PositionMe.presentation.activity; + +import android.os.Bundle; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; +import androidx.navigation.NavController; +import androidx.navigation.fragment.NavHostFragment; +import com.openpositioning.PositionMe.R; +import java.util.Objects; + +/** + * {@inheritDoc} + * + *

    Adds navigation control for the login navigation graph + */ +public class LoginActivity extends AppCompatActivity { + + private NavController navController; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); + setContentView(R.layout.activity_login); + + // Set up navigation and fragments + NavHostFragment navHostFragment = + (NavHostFragment) + getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment); + navController = Objects.requireNonNull(navHostFragment).getNavController(); + } + + @Override + public void onResume() { + super.onResume(); + } +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java index 982b9634..f675e658 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/MainActivity.java @@ -1,5 +1,6 @@ package com.openpositioning.PositionMe.presentation.activity; +import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; @@ -244,22 +245,24 @@ public boolean onCreateOptionsMenu(Menu menu) { } /** - * {@inheritDoc} Handles the back button press. If the current fragment is the HomeFragment, a + * {@inheritDoc} Handles the back button press. If the current fragment is the LoginFragment, a * dialog is displayed to confirm the exit. If not, the default back navigation is performed. */ @Override public void onBackPressed() { - // Check if the current destination is HomeFragment (assumed to be the root) + // Check if the current destination is LoginFragment (assumed to be the root) if (navController.getCurrentDestination() != null && navController.getCurrentDestination().getId() == R.id.homeFragment) { new AlertDialog.Builder(this) .setTitle("Confirm Exit") - .setMessage("Are you sure you want to exit the app?") + .setMessage("Are you sure you want to log out?") .setPositiveButton( "Yes", (dialog, which) -> { dialog.dismiss(); - finish(); // Close the activity (exit the app) + Intent intent = new Intent(this, LoginActivity.class); + startActivity(intent); + finish(); }) .setNegativeButton("No", (dialog, which) -> dialog.dismiss()) .create() @@ -279,42 +282,51 @@ public void onBackPressed() { public void update(Object[] objList) { boolean success = (boolean) objList[0]; String response = objList[1].toString(); + Log.i(TAG, response); if (success) { - this.httpResponseHandler.post(displayToastTaskSuccess); + httpResponseHandler.post(displayToastTaskSuccess); } else { try { - JSONObject jsonObject = new JSONObject(response); - - Log.d(TAG, jsonObject.toString()); - String cause = jsonObject.getString("detail"); - String[] causeElements = cause.split(":", 2); - String causeSource = causeElements[0].strip(); - String causeMessage = causeElements[1].strip(); - - new Handler(Looper.getMainLooper()) - .post( - () -> - new AlertDialog.Builder(this) - .setTitle("Trajectory Upload Failed") - .setMessage( - "The server has declined the last recorded" - + " trajectory. The response is shown" - + " below:\n\n" - + causeSource - + "\n" - + causeMessage) - .setPositiveButton( - "Okay", - (dialog, which) -> { - dialog.dismiss(); - }) - .create() - .show()); - + String errorCode = response.split(":", 2)[0]; + if (errorCode.equals(getString(R.string.errorCodeNoServerResponse))) return; + + String errorMessage = response.split(":", 2)[1]; + if (errorMessage.contains("{")) { + JSONObject jsonObject = new JSONObject(errorMessage); + + String cause = jsonObject.getString("detail"); + String[] causeElements = cause.split(":", 2); + String causeSource = causeElements[0].strip(); + String causeMessage = causeElements[1].strip(); + + new Handler(Looper.getMainLooper()) + .post( + () -> + new AlertDialog.Builder(this) + .setTitle("Trajectory Upload Failed") + .setMessage( + "The server has declined this" + + " trajectory. The response is" + + " shown below:\n\n" + + causeSource + + "\n" + + causeMessage) + .setPositiveButton( + "Okay", + (dialog, which) -> { + dialog.dismiss(); + }) + .create() + .show()); + } else { + httpFailureMessage = errorMessage; + httpResponseHandler.post(displayToastTaskFailure); + } } catch (JSONException e) { - httpFailureMessage = "Upload failed - Unknown error"; - this.httpResponseHandler.post(displayToastTaskFailure); + Log.w(TAG, e.getMessage()); + httpFailureMessage = response.split(":", 2)[1]; + httpResponseHandler.post(displayToastTaskFailure); } } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/RecordingActivity.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/RecordingActivity.java index 56f7203e..20f0e0bf 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/RecordingActivity.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/activity/RecordingActivity.java @@ -27,7 +27,7 @@ * interruptions. It also provides fragment transactions for seamless navigation between different * stages of the workflow. * - *

    This class is referenced in various fragments such as HomeFragment, StartLocationFragment, + *

    This class is referenced in various fragments such as LoginFragment, StartLocationFragment, * RecordingFragment, and CorrectionFragment to control navigation through the recording flow. * * @see StartLocationFragment The first step in the recording process where users select their diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java index 20589c8c..66738a2a 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/FilesFragment.java @@ -18,6 +18,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.data.remote.LoginManager; import com.openpositioning.PositionMe.data.remote.ServerCommunications; import com.openpositioning.PositionMe.presentation.viewitems.TrajDownloadListAdapter; import com.openpositioning.PositionMe.presentation.viewitems.TrajDownloadViewHolder; @@ -42,7 +43,7 @@ * @author Mate Stodulka */ public class FilesFragment extends Fragment implements Observer { - + private static final String TAG = "FilesFragment"; // UI elements private RecyclerView filesList; private TrajDownloadListAdapter listAdapter; @@ -50,6 +51,7 @@ public class FilesFragment extends Fragment implements Observer { // Class handling HTTP communication private ServerCommunications serverCommunications; + private LoginManager loginManager; /** Default public constructor, empty. */ public FilesFragment() { @@ -65,6 +67,20 @@ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); serverCommunications = new ServerCommunications(getActivity()); serverCommunications.registerObserver(this); + loginManager = LoginManager.getInstance(); + } + + @Override + public void onResume() { + super.onResume(); + if (serverCommunications == null) { + serverCommunications = new ServerCommunications(getActivity()); + } + serverCommunications.registerObserver(this); + + if (loginManager == null) { + loginManager = LoginManager.getInstance(); + } } /** {@inheritDoc} Sets the title in the action bar. */ @@ -73,7 +89,7 @@ public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View rootView = inflater.inflate(R.layout.fragment_files, container, false); - getActivity().setTitle("Trajectory recordings"); + getActivity().setTitle("Trajectory Recordings - " + loginManager.getUsername()); return rootView; } @@ -128,9 +144,9 @@ public void onClick(View view) { */ @Override public void update(Object[] objList) { - Boolean result = (boolean) objList[0]; - // Cast input as a string - String infoString = (String) objList[1]; + Boolean success = (boolean) objList[0]; + String infoString = objList[1].toString(); + // Check if the string is non-null and non-empty before processing if (infoString != null && !infoString.isEmpty()) { // Process string @@ -166,7 +182,7 @@ private List> processInfoResponse(String infoString) { JSONObject trajectoryEntry = jsonArray.getJSONObject(i); Map entryMap = new HashMap<>(); entryMap.put("owner_id", String.valueOf(trajectoryEntry.get("owner_id"))); - entryMap.put("date_submitted", (String) trajectoryEntry.get("date_submitted")); + entryMap.put("date_submitted", trajectoryEntry.get("date_submitted").toString()); entryMap.put("id", String.valueOf(trajectoryEntry.get("id"))); // Add decoded map to list of entries entryList.add(entryMap); diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java index 8f41c197..74f6cab2 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/HomeFragment.java @@ -30,12 +30,12 @@ import com.google.android.gms.maps.model.MarkerOptions; import com.google.android.material.button.MaterialButton; import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.data.remote.LoginManager; import com.openpositioning.PositionMe.presentation.activity.RecordingActivity; /** - * A simple {@link Fragment} subclass. The home fragment is the start screen of the application. The - * home fragment acts as a hub for all other fragments, with buttons and icons for navigation. The - * default screen when opening the application + * A simple {@link Fragment} subclass. The home fragment is the main screen of the application, + * acting as a hub for all other fragments with buttons and icons for navigation. * * @see RecordingFragment * @see FilesFragment @@ -57,6 +57,9 @@ public class HomeFragment extends Fragment implements OnMapReadyCallback { private GoogleMap mMap; private SupportMapFragment mapFragment; + // For getting user information + private LoginManager loginManager; + public HomeFragment() { // Required empty public constructor } @@ -64,6 +67,7 @@ public HomeFragment() { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + loginManager = LoginManager.getInstance(); } /** @@ -75,7 +79,7 @@ public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ((AppCompatActivity) getActivity()).getSupportActionBar().show(); View rootView = inflater.inflate(R.layout.fragment_home, container, false); - getActivity().setTitle("Home"); + getActivity().setTitle("Home - " + loginManager.getUsername()); return rootView; } diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/LoginFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/LoginFragment.java new file mode 100644 index 00000000..6ffe87ad --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/LoginFragment.java @@ -0,0 +1,218 @@ +package com.openpositioning.PositionMe.presentation.fragment; + +import static com.openpositioning.PositionMe.utils.UtilConstants.CREDENTIALS_KEY_EMAIL; +import static com.openpositioning.PositionMe.utils.UtilConstants.CREDENTIALS_KEY_PASSWORD; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.navigation.NavDirections; +import androidx.navigation.Navigation; +import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.data.remote.LoginManager; +import com.openpositioning.PositionMe.data.remote.ServerCommunications; +import com.openpositioning.PositionMe.presentation.activity.MainActivity; +import com.openpositioning.PositionMe.sensors.Observer; +import java.util.HashMap; +import java.util.Map; +import org.json.JSONException; +import org.json.JSONObject; + +/** + * An extension of {@link Fragment} to manage signing in to OpenPosition and retrieving the user's + * API key. Users can enter their credentials and (optionally) save them to their device. + * + *

    If the user doesn't have an account, they can access the {@link RegisterFragment} to sign up + * to OpenPosition's API. + * + * @see RegisterFragment + * @see ServerCommunications + * @see LoginManager + */ +public class LoginFragment extends Fragment implements Observer { + private final String TAG = "LoginFragment"; + + private Button loginButton; + private TextView textRegisterHere; + private EditText emailEditText; + private EditText passwordEditText; + private CheckBox checkboxSavePassword; + private LoginManager loginManager; + private ServerCommunications serverCommunications; + + public LoginFragment() { + // Required empty public constructor + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_login, container, false); + } + + /** + * {@inheritDoc} + * + *

    Initialise the UI elements, and the {@link LoginManager} for handling credentials + */ + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + loginManager = LoginManager.getInstance(); + loginManager.initialise(this.getContext()); + serverCommunications = new ServerCommunications(this.getContext()); + serverCommunications.registerObserver(this); + + loginButton = view.findViewById(R.id.buttonLogin); + checkboxSavePassword = view.findViewById(R.id.checkBoxSavePassword); + + textRegisterHere = view.findViewById(R.id.textLoginFragmentToRegister); + emailEditText = view.findViewById(R.id.editTextLoginEmail); + passwordEditText = view.findViewById(R.id.editTextLoginPassword); + + // Populate login screen with saved credentials, if present + Map savedCredentials = loginManager.getSavedLoginDetails(); + if (savedCredentials != null) { + String email = savedCredentials.get(CREDENTIALS_KEY_EMAIL); + String password = savedCredentials.get(CREDENTIALS_KEY_PASSWORD); + emailEditText.setText(email); + passwordEditText.setText(password); + checkboxSavePassword.setChecked(true); + Log.i(TAG, "Credentials loaded from device"); + } + + // Move to the registration screen + textRegisterHere.setOnClickListener( + v -> { + NavDirections action = + LoginFragmentDirections.actionLoginFragmentToRegisterFragment(); + Navigation.findNavController(v).navigate(action); + }); + + loginButton.setOnClickListener(v -> attemptLogIn()); + } + + /** + * Retrieve the user's input from the UI, and send a login request to the OpenPosition API. + * + *

    If the user wishes to save their login details, the {@link LoginManager} will save these + * on their device. + */ + private void attemptLogIn() { + String email = emailEditText.getText().toString(); + String password = passwordEditText.getText().toString(); + + if (email.isEmpty() || password.isEmpty()) { + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + this.getContext(), + "Please fill all login fields and try again.", + Toast.LENGTH_SHORT) + .show(); + }); + return; + } + + if (checkboxSavePassword.isChecked()) { + loginManager.saveLoginDetails(email, password); + } + + serverCommunications.logInUser(email, password); + } + + /** + * Saves the user's username and API key in the {@link LoginManager} for future reference, and + * hands off to {@link MainActivity}. + */ + private void finaliseLogin(String username, String key) { + // Save for future reference + loginManager.setUsername(username); + loginManager.setUserKey(key); + + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + this.getContext(), + "Login Successful - Welcome " + username + "!", + Toast.LENGTH_SHORT) + .show(); + }); + + Intent intent = new Intent(requireContext(), MainActivity.class); + startActivity(intent); + requireActivity().finish(); + } + + /** + * {@inheritDoc} + * + *

    Calls for the user's username and API key to be extracted from the server's response + * before completing the log in process. + */ + @Override + public void update(Object[] objList) { + boolean success = (boolean) objList[0]; + String infoString = objList[1].toString(); + if (!success) return; + + try { + Map userData = extractDataFromResponse(infoString); + + String username = userData.get("username"); + String key = userData.get("key"); + Log.i(TAG, "username: " + username); + Log.i(TAG, "key: " + key); + + finaliseLogin(username, key); + } catch (Exception e) { + String message = "Bad response from server. Login halted"; + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText(this.getContext(), message, Toast.LENGTH_SHORT) + .show(); + }); + Log.w(TAG, message); + } + } + + /** + * Parses the server's response for the user's username and API key. + * + * @return The user's username and API key in a Map. + * @throws JSONException If the response parsing fails. + */ + private Map extractDataFromResponse(String response) throws JSONException { + Map userData = new HashMap<>(); + try { + JSONObject jsonObject = new JSONObject(response); + userData.put("username", String.valueOf(jsonObject.get("username"))); + userData.put("key", String.valueOf(jsonObject.get("api_key"))); + return userData; + } catch (JSONException e) { + Log.w(TAG, "Error parsing server response: " + e.getCause()); + throw e; + } + } +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RegisterFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RegisterFragment.java new file mode 100644 index 00000000..64c9fbb4 --- /dev/null +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/RegisterFragment.java @@ -0,0 +1,144 @@ +package com.openpositioning.PositionMe.presentation.fragment; + +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.navigation.NavDirections; +import androidx.navigation.Navigation; +import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.data.remote.ServerCommunications; +import com.openpositioning.PositionMe.sensors.Observer; + +public class RegisterFragment extends Fragment implements Observer { + private final String TAG = "RegisterFragment"; + private Button registerButton; + private TextView textLogInHere; + + private EditText usernameEditText; + private EditText emailEditText; + private EditText passwordEditText; + private EditText passwordCheckEditText; + private ServerCommunications serverCommunications; + + public RegisterFragment() { + // Required empty public constructor + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_register, container, false); + } + + /** Initialise UI elements and set onClick actions for the buttons. */ + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + serverCommunications = new ServerCommunications(this.getContext()); + serverCommunications.registerObserver(this); + + registerButton = view.findViewById(R.id.buttonRegister); + + textLogInHere = view.findViewById(R.id.textRegisterFragmentToLogin); + usernameEditText = view.findViewById(R.id.editTextRegisterUsername); + emailEditText = view.findViewById(R.id.editTextRegisterEmail); + passwordEditText = view.findViewById(R.id.editTextRegisterPassword); + passwordCheckEditText = view.findViewById(R.id.editTextRegisterPasswordAgain); + + textLogInHere.setOnClickListener( + v -> { + NavDirections action = + LoginFragmentDirections.actionRegisterFragmentToLoginFragment(); + Navigation.findNavController(v).navigate(action); + }); + + registerButton.setOnClickListener(v -> attemptRegistration()); + } + + private void attemptRegistration() { + String username = usernameEditText.getText().toString(); + String email = emailEditText.getText().toString(); + String password = passwordEditText.getText().toString(); + String passwordCheck = passwordCheckEditText.getText().toString(); + + if (username.isEmpty() + || email.isEmpty() + || password.isEmpty() + || passwordCheck.isEmpty()) { + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + this.getContext(), + "Please fill all login fields, and try again.", + Toast.LENGTH_SHORT) + .show(); + }); + return; + } else if (!password.equals(passwordCheck)) { + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + this.getContext(), + "Please check your passwords are the same, and try" + + " again.", + Toast.LENGTH_SHORT) + .show(); + }); + passwordEditText.setText(""); + passwordCheckEditText.setText(""); + return; + } + + serverCommunications.registerUserDetails(username, email, password); + } + + @Override + public void update(Object[] objList) { + boolean success = (boolean) objList[0]; + if (!success) return; + + try { + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + this.getContext(), + "Registration Successful!\nPlease now sign in", + Toast.LENGTH_SHORT) + .show(); + }); + + NavDirections action = LoginFragmentDirections.actionRegisterFragmentToLoginFragment(); + Navigation.findNavController(this.getView()).navigate(action); + } catch (IllegalStateException e) { + Log.w(TAG, e.getMessage()); + } catch (Exception e) { + String message = "Bad response from server. Registration halted"; + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText(this.getContext(), message, Toast.LENGTH_SHORT) + .show(); + }); + Log.w(TAG, message); + } + } +} diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/SettingsFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/SettingsFragment.java index c4021918..221b4b71 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/SettingsFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/SettingsFragment.java @@ -5,6 +5,7 @@ import androidx.preference.EditTextPreference; import androidx.preference.PreferenceFragmentCompat; import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.data.remote.LoginManager; /** * SettingsFragment that inflates and displays the preferences (settings). Sets type for numeric @@ -22,6 +23,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { private EditTextPreference epsilon; private EditTextPreference accelFilter; private EditTextPreference wifiInterval; + private LoginManager loginManager; /** * {@inheritDoc} Sets the relevant numeric type for the preferences that should not take string @@ -30,7 +32,8 @@ public class SettingsFragment extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.root_preferences, rootKey); - getActivity().setTitle("Settings"); + loginManager = LoginManager.getInstance(); + getActivity().setTitle("Settings - " + loginManager.getUsername()); weibergK = findPreference("weiberg_k"); weibergK.setOnBindEditTextListener( editText -> diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java index a9b25fda..b44d4d9d 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/TrajectoryMapFragment.java @@ -214,6 +214,12 @@ public void onMapReady(@NonNull GoogleMap googleMap) { }); } + @Override + public void onDestroy() { + Log.d(TAG, "Destroying " + getClass().getSimpleName()); + super.onDestroy(); + } + /** * Initialize the map settings with the provided GoogleMap instance. * diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/UploadFragment.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/UploadFragment.java index 56bb2526..4e214efd 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/UploadFragment.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/fragment/UploadFragment.java @@ -15,7 +15,9 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.openpositioning.PositionMe.R; +import com.openpositioning.PositionMe.data.remote.LoginManager; import com.openpositioning.PositionMe.data.remote.ServerCommunications; +import com.openpositioning.PositionMe.presentation.activity.MainActivity; import com.openpositioning.PositionMe.presentation.viewitems.DownloadClickListener; import com.openpositioning.PositionMe.presentation.viewitems.UploadListAdapter; import com.openpositioning.PositionMe.presentation.viewitems.UploadViewHolder; @@ -32,6 +34,7 @@ * @author Mate Stodulka */ public class UploadFragment extends Fragment { + private static final String TAG = "UploadFragment"; // UI elements private TextView emptyNotice; @@ -43,6 +46,7 @@ public class UploadFragment extends Fragment { // List of files saved locally private List localTrajectories; + private LoginManager loginManager; /** Public default constructor, empty. */ public UploadFragment() { @@ -58,6 +62,8 @@ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get communication class serverCommunications = new ServerCommunications(getActivity()); + serverCommunications.registerObserver((MainActivity) getActivity()); + loginManager = LoginManager.getInstance(); // Determine the directory to load trajectory files from. File trajectoriesDir = null; @@ -86,7 +92,7 @@ public void onCreate(Bundle savedInstanceState) { @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - getActivity().setTitle("Upload"); + getActivity().setTitle("Upload - " + loginManager.getUsername()); // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_upload, container, false); } @@ -138,8 +144,8 @@ public void onPositionClicked(int position) { // TODO - Replace static test value with dynamic building name serverCommunications.uploadLocalTrajectory( trajectory, BUILDING_NAME_M_HOUSE); - // localTrajectories.remove(position); - // listAdapter.notifyItemRemoved(position); + localTrajectories.remove(position); + listAdapter.notifyItemRemoved(position); } }); uploadList.setAdapter(listAdapter); diff --git a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadListAdapter.java b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadListAdapter.java index a4dbeb80..f4d0ad17 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadListAdapter.java +++ b/app/src/main/java/com/openpositioning/PositionMe/presentation/viewitems/UploadListAdapter.java @@ -1,6 +1,8 @@ package com.openpositioning.PositionMe.presentation.viewitems; import android.content.Context; +import android.os.Handler; +import android.os.Looper; import android.view.LayoutInflater; import android.view.ViewGroup; import android.widget.Toast; @@ -88,9 +90,25 @@ private void deleteFileAtPosition(int position) { uploadItems.remove(position); notifyItemRemoved(position); notifyItemRangeChanged(position, uploadItems.size()); // Update subsequent items - Toast.makeText(context, "File deleted successfully", Toast.LENGTH_SHORT).show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + context, + "File deleted successfully", + Toast.LENGTH_SHORT) + .show(); + }); } else { - Toast.makeText(context, "Failed to delete file", Toast.LENGTH_SHORT).show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + context, + "Failed to delete file", + Toast.LENGTH_SHORT) + .show(); + }); } } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java index b0af8d0f..1c081021 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/GNSSDataProcessor.java @@ -6,6 +6,8 @@ import android.content.pm.PackageManager; import android.location.LocationListener; import android.location.LocationManager; +import android.os.Handler; +import android.os.Looper; import android.widget.Toast; import androidx.core.app.ActivityCompat; @@ -53,10 +55,19 @@ public GNSSDataProcessor(Context context, LocationListener locationListener) { // Turn on gps if it is currently disabled if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { - Toast.makeText(context, "Open GPS", Toast.LENGTH_SHORT).show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText(context, "Open GPS", Toast.LENGTH_SHORT).show(); + }); } if (!locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { - Toast.makeText(context, "Enable Cellular", Toast.LENGTH_SHORT).show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText(context, "Enable Cellular", Toast.LENGTH_SHORT) + .show(); + }); } // Start location updates if (permissionsGranted) { @@ -109,10 +120,18 @@ public void startLocationUpdates() { LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); } else if (permissionGranted && !locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { - Toast.makeText(context, "Open GPS", Toast.LENGTH_LONG).show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText(context, "Open GPS", Toast.LENGTH_LONG).show(); + }); } else if (permissionGranted && !locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { - Toast.makeText(context, "Turn on WiFi", Toast.LENGTH_LONG).show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText(context, "Turn on WiFi", Toast.LENGTH_LONG).show(); + }); } } diff --git a/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java b/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java index e8ceeae2..3ebe6411 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java +++ b/app/src/main/java/com/openpositioning/PositionMe/sensors/WifiDataProcessor.java @@ -10,6 +10,8 @@ import android.net.NetworkInfo; import android.net.wifi.ScanResult; import android.net.wifi.WifiManager; +import android.os.Handler; +import android.os.Looper; import android.provider.Settings; import android.widget.Toast; import androidx.core.app.ActivityCompat; @@ -271,7 +273,15 @@ public void checkWifiThrottling() { if (isThrottled) { // Inform user to disable wifi throttling - Toast.makeText(context, "Disable Wi-Fi Throttling", Toast.LENGTH_SHORT).show(); + new Handler(Looper.getMainLooper()) + .post( + () -> { + Toast.makeText( + context, + "Disable Wi-Fi Throttling", + Toast.LENGTH_SHORT) + .show(); + }); } } catch (Settings.SettingNotFoundException e) { e.printStackTrace(); diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java index a5245788..41192a33 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/IndoorMapManager.java @@ -122,15 +122,15 @@ public Building getCurrentBuilding(LatLng position) { public void update(Object[] objList) { boolean success = (boolean) objList[0]; String response = objList[1].toString(); + Log.d(TAG, "Received response: " + response); if (!success) return; - Log.d(TAG, "Received response: " + response); try { // Parse the JSON, and draw all possible buildings List> entryList = processPOSTResponse(response); for (Map building : entryList) { - String name = (String) building.get("name"); + String name = building.get("name").toString(); @SuppressWarnings("unchecked") List outline = (List) building.get("outline"); @SuppressWarnings("unchecked") diff --git a/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java b/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java index c071b719..62fa701e 100644 --- a/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java +++ b/app/src/main/java/com/openpositioning/PositionMe/utils/UtilConstants.java @@ -29,28 +29,31 @@ public class UtilConstants { public static final float ZOOM_LEVEL_DEFAULT = 19f; + // Credentials + public static final String CREDENTIALS_FILE_NAME = "login_details"; + public static final String CREDENTIALS_KEY_EMAIL = "email"; + public static final String CREDENTIALS_KEY_PASSWORD = "password"; + // Source: https://openpositioning.org/docs - public static final String API_KEY_USER = BuildConfig.OPENPOSITIONING_API_KEY; public static final String API_KEY_MASTER = BuildConfig.OPENPOSITIONING_MASTER_KEY; public static final String URL_API = "https://openpositioning.org/api"; public static final String API_GET_USER_TRAJECTORIES = "/live/users/trajectories"; public static final String API_GET_TRAJECTORIES = "/live/trajectory/download"; public static final String API_POST_TRAJECTORIES = "/live/trajectory/upload"; public static final String API_POST_FLOORPLANS = "/live/floorplan/request"; + public static final String API_POST_SIGN_UP = "/users/signup"; + public static final String API_POST_LOGIN = "/users/login"; - public static final String URL_GET_USER_TRAJECTORIES = - URL_API + API_GET_USER_TRAJECTORIES + "/" + API_KEY_USER + "?key=" + API_KEY_MASTER; + public static final String URL_GET_USER_TRAJECTORIES = URL_API + API_GET_USER_TRAJECTORIES; // URL is in two parts as user variable is inserted for number of entries to retrieve - public static final String URL_GET_TRAJECTORIES_HEAD = - URL_API + API_GET_TRAJECTORIES + "/" + API_KEY_USER + "?skip=0&limit="; + public static final String URL_GET_TRAJECTORIES_HEAD = URL_API + API_GET_TRAJECTORIES; public static final String URL_GET_TRAJECTORIES_TAIL = "&key=" + API_KEY_MASTER; - public static final String URL_POST_FLOORPLANS = - URL_API + API_POST_FLOORPLANS + "/" + API_KEY_USER + "?key=" + API_KEY_MASTER; + public static final String URL_POST_FLOORPLANS = URL_API + API_POST_FLOORPLANS; public static final String PROTOCOL_MULTIPART = "multipart/form-data"; public static final String PROTOCOL_APP_JSON = "application/json"; - // Expected performances from floor plans API request + // Expected responses from floor plan API request public static final String BUILDING_NAME_NUCLEUS = "nucleus_building"; public static final String BUILDING_NAME_M_HOUSE = "murchison_house"; public static final String BUILDING_NAME_OUTSIDE = "outside"; diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml new file mode 100644 index 00000000..6cf28d66 --- /dev/null +++ b/app/src/main/res/layout/activity_login.xml @@ -0,0 +1,24 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 0a3ceda2..90089889 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -3,9 +3,9 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:theme="@style/Theme.AppCompat.Light.NoActionBar" android:layout_width="match_parent" android:layout_height="match_parent" + android:theme="@style/Theme.AppCompat.Light.NoActionBar" tools:context=".presentation.activity.MainActivity"> @@ -22,19 +22,17 @@ app:layout_constraintEnd_toEndOf="parent" app:popupTheme="@style/Widget.MaterialComponents.PopupMenu" /> - - + app:layout_constraintEnd_toEndOf="parent" + app:defaultNavHost="true" + app:navGraph="@navigation/main_nav" /> diff --git a/app/src/main/res/layout/fragment_login.xml b/app/src/main/res/layout/fragment_login.xml new file mode 100644 index 00000000..36417b0f --- /dev/null +++ b/app/src/main/res/layout/fragment_login.xml @@ -0,0 +1,137 @@ + + + + + + + + + + +

    4m$1?KC09ahj!dN57K+GKw=|rc>yH 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%0D3$hgy*N@MChrIZ=Z5Lpa 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 z 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 SPhV94KMyw_*E)P?#=ik3jLtg% diff --git a/app/src/main/res/drawable/nucleusground.png b/app/src/main/res/drawable/nucleusground.png deleted file mode 100644 index 11502ce117f21d6df2f265bb4d287bedc7a1e24f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 457380 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�u-D9fi|*^Dyn~=Q0@}@_Nd3(*51Ab!G%Kk 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