Skip to content

Commit a4dbf17

Browse files
Release 2.6.0 (#208)
* create empty UI and navigation for tracker export * initial implementation of the PDF creation * create necessary views for new pdf creation, hide old approach * basic pdf creation * implement working map and pagination * add warning for 15 minute algorithm matching in pdf export * add preview before creating pdf document * add error message, when no internet connection during pdf creation is available * fix build error * add Debug Mode toggle for disabling ble error messages * update gradle and some dependencies * safer thread handling of PermanentBluetoothScanner * add Website to InformationFragment * add Website to InformationFragment * show AirGuard Version Number on pdf report * handle tracker ignored as additional state for pdf export, fix colors in night mode * update kotlin version to 2.1.21 and update dependencies * fix onboarding loop bug * adjust Android 15 System Bar Configuration * update gradle * update dependencies * fix: pdf export shows that the tracker is following even if the notification has been longer than a month ago * pdf export: optimize loading times by creating map of locations instead of using the find on the database * optimize loading in pdf export by adding new indices to beacon * fix intent handling for notifications on newer android versions * update dependencies, kotlin version to 2.2.0 and gradle * change last name of maintainer * update dependencies * fix crash in some navigation cases in TrackingFragment * update dependencies * update grade and some dependencies * update some dependencies * fix some issues with the PermanentBluetoothScanner * fix issues in BluetoothLeService * fix issues with gatt disconnect in Utility * increment version number to 2.5.1 * show error message on home screen if samsung android 15 ble bug occurs * update gradle and dependencies * improve Bluetooth Error Detection * add ScanOrchestrator to avoid accessing Bluetooth Resources on too many Threads at once * add Listeners to check if bluetooth or location is enabled in the system * replace specific bluetooth error message on main page with generic one * bypass High Priority Scan in ScanOrchestrator immediately to ensure correct front end services * upgrade gradle, dependencies and kotlin version and target Android 16 * add dependency for Android 16 predictive back compatibility * make PermanentBluetoothScheduler a toggle in the expert settings * increase version number to 2.6.0 * update dependencies * add comment function for each individual tracker * show comment function only if database device exists * add japanese and german translations * reduce throttle window in ScanOrchestrator to ensure bluetooth scan access for high priority scans in edge cases * upgrade gradle and some dependencies * update proguard rules for ScanOrchestrator * fix default value for permanent bluetooth scanner * set permanentscanner default to disabled * F-Droid Release 2.6.0
1 parent aa205cc commit a4dbf17

File tree

65 files changed

+4111
-398
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+4111
-398
lines changed

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ authors:
1010
family-names: Bittner
1111
affiliation: 'SEEMOO, TU Darmstadt'
1212
- given-names: Alexander
13-
family-names: Heinrich
13+
family-names: Matern
1414
affiliation: 'SEEMOO, TU Darmstadt'
1515
orcid: 'https://orcid.org/0000-0002-1150-1922'
1616
- given-names: Dennis

api.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
API_KEY="g3T1wgsH.bb40FsxMYET7HC12I8CH83jtQ1FT0a9A"
1+
API_KEY="0pGhFp5V.3Me6ZeM4hqFnu8FDMrqZwpaau1fdE98Y"
22
API_BASE_ADDRESS="https://tpe.seemoo.tu-darmstadt.de/api/"

app/build.gradle

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ android {
2222
buildConfig true
2323
}
2424

25-
compileSdk = 35
25+
compileSdk = 36
2626

2727
defaultConfig {
2828
applicationId "de.seemoo.at_tracking_detection"
2929
minSdkVersion 28
30-
targetSdk = 35
31-
versionCode 52
32-
versionName "2.5"
30+
targetSdk = 36
31+
versionCode 54
32+
versionName "2.6.0"
3333
buildConfigField "String", "API_KEY", apiProperties["API_KEY"]
3434
buildConfigField "String", "API_BASE_ADDRESS", apiProperties["API_BASE_ADDRESS"]
3535

@@ -87,29 +87,31 @@ dependencies {
8787
implementation 'com.jakewharton.timber:timber:5.0.1'
8888
implementation 'com.github.bastienpaulfr:Treessence:1.1.2'
8989
implementation "androidx.work:work-runtime-ktx:$work_version"
90-
implementation 'androidx.core:core-ktx:1.16.0'
91-
implementation 'androidx.appcompat:appcompat:1.7.0'
92-
implementation 'com.google.android.material:material:1.12.0'
90+
implementation 'androidx.core:core-ktx:1.17.0'
91+
implementation 'androidx.appcompat:appcompat:1.7.1'
92+
implementation 'com.google.android.material:material:1.13.0'
9393
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
9494
implementation 'androidx.vectordrawable:vectordrawable:1.2.0'
95-
implementation 'androidx.navigation:navigation-fragment-ktx:2.8.9'
96-
implementation 'androidx.navigation:navigation-ui-ktx:2.8.9'
97-
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7'
98-
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7'
95+
implementation 'androidx.navigation:navigation-fragment-ktx:2.9.3'
96+
implementation 'androidx.navigation:navigation-ui-ktx:2.9.3'
97+
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.9.3'
98+
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.3'
9999
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
100100
implementation 'androidx.preference:preference-ktx:1.2.1'
101101
implementation 'androidx.cardview:cardview:1.0.0'
102102
implementation 'androidx.recyclerview:recyclerview:1.4.0'
103103
implementation "androidx.profileinstaller:profileinstaller:1.4.1"
104-
105-
implementation 'com.squareup.retrofit2:retrofit:2.11.0'
106-
implementation 'com.squareup.retrofit2:converter-gson:2.11.0'
107-
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.14'
108-
implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.14'
109-
implementation 'com.google.code.gson:gson:2.11.0'
104+
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
105+
106+
implementation "androidx.activity:activity-ktx:1.10.1"
107+
implementation 'com.squareup.retrofit2:retrofit:3.0.0'
108+
implementation 'com.squareup.retrofit2:converter-gson:3.0.0'
109+
implementation 'com.squareup.okhttp3:okhttp:5.1.0'
110+
implementation 'com.squareup.okhttp3:logging-interceptor:5.1.0'
111+
implementation 'com.google.code.gson:gson:2.13.1'
110112
implementation "androidx.work:work-testing:$work_version"
111-
implementation 'androidx.core:core-ktx:1.16.0'
112-
debugImplementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.14'
113+
implementation 'androidx.core:core-ktx:1.17.0'
114+
debugImplementation 'com.squareup.okhttp3:logging-interceptor:5.1.0'
113115

114116
implementation "com.google.dagger:hilt-android:$hilt_compiler_version"
115117
implementation "androidx.hilt:hilt-work:$hilt_version"
@@ -126,7 +128,7 @@ dependencies {
126128

127129
implementation 'com.github.mukeshsolanki:MarkdownView-Android:2.0.0'
128130

129-
implementation 'com.github.bumptech.glide:glide:4.16.0'
131+
implementation 'com.github.bumptech.glide:glide:5.0.4'
130132

131133
ksp "com.google.dagger:hilt-compiler:$hilt_compiler_version"
132134
ksp "androidx.hilt:hilt-compiler:$hilt_version"
@@ -137,16 +139,16 @@ dependencies {
137139
implementation "androidx.room:room-ktx:$room_version"
138140
ksp "androidx.room:room-compiler:$room_version"
139141

140-
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
141-
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
142+
androidTestImplementation 'androidx.test.ext:junit:1.3.0'
143+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0'
142144
androidTestImplementation "androidx.room:room-testing:$room_version"
143145

144146
androidTestImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2'
145-
androidTestImplementation 'androidx.test:core:1.6.1'
146-
androidTestImplementation 'androidx.test:core-ktx:1.6.1'
147-
androidTestImplementation 'androidx.test.ext:junit-ktx:1.2.1'
148-
androidTestImplementation 'androidx.test:runner:1.6.2'
149-
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.6.1'
147+
androidTestImplementation 'androidx.test:core:1.7.0'
148+
androidTestImplementation 'androidx.test:core-ktx:1.7.0'
149+
androidTestImplementation 'androidx.test.ext:junit-ktx:1.3.0'
150+
androidTestImplementation 'androidx.test:runner:1.7.0'
151+
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.7.0'
150152

151153
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
152154

@@ -160,13 +162,13 @@ dependencies {
160162
implementation 'androidx.compose.material3:material3:1.3.2'
161163
implementation 'androidx.compose.material3:material3-window-size-class:1.3.2'
162164
// Animations
163-
implementation 'androidx.compose.animation:animation:1.7.8'
165+
implementation 'androidx.compose.animation:animation:1.9.0'
164166
// Tooling support (Previews, etc.)
165-
implementation 'androidx.compose.ui:ui-tooling:1.7.8'
167+
implementation 'androidx.compose.ui:ui-tooling:1.9.0'
166168
// Integration with ViewModels
167-
implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7'
169+
implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.9.3'
168170
// UI Tests
169-
androidTestImplementation 'androidx.compose.ui:ui-test-junit4:1.7.8'
171+
androidTestImplementation 'androidx.compose.ui:ui-test-junit4:1.9.0'
170172
// When using a MDC theme
171173
implementation "com.google.android.material:compose-theme-adapter:1.2.1"
172174
}

app/proguard-rules.pro

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,4 +124,27 @@
124124
-keepattributes Signature,RuntimeVisibleAnnotations
125125

126126
# Keep all data classes with Gson annotations
127-
-keep class de.seemoo.at_tracking_detection.database.relations.** { *; }
127+
-keep class de.seemoo.at_tracking_detection.database.relations.** { *; }
128+
129+
# --- BLE ScanOrchestrator and BLE-related keep rules ---
130+
# Keep the ScanOrchestrator singleton and all its methods/fields
131+
-keep class de.seemoo.at_tracking_detection.util.ble.ScanOrchestrator { *; }
132+
133+
# Keep all classes that extend or implement android.bluetooth.le.ScanCallback
134+
-keep class * extends android.bluetooth.le.ScanCallback { *; }
135+
136+
# Keep all classes that extend or implement android.bluetooth.le.ScanFilter
137+
-keep class * extends android.bluetooth.le.ScanFilter { *; }
138+
139+
# Keep all classes that extend or implement android.bluetooth.le.ScanSettings
140+
-keep class * extends android.bluetooth.le.ScanSettings { *; }
141+
142+
# Keep all classes in the BLE util package (if you have more helpers)
143+
-keep class de.seemoo.at_tracking_detection.util.ble.** { *; }
144+
145+
# Keep all ScanCallback implementations, including anonymous and inner classes
146+
-keep class * extends android.bluetooth.le.ScanCallback { *; }
147+
-keepclassmembers class * {
148+
void onScanResult(...);
149+
void onScanFailed(...);
150+
}

0 commit comments

Comments
 (0)