Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Observe tracker #2

Open
wants to merge 38 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
1c95950
improve LocationProvider, can handle COARSE_LOCATION, works with any …
Sep 24, 2023
50fc255
small improvements to map rendering
Sep 27, 2023
5cca04d
make ObserveTracker functionality visible again
Sep 27, 2023
76b2c50
improve Observation Screen Design
Sep 27, 2023
79ad24e
ObserveTrackerWorker now calls ScanBluetoothWorker manually before ch…
Oct 2, 2023
ba43134
update gradle version
Oct 3, 2023
1f46a9d
improve Background Worker Scheduling, add Error Case for ObserveTracker
Oct 3, 2023
656baf9
add handling for inconsistent database entries in ObserveTracker, mak…
Oct 4, 2023
ffc1a2e
Tracker Observation can now be stopped, added visual indicator whethe…
Oct 5, 2023
f1baf67
add Article Fragment
Oct 11, 2023
9a6a264
fix crash in Play Sound Dialog
Oct 17, 2023
a3ff542
Merge branch 'ShowAllDevices' into ObserveTracker
Oct 17, 2023
96fa537
add navigation to article
Oct 17, 2023
2d1330b
Adding new API endpoint that deletes study data for a specific user
Sn0wfreezeDev Oct 23, 2023
a50fb54
Setting request to DELETE method
Sn0wfreezeDev Oct 23, 2023
a9fd70c
implement Data Deletion in UI
Oct 23, 2023
ec2150d
fix api initialization bug, better initialization of api token, add e…
imbissbudenaesthetik Oct 24, 2023
87b5b90
add first implementation of Online Article Download
Oct 26, 2023
66d89b4
Merge branch 'ShowAllDevices' into ObserveTracker
Oct 26, 2023
333154e
add additional information in JSON
Oct 26, 2023
a1127e8
Article Download now Coroutine, loading animation while downloading J…
Oct 27, 2023
359897b
Design improvement
Oct 27, 2023
d172e47
Article offline handling
Oct 28, 2023
a31cbc7
Merge branch 'ShowAllDevices' into ObserveTracker
imbissbudenaesthetik Oct 31, 2023
ed0dce1
support Online Articles in multiple languages
Nov 4, 2023
42a90dd
upgrade to gradle 8.1.3
Nov 11, 2023
5321602
fix security issues in the AndroidManifest
Nov 11, 2023
55f841b
update backup rules to confirm to android 12 standards
Nov 11, 2023
de32b38
optimize Article Offline Handling and add old cards again
Nov 11, 2023
3857e52
Merge remote-tracking branch 'origin/ObserveTracker' into ObserveTracker
imbissbudenaesthetik Nov 15, 2023
fa2c4ea
upgrade gradle and some libraries
Nov 19, 2023
78fcf61
speed up map rendering and add permission necessary for Android 14
Nov 19, 2023
ecaab97
Merge remote-tracking branch 'origin/ObserveTracker' into ObserveTracker
Nov 19, 2023
5aa2324
Rename SmartTags to be consistent with Samsungs current product lines
Nov 20, 2023
201b7e3
fix for common IllegalStateException in PlaySoundDialogFragment
Nov 20, 2023
bb3993b
add previewImage to the Article Function
Nov 22, 2023
7f06d31
Fix for Delete Study Data
Nov 24, 2023
24066ec
adjust articles for in production Server files
Dec 18, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,11 @@ dependencies {
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
implementation 'androidx.navigation:navigation-fragment-ktx:2.6.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.6.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.2'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
implementation 'androidx.preference:preference-ktx:1.2.1'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.3.1'
implementation 'androidx.recyclerview:recyclerview:1.3.2'

implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
Expand All @@ -126,7 +126,9 @@ dependencies {

implementation "com.mikepenz:aboutlibraries:$about_libraries_version"

implementation 'io.noties.markwon:core:4.6.2'
implementation 'com.github.mukeshsolanki:MarkdownView-Android:2.0.0'

implementation 'com.github.bumptech.glide:glide:4.16.0'


kapt "com.google.dagger:hilt-compiler:$hilt_version"
Expand All @@ -146,7 +148,7 @@ dependencies {
androidTestImplementation 'androidx.test:runner:1.5.2'
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.5.1'

coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'

//Finds memory leaks while running the app in Debug mode
// debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.8.1'
Expand All @@ -161,7 +163,7 @@ dependencies {
// Tooling support (Previews, etc.)
implementation 'androidx.compose.ui:ui-tooling:1.4.3'
// Integration with ViewModels
implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2'
// UI Tests
androidTestImplementation 'androidx.compose.ui:ui-test-junit4:1.4.3'
// When using a MDC theme
Expand Down
25 changes: 17 additions & 8 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
<uses-permission
android:name="android.permission.BLUETOOTH_ADMIN"
android:required="true" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission
android:name="android.permission.INTERNET"
android:required="true" />
Expand All @@ -29,24 +30,25 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />


<application
android:name=".ATTrackingDetectionApplication"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.ATTrackingDetection"
android:localeConfig="@xml/locales_config"
android:largeHeap="true"
tools:targetApi="tiramisu">
tools:targetApi="tiramisu"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="false">

<activity
android:name=".ui.TrackingNotificationActivity"
android:excludeFromRecents="true"
android:launchMode="singleTop"
android:taskAffinity=""
android:parentActivityName=".ui.MainActivity" />
android:parentActivityName=".ui.MainActivity"
android:exported="false" />

<provider
android:name="androidx.startup.InitializationProvider"
Expand All @@ -70,16 +72,22 @@
</intent-filter>
</receiver>

<receiver android:name=".worker.ScheduleWorkersReceiver" android:exported="true">
<receiver
android:name=".worker.ScheduleWorkersReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>

<service android:name=".worker.ScheduleWorkersWorker" />
<service
android:name=".worker.ObserveTrackerWorker"
android:exported="false"/>

<receiver android:name=".notifications.ScheduledNotificationReceiver"/>
<receiver
android:name=".notifications.ScheduledNotificationReceiver"
android:exported="false"/>

<activity
android:name=".ui.MainActivity"
Expand All @@ -94,7 +102,8 @@

<service
android:name=".util.ble.BluetoothLeService"
android:enabled="true" />
android:enabled="true"
android:exported="false"/>

<service
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@ package de.seemoo.at_tracking_detection.database.models.device.types

import android.bluetooth.le.ScanFilter
import android.os.ParcelUuid
import androidx.annotation.DrawableRes
import de.seemoo.at_tracking_detection.ATTrackingDetectionApplication
import de.seemoo.at_tracking_detection.R
import de.seemoo.at_tracking_detection.database.models.device.Device
import de.seemoo.at_tracking_detection.database.models.device.DeviceContext
import de.seemoo.at_tracking_detection.database.models.device.DeviceType

Expand Down Expand Up @@ -45,7 +43,7 @@ class SmartTag(override val id: Int) : SamsungDevice(id) {
get() = DeviceType.GALAXY_SMART_TAG

override val defaultDeviceName: String
get() = "SmartTag"
get() = ATTrackingDetectionApplication.getAppContext().resources.getString(R.string.smarttag_no_uwb)

override val statusByteDeviceType: UInt
get() = 0u
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@ package de.seemoo.at_tracking_detection.database.models.device.types

import android.bluetooth.le.ScanFilter
import android.os.ParcelUuid
import androidx.annotation.DrawableRes
import de.seemoo.at_tracking_detection.ATTrackingDetectionApplication
import de.seemoo.at_tracking_detection.R
import de.seemoo.at_tracking_detection.database.models.device.Device
import de.seemoo.at_tracking_detection.database.models.device.DeviceContext
import de.seemoo.at_tracking_detection.database.models.device.DeviceType

Expand Down Expand Up @@ -45,7 +43,7 @@ class SmartTagPlus(override val id: Int) : SamsungDevice(id) {
get() = DeviceType.GALAXY_SMART_TAG_PLUS

override val defaultDeviceName: String
get() = "SmartTag Plus"
get() = ATTrackingDetectionApplication.getAppContext().resources.getString(R.string.smarttag_uwb)

override val statusByteDeviceType: UInt
get() = 0u
Expand Down
Loading