gitextract_i2vhfrty/ ├── Android_apk/ │ └── appAndroid.apk ├── Android_app/ │ ├── app/ │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── ABC/ │ │ │ └── pioneer/ │ │ │ └── app/ │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets/ │ │ │ │ ├── Pioneer.keystore │ │ │ │ └── server.p12 │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── ABC/ │ │ │ │ └── pioneer/ │ │ │ │ └── app/ │ │ │ │ ├── AppDelegate.java │ │ │ │ ├── LoginActivity.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── RegisterActivity.java │ │ │ │ ├── SplashActivity.java │ │ │ │ ├── Target.java │ │ │ │ ├── TargetListAdapter.java │ │ │ │ ├── TokenActivity.java │ │ │ │ ├── fragment/ │ │ │ │ │ ├── FragmentActivity1.java │ │ │ │ │ ├── FragmentActivity2.java │ │ │ │ │ └── FragmentActivity3.java │ │ │ │ └── ignoreBatteryOpt.java │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ ├── border_input_box.xml │ │ │ │ ├── button_background.xml │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ └── token_background.xml │ │ │ ├── drawable-v24/ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── layout/ │ │ │ │ ├── activity_bluetooth.xml │ │ │ │ ├── activity_bottom_bar.xml │ │ │ │ ├── activity_login.xml │ │ │ │ ├── activity_payload.xml │ │ │ │ ├── activity_register.xml │ │ │ │ ├── activity_splash.xml │ │ │ │ ├── activity_token.xml │ │ │ │ ├── activity_token_pre.xml │ │ │ │ ├── activity_user.xml │ │ │ │ ├── custom_notification.xml │ │ │ │ └── listview_targets_row.xml │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ └── values/ │ │ │ ├── colors.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── ABC/ │ │ └── pioneer/ │ │ └── app/ │ │ └── ExampleUnitTest.java │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── local.properties │ ├── pioneer/ │ │ ├── .gitignore │ │ ├── BuildConfig.java │ │ ├── app/ │ │ │ └── BuildConfig.java │ │ ├── build.gradle │ │ ├── consumer-rules.pro │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── androidTest/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── ABC/ │ │ │ └── pioneer/ │ │ │ └── sensor/ │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── ABC/ │ │ │ └── pioneer/ │ │ │ └── sensor/ │ │ │ ├── DefaultSensorDelegate.java │ │ │ ├── Device.java │ │ │ ├── PayloadSupplier.java │ │ │ ├── Sensor.java │ │ │ ├── SensorArray.java │ │ │ ├── SensorDelegate.java │ │ │ ├── analysis/ │ │ │ │ └── Sample.java │ │ │ ├── ble/ │ │ │ │ ├── BLEDatabaseDelegate.java │ │ │ │ ├── BLEDevice.java │ │ │ │ ├── BLESensor.java │ │ │ │ ├── BluetoothStateManager.java │ │ │ │ ├── BluetoothStateManagerDelegate.java │ │ │ │ ├── Configurations.java │ │ │ │ ├── Database.java │ │ │ │ ├── DeviceAttribute.java │ │ │ │ ├── DeviceDelegate.java │ │ │ │ ├── DeviceOperatingSystem.java │ │ │ │ ├── DeviceState.java │ │ │ │ ├── DeviceUpdatedComparator.java │ │ │ │ ├── Receiver.java │ │ │ │ ├── SpecificBLESensor.java │ │ │ │ ├── SpecificBluetoothStateManager.java │ │ │ │ ├── SpecificDatabase.java │ │ │ │ ├── SpecificReceiver.java │ │ │ │ ├── SpecificTransmitter.java │ │ │ │ ├── Timer.java │ │ │ │ ├── TimerDelegate.java │ │ │ │ ├── Transmitter.java │ │ │ │ ├── TxPower.java │ │ │ │ └── filter/ │ │ │ │ ├── BLEAppleManuSeg.java │ │ │ │ ├── BLEDeviceFilter.java │ │ │ │ ├── BLEManuData.java │ │ │ │ ├── BLEParser.java │ │ │ │ ├── BLEScanResponseData.java │ │ │ │ ├── BLESeg.java │ │ │ │ ├── BLESegType.java │ │ │ │ └── BLEServiceData.java │ │ │ ├── client/ │ │ │ │ └── controller/ │ │ │ │ └── PioneerClient.java │ │ │ ├── data/ │ │ │ │ ├── BatteryLog.java │ │ │ │ ├── CalibrationLog.java │ │ │ │ ├── ConcretePayloadDataFormatter.java │ │ │ │ ├── ContactLog.java │ │ │ │ ├── DetectionLog.java │ │ │ │ ├── EventTimeIntervalLog.java │ │ │ │ ├── PayloadDataFormatter.java │ │ │ │ ├── StatisticsLog.java │ │ │ │ └── TextFile.java │ │ │ ├── datatype/ │ │ │ │ ├── Base64.java │ │ │ │ ├── BluetoothState.java │ │ │ │ ├── Calibration.java │ │ │ │ ├── CalibrationMeasurementUnit.java │ │ │ │ ├── Callback.java │ │ │ │ ├── Data.java │ │ │ │ ├── Encounter.java │ │ │ │ ├── Float16.java │ │ │ │ ├── ImmediateSendData.java │ │ │ │ ├── InertiaLocationReference.java │ │ │ │ ├── Int16.java │ │ │ │ ├── Int32.java │ │ │ │ ├── Int64.java │ │ │ │ ├── Int8.java │ │ │ │ ├── LegacyPayload.java │ │ │ │ ├── Location.java │ │ │ │ ├── LocationReference.java │ │ │ │ ├── PayloadData.java │ │ │ │ ├── PayloadSharingData.java │ │ │ │ ├── PayloadTimestamp.java │ │ │ │ ├── PlacenameLocationReference.java │ │ │ │ ├── Proximity.java │ │ │ │ ├── ProximityMeasurementUnit.java │ │ │ │ ├── PseudoDeviceAddress.java │ │ │ │ ├── RSSI.java │ │ │ │ ├── RandomSource.java │ │ │ │ ├── SensorState.java │ │ │ │ ├── SensorType.java │ │ │ │ ├── SignalCharacteristicData.java │ │ │ │ ├── SignalCharacteristicDataType.java │ │ │ │ ├── TargetIdentifier.java │ │ │ │ ├── TimeInterval.java │ │ │ │ ├── Triple.java │ │ │ │ ├── Tuple.java │ │ │ │ ├── UInt16.java │ │ │ │ ├── UInt32.java │ │ │ │ ├── UInt64.java │ │ │ │ └── UInt8.java │ │ │ ├── motion/ │ │ │ │ ├── ConcreteInertiaSensor.java │ │ │ │ └── InertiaSensor.java │ │ │ ├── payload/ │ │ │ │ ├── Crypto/ │ │ │ │ │ ├── BasicFunc.java │ │ │ │ │ ├── CipherParameters.java │ │ │ │ │ ├── ContactIdentifier.java │ │ │ │ │ ├── ContactKey.java │ │ │ │ │ ├── ContactKeySeed.java │ │ │ │ │ ├── Digest.java │ │ │ │ │ ├── DigestRandomGenerator.java │ │ │ │ │ ├── ExtendedDigest.java │ │ │ │ │ ├── GeneralDigest.java │ │ │ │ │ ├── GenerateKey.java │ │ │ │ │ ├── HMACSHA256.java │ │ │ │ │ ├── HMac.java │ │ │ │ │ ├── KeyParameter.java │ │ │ │ │ ├── Mac.java │ │ │ │ │ ├── MatchingKey.java │ │ │ │ │ ├── MatchingKeySeed.java │ │ │ │ │ ├── Memoable.java │ │ │ │ │ ├── PioneerHMac.java │ │ │ │ │ ├── PioneerHash.java │ │ │ │ │ ├── PioneerPRG.java │ │ │ │ │ ├── RandomGenerator.java │ │ │ │ │ ├── SM3Digest.java │ │ │ │ │ ├── SecretKey.java │ │ │ │ │ ├── SpecificUsePayloadSupplier.java │ │ │ │ │ ├── UsePayloadSupplier.java │ │ │ │ │ └── Util.java │ │ │ │ ├── DefaultPayloadSupplier.java │ │ │ │ ├── DigitalSignature.java │ │ │ │ └── extended/ │ │ │ │ ├── ConcreteExtendedDataSectionV1.java │ │ │ │ ├── ConcreteExtendedDataV1.java │ │ │ │ └── ExtendedData.java │ │ │ └── service/ │ │ │ ├── AlarmReceiver.java │ │ │ ├── Connection.java │ │ │ ├── CustomTimer.java │ │ │ ├── ForegroundService.java │ │ │ ├── MatchDelegate.java │ │ │ ├── NotificationService.java │ │ │ └── PioneerDb.java │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── ABC/ │ │ └── pioneer/ │ │ └── sensor/ │ │ └── ExampleUnitTest.java │ └── settings.gradle ├── IOS_app/ │ └── Pioneer_ios/ │ └── Pioneer Framework/ │ ├── Certificate/ │ │ ├── client.p12 │ │ └── server.cer │ ├── Pioneer/ │ │ ├── ContactLogData/ │ │ │ └── ContactLog.xcdatamodeld/ │ │ │ ├── .xccurrentversion │ │ │ └── ContactLog.xcdatamodel/ │ │ │ └── contents │ │ ├── Crypto/ │ │ │ ├── CipherParameters.swift │ │ │ ├── Crypto.swift │ │ │ ├── Digest.swift │ │ │ ├── DigestRandomNumber.swift │ │ │ ├── ExtendedDigest.swift │ │ │ ├── GeneralDigest.swift │ │ │ ├── HMAC.swift │ │ │ ├── KeyParameter.swift │ │ │ ├── MAC.swift │ │ │ ├── Memoable.swift │ │ │ ├── PioneerHMac.swift │ │ │ ├── PioneerHash.swift │ │ │ ├── RandomGenerator.swift │ │ │ ├── SM3Digest.swift │ │ │ └── Util.swift │ │ ├── Info.plist │ │ ├── Manager/ │ │ │ ├── Connection.swift │ │ │ ├── GlobalConfiguration.swift │ │ │ ├── KeyManager.swift │ │ │ ├── ManagerDelegate.swift │ │ │ ├── Register.swift │ │ │ └── UploadManager.swift │ │ ├── Pioneer.h │ │ └── Sensor/ │ │ ├── BLE/ │ │ │ ├── BLEDatabase.swift │ │ │ ├── BLEReceiver.swift │ │ │ ├── BLESensor.swift │ │ │ ├── BLETransmitter.swift │ │ │ └── BLEUtilities.swift │ │ ├── Data/ │ │ │ ├── BatteryLog.swift │ │ │ └── SensorLogger.swift │ │ ├── Device.swift │ │ ├── Extensions/ │ │ │ ├── DataExtensions.swift │ │ │ └── DateExtensions.swift │ │ ├── Location/ │ │ │ └── LocationSensor.swift │ │ ├── Payload/ │ │ │ ├── PayloadDataMatcher.swift │ │ │ ├── PayloadDataSupplier.swift │ │ │ └── SpecificImplement/ │ │ │ ├── SpecificPayloadDataMatcher.swift │ │ │ └── SpecificPayloadDataSupplier.swift │ │ ├── Sensor.swift │ │ ├── SensorArray.swift │ │ └── SensorDelegate.swift │ ├── Pioneer.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ ├── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcuserdata/ │ │ │ └── Beh.xcuserdatad/ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata/ │ │ └── Beh.xcuserdatad/ │ │ └── xcschemes/ │ │ └── xcschememanagement.plist │ └── PioneerTests/ │ ├── Info.plist │ └── PioneerTests.swift ├── README.md ├── Server/ │ ├── bin/ │ │ ├── db.properties │ │ └── lib/ │ │ └── mysql-connector-java-5.1.49-bin.jar │ └── src/ │ ├── com/ │ │ ├── bean/ │ │ │ ├── User.java │ │ │ └── UserMessage.java │ │ ├── controller/ │ │ │ ├── PioneerClient.java │ │ │ └── PioneerServer.java │ │ ├── dao/ │ │ │ ├── RandomGenerator.java │ │ │ ├── TaskThread.java │ │ │ ├── UserDao.java │ │ │ └── UserDao_Imp.java │ │ └── jdbc/ │ │ └── JDBCUtils.java │ ├── db.properties │ └── lib/ │ └── mysql-connector-java-5.1.49-bin.jar ├── Server_jar/ │ ├── META-INF/ │ │ └── MANIFEST.MF │ ├── db.properties │ ├── mysql-connector-java-5.1.49-bin.jar │ ├── org.hamcrest.core_1.3.0.v20180420-1519.jar │ └── org.junit_4.13.0.v20200204-1500.jar └── Test/ ├── Contribution.md └── README.md